Generate releases notes using releases.rb

Make releases notes layout and urls consistent with the alerts page
Add RSS feed in download and version-history pages
Add a canonical page with a redirect to the new url
Simplify releases notes layouts
This commit is contained in:
Saivann 2013-06-19 14:04:29 -04:00
parent d45b9bbbfc
commit 6ac93df9f2
29 changed files with 118 additions and 98 deletions

View file

@ -116,14 +116,12 @@ More information will follow.
### Release Notes ### Release Notes
Release notes should be placed in `_posts/releases/YEAR-MONTH-DAY-SHORTTITLE.md` and adhere to this format: Release notes should be placed in `_releases/YYYY-MM-DD-SHORTTITLE.md` and adhere to this format:
``` ```
--- ---
layout: releases
title: Bitcoin version 0.3.24 released title: Bitcoin version 0.3.24 released
src: http://sourceforge.net/mailarchive/message.php?msg_id=27771039 src: http://sourceforge.net/mailarchive/message.php?msg_id=27771039
category: releases
--- ---
Bitcoin v0.3.24 is now available for download at Bitcoin v0.3.24 is now available for download at
@ -132,12 +130,8 @@ Bitcoin v0.3.24 is now available for download at
... ...
``` ```
* `SHORTTITLE` is used to construct the URL. Something like `v0.3.24` will be fine * `SHORTTITLE` is used to construct the URL. Something like `v0.3.24` will be fine
* `layout: releases` important for Jekyll
* `title: ...` will be used as the title * `title: ...` will be used as the title
* `src: ...` (optional) link to full annoucement * `src: ...` (optional) link to full annoucement
* `category: ...` category of post
** `releases`
** `events`
### Aliases for contributors ### Aliases for contributors

19
_layouts/release.html Normal file
View file

@ -0,0 +1,19 @@
---
layout: base
lang: en
---
{% if page.redirect != nil %}
<script>window.location.href='/en/release/{{ page.redirect }}';</script>
<link rel="canonical" href="http://bitcoin.org/en/release/{{ page.redirect }}"/>
{% endif %}
<link rel="alternate" type="application/rss+xml" href="/en/rss/releases.rss" title="Bitcoin-Qt releases">
<div class="versiontext">
<h1>{{ page.title }}<br><small>{{ page.date | date:"%e %B %Y" }}</small></h1>
{% if page.src %}
<p>
<a href="{{ page.src }}">Full announcement (including signatures)</a>
</p>
{% endif %}
{{ content }}
</div>
<a href="/en/version-history">Go back to the version history</a>

View file

@ -1,14 +0,0 @@
---
layout: base
lang: en
---
<div class="versiontext">
<h1>{{ page.title }}<br><small>{{ page.date | date:"%e %B %Y" }}</small></h1>
{% if page.src %}
<p>
<a href="{{ page.src }}">Full announcement (including signatures)</a>
</p>
{% endif %}
{{ content }}
</div>
<a href="/en/version-history">Show version history</a>

View file

