├── archetypes └── default.md ├── .gitignore ├── layouts ├── 404.html ├── post │ ├── list.html │ └── single.html ├── _default │ ├── single.html │ ├── baseof.html │ └── list.html ├── partials │ ├── footer.html │ ├── head.html │ ├── category-posts.html │ └── header.html ├── index.html ├── categories │ └── list.html └── tag │ └── list.html ├── exampleSite ├── content │ ├── homepage │ │ ├── index.md │ │ ├── about.md │ │ └── work.md │ ├── _index.md │ ├── archives.md │ ├── post │ │ ├── _index.md │ │ ├── rich-content.md │ │ ├── emoji-support.md │ │ ├── math-typesetting.mmark │ │ ├── placeholder-text.md │ │ └── markdown-syntax.md │ └── about.md ├── static │ ├── favicon.ico │ └── images │ │ └── avatar.png └── config.toml ├── images ├── tn.png └── screenshot.png ├── static ├── images │ └── avatar.png └── webfonts │ ├── fa-brands-400.ttf │ ├── fa-solid-900.ttf │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.woff2 │ ├── fa-v4compatibility.ttf │ └── fa-v4compatibility.woff2 ├── package.json ├── theme.toml ├── LICENSE ├── assets └── sass │ └── override.scss └── README.md /archetypes/default.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | exampleSite/Makefile 2 | -------------------------------------------------------------------------------- /layouts/404.html: -------------------------------------------------------------------------------- 1 |

404 - Not Found

2 | -------------------------------------------------------------------------------- /exampleSite/content/homepage/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | headless : true 3 | --- 4 | -------------------------------------------------------------------------------- /exampleSite/content/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | author = "Hugo Authors" 3 | +++ 4 | 5 | -------------------------------------------------------------------------------- /images/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/images/tn.png -------------------------------------------------------------------------------- /images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/images/screenshot.png -------------------------------------------------------------------------------- /exampleSite/content/archives.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2019-05-28 3 | type: section 4 | layout: "archives" 5 | --- -------------------------------------------------------------------------------- /layouts/post/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{- partial "category-posts.html" . -}} 3 | {{ end }} 4 | -------------------------------------------------------------------------------- /static/images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/images/avatar.png -------------------------------------------------------------------------------- /exampleSite/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/exampleSite/static/favicon.ico -------------------------------------------------------------------------------- /static/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /static/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /exampleSite/static/images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/exampleSite/static/images/avatar.png -------------------------------------------------------------------------------- /static/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /static/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /static/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /static/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /static/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /static/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/austingebauer/devise/HEAD/static/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /exampleSite/content/post/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | aliases = ["posts","articles","blog","showcase","docs"] 3 | title = "Posts" 4 | author = "Hugo Authors" 5 | tags = ["index"] 6 | +++ 7 | -------------------------------------------------------------------------------- /layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 | {{ .Content }} 4 |
5 | 6 | {{ template "_internal/disqus.html" . }} 7 | {{ end }} 8 | -------------------------------------------------------------------------------- /exampleSite/content/homepage/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Our Difference' 3 | button: 'About us' 4 | weight: 2 5 | --- 6 | 7 | Lorem ipsum dolor sit amet, et essent mediocritatem quo, choro volumus oporteat an mei. ipsum dolor sit amet, et essent mediocritatem quo, -------------------------------------------------------------------------------- /exampleSite/content/homepage/work.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'We Help Business Grow' 3 | button: 'Our Work' 4 | weight: 1 5 | --- 6 | 7 | Lorem ipsum dolor sit amet, et essent mediocritatem quo, choro volumus oporteat an mei. Numquam dolores mel eu, mea docendi omittantur et, mea ea duis erat. Elit melius cu ius. Per ex novum tantas putant, ei his nullam aliquam apeirian. Aeterno quaestio constituto sea an, no eum intellegat assueverit. -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "devise", 3 | "version": "1.0.0", 4 | "description": "devise hugo theme", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "dependencies": { 10 | "@fortawesome/fontawesome-free": "^6.6.0", 11 | "bootstrap": "^4.5.2" 12 | }, 13 | "keywords": [ 14 | "hugo", 15 | "theme" 16 | ], 17 | "author": "Austin Gebauer", 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{- partial "head.html" . -}} 4 | 5 |
6 | {{- partial "header.html" . -}} 7 |
8 | {{- block "main" . }}{{- end }} 9 |
10 |
11 | {{- partial "footer.html" . -}} 12 | 13 | 14 | -------------------------------------------------------------------------------- /theme.toml: -------------------------------------------------------------------------------- 1 | name = "devise" 2 | license = "MIT" 3 | licenselink = "https://github.com/austingebauer/devise/blob/master/LICENSE" 4 | description = "A fast, minimal, responsive Hugo theme for blogs." 5 | homepage = "https://github.com/austingebauer/devise" 6 | tags = ["blog", "minimal", "personal", "simple", "clean"] 7 | features = ["responsive", "google analytics", "recent posts"] 8 | min_version = "0.61.0" 9 | 10 | [author] 11 | name = "Austin Gebauer" 12 | homepage = "https://github.com/austingebauer" 13 | -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /layouts/post/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |

