@@ -1,18 +1,57 @@
*, :before, :after {
box-sizing: border-box;

#section, #section-full {
text-align: left;
}
.section-header {
background: url("/static/img/section-bg.png") no-repeat;
color: #365800;
line-height: 38px;
height: 38px;
padding: 0px 0px 0px 10px;
text-align: left;
width: 500px;
}
.section-header h1 {
font-size: 18px;
margin-right: 20px;
margin-top: 0;
text-decoration: none;
}

.section-item {
padding-top: 10px;
}
.section-item .title {
font-size: 16px;
float: left;
padding-top: 5px;
}
html, body {
margin: 0;
padding: 0;
background-color: #fff;
color: #000;
font-size: 1em;
font-family: sans-serif;
.section-item .title h3, .section-list li .header, .section-item .title a {
color: #000000;
font-size: 18px;
font-weight: bold;
text-decoration: none;
}
.section-item .date {
text-align: right;
}
.section-item .user {
text-align: right;
padding-bottom: 5px;
}
.section-item .content {
border-top: 1px solid #EEEEEE;
font-size: 14px;
padding-top: 15px;
padding-bottom: 30px;
}

/* set common rules for the first level elements inside body (nav, header, main, footer) */
body > * {
margin: 0;
padding: 0.25em 0.5em;
padding: 0.25rem 0.5rem;
.section-list {
list-style-type: none;
}

.right {
float: right;
margin-bottom: 20px;
}

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,35 +3,52 @@
<head>
<meta charset="utf-8">
<title>{% block title %}{% endblock %} - BaNaNaS - OpenTTD</title>
<link rel="icon" href="/static/favicon.ico" type="image/icon" />
<link rel="stylesheet" href="/static/css/base.css" />
<link rel="stylesheet" href="/static/css/page.css" />
<link rel="stylesheet" href="/static/css/bananas.css" />
</head>
<body>
<nav>
<table><tr>
<td><a href="/">BaNaNaS</a></td>
<td><a href="/package/base-graphics">Base-Graphics</a><br/>
<a href="/package/base-sounds">Base-Sounds</a><br/>
<a href="/package/base-music">Base-Music</a></td>
<td><a href="/package/newgrf">NewGRFs</a></td>
<td><a href="/package/ai">AIs</a><br/>
<a href="/package/ai-library">AI-Libraries</a></td>
<td><a href="/package/game-script">Game-Scripts</a><br/>
<a href="/package/game-script-library">Game-Script-Libraries</a></td>
<td><a href="/package/scenario">Scenarios</a><br/>
<a href="/package/heightmap">Heightmaps</a></td>
<td>
<a href="/manager">Manager</a><br/>
{% if session and session.is_auth %}
<marquee>{{ session.display_name }}</marquee><br/>
<a href="/logout">Logout</a>
{% endif %}
</td>
</tr></table>
<header id="header">
<div id="header-left"></div>
<div id="header-right"></div>
<div id="header-logo">
<div id="openttd-logo">
<div id="openttd-logo-text-bananas"><a href="/"><img src="/static/img/openttd-logo-bananas.png" alt="BaNaNaS"></a></div>
</div>
</div>
</header>
<nav id="navigation">
<div id="navigation-left"></div>
<div id="navigation-right"></div>
<ul id="navigation-bar">
<li class="selected"><a href="/">BaNaNaS</a></li>
<li><a href="/package/base-graphics">Base-Graphics</a></li>
<li><a href="/package/base-sounds">Base-Sounds</a></li>
<li><a href="/package/base-music">Base-Music</a></li>
<li><a href="/package/newgrf">NewGRFs</a></li>
<li><a href="/package/ai">AIs</a></li>
<li><a href="/package/ai-library">AI-Libraries</a></li>
<li><a href="/package/game-script">Game-Scripts</a></li>
<li><a href="/package/game-script-library">Game-Script-Libraries</a></li>
<li><a href="/package/scenario">Scenarios</a></li>
<li><a href="/package/heightmap">Heightmaps</a></li>
<li>
<a href="/manager">Manager</a><br/>
{% if session and session.is_auth %}
<marquee>{{ session.display_name }}</marquee><br/>
<a href="/logout">Logout</a>
{% endif %}
</li>
</ul>
</nav>
<header>
<div id="content-main">
<div id="section-full">
<header class="section-header">
{% block header %}{% endblock %}
</header>
<main>
<main class="section-item">
<div class="content">
{% if messages %}
<ul id="system-notices">
{% for message in messages %}
@@ -40,12 +57,17 @@
</ul>
{% endif %}
{% block content %}{% endblock %}
</div>
</main>
<footer>
<p>
</div>
</div>
<footer id="footer">
<div id="content-bottom-links">
<a href="https://www.openttd.org/policy.html">Privacy Policy</a> |
</div>
<div id="content-bottom-copyright">
Copyright &copy; 2005-{{ copyyear }} OpenTTD Team
</p>
</div>
</footer>
</body>
</html>
@@ -38,21 +38,21 @@ <h3>Step 2: Upload files</h3>
<h3>Step 3: Complete the description</h3>
Note: Some of the info is filled automatically after uploading the files.

<table>
<tr><td>Content Id</td><td>{{ version["content-type"] }}/{{ version["unique-id"] }}/{{ version["md5sum-partial"] }}</td></tr>
<tr><td>Name</td><td>
<table class="package-upload-table">
<tr><th>Content Id</th><td>{{ version["content-type"] }}/{{ version["unique-id"] }}/{{ version["md5sum-partial"] }}</td></tr>
<tr><th>Name</th><td>
Enter the name of the package <b>without version number</b>. There is a separate entry for the version.
{% if package %}Leave empty to use the name from the package.{% endif %}<br/>
<input type="text" name="name" value="{{ version["name"] }}" placeholder="{{ package["name"] }}"/>
</td></tr>
<tr><td>Project site</td><td>
<tr><th>Project site</th><td>
{% if package %}Leave empty to use the URL from the package.{% endif %}<br/>
<input type="url" name="url" value="{{ version["url"] }}" placeholder="{{ package["url"] }}"/>
</td></tr>
<tr><td>Version</td><td>
<tr><th>Version</th><td>
<input type="text" name="version" value="{{ version["version"] }}"/>
</td></tr>
<tr><td>License</td><td>
<tr><th>License</th><td>
Unsure which license to pick? <a href="https://www.tt-forums.net/viewtopic.php?f=68&amp;t=55814" target="_blank">Look here</a><br/>
<select name="license">
{% if not version["license"] %}
@@ -63,7 +63,7 @@ <h3>Step 3: Complete the description</h3>
{% endfor %}
</select>
</td></tr>
<tr><td>Compatibility</td><td>
<tr><th>Compatibility</th><td>
Enter version requirements like "&gt;= 1.2.0" or "&lt; 1.10.0".
<table>
<tr>
@@ -80,7 +80,7 @@ <h3>Step 3: Complete the description</h3>
</tr>
</table>
</td></tr>
<tr><td>Dependencies</td><td>
<tr><th>Dependencies</th><td>
{% if deps_editable %}
Enter one content-id per row. You can find the 'Content Id' on the version detail page of every content item.<br/>
<textarea name="dependencies" cols="50" rows="10">
@@ -96,7 +96,7 @@ <h3>Step 3: Complete the description</h3>
</ul>
{% endif %}
</td></tr>
<tr><td>Tags</td><td>Enter one tag per row{% if package %}, leave empty to use the tags from the package{% endif %}:<br/>
<tr><th>Tags</th><td>Enter one tag per row{% if package %}, leave empty to use the tags from the package{% endif %}:<br/>
<textarea name="tags" cols="20" rows="10" placeholder="
{%- for t in package["tags"] -%}
{{ t }}
@@ -106,7 +106,7 @@ <h3>Step 3: Complete the description</h3>
{{ t }}
{% endfor -%}
</textarea></td></tr>
<tr><td>Description</td><td>
<tr><th>Description</th><td>
{% if package %}Leave empty to use the description from the package.{% endif %}<br/>
<textarea name="description" cols="50" rows="20" placeholder="{{ package["description"] }}">
{{- version["description"] -}}
@@ -1,32 +1,36 @@
{% extends 'base.html' %}
{% block header %}
<h1>{% block title %}{{ package["name"] }}{% endblock %}</h1>
<p>{{ package["content-type"] }}/{{ package["unique-id"] }}</p>
{% endblock %}
{% block content %}

<!-- {#
Known issues here:
1) form inputs require labels
2) in most cases, it's difficult to justify marking up forms as tables, we'll want to rework this
#} -->
<form method="post">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}"/>
<table>
<tr><td>Content Id</td><td>{{ package["content-type"] }}/{{ package["unique-id"] }}</td></tr>
<table class="package-edit-table">
<tr><th>Content Id</th><td>{{ package["content-type"] }}/{{ package["unique-id"] }}</td></tr>
<tr><td>Name</td><td>
<input type="text" name="name" value="{{ package["name"] }}"/>
</td></tr>
<tr><td>Project site</td><td>
<tr><th>Project site</th><td>
<input type="url" name="url" value="{{ package["url"] }}"/>
</td></tr>
<tr><td>Tags</td><td>Enter one tag per row:<br/>
<tr><th>Tags</th><td>Enter one tag per row:<br/>
<textarea name="tags" cols="20" rows="10">
{%- for t in package["tags"] -%}
{{ t }}
{% endfor -%}
</textarea></td></tr>
<tr><td>Authors</td><td><ul>
<tr><th>Authors</th><td><ul class="author-list">
{% for a in package["authors"] %}
<li>{{ a["display-name"] }}</li>
{% endfor %}
</ul></td></tr>
<tr><td>Description</td><td>
<tr><th>Description</th><td>
<textarea name="description" cols="50" rows="20">
{{- package["description"] -}}
</textarea></td></tr>
@@ -1,43 +1,48 @@
{% extends 'base.html' %}
{% block header %}
<h1>{% block title %}{{ package["name"] }}{% endblock %}</h1>
<p>{{ package["content-type"] }}/{{ package["unique-id"] }}</p>
{% endblock %}
{% block content %}

