const { posix: path } = require('path')
-// TODO memoize
-module.exports = (from, to) => {
+// TODO memoize me
+function relativize (to, ctx) {
+ let from
+ // legacy invocation
+ if (arguments.length > 2) {
+ [from, to, ctx] = arguments
+ } else {
+ from = ctx.data.root.page.url
+ }
+ if (!to) return '#'
if (!from || to.charAt() === '#') return to
let hash = ''
const hashIdx = to.indexOf('#')
function isDir (str) {
return str.charAt(str.length - 1) === '/'
}
+
+module.exports = relativize
<ul>
{{#with page.componentVersion}}
{{#if (and ./title (not (or ./root (eq @root.page.breadcrumbs.0.content ./title))))}}
- <li><a href="{{{relativize @root.page.url ./url}}}">{{{./title}}}</a></li>
+ <li><a href="{{{relativize ./url}}}">{{{./title}}}</a></li>
{{/if}}
{{/with}}
{{#each page.breadcrumbs}}
<li>
{{~#if (and ./url (eq ./urlType 'internal'))~}}
- <a href="{{{relativize @root.page.url ./url}}}">{{{./content}}}</a>
+ <a href="{{{relativize ./url}}}">{{{./content}}}</a>
{{~else~}}
{{{./content}}}
{{~/if~}}
<li class="version
{{~#if (and (eq ../this @root.page.component) (eq this @root.page.componentVersion))}} is-current{{/if~}}
{{~#if (eq this ../latestVersion)}} is-latest{{/if}}">
- <a href="{{{relativize @root.page.url ./url}}}">{{./displayVersion}}</a>
+ <a href="{{{relativize ./url}}}">{{./displayVersion}}</a>
</li>
{{/each}}
</ul>
{{#if page.navigation}}
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
- <h3 class="title"><a href="{{relativize page.url page.componentVersion.url}}">{{page.component.title}}</a></h3>
+ <h3 class="title"><a href="{{relativize page.componentVersion.url}}">{{page.component.title}}</a></h3>
{{> nav-tree navigation=page.navigation}}
</nav>
</div>
{{/if}}
{{#if ./url}}
<a class="nav-link" href="
- {{~#if (eq ./urlType 'internal')}}{{{relativize @root.page.url ./url}}}
+ {{~#if (eq ./urlType 'internal')}}{{{relativize ./url}}}
{{~else}}{{{./url}}}{{~/if}}">{{{./content}}}</a>
{{else}}
<span class="nav-text">{{{./content}}}</span>
{{#each page.versions}}
<a class="version
{{~#if (eq ./version @root.page.version)}} is-current{{/if~}}
- {{~#if ./missing}} is-missing{{/if}}" href="{{{relativize @root.page.url ./url}}}">{{./displayVersion}}</a>
+ {{~#if ./missing}} is-missing{{/if}}" href="{{{relativize ./url}}}">{{./displayVersion}}</a>
{{/each}}
</div>
</div>
<div class="toolbar" role="navigation">
{{> nav-toggle}}
{{#if site.homeUrl}}
- <a href="{{relativize page.url site.homeUrl}}" class="home-link{{#if page.home}} is-current{{/if}}"></a>
+ <a href="{{relativize site.homeUrl}}" class="home-link{{#if page.home}} is-current{{/if}}"></a>
{{/if}}
{{> breadcrumbs}}
{{> page-versions}}