- Timestamp:
- 10/08/2013 08:03:29 PM (11 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 12.2, 12.2-rc1, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/loongarch-12.2, xry111/mips64el, xry111/multilib, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- 58675ce
- Parents:
- 09a35dd
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
stylesheets/lfs-xsl/docbook-xsl-1.78.1/common/olink.xsl
r09a35dd r15c7d39 2 2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 3 3 version="1.0"> 4 5 <!-- ******************************************************************** 6 $Id: olink.xsl 9650 2012-10-26 18:24:02Z bobstayton $ 7 ******************************************************************** 8 9 This file is part of the DocBook XSL Stylesheet distribution. 10 See ../README or http://docbook.sf.net/ for copyright 11 copyright and other information. 12 13 ******************************************************************** --> 4 14 5 15 <!-- Create keys for quickly looking up olink targets --> … … 46 56 <xsl:text>when using olinks with targetdoc </xsl:text> 47 57 <xsl:text>and targetptr attributes.</xsl:text> 58 </xsl:message> 59 </xsl:when> 60 <xsl:when test="namespace-uri($target.database/*) != ''"> 61 <xsl:message> 62 <xsl:text>Olink error: the targetset element and children in '</xsl:text> 63 <xsl:value-of select="$target.database.document"/> 64 <xsl:text>' should not be in any namespace.</xsl:text> 48 65 </xsl:message> 49 66 </xsl:when> … … 130 147 $target.lang)"/> 131 148 <xsl:choose> 132 <xsl:when test="key('targetptr-key', $key) /@href != ''">149 <xsl:when test="key('targetptr-key', $key)[1]/@href != ''"> 133 150 <xsl:value-of select="$key"/> 134 151 <xsl:if test="$olink.debug != 0"> … … 160 177 $target.lang)"/> 161 178 <xsl:choose> 162 <xsl:when test="key('targetptr-key', $key) /@href != ''">179 <xsl:when test="key('targetptr-key', $key)[1]/@href != ''"> 163 180 <xsl:value-of select="$key"/> 164 181 <xsl:if test="$olink.debug != 0"> … … 189 206 $target.lang)"/> 190 207 <xsl:choose> 191 <xsl:when test="key('targetptr-key', $key) /@href != ''">208 <xsl:when test="key('targetptr-key', $key)[1]/@href != ''"> 192 209 <xsl:value-of select="$key"/> 193 210 <xsl:if test="$olink.debug != 0"> … … 219 236 $target.lang)"/> 220 237 <xsl:choose> 221 <xsl:when test="key('targetptr-key', $key) /@href != ''">238 <xsl:when test="key('targetptr-key', $key)[1]/@href != ''"> 222 239 <xsl:value-of select="$key"/> 223 240 <xsl:if test="$olink.debug != 0"> … … 258 275 $target.lang)"/> 259 276 <xsl:choose> 260 <xsl:when test="key('targetptr-key', $key) /@href != ''">277 <xsl:when test="key('targetptr-key', $key)[1]/@href != ''"> 261 278 <xsl:value-of select="$key"/> 262 279 <xsl:if test="$olink.debug != 0"> … … 300 317 $target.lang)"/> 301 318 <xsl:choose> 302 <xsl:when test="key('targetptr-key', $key) /@href != ''">319 <xsl:when test="key('targetptr-key', $key)[1]/@href != ''"> 303 320 <xsl:value-of select="$key"/> 304 321 <xsl:if test="$olink.debug != 0"> … … 448 465 <xsl:variable name="target.href" > 449 466 <xsl:for-each select="$target.database" > 450 <xsl:value-of select="key('targetptr-key', $olink.key) /@href" />467 <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@href" /> 451 468 </xsl:for-each> 452 469 </xsl:variable> … … 477 494 <xsl:for-each select="$target.database" > 478 495 <xsl:value-of select="key('targetdoc-key', 479 $current.docid) /@targetdoc" />496 $current.docid)[1]/@targetdoc" /> 480 497 </xsl:for-each> 481 498 </xsl:variable> … … 485 502 <xsl:call-template name="targetpath" > 486 503 <xsl:with-param name="dirnode" 487 select="key('targetdoc-key', $current.docid) /parent::dir"/>504 select="key('targetdoc-key', $current.docid)[1]/parent::dir"/> 488 505 <xsl:with-param name="targetdoc" select="$targetdoc"/> 489 506 </xsl:call-template> … … 510 527 <xsl:variable name="docbaseuri"> 511 528 <xsl:for-each select="$target.database" > 512 <xsl:value-of select="key('targetdoc-key', $targetdoc) /@baseuri" />529 <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" /> 513 530 </xsl:for-each> 514 531 </xsl:variable> … … 522 539 <xsl:variable name="docbaseuri"> 523 540 <xsl:for-each select="$target.database" > 524 <xsl:value-of select="key('targetdoc-key', $targetdoc) /@baseuri" />541 <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" /> 525 542 </xsl:for-each> 526 543 </xsl:variable> … … 532 549 </xsl:variable> 533 550 551 <!-- Is this olink to be active? --> 552 <xsl:variable name="active.olink"> 553 <xsl:choose> 554 <xsl:when test="$activate.external.olinks = 0"> 555 <xsl:choose> 556 <xsl:when test="$current.docid = ''">1</xsl:when> 557 <xsl:when test="$targetdoc = ''">1</xsl:when> 558 <xsl:when test="$targetdoc = $current.docid">1</xsl:when> 559 <xsl:otherwise>0</xsl:otherwise> 560 </xsl:choose> 561 </xsl:when> 562 <xsl:otherwise>1</xsl:otherwise> 563 </xsl:choose> 564 </xsl:variable> 565 534 566 <!-- Form the href information --> 535 <xsl:if test="$baseuri != ''"> 536 <xsl:value-of select="$baseuri"/> 537 <xsl:if test="substring($target.href,1,1) != '#'"> 538 <!--xsl:text>/</xsl:text--> 567 <xsl:if test="$active.olink != 0"> 568 <xsl:if test="$baseuri != ''"> 569 <xsl:value-of select="$baseuri"/> 570 <xsl:if test="substring($target.href,1,1) != '#'"> 571 <!--xsl:text>/</xsl:text--> 572 </xsl:if> 539 573 </xsl:if> 540 </xsl:if>541 <!-- optionally turn off frag for PDF references -->542 <xsl:if test="not($insert.olink.pdf.frag = 0 and543 translate(substring($baseuri, string-length($baseuri) - 3),544 'PDF', 'pdf') = '.pdf'545 and starts-with($target.href, '#') )">546 < xsl:value-of select="$target.href"/>574 <!-- optionally turn off frag for PDF references --> 575 <xsl:if test="not($insert.olink.pdf.frag = 0 and 576 translate(substring($baseuri, string-length($baseuri) - 3), 577 'PDF', 'pdf') = '.pdf' 578 and starts-with($target.href, '#') )"> 579 <xsl:value-of select="$target.href"/> 580 </xsl:if> 547 581 </xsl:if> 548 582 </xsl:if> … … 576 610 <xsl:variable name="from.olink.href"> 577 611 <xsl:for-each select="$target.database" > 578 <xsl:value-of select="key('targetptr-key', $from.key) /@href" />612 <xsl:value-of select="key('targetptr-key', $from.key)[1]/@href" /> 579 613 </xsl:for-each> 580 614 </xsl:variable> … … 627 661 <xsl:variable name="xref.text" > 628 662 <xsl:for-each select="$target.database" > 629 <xsl:copy-of 630 select="key('targetptr-key', $olink.key)/xreftext/node()" /> 663 <xsl:call-template name="insert.targetdb.data"> 664 <xsl:with-param name="data" 665 select="key('targetptr-key', $olink.key)[1]/xreftext/node()" /> 666 </xsl:call-template> 631 667 </xsl:for-each> 632 668 </xsl:variable> … … 634 670 <xsl:variable name="xref.number" > 635 671 <xsl:for-each select="$target.database" > 636 <xsl:value-of select="key('targetptr-key', $olink.key) /@number" />672 <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@number" /> 637 673 </xsl:for-each> 638 674 </xsl:variable> … … 640 676 <xsl:variable name="target.elem" > 641 677 <xsl:for-each select="$target.database" > 642 <xsl:value-of select="key('targetptr-key', $olink.key) /@element" />678 <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@element" /> 643 679 </xsl:for-each> 644 680 </xsl:variable> … … 648 684 <xsl:for-each select="$target.database" > 649 685 <xsl:value-of 650 select="key('targetptr-key', $olink.key) /@lang" />686 select="key('targetptr-key', $olink.key)[1]/@lang" /> 651 687 </xsl:for-each> 652 688 </xsl:variable> … … 854 890 <xsl:with-param name="title"> 855 891 <xsl:for-each select="$target.database" > 856 <xsl:value-of select="key('targetptr-key', $olink.key)/ttl" /> 892 <xsl:call-template name="insert.targetdb.data"> 893 <xsl:with-param name="data" 894 select="key('targetptr-key', $olink.key)/ttl/node()"/> 895 </xsl:call-template> 857 896 </xsl:for-each> 858 897 </xsl:with-param> … … 860 899 <xsl:for-each select="$target.database" > 861 900 <xsl:value-of 862 select="key('targetptr-key', $olink.key) /@number" />901 select="key('targetptr-key', $olink.key)[1]/@number" /> 863 902 </xsl:for-each> 864 903 </xsl:with-param> … … 866 905 <xsl:for-each select="$target.database" > 867 906 <xsl:value-of 868 select="key('targetptr-key', $olink.key) /@page" />907 select="key('targetptr-key', $olink.key)[1]/@page" /> 869 908 </xsl:for-each> 870 909 </xsl:with-param> 871 910 <xsl:with-param name="docname"> 872 911 <xsl:for-each select="$target.database" > 873 <xsl:value-of 874 select="key('targetdoc-key', $targetdoc)/div[1]/ttl" /> 912 <xsl:call-template name="insert.targetdb.data"> 913 <xsl:with-param name="data" 914 select="key('targetdoc-key', $targetdoc)[1]/div[1]/ttl/node()" /> 915 </xsl:call-template> 875 916 </xsl:for-each> 876 917 </xsl:with-param> … … 880 921 <xsl:when test="$use.local.olink.style != 0"> 881 922 923 <!-- Is autonumbering on? --> 924 <xsl:variable name="target.number"> 925 <xsl:for-each select="$target.database" > 926 <xsl:value-of 927 select="key('targetptr-key', $olink.key)[1]/@number" /> 928 </xsl:for-each> 929 </xsl:variable> 930 931 <xsl:variable name="autonumber"> 932 <xsl:choose> 933 <xsl:when test="$target.number != ''">1</xsl:when> 934 <xsl:otherwise>0</xsl:otherwise> 935 </xsl:choose> 936 </xsl:variable> 937 938 <xsl:variable name="number-and-title-template"> 939 <xsl:call-template name="gentext.template.exists"> 940 <xsl:with-param name="context" select="'xref-number-and-title'"/> 941 <xsl:with-param name="name" select="$target.elem"/> 942 </xsl:call-template> 943 </xsl:variable> 944 945 <xsl:variable name="number-template"> 946 <xsl:call-template name="gentext.template.exists"> 947 <xsl:with-param name="context" select="'xref-number'"/> 948 <xsl:with-param name="name" select="$target.elem"/> 949 </xsl:call-template> 950 </xsl:variable> 951 952 <xsl:variable name="context"> 953 <xsl:choose> 954 <xsl:when test="string($autonumber) != 0 955 and $number-and-title-template != 0 956 and $xref.with.number.and.title != 0"> 957 <xsl:value-of select="'xref-number-and-title'"/> 958 </xsl:when> 959 <xsl:when test="string($autonumber) != 0 960 and $number-template != 0"> 961 <xsl:value-of select="'xref-number'"/> 962 </xsl:when> 963 <xsl:otherwise> 964 <xsl:value-of select="'xref'"/> 965 </xsl:otherwise> 966 </xsl:choose> 967 </xsl:variable> 968 882 969 <xsl:variable name="template"> 883 970 <xsl:call-template name="gentext.template"> 884 <xsl:with-param name="context" select=" 'xref'"/>971 <xsl:with-param name="context" select="$context"/> 885 972 <xsl:with-param name="name" select="$target.elem"/> 886 973 <xsl:with-param name="lang" select="$lang"/> … … 892 979 <xsl:with-param name="title"> 893 980 <xsl:for-each select="$target.database" > 894 <xsl:value-of select="key('targetptr-key', $olink.key)/ttl" /> 981 <xsl:call-template name="insert.targetdb.data"> 982 <xsl:with-param name="data" 983 select="key('targetptr-key', $olink.key)[1]/ttl/node()" /> 984 </xsl:call-template> 895 985 </xsl:for-each> 896 986 </xsl:with-param> 897 987 <xsl:with-param name="label"> 898 988 <xsl:for-each select="$target.database" > 899 <xsl:value-of 900 select="key('targetptr-key', $olink.key)/@number" /> 989 <xsl:call-template name="insert.targetdb.data"> 990 <xsl:with-param name="data" 991 select="key('targetptr-key', $olink.key)[1]/@number" /> 992 </xsl:call-template> 901 993 </xsl:for-each> 902 994 </xsl:with-param> … … 917 1009 </xsl:choose> 918 1010 </xsl:when> 919 <xsl: when test="@targetdoc != '' or @targetptr != ''">1011 <xsl:otherwise> 920 1012 <xsl:if test="$olink.key != ''"> 921 1013 <xsl:message> … … 927 1019 </xsl:if> 928 1020 <xsl:text>????</xsl:text> 929 </xsl:when>930 <xsl:otherwise>931 <!-- old style olink -->932 <xsl:call-template name="olink.outline">933 <xsl:with-param name="outline.base.uri"934 select="unparsed-entity-uri(@targetdocent)"/>935 <xsl:with-param name="localinfo" select="@localinfo"/>936 <xsl:with-param name="return" select="'xreftext'"/>937 </xsl:call-template>938 1021 </xsl:otherwise> 939 1022 </xsl:choose> 1023 </xsl:template> 1024 1025 <xsl:template name="insert.targetdb.data"> 1026 <xsl:param name="data"/> 1027 <!-- Customize this to massage data further --> 1028 <xsl:copy-of select="$data"/> 940 1029 </xsl:template> 941 1030 … … 1028 1117 <xsl:for-each select="$target.database" > 1029 1118 <xsl:value-of 1030 select="key('targetptr-key', $olink.key) /@page" />1119 select="key('targetptr-key', $olink.key)[1]/@page" /> 1031 1120 </xsl:for-each> 1032 1121 </xsl:variable> … … 1068 1157 <xsl:for-each select="$target.database" > 1069 1158 <xsl:value-of 1070 select="key('targetptr-key', $olink.key) /@page" />1159 select="key('targetptr-key', $olink.key)[1]/@page" /> 1071 1160 </xsl:for-each> 1072 1161 </xsl:variable> … … 1085 1174 <xsl:for-each select="$target.database" > 1086 1175 <xsl:value-of 1087 select="key('targetdoc-key', $targetdoc) /div[1]/@targetptr" />1176 select="key('targetdoc-key', $targetdoc)[1]/div[1]/@targetptr" /> 1088 1177 </xsl:for-each> 1089 1178 </xsl:variable> … … 1091 1180 <xsl:variable name="docname"> 1092 1181 <xsl:for-each select="$target.database" > 1093 <xsl:value-of 1094 select="key('targetdoc-key', $targetdoc)/div[1]/ttl" /> 1182 <xsl:call-template name="insert.targetdb.data"> 1183 <xsl:with-param name="data" 1184 select="key('targetdoc-key', $targetdoc)[1]/div[1]/ttl/node()" /> 1185 </xsl:call-template> 1095 1186 </xsl:for-each> 1096 1187 </xsl:variable>
Note:
See TracChangeset
for help on using the changeset viewer.