view xsls/link.xsls @ 372:978b9e3897f7

For links to documents, use the document name as the link's text by default.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 30 Jan 2012 09:54:25 +0000
parents 7db449e89e92
children fa74f8061fc5
line wrap: on
line source

X:stylesheet {


<!-- {a href="/en/docs/page.xml" /} -->

X:template = "a[starts-with(@href, '/')
                and string() = ''
                and contains(@href, '.xml')]"
{
    <a>
    X:attribute "href" {

        <!--
          --  variables are not allowed in a template match predicate:
          --     a[starts-with(@href, $DIRNAME) ... ]
          --  therefore, we have to test this using "if"
          -->

        X:if "starts-with(@href, $DIRNAME)" {

           <!-- convert to a link "docs/page.html" -->

           !{ substring-after(document(concat($XML, @href))/article/@link
                              |document(concat($XML, @href))/module/@link,
                              $DIRNAME) }
        } else {

           <!-- convert to a link "../../../en/docs/page.html" -->

           !{ concat($ROOT, document(concat($XML, @href))/article/@link
                            |document(concat($XML, @href))/module/@link) }
        }
    }
    !{  document(concat($XML, @href))/article/@name
       |document(concat($XML, @href))/module/@name }
    </a>
}


<!-- {a href="/en/docs/page.xml"} TEXT {/a} -->

X:template = "a[starts-with(@href, '/')
                and string()
                and contains(@href, '.xml')]"
{
    <a>
    X:attribute "href" {
        X:if "starts-with(@href, $DIRNAME)" {
           !{ substring-after(document(concat($XML, @href))/article/@link
                              |document(concat($XML, @href))/module/@link,
                              $DIRNAME) }
        } else {
           !{ concat($ROOT, document(concat($XML, @href))/article/@link
                            |document(concat($XML, @href))/module/@link) }
        }
    }
    !!;
    </a>
}

X:template = "a" { <a href="{@href}"> !!; </a> }

X:template = "img" { <img src="{@href}"> !!; </img> }

X:template = "link[@url]" { <a href="{@url}"> !!; </a> }

X:template = "link[@id and not(@doc)]" {
    <a href="#{@id}">
    X:if "count(node()) != 0" { !!; } else { !{@id} }
    </a>
}

X:template = "link[@doc and not(@id)]" {
    <a href="{substring-before(@doc, '.xml')}.html">
    X:if "count(node()) != 0" {
        !!;
    } else {
        !{ document(@doc)/article/@name | document(@doc)/module/@name }
    }
    </a>
}

X:template = "link[@id and @doc]" {
    <a href="{substring-before(@doc, '.xml')}.html#{@id}">
    X:if "count(node()) != 0" { !!; } else { !{@id} }
    </a>
}

}