make current page URL argument to relativize helper optional
authorDan Allen <dan@opendevise.com>
Sat, 24 Aug 2019 09:54:58 +0000 (03:54 -0600)
committerDan Allen <dan@opendevise.com>
Sat, 24 Aug 2019 22:45:20 +0000 (22:45 +0000)
src/helpers/relativize.js
src/partials/breadcrumbs.hbs
src/partials/nav-explore.hbs
src/partials/nav-menu.hbs
src/partials/nav-tree.hbs
src/partials/page-versions.hbs
src/partials/toolbar.hbs

index 090ee24..950703a 100644 (file)
@@ -2,8 +2,16 @@
 
 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('#')
@@ -21,3 +29,5 @@ module.exports = (from, to) => {
 function isDir (str) {
   return str.charAt(str.length - 1) === '/'
 }
+
+module.exports = relativize
index 503772e..d2ce9e3 100644 (file)
@@ -3,13 +3,13 @@
   <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~}}
index b8d793b..f4b560c 100644 (file)
@@ -14,7 +14,7 @@
         <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>
index 27a667d..042f167 100644 (file)
@@ -1,7 +1,7 @@
 {{#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>
index 837fbf8..f0576bd 100644 (file)
@@ -8,7 +8,7 @@
     {{/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>
index 321635c..c6c3f05 100644 (file)
@@ -5,7 +5,7 @@
     {{#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>
index 243ab80..251a51a 100644 (file)
@@ -1,7 +1,7 @@
 <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}}