1
0
mirror of https://github.com/alanorth/hugo-theme-bootstrap4-blog.git synced 2025-05-25 04:22:46 +02:00

17 Commits

Author SHA1 Message Date
fe7b0c3787 CHANGELOG.md: add note about templates for Hugo v0.146.0 2025-04-14 07:56:13 +03:00
be4bbc3bca layouts/partials: use internal Hugo partials
As of Hugo v0.146.0 the template system was overhauled and it seems
we need to use different syntax here. The reason for overriding the
Hugo internal templates in the past (post images) is no longer pre-
sent, so I can revert to the internal ones, but confusingly, we do
not refer to them with "_internal" now.

See: https://github.com/gohugoio/hugo/pull/13541
2025-04-14 07:48:59 +03:00
5fd2964427 CHANGELOG.md: add note about deprecations 2024-09-17 08:00:21 +04:00
233e715e78 layouts: fix some deprecations
Fix these errors from Hugo:

    ERROR deprecated: .Site.GoogleAnalytics was deprecated in Hugo v0.120.0 and will be removed in Hugo 0.134.0. Use .Site.Config.Services.GoogleAnalytics.ID instead.
    ERROR deprecated: .Site.DisqusShortname was deprecated in Hugo v0.120.0 and will be removed in Hugo 0.134.0. Use .Site.Config.Services.Disqus.Shortname instead.
2024-09-17 08:00:11 +04:00
a8ff91e1ea CHANGELOG.md: Add note about Danish 2022-07-29 20:15:32 +03:00
31ee2abcad Merge pull request from schack/feature_danish_translation
en.yaml translated to Danish
2022-07-29 20:14:07 +03:00
915caee6dd en.yaml translated to Danish 2022-07-29 15:06:27 +02:00
08ae262312 CHANGELOG.md: add note about Bootstrap tables 2022-07-29 10:09:02 +03:00
b781125ed8 Regenerate static assets 2022-07-29 10:07:28 +03:00
ddcae7c761 package-lock.json: run npm update 2022-07-29 10:07:16 +03:00
b415ee2879 Regenerate static assets 2022-07-29 10:05:11 +03:00
4260a7e1af source/scss/bootstrap.scss: enable tables
Requested by a user.

See: https://github.com/alanorth/hugo-theme-bootstrap4-blog/issues/145
2022-07-29 10:03:57 +03:00
a94ebccf3d Use Node.js 14 instead of 12 2022-06-07 09:36:46 +03:00
54d3242633 CHANGELOG.md: update notes 2021-10-18 15:03:01 +03:00
1d4204a404 Regenerate static assets 2021-10-18 14:53:45 +03:00
985070b311 package.json: update cleancss options
We use -O1 instead of --level 1 now.
2021-10-18 14:52:55 +03:00
2e40f6cd69 Update npm dependencies 2021-10-18 14:52:43 +03:00
17 changed files with 947 additions and 1052 deletions

@ -1,6 +1,6 @@
image: archlinux image: archlinux
packages: packages:
- nodejs-lts-erbium - nodejs-lts-fermium
- npm - npm
sources: sources:
- https://git.sr.ht/~alanorth/hugo-theme-bootstrap4-blog - https://git.sr.ht/~alanorth/hugo-theme-bootstrap4-blog

@ -1,20 +1,5 @@
kind: pipeline kind: pipeline
type: docker type: docker
name: node12
steps:
- name: build
image: node:12-alpine
commands:
- npm --version
- npm install -g npm
- npm --version
- npm install
- npm run build
---
kind: pipeline
type: docker
name: node14 name: node14
steps: steps:

