fix: update permalink handling in subpath setting

This commit is contained in:
geekifan
2025-05-11 17:58:59 +08:00
parent 102129f36a
commit f615f3bd8a
6 changed files with 89 additions and 88 deletions

View File

@ -1,7 +1,7 @@
{{ $origin := cond (eq .Site.Params.assets.self_host true) "basic" "cors" }} {{ $origin := cond (eq .Site.Params.assets.self_host true) "basic" "cors" }}
{{ $data := index .Site.Data.origin $origin }} {{ $data := index .Site.Data.origin $origin }}
{{ $is_home := false }} {{ $is_home := false }}
{{ if or (eq .RelPermalink "/") (eq .RelPermalink (relLangURL "/")) }} {{ if or (eq .RelPermalink "/") (eq .RelPermalink (relLangURL "/")) (eq .RelPermalink (.Site.Home.RelPermalink)) }}
{{ $is_home = true }} {{ $is_home = true }}
{{ end }} {{ end }}
{{ $is_categories := and (eq .Kind "taxonomy") (eq .Type "categories") }} {{ $is_categories := and (eq .Kind "taxonomy") (eq .Type "categories") }}

View File

@ -1,10 +1,11 @@
<div class="lang-dropdown"> <div class="lang-dropdown">
<select class="lang-select" onchange="location = this.value;"> <select class="lang-select" onchange="location = this.value;">
{{ $currentLang := .Site.Language.Lang }} {{ $currentLang := .Site.Language.Lang }}
{{ $siteBase := strings.TrimSuffix "/" .Site.BaseURL }}
{{ range .Site.Languages }} {{ range .Site.Languages }}
<option value="/{{ .Lang }}/" {{ if eq .Lang $currentLang }}selected{{ end }}> <option value="{{ $siteBase }}/{{ .Lang }}/" {{ if eq .Lang $currentLang }}selected{{ end }}>
{{ .LanguageName }} {{ .LanguageName }}
</option> </option>
{{ end }} {{ end }}
</select> </select>
</div> </div>

View File

