view xsls/dirname.xsls @ 1082:c3a1cf38f19e

Added explicit X:text to avoid spurious whitespaces. While use of XSLScript produces no trailing whitespace and resulting link is correct, it's believed that this is by chance. XSLT produced with perl-based XSLScript replacement is slightly different (trailing whitespace after "./" isn't stripped), and X:text is required to produce proper output.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 27 Feb 2014 18:07:35 +0400
parents be54c443235a
children
line wrap: on
line source

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

X:stylesheet {


<!-- return a dirname of an article link -->

X:var DIRNAME = { !dirname (path = "$LINK") }

X:template dirname (path) {
    X:if "contains($path, '/')" {
        !{ substring-before($path, '/') }
        X:text {/}
        !dirname (path = "substring-after($path, '/')")
    }
}


<!-- return a path to the root of an article link, i.e., "../../.."  -->

X:var ROOT = { !root (path = { !{ substring($DIRNAME, 2) } }) }

X:template root (path) {
    X:if "contains($path, '/')" {
        X:text {..}
        X:if "substring-after($path, '/')" {
            X:text {/}
            !root (path = "substring-after($path, '/')")
        }
    }
}

}