{{ .Title }}

5 | {{ if .Params.Subtitle }} 6 |
{{ .Params.Subtitle }}
7 | {{ end }} 8 | Published {{ .Date.Format "January 2, 2006" }} 9 |
10 | 11 |
12 | {{ .Content }} 13 |
14 |
15 | 16 | {{ template "_internal/disqus.html" . }} 17 | {{ end }} 18 | -------------------------------------------------------------------------------- /layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 | 15 |
16 | {{ end }} 17 | -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 7 | {{ if .Content }} 8 |
9 | {{ .Content }} 10 |
11 | {{ else }} 12 | {{- partial "category-posts.html" . -}} 13 | {{ end }} 14 | {{ end }} 15 | -------------------------------------------------------------------------------- /layouts/categories/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |

{{ if eq .Name "Categories" }} Categories {{ else }} Category - {{ .Name }} {{ end }}

4 | {{ $outerName := .Name }} 5 | 19 |
20 | {{ end }} 21 | -------------------------------------------------------------------------------- /layouts/tag/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |

{{ if eq .Name "Tags" }} Tags {{ else }} Tags - {{ .Name }} {{ end }}

4 | {{ $outerName := .Name }} 5 | 19 |
20 | {{ end }} 21 | -------------------------------------------------------------------------------- /exampleSite/content/post/rich-content.md: -------------------------------------------------------------------------------- 1 | +++ 2 | author = "Hugo Authors" 3 | title = "Rich Content" 4 | date = "2019-03-10" 5 | description = "A brief description of Hugo Shortcodes" 6 | tags = [ 7 | "shortcodes", 8 | "privacy", 9 | ] 10 | +++ 11 | 12 | Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds. 13 | 14 | --- 15 | 16 | ## Instagram Simple Shortcode 17 | 18 | {{< instagram_simple BGvuInzyFAe hidecaption >}} 19 | 20 |
21 | 22 | --- 23 | 24 | ## YouTube Privacy Enhanced Shortcode 25 | 26 | {{< youtube ZJthWmvUzzc >}} 27 | 28 |
29 | 30 | --- 31 | 32 | ## Twitter Simple Shortcode 33 | 34 | {{< twitter_simple 1085870671291310081 >}} 35 | 36 |
37 | 38 | --- 39 | 40 | ## Vimeo Simple Shortcode 41 | 42 | {{< vimeo_simple 48912912 >}} 43 | -------------------------------------------------------------------------------- /layouts/partials/head.html: -------------------------------------------------------------------------------- 1 | 2 | {{ .Site.Title }} 3 | 4 | 5 | 6 | 7 | {{/* Adds complete override capability */}} 8 | {{ $overrideTemplate := resources.Get "sass/override.scss" }} 9 | {{ $override := $overrideTemplate | resources.ExecuteAsTemplate "css/theme.scss" . | toCSS | minify }} 10 | 11 | 12 | {{/* Adds custom styles capability */}} 13 | {{ $customTemplate := resources.Get "sass/custom.scss" }} 14 | {{ if $customTemplate }} 15 | {{ $custom := $customTemplate | resources.ExecuteAsTemplate "css/custom.scss" . | toCSS | minify }} 16 | 17 | {{ end }} 18 | 19 | {{ template "_internal/google_analytics.html" . }} 20 | 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 YOUR_NAME_HERE 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /exampleSite/content/about.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "About" 3 | description = "Hugo, the world’s fastest framework for building websites" 4 | date = "2019-02-28" 5 | aliases = ["about-us","about-hugo","contact"] 6 | author = "Hugo Authors" 7 | +++ 8 | 9 | Written in Go, Hugo is an open source static site generator available under the [Apache Licence 2.0.](https://github.com/gohugoio/hugo/blob/master/LICENSE) Hugo supports TOML, YAML and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows. 10 | 11 | Hugo makes use of a variety of open source projects including: 12 | 13 | * https://github.com/yuin/goldmark 14 | * https://github.com/alecthomas/chroma 15 | * https://github.com/muesli/smartcrop 16 | * https://github.com/spf13/cobra 17 | * https://github.com/spf13/viper 18 | 19 | Hugo is ideal for blogs, corporate websites, creative portfolios, online magazines, single page applications or even a website with thousands of pages. 20 | 21 | Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases. 22 | 23 | Websites built with Hugo are extremelly fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider. 24 | 25 | Learn more and contribute on [GitHub](https://github.com/gohugoio). 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /layouts/partials/category-posts.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | {{ $recent := 7 }} 5 | {{ if isset .Site.Params "recent_posts" }} 6 | {{ $recent = .Site.Params.recent_posts }} 7 | {{ end }} 8 | {{ if gt $recent 0 }} 9 |
10 |
Recent
11 |
    12 | {{ range first $recent (where .Site.RegularPages "Type" "in" site.Params.mainSections) }} 13 |
  • 14 | {{ .Date.Format "Jan 2 2006" }} 15 | {{ .Title }} 16 |
  • 17 | {{ end }} 18 |
