Skip to content

Commit d42aab0

Browse files
committed
Point bibxml3 to I-D archive so that all version numbers are handled properly, and perform more robust revision suffix cleanup. Fixes ietf-tools#3188.
- Legacy-Id: 18905
1 parent 3e7e7c9 commit d42aab0

2 files changed

Lines changed: 18 additions & 11 deletions

File tree

ietf/doc/views_doc.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -832,10 +832,15 @@ def document_history(request, name):
832832

833833

834834
def document_bibtex(request, name, rev=None):
835-
# If URL_REGEXPS put trailing digits in rev, they must be two digits
835+
# Make sure URL_REGEXPS did not grab too much for the rev number
836836
if rev != None and len(rev) != 2:
837-
name = name+"-"+rev
838-
rev = None
837+
mo = re.search(r"^(?P<m>[0-9]{1,2})-(?P<n>[0-9]{2})$", rev)
838+
if mo:
839+
name = name+"-"+mo.group(1)
840+
rev = mo.group(2)
841+
else:
842+
name = name+"-"+rev
843+
rev = None
839844

840845
doc = get_object_or_404(Document, docalias__name=name)
841846

@@ -875,9 +880,6 @@ def document_bibxml_ref(request, name, rev=None):
875880
raise Http404()
876881
if not name.startswith('draft-'):
877882
name = 'draft-'+name
878-
if rev != None and len(rev) != 2:
879-
name = name+"-"+rev
880-
rev = None
881883
return document_bibxml(request, name, rev=rev)
882884

883885
def document_bibxml(request, name, rev=None):
@@ -886,16 +888,21 @@ def document_bibxml(request, name, rev=None):
886888
if re.search(r'^rfc\d+$', name):
887889
raise Http404()
888890

889-
# If URL_REGEXPS put trailing digits in rev, they must be two digits
891+
# Make sure URL_REGEXPS did not grab too much for the rev number
890892
if rev != None and len(rev) != 2:
891-
name = name+"-"+rev
892-
rev = None
893+
mo = re.search(r"^(?P<m>[0-9]{1,2})-(?P<n>[0-9]{2})$", rev)
894+
if mo:
895+
name = name+"-"+mo.group(1)
896+
rev = mo.group(2)
897+
else:
898+
name = name+"-"+rev
899+
rev = None
893900

894901
doc = get_object_or_404(Document, name=name, type_id='draft')
895902

896903
latest_revision = doc.latest_event(NewRevisionDocEvent, type="new_revision")
897904
latest_rev = latest_revision.rev if latest_revision else None
898-
905+
899906
if rev != None:
900907
# find the entry in the history
901908
for h in doc.history_set.order_by("-time"):

ietf/templates/doc/bibxml.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
</front>
1717
<seriesInfo name="Internet-Draft" value="{{name}}-{{doc.rev}}" />
1818
{% if doi %}<seriesInfo name="DOI" value="{{doi}}" />
19-
{% endif %}<format type="TXT" target="https://www.ietf.org/internet-drafts/{{name}}-{{doc.rev}}.txt" />
19+
{% endif %}<format type="TXT" target="https://www.ietf.org/archive/id/{{name}}-{{doc.rev}}.txt" />
2020
</reference>

0 commit comments

Comments
 (0)