FossilRepo

Rewrite external fossil-scm.org links to local views (forum, info, wiki)

lmata 2026-04-07 00:09 trunk
Commit 80abf6da16039740fcbfa733921298d2478c4045488829cd4134d3a1667eb53b
1 file changed +19
--- fossil/views.py
+++ fossil/views.py
@@ -242,10 +242,29 @@
242242
243243
# Rewrite href="/..." links (internal Fossil paths)
244244
html = re.sub(r'href="(/[^"]*)"', replace_link, html)
245245
# Rewrite Fossil URI schemes: forum:/..., info:..., wiki:...
246246
html = re.sub(r'href="(forum|info|wiki):([^"]*)"', replace_scheme_link, html)
247
+
248
+ # Rewrite external fossil-scm.org links to local views
249
+ def replace_external_fossil(match):
250
+ path = match.group(1)
251
+ # /forum/forumpost/HASH
252
+ m = re.match(r"/forum/forumpost/([0-9a-f]+)", path)
253
+ if m:
254
+ return f'href="{base}/forum/{m.group(1)}/"'
255
+ # /info/HASH
256
+ m = re.match(r"/info/([0-9a-f]+)", path)
257
+ if m:
258
+ return f'href="{base}/checkin/{m.group(1)}/"'
259
+ # /wiki/PageName
260
+ m = re.match(r"/wiki/(.+)", path)
261
+ if m:
262
+ return f'href="{base}/wiki/page/{m.group(1)}"'
263
+ return match.group(0)
264
+
265
+ html = re.sub(r'href="https?://(?:www\.)?fossil-scm\.org(?:/home)?(/[^"]*)"', replace_external_fossil, html)
247266
return html
248267
249268
250269
def _get_repo_and_reader(slug):
251270
"""Return (project, fossil_repo, reader) or raise 404."""
252271
--- fossil/views.py
+++ fossil/views.py
@@ -242,10 +242,29 @@
242
243 # Rewrite href="/..." links (internal Fossil paths)
244 html = re.sub(r'href="(/[^"]*)"', replace_link, html)
245 # Rewrite Fossil URI schemes: forum:/..., info:..., wiki:...
246 html = re.sub(r'href="(forum|info|wiki):([^"]*)"', replace_scheme_link, html)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247 return html
248
249
250 def _get_repo_and_reader(slug):
251 """Return (project, fossil_repo, reader) or raise 404."""
252
--- fossil/views.py
+++ fossil/views.py
@@ -242,10 +242,29 @@
242
243 # Rewrite href="/..." links (internal Fossil paths)
244 html = re.sub(r'href="(/[^"]*)"', replace_link, html)
245 # Rewrite Fossil URI schemes: forum:/..., info:..., wiki:...
246 html = re.sub(r'href="(forum|info|wiki):([^"]*)"', replace_scheme_link, html)
247
248 # Rewrite external fossil-scm.org links to local views
249 def replace_external_fossil(match):
250 path = match.group(1)
251 # /forum/forumpost/HASH
252 m = re.match(r"/forum/forumpost/([0-9a-f]+)", path)
253 if m:
254 return f'href="{base}/forum/{m.group(1)}/"'
255 # /info/HASH
256 m = re.match(r"/info/([0-9a-f]+)", path)
257 if m:
258 return f'href="{base}/checkin/{m.group(1)}/"'
259 # /wiki/PageName
260 m = re.match(r"/wiki/(.+)", path)
261 if m:
262 return f'href="{base}/wiki/page/{m.group(1)}"'
263 return match.group(0)
264
265 html = re.sub(r'href="https?://(?:www\.)?fossil-scm\.org(?:/home)?(/[^"]*)"', replace_external_fossil, html)
266 return html
267
268
269 def _get_repo_and_reader(slug):
270 """Return (project, fossil_repo, reader) or raise 404."""
271

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button