view xsls/menu.xsls @ 648:6c0532e6982f

Visual improvements of the main menu.
author Valentin Bartenev <vbart@nginx.com>
date Mon, 20 Aug 2012 13:06:47 +0000
parents be54c443235a
children 095d1972dad9
line wrap: on
line source

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

X:stylesheet {

X:template = "menu/item" {

    <!--
      --  variables are not allowed in a template match predicate,
      --  therefore, we have to use ugly "if"s instead of elegant
      --     "menu/item[@href = $LINK]", etc.
      -->

    X:if "@href = $LINK" {
        X:if "$YEAR and @href='/'" {
            <a href="./"> news </a> <br/>
        } else {
            !{ normalize-space(text()) }<br/>
        }

    } else {
        <a>
        X:attribute "href" {

            X:if "starts-with(@href, $DIRNAME)" {
               X:if "substring-after(@href, $DIRNAME) = ''" {
                  ./

               } else {
                  !{ substring-after(@href, $DIRNAME) }
               }

            } else {
               !{ concat($ROOT, @href) }
            }
        }
        !{ normalize-space(text()) }
        </a>

        X:if "@lang" { X:text { [} !{@lang} X:text {]}}

        <br/>
    }
}


X:template = "menu/item[@year]" {
    X:if "$YEAR or $LINK='/'" {
        X:if "$YEAR=@year" {
            !{@year} <br/>
        } else {
            X:if "@href" { <a href="{@href}"> !{@year} </a> }
            <br/>
        }
    }
}


X:template = "menu/item[starts-with(@href, 'http://') or starts-with(@href, 'https://')]" {
    <a href="{@href}"> !{ normalize-space(text()) } </a>
    X:if "@lang" { X:text { [} !{@lang} X:text {]}}
    <br/>
}


X:template = "menu/item[not(@href) and not(@year)]" {
    !{ normalize-space(text()) } <br/>
}

}