19 |
20 | {{ end }} 21 | 22 | {{ range $key, $taxonomy := .Site.Taxonomies.categories.Alphabetical }} 23 |
24 |
25 | 26 | {{ .Name | humanize }} 27 | 28 |
29 |
    30 | {{ range $taxonomy.Pages }} 31 |
  • 32 | {{ .Date.Format "Jan 2 2006" }} 33 | {{ .Title }} 34 |
  • 35 | {{ end }} 36 |
37 |
38 | {{ end }} 39 |
40 |
41 |
42 | -------------------------------------------------------------------------------- /exampleSite/config.toml: -------------------------------------------------------------------------------- 1 | baseURL = "https://example.com" 2 | title = "Your Website Title" 3 | languageCode = "en-us" 4 | theme = "devise" 5 | relativeURLs = true 6 | enableEmoji = true 7 | googleAnalytics = "" 8 | enableRobotsTXT = true 9 | copyright = "© Copyright Year, Your Name" 10 | 11 | # Main menu items 12 | [menu] 13 | [[menu.main]] 14 | identifier = "about" 15 | name = "About" 16 | title = "About" 17 | url = "/about/" 18 | weight = -110 19 | [[menu.main]] 20 | identifier = "posts" 21 | name = "Posts" 22 | title = "Posts" 23 | url = "/post/" 24 | weight = -100 25 | [[menu.main]] 26 | identifier = "categories" 27 | name = "Categories" 28 | title = "Categories" 29 | url = "/categories/" 30 | weight = -90 31 | 32 | # Configuration Features 33 | [params] 34 | description = "Your meta description" # Your meta description of the site 35 | header_title = "Your Name" # Your header title 36 | header_subtitle = "Your Creative Subtitle" # Your header subtitle 37 | home_image = "/images/avatar.png" # Path to header image starting from the static directory 38 | recent_posts = 5 # Max amount of recent posts to show 39 | mainSections = ["posts", "post", "blog"] # Main sections to include in recent posts 40 | [params.style] # CSS style overrides 41 | backgroundColor = "#f8f9fa" 42 | fontColor = "#212529" 43 | [[params.social]] 44 | fa_icon = "fab fa-github fa-1x" # Font Awesome icon class 45 | href = "http://github.com/youruser" # Link to associate with icon (http://, https://, mailto:) 46 | [[params.social]] 47 | fa_icon = "fab fa-linkedin-in fa-1x" 48 | href = "" 49 | [[params.social]] 50 | fa_icon = "fab fa-twitter fa-1x" 51 | href = "" 52 | [[params.social]] 53 | fa_icon = "fas fa-at fa-1x" 54 | href = "" 55 | -------------------------------------------------------------------------------- /exampleSite/content/post/emoji-support.md: -------------------------------------------------------------------------------- 1 | +++ 2 | author = "Hugo Authors" 3 | title = "Emoji Support" 4 | date = "2019-03-05" 5 | description = "Guide to emoji usage in Hugo" 6 | tags = [ 7 | "emoji", 8 | ] 9 | +++ 10 | 11 | Emoji can be enabled in a Hugo project in a number of ways. 12 | 13 | The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes). 14 | 15 | To enable emoji globally, set `enableEmoji` to `true` in your site’s [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g. 16 | 17 | 18 |

