@@ -192,15 +192,12 @@ def urlize_ietf_docs(string, autoescape=None):
192192 """
193193 if autoescape and not isinstance (string , SafeData ):
194194 string = escape (string )
195- string = re .sub (r"(RFC\s*?)0{0,3}(\d+)" , "<a href=\" /doc/rfc\\ 2/\" >\\ 1\\ 2</a>" , string , flags = re .IGNORECASE )
196- string = re .sub (r"(BCP\s*?)0{0,3}(\d+)" , "<a href=\" /doc/bcp\\ 2/\" >\\ 1\\ 2</a>" , string , flags = re .IGNORECASE )
197- string = re .sub (r"(STD\s*?)0{0,3}(\d+)" , "<a href=\" /doc/std\\ 2/\" >\\ 1\\ 2</a>" , string , flags = re .IGNORECASE )
198- string = re .sub (r"(FYI\s*?)0{0,3}(\d+)" , "<a href=\" /doc/fyi\\ 2/\" >\\ 1\\ 2</a>" , string , flags = re .IGNORECASE )
199- string = re .sub (r"(draft-[-0-9a-zA-Z._+]+)" , "<a href=\" /doc/\\ 1/\" >\\ 1</a>" , string , flags = re .IGNORECASE )
200- string = re .sub (r"(bofreq-[-0-9a-zA-Z._+]+)" , "<a href=\" /doc/\\ 1/\" >\\ 1</a>" , string , flags = re .IGNORECASE )
201- string = re .sub (r"(conflict-review-[-0-9a-zA-Z._+]+)" , "<a href=\" /doc/\\ 1/\" >\\ 1</a>" , string , flags = re .IGNORECASE )
202- string = re .sub (r"(status-change-[-0-9a-zA-Z._+]+)" , "<a href=\" /doc/\\ 1/\" >\\ 1</a>" , string , flags = re .IGNORECASE )
203- string = re .sub (r"(charter-[-0-9a-zA-Z._+]+)" , "<a href=\" /doc/\\ 1/\" >\\ 1</a>" , string , flags = re .IGNORECASE )
195+ string = re .sub (
196+ r"\b((RFC|BCP|STD|FYI|(?:draft-|bofreq-|conflict-review-|status-change-|charter-)[-\d\w.+]+)\s*0*(\d+))\b" ,
197+ lambda x : f'<a href="/doc/{ x [2 ].strip ().lower ()} { x [3 ]} /">{ x [1 ]} </a>' ,
198+ string ,
199+ flags = re .IGNORECASE | re .ASCII ,
200+ )
204201 return mark_safe (string )
205202urlize_ietf_docs = stringfilter (urlize_ietf_docs )
206203
@@ -739,4 +736,4 @@ def absurl(viewname, **kwargs):
739736
740737 Uses settings.IDTRACKER_BASE_URL as the base.
741738 """
742- return urljoin (settings .IDTRACKER_BASE_URL , urlreverse (viewname , kwargs = kwargs ))
739+ return urljoin (settings .IDTRACKER_BASE_URL , urlreverse (viewname , kwargs = kwargs ))
0 commit comments