<a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/edit">Edit package meta data</a>
<table>
<tbody>
<tr><th>Content Id</th><td>{{ package["content-type"] }}/{{ package["unique-id"] }}</td></tr>
<tr><th>Name</th><td>{{ package["name"] }}</td></tr>
<tr><th>Project site</th><td>
{% if package["url"] %}
<a href="{{ package["url"] }}" target="_blank">{{ package["url"] }}</a>
{% endif %}
</td></tr>
<tr><th>Tags</th><td>
<ul>
{% for t in package["tags"] %}
<li>{{ t }}</li>
{% endfor %}
</ul>
</td></tr>
<tr><th>Authors</th><td>
<ul>
{% for a in package["authors"] %}
<li>{{ a["display-name"] }}</li>
<p><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/edit">Edit package meta data</a></p>

<table class="package-info-table">
<tbody>
<tr><th>Content Id</th><td>{{ package["content-type"] }}/{{ package["unique-id"] }}</td></tr>
<tr><th>Name</th><td>{{ package["name"] }}</td></tr>
<tr><th>Project site</th><td>
{% if package["url"] %}
<a href="{{ package["url"] }}" target="_blank">{{ package["url"] }}</a>
{% endif %}
{% if not package["url"] %}
-
{% endif %}
</td></tr>
<tr><th>Tags</th><td>
<ul class="tag-list">
{% for t in package["tags"] %}
<li>{{ t }}</li>
{% endfor %}
</ul>
</td></tr>
<tr><th>Authors</th><td>
<ul class="author-list">
{% for a in package["authors"] %}
<li>{{ a["display-name"] }}</li>
{% endfor %}
</ul>
</td></tr>
<tr><th>Description</th><td>
{% for l in package.get("description", "").splitlines() %}
{{ l }}<br/>
{% endfor %}
</ul>
</td></tr>
<tr><th>Description</th><td>
{% for l in package.get("description", "").splitlines() %}
{{ l }}<br/>
{% endfor %}
</td></tr>
</tbody>
</td></tr>
</tbody>
</table>

