Welcome to mirror list, hosted at ThFree Co, Russian Federation.

get-js-assets.html « func « partials « layouts « site - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f49ec34add036bd697b4dfa3ee64c01eba544940 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{{/*
  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 and/or run `npm i`." }}
{{ $doc_version := site.Params.docs_version }}

{{/* --- 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 "anchor.min.js" "clipboard.min.js" }}
{{ range $filename := $vendor_filenames }}
  {{ with resources.GetMatch (print "js/vendor/" .) }}
    {{ $vendor_assets = $vendor_assets | append . }}
  {{ else }}
    {{ errorf $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 := path.Join "/docs" $doc_version "assets/js/docs.js" }}
  {{ $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 }}