From 58805381571574f39ff3ddeaf98f64d708486ca7 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Mon, 31 Aug 2020 15:40:11 +0200 Subject: [PATCH 01/88] chore: initial commit --- .github/FUNDING.yml | 2 + .github/workflows/ci.yml | 32 ++++ .gitignore | 1 + .jsbeautifyrc | 27 +++ LICENSE | 20 +++ README.md | 67 ++++++++ archetypes/default.md | 9 + exampleSite/config.toml | 44 +++++ exampleSite/content/_index.md | 21 +++ exampleSite/content/blog/_index.md | 3 + exampleSite/content/blog/bear.md | 25 +++ exampleSite/content/blog/hugo.md | 31 ++++ exampleSite/content/blog/markdown-syntax.md | 144 ++++++++++++++++ exampleSite/static/favicon.ico | Bin 0 -> 15406 bytes exampleSite/static/images/favicon.png | Bin 0 -> 1312 bytes exampleSite/static/images/share.png | Bin 0 -> 25877 bytes images/screenshot.png | Bin 0 -> 37714 bytes images/tn.png | Bin 0 -> 25877 bytes layouts/404.html | 6 + layouts/_default/baseof.html | 43 +++++ layouts/_default/list.html | 57 +++++++ layouts/_default/single.html | 20 +++ layouts/index.html | 3 + layouts/partials/custom_body.html | 3 + layouts/partials/custom_head.html | 3 + layouts/partials/favicon.html | 2 + layouts/partials/footer.html | 1 + layouts/partials/head.html | 14 ++ layouts/partials/header.html | 4 + layouts/partials/nav.html | 5 + layouts/partials/seo_tags.html | 13 ++ layouts/partials/style.html | 99 +++++++++++ layouts/robots.txt | 2 + package-lock.json | 177 ++++++++++++++++++++ package.json | 28 ++++ theme.toml | 24 +++ 36 files changed, 930 insertions(+) create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .jsbeautifyrc create mode 100644 LICENSE create mode 100644 README.md create mode 100644 archetypes/default.md create mode 100644 exampleSite/config.toml create mode 100644 exampleSite/content/_index.md create mode 100644 exampleSite/content/blog/_index.md create mode 100644 exampleSite/content/blog/bear.md create mode 100644 exampleSite/content/blog/hugo.md create mode 100644 exampleSite/content/blog/markdown-syntax.md create mode 100644 exampleSite/static/favicon.ico create mode 100644 exampleSite/static/images/favicon.png create mode 100644 exampleSite/static/images/share.png create mode 100644 images/screenshot.png create mode 100644 images/tn.png create mode 100644 layouts/404.html create mode 100644 layouts/_default/baseof.html create mode 100644 layouts/_default/list.html create mode 100644 layouts/_default/single.html create mode 100644 layouts/index.html create mode 100644 layouts/partials/custom_body.html create mode 100644 layouts/partials/custom_head.html create mode 100644 layouts/partials/favicon.html create mode 100644 layouts/partials/footer.html create mode 100644 layouts/partials/head.html create mode 100644 layouts/partials/header.html create mode 100644 layouts/partials/nav.html create mode 100644 layouts/partials/seo_tags.html create mode 100644 layouts/partials/style.html create mode 100644 layouts/robots.txt create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 theme.toml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..c911893 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +custom: ['https://www.paypal.me/janraasch/7,00'] +github: ['janraasch'] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..807e17b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-18.04 + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: latest + + - name: Build local ./exampleSite + run: hugo --minify --gc --destination ../public --source ./exampleSite --themesDir ../.. --baseURL https://janraasch.github.io/hugo-bearblog/ + + - name: Deploy to GitHub Pages + if: github.event_name == 'push' + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./public diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/.jsbeautifyrc b/.jsbeautifyrc new file mode 100644 index 0000000..4e39ba0 --- /dev/null +++ b/.jsbeautifyrc @@ -0,0 +1,27 @@ +{ + "indent_size": 2, + "indent_char": " ", + "indent_with_tabs": false, + "editorconfig": false, + "eol": "\n", + "end_with_newline": true, + "indent_level": 0, + "preserve_newlines": true, + "max_preserve_newlines": 10, + "space_in_paren": false, + "space_in_empty_paren": false, + "jslint_happy": false, + "space_after_anon_function": false, + "space_after_named_function": false, + "brace_style": "collapse", + "unindent_chained_methods": false, + "break_chained_methods": false, + "keep_array_indentation": false, + "unescape_strings": false, + "wrap_line_length": 0, + "e4x": false, + "comma_first": false, + "operator_position": "before-newline", + "indent_empty_lines": false, + "templating": ["auto"] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3be3bb7 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2020 Jan Raasch + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e679dfa --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# Hugo Bear Blog ![Test](https://github.com/janraasch/hugo-bearblog/workflows/CI/badge.svg?branch=master&event=push) + +🧸 A [Hugo](https://gohugo.io/)-theme based on [Bear Blog](https://bearblog.dev). + +> Free, no-nonsense, super-fast blogging. + +## Demo + +For a current & working demo of this theme, please check out https://janraasch.github.io/hugo-bearblog/ 🎯. + +## Installation + +If you already have a Hugo site on your machine, you can simply add this theme via + +``` +git submodule add https://github.com/janraasch/hugo-bearblog.git themes/hugo-bearblog +``` + +Then, adjust the `config.toml` as detailed below. + +For more information, read the official [setup guide][hugo-setup-guide] of Hugo. + +## Adjust configuration / config.toml + +Please check out the [config.toml](https://github.com/janraasch/hugo-bearblog/blob/master/exampleSite/config.toml) included in the [exampleSite](https://github.com/janraasch/hugo-bearblog/tree/master/exampleSite) of this theme. + +## Content & structure + +### Starting fresh + +If you are starting fresh, simply copy over the contents of the `exampleSite`-directory included in this theme to your source directory. That should give you a good idea about how things work, and then you can go on from there to make the site your own. + +### Adding content + +You can add **a new post/page** via running + +``` +hugo new blog/my-new-post.md +``` + +### Adding your branding / colors / css + +Add a `custom_head.html`-file to your `layouts/partials`-directory. In there you may add a ` + + {{ if .Data.Singular }} +