<table>
<hr />

<table id="bananas-table">
<thead>
<tr>
<th>Version</th>
@@ -4,52 +4,53 @@ <h1>{% block title %}Awesome content by {{ session.display_name }}{% endblock %}
{% endblock %}
{% block content %}

<table>
<thead>
<tr>
<th rowspan="2">Type</th>
<th rowspan="2">Id</th>
<th rowspan="2">Name</th>
<th colspan="3">All versions</th>
<th colspan="3">Versions for new games</th>
<th rowspan="2">Upload</th>
</tr>
<tr>
<th>Number</th>
<th>Latest version</th>
<th>Upload date</th>
<th>Number</th>
<th>Latest version</th>
<th>Upload date</th>
</tr>
</thead>
<tbody>
{% for package in packages %}
<tr>
<td>{{ package["content-type"] }}</td>
<td>{{ package["unique-id"] }}</td>
<td><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">{{ package["name"] }}</a></td>
<td>{{ package["num-all"] }}</td>
{% set latest = package["latest-all"] %}
{% if latest %}
<td><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ latest["upload-date"] }}">{{ latest["version"] }}</a></td>
<td>{{ latest["upload-date"] }}</td>
{% else %}
<td></td><td></td>
{% endif %}
<td>{{ package["num-newgame"] }}</td>
{% set latest = package["latest-newgame"] %}
{% if latest %}
<td><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ latest["upload-date"] }}">{{ latest["version"] }}</a></td>
<td>{{ latest["upload-date"] }}</td>
{% else %}
<td></td><td></td>
{% endif %}
<td><a href="/manager/new-package?unique-id={{ package["unique-id"] }}">Upload update</a></td>
</tr>
{% endfor %}
</tbody>
<table id="bananas-table">
<thead>
<tr>
<th rowspan="2">Type</th>
<th rowspan="2">Id</th>
<th rowspan="2">Name</th>
<th colspan="3">All versions</th>
<th colspan="3">Versions for new games</th>
<th rowspan="2">Upload</th>
</tr>
<tr>
<th>Number</th>
<th>Latest version</th>
<th>Upload date</th>
<th>Number</th>
<th>Latest version</th>
<th>Upload date</th>
</tr>
</thead>
<tbody>
{% for package in packages %}
<tr class="{{ loop.cycle('odd', 'even') }}">
<td>{{ package["content-type"] }}</td>
<td>{{ package["unique-id"] }}</td>
<td><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">{{ package["name"] }}</a></td>
<td>{{ package["num-all"] }}</td>
{% set latest = package["latest-all"] %}
{% if latest %}
<td><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ latest["upload-date"] }}">{{ latest["version"] }}</a></td>
<td>{{ latest["upload-date"] }}</td>
{% else %}
<td></td><td></td>
{% endif %}
<td>{{ package["num-newgame"] }}</td>
{% set latest = package["latest-newgame"] %}
{% if latest %}
<td><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ latest["upload-date"] }}">{{ latest["version"] }}</a></td>
<td>{{ latest["upload-date"] }}</td>
{% else %}
<td></td><td></td>
{% endif %}
<td><a href="/manager/new-package?unique-id={{ package["unique-id"] }}">Upload update</a></td>
</tr>
{% endfor %}
</tbody>
</table>
<hr />
<a href="/manager/new-package">Upload new content</a>

