From 585901d155c3ea29acacab600b33ca3621fa339e Mon Sep 17 00:00:00 2001 From: Ourai Lin Date: Tue, 18 Apr 2023 14:59:07 +0800 Subject: [PATCH] feat: support base URL for doc layout --- .../themes/lime/layout/_ksio/components/doc-toc.ejs | 12 +++++++----- src/hexo/themes/lime/layout/_ksio/layouts/doc.ejs | 2 +- src/jekyll/_includes/ksio/components/doc-toc.html | 12 +++++++----- src/jekyll/_layouts/ksio/doc.html | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/hexo/themes/lime/layout/_ksio/components/doc-toc.ejs b/src/hexo/themes/lime/layout/_ksio/components/doc-toc.ejs index 558df59..efd2a57 100644 --- a/src/hexo/themes/lime/layout/_ksio/components/doc-toc.ejs +++ b/src/hexo/themes/lime/layout/_ksio/components/doc-toc.ejs @@ -7,18 +7,20 @@
  • <% const _inc_collection = _inc_item.collection || collection %> <% const _inc_docs = (site.data[`knosys/${repo}/${_inc_collection}`] || {}).items %> - <% const _inc_url_parts = page.path.replace('/index.html', '').slice(1).split('/') %> + <% const _inc_base_part = base || '' %> + <% const _inc_base_url = `${_inc_site_url}${_inc_base_part}` %> + <% const _inc_url_parts = page.path.replace('/index.html', '').replace(base ? new RegExp(`^${_inc_base_part}`) : '', '').slice(1).split('/') %> <% if (_inc_item.items) { %> <%= _inc_item.text %> - <%- partial('_ksio/components/doc-toc', { repo, items: _inc_item.items, collection: _inc_collection }) %> + <%- partial('_ksio/components/doc-toc', { repo, items: _inc_item.items, base: _inc_base_part, collection: _inc_collection }) %> <% } else if (_inc_item.slug) { %> <% if (_inc_collection === 'pages') { %> - class="is-selected"<% } %> href="<%= _inc_site_url %>/<%= _inc_item.slug %>/"><%= _inc_item.text %> + class="is-selected"<% } %> href="<%= _inc_base_url %>/<%= _inc_item.slug %>/"><%= _inc_item.text %> <% } else { %> - class="is-selected"<% } %> href="<%= _inc_site_url %>/<%= _inc_collection %>/<%= _inc_item.slug %>/"><%= _inc_docs[_inc_item.slug].title %> + class="is-selected"<% } %> href="<%= _inc_base_url %>/<%= _inc_collection %>/<%= _inc_item.slug %>/"><%= _inc_docs[_inc_item.slug].title %> <% } %> <% } else { %> - class="is-selected"<% } %> href="<%= _inc_site_url %>/<%= _inc_collection %>/<%= _inc_item %>/"><%= _inc_docs[_inc_item].title %> + class="is-selected"<% } %> href="<%= _inc_base_url %>/<%= _inc_collection %>/<%= _inc_item %>/"><%= _inc_docs[_inc_item].title %> <% } %>
  • <% }) %> diff --git a/src/hexo/themes/lime/layout/_ksio/layouts/doc.ejs b/src/hexo/themes/lime/layout/_ksio/layouts/doc.ejs index c448693..7f8cdbb 100644 --- a/src/hexo/themes/lime/layout/_ksio/layouts/doc.ejs +++ b/src/hexo/themes/lime/layout/_ksio/layouts/doc.ejs @@ -4,7 +4,7 @@ <% if (repo && repo.toc) { %> <% } %>
    diff --git a/src/jekyll/_includes/ksio/components/doc-toc.html b/src/jekyll/_includes/ksio/components/doc-toc.html index e576ed1..7e9798a 100644 --- a/src/jekyll/_includes/ksio/components/doc-toc.html +++ b/src/jekyll/_includes/ksio/components/doc-toc.html @@ -4,18 +4,20 @@
  • {% assign _inc_collection = _inc_item.collection | default: include.collection %} {% assign _inc_docs = site.data.knosys[include.repo][_inc_collection].items %} - {% assign _inc_url_parts = page.id | split: "/" %} + {% assign _inc_base_part = include.base | default: "" %} + {% assign _inc_base_url = _inc_site_url | append: _inc_base_part %} + {% assign _inc_url_parts = page.id | replace: _inc_base_part, "" | split: "/" %} {% if _inc_item.items %} {{ _inc_item.text }} - {% include ksio/components/doc-toc.html repo=include.repo items=_inc_item.items collection=_inc_collection %} + {% include ksio/components/doc-toc.html repo=include.repo items=_inc_item.items base=_inc_base_part collection=_inc_collection %} {% elsif _inc_item.slug %} {% if _inc_collection == "pages" %} - {{ _inc_item.text }} + {{ _inc_item.text }} {% else %} - {{ _inc_docs[_inc_item.slug].title }} + {{ _inc_docs[_inc_item.slug].title }} {% endif %} {% else %} - {{ _inc_docs[_inc_item].title }} + {{ _inc_docs[_inc_item].title }} {% endif %}
  • {% endfor %} diff --git a/src/jekyll/_layouts/ksio/doc.html b/src/jekyll/_layouts/ksio/doc.html index fff6622..66ec2a5 100644 --- a/src/jekyll/_layouts/ksio/doc.html +++ b/src/jekyll/_layouts/ksio/doc.html @@ -16,7 +16,7 @@ {% if repo and repo.toc %} {% endif %}