mirror of
https://github.com/alanorth/hugo-theme-bootstrap4-blog.git
synced 2025-05-10 06:26:00 +02:00
Compare commits
29 Commits
Author | SHA1 | Date | |
---|---|---|---|
3fc531eb66
|
|||
82362818a1
|
|||
54f85c3beb
|
|||
c6498a4bfb
|
|||
147ee8cf76
|
|||
cb81c7818d
|
|||
37e48b1e28
|
|||
39a9a8fd2a
|
|||
64d62a9179
|
|||
6dde205d0d
|
|||
28a2013d85
|
|||
66298fa0ef
|
|||
a38342b330
|
|||
6d8df04c19
|
|||
900bb6468c
|
|||
7d40acef85 | |||
7dbe547dce | |||
43d4fb3d2d | |||
5fe17ee120
|
|||
ab444c93b5
|
|||
eb70aea769
|
|||
5b548c730a
|
|||
2a42864125
|
|||
7f819cfdd1
|
|||
4b2b1617c0
|
|||
415ae8956c
|
|||
3987192a31
|
|||
3254306148
|
|||
536dd793fe
|
@ -3,7 +3,8 @@ node_js:
|
||||
- 10
|
||||
- 12
|
||||
- 13
|
||||
- 14
|
||||
script: npm run build
|
||||
dist: bionic
|
||||
dist: focal
|
||||
|
||||
# vim: ts=2 sw=2 et
|
||||
|
16
CHANGELOG.md
16
CHANGELOG.md
@ -4,6 +4,22 @@ 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.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))
|
||||
- Use new [figure shortcode](https://cpbotha.net/2020/05/02/drop-in-replacement-for-hugo-figure-shortcode-with-responsive-img-srcset/a) that automatically processes images in a post's page bundle to multiple resolutions and outputs an appropriate img srcset (falls back to getting images from static dir)
|
||||
|
||||
## [[1.5.1]] - 2020-11-15
|
||||
### Updated
|
||||
- Minor version bump for bootstrap, node-sass, and fontawesome
|
||||
- Update to webpack 5 (brings better tree shaking, reduces fontawesome JS by 8K)
|
||||
|
||||
### Fixed
|
||||
- JSON-LD keyword formatting @jeremyrcampb #140
|
||||
|
||||
### Added
|
||||
- Ability to omit date in front matter @jeremyrcampb #141
|
||||
|
||||
## [[1.5.0]] - 2020-05-17
|
||||
### Updated
|
||||
- i18n language keys for German (#dermellor, #131)
|
||||
|
@ -18,6 +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)
|
||||
|
||||
## 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.
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
3
assets/js/fontawesome.min.js
vendored
3
assets/js/fontawesome.min.js
vendored
File diff suppressed because one or more lines are too long
@ -15,7 +15,8 @@
|
||||
"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 := slice }}{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}{{ $keywords = $keywords | append $term }}{{ end }}{{ end }}
|
||||
"keywords": {{ delimit $keywords ", " }}
|
||||
{{- with .Site.Params.description -}}
|
||||
,
|
||||
"description": {{- . -}}
|
||||
|
@ -7,18 +7,28 @@
|
||||
"@type": "BlogPosting",
|
||||
{{- /* Google recommends the headline be no more than 110 characters */}}
|
||||
"headline": {{ substr .Title 0 110 }},
|
||||
{{- with .Params.images -}}{{ range first 1 . }}
|
||||
{{- with .Params.images -}}{{- range first 1 . -}}
|
||||
{{/* try to get the image from the page bundle */}}
|
||||
{{- with $.Page.Resources.GetMatch (printf "*%s*" .) }}
|
||||
"image": {
|
||||
"@type": "ImageObject",
|
||||
"url": {{ . | absURL }}
|
||||
"url": {{ .Permalink }},
|
||||
"height": "{{ .Height }}",
|
||||
"width": "{{ .Width }}"
|
||||
{{/* otherwise, get the image from static */}}
|
||||
{{- else }}
|
||||
"image": {
|
||||
"@type": "ImageObject",
|
||||
{{- $image := . -}}
|
||||
{{- /* Don't try to get imageConfig if image param is not local */ -}}
|
||||
{{- if not (or (hasPrefix . "http://") (hasPrefix . "https://")) -}}
|
||||
{{- with (imageConfig (printf "/static/%s" .)) -}}
|
||||
,
|
||||
{{- with (imageConfig (printf "/static/%s" .)) }}
|
||||
"url": {{ $image | absURL }},
|
||||
"height": "{{ .Height }}",
|
||||
"width": "{{ .Width }}"
|
||||
{{- end -}}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{ end }}
|
||||
},
|
||||
{{- end -}}{{ end }}
|
||||
"url": {{ printf "%s" .Permalink }},
|
||||
@ -56,7 +66,9 @@
|
||||
<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 {{ .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>
|
||||
<p class="blog-post-meta">
|
||||
{{ if not .PublishDate.IsZero }}<time {{ .Date.Format "2006-01-02T15:04:05Z07:00" | printf "datetime=%q" | safeHTMLAttr }}>{{ .Date.Format $dateFormat }}</time>{{ end }}
|
||||
{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
|
||||
</header>
|
||||
{{ .Content }}
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
{{ template "_internal/opengraph.html" . }}
|
||||
{{ template "_internal/twitter_cards.html" . }}
|
||||
{{ partial "opengraph.html" . }}
|
||||
{{ partial "twitter_cards.html" . }}
|
||||
|
||||
{{- with .Site.Params.google_verify_meta -}}
|
||||
<meta name="google-site-verification" content="{{ . }}" />
|
||||
|
73
layouts/partials/opengraph.html
Normal file
73
layouts/partials/opengraph.html
Normal file
@ -0,0 +1,73 @@
|
||||
<!--
|
||||
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 }}
|
||||
|
||||
|
42
layouts/partials/twitter_cards.html
Normal file
42
layouts/partials/twitter_cards.html
Normal file
@ -0,0 +1,42 @@
|
||||
<!--
|
||||
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 -}}
|
92
layouts/shortcodes/figure.html
Normal file
92
layouts/shortcodes/figure.html
Normal file
@ -0,0 +1,92 @@
|
||||
{{/*
|
||||
|
||||
figure with auto-resizing and srcset v2020-11-30
|
||||
|
||||
Drop-in replacement for Hugo's figure shortcode as of 2020-05-02 that uses img srcset
|
||||
to enable browsers to download only the resolution that they need.
|
||||
|
||||
The resizing and srcset magic only works for images that are part of the page
|
||||
bundle. It will fall back to stock Hugo figure behaviour otherwise.
|
||||
|
||||
Improvements that were initially out of reach of my Hugo template programming "skills"
|
||||
but have now been taken care of:
|
||||
- [x] gracefully handle images that are not in page bundle, i.e. no image processing available
|
||||
- [x] use a single configurable sizes array, and derive everything from there
|
||||
|
||||
See https://cpbotha.net/2020/05/02/drop-in-replacement-for-hugo-figure-shortcode-with-img-srcset-support/
|
||||
|
||||
- original srcset img shortcode from: https://laurakalbag.com/processing-responsive-images-with-hugo/
|
||||
- original hugo figure shortcode from: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/shortcodes/figure.html
|
||||
- no unnecessary resizes and more nudges by Stéfan van der Walt https://mentat.za.net/
|
||||
- mashing together and srcset logic fixes by Charl P. Botha https://cpbotha.net/
|
||||
|
||||
Changes:
|
||||
- 2020-11-30 handle images that are rotated 90 degrees (should handle more eventually)
|
||||
- 2020-05-10 fall back to stock Hugo behaviour when no page bundle found
|
||||
- 2020-05-04 no unnecessary resizes, sizes in array
|
||||
- 2020-05-02 initial release
|
||||
|
||||
*/}}
|
||||
|
||||
{{/* hugo will resize to all of these sizes that are smaller than your original. configure if you like! */}}
|
||||
{{ $sizes := (slice "480" "800" "1200" "1500") }}
|
||||
|
||||
{{/* get file that matches the filename as specified as src="" in shortcode */}}
|
||||
{{ $src := .Page.Resources.GetMatch (printf "*%s*" (.Get "src")) }}
|
||||
|
||||
<figure{{ with .Get "class" }} class="{{ . }}"{{ end }}>
|
||||
{{- if .Get "link" -}}
|
||||
<a href="{{ .Get "link" }}"{{ with .Get "target" }} target="{{ . }}"{{ end }}{{ with .Get "rel" }} rel="{{ . }}"{{ end }}>
|
||||
{{- end }}
|
||||
<img
|
||||
{{ if $src }}
|
||||
sizes="(min-width: 35em) 1200px, 100vw"
|
||||
{{/* only srcset images smaller than or equal to the src (original) image size, as Hugo will upscale small images */}}
|
||||
srcset='
|
||||
{{ range $sizes }}
|
||||
{{ $size := . }}
|
||||
{{/* https://discourse.gohugo.io/t/image-exif-orientation/22902/7 */}}
|
||||
{{/* set orientation to 1 just in case it doesnt exist in Exif */}}
|
||||
{{ $orientation := 1 }}
|
||||
{{ with $src.Exif }}
|
||||
{{ $orientation := .Tags.Orientation }}
|
||||
{{ if and (ge $src.Width $size) (eq $orientation 8) }}
|
||||
{{ ($src.Resize (printf "%sx r90" $size)).Permalink }} {{ (printf "%sw" $size) }},
|
||||
{{ else if ge $src.Width $size }}{{ ($src.Resize (printf "%sx" $size)).Permalink }} {{ (printf "%sw" $size) }},{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}'
|
||||
|
||||
{{/* when no support for srcset (old browsers, RSS), we load small (800px) */}}
|
||||
{{/* if image smaller than 800, then load the image itself */}}
|
||||
{{ if ge $src.Width "800" }}src="{{ ($src.Resize "800x").Permalink }}"
|
||||
{{ else }}src="{{ $src.Permalink }}"
|
||||
{{ end }}
|
||||
|
||||
{{ else }}
|
||||
{{/* fall back to stock hugo behaviour when image is not available in bundle */}}
|
||||
src="{{ .Get "src" }}"
|
||||
{{ end }}
|
||||
|
||||
{{- if or (.Get "alt") (.Get "caption") }}
|
||||
alt="{{ with .Get "alt" }}{{ . }}{{ else }}{{ .Get "caption" | markdownify| plainify }}{{ end }}"
|
||||
{{- end -}}
|
||||
{{- with .Get "width" }} width="{{ . }}"{{ end -}}
|
||||
{{- with .Get "height" }} height="{{ . }}"{{ end -}}
|
||||
/> <!-- Closing img tag -->
|
||||
{{- if .Get "link" }}</a>{{ end -}}
|
||||
{{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") -}}
|
||||
<figcaption>
|
||||
{{ with (.Get "title") -}}
|
||||
<h4>{{ . }}</h4>
|
||||
{{- end -}}
|
||||
{{- if or (.Get "caption") (.Get "attr") -}}<p>
|
||||
{{- .Get "caption" | markdownify -}}
|
||||
{{- with .Get "attrlink" }}
|
||||
<a href="{{ . }}">
|
||||
{{- end -}}
|
||||
{{- .Get "attr" | markdownify -}}
|
||||
{{- if .Get "attrlink" }}</a>{{ end }}</p>
|
||||
{{- end }}
|
||||
</figcaption>
|
||||
{{- end }}
|
||||
</figure>
|
3102
package-lock.json
generated
3102
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
22
package.json
22
package.json
@ -1,32 +1,32 @@
|
||||
{
|
||||
"name": "hugo-theme-bootstrap4-blog",
|
||||
"version": "1.5.0",
|
||||
"version": "1.6.0",
|
||||
"description": "A Bootstrap v4 theme for the Hugo static site generator.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/alanorth/hugo-theme-bootstrap4-blog.git"
|
||||
},
|
||||
"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: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: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"
|
||||
"clean": "rm assets/css/style.css.tmp assets/css/style.css.tmp.map assets/css/style.rtl.css.tmp"
|
||||
},
|
||||
"keywords": "hugo",
|
||||
"author": "Alan Orth",
|
||||
"license": "CC-BY-3.0",
|
||||
"devDependencies": {
|
||||
"@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",
|
||||
"@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",
|
||||
"node-sass": "^4.14.1",
|
||||
"rtlcss": "^2.5.0",
|
||||
"webpack": "^4.43.0",
|
||||
"webpack-cli": "^3.3.11"
|
||||
"rtlcss": "^2.6.1",
|
||||
"sass": "^1.29.0",
|
||||
"webpack": "^5.4.0",
|
||||
"webpack-cli": "^3.3.12"
|
||||
}
|
||||
}
|
||||
|
76
source/scss/bootstrap.scss
vendored
76
source/scss/bootstrap.scss
vendored
@ -1,44 +1,44 @@
|
||||
/*!
|
||||
* Bootstrap v4.5.0 (https://getbootstrap.com/)
|
||||
* 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)
|
||||
*/
|
||||
|
||||
@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/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/forms";
|
||||
@import "node_modules/bootstrap/scss/buttons";
|
||||
//@import "node_modules/bootstrap/scss/transitions";
|
||||
//@import "node_modules/bootstrap/scss/dropdown";
|
||||
//@import "node_modules/bootstrap/scss/button-group";
|
||||
//@import "node_modules/bootstrap/scss/input-group";
|
||||
//@import "node_modules/bootstrap/scss/custom-forms";
|
||||
@import "node_modules/bootstrap/scss/nav";
|
||||
@import "node_modules/bootstrap/scss/navbar";
|
||||
//@import "node_modules/bootstrap/scss/card";
|
||||
//@import "node_modules/bootstrap/scss/breadcrumb";
|
||||
@import "node_modules/bootstrap/scss/pagination";
|
||||
//@import "node_modules/bootstrap/scss/badge";
|
||||
//@import "node_modules/bootstrap/scss/jumbotron";
|
||||
//@import "node_modules/bootstrap/scss/alert";
|
||||
//@import "node_modules/bootstrap/scss/progress";
|
||||
//@import "node_modules/bootstrap/scss/media";
|
||||
//@import "node_modules/bootstrap/scss/list-group";
|
||||
//@import "node_modules/bootstrap/scss/close";
|
||||
//@import "node_modules/bootstrap/scss/toasts";
|
||||
//@import "node_modules/bootstrap/scss/modal";
|
||||
//@import "node_modules/bootstrap/scss/tooltip";
|
||||
//@import "node_modules/bootstrap/scss/popover";
|
||||
//@import "node_modules/bootstrap/scss/carousel";
|
||||
//@import "node_modules/bootstrap/scss/spinners";
|
||||
@import "node_modules/bootstrap/scss/utilities";
|
||||
@import "node_modules/bootstrap/scss/print";
|
||||
@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/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/forms";
|
||||
@import "../../node_modules/bootstrap/scss/buttons";
|
||||
//@import "../../node_modules/bootstrap/scss/transitions";
|
||||
//@import "../../node_modules/bootstrap/scss/dropdown";
|
||||
//@import "../../node_modules/bootstrap/scss/button-group";
|
||||
//@import "../../node_modules/bootstrap/scss/input-group";
|
||||
//@import "../../node_modules/bootstrap/scss/custom-forms";
|
||||
@import "../../node_modules/bootstrap/scss/nav";
|
||||
@import "../../node_modules/bootstrap/scss/navbar";
|
||||
//@import "../../node_modules/bootstrap/scss/card";
|
||||
//@import "../../node_modules/bootstrap/scss/breadcrumb";
|
||||
@import "../../node_modules/bootstrap/scss/pagination";
|
||||
//@import "../../node_modules/bootstrap/scss/badge";
|
||||
//@import "../../node_modules/bootstrap/scss/jumbotron";
|
||||
//@import "../../node_modules/bootstrap/scss/alert";
|
||||
//@import "../../node_modules/bootstrap/scss/progress";
|
||||
//@import "../../node_modules/bootstrap/scss/media";
|
||||
//@import "../../node_modules/bootstrap/scss/list-group";
|
||||
//@import "../../node_modules/bootstrap/scss/close";
|
||||
//@import "../../node_modules/bootstrap/scss/toasts";
|
||||
//@import "../../node_modules/bootstrap/scss/modal";
|
||||
//@import "../../node_modules/bootstrap/scss/tooltip";
|
||||
//@import "../../node_modules/bootstrap/scss/popover";
|
||||
//@import "../../node_modules/bootstrap/scss/carousel";
|
||||
//@import "../../node_modules/bootstrap/scss/spinners";
|
||||
@import "../../node_modules/bootstrap/scss/utilities";
|
||||
@import "../../node_modules/bootstrap/scss/print";
|
||||
|
@ -1,6 +1,6 @@
|
||||
// selectively import components we need from bootstrap
|
||||
// see: node_modules/bootstrap/scss/bootstrap.scss
|
||||
@import 'source/scss/bootstrap';
|
||||
@import 'bootstrap';
|
||||
|
||||
// local style overrides
|
||||
@import 'source/scss/main';
|
||||
@import 'main';
|
||||
|
@ -9,7 +9,7 @@ min_version = 0.55
|
||||
|
||||
[author]
|
||||
name = "Alan Orth"
|
||||
homepage = "https://englishbulgaria.net"
|
||||
homepage = "https://picturingjordan.com"
|
||||
|
||||
[original]
|
||||
author = "mdo"
|
||||
|
Reference in New Issue
Block a user