Changed build script to use different global XSLT script for test page.

svn path=/trunk/; revision=7860
This commit is contained in:
Reinhard Müller 2007-03-03 14:52:27 +00:00
parent 222bc6dc82
commit cafa246c18
5 changed files with 420 additions and 10 deletions

192
fsfeurope.css Normal file
View File

@ -0,0 +1,192 @@
/* ========================================================================= */
/* Style sheet for fsfeurope.org */
/* ========================================================================= */
/* Colors to use:
* #202D79 - fsfe blue (the letters "fsfe" in the logo)
* #3394CE - blue dark (the bottom star)
* #4AD2F0 - blue medium (the middle star)
* #6BB340 - green mix (the overlap of the middle and the top star)
* #D0F400 - green (the top star)
* */
/* ------------------------------------------------------------------------- */
/* General definitions */
/* ------------------------------------------------------------------------- */
body {
margin: 0;
padding: 1em 0;
background: #FDFDFD;
color: #151515;
font-family: Nimbus Sans L, Helvetica, Verdana, sans-serif;
font-size: 100.01%; /* FIXME: What does this do? */
}
a {
color: #202D79;
}
a:visited {
color: #314C14; /* like green mix, but darker */
}
/* ------------------------------------------------------------------------- */
/* Logo and Focus */
/* ------------------------------------------------------------------------- */
td.focus-box {
border-left: thin solid #202D79;
width: 13em;
}
/* ------------------------------------------------------------------------- */
/* Language List */
/* ------------------------------------------------------------------------- */
td.line {
border-top: thin solid #202D79;
border-bottom: thin solid #202D79;
}
.line a {
text-decoration: none;
}
.line a:visited {
color: #202D79;
}
.line a:hover, .line a:active, .line a:focus {
background: #D0F400;
}
/* ------------------------------------------------------------------------- */
/* Menu */
/* ------------------------------------------------------------------------- */
td.menu {
border-left: thin solid #202D79;
width: 13em;
padding: 1em;
vertical-align: top;
}
a.menu {
text-decoration: none;
font-size: 15px;
font-weight: bold;
}
a.submenu {
text-decoration: none;
font-size: 13px;
padding-left: 2em;
}
a.menu:visited, a.submenu:visited {
color: #202D79;
}
a.menu:hover, a.menu:active, a.menu:focus, a.submenu:hover, a.submenu:active, a.submenu:focus {
background: #D0F400;
}
/* ------------------------------------------------------------------------- */
/* Content */
/* ------------------------------------------------------------------------- */
td.body {
padding: 0 1.5em;
width: 99%;
vertical-align: top;
}
.body {
margin-left 20px;
margin-right 20px;
}
.body h1 {
text-align: center;
color: #202D79;
}
.body h2 {
margin-left 0px;
color: #202D79;
}
.body h3 {
margin-left 0px;
color: #202D79;
}
/* ------------------------------------------------------------------------- */
/* Styles used only on some pages */
/* ------------------------------------------------------------------------- */
/* News and event items */
table.news {
margin: 0px;
border-spacing: 0px;
padding: 4px;
}
td.newstitle {
margin: 0px;
border-bottom: thin solid #202D79;
border-left: thin solid #202D79;
padding: 4px;
text-align: left;
font-weight: bold;
}
td.newsdate {
margin: 0px;
border-bottom: thin solid #202D79;
padding: 4px;
text-align: right;
font-weight: bold;
}
/* Project list */
th.projects {
width: 20%;
}
td.projects {
vertical-align: top;
}
/* Other stuff */
/* FIXME: replace with something else! */
.indent {
margin-right: 30px;
margin-left: 40px;
}
/* FIXME: Use blockquote instead for real quotations */
.quote {
font-style:italic;
margin-right: 40px;
margin-left: 50px;
}
p.footnote {
margin-right: 30px;
margin-left: 40px;
}
/* FIXME: this is probably not really code... */
code.footnote {
font-weight: bold;
}
/* FIXME: Use <strong> instead */
span.emph {
font-weight: bold;
}

