updates to try and fix partial includes issue
1. Restored resume.md: Left exactly as it was.
2. Configured hugo.toml Mounts: I mounted /srv/configs into the virtual assets namespace. This
securely gives Hugo access to those files as raw static resources.
3. Updated include Partial: I rewrote the shortcode partial (layouts/partials/include.html) to:
* Intercept absolute paths starting with /srv/configs/, map them to configs/..., and retrieve
their raw text content using resources.Get.
* Intercept paths starting with /srv/docs/private/, look them up as a Page, and use .RawContent
instead of .Content (which prevents Hugo from wrapping your Markdown in HTML <p> tags when
injecting it into your code blocks).
* Strip any YAML frontmatter from the raw content using a regex replaceRE block.
This commit is contained in:
@@ -1,6 +1,4 @@
|
|||||||
# -- Site Configuration --
|
# -- Site Configuration --
|
||||||
# Refer to the theme docs for more details about each of these parameters.
|
|
||||||
# https://nunocoracao.github.io/blowfish/docs/getting-started/
|
|
||||||
|
|
||||||
theme = ["hugo-admonitions", "blowfish"]
|
theme = ["hugo-admonitions", "blowfish"]
|
||||||
baseURL = "https://wiki.wompmacho.com/"
|
baseURL = "https://wiki.wompmacho.com/"
|
||||||
@@ -14,8 +12,6 @@ buildDrafts = true
|
|||||||
buildFuture = true
|
buildFuture = true
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
|
|
||||||
# googleAnalytics = "G-XXXXXXXXX"
|
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tag = "tags"
|
tag = "tags"
|
||||||
category = "categories"
|
category = "categories"
|
||||||
@@ -23,19 +19,16 @@ enableEmoji = true
|
|||||||
series = "series"
|
series = "series"
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
changefreq = 'daily'
|
changefreq = "daily"
|
||||||
filename = 'sitemap.xml'
|
filename = "sitemap.xml"
|
||||||
priority = 0.5
|
priority = 0.5
|
||||||
|
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["HTML", "RSS", "JSON"]
|
home = ["HTML", "RSS", "JSON"]
|
||||||
|
|
||||||
[frontmatter]
|
[frontmatter]
|
||||||
# Hugo will check for 'lastmod' in the file first,
|
|
||||||
# then the Git commit date, then the 'date' field.
|
|
||||||
lastmod = ["lastmod", ":git", "date"]
|
lastmod = ["lastmod", ":git", "date"]
|
||||||
|
|
||||||
# Required if you want to use the Git commit date automatically
|
|
||||||
enableGitInfo = true
|
enableGitInfo = true
|
||||||
|
|
||||||
[markup.tableOfContents]
|
[markup.tableOfContents]
|
||||||
@@ -52,4 +45,13 @@ enableGitInfo = true
|
|||||||
target = "content/private"
|
target = "content/private"
|
||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "/srv/configs"
|
source = "/srv/configs"
|
||||||
target = "content/configs"
|
target = "assets/configs"
|
||||||
|
|
||||||
|
[security]
|
||||||
|
[security.funcs]
|
||||||
|
readFile = [".*"]
|
||||||
|
"os.Stat" = [".*"]
|
||||||
|
"os.ReadDir" = [".*"]
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "assets"
|
||||||
|
target = "assets"
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
[funcs]
|
|
||||||
readFile = ["^/srv/configs/.*", "^/srv/docs/private/.*", "^static/.*"]
|
|
||||||
os.Stat = ["^/srv/configs/.*", "^/srv/docs/private/.*", "^static/.*"]
|
|
||||||
os.ReadDir = ["^/srv/configs/.*", "^/srv/docs/private/.*", "^static/.*"]
|
|
||||||
@@ -1,46 +1,44 @@
|
|||||||
{{/*
|
|
||||||
Partial: include.html
|
|
||||||
Simple include using content/configs mount
|
|
||||||
*/}}
|
|
||||||
{{- $path := .path -}}
|
{{- $path := .path -}}
|
||||||
{{- $context := .context -}}
|
|
||||||
|
|
||||||
{{- $originalPath := $path -}}
|
|
||||||
{{- $found := false -}}
|
|
||||||
{{- $content := "" -}}
|
{{- $content := "" -}}
|
||||||
{{- $isMarkdown := strings.HasSuffix (lower $path) ".md" -}}
|
{{- $found := false -}}
|
||||||
|
|
||||||
{{/* 1. Map /srv/configs/ -> content/configs/ */}}
|
{{- /* Handle /srv/configs/ mapping to assets mount (mounted at assets/configs) */ -}}
|
||||||
{{- $mappedPath := replace $path "/srv/configs/" "content/configs/" -}}
|
{{- if strings.HasPrefix $path "/srv/configs/" -}}
|
||||||
{{- $mappedPath = strings.TrimLeft "/" $mappedPath -}}
|
{{- $assetPath := strings.TrimPrefix "/srv/" $path -}}
|
||||||
|
{{- $res := resources.Get $assetPath -}}
|
||||||
{{- if fileExists $mappedPath -}}
|
{{- if $res -}}
|
||||||
{{- $content = readFile $mappedPath -}}
|
{{- $content = $res.Content -}}
|
||||||
{{- $found = true -}}
|
{{- $found = true -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/* 2. Map /srv/docs/private/ -> content/private/ */}}
|
{{- /* Handle /srv/docs/private/ mapping to content mount */ -}}
|
||||||
{{- if not $found -}}
|
{{- if not $found -}}
|
||||||
{{- $mappedPath = replace $path "/srv/docs/private/" "content/private/" -}}
|
{{- if strings.HasPrefix $path "/srv/docs/private/" -}}
|
||||||
{{- $mappedPath = strings.TrimLeft "/" $mappedPath -}}
|
{{- $pagePath := strings.TrimPrefix "/srv/docs/private/" $path -}}
|
||||||
{{- if fileExists $mappedPath -}}
|
{{- $p := site.GetPage (printf "private/%s" $pagePath) -}}
|
||||||
{{- $content = readFile $mappedPath -}}
|
{{- if $p -}}
|
||||||
|
{{- $content = $p.RawContent -}}
|
||||||
|
{{- $found = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- /* Handle relative or other paths by direct Page lookup */ -}}
|
||||||
|
{{- if not $found -}}
|
||||||
|
{{- $p := site.GetPage $path -}}
|
||||||
|
{{- if $p -}}
|
||||||
|
{{- $content = $p.RawContent -}}
|
||||||
{{- $found = true -}}
|
{{- $found = true -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if $found -}}
|
{{- if $found -}}
|
||||||
{{- if $isMarkdown -}}
|
{{- /* Fallback manual frontmatter strip for assets that might have it */ -}}
|
||||||
{{/* Strip frontmatter if it exists */}}
|
{{- if findRE "^---" $content -}}
|
||||||
{{- if (findRE "^---" $content) -}}
|
{{- $content = replaceRE "^(?s)---[\\s\\S]*?---[\\r\\n]*" "" $content -}}
|
||||||
{{- $content = replaceRE "^(?s)---.*?---[\\r\\n]*" "" $content -}}
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $context.RenderString $content -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{/* Output raw content for non-markdown files */}}
|
|
||||||
{{- $content | safeHTML -}}
|
{{- $content | safeHTML -}}
|
||||||
{{- end -}}
|
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- warnf "Include file not found: %s" $originalPath -}}
|
{{- warnf "WARN Include file not found: %s" $path -}}
|
||||||
<p class="text-red-500 font-bold">[Include Error: File "{{ $originalPath }}" not found]</p>
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
Reference in New Issue
Block a user