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>2024-01-03 22:25:32 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2024-01-04 19:24:19 +0300
commit31fbf0ae13b2faba1df22385862eabb2a4947eb6 (patch)
tree05cc73ac6e6158bcf00c177b2cf24eba44704052
parentd77f50aab8f7727eebcfb122a10607f2f9f7d835 (diff)
Factor out writing the details in the package summary page
Contain the details in a table of class 'pkgdetails' for more layout control.
-rwxr-xr-xcalm/pkg2html.py41
-rwxr-xr-xtest/testdata/htdocs.expected/summary/arc-src.html17
-rw-r--r--test/testdata/htdocs.expected/summary/arc.html17
-rw-r--r--test/testdata/htdocs.expected/summary/base-cygwin.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/corrupt-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/corrupt.html15
-rw-r--r--test/testdata/htdocs.expected/summary/cygwin-debuginfo.html19
-rw-r--r--test/testdata/htdocs.expected/summary/cygwin-devel.html15
-rwxr-xr-xtest/testdata/htdocs.expected/summary/cygwin-src.html21
-rw-r--r--test/testdata/htdocs.expected/summary/cygwin.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/keychain-src.html17
-rw-r--r--test/testdata/htdocs.expected/summary/keychain.html19
-rw-r--r--test/testdata/htdocs.expected/summary/libdns_sd-devel.html19
-rw-r--r--test/testdata/htdocs.expected/summary/libdns_sd1.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/mDNSResponder-src.html17
-rw-r--r--test/testdata/htdocs.expected/summary/mDNSResponder.html19
-rwxr-xr-xtest/testdata/htdocs.expected/summary/obs-a-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/obs-a.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/obs-b-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/obs-b.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/openssh-src.html17
-rw-r--r--test/testdata/htdocs.expected/summary/openssh.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/per-version-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/per-version.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html17
-rw-r--r--test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html17
-rwxr-xr-xtest/testdata/htdocs.expected/summary/rpm-doc-src.html10
-rw-r--r--test/testdata/htdocs.expected/summary/rpm-doc.html10
-rwxr-xr-xtest/testdata/htdocs.expected/summary/staleversion-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/staleversion.html15
-rwxr-xr-xtest/testdata/htdocs.expected/summary/test-c-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/test-c.html19
-rwxr-xr-xtest/testdata/htdocs.expected/summary/test-d-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/test-d.html15
-rwxr-xr-xtest/testdata/htdocs.expected/summary/test-e-src.html17
-rw-r--r--test/testdata/htdocs.expected/summary/test-e.html15
-rwxr-xr-xtest/testdata/htdocs.expected/summary/testpackage-src.html15
-rw-r--r--test/testdata/htdocs.expected/summary/testpackage.html15
40 files changed, 359 insertions, 315 deletions
diff --git a/calm/pkg2html.py b/calm/pkg2html.py
index 5a3f4ac..2d6930e 100755
--- a/calm/pkg2html.py
+++ b/calm/pkg2html.py
@@ -205,9 +205,10 @@ def update_package_listings(args, packages):
<!--#include virtual="/top.html" -->
<h1>%s: %s</h1>''' % (title, kind, pn)), file=f)
- print('<span class="detail">summary</span>: %s<br><br>' % sdesc(po, bv), file=f)
- print('<span class="detail">description</span>: %s<br><br>' % ldesc(po, bv), file=f)
- print('<span class="detail">categories</span>: %s<br><br>' % po.version_hints[bv].get('category', ''), file=f)
+ details_table = {}
+ details_table['summary'] = sdesc(po, bv)
+ details_table['description'] = ldesc(po, bv)
+ details_table['categories'] = po.version_hints[bv].get('category', '')
if po.kind == package.Kind.source:
details = ['build-depends']
@@ -242,7 +243,7 @@ def update_package_listings(args, packages):
else:
detail.append(linkify_package(detail_pkg) + ' (%s)' % (','.join([arch for arch in pos if detail_pkg in value[arch]])))
- print('<span class="detail">%s</span>: %s<br><br>' % (key, ', '.join(detail)), file=f)
+ details_table[key] = ', '.join(detail)
if po.kind == package.Kind.source:
es = p
@@ -250,19 +251,18 @@ def update_package_listings(args, packages):
install_packages = set()
for arch in pos:
install_packages.update(pos[arch].is_used_by)
- print('<span class="detail">install package(s)</span>: %s<br><br>' % ', '.join([linkify_package(p) for p in sorted(install_packages)]), file=f)
+ details_table['install package(s)'] = ', '.join([linkify_package(p) for p in sorted(install_packages)])
homepage = po.version_hints[po.best_version].get('homepage', None)
if homepage:
- print('<span class="detail">homepage</span>: <a href="%s">%s</a><br><br>' % (homepage, homepage), file=f)
+ details_table['homepage'] = '<a href="%s">%s</a>' % (homepage, homepage)
+
lic = po.version_hints[po.best_version].get('license', None)
if lic:
- print('<span class="detail">license</span>: %s' % (lic), file=f)
- print('<span class="smaller">(<a href="https://spdx.org/licenses/">SPDX</a>)</span>', file=f)
- print('<br><br>', file=f)
+ details_table['license'] = '%s <span class="smaller">(<a href="https://spdx.org/licenses/">SPDX</a>)</span>' % (lic)
else:
es = po.srcpackage(bv)
- print('<span class="detail">source package</span>: %s<br><br>' % linkify_package(es), file=f)
+ details_table['source package'] = linkify_package(es)
es_po = arch_package(packages, es)
if not es_po:
@@ -281,24 +281,29 @@ def update_package_listings(args, packages):
pkg_groups = pkg_maintainers[m_pn].groups()
if m:
- print('<span class="detail">maintainer(s)</span>: %s ' % m, file=f)
-
- print(textwrap.dedent('''\
+ details_table['maintainer(s)'] = m + textwrap.dedent('''
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
- <a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>'''), file=f)
- print('<br><br>', file=f)
+ <a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>''')
if pkg_groups:
- print('<span class="detail">group</span>: %s ' % ','.join(pkg_groups), file=f)
- print('<br><br>', file=f)
+ details_table['groups'] = ','.join(pkg_groups)
if po.kind == package.Kind.source:
if args.repodir:
repo = os.path.join(args.repodir, '%s.git' % pn)
if os.path.exists(repo):
repo_browse_url = '/cgit/cygwin-packages/%s/' % pn
- print('<span class="detail">packaging repository</span>: <a href="%s">%s.git</a>' % (repo_browse_url, pn), file=f)
+ details_table['packaging repository'] = '<a href="%s">%s.git</a>' % (repo_browse_url, pn)
+
+ # output details table
+ print('<table class="pkgdetails">', file=f)
+ for d, v in details_table.items():
+ if not v.startswith('<p>'):
+ v = '<p>' + v + '</p>'
+ print('<tr><td><p><span class="detail">%s</span>:</p></td><td>%s</td></tr>' % (d, v), file=f)
+ print('</table>', file=f)
+ # output per-arch package versions table
print('<ul>', file=f)
for arch in sorted(packages):
if p in packages[arch]:
diff --git a/test/testdata/htdocs.expected/summary/arc-src.html b/test/testdata/htdocs.expected/summary/arc-src.html
index 49fcead..439b271 100755
--- a/test/testdata/htdocs.expected/summary/arc-src.html
+++ b/test/testdata/htdocs.expected/summary/arc-src.html
@@ -10,19 +10,20 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: arc</h1>
-<span class="detail">summary</span>: The ARC archive utility<br><br>
-<span class="detail">description</span>: This program is based on the MSDOS ARC program, version 5.21, plus a
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>The ARC archive utility</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>This program is based on the MSDOS ARC program, version 5.21, plus a
few enhancements. ARC performs Huffman Squeezing on data. The Huffman
Squeeze algorithm was removed from MSDOS ARC after version 5.12. It
turns out to be more efficient than Lempel-Ziv style compression when
compressing graphic images. Squeeze analysis is always done now, and
-the best of packing, squeezing, or crunching is used.<br><br>
-<span class="detail">categories</span>: Archive<br><br>
-<span class="detail">install package(s)</span>: <a href="arc.html">arc</a><br><br>
-<span class="detail">maintainer(s)</span>: Jari Aalto
+the best of packing, squeezing, or crunching is used.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Archive</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="arc.html">arc</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/arc.html b/test/testdata/htdocs.expected/summary/arc.html
index 2662c07..595e278 100644
--- a/test/testdata/htdocs.expected/summary/arc.html
+++ b/test/testdata/htdocs.expected/summary/arc.html
@@ -10,19 +10,20 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: arc</h1>
-<span class="detail">summary</span>: The ARC archive utility<br><br>
-<span class="detail">description</span>: This program is based on the MSDOS ARC program, version 5.21, plus a
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>The ARC archive utility</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>This program is based on the MSDOS ARC program, version 5.21, plus a
few enhancements. ARC performs Huffman Squeezing on data. The Huffman
Squeeze algorithm was removed from MSDOS ARC after version 5.12. It
turns out to be more efficient than Lempel-Ziv style compression when
compressing graphic images. Squeeze analysis is always done now, and
-the best of packing, squeezing, or crunching is used.<br><br>
-<span class="detail">categories</span>: Archive<br><br>
-<span class="detail">source package</span>: <a href="arc-src.html">arc</a><br><br>
-<span class="detail">maintainer(s)</span>: Jari Aalto
+the best of packing, squeezing, or crunching is used.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Archive</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="arc-src.html">arc</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/base-cygwin.html b/test/testdata/htdocs.expected/summary/base-cygwin.html
index 2ab918b..de9b17e 100644
--- a/test/testdata/htdocs.expected/summary/base-cygwin.html
+++ b/test/testdata/htdocs.expected/summary/base-cygwin.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: base-cygwin</h1>
-<span class="detail">summary</span>: Initial base installation helper script<br><br>
-<span class="detail">description</span>: Initial base installation helper script.<br><br>
-<span class="detail">categories</span>: Base<br><br>
-<span class="detail">depends</span>: cygwin-api0_291<br><br>
-<span class="detail">source package</span>: base-cygwin-src<br><br>
-<span class="detail">maintainer(s)</span>: Corinna Vinschen
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Initial base installation helper script</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Initial base installation helper script.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p>cygwin-api0_291</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p>base-cygwin-src</p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/corrupt-src.html b/test/testdata/htdocs.expected/summary/corrupt-src.html
index 76dc66d..0d9f881 100755
--- a/test/testdata/htdocs.expected/summary/corrupt-src.html
+++ b/test/testdata/htdocs.expected/summary/corrupt-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: corrupt</h1>
-<span class="detail">summary</span>: A corrupt package<br><br>
-<span class="detail">description</span>: A package containing corrupt archives<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">install package(s)</span>: <a href="corrupt.html">corrupt</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>A corrupt package</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>A package containing corrupt archives</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="corrupt.html">corrupt</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/corrupt.html b/test/testdata/htdocs.expected/summary/corrupt.html
index ccc03e5..08442ea 100644
--- a/test/testdata/htdocs.expected/summary/corrupt.html
+++ b/test/testdata/htdocs.expected/summary/corrupt.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: corrupt</h1>
-<span class="detail">summary</span>: A corrupt package<br><br>
-<span class="detail">description</span>: A package containing corrupt archives<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">source package</span>: <a href="corrupt-src.html">corrupt</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>A corrupt package</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>A package containing corrupt archives</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="corrupt-src.html">corrupt</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html
index 3f2ccff..3a32e97 100644
--- a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html
+++ b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html
@@ -10,16 +10,17 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: cygwin-debuginfo</h1>
-<span class="detail">summary</span>: Debug info for cygwin<br><br>
-<span class="detail">description</span>: This package contains files necessary for debugging the
-cygwin package with gdb.<br><br>
-<span class="detail">categories</span>: Debug<br><br>
-<span class="detail">depends</span>: <a href="cygwin-debuginfo.html">cygwin-debuginfo</a><br><br>
-<span class="detail">source package</span>: <a href="cygwin-src.html">cygwin</a><br><br>
-<span class="detail">maintainer(s)</span>: Corinna Vinschen, Yaakov Selkowitz
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Debug info for cygwin</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>This package contains files necessary for debugging the
+cygwin package with gdb.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Debug</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="cygwin-debuginfo.html">cygwin-debuginfo</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="cygwin-src.html">cygwin</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/cygwin-devel.html b/test/testdata/htdocs.expected/summary/cygwin-devel.html
index 8081737..e5ab745 100644
--- a/test/testdata/htdocs.expected/summary/cygwin-devel.html
+++ b/test/testdata/htdocs.expected/summary/cygwin-devel.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: cygwin-devel</h1>
-<span class="detail">summary</span>: Core development files<br><br>
-<span class="detail">description</span>: Core development files required to build Cygwin packages<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">source package</span>: <a href="cygwin-src.html">cygwin</a><br><br>
-<span class="detail">maintainer(s)</span>: Corinna Vinschen, Yaakov Selkowitz
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Core development files</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Core development files required to build Cygwin packages</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="cygwin-src.html">cygwin</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/cygwin-src.html b/test/testdata/htdocs.expected/summary/cygwin-src.html
index d19e118..9ad7b0d 100755
--- a/test/testdata/htdocs.expected/summary/cygwin-src.html
+++ b/test/testdata/htdocs.expected/summary/cygwin-src.html
@@ -10,18 +10,17 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: cygwin</h1>
-<span class="detail">summary</span>: The UNIX emulation engine<br><br>
-<span class="detail">description</span>: The UNIX emulation engine<br><br>
-<span class="detail">categories</span>: Base<br><br>
-<span class="detail">install package(s)</span>: <a href="cygwin.html">cygwin</a>, <a href="cygwin-debuginfo.html">cygwin-debuginfo</a>, <a href="cygwin-devel.html">cygwin-devel</a><br><br>
-<span class="detail">license</span>: LGPL-3.0-or-later WITH LGPL-3.0-linking-exception
-<span class="smaller">(<a href="https://spdx.org/licenses/">SPDX</a>)</span>
-<br><br>
-<span class="detail">maintainer(s)</span>: Corinna Vinschen, Yaakov Selkowitz
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>The UNIX emulation engine</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>The UNIX emulation engine</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="cygwin.html">cygwin</a>, <a href="cygwin-debuginfo.html">cygwin-debuginfo</a>, <a href="cygwin-devel.html">cygwin-devel</a></p></td></tr>
+<tr><td><p><span class="detail">license</span>:</p></td><td><p>LGPL-3.0-or-later WITH LGPL-3.0-linking-exception <span class="smaller">(<a href="https://spdx.org/licenses/">SPDX</a>)</span></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
-<span class="detail">packaging repository</span>: <a href="/cgit/cygwin-packages/cygwin/">cygwin.git</a>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+<tr><td><p><span class="detail">packaging repository</span>:</p></td><td><p><a href="/cgit/cygwin-packages/cygwin/">cygwin.git</a></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/cygwin.html b/test/testdata/htdocs.expected/summary/cygwin.html
index c3fffef..ee7dfc5 100644
--- a/test/testdata/htdocs.expected/summary/cygwin.html
+++ b/test/testdata/htdocs.expected/summary/cygwin.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: cygwin</h1>
-<span class="detail">summary</span>: The UNIX emulation engine<br><br>
-<span class="detail">description</span>: The UNIX emulation engine<br><br>
-<span class="detail">categories</span>: Base<br><br>
-<span class="detail">depends</span>: <a href="base-cygwin.html">base-cygwin</a><br><br>
-<span class="detail">source package</span>: <a href="cygwin-src.html">cygwin</a><br><br>
-<span class="detail">maintainer(s)</span>: Corinna Vinschen, Yaakov Selkowitz
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>The UNIX emulation engine</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>The UNIX emulation engine</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="base-cygwin.html">base-cygwin</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="cygwin-src.html">cygwin</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/keychain-src.html b/test/testdata/htdocs.expected/summary/keychain-src.html
index 5dd1558..6a7b984 100755
--- a/test/testdata/htdocs.expected/summary/keychain-src.html
+++ b/test/testdata/htdocs.expected/summary/keychain-src.html
@@ -10,8 +10,9 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: keychain</h1>
-<span class="detail">summary</span>: Key manager for OpenSSH<br><br>
-<span class="detail">description</span>: Keychain is an OpenSSH key manager, typically run from
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Key manager for OpenSSH</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Keychain is an OpenSSH key manager, typically run from
~/.bash_profile. When keychain is run, it checks for a running
ssh-agent, otherwise it starts one. It saves the ssh-agent environment
variables to ~/.keychain/$HOSTNAME-sh, so that subsequent logins
@@ -19,13 +20,13 @@ and non-interactive shells such as cron jobs can source the file and
make passwordless ssh connections. In addition, when keychain runs, it
verifies that the key files specified on the command-line are known to
ssh-agent, otherwise it loads them, prompting you for a password if
-necessary<br><br>
-<span class="detail">categories</span>: Utils<br><br>
-<span class="detail">install package(s)</span>: <a href="keychain.html">keychain</a><br><br>
-<span class="detail">maintainer(s)</span>: Jari Aalto
+necessary</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Utils</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="keychain.html">keychain</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/keychain.html b/test/testdata/htdocs.expected/summary/keychain.html
index d2b7ac9..91f916b 100644
--- a/test/testdata/htdocs.expected/summary/keychain.html
+++ b/test/testdata/htdocs.expected/summary/keychain.html
@@ -10,8 +10,9 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: keychain</h1>
-<span class="detail">summary</span>: Key manager for OpenSSH<br><br>
-<span class="detail">description</span>: Keychain is an OpenSSH key manager, typically run from
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Key manager for OpenSSH</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Keychain is an OpenSSH key manager, typically run from
~/.bash_profile. When keychain is run, it checks for a running
ssh-agent, otherwise it starts one. It saves the ssh-agent environment
variables to ~/.keychain/$HOSTNAME-sh, so that subsequent logins
@@ -19,14 +20,14 @@ and non-interactive shells such as cron jobs can source the file and
make passwordless ssh connections. In addition, when keychain runs, it
verifies that the key files specified on the command-line are known to
ssh-agent, otherwise it loads them, prompting you for a password if
-necessary<br><br>
-<span class="detail">categories</span>: Utils<br><br>
-<span class="detail">depends</span>: <a href="openssh.html">openssh</a><br><br>
-<span class="detail">source package</span>: <a href="keychain-src.html">keychain</a><br><br>
-<span class="detail">maintainer(s)</span>: Jari Aalto
+necessary</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Utils</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="openssh.html">openssh</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="keychain-src.html">keychain</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html
index 7596bd2..14b43b7 100644
--- a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html
+++ b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html
@@ -10,17 +10,18 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: libdns_sd-devel</h1>
-<span class="detail">summary</span>: Bonjour Zeroconf implementation<br><br>
-<span class="detail">description</span>: Bonjour, also known as zero-configuration networking, enables
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Bonjour Zeroconf implementation</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Bonjour, also known as zero-configuration networking, enables
automatic discovery of computers, devices, and services on IP networks using
-industry standard IP protocols.<br><br>
-<span class="detail">categories</span>: Net<br><br>
-<span class="detail">depends</span>: <a href="libdns_sd1.html">libdns_sd1</a><br><br>
-<span class="detail">source package</span>: <a href="mDNSResponder-src.html">mDNSResponder</a><br><br>
-<span class="detail">maintainer(s)</span>: Yaakov Selkowitz
+industry standard IP protocols.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Net</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="libdns_sd1.html">libdns_sd1</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="mDNSResponder-src.html">mDNSResponder</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/libdns_sd1.html b/test/testdata/htdocs.expected/summary/libdns_sd1.html
index 964a73a..782beac 100644
--- a/test/testdata/htdocs.expected/summary/libdns_sd1.html
+++ b/test/testdata/htdocs.expected/summary/libdns_sd1.html
@@ -10,16 +10,17 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: libdns_sd1</h1>
-<span class="detail">summary</span>: Bonjour Zeroconf implementation<br><br>
-<span class="detail">description</span>: Bonjour, also known as zero-configuration networking, enables
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Bonjour Zeroconf implementation</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Bonjour, also known as zero-configuration networking, enables
automatic discovery of computers, devices, and services on IP networks using
-industry standard IP protocols.<br><br>
-<span class="detail">categories</span>: Net<br><br>
-<span class="detail">source package</span>: <a href="mDNSResponder-src.html">mDNSResponder</a><br><br>
-<span class="detail">maintainer(s)</span>: Yaakov Selkowitz
+industry standard IP protocols.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Net</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="mDNSResponder-src.html">mDNSResponder</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/mDNSResponder-src.html b/test/testdata/htdocs.expected/summary/mDNSResponder-src.html
index 3c22768..38ccab9 100755
--- a/test/testdata/htdocs.expected/summary/mDNSResponder-src.html
+++ b/test/testdata/htdocs.expected/summary/mDNSResponder-src.html
@@ -10,16 +10,17 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: mDNSResponder</h1>
-<span class="detail">summary</span>: Bonjour Zeroconf implementation<br><br>
-<span class="detail">description</span>: Bonjour, also known as zero-configuration networking, enables
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Bonjour Zeroconf implementation</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Bonjour, also known as zero-configuration networking, enables
automatic discovery of computers, devices, and services on IP networks using
-industry standard IP protocols.<br><br>
-<span class="detail">categories</span>: Net<br><br>
-<span class="detail">install package(s)</span>: <a href="libdns_sd-devel.html">libdns_sd-devel</a>, <a href="libdns_sd1.html">libdns_sd1</a>, <a href="mDNSResponder.html">mDNSResponder</a><br><br>
-<span class="detail">maintainer(s)</span>: Yaakov Selkowitz
+industry standard IP protocols.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Net</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="libdns_sd-devel.html">libdns_sd-devel</a>, <a href="libdns_sd1.html">libdns_sd1</a>, <a href="mDNSResponder.html">mDNSResponder</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/mDNSResponder.html b/test/testdata/htdocs.expected/summary/mDNSResponder.html
index 07697eb..3c304de 100644
--- a/test/testdata/htdocs.expected/summary/mDNSResponder.html
+++ b/test/testdata/htdocs.expected/summary/mDNSResponder.html
@@ -10,17 +10,18 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: mDNSResponder</h1>
-<span class="detail">summary</span>: Bonjour Zeroconf implementation<br><br>
-<span class="detail">description</span>: Bonjour, also known as zero-configuration networking, enables
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Bonjour Zeroconf implementation</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Bonjour, also known as zero-configuration networking, enables
automatic discovery of computers, devices, and services on IP networks using
-industry standard IP protocols.<br><br>
-<span class="detail">categories</span>: Net<br><br>
-<span class="detail">depends</span>: <a href="libdns_sd1.html">libdns_sd1</a><br><br>
-<span class="detail">source package</span>: <a href="mDNSResponder-src.html">mDNSResponder</a><br><br>
-<span class="detail">maintainer(s)</span>: Yaakov Selkowitz
+industry standard IP protocols.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Net</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="libdns_sd1.html">libdns_sd1</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="mDNSResponder-src.html">mDNSResponder</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/obs-a-src.html b/test/testdata/htdocs.expected/summary/obs-a-src.html
index 5c445a6..74467e2 100755
--- a/test/testdata/htdocs.expected/summary/obs-a-src.html
+++ b/test/testdata/htdocs.expected/summary/obs-a-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: obs-a</h1>
-<span class="detail">summary</span>: obsolete package A<br><br>
-<span class="detail">description</span>: obsolete package A<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">install package(s)</span>: <a href="obs-a.html">obs-a</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>obsolete package A</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>obsolete package A</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="obs-a.html">obs-a</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/obs-a.html b/test/testdata/htdocs.expected/summary/obs-a.html
index c7164d7..298db09 100644
--- a/test/testdata/htdocs.expected/summary/obs-a.html
+++ b/test/testdata/htdocs.expected/summary/obs-a.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: obs-a</h1>
-<span class="detail">summary</span>: obsolete package A<br><br>
-<span class="detail">description</span>: obsolete package A<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">obsoleted_by</span>: <a href="test-c.html">test-c</a><br><br>
-<span class="detail">source package</span>: <a href="obs-a-src.html">obs-a</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>obsolete package A</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>obsolete package A</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">obsoleted_by</span>:</p></td><td><p><a href="test-c.html">test-c</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="obs-a-src.html">obs-a</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/obs-b-src.html b/test/testdata/htdocs.expected/summary/obs-b-src.html
index 14e8c1f..877fcf9 100755
--- a/test/testdata/htdocs.expected/summary/obs-b-src.html
+++ b/test/testdata/htdocs.expected/summary/obs-b-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: obs-b</h1>
-<span class="detail">summary</span>: obsolete package B<br><br>
-<span class="detail">description</span>: obsolete package B<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">install package(s)</span>: <a href="obs-b.html">obs-b</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>obsolete package B</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>obsolete package B</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="obs-b.html">obs-b</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/obs-b.html b/test/testdata/htdocs.expected/summary/obs-b.html
index a560262..e56bbc1 100644
--- a/test/testdata/htdocs.expected/summary/obs-b.html
+++ b/test/testdata/htdocs.expected/summary/obs-b.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: obs-b</h1>
-<span class="detail">summary</span>: obsolete package B<br><br>
-<span class="detail">description</span>: obsolete package B<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">obsoleted_by</span>: <a href="test-c.html">test-c</a><br><br>
-<span class="detail">source package</span>: <a href="obs-b-src.html">obs-b</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>obsolete package B</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>obsolete package B</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">obsoleted_by</span>:</p></td><td><p><a href="test-c.html">test-c</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="obs-b-src.html">obs-b</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/openssh-src.html b/test/testdata/htdocs.expected/summary/openssh-src.html
index 9c58103..2bf497c 100755
--- a/test/testdata/htdocs.expected/summary/openssh-src.html
+++ b/test/testdata/htdocs.expected/summary/openssh-src.html
@@ -10,16 +10,17 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: openssh</h1>
-<span class="detail">summary</span>: The OpenSSH server and client programs<br><br>
-<span class="detail">description</span>: OpenSSH is a program for logging into a remote machine and for
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>The OpenSSH server and client programs</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>OpenSSH is a program for logging into a remote machine and for
executing commands on a remote machine. It can replace rlogin and rsh,
- providing encrypted communication between two machines.<br><br>
-<span class="detail">categories</span>: Net<br><br>
-<span class="detail">install package(s)</span>: <a href="openssh.html">openssh</a><br><br>
-<span class="detail">maintainer(s)</span>: Corinna Vinschen
+ providing encrypted communication between two machines.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Net</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="openssh.html">openssh</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/openssh.html b/test/testdata/htdocs.expected/summary/openssh.html
index 2f77ed8..a78ffc3 100644
--- a/test/testdata/htdocs.expected/summary/openssh.html
+++ b/test/testdata/htdocs.expected/summary/openssh.html
@@ -10,16 +10,17 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: openssh</h1>
-<span class="detail">summary</span>: The OpenSSH server and client programs<br><br>
-<span class="detail">description</span>: OpenSSH is a program for logging into a remote machine and for
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>The OpenSSH server and client programs</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>OpenSSH is a program for logging into a remote machine and for
executing commands on a remote machine. It can replace rlogin and rsh,
- providing encrypted communication between two machines.<br><br>
-<span class="detail">categories</span>: Net<br><br>
-<span class="detail">source package</span>: <a href="openssh-src.html">openssh</a><br><br>
-<span class="detail">maintainer(s)</span>: Corinna Vinschen
+ providing encrypted communication between two machines.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Net</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="openssh-src.html">openssh</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html
index f8fd5d6..110add2 100755
--- a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html
+++ b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: per-version-replacement-hint-only</h1>
-<span class="detail">summary</span>: Per-version hint test package<br><br>
-<span class="detail">description</span>: Per-version hint test package<br><br>
-<span class="detail">categories</span>: Base<br><br>
-<span class="detail">install package(s)</span>: <a href="per-version-replacement-hint-only.html">per-version-replacement-hint-only</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="per-version-replacement-hint-only.html">per-version-replacement-hint-only</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html
index 247fe1d..fce022f 100644
--- a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html
+++ b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: per-version-replacement-hint-only</h1>
-<span class="detail">summary</span>: Per-version hint test package<br><br>
-<span class="detail">description</span>: Per-version hint test package<br><br>
-<span class="detail">categories</span>: Base<br><br>
-<span class="detail">depends</span>: <a href="cygwin.html">cygwin</a><br><br>
-<span class="detail">source package</span>: <a href="per-version-replacement-hint-only-src.html">per-version-replacement-hint-only</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="cygwin.html">cygwin</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="per-version-replacement-hint-only-src.html">per-version-replacement-hint-only</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/per-version-src.html b/test/testdata/htdocs.expected/summary/per-version-src.html
index f265123..3703449 100755
--- a/test/testdata/htdocs.expected/summary/per-version-src.html
+++ b/test/testdata/htdocs.expected/summary/per-version-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: per-version</h1>
-<span class="detail">summary</span>: Per-version hint test package<br><br>
-<span class="detail">description</span>: Per-version hint test package<br><br>
-<span class="detail">categories</span>: Base<br><br>
-<span class="detail">install package(s)</span>: <a href="per-version.html">per-version</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="per-version.html">per-version</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/per-version.html b/test/testdata/htdocs.expected/summary/per-version.html
index dc4bdc0..2fdd500 100644
--- a/test/testdata/htdocs.expected/summary/per-version.html
+++ b/test/testdata/htdocs.expected/summary/per-version.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: per-version</h1>
-<span class="detail">summary</span>: Per-version hint test package<br><br>
-<span class="detail">description</span>: Per-version hint test package<br><br>
-<span class="detail">categories</span>: Base<br><br>
-<span class="detail">depends</span>: <a href="base-cygwin.html">base-cygwin</a><br><br>
-<span class="detail">source package</span>: <a href="per-version-src.html">per-version</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Per-version hint test package</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="base-cygwin.html">base-cygwin</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="per-version-src.html">per-version</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html
index f9cec36..ec4255c 100755
--- a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html
+++ b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: perl-Net-SMTP-SSL</h1>
-<span class="detail">summary</span>: Perl distribution Net-SMTP-SSL<br><br>
-<span class="detail">description</span>: Implements the same API as Net::SMTP, but uses IO::Socket::SSL for
-its network operations in order to support encrypted connections.<br><br>
-<span class="detail">categories</span>: Perl<br><br>
-<span class="detail">install package(s)</span>: <a href="perl-Net-SMTP-SSL.html">perl-Net-SMTP-SSL</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey, Yaakov Selkowitz
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Perl distribution Net-SMTP-SSL</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Implements the same API as Net::SMTP, but uses IO::Socket::SSL for
+its network operations in order to support encrypted connections.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Perl</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="perl-Net-SMTP-SSL.html">perl-Net-SMTP-SSL</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html
index 10e040f..0f42fb3 100644
--- a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html
+++ b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: perl-Net-SMTP-SSL</h1>
-<span class="detail">summary</span>: Perl distribution Net-SMTP-SSL<br><br>
-<span class="detail">description</span>: Implements the same API as Net::SMTP, but uses IO::Socket::SSL for
-its network operations in order to support encrypted connections.<br><br>
-<span class="detail">categories</span>: Perl<br><br>
-<span class="detail">source package</span>: <a href="perl-Net-SMTP-SSL-src.html">perl-Net-SMTP-SSL</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey, Yaakov Selkowitz
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Perl distribution Net-SMTP-SSL</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Implements the same API as Net::SMTP, but uses IO::Socket::SSL for
+its network operations in order to support encrypted connections.</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Perl</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="perl-Net-SMTP-SSL-src.html">perl-Net-SMTP-SSL</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/rpm-doc-src.html b/test/testdata/htdocs.expected/summary/rpm-doc-src.html
index a84abfe..fe14c1b 100755
--- a/test/testdata/htdocs.expected/summary/rpm-doc-src.html
+++ b/test/testdata/htdocs.expected/summary/rpm-doc-src.html
@@ -10,10 +10,12 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: rpm-doc</h1>
-<span class="detail">summary</span>: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)<br><br>
-<span class="detail">description</span>: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)<br><br>
-<span class="detail">categories</span>: _obsolete<br><br>
-<span class="detail">install package(s)</span>: <a href="rpm-doc.html">rpm-doc</a><br><br>
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>_obsolete</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="rpm-doc.html">rpm-doc</a></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/rpm-doc.html b/test/testdata/htdocs.expected/summary/rpm-doc.html
index c48107e..7f18d06 100644
--- a/test/testdata/htdocs.expected/summary/rpm-doc.html
+++ b/test/testdata/htdocs.expected/summary/rpm-doc.html
@@ -10,10 +10,12 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: rpm-doc</h1>
-<span class="detail">summary</span>: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)<br><br>
-<span class="detail">description</span>: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)<br><br>
-<span class="detail">categories</span>: _obsolete<br><br>
-<span class="detail">source package</span>: <a href="rpm-doc-src.html">rpm-doc</a><br><br>
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>_obsolete</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="rpm-doc-src.html">rpm-doc</a></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/staleversion-src.html b/test/testdata/htdocs.expected/summary/staleversion-src.html
index afa229b..c5ef835 100755
--- a/test/testdata/htdocs.expected/summary/staleversion-src.html
+++ b/test/testdata/htdocs.expected/summary/staleversion-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: staleversion</h1>
-<span class="detail">summary</span>: Test package for stale version removal<br><br>
-<span class="detail">description</span>: Test package for stale version removal<br><br>
-<span class="detail">categories</span>: Shells Base<br><br>
-<span class="detail">install package(s)</span>: <a href="staleversion.html">staleversion</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Test package for stale version removal</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Test package for stale version removal</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Shells Base</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="staleversion.html">staleversion</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/staleversion.html b/test/testdata/htdocs.expected/summary/staleversion.html
index 4a86f5e..00e875a 100644
--- a/test/testdata/htdocs.expected/summary/staleversion.html
+++ b/test/testdata/htdocs.expected/summary/staleversion.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: staleversion</h1>
-<span class="detail">summary</span>: Test package for stale version removal<br><br>
-<span class="detail">description</span>: Test package for stale version removal<br><br>
-<span class="detail">categories</span>: Shells Base<br><br>
-<span class="detail">source package</span>: <a href="staleversion-src.html">staleversion</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>Test package for stale version removal</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>Test package for stale version removal</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Shells Base</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="staleversion-src.html">staleversion</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/test-c-src.html b/test/testdata/htdocs.expected/summary/test-c-src.html
index c5d1af7..e53dfe1 100755
--- a/test/testdata/htdocs.expected/summary/test-c-src.html
+++ b/test/testdata/htdocs.expected/summary/test-c-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: test-c</h1>
-<span class="detail">summary</span>: test package C<br><br>
-<span class="detail">description</span>: test package C<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">install package(s)</span>: <a href="test-c.html">test-c</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>test package C</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>test package C</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="test-c.html">test-c</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/test-c.html b/test/testdata/htdocs.expected/summary/test-c.html
index 78f4796..642cf13 100644
--- a/test/testdata/htdocs.expected/summary/test-c.html
+++ b/test/testdata/htdocs.expected/summary/test-c.html
@@ -10,16 +10,17 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: test-c</h1>
-<span class="detail">summary</span>: test package C<br><br>
-<span class="detail">description</span>: test package C<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">depends</span>: <a href="test-d.html">test-d (>= 1.0)</a>, <a href="test-e.html">test-e</a><br><br>
-<span class="detail">obsoletes</span>: <a href="obs-a.html">obs-a</a>, <a href="obs-b.html">obs-b</a><br><br>
-<span class="detail">source package</span>: <a href="test-c-src.html">test-c</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>test package C</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>test package C</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">depends</span>:</p></td><td><p><a href="test-d.html">test-d (>= 1.0)</a>, <a href="test-e.html">test-e</a></p></td></tr>
+<tr><td><p><span class="detail">obsoletes</span>:</p></td><td><p><a href="obs-a.html">obs-a</a>, <a href="obs-b.html">obs-b</a></p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="test-c-src.html">test-c</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/test-d-src.html b/test/testdata/htdocs.expected/summary/test-d-src.html
index 082e997..81a7bdb 100755
--- a/test/testdata/htdocs.expected/summary/test-d-src.html
+++ b/test/testdata/htdocs.expected/summary/test-d-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: test-d</h1>
-<span class="detail">summary</span>: test package D<br><br>
-<span class="detail">description</span>: test package D<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">install package(s)</span>: <a href="test-d.html">test-d</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>test package D</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>test package D</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="test-d.html">test-d</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/test-d.html b/test/testdata/htdocs.expected/summary/test-d.html
index 79458ea..e993c1e 100644
--- a/test/testdata/htdocs.expected/summary/test-d.html
+++ b/test/testdata/htdocs.expected/summary/test-d.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: test-d</h1>
-<span class="detail">summary</span>: test package D<br><br>
-<span class="detail">description</span>: test package D<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">source package</span>: <a href="test-d-src.html">test-d</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>test package D</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>test package D</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="test-d-src.html">test-d</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/test-e-src.html b/test/testdata/htdocs.expected/summary/test-e-src.html
index 565206e..81e6a7f 100755
--- a/test/testdata/htdocs.expected/summary/test-e-src.html
+++ b/test/testdata/htdocs.expected/summary/test-e-src.html
@@ -10,15 +10,16 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: test-e</h1>
-<span class="detail">summary</span>: test package E<br><br>
-<span class="detail">description</span>: test package E<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">build-depends</span>: <a href="cygwin-devel.html">cygwin-devel</a><br><br>
-<span class="detail">install package(s)</span>: <a href="test-e.html">test-e</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>test package E</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>test package E</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">build-depends</span>:</p></td><td><p><a href="cygwin-devel.html">cygwin-devel</a></p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="test-e.html">test-e</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/test-e.html b/test/testdata/htdocs.expected/summary/test-e.html
index ed22284..ab0a890 100644
--- a/test/testdata/htdocs.expected/summary/test-e.html
+++ b/test/testdata/htdocs.expected/summary/test-e.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: test-e</h1>
-<span class="detail">summary</span>: test package E<br><br>
-<span class="detail">description</span>: test package E<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">source package</span>: <a href="test-e-src.html">test-e</a><br><br>
-<span class="detail">maintainer(s)</span>: ORPHANED
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>test package E</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>test package E</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="test-e-src.html">test-e</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/testpackage-src.html b/test/testdata/htdocs.expected/summary/testpackage-src.html
index 5864662..1ce0be6 100755
--- a/test/testdata/htdocs.expected/summary/testpackage-src.html
+++ b/test/testdata/htdocs.expected/summary/testpackage-src.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Source Package: testpackage</h1>
-<span class="detail">summary</span>: A test package (stuff &amp; other stuff)<br><br>
-<span class="detail">description</span>: A test package (stuff &amp; other stuff)<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">install package(s)</span>: <a href="testpackage.html">testpackage</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>A test package (stuff &amp; other stuff)</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>A test package (stuff &amp; other stuff)</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="testpackage.html">testpackage</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">
diff --git a/test/testdata/htdocs.expected/summary/testpackage.html b/test/testdata/htdocs.expected/summary/testpackage.html
index ee6b282..896e12a 100644
--- a/test/testdata/htdocs.expected/summary/testpackage.html
+++ b/test/testdata/htdocs.expected/summary/testpackage.html
@@ -10,14 +10,15 @@
<div id="main">
<!--#include virtual="/top.html" -->
<h1>Package: testpackage</h1>
-<span class="detail">summary</span>: A test package (stuff &amp; other stuff)<br><br>
-<span class="detail">description</span>: A test package (stuff &amp; other stuff)<br><br>
-<span class="detail">categories</span>: Devel<br><br>
-<span class="detail">source package</span>: <a href="testpackage-src.html">testpackage</a><br><br>
-<span class="detail">maintainer(s)</span>: Blooey McFooey
+<table class="pkgdetails">
+<tr><td><p><span class="detail">summary</span>:</p></td><td><p>A test package (stuff &amp; other stuff)</p></td></tr>
+<tr><td><p><span class="detail">description</span>:</p></td><td><p>A test package (stuff &amp; other stuff)</p></td></tr>
+<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Devel</p></td></tr>
+<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="testpackage-src.html">testpackage</a></p></td></tr>
+<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
-<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span>
-<br><br>
+<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
+</table>
<ul>
<li><span class="detail">x86_64</span></li>
<table class="pkgtable">