219
fsfeurope.xsl Normal file
View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
encoding="UTF-8"
doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/REC-html40/loose.dtd"
indent="yes"
/>
<xsl:template match="buildinfo">
<xsl:apply-templates select="node()" />
</xsl:template>
<xsl:template match="buildinfo/document">
<xsl:element name="html">
<xsl:attribute name="lang">
<xsl:value-of select="/buildinfo/@language" />
</xsl:attribute>
<xsl:apply-templates select="node()" />
</xsl:element>
</xsl:template>
<xsl:template match="body">
<body>
<xsl:comment>
DO NOT MODIFY THIS DOCUMENT. IT WAS GENERATED BY XSLT PROCESSING
AND YOUR MODIFICATIONS WILL BE LOST. THE SOURCE OF THE DOCUMENT
IS IN THE .xml FILE USE make all TO REGENERATE
</xsl:comment>
<table width="100%">
<tr>
<td>
<a href="/"><img alt="[FSFE Logo]" src="/graphics/logo.png" border="0" align="left" /></a>
</td>
<td class="focus">
<table class="focus">
<tr>
<td colspan="2" class="focus-box">
<div align="center">
<form action="/cgi-bin/nph-redirect.cgi" method="get">
<select name="address" onchange="window.location.href=this.options[this.selectedIndex].value">
<option value="#"> - <xsl:value-of select="/buildinfo/textset/text[@id='select']" /> -</option>
<option><xsl:attribute name="value">http://www.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Global</option>
<option><xsl:attribute name="value">http://www.france.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>France</option>
<option><xsl:attribute name="value">http://www.germany.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Germany</option>
<option><xsl:attribute name="value">http://www.italy.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Italy</option>
<option><xsl:attribute name="value">http://www.spain.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Spain</option>
<option><xsl:attribute name="value">http://www.sweden.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Sweden</option>
</select><br /><br />
<input type="submit" name="submit"><xsl:attribute name="value"><xsl:value-of select="/buildinfo/textset/text[@id='selectgo']" /></xsl:attribute></input>
</form>
</div>
</td>
</tr>
<!-- <tr>
<td class="focus-top-hinge">
<xsl:value-of select="/buildinfo/textset/text[@id='find']" />
</td>
<td class="focus-box">
<form method="post" action="/search.cgi">
<input type="text" size="10" name="var" />
</form>
</td>
</tr> -->
</table>
</td>
</tr>
<tr>
<td class="line" colspan="2">
<div align="center">
<xsl:for-each select="/buildinfo/trlist/tr">
<xsl:sort select="@id" />
<xsl:choose>
<xsl:when test="@id=/buildinfo/@language">
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:when>
<xsl:otherwise>
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="@id" />.html</xsl:attribute>
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:element>
</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</xsl:for-each>
<xsl:if test="/buildinfo/@outdated='yes'"><br />
<xsl:apply-templates select="/buildinfo/textset/text[@id='outdated']/node()" />
</xsl:if>
<xsl:if test="/buildinfo/@language!=/buildinfo/document/@language"><br />
<xsl:apply-templates select="/buildinfo/textset/text[@id='notranslation']/node()" />
</xsl:if>
</div>
</td>
</tr>
<tr>
<td class="body" valign="top">
<xsl:apply-templates select="node()"/>
</td>
<td class="menu" width="150">
<xsl:for-each select="/buildinfo/menuset/menu[not(@parent)]">
<xsl:sort select="@id" />
<xsl:variable name="id"><xsl:value-of select="@id" /></xsl:variable>
<a class="menu" href="{.}">
<xsl:value-of select="/buildinfo/textset/text[@id=$id]" />
</a> <br />
<xsl:for-each select="/buildinfo/menuset/menu[@parent=$id]">
<xsl:sort select="@id" />
<a class="submenu" href="{.}">
<xsl:variable name="mid"><xsl:value-of select="@id" /></xsl:variable>
<xsl:value-of select="/buildinfo/textset/text[@id=$mid]" />
</a> <br />
</xsl:for-each>
</xsl:for-each>
<!-- "Join the Fellowship" button -->
<br/>
<a href="https://www.fsfe.org/join"><img alt="Join the Fellowship" src="/graphics/global/Join_Fellowship.png" border="0"/></a>
<br/>
<!-- "Donate Today" button >
<br/>
<a href="/help/paypal.html"><img alt="Donate today" src="/graphics/global/Become_Patron2006_w_small.png" border="0"/></a>
<br/-->
</td>
</tr>
<tr>
<td class="line" colspan="2">
<div align="center">
<xsl:apply-templates
select="/buildinfo/textset/text[@id='copyright']/node()" />
<!-- "Last changed" magic -->
<xsl:variable name="timestamp">
<xsl:value-of select="/buildinfo/document/timestamp" />
</xsl:variable>
<!-- FIXME: over time, all pages should have the timestamp -->
<!-- tags, so this conditional could be removed -->
<xsl:if test="string-length ($timestamp) &gt; 0">
<xsl:variable name="Date">
<xsl:value-of select="substring-before (substring-after
($timestamp, 'Date: '), ' $')" />
</xsl:variable>
<xsl:variable name="Author">
<xsl:value-of select="substring-before (substring-after
($timestamp, 'Author: '), ' $')" />
</xsl:variable>
<xsl:apply-templates
select="/buildinfo/textset/text[@id='lastchanged']/node()" />
<xsl:value-of select="translate ($Date, '/', '-')" />
(<xsl:value-of select="$Author" />)
</xsl:if>
<!-- Link to the XHTML source -->
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:text>/source</xsl:text>
<xsl:value-of select="/buildinfo/@filename" />
<xsl:text>.</xsl:text>
<xsl:value-of select="/buildinfo/document/@language" />
<xsl:text>.xhtml</xsl:text>
</xsl:attribute>
<xsl:text>[XHTML]</xsl:text>
</xsl:element>
<!-- Insert the inofficial translation notice if appropriate -->
<xsl:if test="/buildinfo/document/@translation='unofficial'">
<xsl:element name="br" />
<xsl:value-of select="/buildinfo/textset/text[@id='translator1']" />
<xsl:value-of select="/buildinfo/document/translator" />
<xsl:value-of select="/buildinfo/textset/text[@id='translator2']" />
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="/buildinfo/@filename" />
<xsl:text>.en.html</xsl:text>
</xsl:attribute>
<xsl:value-of select="/buildinfo/textset/text[@id='translator3']" />
</xsl:element>
<xsl:value-of select="/buildinfo/textset/text[@id='translator4']" />
</xsl:if>
<br />
<xsl:apply-templates
select="/buildinfo/textset/text[@id='permission']/node()" />
<br />
<xsl:apply-templates
select="/buildinfo/textset/text[@id='webmaster']/node()" />
</div>
</td>
</tr>
</table>
</body>
</xsl:template>
<xsl:template match="head">
<head>
<link rel="stylesheet" href="/fsfeurope.css" type="text/css" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<xsl:apply-templates select="@*|node()"/>
</head>
</xsl:template>
<xsl:template match="timestamp|translator|buildinfo/set|buildinfo/textset|buildinfo/menuset|buildinfo/trlist" />
<xsl:template match="@*|node()" priority="-1">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