@ -1,87 +1,87 @@
<!-- The Side Bar --> <!-- The Side Bar -->
<aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end"> <aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end">
<header class="profile-wrapper"> <header class="profile-wrapper">
<a href="{{ .Site.Home.RelPermalink }}" id="avatar" class="rounded-circle"> <a href="{{ .Site.Home.RelPermalink }}" id="avatar" class="rounded-circle">
{{- if .Site.Params.avatar -}} {{- if .Site.Params.avatar -}}
{{- $avatar := resources.Get .Site.Params.avatar -}} {{- $avatar := resources.Get .Site.Params.avatar -}}
{{- if $avatar -}} {{- if $avatar -}}
<img src="{{ $avatar.RelPermalink }}" width="112" height="112" alt="avatar" onerror="this.style.display='none'"> <img src="{{ $avatar.RelPermalink }}" width="112" height="112" alt="avatar" onerror="this.style.display='none'">
{{- else -}} {{- else -}}
<img src="{{ .Site.Params.avatar | absURL }}" width="112" height="112" alt="avatar" onerror="this.style.display='none'"> <img src="{{ .Site.Params.avatar | absURL }}" width="112" height="112" alt="avatar" onerror="this.style.display='none'">
{{- end -}}
{{- end -}} {{- end -}}
</a> {{- end -}}
</a>
<a class="site-title d-block" href="{{ .Site.Home.RelPermalink }}">{{ .Site.Title }}</a>
{{ if .Site.Params.tagline }}
<p class="site-subtitle fst-italic mb-0">{{ .Site.Params.tagline }}</p>
{{ end }}
</header>
<!-- .profile-wrapper -->
<nav class="flex-column flex-grow-1 w-100 ps-0"> <a class="site-title d-block" href="{{ .Site.Home.RelPermalink }}">{{ .Site.Title }}</a>
<ul class="nav"> {{ if .Site.Params.tagline }}
{{ range .Site.Menus.main }} <p class="site-subtitle fst-italic mb-0">{{ .Site.Params.tagline }}</p>
{{ $active := false }} {{ end }}
{{ if eq (.URL | relLangURL) $.RelPermalink }} </header>
{{ $active = true }} <!-- .profile-wrapper -->
{{ end }}
<li class="nav-item{{ if $active }} active{{ end }}"> <nav class="flex-column flex-grow-1 w-100 ps-0">
<a href="{{ .URL | relLangURL }}" class="nav-link"> <ul class="nav">
<i class="fa-fw fas {{ .Pre }}"></i> {{ range .Site.Menus.main }}
<span>{{ .Name | upper }}</span> {{ $active := false }}
</a> {{ if eq (.URL) $.RelPermalink }}
</li> {{ $active = true }}
<!-- .nav-item -->
{{ end }} {{ end }}
<li class="nav-item mt-4"> <li class="nav-item{{ if $active }} active{{ end }}">
<a class="nav-link no-hover"> <a href="{{ .URL }}" class="nav-link">
<i class="fa-fw fas fa-language"></i> <i class="fa-fw fas {{ .Pre }}"></i>
{{ partial "language-selector.html" . }} <span>{{ .Name | upper }}</span>
</a> </a>
</li> </li>
</ul> <!-- .nav-item -->
</nav> {{ end }}
<li class="nav-item mt-4">
<a class="nav-link no-hover">
<i class="fa-fw fas fa-language"></i>
{{ partial "language-selector.html" . }}
</a>
</li>
</ul>
</nav>
<div class="sidebar-bottom d-flex flex-wrap align-items-center w-100"> <div class="sidebar-bottom d-flex flex-wrap align-items-center w-100">
{{ if not .Site.Params.themeMode }} {{ if not .Site.Params.themeMode }}
<button type="button" class="btn btn-link nav-link" aria-label="Switch Mode" id="mode-toggle"> <button type="button" class="btn btn-link nav-link" aria-label="Switch Mode" id="mode-toggle">
<i class="fas fa-adjust"></i> <i class="fas fa-adjust"></i>
</button> </button>
{{ if .Site.Params.social.links }} {{ if .Site.Params.social.links }}
<span class="icon-border"></span> <span class="icon-border"></span>
{{ end }}
{{ end }} {{ end }}
{{ end }}
{{ range .Site.Params.social.links }}
{{ $url := "" }} {{ range .Site.Params.social.links }}
{{ $rel := "" }} {{ $url := "" }}
{{ $rel := "" }}
{{ if eq .type "github" }}
{{ $url = printf "https://github.com/%s" .id }} {{ if eq .type "github" }}
{{ else if eq .type "twitter" }} {{ $url = printf "https://github.com/%s" .id }}
{{ $url = printf "https://twitter.com/%s" .id }} {{ else if eq .type "twitter" }}
{{ else if eq .type "email" }} {{ $url = printf "https://twitter.com/%s" .id }}
{{ $url = printf "mailto:%s" .id }} {{ else if eq .type "email" }}
{{ else if eq .type "rss" }} {{ $url = printf "mailto:%s" .id }}
{{ $url = "index.xml" | relLangURL }} {{ else if eq .type "rss" }}
{{ else }} {{ $url = "index.xml" | absLangURL }}
{{ $url = .url }} {{ else }}
{{ end }} {{ $url = .url }}
{{ if $url }}
<a
href="{{ $url }}"
aria-label="{{ .type }}"
{{ if not .noblank }}target="_blank" rel="noopener noreferrer"{{ end }}
{{ if eq .type "mastodon" }}rel="me"{{ end }}
>
<i class="{{ .icon }}"></i>
</a>
{{ end }}
{{ end }} {{ end }}
</div>
<!-- .sidebar-bottom --> {{ if $url }}
</aside> <a
<!-- #sidebar --> href="{{ $url }}"
aria-label="{{ .type }}"
{{ if not .noblank }}target="_blank" rel="noopener noreferrer"{{ end }}
{{ if eq .type "mastodon" }}rel="me"{{ end }}
>
<i class="{{ .icon }}"></i>
</a>
{{ end }}
{{ end }}
</div>
<!-- .sidebar-bottom -->
</aside>
<!-- #sidebar -->

View File

