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" }}
{{ $data := index .Site.Data.origin $origin }}
{{ $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 }}
{{ end }}
{{ $is_categories := and (eq .Kind "taxonomy") (eq .Type "categories") }}

View File

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

View File

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

View File

@ -5,27 +5,27 @@
{{ $page := . }}
{{ $url := .RelPermalink }}
{{ $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 }}
<!-- index page -->
<span>{{ T "tabs.home" | title }}</span>
{{else}}
<span>
<a href="{{ "/" | relLangURL }}">
<a href="{{ .Site.Home.RelPermalink }}">
{{- T "tabs.home" | title -}}
</a>
</span>
{{ if eq $page.Type "tags" }}
{{ 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>
{{ else }}
<span>{{i18n "tabs.tags"}}</span>
{{ end }}
{{ else if eq $page.Type "categories" }}
{{ 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>
{{ else }}
<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">
<span class="ms-2">
<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">
{{ if gt (len $subcategories) 0 }}
{{ len $subcategories }}
@ -86,7 +86,7 @@
<li class="list-group-item">
<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">
{{ len $subPages }}
{{ if gt (len $subPages) 1 }}

View File

@ -14,7 +14,7 @@
{{ range $sorted_tags }}
<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>
</a>