├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── archetypes
└── default.md
├── assets
├── css
│ ├── paginator.css
│ ├── postcss.config.js
│ ├── site.css
│ ├── styles.css
│ └── tailwind.config.js
└── js
│ ├── fuse.min.js
│ └── search.js
├── exampleSite
├── .gitignore
├── content
│ ├── _index.md
│ ├── about.md
│ ├── de
│ │ ├── blog
│ │ │ ├── _index.md
│ │ │ ├── emoji-support.md
│ │ │ ├── markdown-syntax.md
│ │ │ ├── placeholder-text.md
│ │ │ └── rich-content.md
│ │ └── page
│ │ │ └── about.md
│ └── en
│ │ ├── blog
│ │ ├── _index.md
│ │ ├── emoji-support.md
│ │ ├── markdown-syntax.md
│ │ ├── math-typesetting.md
│ │ ├── placeholder-text.md
│ │ └── rich-content.md
│ │ └── page
│ │ └── about.md
├── hugo.toml
├── layouts
│ └── .gitkeep
└── static
│ ├── blist-logo-de.png
│ ├── blist-logo.png
│ ├── blog-post.jpg
│ ├── favicon.svg
│ ├── featured-placeholder.jpg
│ └── picture.jpg
├── i18n
├── de.yaml
├── en.yaml
├── es.yaml
└── fr.yaml
├── images
├── blist-logo.png
├── pagespeed-performance.png
├── screenshot.png
└── tn.png
├── layouts
├── 404.html
├── _default
│ ├── _markup
│ │ ├── render-link.html
│ │ └── render-passthrough.html
│ ├── baseof.html
│ ├── index.json
│ ├── list.html
│ └── single.html
├── index.html
└── partials
│ ├── blog-card.html
│ ├── comments.html
│ ├── footer.html
│ ├── head.html
│ ├── header.html
│ ├── intro.html
│ ├── paginate.html
│ ├── search-ui.html
│ ├── social.html
│ ├── toc.html
│ └── translation_link.html
├── package-lock.json
├── package.json
├── static
└── fonts
│ ├── inter-v3-latin-300.eot
│ ├── inter-v3-latin-300.svg
│ ├── inter-v3-latin-300.ttf
│ ├── inter-v3-latin-300.woff
│ ├── inter-v3-latin-300.woff2
│ ├── inter-v3-latin-500.eot
│ ├── inter-v3-latin-500.svg
│ ├── inter-v3-latin-500.ttf
│ ├── inter-v3-latin-500.woff
│ ├── inter-v3-latin-500.woff2
│ ├── inter-v3-latin-700.eot
│ ├── inter-v3-latin-700.svg
│ ├── inter-v3-latin-700.ttf
│ ├── inter-v3-latin-700.woff
│ └── inter-v3-latin-700.woff2
└── theme.toml
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea
2 | /node_modules
3 | /exampleSite/public
4 | /exampleSite/hugo_stats.json
5 | /exampleSite/.hugo_build.lock
6 | .DS_Store
7 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All the changes made to Blist theme for Hugo.
4 |
5 | ## v2.1.0 - 2023-01-09
6 |
7 | ### Added
8 |
9 | - Support multiple comment systems #64
10 |
11 | ## v2.0.1 - 2022-12-27
12 |
13 | ### Fixed
14 |
15 | - Page metadata layout in mobile #94
16 |
17 | ## v2.0.0 - 2022-12-25
18 |
19 | ### Added
20 |
21 | - BREAKING: Ability to specify social icons order #91
22 | - Table of contents support #84
23 | - Search customization #79
24 | - Option to skip showing thumbnail in post page #93
25 | - Added more social icons
26 | - Mastodon #92
27 | - XDA #83
28 | - Telegram #83
29 | - Buy me a coffee #83
30 | - Google Scholar #85
31 | - Facebook #90
32 | - Behance #66
33 | - Tiktok #77
34 | - Stackoverflow #71
35 |
36 | ### Fixed
37 |
38 | - Inline code block #78
39 |
40 | ## v1.5.0 - 2022-08-11
41 |
42 | ### Added
43 |
44 | - Ability to hide metadata via param hideMeta #37
45 | - Hide other languages option via param hideOtherLanguages
46 | - Add French support #53 #54 #55
47 |
48 | ### Fixed
49 |
50 | - Fix broken Multilingual search
51 |
52 | ## v1.4.0 - 2022-01-08
53 |
54 | ### Added
55 |
56 | - Hamburger menu for mobile UI #23
57 | - Image logo support #24
58 |
59 | ## v1.3.1 - 2021-11-28
60 |
61 | ### Added
62 |
63 | - Adding xing support to social icons - #15
64 | - Fix: Adding missing whitespace between label and language in single page - #16
65 | - Fix: Readable Lastmod - #17
66 |
67 | ## v1.3.0 - 2021-10-27
68 |
69 | ### Added
70 |
71 | - Add YouTube & Instagram social icons - #9
72 | - Add i18n support - #11
73 | - Add 404 page - #13
74 |
75 | ## v1.2.0 - 2021-07-18
76 |
77 | ### Added
78 |
79 | - Add color customization for Intro and Social links blocks
80 |
81 | ## v1.1.0 - 2021-07-17
82 |
83 | ### Added
84 |
85 | - Add support for text search
86 |
87 | ## v1.0.0 - 2021-07-16
88 |
89 | - Initial Release
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2021 Varun A P
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Blist theme for Hugo
2 |
3 | 
4 | 
5 | 
6 |
7 | Blist is a clean and fast blog theme for your Hugo site.
8 |
9 | 
10 |
11 | **Features:**
12 |
13 | - Responsive content / Mobile-optimized
14 | - Blog pagination
15 | - Customizable Text Search
16 | - Table of contents
17 | - Social links
18 | - Code highlighting
19 | - Color customization
20 | - Dark mode
21 | - Fast performance
22 | - SEO optimized
23 | - i18n support
24 | - Support comments systems
25 | - Disqus (hugo native)
26 | - giscus
27 | - utterances
28 |
29 | ## Preview
30 |
31 | 
32 |
33 | ➡️ [DEMO](https://blist.vercel.app/)
34 |
35 | ## Get the theme
36 |
37 | Minimum Hugo Version: **0.110.0**
38 |
39 | Run from the root of your Hugo site:
40 |
41 | ```sh
42 | git clone https://github.com/apvarun/blist-hugo-theme.git themes/blist
43 | ```
44 |
45 | Alternatively, you can include this repository as a [git submodule](https://git-scm.com/docs/gitsubmodules). This makes it easier to update this theme if you have your Hugo site in git as well:
46 |
47 | ```sh
48 | git submodule add https://github.com/apvarun/blist-hugo-theme.git themes/blist
49 | ```
50 |
51 | ## Preview the theme with example content
52 |
53 | Blist theme ships with an fully configured example site. For a quick preview:
54 |
55 | Copy the `package.json` file from `themes/blist` folder to your hugo website root folder, and run `npm install`.
56 |
57 | ```sh
58 | cd themes/blist/exampleSite/
59 | hugo serve --themesDir ../..
60 | ```
61 |
62 | Then visit `http://localhost:1313/` in your browser to view the example site.
63 |
64 | ## Configuring theme to a hugo website
65 |
66 | 1. Copy `package.json` and `package-lock.json` to the root folder of your website
67 | 2. Run `npm install` to install required packages for theme
68 | 3. Run `npm i -g postcss-cli` to use PostCSS with Hugo build
69 | 4. Set `theme = 'blist'` in hugo.toml
70 | 5. Run `npm start` to start your local server
71 |
72 | Make sure to commit the above changes to your repository.
73 |
74 | ## Publish your website
75 |
76 | When deploying to services like Netlify or Vercel, use the following command for building your site:
77 |
78 | ```sh
79 | npm i && HUGO_ENVIRONMENT=production hugo --gc
80 | ```
81 | The parameter `HUGO_ENVIRONMENT=production` enables the execution of css purging.
82 |
83 | ## Add content
84 |
85 | The following explains how to add content to your Hugo site. You can find sample content in the `exampleSite/` folder.
86 |
87 | ### Structure:
88 |
89 | .
90 | ├── ...
91 | ├── blog # Blog Section
92 | │ ├── post1 # Post 1
93 | │ ├── post2 # Post 2
94 | │ └── _index
95 | └── ...
96 |
97 | ## Configure your site
98 |
99 | From `exampleSite/`, copy `hugo.toml` to the root folder of your Hugo site and change the fields as you like. Helpful comments are provided.
100 |
101 | ### Menu
102 |
103 | Menu in Blist theme is pre-set to have all section names. You can include custom links in header using the `menu.main` option hugo.toml.
104 |
105 | ### Logo
106 |
107 | `logo` param in the site config will allow to use an image as the logo instead of the website name. It is localizable and so can have different logo for different languages
108 |
109 | ### Darkmode
110 |
111 | `[params.darkModeToggle]` enables the dark mode toggle in header. The preference is then saved so that the mode is automatically chosen for return visits.
112 |
113 | ### Customize Ascent Color
114 |
115 | Use `[params.ascentColor]` to change the default `pink` color to any supported color from the [list of default colors](https://tailwindcss.com/docs/customizing-colors) from Tailwind CSS.
116 |
117 | Some example values: bg-blue-200, bg-yellow-300
118 |
119 | ### Search
120 |
121 | `[params.enableSearch]` option is used to enable search option in the theme.
122 |
123 | - Adds the search icon in header
124 | - Generates the search index
125 | - Uses fuse.js to enable searching through content
126 |
127 | In order to search, you can either click on the search icon from header or press `Ctrl/Cmd + /` key combination.
128 |
129 | **Note:**
130 |
131 | Make sure to enable JSON in outputs array.
132 |
133 | ```
134 | [outputs]
135 | home = ["HTML", "RSS", "JSON"]
136 | ```
137 |
138 | ### LaTeX
139 |
140 | Enable mathematical options: set `math: true` in your markdown frontmatter
141 |
142 | ### Google Analytics
143 |
144 | Set `services.googleAnalytics.ID` in `hugo.toml` to activate Hugo's [embedded Google Analytics template](https://gohugo.io/templates/embedded/#google-analytics).
145 |
146 | ## Performance
147 |
148 | [](https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fblist.vercel.app&tab=mobile)
149 |
150 | ## Issues
151 |
152 | If you have a question, please [open an issue](https://github.com/apvarun/blist-hugo-theme/issues) for help and to help those who come after you. The more information you can provide, the better!
153 |
154 | ## Contributing
155 |
156 | Contributions, issues, and feature requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
157 |
158 |
7 | var first = list.firstChild; // first child of search list
8 | var last = list.lastChild; // last child of search list
9 | var maininput = document.querySelector('.search-ui input'); // input box for search
10 | var searchResultsHeading = document.querySelector('.search-results'); // input box for search
11 | var noResults = document.querySelector('.no-results'); // input box for search
12 | var resultsAvailable = false; // Did we get any search results?
13 |
14 | // ==========================================
15 | // The main keyboard event listener running the show
16 | //
17 | document.querySelector('.open-search').addEventListener('click', openSearch);
18 | document.querySelector('.close-search').addEventListener('click', closeSearch);
19 |
20 | function closeSearch() {
21 | document.querySelector('.search-ui').classList.add("hidden");
22 | document.activeElement.blur(); // remove focus from search box
23 | searchVisible = false; // search not visible
24 | searchResultsHeading.classList.add('hidden');
25 | }
26 |
27 | function openSearch() {
28 | // Load json search index if first time invoking search
29 | // Means we don't load json unless searches are going to happen; keep user payload small unless needed
30 | if (firstRun) {
31 | loadSearch(); // loads our json data and builds fuse.js search index
32 | firstRun = false; // let's never do this again
33 | }
34 |
35 | //Close the mobile menu when search is click.
36 | mobileMenu.classList.toggle('hidden');
37 |
38 | // Toggle visibility of search box
39 | if (!searchVisible) {
40 | document.querySelector('.search-ui').classList.remove("hidden");
41 | document.querySelector('.search-ui input').focus(); // put focus in input box so you can just start typing
42 | searchVisible = true; // search visible
43 | }
44 | }
45 |
46 | document.addEventListener('keydown', function (event) {
47 |
48 | if (event.metaKey && event.which === 191) {
49 | openSearch()
50 | }
51 |
52 | // Allow ESC (27) to close search box
53 | if (event.keyCode == 27) {
54 | if (searchVisible) {
55 | document.querySelector('.search-ui').classList.add("hidden");
56 | document.activeElement.blur();
57 | searchVisible = false;
58 | searchResultsHeading.classList.add('hidden');
59 | }
60 | }
61 |
62 | // DOWN (40) arrow
63 | if (event.keyCode == 40) {
64 | if (searchVisible && resultsAvailable) {
65 | console.log("down");
66 | event.preventDefault(); // stop window from scrolling
67 | if (document.activeElement == maininput) { first.focus(); } // if the currently focused element is the main input --> focus the first
68 | else if (document.activeElement == last) { last.focus(); } // if we're at the bottom, stay there
69 | else { document.activeElement.parentElement.nextSibling.firstElementChild.focus(); } // otherwise select the next search result
70 | }
71 | }
72 |
73 | // UP (38) arrow
74 | if (event.keyCode == 38) {
75 | if (searchVisible && resultsAvailable) {
76 | event.preventDefault(); // stop window from scrolling
77 | if (document.activeElement == maininput) { maininput.focus(); } // If we're in the input box, do nothing
78 | else if (document.activeElement == first) { maininput.focus(); } // If we're at the first item, go to input box
79 | else { document.activeElement.parentElement.previousSibling.firstElementChild.focus(); } // Otherwise, select the search result above the current active one
80 | }
81 | }
82 | })
83 |
84 |
85 | // ==========================================
86 | // execute search as each character is typed
87 | //
88 | document.querySelector('.search-ui input').onkeyup = function (e) {
89 | executeSearch(this.value);
90 | }
91 |
92 |
93 | // ==========================================
94 | // fetch some json without jquery
95 | //
96 | function fetchJSONFile(path, callback) {
97 | var httpRequest = new XMLHttpRequest();
98 | httpRequest.onreadystatechange = function () {
99 | if (httpRequest.readyState === 4) {
100 | if (httpRequest.status === 200) {
101 | var data = JSON.parse(httpRequest.responseText);
102 | if (callback) callback(data);
103 | }
104 | }
105 | };
106 | httpRequest.open('GET', path);
107 | httpRequest.send();
108 | }
109 |
110 |
111 | // ==========================================
112 | // load our search index, only executed once
113 | // on first call of search box (CMD-/)
114 | //
115 | function loadSearch() {
116 | const lang = document.querySelector('head > meta[name="lang"]')?.getAttribute?.('content')
117 | fetchJSONFile(`${lang ? "/" + lang : ""}/index.json`, function (data) {
118 |
119 | var options = { // fuse.js options; check fuse.js website for details
120 | shouldSort: true,
121 | location: 0,
122 | distance: 100,
123 | threshold: 0.4,
124 | minMatchCharLength: 2,
125 | keys: [
126 | 'title',
127 | 'permalink',
128 | 'contents'
129 | ]
130 | };
131 | fuse = new Fuse(data, options); // build the index from the json file
132 | });
133 | }
134 |
135 |
136 | // ==========================================
137 | // using the index we loaded on CMD-/, run
138 | // a search query (for "term") every time a letter is typed
139 | // in the search box
140 | //
141 | function executeSearch(term) {
142 | let results = fuse.search(term); // the actual query being run using fuse.js
143 | let searchitems = ''; // our results bucket
144 |
145 | if (results.length === 0) { // no results based on what was typed into the input box
146 | resultsAvailable = false;
147 | searchitems = '';
148 | if (term !== "") {
149 | noResults.classList.remove('hidden')
150 | } else {
151 | noResults.classList.add('hidden')
152 | }
153 | } else { // build our html
154 | noResults.classList.add('hidden')
155 | if (term !== "") {
156 | searchResultsHeading.classList.remove('hidden');
157 | }
158 |
159 | for (let item in results.slice(0, 5)) { // only show first 5 results
160 | const title = '
' + results[item].item.title + '
';
161 | const date = results[item].item.date ? '
' + new Date(results[item].item.date).toUTCString().substring(0, 16) + '
';
165 | }
166 | resultsAvailable = true;
167 | }
168 |
169 | list.innerHTML = searchitems;
170 | if (results.length > 0) {
171 | first = list.firstChild.firstElementChild; // first result container — used for checking against keyboard up/down location
172 | last = list.lastChild.firstElementChild; // last result container — used for checking against keyboard up/down location
173 | }
174 | }
175 |
--------------------------------------------------------------------------------
/exampleSite/.gitignore:
--------------------------------------------------------------------------------
1 | resources/
--------------------------------------------------------------------------------
/exampleSite/content/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: Katheryn Fox
3 | title: Home of Katheryn Fox
4 | date: 2021-07-15
5 | ---
6 |
7 |
--------------------------------------------------------------------------------
/exampleSite/content/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: Katheryn Fox
3 | title: About Me
4 | date: 2021-07-15
5 | description:
6 | keywords: ["about-us", "about-hugo", "contact"]
7 | type: about
8 | ---
9 |
10 | 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.
11 |
12 | Hugo makes use of a variety of open source projects including:
13 |
14 | - https://github.com/yuin/goldmark
15 | - https://github.com/alecthomas/chroma
16 | - https://github.com/muesli/smartcrop
17 | - https://github.com/spf13/cobra
18 | - https://github.com/spf13/viper
19 |
20 | Hugo is ideal for blogs, corporate websites, creative portfolios, online magazines, single page applications or even a website with thousands of pages.
21 |
22 | Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.
23 |
24 | Websites built with Hugo are extremely fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
25 |
26 | Learn more and contribute on [GitHub](https://github.com/gohugoio).
27 |
--------------------------------------------------------------------------------
/exampleSite/content/de/blog/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: Katheryn Fox
3 | title: Blog
4 | ---
5 |
--------------------------------------------------------------------------------
/exampleSite/content/de/blog/emoji-support.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: "Hugo Authors"
3 | title: "Emoji-Unterstützung"
4 | date: 2021-07-15
5 | lastmod: 2021-10-14
6 | description: "Anleitung zur Verwendung von Emojis in Hugo"
7 | tags: ["emoji"]
8 | thumbnail: https://picsum.photos/id/1050/400/250
9 | ---
10 |
11 | Emojis können in einem Hugo-Projekt auf verschiedene Weise aktiviert werden.
12 |
13 |
14 |
15 | 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).
16 |
17 | 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.
18 |
19 |
🙈:see_no_evil:🙉:hear_no_evil:🙊:speak_no_evil:
20 |
21 |
22 | The [Emoji cheat sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) is a useful reference for emoji shorthand codes.
23 |
24 | ---
25 |
26 | **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.
27 |
28 | {{< highlight html >}}
29 | .emoji {
30 | font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
31 | }
32 | {{< /highlight >}}
33 |
34 | {{< css.inline >}}
35 |
36 |
49 |
50 | {{< /css.inline >}}
51 |
--------------------------------------------------------------------------------
/exampleSite/content/de/blog/markdown-syntax.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: "Hugo Authors"
3 | title: "Markdown Syntax Guide"
4 | description: "Beispielartikel, der die grundlegende Markdown-Syntax und Formatierung für HTML-Elemente zeigt."
5 | tags: ["markdown", "css", "html"]
6 | date: 2021-07-14
7 | thumbnail: https://picsum.photos/id/1019/500/200
8 | ---
9 |
10 | Dieser Artikel bietet ein Beispiel für die grundlegende Markdown-Syntax, die in Hugo-Inhaltsdateien verwendet werden kann, und zeigt auch, ob grundlegende HTML-Elemente mit CSS in einem Hugo-Theme dekoriert sind.
11 |
12 |
13 |
14 | ## Headings
15 |
16 | The following HTML `
`—`
` elements represent six levels of section headings. `
` is the highest section level while `
` is the lowest.
17 |
18 | # H1
19 |
20 | ## H2
21 |
22 | ### H3
23 |
24 | #### H4
25 |
26 | ##### H5
27 |
28 | ###### H6
29 |
30 | ## Paragraph
31 |
32 | 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.
33 |
34 | Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.
35 |
36 | ## Blockquotes
37 |
38 | 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.
39 |
40 | #### Blockquote without attribution
41 |
42 | > Tiam, ad mint andaepu dandae nostion secatur sequo quae.
43 | > **Note** that you can use _Markdown syntax_ within a blockquote.
44 |
45 | #### Blockquote with attribution
46 |
47 | > Don't communicate by sharing memory, share memory by communicating.
48 | > — Rob Pike[^1]
49 |
50 | [^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
51 |
52 | ## Tables
53 |
54 | Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.
55 |
56 | | Name | Age |
57 | | ----- | --- |
58 | | Bob | 27 |
59 | | Alice | 23 |
60 |
61 | #### Inline Markdown within tables
62 |
63 | | Italics | Bold | Code |
64 | | --------- | -------- | ------ |
65 | | _italics_ | **bold** | `code` |
66 |
67 | ## Code Blocks
68 |
69 | #### Code block with backticks
70 |
71 | ```html
72 |
73 |
74 |
75 |
76 | Example HTML5 Document
77 |
78 |
79 |
109 |
110 |
111 | {{< /highlight >}}
112 |
113 | ## List Types
114 |
115 | #### Ordered List
116 |
117 | 1. First item
118 | 2. Second item
119 | 3. Third item
120 |
121 | #### Unordered List
122 |
123 | - List item
124 | - Another item
125 | - And another item
126 |
127 | #### Nested list
128 |
129 | - Fruit
130 | - Apple
131 | - Orange
132 | - Banana
133 | - Dairy
134 | - Milk
135 | - Cheese
136 |
137 | ## Other Elements — abbr, sub, sup, kbd, mark
138 |
139 | GIF is a bitmap image format.
140 |
141 | H2O
142 |
143 | Xn + Yn = Zn
144 |
145 | Press CTRL+ALT+Delete to end the session.
146 |
147 | Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures.
148 |
--------------------------------------------------------------------------------
/exampleSite/content/de/blog/placeholder-text.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: "Hugo Authors"
3 | title: "Platzhaltertext"
4 | date: 2021-07-13
5 | description: "Lorem Ipsum Dolor Si Amet DE"
6 | tags: ["markdown", "text"]
7 | thumbnail: /blog-post.jpg
8 | ---
9 |
10 | Lorem est tota propiore conpellat pectoribus de pectora summo. Redit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.
11 |
12 | 
13 |
14 | 1. Exierant elisi ambit vivere dedere
15 | 2. Duce pollice
16 | 3. Eris modo
17 | 4. Spargitque ferrea quos palude
18 |
19 | Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.
20 |
21 | 1. Comas hunc haec pietate fetum procerum dixit
22 | 2. Post torum vates letum Tiresia
23 | 3. Flumen querellas
24 | 4. Arcanaque montibus omnes
25 | 5. Quidem et
26 |
27 | # Vagus elidunt
28 |
29 |
30 |
31 | [The Van de Graaf Canon](https://en.wikipedia.org/wiki/Canons_of_page_construction#Van_de_Graaf_canon)
32 |
33 | ## Mane refeci capiebant unda mulcebat
34 |
35 | Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere 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.
36 |
37 | Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.
38 |
39 | 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 Propoetides **parte**.
40 |
41 | {{< css.inline >}}
42 |
43 |
46 |
47 | {{< /css.inline >}}
48 |
--------------------------------------------------------------------------------
/exampleSite/content/de/blog/rich-content.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: "Hugo Authors"
3 | title: "Reichhaltiger Inhalt"
4 | date: 2021-07-13
5 | description: "Eine kurze Beschreibung von Hugo Shortcodes"
6 | tags: ["shortcodes", "privacy"]
7 | thumbnail: https://picsum.photos/id/1002/400/250
8 | ---
9 |
10 | Hugo wird mit mehreren [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes) für reichhaltige Inhalte geliefert, zusammen mit einer [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) und einer Reihe einfacher Shortcodes, die statische und keine JS-Versionen verschiedener Social-Media-Einbettungen ermöglichen.
11 |
12 | ##
13 |
14 | ## YouTube Privacy Enhanced Shortcode
15 |
16 | {{< youtube ZJthWmvUzzc >}}
17 |
18 |
19 |
20 | ---
21 |
22 | ## X Shortcode
23 |
24 | {{< x user="DesignReviewed" id="1085870671291310081" >}}
25 |
26 |
27 |
28 | ---
29 |
30 | ## Vimeo Simple Shortcode
31 |
32 | {{< vimeo_simple 48912912 >}}
33 |
--------------------------------------------------------------------------------
/exampleSite/content/de/page/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: Katheryn Fox
3 | title: Über mich
4 | date: 2021-07-15
5 | description:
6 | keywords: ["about-us", "about-hugo", "contact"]
7 | type: about
8 | ---
9 |
10 | Hugo wurde in Go geschrieben und ist ein Open-Source-Generator für statische Sites, der unter der [Apache License 2.0](https://github.com/gohugoio/hugo/blob/master/LICENSE) verfügbar ist. Hugo unterstützt TOML-, YAML- und JSON-Datendateitypen , Markdown- und HTML-Inhaltsdateien und verwendet Shortcodes, um Rich Content hinzuzufügen. Andere bemerkenswerte Funktionen sind Taxonomien, mehrsprachiger Modus, Bildverarbeitung, benutzerdefinierte Ausgabeformate, HTML/CSS/JS-Minifizierung und Unterstützung für Sass SCSS-Workflows.
11 |
12 | Hugo nutzt eine Vielzahl von Open-Source-Projekten, darunter:
13 |
14 | - https://github.com/yuin/goldmark
15 | - https://github.com/alecthomas/chroma
16 | - https://github.com/muesli/smartcrop
17 | - https://github.com/spf13/cobra
18 | - https://github.com/spf13/viper
19 |
20 | Hugo is ideal for blogs, corporate websites, creative portfolios, online magazines, single page applications or even a website with thousands of pages.
21 |
22 | Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.
23 |
24 | Websites built with Hugo are extremely fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
25 |
26 | Learn more and contribute on [GitHub](https://github.com/gohugoio).
27 |
--------------------------------------------------------------------------------
/exampleSite/content/en/blog/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: Katheryn Fox
3 | title: Blog
4 | ---
5 |
--------------------------------------------------------------------------------
/exampleSite/content/en/blog/emoji-support.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: "Hugo Authors"
3 | title: "Emoji Support"
4 | date: 2021-07-15
5 | description: "Guide to emoji usage in Hugo"
6 | tags: ["emoji"]
7 | thumbnail: https://picsum.photos/id/1050/400/250
8 | ---
9 |
10 | Emoji can be enabled in a Hugo project in a number of ways.
11 |
12 |
13 |
14 | 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).
15 |
16 | 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.
17 |
18 |
🙈:see_no_evil:🙉:hear_no_evil:🙊:speak_no_evil:
19 |
20 |
21 | The [Emoji cheat sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) 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 |
35 |
48 |
49 | {{< /css.inline >}}
50 |
--------------------------------------------------------------------------------
/exampleSite/content/en/blog/markdown-syntax.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: "Hugo Authors"
3 | title: "Markdown Syntax Guide"
4 | description: "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
5 | tags: ["markdown", "css", "html"]
6 | date: 2021-07-14
7 | thumbnail: https://picsum.photos/id/1019/500/200
8 | ---
9 |
10 | 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.
11 |
12 |
13 |
14 | ## Headings
15 |
16 | The following HTML `
`—`
` elements represent six levels of section headings. `
` is the highest section level while `
` is the lowest.
17 |
18 | # H1
19 |
20 | ## H2
21 |
22 | ### H3
23 |
24 | #### H4
25 |
26 | ##### H5
27 |
28 | ###### H6
29 |
30 | ## Paragraph
31 |
32 | 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.
33 |
34 | Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.
35 |
36 | ## Blockquotes
37 |
38 | 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.
39 |
40 | #### Blockquote without attribution
41 |
42 | > Tiam, ad mint andaepu dandae nostion secatur sequo quae.
43 | > **Note** that you can use _Markdown syntax_ within a blockquote.
44 |
45 | #### Blockquote with attribution
46 |
47 | > Don't communicate by sharing memory, share memory by communicating.
48 | > — Rob Pike[^1]
49 |
50 | [^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
51 |
52 | ## Tables
53 |
54 | Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.
55 |
56 | | Name | Age |
57 | | ----- | --- |
58 | | Bob | 27 |
59 | | Alice | 23 |
60 |
61 | #### Inline Markdown within tables
62 |
63 | | Italics | Bold | Code |
64 | | --------- | -------- | ------ |
65 | | _italics_ | **bold** | `code` |
66 |
67 | ## Code Blocks
68 |
69 | #### Code block with backticks
70 |
71 | ```html
72 |
73 |
74 |
75 |
76 | Example HTML5 Document
77 |
78 |
79 |