1
0
mirror of https://github.com/alanorth/hugo-theme-bootstrap4-blog.git synced 2025-05-10 14:36:01 +02:00

32 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
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2022-07-29 20:15:32 +03:00
31ee2abcad Merge pull request #146 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
All checks were successful
continuous-integration/drone/push Build is passing
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
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-07 09:36:46 +03:00
54d3242633 CHANGELOG.md: update notes
All checks were successful
continuous-integration/drone/push Build is passing
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
99f1a6725c Regenerate static assets
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-15 09:59:40 +03:00
898d91701a package-lock.json: Run npm update 2021-09-15 09:59:05 +03:00
40b3fb4979 .drone.yml: Build on Node.js 16
All checks were successful
continuous-integration/drone/push Build is passing
We want to build on LTS or "current" releases only.

See: https://nodejs.org/en/about/releases/
2021-08-19 16:09:05 +03:00
5797675dbd theme.toml: Add demo link
All checks were successful
continuous-integration/drone/push Build is passing
As of 2021-07-01 the Hugo Themes showcase is no longer building our
themes so we need to include a link to a demo.
2021-07-09 22:36:07 +03:00
8cdfeb297d package.json: Run webpack without npx
All checks were successful
continuous-integration/drone/push Build is passing
This only affects the CI, but the inability to run webpack seems
to have been due to using an older version of npm (v6.14.x), and
now we upgrade npm before install so we don't need this hack.
2021-03-23 11:25:21 +02:00
7a2ac26879 .drone.yml: Update npm before install and build
All checks were successful
continuous-integration/drone/push Build is passing
It seems that the issue with not being able to find webpack-cli is
due to some behavior with an older version of npm. My local devel-
opment environment has npm 7.6.x and so does the Node.js 15 conta-
iner, while the Node.js 12 and 14 containers have npm 6.14.x.

Updating npm fixes the issue with `npx webpack` not being able to
find webpack-cli's webpack command (perhaps it installs the peer
dependency automatically, I don't know).
2021-03-23 10:16:02 +02:00
72fe18fd4d package.json: Run webpack with npx
Some checks failed
continuous-integration/drone/push Build is failing
My local dev environment automatically adds ./node_modules/.bin to
the shell PATH, but it seems a better way to do this is to use npx
so that it works here and on the CI.
2021-03-23 09:45:19 +02:00
085cf9847f .drone.yml: Run on current and LTS Node.js releases
Node.js v10 will cease to be LTS next month and I haven't even used
it for a while already, so let's change this to only run on 12, 14,
and 15, which are the current active and LTS releases.

See: https://nodejs.org/en/about/releases/
2021-03-23 09:39:40 +02:00
dbc97128f3 package-lock.json: Run npm update
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-22 13:45:47 +02:00
5dd511963d package.json: Only install webpack-cli
We don't explicitly need webpack, as webpack-cli will bring it in
for us.
2021-03-22 13:45:21 +02:00
d24e709cd3 CHANGELOG.md: Minor dependency updates
All checks were successful
continuous-integration/drone/push Build is passing
2021-01-19 22:11:57 +02:00
6c30836cc9 Regenerate static assets 2021-01-19 22:10:35 +02:00
ddd2836905 source/scss/bootstrap.scss: Update header
Minor, but can be very confusing when looking at CSS and wondering
why the version is old.
2021-01-19 22:10:04 +02:00
f3a5cf6630 Run npm update
Brings in Bootstrap v4.6.0 as well as a few others.
2021-01-19 22:09:26 +02:00
1876747063 README.md: Fix link syntax
All checks were successful
continuous-integration/drone/push Build is passing
2021-01-12 09:25:42 +02:00
19 changed files with 3014 additions and 2498 deletions

View File

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

View File

@ -1,34 +1,28 @@
kind: pipeline
type: docker
name: node10
steps:
- name: build
image: node:10-alpine
commands:
- npm install
- npm run build
---
kind: pipeline
type: docker
name: node12
steps:
- name: build
image: node:12-alpine
commands:
- npm install
- npm run build
---
kind: pipeline
type: docker
name: node14
steps:
- name: build
image: node:14-alpine
commands:
- npm --version
- npm install -g npm
- npm --version
- npm install
- npm run build
---
kind: pipeline
type: docker
name: node16
steps:
- name: build
image: node:16-alpine
commands:
- npm --version
- npm install -g npm
- npm --version
- npm install
- npm run build

View File