Filtering for "{{ .Title }}"

+ + Remove filter + + {{ end }} + + {{ if .Data.Singular }} + {{else}} + +
+ {{ range .Site.Taxonomies.tags }} + #{{ .Page.Title }}  + {{ end }} +
+
+ {{ end }} +
+{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..f993a0c --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,20 @@ +{{ define "main" }} +{{ if eq .Type "blog" }}{{ if not .Params.menu }} +

{{ .Title }}

+

+ + + +

+{{ end }}{{ end }} + + {{ .Content }} + +

+ {{ range (.GetTerms "tags") }} + #{{ .LinkTitle }} + {{ end }} +

+{{ end }} diff --git a/layouts/index.html b/layouts/index.html new file mode 100644 index 0000000..9983b08 --- /dev/null +++ b/layouts/index.html @@ -0,0 +1,3 @@ +{{ define "main" }} +{{ .Content }} +{{ end }} diff --git a/layouts/partials/custom_body.html b/layouts/partials/custom_body.html new file mode 100644 index 0000000..951fb15 --- /dev/null +++ b/layouts/partials/custom_body.html @@ -0,0 +1,3 @@ + diff --git a/layouts/partials/custom_head.html b/layouts/partials/custom_head.html new file mode 100644 index 0000000..4c53c40 --- /dev/null +++ b/layouts/partials/custom_head.html @@ -0,0 +1,3 @@ + diff --git a/layouts/partials/favicon.html b/layouts/partials/favicon.html new file mode 100644 index 0000000..ccf1a5d --- /dev/null +++ b/layouts/partials/favicon.html @@ -0,0 +1,2 @@ +{{ with .Site.Params.favicon }} +{{ end }} diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..8eca955 --- /dev/null +++ b/layouts/partials/footer.html @@ -0,0 +1 @@ +{{ if ne .Site.Params.hideMadeWithLine true }}Made with Hugo ʕ•ᴥ•ʔ Bear{{ end }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html new file mode 100644 index 0000000..69488a7 --- /dev/null +++ b/layouts/partials/head.html @@ -0,0 +1,14 @@ + + + +{{- partial "favicon.html" . -}} +{{- block "title" . }}{{ .Site.Title }}{{- end }} + +{{- partial "seo_tags.html" . -}} + + +{{ with .OutputFormats.Get "rss" -}} +{{ printf `` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} +{{ end -}} + +{{- partial "style.html" . -}} diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..e47df70 --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,4 @@ + +

{{ .Site.Title }}

+
+ diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html new file mode 100644 index 0000000..dd06f47 --- /dev/null +++ b/layouts/partials/nav.html @@ -0,0 +1,5 @@ +Home +{{ range .Site.Menus.main }} +{{ .Name }} +{{ end }} +Blog diff --git a/layouts/partials/seo_tags.html b/layouts/partials/seo_tags.html new file mode 100644 index 0000000..0b01f8b --- /dev/null +++ b/layouts/partials/seo_tags.html @@ -0,0 +1,13 @@ + + + + + + +{{ template "_internal/opengraph.html" . }} + + +{{ template "_internal/twitter_cards.html" . }} + + +{{ template "_internal/schema.html" . }} diff --git a/layouts/partials/style.html b/layouts/partials/style.html new file mode 100644 index 0000000..d429eb2 --- /dev/null +++ b/layouts/partials/style.html @@ -0,0 +1,99 @@ + diff --git a/layouts/robots.txt b/layouts/robots.txt new file mode 100644 index 0000000..0326f5c --- /dev/null +++ b/layouts/robots.txt @@ -0,0 +1,2 @@ +User-Agent: * +Sitemap: {{ "sitemap.xml" | absURL }} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..97604df --- /dev/null +++ b/package-lock.json @@ -0,0 +1,177 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "js-beautify": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz", + "integrity": "sha512-/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==", + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "mkdirp": "^1.0.4", + "nopt": "^5.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2f8c84a --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "hugo-bearblog", + "private": true, + "version": "1.0.0", + "description": "🧸 A [Hugo](https://gohugo.io/)-theme based on [Bear Blog](https://bearblog.dev).", + "main": "index.js", + "devDependencies": { + "js-beautify": "^1.13.0" + }, + "scripts": { + "test": "npm run beautify", + "beautify": "js-beautify layouts/**/*.html -r" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/janraasch/hugo-bearblog.git" + }, + "author": { + "name": "Jan Raasch", + "email": "jan@janraasch.com", + "url": "https://www.janraasch.com" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/janraasch/hugo-bearblog/issues" + }, + "homepage": "https://github.com/janraasch/hugo-bearblog#readme" +} diff --git a/theme.toml b/theme.toml new file mode 100644 index 0000000..945be48 --- /dev/null +++ b/theme.toml @@ -0,0 +1,24 @@ +# theme.toml template for a Hugo theme +# See https://github.com/gohugoio/hugoThemes#themetoml for an example + +name = "Hugo Bear Blog" +license = "MIT" +licenselink = "https://github.com/janraasch/hugo-bearblog/blob/master/LICENSE" +description = "A Hugo theme based on »Bear Blog«. Free, no-nonsense, super-fast blogging." +homepage = "https://github.com/janraasch/hugo-bearblog" +tags = ["blog", "responsive", "minimal", "seo", "clean", "simple", "light", "minimalist", "mobile", "fast", "white", "minimalistic", "reading"] +features = ["favicon", "seo", "no stylesheets", "no javascript", "rss"] +min_version = "0.73.0" +# https://gohugo.io/content-management/taxonomies#default-taxonomies +# https://gohugo.io/templates/taxonomy-templates/#example-list-tags-in-a-single-page-template +# https://gohugo.io/templates/taxonomy-templates/#example-list-all-site-tags + +[author] + name = "Jan Raasch" + homepage = "https://www.janraasch.com" + +# If porting an existing theme +[original] + name = "ʕ•ᴥ•ʔ Bear Blog" + homepage = "https://bearblog.dev" + repo = "https://github.com/HermanMartinus/bearblog" From e13df26c715f17686fbae1e709a3115ac7377df8 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Fri, 4 Sep 2020 08:54:19 +0200 Subject: [PATCH 02/88] refactor: move (non-post) pages to "content"-root --- README.md | 19 ++++++++++++++++--- archetypes/blog.md | 13 +++++++++++++ archetypes/default.md | 17 +++++++++++++++-- exampleSite/content/{blog => }/bear.md | 7 ------- exampleSite/content/{blog => }/hugo.md | 5 ----- 5 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 archetypes/blog.md rename exampleSite/content/{blog => }/bear.md (85%) rename exampleSite/content/{blog => }/hugo.md (94%) diff --git a/README.md b/README.md index e679dfa..2c0764a 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,23 @@ Please check out the [config.toml](https://github.com/janraasch/hugo-bearblog/bl If you are starting fresh, simply copy over the contents of the `exampleSite`-directory included in this theme to your source directory. That should give you a good idea about how things work, and then you can go on from there to make the site your own. -### Adding content +### Adding / editing content -You can add **a new post/page** via running +#### Index-Page + +The contents of the `index`-page may be changed by editing your `content/_index.md`-file. + +#### Page + +You can add **a new page** via running + +``` +hugo new my-new-page.md +``` + +#### Blog-Post + +You can add **a new blog-post** via running ``` hugo new blog/my-new-post.md @@ -63,5 +77,4 @@ A special thank you goes out to [Herman](https://herman.bearblog.dev), for creat [paypal-dot-me]: https://www.paypal.me/janraasch/7,00 [github-sponsors]: https://github.com/sponsors/janraasch [insert-coins-svg]: https://img.shields.io/badge/insert-coins-11dde2.svg - [hugo-setup-guide]: https://gohugo.io/getting-started/installing diff --git a/archetypes/blog.md b/archetypes/blog.md new file mode 100644 index 0000000..e4594c6 --- /dev/null +++ b/archetypes/blog.md @@ -0,0 +1,13 @@ ++++ +title = "{{ replace .Name "-" " " | title }}" +date = "{{ .Date }}" + +# +# description is optional +# +# description = "An optional description for SEO. If not provided, an automatically created summary will be used." + +tags = [{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}"{{ printf "%s" $term }}",{{ end }}{{ end }}] ++++ + +This is a page about »{{ replace .Name "-" " " | title }}«. diff --git a/archetypes/default.md b/archetypes/default.md index ed40bd4..e8406b3 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -1,9 +1,22 @@ +++ title = "{{ replace .Name "-" " " | title }}" date = "{{ .Date }}" + +# +# Set menu to "main" to add this page to +# the main menu on top of the page +# +menu = "main" + +# +# description is optional +# # description = "An optional description for SEO. If not provided, an automatically created summary will be used." -# menu = "main" -tags = [{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}"{{ printf "%s" $term }}",{{ end }}{{ end }}] + +# +# tags are optional +# +# tags = [{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}"{{ printf "%s" $term }}",{{ end }}{{ end }}] +++ This is a page about »{{ replace .Name "-" " " | title }}«. diff --git a/exampleSite/content/blog/bear.md b/exampleSite/content/bear.md similarity index 85% rename from exampleSite/content/blog/bear.md rename to exampleSite/content/bear.md index 83691e5..a25a2dc 100644 --- a/exampleSite/content/blog/bear.md +++ b/exampleSite/content/bear.md @@ -1,13 +1,6 @@ +++ title = "Bear" menu = "main" -date = "2020-01-01" -tags = [ - "blogging", - "no javascript", - "no stylesheets", - "no trackers" -] +++ # Bear diff --git a/exampleSite/content/blog/hugo.md b/exampleSite/content/hugo.md similarity index 94% rename from exampleSite/content/blog/hugo.md rename to exampleSite/content/hugo.md index 2245a48..6f6ce0d 100644 --- a/exampleSite/content/blog/hugo.md +++ b/exampleSite/content/hugo.md @@ -1,11 +1,6 @@ +++ title = "Hugo" menu = "main" -date = "2020-01-02" -tags = [ - "blogging", - "static site generator" -] +++ # Hugo From 7e6d4587458c11cb9e155a5e34d2a5ffc9ba230a Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Fri, 4 Sep 2020 09:04:50 +0200 Subject: [PATCH 03/88] =?UTF-8?q?docs(README):=20add=20=CA=95=E2=80=A2?= =?UTF-8?q?=E1=B4=A5=E2=80=A2=CA=94=20=F0=9F=A4=A9=20=F0=9F=98=84=20?= =?UTF-8?q?=F0=9F=91=8B=F0=9F=8F=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c0764a..4e047dc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Hugo Bear Blog ![Test](https://github.com/janraasch/hugo-bearblog/workflows/CI/badge.svg?branch=master&event=push) +# Hugo ʕ•ᴥ•ʔ Bear Blog ![Test](https://github.com/janraasch/hugo-bearblog/workflows/CI/badge.svg?branch=master&event=push) 🧸 A [Hugo](https://gohugo.io/)-theme based on [Bear Blog](https://bearblog.dev). From 74877f3528bf3f1c373b185df55c5b655a1968a7 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Fri, 4 Sep 2020 09:25:01 +0200 Subject: [PATCH 04/88] =?UTF-8?q?chore:=20enable=20=C2=BBStale=C2=AB-bot?= =?UTF-8?q?=20=F0=9F=96=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://probot.github.io/apps/stale/ --- .github/stale.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000..dc90e5a --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,17 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false From 053378a2d31ab8571813097cf8015cd3e318bcca Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Wed, 9 Sep 2020 19:02:14 +0200 Subject: [PATCH 05/88] docs: more prominently display sponsorship possibilities --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4e047dc..418b499 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Hugo ʕ•ᴥ•ʔ Bear Blog ![Test](https://github.com/janraasch/hugo-bearblog/workflows/CI/badge.svg?branch=master&event=push) +# Hugo ʕ•ᴥ•ʔ Bear Blog ![Test](https://github.com/janraasch/hugo-bearblog/workflows/CI/badge.svg?branch=master&event=push) [![Pay me][paypal-svg]][paypal-dot-me] [![Sponsor me][github-sponsors-svg]][github-sponsors] 🧸 A [Hugo](https://gohugo.io/)-theme based on [Bear Blog](https://bearblog.dev). @@ -8,6 +8,12 @@ For a current & working demo of this theme, please check out https://janraasch.github.io/hugo-bearblog/ 🎯. +## Sponsor 💟 + +Support my work on this theme via [GitHub Sponsors][github-sponsors] (recurring) or [PayPal][paypal-dot-me] (one-time). + +[![GitHub Stats](https://github-readme-stats.vercel.app/api/?username=janraasch)][github-sponsors] + ## Installation If you already have a Hugo site on your machine, you can simply add this theme via @@ -61,12 +67,6 @@ Please use [GitHub issues](https://github.com/janraasch/hugo-bearblog/issues) an If you do not have a GitHub-account, please hit me up via e-mail (see [janraasch.com](https://www.janraasch.com)). - -## Sponsor [![Pay me][insert-coins-svg]][paypal-dot-me] -Please consider supporting my work via [GitHub Sponsors][github-sponsors] or [PayPal][paypal-dot-me]. - -[![GitHub Stats](https://github-readme-stats.vercel.app/api/?username=janraasch)][github-sponsors] - ## Special Thanks 🎁 A special thank you goes out to [Herman](https://herman.bearblog.dev), for creating the original [ʕ•ᴥ•ʔ Bear Blog](https://bearblog.dev/). @@ -76,5 +76,6 @@ A special thank you goes out to [Herman](https://herman.bearblog.dev), for creat [paypal-dot-me]: https://www.paypal.me/janraasch/7,00 [github-sponsors]: https://github.com/sponsors/janraasch -[insert-coins-svg]: https://img.shields.io/badge/insert-coins-11dde2.svg +[paypal-svg]: https://img.shields.io/badge/insert-coins-11dde2.svg?logo=paypal +[github-sponsors-svg]: https://img.shields.io/badge/sponsor-me-ee4aaa.svg?logo=github [hugo-setup-guide]: https://gohugo.io/getting-started/installing From 3d510363c720823f9b90bf9ca4955ee44750b456 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Fri, 11 Sep 2020 19:35:53 +0200 Subject: [PATCH 06/88] docs: improve wording on badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 418b499..ce3c5c5 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,6 @@ A special thank you goes out to [Herman](https://herman.bearblog.dev), for creat [paypal-dot-me]: https://www.paypal.me/janraasch/7,00 [github-sponsors]: https://github.com/sponsors/janraasch -[paypal-svg]: https://img.shields.io/badge/insert-coins-11dde2.svg?logo=paypal -[github-sponsors-svg]: https://img.shields.io/badge/sponsor-me-ee4aaa.svg?logo=github +[paypal-svg]: https://img.shields.io/badge/onetime-donation-11dde2.svg?logo=paypal +[github-sponsors-svg]: https://img.shields.io/badge/recurring-sponsorship-ee4aaa.svg?logo=github [hugo-setup-guide]: https://gohugo.io/getting-started/installing From dcff8a4f858ee892b177cd312c643c42a917f0ec Mon Sep 17 00:00:00 2001 From: Nick Badal Date: Wed, 16 Sep 2020 22:35:58 -0700 Subject: [PATCH 07/88] feat: hide blog link if page not created (#4) Allows this theme to be used for sites that do not have a blog. --- layouts/partials/nav.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index dd06f47..def9b6e 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -2,4 +2,6 @@ {{ range .Site.Menus.main }} {{ .Name }} {{ end }} +{{ with .Site.GetPage "/blog" }} Blog +{{ end }} From fa9713088b1c70e19df4c8a94b192de12e89c4af Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 24 Sep 2020 17:00:46 +0200 Subject: [PATCH 08/88] chore: add dependabot.yml see https://docs.github.com/en/github/administering-a-repository/keeping-your-dependencies-updated-automatically --- .github/dependabot.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..60a68af --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +# see https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates +version: 2 +updates: + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + + # Maintain dependencies for npm + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "daily" From 0c3efa646d35187f8a57557708c91b276b36fb01 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 1 Oct 2020 15:33:23 +0200 Subject: [PATCH 09/88] feat: add dark color scheme for dark mode see https://github.com/HermanMartinus/bearblog/pull/51 --- layouts/partials/style.html | 77 +++++++++++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 7 deletions(-) diff --git a/layouts/partials/style.html b/layouts/partials/style.html index d429eb2..6d1a66b 100644 --- a/layouts/partials/style.html +++ b/layouts/partials/style.html @@ -5,7 +5,7 @@ padding: 20px; max-width: 720px; text-align: left; - background-color: white; + background-color: #fff; word-wrap: break-word; overflow-wrap: break-word; line-height: 1.5; @@ -25,6 +25,7 @@ a { color: #3273dc; + /*color: #ff5e6c;*/ } .title { @@ -63,21 +64,21 @@ code { padding: 2px 5px; - background-color: #eee; + background-color: #f2f2f2; } pre code { - border-left: 1px solid #999; - color: #555; + color: #222; display: block; - padding: 10px; + padding: 20px; white-space: pre-wrap; + font-size: 14px; } blockquote { border-left: 1px solid #999; - color: #555; - padding-left: 10px; + color: #222; + padding-left: 20px; font-style: italic; } @@ -96,4 +97,66 @@ font-size: small; } + /* blog posts */ + ul.blog-posts { + list-style-type: none; + padding: unset; + } + + ul.blog-posts li { + display: flex; + } + + ul.blog-posts li span { + flex: 0 0 130px; + } + + ul.blog-posts li a:visited { + color: #8b6fcb; + } + + @media (prefers-color-scheme: dark) { + body { + background-color: #333; + color: #ddd; + } + + h1, + h2, + h3, + h4, + h5, + h6, + strong, + b { + color: #eee; + } + + a { + color: #8cc2dd; + } + + code { + background-color: #777; + } + + pre code { + color: #ddd; + } + + blockquote { + color: #ccc; + } + + textarea, + input { + background-color: #252525; + color: #ddd; + } + + .helptext { + color: #aaa; + } + } + From 0b121f5eb6a532843a6caaddff5d7ebbf800b642 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 1 Oct 2020 15:42:00 +0200 Subject: [PATCH 10/88] docs: announce dark mode --- README.md | 2 ++ theme.toml | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ce3c5c5..fec0ca9 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ > Free, no-nonsense, super-fast blogging. +This theme now includes a dark color scheme to support dark mode 🦉 ⬛️! + ## Demo For a current & working demo of this theme, please check out https://janraasch.github.io/hugo-bearblog/ 🎯. diff --git a/theme.toml b/theme.toml index 945be48..4dc5442 100644 --- a/theme.toml +++ b/theme.toml @@ -4,10 +4,10 @@ name = "Hugo Bear Blog" license = "MIT" licenselink = "https://github.com/janraasch/hugo-bearblog/blob/master/LICENSE" -description = "A Hugo theme based on »Bear Blog«. Free, no-nonsense, super-fast blogging." +description = "A Hugo theme based on »Bear Blog«. Free, no-nonsense, super-fast blogging. »Bear Blog« now includes a dark color scheme to support dark mode!" homepage = "https://github.com/janraasch/hugo-bearblog" -tags = ["blog", "responsive", "minimal", "seo", "clean", "simple", "light", "minimalist", "mobile", "fast", "white", "minimalistic", "reading"] -features = ["favicon", "seo", "no stylesheets", "no javascript", "rss"] +tags = ["blog", "responsive", "minimal", "seo", "clean", "simple", "light", "minimalist", "mobile", "fast", "white", "minimalistic", "reading", "dark mode"] +features = ["favicon", "seo", "no stylesheets", "no javascript", "rss", "dark mode"] min_version = "0.73.0" # https://gohugo.io/content-management/taxonomies#default-taxonomies # https://gohugo.io/templates/taxonomy-templates/#example-list-tags-in-a-single-page-template From 66e7de35223c14c56a5e3b9ccc761bda78aa1aae Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 1 Oct 2020 15:53:45 +0200 Subject: [PATCH 11/88] docs: add dark screenshot --- README.md | 10 ++++++++++ images/screenshot-dark.png | Bin 0 -> 36748 bytes 2 files changed, 10 insertions(+) create mode 100644 images/screenshot-dark.png diff --git a/README.md b/README.md index fec0ca9..2ec1e43 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,14 @@ This theme now includes a dark color scheme to support dark mode 🦉 ⬛️! +## Screenshots + +⬜️ [Light][light-screenshot] + +⬛️ [Dark][dark-screenshot] + +If the user's browser is running »dark mode«, the dark color scheme will be used automatically. The default is the light/white color scheme. Check out [`style.html`](https://github.com/janraasch/hugo-bearblog/blob/master/layouts/partials/style.html) for the implementation. + ## Demo For a current & working demo of this theme, please check out https://janraasch.github.io/hugo-bearblog/ 🎯. @@ -81,3 +89,5 @@ A special thank you goes out to [Herman](https://herman.bearblog.dev), for creat [paypal-svg]: https://img.shields.io/badge/onetime-donation-11dde2.svg?logo=paypal [github-sponsors-svg]: https://img.shields.io/badge/recurring-sponsorship-ee4aaa.svg?logo=github [hugo-setup-guide]: https://gohugo.io/getting-started/installing +[light-screenshot]: https://github.com/janraasch/hugo-bearblog/blob/master/images/screenshot.png +[dark-screenshot]: https://github.com/janraasch/hugo-bearblog/blob/master/images/screenshot-dark.png diff --git a/images/screenshot-dark.png b/images/screenshot-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9fdf1ed2646f4d9fa7294e23d7ff6171c66140 GIT binary patch literal 36748 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 S3bOUT5ASI2e1UB1ckjPl<}ddE literal 0 HcmV?d00001 From 8e1715de8c1c3dffab0f0b2cf0d31a8448e6c8ee Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 1 Oct 2020 15:58:10 +0200 Subject: [PATCH 12/88] style: some clean up --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 2ec1e43..eea0cb5 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,13 @@ > Free, no-nonsense, super-fast blogging. -This theme now includes a dark color scheme to support dark mode 🦉 ⬛️! - ## Screenshots ⬜️ [Light][light-screenshot] ⬛️ [Dark][dark-screenshot] -If the user's browser is running »dark mode«, the dark color scheme will be used automatically. The default is the light/white color scheme. Check out [`style.html`](https://github.com/janraasch/hugo-bearblog/blob/master/layouts/partials/style.html) for the implementation. +When the user's browser is running »dark mode«, the dark color scheme will be used automatically. The default is the light/white color scheme. Check out the [`style.html`](https://github.com/janraasch/hugo-bearblog/blob/master/layouts/partials/style.html)-file for the implementation. ## Demo From 454d19d0a416b5dcd54ff5e48cb826583689db25 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 1 Oct 2020 16:01:26 +0200 Subject: [PATCH 13/88] docs: link to "raw" screenshots --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eea0cb5..11e6f2a 100644 --- a/README.md +++ b/README.md @@ -87,5 +87,5 @@ A special thank you goes out to [Herman](https://herman.bearblog.dev), for creat [paypal-svg]: https://img.shields.io/badge/onetime-donation-11dde2.svg?logo=paypal [github-sponsors-svg]: https://img.shields.io/badge/recurring-sponsorship-ee4aaa.svg?logo=github [hugo-setup-guide]: https://gohugo.io/getting-started/installing -[light-screenshot]: https://github.com/janraasch/hugo-bearblog/blob/master/images/screenshot.png -[dark-screenshot]: https://github.com/janraasch/hugo-bearblog/blob/master/images/screenshot-dark.png +[light-screenshot]: https://raw.githubusercontent.com/janraasch/hugo-bearblog/master/images/screenshot.png +[dark-screenshot]: https://raw.githubusercontent.com/janraasch/hugo-bearblog/master/images/screenshot-dark.png From f6a67927cdaa7a296003ff88e8f15e4bafed94ff Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 1 Oct 2020 16:02:12 +0200 Subject: [PATCH 14/88] =?UTF-8?q?docs:=20move=20"demo"=20=F0=9F=91=86?= =?UTF-8?q?=F0=9F=8F=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 11e6f2a..e21fa87 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ > Free, no-nonsense, super-fast blogging. +## Demo + +For a current & working demo of this theme, please check out https://janraasch.github.io/hugo-bearblog/ 🎯. + ## Screenshots ⬜️ [Light][light-screenshot] @@ -12,10 +16,6 @@ When the user's browser is running »dark mode«, the dark color scheme will be used automatically. The default is the light/white color scheme. Check out the [`style.html`](https://github.com/janraasch/hugo-bearblog/blob/master/layouts/partials/style.html)-file for the implementation. -## Demo - -For a current & working demo of this theme, please check out https://janraasch.github.io/hugo-bearblog/ 🎯. - ## Sponsor 💟 Support my work on this theme via [GitHub Sponsors][github-sponsors] (recurring) or [PayPal][paypal-dot-me] (one-time). From 6e2f054d42ecb59b37afcf2069f0a3af550e6638 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Thu, 1 Oct 2020 16:12:16 +0200 Subject: [PATCH 15/88] fix: styling of ul.blog-posts see 0c3efa6 --- layouts/_default/list.html | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/layouts/_default/list.html b/layouts/_default/list.html index bd3c972..2545d9a 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -1,23 +1,4 @@ {{ define "main" }} - {{ if .Data.Singular }}

Filtering for "{{ .Title }}"

@@ -25,7 +6,7 @@
Remove filter {{ end }} -