Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Commits
3fcfd606
Commit
3fcfd606
authored
4 years ago
by
Regis Philibert
Committed by
XhmikosR
4 years ago
Browse files
Options
Download
Email Patches
Plain Diff
Add Hugo Pipes logic for local and vendored scripts.
parent
6b071116
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
config.yml
+5
-3
config.yml
site/layouts/partials/func/get-js-assets.html
+74
-0
site/layouts/partials/func/get-js-assets.html
site/layouts/partials/scripts.html
+4
-14
site/layouts/partials/scripts.html
with
83 additions
and
17 deletions
+83
-17
config.yml
+
5
-
3
View file @
3fcfd606
...
@@ -40,10 +40,12 @@ module:
...
@@ -40,10 +40,12 @@ module:
target
:
static/apple-touch-icon.png
target
:
static/apple-touch-icon.png
-
source
:
site/static/docs/5.0/assets/img/favicons/favicon.ico
-
source
:
site/static/docs/5.0/assets/img/favicons/favicon.ico
target
:
static/favicon.ico
target
:
static/favicon.ico
# docsearch is referenced in a `script` tag so we just mount it in the static folder
# the following are processed via Hugo pipes so we need them in the assets folder
## the following will be printed with Hugo pipes
-
source
:
node_modules/docsearch.js/dist/cdn/docsearch.min.js
-
source
:
node_modules/docsearch.js/dist/cdn/docsearch.min.js
target
:
static/docs/5.0/
assets/js/vendor/docsearch.min.js
target
:
assets/js/vendor/docsearch.min.js
#
t
he following
are concatenated via Hugo pipes with docs.js so we need them in the assets folder
#
# T
he following
vendor files will be bundled together on top of local js files as /docs.js
-
source
:
node_modules/anchor-js/anchor.min.js
-
source
:
node_modules/anchor-js/anchor.min.js
target
:
assets/js/vendor/anchor.min.js
target
:
assets/js/vendor/anchor.min.js
-
source
:
node_modules/bs-custom-file-input/dist/bs-custom-file-input.min.js
-
source
:
node_modules/bs-custom-file-input/dist/bs-custom-file-input.min.js
...
...
This diff is collapsed.
Click to expand it.
site/layouts/partials/func/get-js-assets.html
0 → 100644
+
74
-
0
View file @
3fcfd606
{{/*
get-js-assets
Returns a list of processed Hugo Assets to be used in templates
@author @regisphilibert
@context Page (.)
@access public
@example - Go Template
{{- range partialCached "func/get-js-assets" . $variant -}}
<script
src=
"{{ .RelPermalink }}"
></script>
{{- end -}}
*/}}
{{/* We'll return a slice so templates can safely use `range` */}}
{{ $jsAssets := slice }}
{{/* Storing the reused mount warning message */}}
{{ $missing_file_warning := "%s not found. Check your mounts settings." }}
{{ $doc_version := site.Params.docs_version }}
{{/* Doc Search */}}
{{ if eq .Page.Layout "docs" -}}
{{ with resources.GetMatch "js/vendor/docsearch.min.js" }}
{{/* As this is a WIP, we don't customize the asset URL,
but we will after Hugo .74 and resources.Put (https://github.com/gohugoio/hugo/issues/7406):
{{ with resources.GetMatch "js/vendor/docsearch.min.js" }}
{{ $docsearch := . | resources.Put (printf /docs/%s/assets/js/vendor/docsearch.min.js" $doc_version) }}
{{ $jsAssets = $jsAssets | append $docsearch }}
*/}}
{{ $jsAssets = $jsAssets | append . }}
{{ else }}
{{ warnf $missing_file_warning "docsearch.min.js" }}
{{ end }}
{{- end }}
{{/* --- Bundle */}}
{{ $bundle := slice }}
{{/* ----- Mounted from vendors */}}
{{- $vendor_assets := slice -}}
{{/* As we need to list the desired mounted files to:
1. Check for missing mounts and throw an error
2. Control order if need be
3. Exclude docsearch (though there would be other ways) */}}
{{ $vendor_filenames := slice "clipboard.min.js" "anchor.min.js" "bs-custom-file-input.min.js" }}
{{ range $filename := $vendor_filenames }}
{{ with resources.GetMatch (print "js/vendor/" .) }}
{{ $vendor_assets = $vendor_assets | append . }}
{{ else }}
{{ warnf $missing_file_warning $filename }}
{{ end }}
{{ end }}
{{ with $vendor_assets }}
{{ $bundle = $bundle | append . }}
{{ end }}
{{/* ----- Local assets */}}
{{ with resources.Match "js/*.js" }}
{{ $bundle = $bundle | append . }}
{{ end }}
{{/* Above code should have populated $bundle slice */}}
{{ with $bundle }}
{{ $targetBundlePath := printf "/docs/%s/assets/js/docs.js" $doc_version }}
{{ $bundle_asset := $bundle | resources.Concat $targetBundlePath }}
{{ if eq hugo.Environment "production" }}
{{ $bundle_asset = $bundle_asset | resources.Minify }}
{{ end }}
{{ $jsAssets = $jsAssets | append $bundle_asset }}
{{ end }}
{{ return $jsAssets }}
This diff is collapsed.
Click to expand it.
site/layouts/partials/scripts.html
+
4
-
14
View file @
3fcfd606
...
@@ -4,17 +4,7 @@
...
@@ -4,17 +4,7 @@
<script
src=
"/docs/{{ .Site.Params.docs_version }}/dist/js/bootstrap.bundle.js"
></script>
<script
src=
"/docs/{{ .Site.Params.docs_version }}/dist/js/bootstrap.bundle.js"
></script>
{{- end }}
{{- end }}
{{ if eq .Page.Layout "docs" -}}
{{- $variant := cond (eq .Page.Layout "docs") "docs" "default" -}}
<script
src=
"/docs/{{ .Site.Params.docs_version }}/assets/js/vendor/docsearch.min.js"
></script>
{{- range partialCached "func/get-js-assets" . $variant -}}
{{- end }}
<script
src=
"{{ .RelPermalink }}"
></script>
{{- end -}}
{{- $vendor := resources.Match "js/vendor/*.js" -}}
{{- $js := resources.Match "js/*.js" -}}
{{- $targetDocsJSPath := printf "/docs/%s/assets/js/docs.js" .Site.Params.docs_version -}}
{{- $docsJs := append $js $vendor | resources.Concat $targetDocsJSPath -}}
{{- if eq hugo.Environment "production" -}}
{{- $docsJs = $docsJs | resources.Minify -}}
{{- end }}
<script
src=
"{{ $docsJs.Permalink | relURL }}"
></script>
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment