mirror of
https://github.com/alanorth/hugo-theme-bootstrap4-blog.git
synced 2025-05-10 14:36:01 +02:00
Compare commits
32 Commits
96d6304f09
...
master
Author | SHA1 | Date | |
---|---|---|---|
fe7b0c3787
|
|||
be4bbc3bca
|
|||
5fd2964427
|
|||
233e715e78
|
|||
a8ff91e1ea
|
|||
31ee2abcad | |||
915caee6dd | |||
08ae262312
|
|||
b781125ed8
|
|||
ddcae7c761
|
|||
b415ee2879
|
|||
4260a7e1af
|
|||
a94ebccf3d
|
|||
54d3242633
|
|||
1d4204a404
|
|||
985070b311
|
|||
2e40f6cd69
|
|||
99f1a6725c
|
|||
898d91701a
|
|||
40b3fb4979
|
|||
5797675dbd
|
|||
8cdfeb297d
|
|||
7a2ac26879
|
|||
72fe18fd4d
|
|||
085cf9847f
|
|||
dbc97128f3
|
|||
5dd511963d
|
|||
d24e709cd3
|
|||
6c30836cc9
|
|||
ddd2836905
|
|||
f3a5cf6630
|
|||
1876747063
|
@ -1,6 +1,6 @@
|
||||
image: archlinux
|
||||
packages:
|
||||
- nodejs-lts-erbium
|
||||
- nodejs-lts-fermium
|
||||
- npm
|
||||
sources:
|
||||
- https://git.sr.ht/~alanorth/hugo-theme-bootstrap4-blog
|
||||
|
42
.drone.yml
42
.drone.yml
@ -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
|
||||
|
15
CHANGELOG.md
15
CHANGELOG.md
@ -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
|
||||
|
||||
|
@ -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
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
6
assets/js/haven.umd.min.js
vendored
6
assets/js/haven.umd.min.js
vendored
File diff suppressed because one or more lines are too long
50
i18n/da.yaml
Normal file
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 }}
|
||||
{{ end -}}
|
||||
|
||||
{{ if .Site.GoogleAnalytics }}
|
||||
{{ if .Site.Config.Services.GoogleAnalytics.ID }}
|
||||
{{ partial "cookie-consent.html" . }}
|
||||
{{ end }}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -28,7 +28,7 @@ Haven.create({
|
||||
{
|
||||
name: 'google-analytics',
|
||||
options: {
|
||||
id: {{ .Site.GoogleAnalytics }},
|
||||
id: {{ .Site.Config.Services.GoogleAnalytics.ID }},
|
||||
},
|
||||
purposes: ['analytics'],
|
||||
inject: true,
|
||||
|
@ -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="{{ . }}" />
|
||||
|
@ -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 -}}
|
5196
package-lock.json
generated
5196
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
23
package.json
23
package.json
@ -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"
|
||||
}
|
||||
}
|
||||
|
12
source/scss/bootstrap.scss
vendored
12
source/scss/bootstrap.scss
vendored
@ -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";
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user