view xsls/body.xsls @ 2846:fdf1464e1977

Moved banner to the external file to make partial rollout possible. An idea is to have several banners and show them with different probability specified by split directive in the nginx.conf
author Sergey Budnevitch <sb@waeme.net>
date Tue, 10 May 2022 18:07:27 +0400
parents b17f7a53bc58
children 80cc4e6d3d6d
line wrap: on
line source

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

X:stylesheet {

X:template body (lang) {

    X:variable MENU_ALIGN = {
        X:if "$lang = 'he'" { X:text {left} } else { X:text {right} }
    }

    X:variable INDEX_ALIGN = {
        X:if "$lang = 'he'" { X:text {right} } else { X:text {left} }
    }

    <body>

    <div id="banner">
    </div>

    <div id="main">
    <div id="menu">
        <h1>
            X:if "@lang = 'he'" { X:attribute "align" { X:text{left} } }
            <a href="/">
                <img src="/nginx.png" alt="nginx" />
            </a>
        </h1>
        <div>
        !! "document(concat($XML, '/menu.xml'))
                        /menus/menu[@lang = $lang]/item";
        </div>
    </div>

    <div id="content">
        <h2>
        !{@name} X:if "$YEAR" { X:text{: } !{$YEAR} }
        </h2>

        X:if "$ORIGIN and document(concat($XML, '/', $ORIGIN))/*/@rev and
              (not(@rev) or
              @rev != document(concat($XML, '/', $ORIGIN))/*/@rev)"
        {
            <span>

            X:if "@lang = 'he'" { X:attribute "class" { X:text{ltr} } }

            <blockquote class="note">

            X:if "document(concat($XML, '/i18n.xml'))
                           /i18n/text[@lang = $lang]/item[@id='outdated']" {
                !! "document(concat($XML, '/i18n.xml'))
                             /i18n/text[@lang = $lang]/item[@id='outdated']";
            } else {
                !! "document(concat($XML, '/i18n.xml'))
                             /i18n/text[@lang = 'en']/item[@id='outdated']";
            }

            </blockquote>
            </span>
        }

        X:if "@toc = 'yes' and section[@id and @name]" {
            <table width="100%"><tr><td align="{$INDEX_ALIGN}">
            X:for-each "section[@id and @name]" {
                <a href="#{@id}"> !{@name} </a><br/>
                X:for-each "section[@id and @name]" {
                    X:text{&#160;&#160;&#160;&#160;&#160;}
                    <a href="#{@id}"> !{@name} </a><br/>
                }
                X:if "@id = 'directives'" {
                    X:for-each "directive[@name]" {
                        X:text{&#160;&#160;&#160;&#160;&#160;}
                        <a href="#{@name}"> !{@name} </a><br/>
                    }
                }
                X:if "@id = 'endpoints'" {
                    X:for-each "para/list/tag-name[@name]" {
                        X:text{&#160;&#160;&#160;&#160;&#160;}
                        <a href="#{@id}"> !{@name} </a><br/>
                    }
                }

            }
            </td></tr></table>
        }

        !!;

        X:if "@author or @editor or @translator" {
            <table width="100%"><tr><td align="right">

            X:if "@author" {
                !{document(concat($XML, '/i18n.xml'))
                           /i18n/text[@lang = $lang]/item[@id='author']}
                X:text { } !{@author} <br/>
            }

            X:if "@editor" {
                !{document(concat($XML, '/i18n.xml'))
                           /i18n/text[@lang = $lang]/item[@id='editor']}
                X:text { } !{@editor} <br/>
            }

            X:if "@translator" {
                !{document(concat($XML, '/i18n.xml'))
                           /i18n/text[@lang = $lang]/item[@id='translator']}
                X:text { } !{@translator} <br/>
            }

            </td></tr></table>
        }
    </div>
    </div>
    </body>

}

}