source: clfs-sysroot/BOOK/stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/fop.xsl @ a18aefd

Last change on this file since a18aefd was a18aefd, checked in by Manuel Canales Esparcia <manuel@…>, 17 years ago

Added lfs-xsl stylesheets.

  • Property mode set to 100644
File size: 4.1 KB
Line 
1<?xml version='1.0' encoding="utf-8"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                xmlns:fo="http://www.w3.org/1999/XSL/Format"
4                xmlns:fox="http://xml.apache.org/fop/extensions"
5                version='1.0'>
6
7<!-- ********************************************************************
8     $Id$
9     ********************************************************************
10     (c) Stephane Bline Peregrine Systems 2001
11     Driver file to allow pdf bookmarking (based on fop implementation).
12     ******************************************************************** -->
13<!--
14In PDF bookmarks can't be used characters with code>255. This version of file
15translates characters with code>255 back to ASCII.
16
17   Pavel Zampach (zampach@volny.cz)
18-->
19
20<xsl:variable name="a-dia" select=
21"'&#257;&#259;&#261;&#263;&#265;&#267;&#269;&#271;&#273;&#275;&#277;&#279;&#281;&#283;&#339;&#285;&#287;&#289;&#291;&#293;&#295;&#297;&#299;&#301;&#303;&#305;&#309;&#311;&#314;&#316;&#318;&#320;&#322;&#324;&#326;&#328;&#331;&#333;&#335;&#337;&#341;&#343;&#345;&#347;&#349;&#351;&#353;&#355;&#357;&#359;&#361;&#363;&#365;&#367;&#369;&#371;&#373;&#375;&#378;&#380;&#382;&#256;&#258;&#260;&#262;&#264;&#266;&#268;&#270;&#272;&#274;&#276;&#278;&#280;&#282;&#338;&#284;&#286;&#288;&#290;&#292;&#294;&#296;&#298;&#300;&#302;&#304;&#308;&#310;&#313;&#315;&#317;&#319;&#321;&#323;&#325;&#327;&#330;&#332;&#334;&#336;&#340;&#342;&#344;&#346;&#348;&#350;&#352;&#354;&#356;&#358;&#360;&#362;&#364;&#366;&#368;&#370;&#372;&#374;&#376;&#377;&#379;&#381;'"/>
22<xsl:variable name="a-asc" select=
23"'aaaccccddeeeeeegggghhiiiiijklllllnnnnooorrrsssstttuuuuuuwyzzzAAACCCCDDEEEEEEGGGGHHIIIIIJKLLLLLNNNNOOORRRSSSSTTTUUUUUUWYYZZZ'"/>
24
25<xsl:template match="*" mode="fop.outline">
26  <xsl:variable name="id">
27    <xsl:value-of select="(@id|@xml:id)[1]"/>
28  </xsl:variable>
29  <xsl:if test="$id != ''">
30    <fox:destination internal-destination="{$id}"/>
31  </xsl:if>
32  <xsl:apply-templates select="*" mode="fop.outline"/>
33</xsl:template>
34
35<xsl:template match="set|book|part|reference|preface|chapter|appendix|article
36                     |glossary|bibliography|index|setindex
37                     |refentry
38                     |sect1|sect2|sect3|sect4|sect5|section"
39              mode="fop.outline">
40  <xsl:variable name="id">
41    <xsl:call-template name="object.id"/>
42  </xsl:variable>
43  <xsl:variable name="bookmark-label">
44    <xsl:apply-templates select="." mode="object.title.markup"/>
45  </xsl:variable>
46
47  <!-- Put the root element bookmark at the same level as its children -->
48  <!-- If the object is a set or book, generate a bookmark for the toc -->
49
50  <xsl:choose>
51    <xsl:when test="parent::*">
52      <fox:outline internal-destination="{$id}">
53        <fox:label>
54          <xsl:value-of select="normalize-space(translate($bookmark-label, $a-dia, $a-asc))"/>
55        </fox:label>
56        <xsl:apply-templates select="*" mode="fop.outline"/>
57      </fox:outline>
58    </xsl:when>
59    <xsl:otherwise>
60      <fox:outline internal-destination="{$id}">
61        <fox:label>
62          <xsl:value-of select="normalize-space(translate($bookmark-label, $a-dia, $a-asc))"/>
63        </fox:label>
64      </fox:outline>
65
66      <xsl:variable name="toc.params">
67        <xsl:call-template name="find.path.params">
68          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
69        </xsl:call-template>
70      </xsl:variable>
71
72      <xsl:if test="contains($toc.params, 'toc')
73                    and (book|part|reference|preface|chapter|appendix|article
74                         |glossary|bibliography|index|setindex
75                         |refentry
76                         |sect1|sect2|sect3|sect4|sect5|section)">
77        <fox:outline internal-destination="toc...{$id}">
78          <fox:label>
79            <xsl:call-template name="gentext">
80              <xsl:with-param name="key" select="'TableofContents'"/>
81            </xsl:call-template>
82          </fox:label>
83        </fox:outline>
84      </xsl:if>
85      <xsl:apply-templates select="*" mode="fop.outline"/>
86    </xsl:otherwise>
87  </xsl:choose>
88  <fox:destination internal-destination="{$id}"/>
89</xsl:template>
90
91</xsl:stylesheet>
92
Note: See TracBrowser for help on using the repository browser.