news: Output reStructuredText for the ASCII version

The ASCII output our scripts produce is already very close to
reStructuredText, and with just a few extra tweaks we can get
almost all of the way there.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Andrea Bolognani 2020-06-02 12:24:45 +02:00
parent 1482f2148c
commit 0ccfcd0361
2 changed files with 43 additions and 17 deletions

View File

@ -8,36 +8,48 @@
<!-- Document -->
<xsl:template match="/libvirt">
<xsl:text>libvirt releases
<xsl:text>================
libvirt releases
================
This is the list of official releases for libvirt, along with an overview of
the changes introduced by each of them.
For a more fine-grained view, use the `git log`_.
</xsl:text>
<xsl:apply-templates select="release"/>
<xsl:text>
==============================================================================
Older libvirt releases didn't have proper release notes: if you are interested
in changes between them, you should check out docs/news-*.html or the full git
in changes between them, you should check out docs/news-\*.html or the full git
log (see instructions in ChangeLog).
.. _git log: https://gitlab.com/libvirt/libvirt/-/commits/master
</xsl:text>
</xsl:template>
<!-- Release -->
<xsl:template match="release">
<xsl:text>
# </xsl:text>
</xsl:text>
<xsl:value-of select="@version"/>
<xsl:text> (</xsl:text>
<xsl:value-of select="@date"/>
<xsl:text>)
===================
</xsl:text>
<xsl:apply-templates select="section"/>
</xsl:template>
<!-- Section -->
<xsl:template match="section">
<xsl:text>
* </xsl:text>
* **</xsl:text>
<xsl:value-of select="@title"/>
<xsl:text>
<xsl:text>**
</xsl:text>
<xsl:apply-templates select="change"/>
</xsl:template>
@ -60,10 +72,24 @@ log (see instructions in ChangeLog).
<!-- Change description -->
<xsl:template match="description">
<xsl:text>
</xsl:text>
<xsl:text>|</xsl:text> <!-- This will be removed when reformatting -->
<xsl:value-of select="normalize-space()"/>
<xsl:apply-templates/>
<xsl:text>
</xsl:text>
</xsl:template>
<!-- Regular text in change description -->
<xsl:template match="description//text()">
<xsl:value-of select="normalize-space()"/>
</xsl:template>
<!-- <code> HTML tag in change description -->
<xsl:template match="description//code">
<xsl:text disable-output-escaping="yes"> ``</xsl:text>
<xsl:apply-templates/>
<xsl:text disable-output-escaping="yes">`` </xsl:text>
</xsl:template>
</xsl:stylesheet>

View File

@ -61,22 +61,22 @@ def reformat(line):
# on the first character
marker = line[0]
# Release
if marker == '#':
# Section
if marker == '*':
initial_indent = 0
indent = 2
# Section
elif marker == '*':
initial_indent = 2
indent = 4
# Change summary
elif marker == '-':
initial_indent = 4
indent = 6
initial_indent = 2
indent = 4
# We use different markers to be able to tell apart the various
# possible indentation levels, but we want to always output the
# same marker in the generated file
line = '*' + line[1:]
# Change description
elif marker == '|':
initial_indent = 8
indent = 8
initial_indent = 4
indent = 4
# In this one case, the marker should not ultimately show
# up in the output file, so we strip it before moving on
line = line[1:]