Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/cygwin-apps/calm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2019-06-17 22:01:35 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2019-06-20 11:25:37 +0300
commit7b5e7c5f9a9e981d9165a0486c1407ad9e9b6a09 (patch)
tree3d933d9aa7e5dbdce34d6a7f8e9bc29006f2c123
parent65fee8305bcab558831f89750c1690298a210895 (diff)
Linkify hyperlinks in ldesc in package summary page
Also move where we do html escaping, so it doesn't interact with formatting of line-breaks in ldesc
-rwxr-xr-xcalm/pkg2html.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/calm/pkg2html.py b/calm/pkg2html.py
index 623c402..9ce267a 100755
--- a/calm/pkg2html.py
+++ b/calm/pkg2html.py
@@ -65,7 +65,8 @@ from . import utils
#
def sdesc(packages, p, bv):
header = packages[p].version_hints[bv]['sdesc']
- return header.strip('"')
+ header = header.strip('"')
+ return html.escape(header, quote=False)
#
@@ -75,12 +76,16 @@ def ldesc(packages, p, bv):
if 'ldesc' in packages[p].version_hints[bv]:
header = packages[p].version_hints[bv]['ldesc']
else:
- header = sdesc(packages, p, bv)
+ return sdesc(packages, p, bv)
header = header.strip('"')
+ # escape html entities
+ header = html.escape(header, quote=False)
header = header.replace('\n\n', '\n<br>\n')
# try to recognize things which look like bullet points
header = re.sub(r'\n(\s*[*-]\s)', r'<br>\n\1', header)
+ # linkify things which look like hyperlinks
+ header = re.sub(r'http(s|)://[^\s\)]*', r'<a href="\g<0>">\g<0></a>', header)
return header
@@ -167,8 +172,8 @@ def update_package_listings(args, packages):
<!--#include virtual="/top.html" -->
<h1>Package: %s</h1>''' % (title, p)), file=f)
- print('<span class="detail">summary</span>: %s<br><br>' % html.escape(sdesc(arch_packages, p, bv), quote=False), file=f)
- print('<span class="detail">description</span>: %s<br><br>' % html.escape(ldesc(arch_packages, p, bv), quote=False), file=f)
+ print('<span class="detail">summary</span>: %s<br><br>' % sdesc(arch_packages, p, bv), file=f)
+ print('<span class="detail">description</span>: %s<br><br>' % ldesc(arch_packages, p, bv), file=f)
print('<span class="detail">categories</span>: %s<br><br>' % arch_packages[p].version_hints[bv].get('category', ''), file=f)
for key in ['depends', 'obsoletes', 'provides', 'conflicts', 'build-depends']:
@@ -276,7 +281,7 @@ def update_package_listings(args, packages):
anchor = ' id="%s"' % (jump)
print('<tr%s><td%s><a href="summary/%s.html">%s</a></td><td>%s</td></tr>' %
- (anchor, first, p, p, html.escape(header, quote=False)),
+ (anchor, first, p, p, header),
file=index)
first = ''
@@ -368,8 +373,6 @@ def write_arch_listing(args, packages, arch):
if fver.endswith('-src'):
header = header + " (source code)"
- header = html.escape(header, quote=False)
-
print(textwrap.dedent('''\
<!DOCTYPE html>
<html>