@ -4,6 +4,19 @@ 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).
## Unreleased Changes
### Updated
- 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
### Changed
- Migrate to dart sass from node-sass (see [LibSass is Deprecated](https://sass-lang.com/blog/libsass-is-deprecated))
@ -22,7 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [[1.5.0]] - 2020-05-17
### Updated
- i18n language keys for German (#dermellor, #131)
- i18n language keys for German (@dermellor, #131)
- Boostrap v4.5.0
- Minor version bump for webpack, node-sass, and fontawesome

View File

@ -18,7 +18,7 @@ See [picturingjordan.com](https://picturingjordan.com) for an example of this th
- 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
- Supports automatic generation of `<img>` srcsets for images in [page bundles](https://gohugo.io/content-management/page-bundles/) using a [new figure shortcode]https://cpbotha.net/2020/05/02/drop-in-replacement-for-hugo-figure-shortcode-with-responsive-img-srcset/) (falls back to default Hugo behavior of looking up images in the static directory)
- Supports automatic generation of `<img>` srcsets for images in [page bundles](https://gohugo.io/content-management/page-bundles/) using a [new figure shortcode](https://cpbotha.net/2020/05/02/drop-in-replacement-for-hugo-figure-shortcode-with-responsive-img-srcset/) (falls back to default Hugo behavior of looking up images in the static directory)
## Usage
Clone the repository to your site's `themes` directory. Refer to [`exampleSite/config.toml`](https://github.com/alanorth/hugo-theme-bootstrap4-blog/blob/master/exampleSite/config.toml) for recommended configuration values.
@ -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.
## 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
$ 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

File diff suppressed because one or more lines are too long

50
i18n/da.yaml Normal file
View 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: ","

View File

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

View File

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

View File

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

View File

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

View File

@ -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 }}

View File

@ -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 -}}

5196
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -7,8 +7,8 @@
"url": "https://github.com/alanorth/hugo-theme-bootstrap4-blog.git"
},
"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: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: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 -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:js": "webpack",
"build": "npm run build:css && npm run build:rtlcss && npm run build:js && npm run build:cookieconsent && npm run clean",
@ -18,15 +18,14 @@
"author": "Alan Orth",
"license": "CC-BY-3.0",
"devDependencies": {
"@chiiya/haven": "^0.6.0",
"@fortawesome/fontawesome-svg-core": "^1.2.32",
"@fortawesome/free-brands-svg-icons": "^5.15.1",
"@fortawesome/free-solid-svg-icons": "^5.15.1",
"bootstrap": "^4.5.3",
"clean-css-cli": "^4.3.0",
"rtlcss": "^2.6.1",
"sass": "^1.29.0",
"webpack": "^5.4.0",
"webpack-cli": "^3.3.12"
"@chiiya/haven": "^0.7.0",
"@fortawesome/fontawesome-svg-core": "^1.2.34",
"@fortawesome/free-brands-svg-icons": "^5.15.2",
"@fortawesome/free-solid-svg-icons": "^5.15.2",
"bootstrap": "^4.6.0",
"clean-css-cli": "^5.4.1",
"rtlcss": "^3.3.0",
"sass": "^1.43.2",
"webpack-cli": "^4.9.1"
}
}

View File

@ -1,20 +1,20 @@
/*!
* Bootstrap v4.5.3 (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)
* Bootstrap v4.6.0 (https://getbootstrap.com/)
* Copyright 2011-2021 The Bootstrap Authors
* Copyright 2011-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@import "../../node_modules/bootstrap/scss/functions";
@import "../../node_modules/bootstrap/scss/variables";
@import "../../node_modules/bootstrap/scss/mixins";
//@import "../../node_modules/bootstrap/scss/root";
@import "../../node_modules/bootstrap/scss/root";
@import "../../node_modules/bootstrap/scss/reboot";
@import "../../node_modules/bootstrap/scss/type";
@import "../../node_modules/bootstrap/scss/images";
@import "../../node_modules/bootstrap/scss/code";
@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/buttons";
//@import "../../node_modules/bootstrap/scss/transitions";

View File

@ -3,6 +3,7 @@ license = "CC-BY-3.0"
licenselink = "https://github.com/alanorth/hugo-theme-bootstrap4-blog/blob/master/LICENSE.txt"
description = "A simple Hugo theme based on the Bootstrap v4 blog example."
homepage = "https://github.com/alanorth/hugo-theme-bootstrap4-blog"
demosite = "https://picturingjordan.com"
tags = ["bootstrap", "blog", "font awesome"]
features = ["responsive", "blog"]
min_version = 0.55