mirror of
https://github.com/alanorth/hugo-theme-bootstrap4-blog.git
synced 2025-05-10 22:46:02 +02:00
Compare commits
34 Commits
Author | SHA1 | Date | |
---|---|---|---|
9b877752b7
|
|||
ef714f2192
|
|||
d72552cde3
|
|||
21aab8a79d
|
|||
26f170bfdd
|
|||
dedea8ccc0
|
|||
006e3f49bd
|
|||
a019ed776f
|
|||
3b360d2eef
|
|||
e840f783e7
|
|||
8da96f34ef
|
|||
2845e18f9a
|
|||
8448af2481
|
|||
a390958117
|
|||
faa3c3cf5b
|
|||
bbc5ef18cf
|
|||
1cb082e1f1
|
|||
3a83d4e43e
|
|||
3c21de9fcd | |||
ce89342827
|
|||
a2ac9fe29e
|
|||
77e05f010e
|
|||
320ee71b75
|
|||
9bbfab2f1b
|
|||
f7d9451aa6
|
|||
85abd20ba7
|
|||
9e0b00038a
|
|||
9676a9736b
|
|||
4a88be4434
|
|||
780444bfb0
|
|||
58d01baba6
|
|||
9fb0baa0a5
|
|||
550b5c066d
|
|||
3be21cba1d
|
@ -1,10 +1,9 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 8
|
||||
- 10
|
||||
- 11
|
||||
- 12
|
||||
- 13
|
||||
script: npm run build
|
||||
sudo: false
|
||||
dist: xenial
|
||||
dist: bionic
|
||||
|
||||
# vim: ts=2 sw=2 et
|
||||
|
31
CHANGELOG.md
31
CHANGELOG.md
@ -4,22 +4,47 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [[1.5.0]] - 2020-05-17
|
||||
### Updated
|
||||
- i18n language keys for German (#dermellor, #131)
|
||||
- Boostrap v4.5.0
|
||||
- Minor version bump for webpack, node-sass, and fontawesome
|
||||
|
||||
### Changed
|
||||
- Use Haven for GDPR-compliant popup instead of cookieconsent, which is now
|
||||
configured as *opt-in* and does not load Google Analytics or send a hit until
|
||||
the user agrees.
|
||||
- Note to translators that some strings have changed, please check:
|
||||
- `cookieAccept`: the string for the "Agree" button
|
||||
- `cookieDecline`: the string for the "Disagree" button
|
||||
|
||||
## [[1.4.2]] - 2020-03-22
|
||||
### Fixed
|
||||
- Encoding of dates in HTML (@alanorth)
|
||||
|
||||
## [[1.4.1]] - 2020-03-19
|
||||
### Updated
|
||||
- npm dependencies: rtlcss 2.5.0, webpack 4.42.0, fontawesome solid icons 5.12.1
|
||||
|
||||
### Fixed
|
||||
- Fix "Unparsable structured data" error in JSON-LD (@alanorth)
|
||||
|
||||
## [[1.4.0]] - 2020-01-28
|
||||
### Added
|
||||
- Farsi strings for user interface
|
||||
|
||||
## Updated
|
||||
### Updated
|
||||
- bootstrap 4.4.1
|
||||
- Fix typo in README.md (@xekon, #118)
|
||||
- Font Awesome 5 (make sure you [update](https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4) any custom icons you might be using in your content, site layouts, partials, etc).
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
- Use Hugo's built-in subresource integrity support instead of the generatesri
|
||||
tooling that I wrote by hand a few years ago (#120, @alanorth)
|
||||
- Use Font Awesome SVGs via JavaScript instead of web fonts (@alanorth)
|
||||
- Category and tag links now have a trailing slash (#128, @alanorth)
|
||||
|
||||
## Removed
|
||||
### Removed
|
||||
- Several references to Google Plus (@xekon, #122)
|
||||
|
||||
## [[1.3.3]] - 2019-12-02
|
||||
|
@ -11,11 +11,10 @@ See [picturingjordan.com](https://picturingjordan.com) for an example of this th
|
||||
- Uses Bootstrap v4's [native system font stack](https://getbootstrap.com/docs/4.0/content/reboot/#native-font-stack) to load quickly and look good on all platforms
|
||||
- Excellent [structured data](https://developers.google.com/search/docs/guides/intro-structured-data) (JSON-LD), [OpenGraph](http://ogp.me), and [Twitter Card](https://dev.twitter.com/cards/types) metadata support
|
||||
- robots.txt linking to XML sitemap (disabled by default, see [Hugo docs](https://gohugo.io/extras/robots-txt/))
|
||||
- Basic support for [multi-lingual content](https://gohugo.io/content-management/multilingual/) (added in Hugo 0.17) and user interface translation (i18n), including RTL languages like Arabic
|
||||
- Basic support for [multi-lingual content](https://gohugo.io/content-management/multilingual/) (added in Hugo 0.17) and user interface translation (i18n), including RTL languages like Arabic and Farsi
|
||||
- Supports Google, Bing, and Yandex site verification via meta tags
|
||||
- Supports Google Analytics (async version), see [Hugo docs](https://gohugo.io/extras/analytics/)
|
||||
- Supports GDPR-compliant Google Analytics (script is not even loaded until *after* the user agrees) with configurable consent banner, see [`exampleSite/config.toml`](https://github.com/alanorth/hugo-theme-bootstrap4-blog/blob/master/exampleSite/config.toml)
|
||||
- Supports Disqus comments, see [Hugo docs](https://gohugo.io/extras/comments/)
|
||||
- Can show a message about cookie usage to the user, see [`exampleSite/config.toml`](https://github.com/alanorth/hugo-theme-bootstrap4-blog/blob/master/exampleSite/config.toml)
|
||||
- Allow addition of custom `<head>` code in site's `layouts/partials/head-custom.html` (see [#17](https://github.com/alanorth/hugo-theme-bootstrap4-blog/pull/17))
|
||||
- Configurable display of summaries of content in list templates.
|
||||
- Configurable keywords for every post
|
||||
|
6
assets/css/cookieconsent.min.css
vendored
6
assets/css/cookieconsent.min.css
vendored
@ -1,6 +0,0 @@
|
||||
.cc-window{opacity:1;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{transition:transform 1s ease}.cc-animate.cc-revoke.cc-top{transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-bottom,.cc-animate.cc-revoke.cc-active.cc-top,.cc-revoke:hover{transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;transition:max-height 1s}
|
||||
.cc-link,.cc-revoke:hover{text-decoration:underline}.cc-revoke,.cc-window{position:fixed;overflow:hidden;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-banner .cc-btn:last-child{min-width:140px}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
|
||||
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-ms-flex:1;flex:1}.cc-window.cc-banner{-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{-ms-flex:1;flex:1}.cc-compliance{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-compliance>.cc-btn{-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
|
||||
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-ms-flex:1;flex:1}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-ms-flex-align:unset;align-items:unset}}
|
||||
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
|
||||
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em 2em 1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
assets/js/cookieconsent.min.js
vendored
1
assets/js/cookieconsent.min.js
vendored
File diff suppressed because one or more lines are too long
2
assets/js/fontawesome.min.js
vendored
2
assets/js/fontawesome.min.js
vendored
File diff suppressed because one or more lines are too long
12
assets/js/haven.umd.min.js
vendored
Normal file
12
assets/js/haven.umd.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -91,5 +91,7 @@ summaryLength = 50
|
||||
# Languages to render
|
||||
#[languages.en]
|
||||
#[languages.bg]
|
||||
# Bulgarian date format is dd.mm.yyyy
|
||||
#date_format = "02.01.2006"
|
||||
|
||||
# vim: ts=2 sw=2 et
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: ".اعْرَف أَكْثَر"
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "!أُوَافِق"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -28,8 +28,11 @@
|
||||
- id: cookieLink
|
||||
translation: "Научете повече."
|
||||
|
||||
- id: cookieDismiss
|
||||
translation: "Разбрах!"
|
||||
- id: cookieAccept
|
||||
translation: "Съгласен съм"
|
||||
|
||||
- id: cookieDecline
|
||||
translation: "Не съм съгласен"
|
||||
|
||||
- id: backToTop
|
||||
translation: "Нагоре"
|
||||
|
10
i18n/de.yaml
10
i18n/de.yaml
@ -28,11 +28,17 @@
|
||||
- id: cookieLink
|
||||
translation: "Weitere Informationen"
|
||||
|
||||
- id: cookieDismiss
|
||||
translation: "OK"
|
||||
- id: cookieDecline
|
||||
translation: "Nicht zustimmen"
|
||||
|
||||
- id: backToTop
|
||||
translation: "Zurück zum Anfang"
|
||||
|
||||
- id: links
|
||||
translation: "Links"
|
||||
|
||||
- id: authoredBy
|
||||
translation: "von"
|
||||
|
||||
- id: postedIn
|
||||
translation: "in"
|
||||
|
@ -28,8 +28,11 @@
|
||||
- id: cookieLink
|
||||
translation: "Learn more."
|
||||
|
||||
- id: cookieDismiss
|
||||
translation: "Got it!"
|
||||
- id: cookieAccept
|
||||
translation: "Agree"
|
||||
|
||||
- id: cookieDecline
|
||||
translation: "Disagree"
|
||||
|
||||
- id: backToTop
|
||||
translation: "Back to top"
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: "Leer más."
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "Comprendido!"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: ".بیشتر بدانید"
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "!متوجه شدم"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: "En savoir plus."
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "J'ai compris !"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: "Pelajari"
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "Paham!"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: "Lees hier meer"
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "OK"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: "Lær mer."
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "Greit!"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -28,5 +28,5 @@
|
||||
- id: cookieLink
|
||||
translation: "Saiba mais."
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "Ok!"
|
||||
|
@ -28,7 +28,7 @@
|
||||
- id: cookieLink
|
||||
translation: "進一步瞭解。"
|
||||
|
||||
- id: cookieDismiss
|
||||
- id: cookieAccept
|
||||
translation: "知道了!"
|
||||
|
||||
- id: backToTop
|
||||
|
@ -31,9 +31,7 @@
|
||||
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
|
||||
{{ end -}}
|
||||
|
||||
{{ template "_internal/google_analytics_async.html" . }}
|
||||
|
||||
{{ if .Site.Params.cookie_consent_info_url }}
|
||||
{{ if .Site.GoogleAnalytics }}
|
||||
{{ partial "cookie-consent.html" . }}
|
||||
{{ end }}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<article class="blog-post">
|
||||
<header>
|
||||
<h2 class="blog-post-title" dir="auto"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
|
||||
<p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
|
||||
<p class="blog-post-meta"><time {{ .Date.Format "2006-01-02T15:04:05Z07:00" | printf "datetime=%q" | safeHTMLAttr }}>{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
|
||||
</header>
|
||||
{{ .Content }}
|
||||
</article> <!-- /.blog-post -->
|
||||
|
@ -4,21 +4,21 @@
|
||||
"@context": "http://schema.org",
|
||||
"@type": "Blog",
|
||||
{{- /* Google recommends the headline be no more than 110 characters */}}
|
||||
"headline": "{{ substr .Site.Title 0 110 }}",
|
||||
"url" : "{{ printf "%s" .Permalink }}",
|
||||
"headline": {{ substr .Site.Title 0 110 }},
|
||||
"url" : {{ printf "%s" .Permalink }},
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
"name": {{ .Site.Params.author }}
|
||||
},
|
||||
{{- $ISO8601 := "2006-01-02T15:04:05-07:00" }}
|
||||
{{- if not .Date.IsZero }}
|
||||
"dateModified": {{ .Date.Format $ISO8601 }},
|
||||
{{- end }}
|
||||
{{- /* all of the site's categories/tags, from Hugo's tpl/template_embedded.go */}}
|
||||
"keywords": "{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}{{ printf "%s," $term }}{{ end }}{{ end }}"
|
||||
"keywords": {{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}{{ printf "%s," $term }}{{ end }}{{ end }}
|
||||
{{- with .Site.Params.description -}}
|
||||
,
|
||||
"description": "{{- . -}}"
|
||||
"description": {{- . -}}
|
||||
{{- end }}
|
||||
}
|
||||
</script>
|
||||
|
@ -6,11 +6,11 @@
|
||||
"@context": "http://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
{{- /* Google recommends the headline be no more than 110 characters */}}
|
||||
"headline": "{{ substr .Title 0 110 }}",
|
||||
"headline": {{ substr .Title 0 110 }},
|
||||
{{- with .Params.images -}}{{ range first 1 . }}
|
||||
"image": {
|
||||
"@type": "ImageObject",
|
||||
"url": "{{ . | absURL }}"
|
||||
"url": {{ . | absURL }}
|
||||
{{- /* Don't try to get imageConfig if image param is not local */ -}}
|
||||
{{- if not (or (hasPrefix . "http://") (hasPrefix . "https://")) -}}
|
||||
{{- with (imageConfig (printf "/static/%s" .)) -}}
|
||||
@ -21,7 +21,7 @@
|
||||
{{ end }}
|
||||
},
|
||||
{{- end -}}{{ end }}
|
||||
"url": "{{ printf "%s" .Permalink }}",
|
||||
"url": {{ printf "%s" .Permalink }},
|
||||
"wordCount": "{{ .WordCount }}",
|
||||
{{- $ISO8601 := "2006-01-02T15:04:05-07:00" }}
|
||||
{{- if not .PublishDate.IsZero }}
|
||||
@ -34,16 +34,16 @@
|
||||
{{- end }}
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Params.author | default .Site.Params.author }}"
|
||||
"name": {{ .Params.author | default .Site.Params.author }}
|
||||
}
|
||||
{{- if or (.Params.keywords) (or (.Params.categories) (.Params.tags)) -}}
|
||||
,
|
||||
"keywords": "{{ delimit (union .Params.keywords (union .Params.categories .Params.tags)) ", " }}"
|
||||
"keywords": {{ delimit (union .Params.keywords (union .Params.categories .Params.tags)) ", " }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Params.description -}}
|
||||
,
|
||||
"description": "{{ . }}"
|
||||
"description": {{ . }}
|
||||
{{- end }}
|
||||
}
|
||||
</script>
|
||||
@ -56,7 +56,7 @@
|
||||
<article class="blog-post">
|
||||
<header>
|
||||
<h2 class="blog-post-title" dir="auto"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
|
||||
<p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
|
||||
<p class="blog-post-meta"><time {{ .Date.Format "2006-01-02T15:04:05Z07:00" | printf "datetime=%q" | safeHTMLAttr }}>{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
|
||||
</header>
|
||||
{{ .Content }}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<article class="blog-post">
|
||||
<header>
|
||||
<h2 class="blog-post-title" dir="auto"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
|
||||
<p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
|
||||
<p class="blog-post-meta"><time {{ .Date.Format "2006-01-02T15:04:05Z07:00" | printf "datetime=%q" | safeHTMLAttr }}>{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
|
||||
</header>
|
||||
{{ .Summary }}
|
||||
<a href='{{ .Permalink }}'>{{ i18n "readMore" }}</a>
|
||||
|
@ -1,28 +1,40 @@
|
||||
{{ $cookieConsentStyle := resources.Get "css/cookieconsent.min.css" | resources.Fingerprint }}
|
||||
<link href="{{ $cookieConsentStyle.Permalink }}" rel="stylesheet" type="text/css"{{ if not .Site.Params.disable_sri }} integrity="{{ $cookieConsentStyle.Data.Integrity }}" crossorigin="anonymous"{{ end }}>
|
||||
{{ $cookieConsentScript := resources.Get "js/cookieconsent.min.js" | resources.Fingerprint }}
|
||||
<script src="{{ $cookieConsentScript.Permalink }}"{{ if not .Site.Params.disable_sri }} integrity="{{ $cookieConsentScript.Data.Integrity }}" crossorigin="anonymous"{{ end }} async></script>
|
||||
{{ $cookieConsentScript := resources.Get "js/haven.umd.min.js" | resources.Fingerprint }}
|
||||
<script src="{{ $cookieConsentScript.Permalink }}"{{ if not .Site.Params.disable_sri }} integrity="{{ $cookieConsentScript.Data.Integrity }}" crossorigin="anonymous"{{ end }}></script>
|
||||
|
||||
<script>
|
||||
window.addEventListener("load", function(){
|
||||
window.cookieconsent.initialise({
|
||||
"palette": {
|
||||
"popup": {
|
||||
"background": "#428bca",
|
||||
"text": "#ffffff"
|
||||
},
|
||||
"button": {
|
||||
"background": "#f71559"
|
||||
}
|
||||
Haven.create({
|
||||
notification: {
|
||||
{{ with .Site.Params.cookie_consent_info_url -}}
|
||||
policyUrl: {{ . | absURL }},
|
||||
{{- end }}
|
||||
styles: {
|
||||
background: '#428bca',
|
||||
textColor: '#ffffff',
|
||||
buttonBackgroundColor: '#f71559',
|
||||
buttonTextColor: '#ffffff',
|
||||
},
|
||||
},
|
||||
"content": {
|
||||
"message": '{{ i18n "cookieMessage" }}',
|
||||
"dismiss": '{{ i18n "cookieDismiss" }}',
|
||||
"link": '{{ i18n "cookieLink" }}',
|
||||
"href": "{{ .Site.Params.cookie_consent_info_url | absURL}}"
|
||||
translations: {
|
||||
{{ .Lang }}: {
|
||||
notification: {
|
||||
policy: '{{ i18n "cookieLink" }}',
|
||||
message: '{{ i18n "cookieMessage" }}',
|
||||
accept: '{{ i18n "cookieAccept" }}',
|
||||
decline: '{{ i18n "cookieDecline" }}',
|
||||
}
|
||||
},
|
||||
},
|
||||
"position": "bottom-right"
|
||||
})});
|
||||
services: [
|
||||
{
|
||||
name: 'google-analytics',
|
||||
options: {
|
||||
id: {{ .Site.GoogleAnalytics }},
|
||||
},
|
||||
purposes: ['analytics'],
|
||||
inject: true,
|
||||
}
|
||||
]
|
||||
});
|
||||
</script>
|
||||
|
||||
{{- /* vim: set ts=2 sw=2 et: */}}
|
||||
|
1440
package-lock.json
generated
1440
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
22
package.json
22
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hugo-theme-bootstrap4-blog",
|
||||
"version": "1.3.3",
|
||||
"version": "1.5.0",
|
||||
"description": "A Bootstrap v4 theme for the Hugo static site generator.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -9,7 +9,7 @@
|
||||
"scripts": {
|
||||
"build:css": "node-sass --output-style expanded --precision 6 source/scss/style.scss assets/css/style.css.tmp && cleancss --level 1 assets/css/style.css.tmp -o assets/css/style.css",
|
||||
"build:rtlcss": "rtlcss -s assets/css/style.css.tmp assets/css/style.rtl.css.tmp && cleancss --level 1 assets/css/style.rtl.css.tmp -o assets/css/style.rtl.css",
|
||||
"build:cookieconsent": "cp node_modules/cookieconsent/build/cookieconsent.min.css assets/css && cp node_modules/cookieconsent/build/cookieconsent.min.js assets/js",
|
||||
"build:cookieconsent": "cp node_modules/@chiiya/haven/dist/haven.umd.min.js assets/js",
|
||||
"build:js": "webpack",
|
||||
"build": "npm run build:css && npm run build:rtlcss && npm run build:js && npm run build:cookieconsent && npm run clean",
|
||||
"clean": "rm assets/css/style.css.tmp assets/css/style.rtl.css.tmp"
|
||||
@ -18,15 +18,15 @@
|
||||
"author": "Alan Orth",
|
||||
"license": "CC-BY-3.0",
|
||||
"devDependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.26",
|
||||
"@fortawesome/free-brands-svg-icons": "^5.12.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.12.0",
|
||||
"bootstrap": "~4.4.1",
|
||||
"@chiiya/haven": "^0.6.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.28",
|
||||
"@fortawesome/free-brands-svg-icons": "^5.13.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.13.0",
|
||||
"bootstrap": "~4.5.0",
|
||||
"clean-css-cli": "^4.3.0",
|
||||
"cookieconsent": "3.0.4",
|
||||
"node-sass": "^4.13.1",
|
||||
"rtlcss": "^2.4.1",
|
||||
"webpack": "^4.41.5",
|
||||
"webpack-cli": "^3.3.10"
|
||||
"node-sass": "^4.14.1",
|
||||
"rtlcss": "^2.5.0",
|
||||
"webpack": "^4.43.0",
|
||||
"webpack-cli": "^3.3.11"
|
||||
}
|
||||
}
|
||||
|
6
source/scss/bootstrap.scss
vendored
6
source/scss/bootstrap.scss
vendored
@ -1,7 +1,7 @@
|
||||
/*!
|
||||
* Bootstrap v4.4.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Bootstrap v4.5.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2020 The Bootstrap Authors
|
||||
* Copyright 2011-2020 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
|
Reference in New Issue
Block a user