@ -5,27 +5,27 @@
{{ $page := . }} {{ $page := . }}
{{ $url := .RelPermalink }} {{ $url := .RelPermalink }}
{{ $paths := split (trim $url "/") "/" }} {{ $paths := split (trim $url "/") "/" }}
{{ $is_home := or (eq $url "/") (eq $url (relLangURL "/")) }} {{ $is_home := or (eq $url "/") (eq $url (relLangURL "/")) (eq .RelPermalink (.Site.Home.RelPermalink)) }}
{{ if $is_home }} {{ if $is_home }}
<!-- index page --> <!-- index page -->
<span>{{ T "tabs.home" | title }}</span> <span>{{ T "tabs.home" | title }}</span>
{{else}} {{else}}
<span> <span>
<a href="{{ "/" | relLangURL }}"> <a href="{{ .Site.Home.RelPermalink }}">
{{- T "tabs.home" | title -}} {{- T "tabs.home" | title -}}
</a> </a>
</span> </span>
{{ if eq $page.Type "tags" }} {{ if eq $page.Type "tags" }}
{{ if .Data.Term}} {{ if .Data.Term}}
<span><a href="{{ "/tags/" | relLangURL }}">{{i18n "tabs.tags"}}</a></span> <span><a href="{{ "tags/" | absLangURL }}">{{i18n "tabs.tags"}}</a></span>
<span>{{ .Data.Term }}</span> <span>{{ .Data.Term }}</span>
{{ else }} {{ else }}
<span>{{i18n "tabs.tags"}}</span> <span>{{i18n "tabs.tags"}}</span>
{{ end }} {{ end }}
{{ else if eq $page.Type "categories" }} {{ else if eq $page.Type "categories" }}
{{ if .Data.Term}} {{ if .Data.Term}}
<span><a href="{{ "/categories/" | relLangURL }}">{{i18n "tabs.categories"}}</a></span> <span><a href="{{ "categories/" | absLangURL }}">{{i18n "tabs.categories"}}</a></span>
<span>{{ .Data.Term }}</span> <span>{{ .Data.Term }}</span>
{{ else }} {{ else }}
<span>{{i18n "tabs.categories"}}</span> <span>{{i18n "tabs.categories"}}</span>

View File

@ -38,7 +38,7 @@
<div id="h_{{ $index }}" class="card-header d-flex justify-content-between hide-border-bottom"> <div id="h_{{ $index }}" class="card-header d-flex justify-content-between hide-border-bottom">
<span class="ms-2"> <span class="ms-2">
<i class="far fa-folder{{ if gt (len $subcategories) 0 }}-open{{ end }} fa-fw"></i> <i class="far fa-folder{{ if gt (len $subcategories) 0 }}-open{{ end }} fa-fw"></i>
<a href="{{ "/categories/" | relLangURL }}{{ $parentName | urlize }}" class="mx-2">{{ $parentName }}</a> <a href="{{ "categories/" | absLangURL }}{{ $parentName | urlize }}" class="mx-2">{{ $parentName }}</a>
<span class="text-muted small font-weight-light"> <span class="text-muted small font-weight-light">
{{ if gt (len $subcategories) 0 }} {{ if gt (len $subcategories) 0 }}
{{ len $subcategories }} {{ len $subcategories }}
@ -86,7 +86,7 @@
<li class="list-group-item"> <li class="list-group-item">
<i class="far fa-folder fa-fw"></i> <i class="far fa-folder fa-fw"></i>
<a href="{{ "/categories/" | relLangURL }}{{ $subCategoryName | urlize }}" class="mx-2">{{ $subCategoryName }}</a> <a href="{{ "categories/" | absLangURL }}{{ $subCategoryName | urlize }}" class="mx-2">{{ $subCategoryName }}</a>
<span class="text-muted small font-weight-light"> <span class="text-muted small font-weight-light">
{{ len $subPages }} {{ len $subPages }}
{{ if gt (len $subPages) 1 }} {{ if gt (len $subPages) 1 }}

View File

@ -14,7 +14,7 @@
{{ range $sorted_tags }} {{ range $sorted_tags }}
<div> <div>
<a class="tag" href="{{ "/tags/" | relLangURL }}{{ . | urlize }}/"> <a class="tag" href="{{ "tags/" | absLangURL }}{{ . | urlize }}/">
{{ . -}} {{ . -}}
<span class="text-muted">{{ len (index $.Site.Taxonomies.tags .) }}</span> <span class="text-muted">{{ len (index $.Site.Taxonomies.tags .) }}</span>
</a> </a>