@ -703,11 +703,16 @@ li p{
text-align:left; text-align:left;
margin-bottom:40px; margin-bottom:40px;
} }
.rssicon{ h1 .rssicon{
vertical-align:bottom; vertical-align:bottom;
margin-bottom:9px; margin-bottom:9px;
margin-left:10px; margin-left:10px;
} }
h2 .rssicon{
vertical-align:bottom;
margin-bottom:7px;
margin-left:10px;
}
.alertstatusinactive{ .alertstatusinactive{
font-size:130%; font-size:130%;
color:#0d579b; color:#0d579b;

51
_plugins/releases.rb Normal file
View file

@ -0,0 +1,51 @@
require 'yaml'
module Jekyll
class ReleasePage < Page
def initialize(site, base, lang, srcdir, src, dstdir, dst, year, month, day)
@site = site
@base = base
@dir = '/'+dstdir
@name = dst.gsub('.md','.html')
self.process(dst)
self.read_yaml(File.join(base, srcdir), src)
self.data['lang'] = lang
self.data['date'] = year + '-' + month + '-' + day
self.data['layout'] = 'release'
if dstdir.index('/releases/') === 0
self.data['redirect'] = dst.gsub('.md','')
else
self.data['category'] = 'release'
site.pages << ReleasePage.new(site, base, lang, srcdir, src, '/releases/' + year + '/' + month + '/' + day, dst, year, month, day)
end
end
end
class ReleasePageGenerator < Generator
def generate(site)
#generate each release based on templates
Dir.foreach('_releases') do |file|
next if file == '.' or file == '..'
lang = 'en'
src = file
dst = file.split('-')
next if dst.length < 4
year = dst.shift()
month = dst.shift()
day = dst.shift()
next if !/^[0-9]{4}$/.match(year)
next if !/^[0-9]{2}$/.match(month)
next if !/^[0-9]{2}$/.match(day)
dst = dst.join('-')
srcdir = '_releases'
dstdir = lang + '/release'
site.pages << ReleasePage.new(site, site.source, lang, '_releases', src, dstdir, dst, year, month, day)
end
#TODO releases are only generated for english language,
#but they could also be translated at some point. They would however
#need to fallback to english when no translation is available.
end
end
end

View file

@ -90,6 +90,19 @@ module Jekyll
sitemap.puts ' <loc>http://bitcoin.org/en/alert/'+file.gsub('.html','')+'</loc>' sitemap.puts ' <loc>http://bitcoin.org/en/alert/'+file.gsub('.html','')+'</loc>'
sitemap.puts '</url>' sitemap.puts '</url>'
end end
#Add english releases pages
Dir.foreach('_releases') do |file|
next if file == '.' or file == '..'
file = file.split('-')
next if file.length < 4
file.shift()
file.shift()
file.shift()
file = file.join('-')
sitemap.puts '<url>'
sitemap.puts ' <loc>http://bitcoin.org/en/release/'+file.gsub('.md','').gsub('.html','')+'</loc>'
sitemap.puts '</url>'
end
#Add posts #Add posts
site.posts.each do |post| site.posts.each do |post|
sitemap.puts '<url>' sitemap.puts '<url>'

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin version 0.3.21 released title: Bitcoin version 0.3.21 released
category: releases
version: 0.3.21
--- ---
Binaries for Bitcoin version 0.3.21 are available at: Binaries for Bitcoin version 0.3.21 are available at:

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin version 0.3.22 released title: Bitcoin version 0.3.22 released
category: releases
version: 0.3.22
--- ---
Download URL: <https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.22/> Download URL: <https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.22/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin version 0.3.23 released title: Bitcoin version 0.3.23 released
category: releases
version: 0.3.23
--- ---
Win32, Linux, MacOSX and source releases for bitcoin v0.3.23 have been uploaded to Win32, Linux, MacOSX and source releases for bitcoin v0.3.23 have been uploaded to
<https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/> <https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/>

View file

@ -1,9 +1,6 @@
--- ---
layout: releases
title: Bitcoin version 0.3.24 released title: Bitcoin version 0.3.24 released
src: http://sourceforge.net/mailarchive/message.php?msg_id=27771039 src: http://sourceforge.net/mailarchive/message.php?msg_id=27771039
category: releases
version: 0.3.24
--- ---
Bitcoin v0.3.24 is now available for download at Bitcoin v0.3.24 is now available for download at

View file

@ -1,9 +1,6 @@
--- ---
layout: releases
title: Bitcoin version 0.4.0 released title: Bitcoin version 0.4.0 released
src: http://sourceforge.net/mailarchive/message.php?msg_id=28132490 src: http://sourceforge.net/mailarchive/message.php?msg_id=28132490
category: releases
version: 0.4.0
--- ---
Bitcoin version 0.4.0 is now available for download at: Bitcoin version 0.4.0 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.0/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.0/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.5.0 released title: Bitcoin-Qt version 0.5.0 released
category: releases
version: 0.5.0
--- ---
Bitcoin-Qt version 0.5.0 is now available for download at: Bitcoin-Qt version 0.5.0 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.0/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.0/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.5.1 released title: Bitcoin-Qt version 0.5.1 released
category: releases
version: 0.5.1
--- ---
Bitcoin-Qt version 0.5.1 is now available for download at: Bitcoin-Qt version 0.5.1 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.1/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.1/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.5.2 released title: Bitcoin-Qt version 0.5.2 released
category: releases
version: 0.5.2
--- ---
Bitcoin-Qt version 0.5.2 is now available for download at: Bitcoin-Qt version 0.5.2 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.2/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.2/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.5.3 released title: Bitcoin-Qt version 0.5.3 released
category: releases
version: 0.5.3
--- ---
Bitcoin-Qt version 0.5.3 is now available for download at: Bitcoin-Qt version 0.5.3 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.3/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.3/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.5.3.1 released title: Bitcoin-Qt version 0.5.3.1 released
category: releases
version: 0.5.3.1
--- ---
Bitcoin-Qt version 0.5.3.1 for Windows is now available for download at: Bitcoin-Qt version 0.5.3.1 for Windows is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.3/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.3/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.6.0 released title: Bitcoin-Qt version 0.6.0 released
category: releases
version: 0.6.0
--- ---
Bitcoin-Qt version 0.6.0 is now available for download at: Bitcoin-Qt version 0.6.0 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.6.1 released title: Bitcoin-Qt version 0.6.1 released
category: releases
version: 0.6.1
--- ---
Bitcoin-Qt version 0.6.1 is now available for download at: Bitcoin-Qt version 0.6.1 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.1/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.1/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.6.2 released title: Bitcoin-Qt version 0.6.2 released
category: releases
version: 0.6.2
--- ---
Bitcoin-Qt version 0.6.2 is now available for download at: Bitcoin-Qt version 0.6.2 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.2/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.2/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.6.3 released title: Bitcoin-Qt version 0.6.3 released
category: releases
version: 0.6.3
--- ---
Bitcoin-Qt version 0.6.3 is now available for download at: Bitcoin-Qt version 0.6.3 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.7.0 released title: Bitcoin-Qt version 0.7.0 released
category: releases
version: 0.7.0
--- ---
Bitcoin-Qt version 0.7.0 is now available for download at: Bitcoin-Qt version 0.7.0 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.0/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.0/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.7.1 released title: Bitcoin-Qt version 0.7.1 released
category: releases
version: 0.7.1
--- ---
Bitcoin-Qt version 0.7.1 is now available for download at: Bitcoin-Qt version 0.7.1 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.1/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.1/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.7.2 released title: Bitcoin-Qt version 0.7.2 released
category: releases
version: 0.7.2
--- ---
Bitcoin-Qt version 0.7.2 is now available for download at: Bitcoin-Qt version 0.7.2 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.2/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.2/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.8.0 released title: Bitcoin-Qt version 0.8.0 released
category: releases
version: 0.8.0
--- ---
Bitcoin-Qt version 0.8.0 is now available for download at: Bitcoin-Qt version 0.8.0 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.8.1 released title: Bitcoin-Qt version 0.8.1 released
category: releases
version: 0.8.1
--- ---
Bitcoin-Qt version 0.8.1 is now available for download at: Bitcoin-Qt version 0.8.1 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/>

View file

@ -1,8 +1,5 @@
--- ---
layout: releases
title: Bitcoin-Qt version 0.8.2 released title: Bitcoin-Qt version 0.8.2 released
category: releases
version: 0.8.2
--- ---
Bitcoin-Qt version 0.8.2 is now available for download at: Bitcoin-Qt version 0.8.2 is now available for download at:
<http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.2/> <http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.2/>

View file

@ -2,8 +2,9 @@
layout: base layout: base
id: download id: download
--- ---
<link rel="alternate" type="application/rss+xml" href="/en/rss/releases.rss" title="Bitcoin-Qt releases">
<h1>{% translate pagetitle %}</h1> <h1>{% translate pagetitle %}</h1>
<h2>{% translate latestversion %}{{site.DOWNLOAD_VERSION}}</h2> <h2>{% translate latestversion %}{{site.DOWNLOAD_VERSION}}<a type="application/rss+xml" href="/en/rss/releases.rss"><img src="/img/icon_rss.svg" alt="rss" class="rssicon"></a></h2>
<p class="download"> <p class="download">
<img src="/img/dow-win.png"> <a href="http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-{{site.DOWNLOAD_VERSION}}/bitcoin-{{site.DOWNLOAD_VERSION}}-win32.zip/download">{% translate downloadwinzip %}</a> <small>~13MB</small><br> <img src="/img/dow-win.png"> <a href="http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-{{site.DOWNLOAD_VERSION}}/bitcoin-{{site.DOWNLOAD_VERSION}}-win32.zip/download">{% translate downloadwinzip %}</a> <small>~13MB</small><br>
<img src="/img/dow-win.png"> <a href="http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-{{site.DOWNLOAD_VERSION}}/bitcoin-{{site.DOWNLOAD_VERSION}}-win32-setup.exe/download">{% translate downloadwinexe %}</a> <small>~9MB</small><br> <img src="/img/dow-win.png"> <a href="http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-{{site.DOWNLOAD_VERSION}}/bitcoin-{{site.DOWNLOAD_VERSION}}-win32-setup.exe/download">{% translate downloadwinexe %}</a> <small>~9MB</small><br>

21
en/rss/releases.rss Normal file
View file

@ -0,0 +1,21 @@
---
---
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Bitcoin-Qt releases</title>
<link>http://bitcoin.org/en/version-history</link>
<description>This RSS feed allows to follow Bitcoin-Qt new releases.</description>
<image>
<url>http://bitcoin.org/img/logo_rss.png</url>
<link>http://bitcoin.org/en/version-history</link>
</image>
{% catpage_for p in site.pages reversed sort_by:date category:release %}
<item>
<title>{{ p.title }}</title>
<link>http://bitcoin.org{{ p.url | replace:'.html','' }}</link>
<pubDate>{{ p.date | date: "%a, %d %b %Y" }}</pubDate>
</item>
{% endcatpage_for %}
</channel>
</rss>

View file

@ -4,24 +4,14 @@ lang: en
id: version-history id: version-history
title: Bitcoin-Qt version history title: Bitcoin-Qt version history
--- ---
<link rel="alternate" type="application/rss+xml" href="/en/rss/releases.rss" title="Bitcoin-Qt releases">
<div class="versiontext"> <div class="versiontext">
<h1>Bitcoin-Qt version history</h1> <h1>Bitcoin-Qt version history<a type="application/rss+xml" href="/en/rss/releases.rss"><img src="/img/icon_rss.svg" alt="rss" class="rssicon"></a></h1>
<ul> <ul>
{% for post in site.categories.releases %} {% catpage_for p in site.pages reversed sort_by:date category:release %}
<li> <li>
{{ post.date | date:"%Y-%m-%d" }} - <a href="#{{ post.version }}">{{ post.title }}</a> {{ p.date | date:"%Y-%m-%d" }} - <a href="{{ p.url | replace:'.html','' }}">{{ p.title }}</a>
</li> </li>
{% endfor %} {% endcatpage_for %}
</ul> </ul>
</div> </div>
{% for post in site.categories.releases %}
<div class="versiontext">
<h1><a name="{{ post.version }}">{{ post.title }}<br><small>{{ post.date | date:"%e %B %Y" }}</small></a></h1>
{% if post.src %}
<p>
<a href="{{ post.src }}">Full announcement (including signatures)</a>
</p>
{% endif %}
{{ post.content }}
</div>
{% endfor %}