{% endblock %}
@@ -2,26 +2,25 @@
{% block title %}{{ version["name"] or package["name"] }} {{ version["version"] }}{% endblock %}
{% block header %}
<h1><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">{{ version["name"] or package["name"] }}</a> {{ version["version"] }}</h1>
<p>{{ version["content-type"] }}/{{ version["unique-id"] }}/{{ version["upload-date"] }}</p>
{% endblock %}
{% block content %}

<form method="post">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}"/>
<table>
<tr><td>Content Id</td><td>{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ version["md5sum-partial"] }}</td></tr>
<tr><td>Name</td><td>
<table class="package-version-edit-table">
<tr><th>Content Id</th><td>{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ version["md5sum-partial"] }}</td></tr>
<tr><th>Name</th><td>
Leave empty to use the name from the package.<br/>
<input type="text" name="name" value="{{ version["name"] }}" placeholder="{{ package["name"] }}"/>
</td></tr>
<tr><td>Project site</td><td>
<tr><th>Project site</th><td>
Leave empty to use the URL from the package.<br/>
<input type="url" name="url" value="{{ version["url"] }}" placeholder="{{ package["url"] }}"/>
</td></tr>
<tr><td>Version</td><td>
<tr><th>Version</th><td>
<input type="text" name="version" value="{{ version["version"] }}"/>
</td></tr>
<tr><td>Compatibility</td><td>
<tr><th>Compatibility</th><td>
Enter version requirements like "&gt;= 1.2.0" or "&lt; 1.10.0".
<table>
<tr>
@@ -38,7 +37,7 @@ <h1><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">
</tr>
</table>
</td></tr>
<tr><td>Dependencies</td><td>
<tr><th>Dependencies</th><td>
{% if deps_editable %}
Enter one content-id per row. You can find the 'Content Id' on the version detail page of every content item.<br/>
<textarea name="dependencies" cols="50" rows="10">
@@ -54,7 +53,7 @@ <h1><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">
</ul>
{% endif %}
</td></tr>
<tr><td>Tags</td><td>Enter one tag per row, leave empty to use the tags from the package:<br/>
<tr><th>Tags</th><td>Enter one tag per row, leave empty to use the tags from the package:<br/>
<textarea name="tags" cols="20" rows="10" placeholder="
{%- for t in package["tags"] -%}
{{ t }}
@@ -64,7 +63,7 @@ <h1><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">
{{ t }}
{% endfor -%}
</textarea></td></tr>
<tr><td>Description</td><td>
<tr><th>Description</th><td>
Leave empty to use the description from the package.<br/>
<textarea name="description" cols="50" rows="20" placeholder="{{ package["description"] }}">
{{- version["description"] -}}
@@ -2,12 +2,12 @@
{% block title %}{{ version["name"] or package["name"] }} {{ version["version"] }}{% endblock %}
{% block header %}
<h1><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">{{ version["name"] or package["name"] }}</a> {{ version["version"] }}</h1>
<p>{{ version["content-type"] }}/{{ version["unique-id"] }}/{{ version["upload-date"] }}</p>
{% endblock %}
{% block content %}