BIN
graphics/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -37,6 +37,7 @@ use POSIX qw(strftime);
#
our %countries = (
global => 'en',
test => 'en',
de => 'de',
es => 'es',
it => 'it',
@ -140,6 +141,9 @@ my $xslt_parser = XML::LibXSLT->new();
my $global_style_doc = $parser->parse_file($opts{i}."/fsfe-new.xsl");
my $global_stylesheet = $xslt_parser->parse_stylesheet($global_style_doc);
my $test_style_doc = $parser->parse_file($opts{i}."/fsfeurope.xsl");
my $test_stylesheet = $xslt_parser->parse_stylesheet($test_style_doc);
#
# First topic of today: create all directories we need. Instead of creating
# these as they are used, we create them in a batch at the beginning of each
@ -472,7 +476,11 @@ while (my ($file, $langs) = each %bases) {
#
# Do the actual transformation.
#
my $results = $global_stylesheet->transform($dom);
if ($dir eq "test") {
my $results = $test_stylesheet->transform($dom);
} else {
my $results = $global_stylesheet->transform($dom);
}
#
# In post-processing, we replace links pointing back to ourselves

View File

@ -88,15 +88,6 @@ echo "$(date) Obfuscating email addresses."
# files to operate on to those files that actually contain an '@'.
find ${TMP} -type f -name "*.html" | xargs grep -l '@' | xargs sed -i 's/@/\&#64;/g'
# -----------------------------------------------------------------------------
echo "$(date) Creating test site."
# -----------------------------------------------------------------------------
cp -rf ${TMP}/global ${TMP}/test
for file in $(find ${TMP}/test -name "*.test.*"); do
ln -sf $(basename ${file}) ${file/.test/}
done
# -----------------------------------------------------------------------------
echo "$(date) Activating new output."
# -----------------------------------------------------------------------------