@ -6,7 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased Changes ## Unreleased Changes
### Updated ### Updated
- Bootstrap v4.6.0, webpack v5.16.0, haven 0.6.2, etc - Bootstrap v4.6.0, webpack v5, haven 0.7.0, clean-css-cli, etc
- Use Node.js 14 in CI, remove Node.js 12
## Added
- Support for Bootstrap table classes (#145)
- i18n language keys for Danish (@schack, #146)
## Fixed
- Deprecations from Hugo (DisqusShortname and GoogleAnalytics)
- Deprecations from Hugo (Templates)
## [[ 1.6.0 ]] - 2020-12-05 ## [[ 1.6.0 ]] - 2020-12-05
### Changed ### Changed
@ -26,7 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [[1.5.0]] - 2020-05-17 ## [[1.5.0]] - 2020-05-17
### Updated ### Updated
- i18n language keys for German (#dermellor, #131) - i18n language keys for German (@dermellor, #131)
- Boostrap v4.5.0 - Boostrap v4.5.0
- Minor version bump for webpack, node-sass, and fontawesome - Minor version bump for webpack, node-sass, and fontawesome

@ -38,7 +38,7 @@ A few suggestions to help you get a good looking site quickly:
See the source code and structure of [picturingjordan.com](https://github.com/alanorth/picturingjordan.com) to get more ideas. See the source code and structure of [picturingjordan.com](https://github.com/alanorth/picturingjordan.com) to get more ideas.
## Building (For Developers) ## Building (For Developers)
This theme uses the [Bootstrap](https://getbootstrap.com/) framework. A static version of this is already included, but if you want to bump the version, tweak the style, etc, you'll need to rebuild the assets. Make sure you have NodeJS >= v10 installed, and then run the following from inside the theme's directory: This theme uses the [Bootstrap](https://getbootstrap.com/) framework. A static version of this is already included, but if you want to bump the version, tweak the style, etc, you'll need to rebuild the assets. Make sure you have Node.js >= v14 installed, and then run the following from inside the theme's directory:
```console ```console
$ npm install $ npm install

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

50
i18n/da.yaml Normal file

@ -0,0 +1,50 @@
- id: about
translation: "Om"
- id: home
translation: "Hjem"
- id: recentPosts
translation: "Seneste indlæg"
- id: readMore
translation: "Læs mere"
- id: translations
translation: "Oversættelser"
- id: share
translation: "Del"
- id: paginatorPrevious
translation: "Forrige side"
- id: paginatorNext
translation: "Næste side"
- id: cookieMessage
translation: "Denne hjemmeside anvender cookies."
- id: cookieLink
translation: "Læs mere."
- id: cookieAccept
translation: "OK"
- id: cookieDecline
translation: "Afbryd"
- id: backToTop
translation: "Til toppen"
- id: links
translation: "Links"
- id: authoredBy
translation: "af"
- id: postedIn
translation: "i"
- id: comma
translation: ","

@ -31,7 +31,7 @@
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}} {{ end -}}
{{ if .Site.GoogleAnalytics }} {{ if .Site.Config.Services.GoogleAnalytics.ID }}
{{ partial "cookie-consent.html" . }} {{ partial "cookie-consent.html" . }}
{{ end }} {{ end }}

@ -83,7 +83,7 @@
</ul> </ul>
{{ end }} {{ end }}
{{ if or (ne ($.Param "sharingicons") false) (.Site.DisqusShortname) }} {{ if or (ne ($.Param "sharingicons") false) (.Site.Config.Services.Disqus.Shortname) }}
<hr> <hr>
<footer> <footer>
@ -91,7 +91,7 @@
{{ partial "sharing-icons.html" . }} {{ partial "sharing-icons.html" . }}
{{ end }} {{ end }}
{{ if and (.Site.DisqusShortname) (ne .Params.comments false) }} {{ if and (.Site.Config.Services.Disqus.Shortname) (ne .Params.comments false) }}
{{ template "_internal/disqus.html" . }} {{ template "_internal/disqus.html" . }}
{{ end }} {{ end }}
</footer> </footer>

@ -28,7 +28,7 @@ Haven.create({
{ {
name: 'google-analytics', name: 'google-analytics',
options: { options: {
id: {{ .Site.GoogleAnalytics }}, id: {{ .Site.Config.Services.GoogleAnalytics.ID }},
}, },
purposes: ['analytics'], purposes: ['analytics'],
inject: true, inject: true,

@ -1,8 +1,8 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{{ partial "opengraph.html" . }} {{- partial "opengraph.html" . }}
{{ partial "twitter_cards.html" . }} {{- partial "twitter_cards.html" . }}
{{- with .Site.Params.google_verify_meta -}} {{- with .Site.Params.google_verify_meta -}}
<meta name="google-site-verification" content="{{ . }}" /> <meta name="google-site-verification" content="{{ . }}" />

@ -1,73 +0,0 @@
<!--
Import Hugo's internal twitter_cards.html template to add support for resolving
images in page bundles and with falling back to the default of looking in the
static assets directory.
See: tpl/tplimpl/embedded/templates/opengraph.html
See: https://github.com/gohugoio/hugo/issues/5078
-->
<meta property="og:title" content="{{ .Title }}" />
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
<meta property="og:url" content="{{ .Permalink }}" />
{{ with $.Params.images }}{{ range first 6 . -}}
{{/* try to get the image from the page bundle */}}
{{- with $.Page.Resources.GetMatch (printf "*%s*" .) -}}
<meta property="og:image" content="{{ .Permalink }}" />
{{/* otherwise, get the image from /static */}}
{{- else -}}
<meta property="og:image" content="{{ . | absURL }}" />
{{- end }}
{{ end }}{{ else -}}
{{- $images := $.Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}}
<meta property="og:image" content="{{ $featured.Permalink }}"/>
{{ else -}}
{{- with $.Site.Params.images -}}
<meta property="og:image" content="{{ index . 0 | absURL }}"/>
{{ end }}{{ end }}{{ end }}
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
{{- if .IsPage }}
{{- if not .PublishDate.IsZero }}<meta property="article:published_time" {{ .PublishDate.Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />
{{ else if not .Date.IsZero }}<meta property="article:published_time" {{ .Date.Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />
{{ end }}
{{- if not .Lastmod.IsZero }}<meta property="article:modified_time" {{ .Lastmod.Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
{{- else }}
{{- if not .Date.IsZero }}<meta property="og:updated_time" {{ .Lastmod.Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />
{{- end }}
{{- end }}{{/* .IsPage */}}
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }}
{{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }}
{{- with .Site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }}
{{- with .Params.videos }}
{{- range . }}
<meta property="og:video" content="{{ . | absURL }}" />
{{ end }}{{ end }}
{{- /* If it is part of a series, link to related articles */}}
{{- $permalink := .Permalink }}
{{- $siteSeries := .Site.Taxonomies.series }}{{ with .Params.series }}
{{- range $name := . }}
{{- $series := index $siteSeries $name }}
{{- range $page := first 6 $series.Pages }}
{{- if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }}
{{- end }}
{{ end }}{{ end }}
{{- if .IsPage }}
{{- range .Site.Authors }}{{ with .Social.facebook }}
<meta property="article:author" content="https://www.facebook.com/{{ . }}" />{{ end }}{{ with .Site.Social.facebook }}
<meta property="article:publisher" content="https://www.facebook.com/{{ . }}" />{{ end }}
<meta property="article:section" content="{{ .Section }}" />
{{- with .Params.tags }}{{ range first 6 . }}
<meta property="article:tag" content="{{ . }}" />{{ end }}{{ end }}
{{- end }}{{ end }}
{{- /* Facebook Page Admin ID for Domain Insights */}}
{{- with .Site.Social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}

@ -1,42 +0,0 @@
<!--
Import Hugo's internal twitter_cards.html template to add support for resolving
images in page bundles and with falling back to the default of looking in the
static assets directory.
See: tpl/tplimpl/embedded/templates/twitter_cards.html
See: https://github.com/gohugoio/hugo/issues/5078
-->
{{- with $.Params.images -}}
<meta name="twitter:card" content="summary_large_image"/>
{{/* try to get the image from the page bundle */}}
{{- with $.Page.Resources.GetMatch (printf "*%s*" .) -}}
<meta name="twitter:image" content="{{ .Permalink }}"/>
{{- else -}}
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
{{- end -}}
{{ else -}}
{{- $images := $.Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ $featured.Permalink }}"/>
{{- else -}}
{{- with $.Site.Params.images -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
{{ else -}}
<meta name="twitter:card" content="summary"/>
{{- end -}}
{{- end -}}
{{- end }}
<meta name="twitter:title" content="{{ .Title }}"/>
<meta name="twitter:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end -}}"/>
{{ with .Site.Social.twitter -}}
<meta name="twitter:site" content="@{{ . }}"/>
{{ end -}}
{{ range .Site.Authors }}
{{ with .twitter -}}
<meta name="twitter:creator" content="@{{ . }}"/>
{{ end -}}
{{ end -}}

1764
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -7,8 +7,8 @@
"url": "https://github.com/alanorth/hugo-theme-bootstrap4-blog.git" "url": "https://github.com/alanorth/hugo-theme-bootstrap4-blog.git"
}, },
"scripts": { "scripts": {
"build:css": "sass --style expanded source/scss/style.scss assets/css/style.css.tmp && cleancss --level 1 assets/css/style.css.tmp -o assets/css/style.css", "build:css": "sass --style expanded source/scss/style.scss assets/css/style.css.tmp && cleancss -O1 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:rtlcss": "rtlcss -s assets/css/style.css.tmp assets/css/style.rtl.css.tmp && cleancss -O1 assets/css/style.rtl.css.tmp -o assets/css/style.rtl.css",
"build:cookieconsent": "cp node_modules/@chiiya/haven/dist/haven.umd.min.js assets/js", "build:cookieconsent": "cp node_modules/@chiiya/haven/dist/haven.umd.min.js assets/js",
"build:js": "webpack", "build:js": "webpack",
"build": "npm run build:css && npm run build:rtlcss && npm run build:js && npm run build:cookieconsent && npm run clean", "build": "npm run build:css && npm run build:rtlcss && npm run build:js && npm run build:cookieconsent && npm run clean",
@ -18,14 +18,14 @@
"author": "Alan Orth", "author": "Alan Orth",
"license": "CC-BY-3.0", "license": "CC-BY-3.0",
"devDependencies": { "devDependencies": {
"@chiiya/haven": "^0.6.2", "@chiiya/haven": "^0.7.0",
"@fortawesome/fontawesome-svg-core": "^1.2.34", "@fortawesome/fontawesome-svg-core": "^1.2.34",
"@fortawesome/free-brands-svg-icons": "^5.15.2", "@fortawesome/free-brands-svg-icons": "^5.15.2",
"@fortawesome/free-solid-svg-icons": "^5.15.2", "@fortawesome/free-solid-svg-icons": "^5.15.2",
"bootstrap": "^4.6.0", "bootstrap": "^4.6.0",
"clean-css-cli": "^4.3.0", "clean-css-cli": "^5.4.1",
"rtlcss": "^2.6.2", "rtlcss": "^3.3.0",
"sass": "^1.32.4", "sass": "^1.43.2",
"webpack-cli": "^4.5.0" "webpack-cli": "^4.9.1"
} }
} }

@ -14,7 +14,7 @@
@import "../../node_modules/bootstrap/scss/images"; @import "../../node_modules/bootstrap/scss/images";
@import "../../node_modules/bootstrap/scss/code"; @import "../../node_modules/bootstrap/scss/code";
@import "../../node_modules/bootstrap/scss/grid"; @import "../../node_modules/bootstrap/scss/grid";
//@import "../../node_modules/bootstrap/scss/tables"; @import "../../node_modules/bootstrap/scss/tables";
@import "../../node_modules/bootstrap/scss/forms"; @import "../../node_modules/bootstrap/scss/forms";
@import "../../node_modules/bootstrap/scss/buttons"; @import "../../node_modules/bootstrap/scss/buttons";
//@import "../../node_modules/bootstrap/scss/transitions"; //@import "../../node_modules/bootstrap/scss/transitions";