<a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ version["upload-date"] }}/edit">Edit version meta data</a>
<table>
<p><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ version["upload-date"] }}/edit">Edit version meta data</a></p>

<table class="package-info-table">
<tbody>
<tr><th>Content Id</th><td>{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ version["md5sum-partial"] }}</td></tr>
<tr><th>Name</th><td>{{ version["name"] or package["name"] }}</td></tr>
@@ -44,15 +44,15 @@ <h1><a href="/manager/{{ package["content-type"] }}/{{ package["unique-id"] }}">
</ul>
</td></tr>
<tr><th>Tags</th><td>
<ul>
<ul class="tag-list">
{% set tags = version["tags"] or package["tags"] %}
{% for t in tags %}
<li>{{ t }}</li>
{% endfor %}
</ul>
</td></tr>
<tr><th>Authors</th><td>
<ul>
<ul class="author-list">
{% for a in package["authors"] %}
<li>{{ a["display-name"] }}</li>
{% endfor %}
@@ -4,43 +4,43 @@ <h1>{% block title %}{{ content_type }}{% endblock %}</h1>
{% endblock %}
{% block content %}

<table>
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Project site</th>
<th>Latest version</th>
<th>Upload date</th>
<th>License</th>
<th>Download</th>
</tr>
</thead>
<tbody>
{% for package in packages %}
<tr>
<td>{{ package["unique-id"] }}</td>
<td><a href="/package/{{ package["content-type"] }}/{{ package["unique-id"] }}">{{ package["name"] }}</a></td>
<td>
{% if package["url"] %}
<a href="{{ package["url"] }}" target="_blank">{{ package["url"] }}</a>
{% endif %}
</td>
{% if package["latest"] %}
<td><a href="/package/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ package["latest"]["upload-date"] }}">{{ package["latest"]["version"] }}</a></td>
<td>{{ package["latest"]["upload-date"] }}</td>
<td>{{ package["latest"]["license"] }}</td>
{% if package["latest"]["download-url"] %}
<td><a href="{{ package["latest"]["download-url"] }}">{{ (package["latest"]["filesize"] | int) // 1024 }} kB</a></td>
<table id="bananas-table">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Project site</th>
<th>Latest version</th>
<th>Upload date</th>
<th>License</th>
<th>Download</th>
</tr>
</thead>
<tbody>
{% for package in packages %}
<tr class="{{ loop.cycle('odd', 'even') }}">
<td>{{ package["unique-id"] }}</td>
<td><a href="/package/{{ package["content-type"] }}/{{ package["unique-id"] }}">{{ package["name"] }}</a></td>
<td>
{% if package["url"] %}
<a href="{{ package["url"] }}" target="_blank">{{ package["url"] }}</a>
{% endif %}
</td>
{% if package["latest"] %}
<td><a href="/package/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ package["latest"]["upload-date"] }}">{{ package["latest"]["version"] }}</a></td>
<td>{{ package["latest"]["upload-date"] }}</td>
<td>{{ package["latest"]["license"] }}</td>
{% if package["latest"]["download-url"] %}
<td><a href="{{ package["latest"]["download-url"] }}">{{ (package["latest"]["filesize"] | int) // 1024 }} kB</a></td>
{% else %}
<td>Not available</td>
{% endif %}
{% else %}
<td>Not available</td>
<td></td><td></td><td></td><td>Not available</td>
{% endif %}
{% else %}
<td></td><td></td><td></td><td>Not available</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</tr>
{% endfor %}
</tbody>
</table>

{% endblock %}
@@ -2,10 +2,10 @@
{% block title %}{{ version["name"] or package["name"] }} {{ version["version"] }}{% endblock %}
{% block header %}
<h1><a href="/package/{{ package["content-type"] }}/{{ package["unique-id"] }}">{{ version["name"] or package["name"] }}</a> {{ version["version"] }}</h1>
<p>{{ version["content-type"] }}/{{ version["unique-id"] }}/{{ version["upload-date"] }}</p>
{% endblock %}
{% block content %}


{% if package.get("archived") %}
<p><b> This content is archived and is no longer available for new games. </b></p>
{% endif %}
@@ -14,7 +14,7 @@ <h1><a href="/package/{{ package["content-type"] }}/{{ package["unique-id"] }}">
{% elif latest %}
<p><b> There is a newer version of this content available. Please use <a href="/package/{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ latest["upload-date"] }}">version {{ latest["version"] }}</a> for new games. </b></p>
{% endif %}
<table>
<table class="package-version-info-table">
<tbody>
<tr><th>Content Id</th><td>{{ package["content-type"] }}/{{ package["unique-id"] }}/{{ version["md5sum-partial"] }}</td></tr>
<tr><th>Name</th><td>{{ version["name"] or package["name"] }}</td></tr>