🙈 :see_no_evil: 🙉 :hear_no_evil: 🙊 :speak_no_evil:

19 |
20 | 21 | The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) is a useful reference for emoji shorthand codes. 22 | 23 | *** 24 | 25 | **N.B.** The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g. 26 | 27 | {{< highlight html >}} 28 | .emoji { 29 | font-family: Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols; 30 | } 31 | {{< /highlight >}} 32 | 33 | {{< css.inline >}} 34 | 47 | {{< /css.inline >}} -------------------------------------------------------------------------------- /exampleSite/content/post/math-typesetting.mmark: -------------------------------------------------------------------------------- 1 | --- 2 | author: Hugo Authors 3 | title: Math Typesetting 4 | date: 2019-03-08 5 | description: A brief guide to setup KaTeX 6 | markup: mmark 7 | math: true 8 | --- 9 | 10 | Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries. 11 | 12 | 13 | In this example we will be using [KaTeX](https://katex.org/) 14 | 15 | - Create a partial under `/layouts/partials/math.html` 16 | - Within this partial reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally. 17 | - Include the partial in your templates like so: 18 | 19 | ``` 20 | {{ if or .Params.math .Site.Params.math }} 21 | {{ partial "math.html" . }} 22 | {{ end }} 23 | ``` 24 | - To enable KaTex globally set the parameter `math` to `true` in a project's configuration 25 | - To enable KaTex on a per page basis include the parameter `math: true` in content files. 26 | 27 | **Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html) 28 | {{< math.inline >}} 29 | {{ if or .Page.Params.math .Site.Params.math }} 30 | 31 | 32 | 33 | 34 | {{ end }} 35 | {{}} 36 | 37 | ### Examples 38 | 39 | Inline math: $$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887… $$ 40 | 41 | Block math: 42 | 43 | $$ 44 | \varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } } 45 | $$ 46 | 47 | -------------------------------------------------------------------------------- /layouts/partials/header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{ if isset .Site.Params "home_image" }} 4 |
5 | 6 | 17 | 18 |
19 |
20 | {{ else }} 21 |
22 | {{ end }} 23 |

24 | 25 | {{ if isset .Site.Params "header_title" }} 26 | {{ .Site.Params.header_title }} 27 | {{ else }} 28 | Your Name 29 | {{ end }} 30 | 31 |

32 |

33 | {{ if isset .Site.Params "header_subtitle" }} 34 | {{ .Site.Params.header_subtitle }} 35 | {{ else }} 36 | Your Creative Subtitle 37 | {{ end }} 38 |

39 | 47 | 56 |
57 |
58 |
59 |
60 | -------------------------------------------------------------------------------- /exampleSite/content/post/placeholder-text.md: -------------------------------------------------------------------------------- 1 | +++ 2 | author = "Hugo Authors" 3 | title = "Placeholder Text" 4 | date = "2019-03-09" 5 | description = "Lorem Ipsum Dolor Si Amet" 6 | tags = [ 7 | "markdown", 8 | "text", 9 | ] 10 | +++ 11 | 12 | Lorem est tota propiore conpellat pectoribus de 13 | pectora summo. Redit teque digerit hominumque toris verebor lumina non cervice 14 | subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc 15 | caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis 16 | lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum. 17 | 18 | 1. Exierant elisi ambit vivere dedere 19 | 2. Duce pollice 20 | 3. Eris modo 21 | 4. Spargitque ferrea quos palude 22 | 23 | Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus 24 | silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria 25 | tractus malis. 26 | 27 | 1. Comas hunc haec pietate fetum procerum dixit 28 | 2. Post torum vates letum Tiresia 29 | 3. Flumen querellas 30 | 4. Arcanaque montibus omnes 31 | 5. Quidem et 32 | 33 | # Vagus elidunt 34 | 35 | 36 | 37 | [The Van de Graaf Canon](https://en.wikipedia.org/wiki/Canons_of_page_construction#Van_de_Graaf_canon) 38 | 39 | ## Mane refeci capiebant unda mulcebat 40 | 41 | Victa caducifer, malo vulnere contra 42 | dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere 43 | furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. **Faces illo pepulere** tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis. 44 | 45 | Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli 46 | Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare 47 | Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert 48 | ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae 49 | vulnus haerentia iuste et exercebat, sui et. 50 | 51 | Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, *oculos nomen* non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem 52 | Propoetides **parte**. 53 | 54 | {{< css.inline >}} 55 | 58 | {{< /css.inline >}} 59 | -------------------------------------------------------------------------------- /assets/sass/override.scss: -------------------------------------------------------------------------------- 1 | // === Import Bootstrap and set variable overrides === 2 | $body-bg: {{ if .Param "style.backgroundColor" }}{{ .Param "style.backgroundColor"}}{{ else }}#f8f9fa{{ end }}; 3 | $body-color: {{ if .Param "style.fontColor" }}{{ .Param "style.fontColor"}}{{ else }}#212529{{ end }}; 4 | $home-image-border-color: {{ if .Param "style.homeImageBorderColor" }}{{ .Param "style.homeImageBorderColor"}}{{ else }}#ffffff{{ end }}; 5 | $font-family-base: {{ if .Param "style.fontFamilyBase"}}{{ .Param "style.fontFamilyBase"}},{{end}}"Helvetica Neue", Arial, sans-serif; 6 | $font-size-base: 0.95rem; 7 | @import "../../node_modules/bootstrap/scss/bootstrap"; 8 | 9 | // === Import Font Awesome === 10 | $fa-font-path: "../webfonts"; 11 | @import "../../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss"; 12 | @import "../../node_modules/@fortawesome/fontawesome-free/scss/solid.scss"; 13 | @import "../../node_modules/@fortawesome/fontawesome-free/scss/brands.scss"; 14 | .fa-1x { 15 | font-size: 0.9em !important; 16 | } 17 | 18 | // === Custom Styles === 19 | #content { 20 | width: 100%; 21 | max-width: 650px; 22 | min-height: calc(100vh - 105px); 23 | } 24 | 25 | #home-image { 26 | width: 120px; 27 | height: 120px; 28 | border: solid 5px $home-image-border-color; 29 | box-shadow: 0px 10px 7px -10px rgba(0,0,0,0.6); 30 | border-radius: 0.20rem; 31 | padding: 0px; 32 | object-fit: cover; 33 | object-position: top; 34 | } 35 | 36 | #nav-links { 37 | position: relative; 38 | left: -5px; 39 | } 40 | 41 | #nav-social { 42 | position: relative; 43 | left: 1px; 44 | } 45 | 46 | .category { 47 | color: $body-bg; 48 | background-color: $body-color; 49 | } 50 | 51 | .highlight > pre { 52 | padding: 0.5rem 0.8rem; 53 | border: 1px solid; 54 | border-color: #ddd #ddd #ccc; 55 | border-radius: 3px; 56 | } 57 | 58 | hr { 59 | border: 0; 60 | height: 1px; 61 | background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(51, 51, 51, 0.3), rgba(51, 51, 51, 0.4), 62 | rgba(51, 51, 51, 0.3), rgba(0, 0, 0, 0)); 63 | } 64 | 65 | h1, h2 { 66 | letter-spacing: -0.085rem; 67 | font-weight: 700; 68 | } 69 | 70 | h3, h4 { 71 | letter-spacing: -0.065rem; 72 | font-weight: 700; 73 | } 74 | 75 | p { 76 | margin-bottom: 0.7rem; 77 | } 78 | 79 | header { 80 | h2 { 81 | a, a:hover { 82 | color: $body-color; 83 | } 84 | } 85 | } 86 | 87 | img { 88 | max-width: 100%; 89 | height: auto; 90 | vertical-align: middle; 91 | border-radius: .2rem; 92 | } 93 | 94 | h4 { 95 | margin-top: 2.2rem; 96 | margin-bottom: 0.7rem; 97 | } 98 | 99 | a { 100 | text-decoration: underline; 101 | } 102 | 103 | blockquote { 104 | background: $body-bg; 105 | border-left: 8px solid #ccc; 106 | margin: 1.5em 10px; 107 | padding: 0.5em 10px; 108 | quotes: "\201C""\201D""\2018""\2019"; 109 | } 110 | 111 | blockquote:before { 112 | color: #ccc; 113 | content: open-quote; 114 | font-size: 4em; 115 | line-height: 0.1em; 116 | margin-right: 0.25em; 117 | vertical-align: -0.4em; 118 | } 119 | 120 | blockquote p { 121 | display: inline; 122 | } 123 | 124 | // === Media breakpoints === 125 | // 576px 126 | @include media-breakpoint-up(sm) {} 127 | 128 | // 768px 129 | @include media-breakpoint-up(md) {} 130 | 131 | // 992px 132 | @include media-breakpoint-up(lg) {} 133 | 134 | // 1200px 135 | @include media-breakpoint-up(xl) {} 136 | -------------------------------------------------------------------------------- /exampleSite/content/post/markdown-syntax.md: -------------------------------------------------------------------------------- 1 | +++ 2 | author = "Hugo Authors" 3 | title = "Markdown Syntax Guide" 4 | date = "2019-03-11" 5 | description = "Sample article showcasing basic Markdown syntax and formatting for HTML elements." 6 | tags = [ 7 | "markdown", 8 | "css", 9 | "html", 10 | "themes", 11 | ] 12 | categories = [ 13 | "themes", 14 | "syntax", 15 | ] 16 | series = ["Themes Guide"] 17 | aliases = ["migrate-from-jekyl"] 18 | +++ 19 | 20 | This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme. 21 | 22 | 23 | ## Headings 24 | 25 | The following HTML `

`—`

` elements represent six levels of section headings. `

` is the highest section level while `

` is the lowest. 26 | 27 | # H1 28 | ## H2 29 | ### H3 30 | #### H4 31 | ##### H5 32 | ###### H6 33 | 34 | ## Paragraph 35 | 36 | Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat. 37 | 38 | Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat. 39 | 40 | ## Blockquotes 41 | 42 | The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations. 43 | 44 | #### Blockquote without attribution 45 | 46 | > Tiam, ad mint andaepu dandae nostion secatur sequo quae. 47 | > **Note** that you can use *Markdown syntax* within a blockquote. 48 | 49 | #### Blockquote with attribution 50 | 51 | > Don't communicate by sharing memory, share memory by communicating.

52 | > — Rob Pike[^1] 53 | 54 | 55 | [^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. 56 | 57 | ## Tables 58 | 59 | Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box. 60 | 61 | Name | Age 62 | --------|------ 63 | Bob | 27 64 | Alice | 23 65 | 66 | #### Inline Markdown within tables 67 | 68 | | Inline    | Markdown    | In    | Table | 69 | | ---------- | --------- | ----------------- | ---------- | 70 | | *italics* | **bold** | ~~strikethrough~~    | `code` | 71 | 72 | ## Code Blocks 73 | 74 | #### Code block with backticks 75 | 76 | ``` 77 | html 78 | 79 | 80 | 81 | 82 | Example HTML5 Document 83 | 84 | 85 |

Test

86 | 87 | 88 | ``` 89 | #### Code block indented with four spaces 90 | 91 | 92 | 93 | 94 | 95 | Example HTML5 Document 96 | 97 | 98 |

Test

99 | 100 | 101 | 102 | #### Code block with Hugo's internal highlight shortcode 103 | {{< highlight html >}} 104 | 105 | 106 | 107 | 108 | Example HTML5 Document 109 | 110 | 111 |

Test

112 | 113 | 114 | {{< /highlight >}} 115 | 116 | ## List Types 117 | 118 | #### Ordered List 119 | 120 | 1. First item 121 | 2. Second item 122 | 3. Third item 123 | 124 | #### Unordered List 125 | 126 | * List item 127 | * Another item 128 | * And another item 129 | 130 | #### Nested list 131 | 132 | * Item 133 | 1. First Sub-item 134 | 2. Second Sub-item 135 | 136 | ## Other Elements — abbr, sub, sup, kbd, mark 137 | 138 | GIF is a bitmap image format. 139 | 140 | H2O 141 | 142 | Xn + Yn = Zn 143 | 144 | Press CTRL+ALT+Delete to end the session. 145 | 146 | Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures. 147 | 148 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Devise 2 | 3 | A fast, minimal, responsive [Hugo](https://gohugo.io/) theme for blogs. 4 | 5 | ![screenshot.png](https://raw.githubusercontent.com/austingebauer/devise/master/images/screenshot.png) 6 | 7 | For a live demo of the theme, see at: 8 | - [themes.gohugo.io/devise](https://themes.gohugo.io/devise) 9 | - [austingebauer.dev](https://austingebauer.dev) 10 | 11 | ## Features 12 | 13 | - All of Hugo's builtin [Content Management](https://gohugo.io/content-management/) 14 | - Easy installation of [Google Analytics](https://analytics.google.com/analytics/web/provision/#/provision) via Hugo [configuration](https://gohugo.io/getting-started/configuration/) file 15 | - Fast loading with a 95-100 score on [Google PageSpeed](https://developers.google.com/speed/pagespeed/insights/) 16 | - Ability to use [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/introduction/) CSS classes via HTML/CSS in Markdown 17 | - Ability to use [Font Awesome](https://fontawesome.com/) icons 18 | - Ability to customize the theme styles via [Sass](https://sass-lang.com/) 19 | - Ability to customize the following items via Hugo [configuration](https://gohugo.io/getting-started/configuration/) file 20 | - Meta description 21 | - Title 22 | - Subtitle 23 | - Image 24 | - Image border color 25 | - Navigation menu 26 | - Social icons 27 | - Last 'n' recent posts 28 | - Background color 29 | - Font family 30 | - Font color 31 | 32 | ## Usage 33 | 34 | This following guides installation, configuration, and updating of the Devise Hugo theme. 35 | 36 | ### Installation 37 | 38 | Before installing this theme, be sure to [install Hugo](https://gohugo.io/getting-started/quick-start/) 39 | and [create a new site](https://gohugo.io/getting-started/quick-start/#step-2-create-a-new-site). 40 | 41 | To install the theme, run the following from the root directory of your Hugo site: 42 | 43 | ```bash 44 | $ git submodule add https://github.com/austingebauer/devise.git themes/devise 45 | ``` 46 | 47 | ### Configuration 48 | 49 | Next, open the `config.toml` file in the root of your Hugo site and set the theme: 50 | 51 | ```toml 52 | theme = "devise" 53 | ``` 54 | 55 | Example `config.toml` file with all configuration features filled out: 56 | 57 | ```toml 58 | baseURL = "https://example.com" 59 | title = "Your Website Title" 60 | languageCode = "en-us" 61 | theme = "devise" 62 | relativeURLs = true 63 | enableEmoji = true 64 | googleAnalytics = "" 65 | enableRobotsTXT = true 66 | copyright = "© Copyright Year, Your Name" 67 | 68 | # Main menu items 69 | [menu] 70 | [[menu.main]] 71 | identifier = "about" 72 | name = "About" 73 | title = "About" 74 | url = "/about/" 75 | weight = -110 76 | [[menu.main]] 77 | identifier = "posts" 78 | name = "Posts" 79 | title = "Posts" 80 | url = "/post/" 81 | weight = -100 82 | [[menu.main]] 83 | identifier = "categories" 84 | name = "Categories" 85 | title = "Categories" 86 | url = "/categories/" 87 | weight = -90 88 | 89 | # Configuration Features 90 | [params] 91 | description = "Your meta description" # Your meta description of the site 92 | header_title = "Your Name" # Your header title 93 | header_subtitle = "Your Creative Subtitle" # Your header subtitle 94 | home_image = "/images/avatar.png" # Path to header image starting from the static directory (optional) 95 | recent_posts = 5 # Max amount of recent posts to show 96 | mainSections = ["posts", "post", "blog"] # Main sections to include in recent posts 97 | [params.style] # CSS style overrides 98 | backgroundColor = "#f8f9fa" 99 | homeImageBorderColor = "#ffffff" 100 | fontFamilyBase = "Helvetica Neue" # First-choice font 101 | fontColor = "#212529" 102 | [[params.social]] 103 | fa_icon = "fab fa-github fa-1x" # Font Awesome icon class 104 | href = "http://github.com/youruser" # Link to associate with icon (http://, https://, mailto:) 105 | [[params.social]] 106 | fa_icon = "fab fa-linkedin-in fa-1x" 107 | href = "" 108 | [[params.social]] 109 | fa_icon = "fab fa-twitter fa-1x" 110 | href = "" 111 | [[params.social]] 112 | fa_icon = "fas fa-at fa-1x" 113 | href = "" 114 | ``` 115 | 116 | ### Updating 117 | 118 | To get updates to the theme, run the following from the root directory of your Hugo site: 119 | 120 | ``` 121 | $ git submodule update --remote themes/devise 122 | ``` 123 | 124 | ### Adding Custom Styles 125 | 126 | Adding custom styles to the devise theme is simple. There are two options 127 | available for doing so. 128 | 129 | #### Option 1: 130 | 131 | In the `config.toml` file of your website, you can set the following custom style 132 | parameters: 133 | 134 | ```toml 135 | [params.style] 136 | backgroundColor = "#f8f9fa" 137 | homeImageBorderColor = "#ffffff" 138 | fontFamilyBase = "Helvetica Neue" 139 | fontColor = "#212529" 140 | ``` 141 | 142 | If you'd like to see other custom styles available as config parameters, please open an [issue](https://github.com/austingebauer/devise/issues). 143 | 144 | #### Option 2: 145 | 146 | To add custom [Sass](https://sass-lang.com/) styles to the devise theme, you'll 147 | need to add the following file to the [assets](https://gohugo.io/hugo-pipes/introduction/#asset-directory) 148 | directory of your site: 149 | 150 | - `assets/sass/custom.scss` 151 | 152 | In the file, you can use [Sass](https://sass-lang.com/) syntax to declare 153 | your custom styles. After doing so, you should see custom styling added to 154 | your devise based Hugo site. 155 | 156 | ## Demo 157 | 158 | To run a live demo of the theme on your laptop, run the following from the `exampleSite` directory of the 159 | devise theme: 160 | 161 | ```bash 162 | hugo server --themesDir ../.. --watch --verbose --cleanDestinationDir --disableFastRender 163 | ``` 164 | 165 | For a live demo of the theme, see at: 166 | - [themes.gohugo.io/devise](https://themes.gohugo.io/devise) 167 | - [austingebauer.dev](https://austingebauer.dev) 168 | 169 | ## Contributing 170 | 171 | If you have an idea for a new feature or found a bug, please feel free to use Github 172 | [issues](https://github.com/austingebauer/devise/issues) to let me know. 173 | 174 | ## License 175 | 176 | [MIT](LICENSE) 177 | --------------------------------------------------------------------------------