├── .dockerignore ├── .gitignore ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── archetypes ├── default.md ├── page.md └── section.md ├── assets ├── css │ ├── animations.css │ ├── base.css │ ├── custom.css │ ├── media-queries.css │ ├── reset.css │ └── style.css └── js │ ├── form.js │ └── header.js ├── exampleSite ├── config.toml └── content │ ├── de │ ├── _index.md │ ├── about.md │ ├── contact │ │ └── _index.md │ ├── posts │ │ ├── 16-things-free-songs.md │ │ ├── _index.md │ │ ├── bad-architects.md │ │ ├── game-websites │ │ │ ├── images │ │ │ │ └── dummy-image.jpg │ │ │ └── index.md │ │ └── preventative-medicines.md │ └── sections │ │ ├── simple-choices.md │ │ ├── simple-people.md │ │ ├── simple-values.md │ │ └── simple.md │ └── en │ ├── _index.md │ ├── about.md │ ├── contact │ └── _index.md │ ├── posts │ ├── 16-things-free-songs.md │ ├── _index.md │ ├── bad-architects.md │ ├── game-websites │ │ ├── images │ │ │ └── dummy-image.jpg │ │ └── index.md │ └── preventative-medicines.md │ └── sections │ ├── simple-choices.md │ ├── simple-people.md │ ├── simple-values.md │ └── simple.md ├── images ├── blog-screenshot.png ├── screenshot.png └── tn.png ├── layouts ├── 404.html ├── _default │ ├── baseof.html │ ├── card.html │ ├── list.html │ ├── single.html │ └── tags.html ├── contact │ └── list.html ├── index.html └── partials │ ├── cta-btn.html │ ├── fontawesome.html │ ├── footer.html │ ├── hamburger-menu.html │ ├── head.html │ ├── header.html │ ├── hero.html │ ├── language-switcher.html │ ├── menu.html │ ├── scripts.html │ ├── section.html │ ├── sections.html │ ├── separator.html │ └── styles.html ├── makefile ├── static ├── favicon.ico ├── images │ └── undraw_freelancer_b0my.svg └── logo.svg └── theme.toml /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .gitignore 3 | LICENSE 4 | README.md 5 | theme.toml 6 | 7 | /archetypes/ 8 | /assets/ 9 | /images/ 10 | /layouts/ 11 | /static/ 12 | 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/ 2 | 3 | ### Go ### 4 | # Binaries for programs and plugins 5 | *.exe 6 | *.exe~ 7 | *.dll 8 | *.so 9 | *.dylib 10 | 11 | # Test binary, build with `go test -c` 12 | *.test 13 | 14 | # Output of the go coverage tool, specifically when used with LiteIDE 15 | *.out 16 | 17 | ### Go Patch ### 18 | /vendor/ 19 | /Godeps/ 20 | 21 | ### Hugo ### 22 | # Hugo binary 23 | hugo* 24 | 25 | # Generated files at default location 26 | */public/ 27 | */resources/_gen 28 | 29 | ### Vim ### 30 | # Swap 31 | [._]*.s[a-v][a-z] 32 | [._]*.sw[a-p] 33 | [._]s[a-rt-v][a-z] 34 | [._]ss[a-gi-z] 35 | [._]sw[a-p] 36 | 37 | # Session 38 | Session.vim 39 | 40 | # Temporary 41 | .netrwhist 42 | *~ 43 | 44 | # Auto-generated tag files 45 | tags 46 | 47 | # Persistent undo 48 | [._]*.un~ 49 | 50 | ### Visual Studio Code ### 51 | .vscode/* 52 | !.vscode/settings.json 53 | !.vscode/launch.json 54 | !.vscode/extensions.json 55 | 56 | ### Visual Studio Code Patch ### 57 | # Ignore all local history of files 58 | .history -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | All contributions are welcome. 2 | 3 | **Features**: if you are adding a feature, fork the repository, create a new branch for your feature and submit a PR. Make sure to put documentation for your new feature. If making additions that will affect the config file, make sure you update the *config.toml* on the *exampleSite*. 4 | 5 | **Issues** or **Bugs**: submit a new issue with information about your issue or bug. If you have a solution, then submit a new PR as described above. 6 | 7 | Thank you very much for helping to improve Terrassa. -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | ARG EXPOSE=80 3 | EXPOSE ${EXPOSE}/tcp 4 | EXPOSE ${EXPOSE}/udp 5 | ARG HUGO_SITE=exampleSite 6 | COPY /${HUGO_SITE}/public/ /usr/share/nginx/html/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018 Daniel Zaragoza "Danielkvist" (d94.zaragoza@gmail.com) 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 | # Terrassa - Hugo Theme 2 | 3 | Terrassa is a simple, fast and responsive theme for Hugo with a strong focus on accessibility made from scratch. 4 | 5 | ![Hugo Terrassa theme screenshot](https://github.com/danielkvist/hugo-terrassa-theme/blob/master/images/screenshot.png) 6 | 7 | ## Archived 8 | 9 | I have decided to archive the project as I have been and am unable to give it the necessary support. 10 | 11 | I started Terrassa as a way to experiment with Hugo and the Go template system and the truth is that I didn't expect the support that the project has been getting over time. Unfortunately over time I have had to move on to working with other technologies and on other projects and have never had enough time to re-familiarise myself with the code and continue working on the project. 12 | 13 | Many thanks to all the people who have used Terrassa, who have sent PRs and above all to the people who encouraged me and talked about how they were using Terrassa to bring their projects to life. 14 | 15 | ## Features 16 | 17 | - Coherent responsive design. 18 | - Consistent design throughout the entire site. 19 | - Classic navigation menu in large screen sizes. 20 | - Hamburger menu in mobile devices. 21 | - Focus on accessibility. 22 | - Customizable call to action on the home page. 23 | - Contact form. 24 | - Ready for blogging. 25 | - Multilingual Support 26 | 27 | ## Installation 28 | 29 | To install Terrassa run the followings command inside your Hugo site: 30 | 31 | ```bash 32 | $ mkdir themes 33 | $ cd themes 34 | $ git clone https://github.com/danielkvist/hugo-terrassa-theme.git terrassa 35 | ``` 36 | 37 | Or 38 | 39 | ```bash 40 | $ mkdir themes 41 | $ cd themes 42 | $ git submodule add https://github.com/danielkvist/hugo-terrassa-theme.git terrassa 43 | ``` 44 | 45 | > You can also download the last release [here](https://github.com/danielkvist/hugo-terrassa-theme/releases). 46 | 47 | Back to your Hugo site directory open the _config.toml_ file and add or change the following line: 48 | 49 | ```toml 50 | theme = "terrassa" 51 | ``` 52 | 53 | ## Configuration 54 | 55 | > You can find an example of the final configuration [here](https://github.com/danielkvist/hugo-terrassa-theme/blob/master/exampleSite/config.toml). 56 | 57 | ### Basic 58 | 59 | ```toml 60 | baseurl = "/" # The base URL of your Hugo site 61 | title = "titlehere" # The title of your Hugo site 62 | author = "authorhere" # The author name 63 | googleAnalytics = "" # Your Google Analytics tracking ID 64 | enableRobotsTXT = true 65 | language = "en-US" 66 | paginate = 7 # The numbers of posts per page 67 | theme = "terrassa" # Your Hugo theme 68 | ``` 69 | 70 | There's a lot more information about the basic configuration of an Hugo site [here](https://gohugo.io/getting-started/configuration/). 71 | 72 | ### Description, favicon and logo params 73 | 74 | ```toml 75 | [params] 76 | description = "" # Description for the meta description tag 77 | favicon = "" # Relative URL for your favicon 78 | logo = "" # Absolute URL for your logo 79 | ``` 80 | 81 | ### Hero 82 | 83 | ```toml 84 | [params.hero] 85 | textColor = "" # Empty for default color 86 | ``` 87 | 88 | ### Call To Action 89 | 90 | ```toml 91 | [params.cta] # Call To Action 92 | show = true 93 | cta = "Contact" # Text message of the CTA 94 | link = "contact" # Relative URL 95 | ``` 96 | 97 | ### Separators between Home sections 98 | 99 | ```toml 100 | [params.separator] 101 | show = false 102 | ``` 103 | 104 | ### Contact information 105 | 106 | ```toml 107 | [params.contact] 108 | email = "" 109 | phone = "" 110 | skype = "" 111 | address = "" 112 | ``` 113 | 114 | ### Social Networks 115 | 116 | ```toml 117 | [params.social] 118 | twitter = "" 119 | facebook = "" 120 | github = "" 121 | gitlab = "" 122 | codepen = "" 123 | instagram = "" 124 | pinterest = "" 125 | youtube = "" 126 | linkedin = "" 127 | weibo = "" 128 | mastodon = "" 129 | tumblr = "" 130 | flickr = "" 131 | "500px" = "" 132 | ``` 133 | 134 | > Icons for social networks depend on Font Awesome. 135 | 136 | ### Font Awesome 137 | 138 | ```toml 139 | [params.fa] 140 | version = "" # Font Awesome version 141 | integrity = "" # Font Awesome integrity for the Font Awesome script 142 | ``` 143 | 144 | ### Copyright message 145 | 146 | ```toml 147 | [params.copy] 148 | message = "" 149 | ``` 150 | 151 | ### Agreements 152 | 153 | ```toml 154 | [params.agreement] 155 | message = "" # You can use HTML tags 156 | ``` 157 | 158 | ### Posts 159 | 160 | ```toml 161 | [params.posts] 162 | showAuthor = true 163 | showDate = true 164 | showTags = true 165 | dateFormat = "Monday, Jan, 2006" 166 | ``` 167 | 168 | ### Form 169 | 170 | ```toml 171 | [params.form] 172 | netlify = true # Only if you are using Netlify 173 | action = "" 174 | method = "" 175 | inputNameName = "" 176 | inputNameLabel = "" 177 | inputNamePlaceholder = "" 178 | inputEmailName = "" 179 | inputEmailLabel = "" 180 | inputEmailPlaceholder = "" 181 | inputMsgName = "" 182 | inputMsgLabel = "" 183 | inputMsgLength = 750 184 | inputSubmitValue = "" 185 | ``` 186 | 187 | ### Privacy 188 | 189 | ```toml 190 | [privacy] 191 | [privacy.googleAnalytics] 192 | anonymizeIP = true 193 | disable = false 194 | respectDoNotTrack = true 195 | useSessionStorage = false 196 | [privacy.instagram] 197 | disable = false 198 | simple = false 199 | [privacy.twitter] 200 | disable = false 201 | enableDNT = true 202 | simple = false 203 | [privacy.vimeo] 204 | disable = false 205 | simple = false 206 | [privacy.youtube] 207 | disable = false 208 | privacyEnhanced = true 209 | ``` 210 | 211 | To learn more about privacy configuration check the [official documentation](https://gohugo.io/about/hugo-and-gdpr/). 212 | 213 | ### Custom CSS 214 | 215 | To add custom CSS you have to create a folder called `assets` in the root of your project. Then, create another folder called `css` inside `assets`. And finally, a file called `custom.css` inside `css` with your styles. 216 | 217 | ```bash 218 | $ mkdir -p ./assets/css/ 219 | ``` 220 | 221 | ## Archetypes 222 | 223 | Terrassa includes three base archetypes: 224 | 225 | - _default_: for content such as blogs posts. 226 | - _section_: for the sections on your Home page. 227 | - _page_: for pages like the About page. 228 | 229 | So be careful. Creating a new site with Hugo also creates a default archetype that replaces the one provided by Terrassa. 230 | 231 | ### Home and Single pages 232 | 233 | To create your home page run the following command inside your Hugo site: 234 | 235 | ```bash 236 | $ hugo new _index.md -k page 237 | ``` 238 | 239 | Or to create another page: 240 | 241 | ```bash 242 | $ hugo new example.md -k page 243 | ``` 244 | 245 | You'll get something like this: 246 | 247 | ```markdown 248 | --- 249 | title: "" 250 | description: "" 251 | images: [] 252 | draft: true 253 | menu: main 254 | weight: 0 255 | --- 256 | ``` 257 | 258 | Some properties are used as follows: 259 | 260 | - _title_: is the name that will be displayed in the menu. In the rest of the single pages the main title of the content. 261 | - _description_: in the case of the home page the description is not shown. In the rest of the single pages it is shown as a subtitle. 262 | - _images_: in the case of the home page the first image is used as the background image for the hero and to share on social networks (with [Twitter Cards](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards.html) and [Facebook Graph](https://developers.facebook.com/docs/graph-api/)). In every other page or post is used only for share on social networks. 263 | - _weight_: sets the order of the items in the menu. 264 | 265 | ## Home page Sections 266 | 267 | To create a new section in your Home page follow the next steps: 268 | 269 | ```bash 270 | $ hugo new sections/example.md -k section 271 | ``` 272 | 273 | You'll come across something like this: 274 | 275 | ```markdown 276 | --- 277 | title: "Example" 278 | description: "" 279 | draft: true 280 | weight: 0 281 | --- 282 | ``` 283 | 284 | The _title_ is used as the title of your new section and the content is the body. At this moment the _description_ is not used for anything. 285 | 286 | The _weight_ defines the order in case of having more than one section. 287 | 288 | ### Blog or List pages 289 | 290 | To create a Blog or a page with a similar structure follow these steps: 291 | 292 | ```bash 293 | $ hugo new posts/_index.md -k page 294 | ``` 295 | 296 | > In this case it is only necessary to set, if wanted, the _title_ and the _weight_ in the _\_index.md_. 297 | 298 | To add a new posts run the following command: 299 | 300 | ```bash 301 | $ hugo new posts/bad-example.md 302 | ``` 303 | 304 | Inside this file you'll find something like this: 305 | 306 | ```markdown 307 | --- 308 | title: "Bad example" 309 | description: "" 310 | date: 2018-12-27T21:09:45+01:00 311 | publishDate: 2018-12-27T21:09:45+01:00 312 | author: "John Doe" 313 | images: [] 314 | draft: true 315 | tags: [] 316 | --- 317 | ``` 318 | 319 | The _title_ and _description_ are used as the main title and subtitle respectively. 320 | 321 | > You can find more information about each parameter in the [official documentation](https://gohugo.io/content-management/front-matter/). 322 | 323 | Then, the corresponding section will show a list of cards with the _title_, the _date_, a _summary of the content_ (truncated to 480 words) and a list of _tags_ if any. 324 | 325 | ![Hugo Terrassa theme Blog section screenshot](https://github.com/danielkvist/hugo-terrassa-theme/blob/master/images/blog-screenshot.png) 326 | 327 | ### Contact 328 | 329 | For the contact page follow these instructions: 330 | 331 | ```bash 332 | $ hugo new contact/_index.md -k page 333 | ``` 334 | 335 | The _title_ and _description_ will be used as the main title and subtitle respectively with a contact form. The rest of the options are defined in the [config.toml](https://github.com/danielkvist/hugo-terrassa-theme/blob/master/exampleSite/config.toml). 336 | 337 | ## Multilingual Support 338 | 339 | If your site is multilingual, add each language to your config.toml parameters with the following structure: 340 | 341 | ```bash 342 | [languages] 343 | [languages.en] 344 | languageName = "en" 345 | weight = 1 346 | contentDir = "content/en" 347 | [languages.de] 348 | languageName = "de" 349 | weight = 2 350 | contentDir = "content/de" 351 | [languages.fr] 352 | languageName = "fr" 353 | weight = 3 354 | contentDir = "content/fr" 355 | ``` 356 | 357 | The theme assumes you have one default language, defined in config.toml as defaultContentLanguage. These pages will be at root of the URL, while the other languages will be in their own subdirectory. 358 | 359 | You can overwrite all Site parameters in config.url by adding them to the respective language, for example: 360 | 361 | ```bash 362 | [languages.de] 363 | languageName = "de" 364 | weight = 2 365 | contentDir = "content/de" 366 | title = "Das ist der deutsche Titel" 367 | description = "Das ist die deutsche Beschreibung" 368 | ``` 369 | 370 | For translating the contact form, add these parameters: 371 | 372 | ```bash 373 | [languages.de.params] 374 | [languages.de.params.form] # Translate contact form fields 375 | inputNameLabel = "Name" 376 | inputNamePlaceholder = "Dein Name" 377 | inputEmailLabel = "E-mail" 378 | inputEmailPlaceholder = "Deine E-Mail-Adresse" 379 | inputMsgLabel = "Schreib etwas" 380 | inputSubmitValue = "Abschicken" 381 | [languages.de.params.cta] # Translate Call To Action 382 | show = true 383 | cta = "Kontakt" 384 | link = "de/kontakt/" # Relative URL 385 | ``` 386 | 387 | Activate the language switcher in the header by setting: 388 | 389 | ```bash 390 | [params.languageSwitcher] 391 | show = true 392 | ``` 393 | 394 | Read more about Hugo's Multilingual mode here: https://gohugo.io/content-management/multilingual/ 395 | -------------------------------------------------------------------------------- /archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | description: "" 4 | date: {{ .Date }} 5 | publishDate: {{ .Date }} 6 | author: "John Doe" 7 | images: [] 8 | draft: true 9 | tags: [] 10 | --- -------------------------------------------------------------------------------- /archetypes/page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | description: "" 4 | images: [] 5 | draft: true 6 | menu: main 7 | weight: 0 8 | --- -------------------------------------------------------------------------------- /archetypes/section.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "{{ replace .Name "-" " " | title }}" 3 | description: "" 4 | draft: true 5 | weight: 0 6 | --- -------------------------------------------------------------------------------- /assets/css/animations.css: -------------------------------------------------------------------------------- 1 | @keyframes focus { 2 | 0% { 3 | filter: blur(14px); 4 | opacity: 0; 5 | } 6 | 100% { 7 | filter: blur(0); 8 | opacity: 1; 9 | } 10 | } -------------------------------------------------------------------------------- /assets/css/base.css: -------------------------------------------------------------------------------- 1 | :root { 2 | /* Font Sizes */ 3 | --title: 3.998rem; 4 | --subtitle: 2.827rem; 5 | --header: 1.999rem; 6 | --subheader: 1.414rem; 7 | 8 | /* Colors */ 9 | --primary: #ffc107; 10 | --primary-dark: #ffa000; 11 | --primary-light: #ffecb3; 12 | --primary-text: #212121; 13 | --secondary-text: #333333; 14 | --accent: #536dfe; 15 | --divider: #bdbdbd; 16 | --white: #fdfdfd; 17 | 18 | /* Breakpoints */ 19 | --sm: 576px; 20 | --md: 768px; 21 | --lg: 992px; 22 | --xl: 1200px; 23 | } 24 | 25 | a { 26 | color: var(--accent); 27 | } 28 | 29 | a:hover { 30 | color: var(--primary-dark); 31 | } 32 | 33 | body { 34 | color: var(--primary-text); 35 | } 36 | 37 | figcaption { 38 | font-size: 0.9rem; 39 | text-align: center; 40 | } 41 | 42 | hr { 43 | color: var(--divider); 44 | opacity: 0.30; 45 | width: 25%; 46 | } 47 | 48 | i { 49 | font-size: var(--subheader); 50 | } 51 | 52 | input, 53 | textarea { 54 | border: 2px solid var(--divider); 55 | } 56 | 57 | input:focus, 58 | textarea:focus { 59 | border: 2px solid var(--accent); 60 | } 61 | 62 | pre { 63 | border: 1px solid var(--divider); 64 | overflow: auto; 65 | margin-bottom: 1.75rem; 66 | padding: 1rem 1.75rem; 67 | text-align: left; 68 | width: 100%; 69 | } 70 | 71 | textarea { 72 | resize: none; 73 | } 74 | -------------------------------------------------------------------------------- /assets/css/custom.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnlzrgz/hugo-terrassa-theme/87a1454029a012440b8f937702027e60010faac6/assets/css/custom.css -------------------------------------------------------------------------------- /assets/css/media-queries.css: -------------------------------------------------------------------------------- 1 | @media only screen and (max-width: 1024px) { 2 | .hero { 3 | background-position: 20% 0; 4 | background-size: cover; 5 | } 6 | 7 | .section { 8 | margin: 2.75rem 19%; 9 | } 10 | 11 | .post__body { 12 | margin: 0 19%; 13 | } 14 | 15 | .pagination { 16 | width: 40%; 17 | } 18 | 19 | .footer__contact { 20 | align-items: start; 21 | flex-direction: column; 22 | padding: 1.75rem 4.5rem; 23 | } 24 | 25 | .footer__contact__item { 26 | padding-bottom: 1.75rem; 27 | } 28 | 29 | .footer__contact__item:last-of-type { 30 | padding-bottom: 0; 31 | } 32 | 33 | .copy { 34 | align-items: flex-end; 35 | padding-right: 4.5rem; 36 | } 37 | } 38 | 39 | @media only screen and (max-width: 992px) { 40 | .hero__caption > h1 { 41 | font-size: var(--subtitle); 42 | } 43 | 44 | .hero__caption > h2 { 45 | font-size: 1.25rem; 46 | } 47 | 48 | .pagination { 49 | width: 50%; 50 | } 51 | 52 | .footer__social { 53 | padding: 1rem 0; 54 | } 55 | } 56 | 57 | @media only screen and (max-width: 768px) { 58 | .header__title { 59 | font-size: 1rem; 60 | } 61 | 62 | .menu { 63 | display: none; 64 | visibility: hidden; 65 | } 66 | 67 | .hamburger-menu { 68 | display: grid; 69 | visibility: visible; 70 | } 71 | 72 | .hamburger__items__item { 73 | margin-right: 1.75rem; 74 | } 75 | 76 | .section { 77 | margin: 2.75rem 9%; 78 | } 79 | 80 | .card { 81 | width: 85%; 82 | } 83 | 84 | .contact__form { 85 | grid-template-areas: "name" "email" "msg" "submit"; 86 | } 87 | 88 | .contact__field > input { 89 | width: 25rem; 90 | } 91 | 92 | .contact__field--name { 93 | margin-right: 0; 94 | } 95 | 96 | .contact__field--msg { 97 | margin-top: 0; 98 | } 99 | 100 | .contact__field--submit { 101 | margin: 1.75rem 0; 102 | } 103 | 104 | .post__header { 105 | padding: 0 10%; 106 | } 107 | 108 | .post__body { 109 | margin: 0 9%; 110 | } 111 | 112 | .post__body > blockquote > p { 113 | margin: 0 5%; 114 | } 115 | 116 | .post__footer { 117 | margin: 0 10% 0.75rem; 118 | } 119 | 120 | .pagination { 121 | width: 70%; 122 | } 123 | } 124 | 125 | @media only screen and (max-width: 576px) { 126 | .header__title { 127 | margin-left: 1.75rem; 128 | } 129 | 130 | .toggle { 131 | right: 1.75rem; 132 | } 133 | 134 | .hero { 135 | background-position: 30% 0; 136 | } 137 | 138 | .hero__caption { 139 | margin: 0 1.75rem 0; 140 | } 141 | 142 | .contact__field > input { 143 | width: 20rem; 144 | } 145 | 146 | .card { 147 | width: 90%; 148 | } 149 | 150 | .pagination { 151 | width: 90%; 152 | } 153 | 154 | .footer { 155 | grid-template-areas: "social" "contact" "copy"; 156 | grid-template-columns: 1fr; 157 | } 158 | 159 | .footer__social__link { 160 | height: 40px; 161 | line-height: 40px; 162 | margin: 0.75rem; 163 | width: 40px; 164 | } 165 | 166 | .footer__contact { 167 | padding: 1.75rem; 168 | } 169 | 170 | .copy { 171 | justify-content: center; 172 | margin-bottom: 1.75rem; 173 | margin-left: 5%; 174 | margin-right: 5%; 175 | padding: 0; 176 | } 177 | } 178 | 179 | @media only screen and (max-width: 340px) { 180 | .contact__field > input { 181 | width: 17rem; 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /assets/css/reset.css: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | h1, 4 | h2, 5 | h3, 6 | h4, 7 | h5, 8 | h6, 9 | a, 10 | p, 11 | span, 12 | em, 13 | small, 14 | strong, 15 | sub, 16 | sup, 17 | mark, 18 | del, 19 | ins, 20 | strike, 21 | abbr, 22 | dfn, 23 | blockquote, 24 | q, 25 | cite, 26 | code, 27 | pre, 28 | li, 29 | dl, 30 | dt, 31 | dd, 32 | div, 33 | section, 34 | article, 35 | main, 36 | aside, 37 | nav, 38 | header, 39 | hgroup, 40 | footer, 41 | img, 42 | figure, 43 | figcaption, 44 | address, 45 | time, 46 | audio, 47 | video, 48 | canvas, 49 | iframe, 50 | details, 51 | summary, 52 | fieldset, 53 | form, 54 | label, 55 | legend, 56 | table, 57 | caption, 58 | tbody, 59 | tfoot, 60 | thead { 61 | border: 0; 62 | padding: 0; 63 | margin: 0; 64 | } 65 | 66 | html { 67 | box-sizing: border-box; 68 | font-size: 1em; 69 | } 70 | 71 | *, 72 | *::before, 73 | *::after { 74 | box-sizing: inherit; 75 | } 76 | 77 | a { 78 | text-decoration: none; 79 | } 80 | 81 | body { 82 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Oxygen, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; 83 | font-kerning: auto; 84 | -moz-osx-font-smoothing: grayscale; 85 | -webkit-font-smoothing: antialised; 86 | font-weight: 400; 87 | height: 100vh; 88 | hyphens: auto; 89 | line-height: 1.62; 90 | overflow-wrap: break-word; 91 | text-rendering: optimizeLegibility; 92 | } 93 | 94 | blockquote, 95 | q { 96 | quotes: none; 97 | } 98 | 99 | blockquote:after, 100 | blockquote:before, 101 | q:after, 102 | q:before { 103 | content: ""; 104 | } 105 | 106 | h1, 107 | h2, 108 | h3, 109 | h4 { 110 | font-weight: inherit; 111 | line-height: 1.2; 112 | margin: 1.414rem 0 0.5rem; 113 | } 114 | 115 | hr { 116 | box-sizing: content-box; 117 | overflow: visible; 118 | } 119 | 120 | img, 121 | video, 122 | figure { 123 | display: block; 124 | height: auto; 125 | max-width: 100%; 126 | } 127 | 128 | img { 129 | border-style: none; 130 | } 131 | 132 | main, 133 | header, 134 | footer { 135 | display: block; 136 | } 137 | 138 | ol, 139 | ul { 140 | list-style: none; 141 | margin-left: 0; 142 | margin-right: 0; 143 | padding: 0; 144 | } 145 | 146 | p { 147 | margin-bottom: 1.1rem; 148 | } 149 | 150 | pre, 151 | code, 152 | kbd { 153 | font-family: monospace; 154 | font-size: 1em; 155 | white-space: pre-wrap; 156 | } 157 | 158 | select { 159 | text-transform: none; 160 | } 161 | 162 | table, td, tr, th { 163 | margin: auto; 164 | border-collapse: collapse; 165 | border: 1px solid var(--primary-text); 166 | padding: 10px; 167 | } 168 | 169 | [hidden] { 170 | display: none; 171 | } 172 | 173 | [disabled] { 174 | cursor: not-allowed; 175 | } 176 | 177 | :focus:not(:focus-visible) { 178 | outline: none; 179 | } 180 | -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | /* HEADER */ 2 | .header { 3 | background-color: var(--white); 4 | box-shadow: 0 1px 5px var(--divider); 5 | display: grid; 6 | grid-template-columns: repeat(2, 1fr); 7 | grid-template-rows: 1fr; 8 | position: fixed; 9 | top: 0; 10 | width: 100%; 11 | z-index: 999; 12 | } 13 | 14 | .header__title { 15 | align-items: center; 16 | display: flex; 17 | font-size: 1.1rem; 18 | justify-content: flex-start; 19 | margin: 1rem 4.5rem; 20 | } 21 | 22 | .header__title__link { 23 | color: var(--primary-dark); 24 | } 25 | 26 | .header__title__logo { 27 | max-width: 7rem; 28 | vertical-align: middle; 29 | width: 100%; 30 | } 31 | 32 | /* MENU */ 33 | .menu { 34 | align-items: center; 35 | display: flex; 36 | hyphens: none; 37 | margin-right: 4.5rem; 38 | } 39 | 40 | .menu__items { 41 | display: flex; 42 | justify-content: space-evenly; 43 | width: 100%; 44 | } 45 | 46 | .menu__items__item { 47 | margin: 0 1.5rem; 48 | } 49 | 50 | .menu__items__item__link { 51 | color: var(--primary-text); 52 | padding: 0.5rem 0; 53 | position: relative; 54 | } 55 | 56 | .menu__items__item__link:hover, 57 | .menu__items__item__link:focus { 58 | color: var(--primary-text); 59 | } 60 | 61 | .menu__items__item__link::before { 62 | bottom: 0; 63 | content: ""; 64 | display: block; 65 | height: 3px; 66 | position: absolute; 67 | transition: all 0.25s ease-in-out; 68 | width: 0%; 69 | } 70 | 71 | .menu__items__item__link::before { 72 | background-color: var(--primary); 73 | } 74 | 75 | .menu__items__item__link:hover::before, 76 | .menu__items__item__link:focus::before { 77 | opacity: 1; 78 | width: 100%; 79 | } 80 | 81 | .menu__items__item__link.active::before { 82 | opacity: 1; 83 | width: 100%; 84 | } 85 | 86 | /* HAMBURGER MENU */ 87 | .hamburger-menu { 88 | display: none; 89 | visibility: hidden; 90 | } 91 | 92 | .toggle, 93 | .hamburger__toggle { 94 | user-select: none; 95 | } 96 | 97 | .toggle { 98 | align-self: center; 99 | position: absolute; 100 | right: 4.5rem; 101 | } 102 | 103 | .hamburger__toggle { 104 | height: 32px; 105 | left: -5px; 106 | opacity: 0; 107 | position: absolute; 108 | top: -7px; 109 | width: 40px; 110 | } 111 | 112 | .hamburger__items { 113 | background-color: var(--white); 114 | box-shadow: -1px 2px 5px var(--divider); 115 | height: 100vh; 116 | position: absolute; 117 | transform: translate(100%, 0); 118 | transform-origin: 0% 0%; 119 | transition: transform 0.15s ease-in-out; 120 | visibility: hidden; 121 | width: 50vw; 122 | } 123 | 124 | .hamburger__items__item { 125 | margin: 1.75rem 0 0 2.75rem; 126 | } 127 | 128 | .hamburger__items__item__link { 129 | color: var(--primary-text); 130 | } 131 | 132 | .hamburger__items__item__link:hover { 133 | color: var(--primary-dark); 134 | } 135 | 136 | .toggle .hamburger__toggle:checked ~ .hamburger__items { 137 | transform: translate(-70%, 0); 138 | visibility: visible; 139 | } 140 | 141 | /* HERO */ 142 | .hero { 143 | align-content: center; 144 | background-attachment: fixed; 145 | background-position: 100% 20%; 146 | background-repeat: no-repeat; 147 | background-size: contain; 148 | display: flex; 149 | height: 90vh; 150 | justify-content: flex-start; 151 | width: 100%; 152 | } 153 | 154 | .hero__caption { 155 | align-items: flex-start; 156 | animation: focus 0.95s cubic-bezier(0.39, 0.575, 0.565, 1) both; 157 | display: flex; 158 | flex-direction: column; 159 | justify-content: center; 160 | margin-left: 4.5rem; 161 | } 162 | 163 | .hero__caption > h1 { 164 | font-size: var(--title); 165 | } 166 | 167 | .hero__caption > h2 { 168 | font-size: var(--subheader); 169 | margin-top: 0.45rem; 170 | } 171 | 172 | /* CTA */ 173 | .cta__btn { 174 | margin-top: 4.5rem; 175 | } 176 | 177 | /* SECTION */ 178 | .section { 179 | margin: 2.75rem 24%; 180 | text-justify: distribute; 181 | } 182 | 183 | .section__title { 184 | padding: 0 20%; 185 | margin-bottom: 1.75rem; 186 | text-align: center; 187 | } 188 | 189 | /* SEPARATOR */ 190 | .separator { 191 | align-items: center; 192 | display: flex; 193 | font-size: 0.45rem; 194 | justify-content: center; 195 | } 196 | 197 | /* CONTENT */ 198 | .content { 199 | align-items: center; 200 | display: flex; 201 | flex-direction: column; 202 | justify-items: center; 203 | min-height: 90vh; 204 | } 205 | 206 | /* CARD */ 207 | .card { 208 | margin-bottom: 1.75rem; 209 | max-width: 900px; 210 | text-justify: distribute; 211 | width: 70%; 212 | } 213 | 214 | .card__header__link { 215 | color: var(--primary-text); 216 | } 217 | 218 | .card__header__link:hover { 219 | color: var(--primary); 220 | } 221 | 222 | .card__header__author { 223 | margin-bottom: 0.75rem; 224 | text-align: left; 225 | } 226 | 227 | /* POST */ 228 | .post { 229 | min-height: 90vh; 230 | text-justify: distribute; 231 | } 232 | 233 | .post__header { 234 | display: grid; 235 | grid-template-areas: "title" "date" "subtitle" "author"; 236 | grid-template-rows: auto; 237 | justify-content: center; 238 | padding: 0 20%; 239 | } 240 | 241 | .post__title { 242 | font-size: var(--header); 243 | grid-area: title; 244 | } 245 | 246 | .post__subtitle { 247 | grid-area: subtitle; 248 | margin-top: 0.75rem; 249 | text-align: center; 250 | } 251 | 252 | .post__author { 253 | grid-area: author; 254 | text-align: center; 255 | } 256 | 257 | .post__date { 258 | grid-area: date; 259 | margin-bottom: 1.75rem; 260 | } 261 | 262 | .post__body { 263 | margin: 1.75rem 24% 0.75rem; 264 | } 265 | 266 | .post__body > figure { 267 | margin-bottom: 1.75rem; 268 | } 269 | 270 | .post__body > ol { 271 | list-style-type: decimal; 272 | } 273 | 274 | .post__body > ul { 275 | list-style-type: disc; 276 | } 277 | 278 | .post__body > blockquote > p { 279 | margin: 0.75rem 24%; 280 | text-align: center; 281 | } 282 | 283 | .post__body > blockquote > p::before, 284 | .post__body > blockquote > p::after { 285 | background-color: var(--divider); 286 | content: ""; 287 | display: block; 288 | height: 1px; 289 | width: 100%; 290 | } 291 | 292 | .post__body > blockquote > p::before { 293 | margin-bottom: 1rem; 294 | } 295 | 296 | .post__body > blockquote > p::after { 297 | margin-top: 1rem; 298 | } 299 | 300 | .post__body > blockquote > p::after { 301 | margin-bottom: 1.1rem; 302 | } 303 | 304 | .post__body > ul, 305 | .post__body > ol { 306 | margin-left: 3.75rem; 307 | } 308 | 309 | .post__footer { 310 | display: flex; 311 | justify-content: center; 312 | margin: 0 30% 0.75rem; 313 | } 314 | 315 | /* PAGINATION */ 316 | .pagination { 317 | display: flex; 318 | justify-content: space-evenly; 319 | margin-bottom: 2.75rem; 320 | margin-top: auto; 321 | width: 20%; 322 | } 323 | 324 | .page-item.disabled > .page-link { 325 | cursor: not-allowed; 326 | opacity: 0.7; 327 | } 328 | 329 | .page-item.active > .page-link { 330 | color: var(--primary-dark); 331 | } 332 | 333 | .page-link { 334 | color: var(--primary-text); 335 | } 336 | 337 | /* CONTACT */ 338 | .contact { 339 | align-items: center; 340 | display: flex; 341 | flex-direction: column; 342 | justify-content: flex-start; 343 | min-height: 90vh; 344 | } 345 | 346 | .contact__content { 347 | text-align: center; 348 | } 349 | 350 | .contact__form { 351 | display: grid; 352 | grid-template-areas: "name email" "msg msg" "submit submit"; 353 | grid-template-columns: 1fr; 354 | grid-template-rows: repeat(3, auto); 355 | margin-top: 1.75rem; 356 | } 357 | 358 | .contact__field { 359 | display: flex; 360 | flex-direction: column; 361 | margin-bottom: 0.75rem; 362 | } 363 | 364 | .contact__field > label { 365 | margin-bottom: 0.45rem; 366 | } 367 | 368 | .contact__field > input { 369 | font-size: 1rem; 370 | height: 1.9rem; 371 | padding: 1rem 0.75rem; 372 | width: 20rem; 373 | } 374 | 375 | .contact__field > textarea { 376 | font-family: sans-serif; 377 | font-size: 1rem; 378 | height: 12rem; 379 | padding: 0.75rem 0.75rem; 380 | width: 100%; 381 | } 382 | 383 | .contact__field--name { 384 | grid-area: name; 385 | margin-right: 1rem; 386 | } 387 | 388 | .contact__field--email { 389 | grid-area: email; 390 | } 391 | 392 | .contact__field--msg { 393 | grid-area: msg; 394 | margin-top: 1.75rem; 395 | } 396 | 397 | .contact__field--submit { 398 | align-content: center; 399 | display: grid; 400 | grid-area: submit; 401 | justify-content: center; 402 | margin: 1.75rem 0 2.75rem; 403 | } 404 | 405 | .submit { 406 | font-size: 1rem; 407 | } 408 | 409 | /* FOOTER */ 410 | .footer { 411 | background-color: var(--primary-dark); 412 | display: grid; 413 | grid-auto-flow: row; 414 | grid-template-areas: "social social social" "contact contact copy"; 415 | grid-template-columns: repeat(3, 1fr); 416 | grid-template-rows: repeat(2, auto); 417 | } 418 | 419 | .footer__social { 420 | align-items: center; 421 | background-color: var(--white); 422 | border-top: 1px solid var(--divider); 423 | border-bottom: 1px solid var(--divider); 424 | display: flex; 425 | flex-wrap: wrap; 426 | grid-area: social; 427 | justify-content: space-evenly; 428 | padding: 1rem 20%; 429 | } 430 | 431 | .footer__social__link { 432 | background-color: var(--primary-text); 433 | border-radius: 50%; 434 | color: var(--white); 435 | font-size: var(--subheader); 436 | height: 35px; 437 | line-height: 35px; 438 | position: relative; 439 | text-align: center; 440 | width: 35px; 441 | } 442 | 443 | .footer__social__link::after { 444 | background: transparent; 445 | border: 1.5px solid var(--primary-text); 446 | border-radius: 50%; 447 | bottom: 0; 448 | content: ""; 449 | display: block; 450 | left: 0; 451 | position: absolute; 452 | right: 0; 453 | top: 0; 454 | transition: 0.3s all; 455 | } 456 | 457 | .footer__social__link:hover, 458 | .footer__social__link:focus { 459 | background-color: transparent; 460 | color: var(--secondary-text); 461 | } 462 | 463 | .footer__social__link:hover::after, 464 | .footer__social__link:focus::after { 465 | border-color: var(--secondary-text); 466 | transform: scale(1.5); 467 | } 468 | 469 | .footer__contact { 470 | align-items: center; 471 | display: flex; 472 | grid-area: contact; 473 | justify-content: space-around; 474 | width: 100%; 475 | } 476 | 477 | .footer__contact__item { 478 | color: var(--white); 479 | margin: 0; 480 | } 481 | 482 | .footer__contact__item > span { 483 | color: var(--primary-text); 484 | margin-right: 0.25rem; 485 | } 486 | 487 | .footer__contact__link, 488 | .footer__contact__link:hover { 489 | color: var(--white); 490 | } 491 | 492 | /* 404 */ 493 | .notfound { 494 | align-items: center; 495 | display: flex; 496 | justify-content: center; 497 | min-height: 90vh; 498 | } 499 | 500 | .notfound__title { 501 | font-size: var(--title); 502 | } 503 | 504 | /* COPY */ 505 | .copy { 506 | align-items: center; 507 | display: flex; 508 | font-size: 0.95rem; 509 | grid-area: copy; 510 | justify-content: flex-end; 511 | padding: 1.75rem; 512 | } 513 | 514 | .copy > p { 515 | margin: 0; 516 | } 517 | 518 | /* AUTHOR */ 519 | .author { 520 | font-size: 0.95rem; 521 | font-weight: 400; 522 | } 523 | 524 | /* DATE */ 525 | .date { 526 | font-size: 0.95rem; 527 | font-weight: 400; 528 | margin: 0 0 0.75rem 0; 529 | } 530 | 531 | /* TAGS */ 532 | .tags { 533 | display: flex; 534 | flex-wrap: wrap; 535 | padding: 0; 536 | } 537 | 538 | .tags__tag { 539 | margin-right: 0.75rem; 540 | } 541 | 542 | /* RIPPLE */ 543 | .ripple-btn { 544 | background-color: var(--primary-dark); 545 | border: none; 546 | color: var(--white); 547 | overflow: hidden; 548 | padding: 1.15rem 4.5rem; 549 | position: relative; 550 | transform: translate3d(0, 0, 0); 551 | transition: all 0.25s; 552 | } 553 | 554 | .ripple-btn:hover, 555 | .ripple-btn:focus { 556 | background-color: var(--primary); 557 | color: var(--white); 558 | } 559 | 560 | .ripple-btn::after { 561 | background-image: radial-gradient( 562 | circle, 563 | var(--primary-light) 10%, 564 | transparent 10.01% 565 | ); 566 | background-position: 50%; 567 | background-repeat: no-repeat; 568 | content: ""; 569 | display: block; 570 | height: 100%; 571 | left: 0; 572 | opacity: 0; 573 | position: absolute; 574 | pointer-events: none; 575 | top: 0; 576 | transform: scale(10, 10); 577 | transition: transform 0.5s, opacity 1s; 578 | width: 100%; 579 | } 580 | 581 | .ripple-btn:active::after { 582 | opacity: 0.7; 583 | transform: scale(0, 0); 584 | transition: 0s; 585 | } 586 | 587 | /* LANGUAGE SWITCHER */ 588 | .LangNav { 589 | display: flex; 590 | justify-content: flex-end; 591 | align-items: center; 592 | margin: 1rem 4.5rem; 593 | } 594 | 595 | .LangNav span:not(:last-child)::after { 596 | content: "|"; 597 | margin: 0 0.2rem; 598 | } 599 | span.language.active { 600 | opacity: 0.5; 601 | } 602 | 603 | .header.has-LangNav { 604 | grid-template-columns: auto 1fr auto; 605 | } 606 | 607 | @media (max-width:768px) { 608 | .header.has-LangNav .hamburger-menu .toggle { 609 | right: 1.75rem; 610 | } 611 | } 612 | -------------------------------------------------------------------------------- /assets/js/form.js: -------------------------------------------------------------------------------- 1 | function cleanForm() { 2 | document.getElementById("contact-form").reset(); 3 | } -------------------------------------------------------------------------------- /assets/js/header.js: -------------------------------------------------------------------------------- 1 | const header = document.querySelector("header"); 2 | 3 | function paddingHeader() { 4 | document.body.style.paddingTop = `${header.offsetHeight}px`; 5 | } 6 | 7 | window.addEventListener("load", paddingHeader); -------------------------------------------------------------------------------- /exampleSite/config.toml: -------------------------------------------------------------------------------- 1 | baseurl = "/" 2 | title = "Terrassa" 3 | author = "Daniel Zaragoza (Danielkvist)" 4 | googleAnalytics = "" 5 | defaultContentLanguage = "en" 6 | paginate = 3 7 | 8 | theme = "hugo-terrassa-theme" 9 | themesDir = "../.." # Not necessary on production sites 10 | 11 | [params] 12 | description = "Terrassa is a simple, fast and responsive theme for Hugo with a strong focus on accessibility made from scratch." 13 | favicon = "favicon.ico" 14 | logo = "" 15 | 16 | [params.hero] 17 | textColor = "" # Empty for default color 18 | 19 | [params.cta] # Call To Action 20 | show = true 21 | cta = "Contact" 22 | link = "contact" # Relative URL 23 | 24 | [params.separator] # Separators between sections on the home page 25 | show = false 26 | 27 | [params.fa] # Font Awesome options 28 | version = "5.7.2" 29 | integrity = "sha384-0pzryjIRos8mFBWMzSSZApWtPl/5++eIfzYmTgBBmXYdhvxPc+XcFEk+zJwDgWbP" 30 | 31 | [params.form] # Contact form 32 | netlify = true 33 | action = "https://formspree.io/your@email.com" 34 | method = "POST" 35 | inputNameName = "name" 36 | inputNameLabel = "Name" 37 | inputNamePlaceholder = "Your name" 38 | inputEmailName = "email" 39 | inputEmailLabel = "Email" 40 | inputEmailPlaceholder = "Your email" 41 | inputMsgName = "message" 42 | inputMsgLabel = "Write something" 43 | inputMsgLength = 750 44 | inputSubmitValue = "Send" 45 | 46 | [params.posts] 47 | showAuthor = true 48 | showDate = true 49 | showTags = true 50 | dateFormat = "Monday, Jan, 2006" 51 | 52 | [params.contact] # Contact info 53 | email = "example@gmail.com" 54 | phone = "xxx xxx xxx" 55 | skype = "" 56 | address = "419 Creek St. Revere, MA 02151" 57 | 58 | [params.social] 59 | twitter = "https://twitter.com/john" 60 | facebook = "https://facebook.com/john" 61 | github = "https://github.com/john" 62 | gitlab = "" 63 | codepen = "https://codepen.io/john" 64 | instagram = "https://instagram.com/john" 65 | pinterest = "" 66 | youtube = "" 67 | linkedin = "" 68 | weibo = "" 69 | mastodon = "" 70 | tumblr = "" 71 | flickr = "" 72 | "500px" = "" 73 | 74 | [params.copy] # Copyright 75 | copy = "" # Empty for default content 76 | 77 | [privacy] 78 | [privacy.googleAnalytics] 79 | anonymizeIP = true 80 | disable = false 81 | respectDoNotTrack = true 82 | useSessionStorage = false 83 | [privacy.instagram] 84 | disable = false 85 | simple = false 86 | [privacy.twitter] 87 | disable = false 88 | enableDNT = true 89 | simple = false 90 | [privacy.vimeo] 91 | disable = false 92 | simple = false 93 | [privacy.youtube] 94 | disable = false 95 | privacyEnhanced = true 96 | 97 | [params.languageSwitcher] 98 | show = true 99 | 100 | [languages] 101 | [languages.en] 102 | languageName = "en" 103 | weight = 1 104 | contentDir = "content/en" 105 | [languages.de] 106 | languageName = "de" 107 | weight = 2 108 | contentDir = "content/de" 109 | title = "Das ist der deutsche Titel" 110 | description = "Das ist die deutsche Beschreibung" 111 | [languages.de.params] 112 | [languages.de.params.form] # Translate contact form fields 113 | inputNameLabel = "Name" 114 | inputNamePlaceholder = "Dein Name" 115 | inputEmailLabel = "E-mail" 116 | inputEmailPlaceholder = "Deine E-Mail-Adresse" 117 | inputMsgLabel = "Schreib etwas" 118 | inputSubmitValue = "Abschicken" 119 | [languages.de.params.cta] # Translate Call To Action 120 | show = true 121 | cta = "Kontakt" 122 | link = "de/kontakt/" # Relative URL 123 | -------------------------------------------------------------------------------- /exampleSite/content/de/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Home" 3 | description: "" 4 | images: ["undraw_freelancer_b0my.svg"] 5 | draft: false 6 | menu: main 7 | weight: 1 8 | --- 9 | 10 | # Terrassa 11 | ## Das Hugo Theme für dich. Oder dein Unternehmen. 12 | -------------------------------------------------------------------------------- /exampleSite/content/de/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Über uns" 3 | description: "" 4 | images: [] 5 | draft: false 6 | menu: main 7 | weight: 3 8 | url: /de/ueber-uns/ 9 | --- 10 | 11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Felis donec et odio pellentesque diam. Sapien nec sagittis aliquam malesuada bibendum. Velit dignissim sodales ut eu sem integer vitae justo. Vulputate sapien nec sagittis aliquam malesuada bibendum. Eu ultrices vitae auctor eu augue ut. Amet mattis vulputate enim nulla aliquet porttitor lacus luctus. Mauris in aliquam sem fringilla. Sed faucibus turpis in eu mi bibendum. Nunc consequat interdum varius sit amet mattis vulputate enim. Tincidunt praesent semper feugiat nibh sed pulvinar. Curabitur vitae nunc sed velit dignissim sodales ut eu sem. Arcu odio ut sem nulla pharetra diam sit amet. Vitae justo eget magna fermentum iaculis. Sit amet consectetur adipiscing elit ut aliquam. Suspendisse sed nisi lacus sed viverra tellus in hac. Arcu felis bibendum ut tristique et egestas. Egestas pretium aenean pharetra magna ac placerat vestibulum. Tempus egestas sed sed risus pretium quam vulputate. 12 | 13 | Quam nulla porttitor massa id neque. Convallis convallis tellus id interdum velit laoreet id donec ultrices. In mollis nunc sed id semper risus in. Id nibh tortor id aliquet. Amet mattis vulputate enim nulla aliquet porttitor lacus. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Interdum consectetur libero id faucibus nisl tincidunt eget nullam. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque. Facilisis mauris sit amet massa vitae tortor. Massa placerat duis ultricies lacus sed. Lectus sit amet est placerat in egestas erat imperdiet. Tempus egestas sed sed risus. Congue eu consequat ac felis donec et odio pellentesque diam. Volutpat lacus laoreet non curabitur gravida arcu. Tortor dignissim convallis aenean et tortor. Pretium vulputate sapien nec sagittis aliquam malesuada bibendum arcu. Sit amet luctus venenatis lectus magna fringilla urna porttitor. 14 | 15 | Elementum pulvinar etiam non quam. Vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor posuere. Ut tristique et egestas quis ipsum suspendisse ultrices gravida dictum. Dui ut ornare lectus sit. Commodo sed egestas egestas fringilla phasellus faucibus scelerisque eleifend. Venenatis cras sed felis eget velit. Lectus mauris ultrices eros in cursus turpis massa tincidunt dui. Ac turpis egestas maecenas pharetra convallis posuere morbi leo urna. Sed odio morbi quis commodo odio aenean. Adipiscing at in tellus integer feugiat scelerisque varius. Massa sapien faucibus et molestie ac feugiat sed. Dolor purus non enim praesent elementum facilisis. Vitae suscipit tellus mauris a diam maecenas. Vel fringilla est ullamcorper eget nulla facilisi etiam dignissim diam. Vitae et leo duis ut diam quam. Lectus quam id leo in vitae turpis. Vitae ultricies leo integer malesuada nunc. 16 | 17 | Ornare lectus sit amet est placerat in egestas erat. Massa vitae tortor condimentum lacinia quis vel. Ornare massa eget egestas purus. Varius quam quisque id diam vel quam. Convallis tellus id interdum velit. Aenean pharetra magna ac placerat vestibulum. Vitae congue eu consequat ac felis donec et. Dignissim suspendisse in est ante in nibh mauris. Lobortis scelerisque fermentum dui faucibus in ornare. At urna condimentum mattis pellentesque id nibh tortor id. Purus non enim praesent elementum facilisis leo vel. Rutrum quisque non tellus orci ac auctor augue mauris. Eget arcu dictum varius duis at consectetur lorem. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Quam pellentesque nec nam aliquam sem. Dignissim convallis aenean et tortor at risus viverra adipiscing at. Ante in nibh mauris cursus. At risus viverra adipiscing at in tellus. 18 | 19 | Duis at tellus at urna condimentum. Felis bibendum ut tristique et egestas quis. Diam vel quam elementum pulvinar etiam non quam lacus suspendisse. Dui accumsan sit amet nulla facilisi morbi tempus iaculis. Congue eu consequat ac felis donec et. Mattis pellentesque id nibh tortor id aliquet lectus proin. Interdum varius sit amet mattis vulputate enim nulla. Aenean et tortor at risus viverra adipiscing at in. Diam volutpat commodo sed egestas egestas. Nulla pharetra diam sit amet nisl. Odio pellentesque diam volutpat commodo sed egestas egestas fringilla. Augue interdum velit euismod in pellentesque massa. Tempus egestas sed sed risus. Id semper risus in hendrerit gravida rutrum quisque non. Cras ornare arcu dui vivamus arcu felis bibendum ut. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Volutpat diam ut venenatis tellus in metus. 20 | -------------------------------------------------------------------------------- /exampleSite/content/de/contact/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kontakt" 3 | description: "Schreib mir eine Nachricht!" 4 | images: [] 5 | draft: false 6 | menu: main 7 | weight: 4 8 | url: /de/kontakt/ 9 | --- 10 | -------------------------------------------------------------------------------- /exampleSite/content/de/posts/16-things-free-songs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "16 things that won't happen in free songs" 3 | description: "Why country music festivals will change your life." 4 | date: 2018-12-17T22:21:42+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["music", "songs" , "free"] 10 | --- 11 | 12 | 5 ways country song ringtones can make you rich. [Why country music festivals will change your life](#). The unconventional guide to music notes. Why our world would end if music videos disappeared. 8 insane (but true) things about top country songs. How twitter can teach you about popular songs. 13 facts about latin music videos that'll keep you up at night. Why do people think free dances are a good idea? Why your free song never works out the way you plan. The 6 best music video youtube videos. 13 | 14 | > "The unconventional guide to piano stores. Why concert events should be 1 of the 7 deadly sins". 15 | 16 | How free dances are making the world a better place. 7 least favorite music videos. 7 ways live shows could leave you needing a lawyer. 11 great articles about popular songs. [7 movies with unbelievable scenes about free songs](#). If you read one article about billboard music awards read this one. 18 ways latin music videos could leave you needing a lawyer. How best rock songs can help you live a better life. The 17 best country music festival twitter feeds to follow. Expose: you're losing money by not using top country songs. 17 | 18 | [How jazz coffee bars can help you predict the future](#). What wikipedia can't tell you about music festivals. 10 bs facts about rock bands everyone thinks are true. What the world would be like if summer music festivals didn't exist. How hollywood got latin music videos all wrong. Why pop music books are on crack about pop music books. The evolution of top country songs. How not knowing pop music books makes you a rookie. Why do people think concert tickets are a good idea? How twitter can teach you about jazz coffee bars. 19 | 20 | 6 ways top country songs can make you rich. [7 facts about summer music festivals that'll keep you up at night](#). 8 problems with free dances. What everyone is saying about music festivals. Free songs by the numbers. Why concert tickets are on crack about concert tickets. 9 problems with live shows. Why popular songs are on crack about popular songs. The unconventional guide to piano stores. Why concert events should be 1 of the 7 deadly sins. -------------------------------------------------------------------------------- /exampleSite/content/de/posts/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Blog" 3 | description: "" 4 | images: [] 5 | draft: false 6 | menu: main 7 | weight: 2 8 | url: /de/beitraege/ 9 | --- 10 | -------------------------------------------------------------------------------- /exampleSite/content/de/posts/bad-architects.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "How architects aren't as bad as you think" 3 | description: "Why living room ideas are killing you." 4 | date: 2018-12-16T22:34:04+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["health", "music", "architecture"] 10 | --- 11 | 12 | 6 uses for living room decors. [Why living room ideas are killing you](#). The oddest place you will find decorating ideas. Why the world would end without apartment guides. 12 things that won't happen in interior design ideas. How twitter can teach you about bathroom designs. The 12 best floor plan youtube videos. 9 bs facts about living room decors everyone thinks are true. The only home builder resources you will ever need. How decorating ideas can help you predict the future. 13 | 14 | > "Show me the code". 15 | 16 | [The 10 best resources for modular homes](#). Home builders by the numbers. *Why you'll never succeed at interior design ideas*. 12 myths uncovered about small house plans. How designer furniture can help you live a better life. Why the world would end without floor plans. How hollywood got interior designs all wrong. An expert interview about kitchen designs. Why our world would end if bathroom designs disappeared. Why mom was right about bathroom designs. 17 | 18 | ```golang 19 | package main 20 | 21 | import "fmt" 22 | 23 | func main() { 24 | fmt.Println("Hello, Gopher!") 25 | } 26 | ``` 27 | 28 | How building is making the world a better place. **An expert interview about living room ideas**. What everyone is saying about modern living rooms. The 20 best interior design twitter feeds to follow. How to be unpopular in the designer furniture world. [Why mom was right about apartments](#). What the world would be like if kitchen designs didn't exist. The 19 biggest studio apartment blunders. 9 great articles about kitchen planners. How to start using kitchen planners. 29 | 30 | Why luxury homes are killing you. 12 least favorite interior designs. How to cheat at luxury homes and get away with it. How floor plans made me a better person. [Why floor plans should be 1 of the 7 deadly sins](#). If you read one article about modern homes read this one. Architectural designs in 11 easy steps. The 19 worst architectural designs in history. How rent houses changed how we think about death. 6 insane (but true) things about small house plans. -------------------------------------------------------------------------------- /exampleSite/content/de/posts/game-websites/images/dummy-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnlzrgz/hugo-terrassa-theme/87a1454029a012440b8f937702027e60010faac6/exampleSite/content/de/posts/game-websites/images/dummy-image.jpg -------------------------------------------------------------------------------- /exampleSite/content/de/posts/game-websites/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "How game websites can help you live a better life" 3 | description: "The 6 best dish review twitter feeds to follow." 4 | date: 2018-12-19T22:32:19+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["health", "cooking"] 10 | --- 11 | 12 | [How to cheat at dish reviews and get away with it](#). The 6 best dish review twitter feeds to follow. The best ways to utilize minute meals. The best ways to utilize safe food handling tips. The best ways to utilize safe food handling tips. 17 facts about food processors that will impress your friends. How cooking healthy food is making the world a better place. Why you'll never succeed at healthy eating facts. 16 things you don't want to hear about chefs. 9 uses for mexican food. 13 | 14 | ![Dummy image.](./images/dummy-image.jpg) 15 | 16 | The unconventional guide to chicken dishes. Why food networks beat peanut butter on pancakes. How fast food isn't as bad as you think. If you read one article about restaurant weeks read this one. Why delicious food is afraid of the truth. Why meatloaf recipes will make you question everything. The oddest place you will find food networks. 16 great articles about breakfast casseroles. Why the next 10 years of healthy cooking tips will smash the last 10. The 16 biggest food network blunders. 17 | 18 | {{< figure src="./images/dummy-image.jpg" title="Dummy image using Hugo shortcode." >}} 19 | 20 | 11 things that won't happen in minute meals. [Why mom was right about mexican food](#). 20 facts about chefs that will impress your friends. 7 uses for delicious food. How to cheat at dish reviews and get away with it. Unbelievable dish review success stories. Why your food network never works out the way you plan. Why food processors are the new black. Why our world would end if healthy lunch ideas disappeared. The 12 best resources for healthy eating facts. 21 | 22 | Dummy image with HTML. 23 | 24 | 14 ways chef uniforms can make you rich. An expert interview about healthy eating facts. 17 things that won't happen in fast food. The 16 worst songs about food stamps. 20 podcasts about thai restaurants. 12 ways easy meals can make you rich. Why restaurant weeks should be 1 of the 7 deadly sins. 15 ideas you can steal from safe food handling tips. Why mexican food is the new black. Why healthy cooking tips are the new black. 25 | -------------------------------------------------------------------------------- /exampleSite/content/de/posts/preventative-medicines.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Why preventative medicines are afraid of the truth" 3 | description: "Why vaccination schedules will change your life." 4 | date: 2018-12-07T22:30:56+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["medicine", "health"] 10 | --- 11 | 12 | Why vaccination schedules will change your life. How weight loss meal plans can help you live a better life. How not knowing fitness equipment makes you a rookie. The 18 best resources for fitness equipment. 9 problems with home health care products. [17 amazing health care provider picturesi](#). How nutrition facts make you a better lover. The oddest place you will find home health care products. The 15 best health question twitter feeds to follow. Why our world would end if preventative medicines disappeared. 13 | 14 | How hollywood got travel medicines all wrong. Expose: you're losing money by not using health care solutions. 18 things your boss expects you know about relapse prevention worksheets. 5 ways vaccination schedules can make you rich. 14 things you don't want to hear about vaccination schedules. The evolution of vaccine ingredients. 19 movies with unbelievable scenes about fitness programs. 17 amazing health care solution pictures. 11 things you don't want to hear about travel vaccines. 12 movies with unbelievable scenes about travel vaccines. 15 | 16 | What the world would be like if naturopathic medicines didn't exist. 11 myths uncovered about vaccine ingredients. 9 facts about healthy eating meal plans that'll keep you up at night. Home health care products by the numbers. Why mom was right about health quotes. Why weight loss success stories are on crack about weight loss success stories. What experts are saying about travel medicines. Expose: you're losing money by not using weight loss meal plans. [What wikipedia can't tell you about vaccine ingredientsi](#). 20 facts about fitness magazines that will impress your friends. 17 | 18 | 18 ways home health care products could leave you needing a lawyer. 6 ways healthy eating tips could leave you needing a lawyer. Why nutrition label makers are on crack about nutrition label makers. Why mom was right about health questions. [Why online nutrition courses will make you question everything](#). 12 facts about health informatics that will impress your friends. 16 facts about health informatics that will impress your friends. The oddest place you will find weight loss meal plans. 16 things about health informatics your kids don't want you to know. What experts are saying about fitness programs. -------------------------------------------------------------------------------- /exampleSite/content/de/sections/simple-choices.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple Choices" 3 | description: "" 4 | draft: false 5 | weight: 2 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -------------------------------------------------------------------------------- /exampleSite/content/de/sections/simple-people.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple People" 3 | description: "" 4 | draft: false 5 | weight: 3 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 9 | 10 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -------------------------------------------------------------------------------- /exampleSite/content/de/sections/simple-values.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple Values" 3 | description: "" 4 | draft: false 5 | weight: 1 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -------------------------------------------------------------------------------- /exampleSite/content/de/sections/simple.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple" 3 | description: "" 4 | draft: false 5 | weight: 4 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. -------------------------------------------------------------------------------- /exampleSite/content/en/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Home" 3 | description: "" 4 | images: ["undraw_freelancer_b0my.svg"] 5 | draft: false 6 | menu: main 7 | weight: 1 8 | --- 9 | 10 | # Terrassa 11 | ## The Hugo theme for you. Or for your company. -------------------------------------------------------------------------------- /exampleSite/content/en/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "About" 3 | description: "" 4 | images: [] 5 | draft: false 6 | menu: main 7 | weight: 3 8 | --- 9 | 10 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Felis donec et odio pellentesque diam. Sapien nec sagittis aliquam malesuada bibendum. Velit dignissim sodales ut eu sem integer vitae justo. Vulputate sapien nec sagittis aliquam malesuada bibendum. Eu ultrices vitae auctor eu augue ut. Amet mattis vulputate enim nulla aliquet porttitor lacus luctus. Mauris in aliquam sem fringilla. Sed faucibus turpis in eu mi bibendum. Nunc consequat interdum varius sit amet mattis vulputate enim. Tincidunt praesent semper feugiat nibh sed pulvinar. Curabitur vitae nunc sed velit dignissim sodales ut eu sem. Arcu odio ut sem nulla pharetra diam sit amet. Vitae justo eget magna fermentum iaculis. Sit amet consectetur adipiscing elit ut aliquam. Suspendisse sed nisi lacus sed viverra tellus in hac. Arcu felis bibendum ut tristique et egestas. Egestas pretium aenean pharetra magna ac placerat vestibulum. Tempus egestas sed sed risus pretium quam vulputate. 11 | 12 | Quam nulla porttitor massa id neque. Convallis convallis tellus id interdum velit laoreet id donec ultrices. In mollis nunc sed id semper risus in. Id nibh tortor id aliquet. Amet mattis vulputate enim nulla aliquet porttitor lacus. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Interdum consectetur libero id faucibus nisl tincidunt eget nullam. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque. Facilisis mauris sit amet massa vitae tortor. Massa placerat duis ultricies lacus sed. Lectus sit amet est placerat in egestas erat imperdiet. Tempus egestas sed sed risus. Congue eu consequat ac felis donec et odio pellentesque diam. Volutpat lacus laoreet non curabitur gravida arcu. Tortor dignissim convallis aenean et tortor. Pretium vulputate sapien nec sagittis aliquam malesuada bibendum arcu. Sit amet luctus venenatis lectus magna fringilla urna porttitor. 13 | 14 | Elementum pulvinar etiam non quam. Vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor posuere. Ut tristique et egestas quis ipsum suspendisse ultrices gravida dictum. Dui ut ornare lectus sit. Commodo sed egestas egestas fringilla phasellus faucibus scelerisque eleifend. Venenatis cras sed felis eget velit. Lectus mauris ultrices eros in cursus turpis massa tincidunt dui. Ac turpis egestas maecenas pharetra convallis posuere morbi leo urna. Sed odio morbi quis commodo odio aenean. Adipiscing at in tellus integer feugiat scelerisque varius. Massa sapien faucibus et molestie ac feugiat sed. Dolor purus non enim praesent elementum facilisis. Vitae suscipit tellus mauris a diam maecenas. Vel fringilla est ullamcorper eget nulla facilisi etiam dignissim diam. Vitae et leo duis ut diam quam. Lectus quam id leo in vitae turpis. Vitae ultricies leo integer malesuada nunc. 15 | 16 | Ornare lectus sit amet est placerat in egestas erat. Massa vitae tortor condimentum lacinia quis vel. Ornare massa eget egestas purus. Varius quam quisque id diam vel quam. Convallis tellus id interdum velit. Aenean pharetra magna ac placerat vestibulum. Vitae congue eu consequat ac felis donec et. Dignissim suspendisse in est ante in nibh mauris. Lobortis scelerisque fermentum dui faucibus in ornare. At urna condimentum mattis pellentesque id nibh tortor id. Purus non enim praesent elementum facilisis leo vel. Rutrum quisque non tellus orci ac auctor augue mauris. Eget arcu dictum varius duis at consectetur lorem. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Quam pellentesque nec nam aliquam sem. Dignissim convallis aenean et tortor at risus viverra adipiscing at. Ante in nibh mauris cursus. At risus viverra adipiscing at in tellus. 17 | 18 | Duis at tellus at urna condimentum. Felis bibendum ut tristique et egestas quis. Diam vel quam elementum pulvinar etiam non quam lacus suspendisse. Dui accumsan sit amet nulla facilisi morbi tempus iaculis. Congue eu consequat ac felis donec et. Mattis pellentesque id nibh tortor id aliquet lectus proin. Interdum varius sit amet mattis vulputate enim nulla. Aenean et tortor at risus viverra adipiscing at in. Diam volutpat commodo sed egestas egestas. Nulla pharetra diam sit amet nisl. Odio pellentesque diam volutpat commodo sed egestas egestas fringilla. Augue interdum velit euismod in pellentesque massa. Tempus egestas sed sed risus. Id semper risus in hendrerit gravida rutrum quisque non. Cras ornare arcu dui vivamus arcu felis bibendum ut. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Volutpat diam ut venenatis tellus in metus. -------------------------------------------------------------------------------- /exampleSite/content/en/contact/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Contact" 3 | description: "Send me a message!" 4 | images: [] 5 | draft: false 6 | menu: main 7 | weight: 4 8 | --- -------------------------------------------------------------------------------- /exampleSite/content/en/posts/16-things-free-songs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "16 things that won't happen in free songs" 3 | description: "Why country music festivals will change your life." 4 | date: 2018-12-17T22:21:42+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["music", "songs" , "free"] 10 | --- 11 | 12 | 5 ways country song ringtones can make you rich. [Why country music festivals will change your life](#). The unconventional guide to music notes. Why our world would end if music videos disappeared. 8 insane (but true) things about top country songs. How twitter can teach you about popular songs. 13 facts about latin music videos that'll keep you up at night. Why do people think free dances are a good idea? Why your free song never works out the way you plan. The 6 best music video youtube videos. 13 | 14 | > "The unconventional guide to piano stores. Why concert events should be 1 of the 7 deadly sins". 15 | 16 | How free dances are making the world a better place. 7 least favorite music videos. 7 ways live shows could leave you needing a lawyer. 11 great articles about popular songs. [7 movies with unbelievable scenes about free songs](#). If you read one article about billboard music awards read this one. 18 ways latin music videos could leave you needing a lawyer. How best rock songs can help you live a better life. The 17 best country music festival twitter feeds to follow. Expose: you're losing money by not using top country songs. 17 | 18 | [How jazz coffee bars can help you predict the future](#). What wikipedia can't tell you about music festivals. 10 bs facts about rock bands everyone thinks are true. What the world would be like if summer music festivals didn't exist. How hollywood got latin music videos all wrong. Why pop music books are on crack about pop music books. The evolution of top country songs. How not knowing pop music books makes you a rookie. Why do people think concert tickets are a good idea? How twitter can teach you about jazz coffee bars. 19 | 20 | 6 ways top country songs can make you rich. [7 facts about summer music festivals that'll keep you up at night](#). 8 problems with free dances. What everyone is saying about music festivals. Free songs by the numbers. Why concert tickets are on crack about concert tickets. 9 problems with live shows. Why popular songs are on crack about popular songs. The unconventional guide to piano stores. Why concert events should be 1 of the 7 deadly sins. -------------------------------------------------------------------------------- /exampleSite/content/en/posts/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Blog" 3 | description: "" 4 | images: [] 5 | draft: false 6 | menu: main 7 | weight: 2 8 | --- -------------------------------------------------------------------------------- /exampleSite/content/en/posts/bad-architects.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "How architects aren't as bad as you think" 3 | description: "Why living room ideas are killing you." 4 | date: 2018-12-16T22:34:04+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["health", "music", "architecture"] 10 | --- 11 | 12 | 6 uses for living room decors. [Why living room ideas are killing you](#). The oddest place you will find decorating ideas. Why the world would end without apartment guides. 12 things that won't happen in interior design ideas. How twitter can teach you about bathroom designs. The 12 best floor plan youtube videos. 9 bs facts about living room decors everyone thinks are true. The only home builder resources you will ever need. How decorating ideas can help you predict the future. 13 | 14 | > "Show me the code". 15 | 16 | [The 10 best resources for modular homes](#). Home builders by the numbers. *Why you'll never succeed at interior design ideas*. 12 myths uncovered about small house plans. How designer furniture can help you live a better life. Why the world would end without floor plans. How hollywood got interior designs all wrong. An expert interview about kitchen designs. Why our world would end if bathroom designs disappeared. Why mom was right about bathroom designs. 17 | 18 | ```golang 19 | package main 20 | 21 | import "fmt" 22 | 23 | func main() { 24 | fmt.Println("Hello, Gopher!") 25 | } 26 | ``` 27 | 28 | How building is making the world a better place. **An expert interview about living room ideas**. What everyone is saying about modern living rooms. The 20 best interior design twitter feeds to follow. How to be unpopular in the designer furniture world. [Why mom was right about apartments](#). What the world would be like if kitchen designs didn't exist. The 19 biggest studio apartment blunders. 9 great articles about kitchen planners. How to start using kitchen planners. 29 | 30 | Why luxury homes are killing you. 12 least favorite interior designs. How to cheat at luxury homes and get away with it. How floor plans made me a better person. [Why floor plans should be 1 of the 7 deadly sins](#). If you read one article about modern homes read this one. Architectural designs in 11 easy steps. The 19 worst architectural designs in history. How rent houses changed how we think about death. 6 insane (but true) things about small house plans. -------------------------------------------------------------------------------- /exampleSite/content/en/posts/game-websites/images/dummy-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnlzrgz/hugo-terrassa-theme/87a1454029a012440b8f937702027e60010faac6/exampleSite/content/en/posts/game-websites/images/dummy-image.jpg -------------------------------------------------------------------------------- /exampleSite/content/en/posts/game-websites/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "How game websites can help you live a better life" 3 | description: "The 6 best dish review twitter feeds to follow." 4 | date: 2018-12-19T22:32:19+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["health", "cooking"] 10 | --- 11 | 12 | [How to cheat at dish reviews and get away with it](#). The 6 best dish review twitter feeds to follow. The best ways to utilize minute meals. The best ways to utilize safe food handling tips. The best ways to utilize safe food handling tips. 17 facts about food processors that will impress your friends. How cooking healthy food is making the world a better place. Why you'll never succeed at healthy eating facts. 16 things you don't want to hear about chefs. 9 uses for mexican food. 13 | 14 | ![Dummy image.](./images/dummy-image.jpg) 15 | 16 | The unconventional guide to chicken dishes. Why food networks beat peanut butter on pancakes. How fast food isn't as bad as you think. If you read one article about restaurant weeks read this one. Why delicious food is afraid of the truth. Why meatloaf recipes will make you question everything. The oddest place you will find food networks. 16 great articles about breakfast casseroles. Why the next 10 years of healthy cooking tips will smash the last 10. The 16 biggest food network blunders. 17 | 18 | {{< figure src="./images/dummy-image.jpg" title="Dummy image using Hugo shortcode." >}} 19 | 20 | 11 things that won't happen in minute meals. [Why mom was right about mexican food](#). 20 facts about chefs that will impress your friends. 7 uses for delicious food. How to cheat at dish reviews and get away with it. Unbelievable dish review success stories. Why your food network never works out the way you plan. Why food processors are the new black. Why our world would end if healthy lunch ideas disappeared. The 12 best resources for healthy eating facts. 21 | 22 | Dummy image with HTML. 23 | 24 | 14 ways chef uniforms can make you rich. An expert interview about healthy eating facts. 17 things that won't happen in fast food. The 16 worst songs about food stamps. 20 podcasts about thai restaurants. 12 ways easy meals can make you rich. Why restaurant weeks should be 1 of the 7 deadly sins. 15 ideas you can steal from safe food handling tips. Why mexican food is the new black. Why healthy cooking tips are the new black. 25 | -------------------------------------------------------------------------------- /exampleSite/content/en/posts/preventative-medicines.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Why preventative medicines are afraid of the truth" 3 | description: "Why vaccination schedules will change your life." 4 | date: 2018-12-07T22:30:56+01:00 5 | publishDate: 2018-12-19T22:21:42+01:00 6 | author: "John Doe" 7 | images: [] 8 | draft: false 9 | tags: ["medicine", "health"] 10 | --- 11 | 12 | Why vaccination schedules will change your life. How weight loss meal plans can help you live a better life. How not knowing fitness equipment makes you a rookie. The 18 best resources for fitness equipment. 9 problems with home health care products. [17 amazing health care provider picturesi](#). How nutrition facts make you a better lover. The oddest place you will find home health care products. The 15 best health question twitter feeds to follow. Why our world would end if preventative medicines disappeared. 13 | 14 | How hollywood got travel medicines all wrong. Expose: you're losing money by not using health care solutions. 18 things your boss expects you know about relapse prevention worksheets. 5 ways vaccination schedules can make you rich. 14 things you don't want to hear about vaccination schedules. The evolution of vaccine ingredients. 19 movies with unbelievable scenes about fitness programs. 17 amazing health care solution pictures. 11 things you don't want to hear about travel vaccines. 12 movies with unbelievable scenes about travel vaccines. 15 | 16 | What the world would be like if naturopathic medicines didn't exist. 11 myths uncovered about vaccine ingredients. 9 facts about healthy eating meal plans that'll keep you up at night. Home health care products by the numbers. Why mom was right about health quotes. Why weight loss success stories are on crack about weight loss success stories. What experts are saying about travel medicines. Expose: you're losing money by not using weight loss meal plans. [What wikipedia can't tell you about vaccine ingredientsi](#). 20 facts about fitness magazines that will impress your friends. 17 | 18 | 18 ways home health care products could leave you needing a lawyer. 6 ways healthy eating tips could leave you needing a lawyer. Why nutrition label makers are on crack about nutrition label makers. Why mom was right about health questions. [Why online nutrition courses will make you question everything](#). 12 facts about health informatics that will impress your friends. 16 facts about health informatics that will impress your friends. The oddest place you will find weight loss meal plans. 16 things about health informatics your kids don't want you to know. What experts are saying about fitness programs. -------------------------------------------------------------------------------- /exampleSite/content/en/sections/simple-choices.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple Choices" 3 | description: "" 4 | draft: false 5 | weight: 2 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -------------------------------------------------------------------------------- /exampleSite/content/en/sections/simple-people.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple People" 3 | description: "" 4 | draft: false 5 | weight: 3 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 9 | 10 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -------------------------------------------------------------------------------- /exampleSite/content/en/sections/simple-values.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple Values" 3 | description: "" 4 | draft: false 5 | weight: 1 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -------------------------------------------------------------------------------- /exampleSite/content/en/sections/simple.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : "Simple" 3 | description: "" 4 | draft: false 5 | weight: 4 6 | --- 7 | 8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. -------------------------------------------------------------------------------- /images/blog-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnlzrgz/hugo-terrassa-theme/87a1454029a012440b8f937702027e60010faac6/images/blog-screenshot.png -------------------------------------------------------------------------------- /images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnlzrgz/hugo-terrassa-theme/87a1454029a012440b8f937702027e60010faac6/images/screenshot.png -------------------------------------------------------------------------------- /images/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnlzrgz/hugo-terrassa-theme/87a1454029a012440b8f937702027e60010faac6/images/tn.png -------------------------------------------------------------------------------- /layouts/404.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |

404

4 |
5 | {{ end }} -------------------------------------------------------------------------------- /layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{- partial "head.html" . -}} 4 | 5 | 6 | {{- partial "header.html" . -}} 7 | {{- block "main" . }}{{- end }} 8 | {{- partial "footer.html" . -}} 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /layouts/_default/card.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 | 5 | {{ .Title }} 6 | 7 |

8 | {{ if ne .Type "page" }} 9 | {{ if and $.Site.Params.posts.showDate $.Site.Params.posts.showAuthor }} 10 |

11 | {{ dateFormat $.Site.Params.posts.dateFormat .Date }} By {{ $.Params.author }}. 12 |

13 | {{ else if $.Site.Params.posts.showDate }} 14 |

{{ dateFormat $.Site.Params.posts.dateFormat .Date }}

15 | {{ else if $.Site.Params.posts.showAuthor }} 16 |

By {{ $.Params.author }}.

17 | {{ end }} 18 | {{ end }} 19 |
20 | 21 |
22 | {{ .Content | truncate 480 }} 23 |
24 | 25 | 28 |
-------------------------------------------------------------------------------- /layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 | {{ $paginator := .Paginate (where .Data.Pages.ByDate.Reverse "Type" "posts") }} 4 | 5 | {{ range $paginator.Pages }} 6 | {{ .Render "card" }} 7 | {{ end }} 8 | 9 | {{ template "_internal/pagination.html" . }} 10 |
11 | {{ end }} 12 | -------------------------------------------------------------------------------- /layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |

{{ .Title }}

5 | {{ if .Description }} 6 |

{{ .Description }}

7 | {{ end }} 8 | {{ if ne .Type "page" }} 9 | {{ if and $.Site.Params.posts.showDate $.Site.Params.posts.showAuthor }} 10 | 13 | {{ else if $.Site.Params.posts.showDate }} 14 | 15 | {{ else if $.Site.Params.posts.showAuthor }} 16 | 17 | {{ end }} 18 | {{ end }} 19 |
20 | 21 | {{ if ne .Type "page" }} 22 |
23 | {{ .Content }} 24 |
25 | {{ else }} 26 |
27 | {{ .Content }} 28 |
29 | {{ end }} 30 | 31 | {{ if ne .Type "page" }} 32 | 35 | {{ end }} 36 |
37 | {{ end }} -------------------------------------------------------------------------------- /layouts/_default/tags.html: -------------------------------------------------------------------------------- 1 | {{ if and $.Site.Params.posts.showTags .Params.Tags }} 2 | 12 | {{ end }} 13 | -------------------------------------------------------------------------------- /layouts/contact/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |

{{ .Title }}

4 |

{{ .Description }}

5 | 6 | {{ if $.Site.Params.form.netlify }} 7 |
8 | {{ else }} 9 | 11 | {{ end }} 12 | 13 | 14 |
15 | 16 | 19 |
20 | 21 | 22 | 28 | 29 | 30 |
31 | 32 | 35 |
36 | 37 | 38 |
39 | 42 |
43 | 44 |
45 |
46 | {{ end }} -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "hero.html" . }} 3 | {{ partial "sections.html" . }} 4 | {{ end }} -------------------------------------------------------------------------------- /layouts/partials/cta-btn.html: -------------------------------------------------------------------------------- 1 | 3 | {{ $.Site.Params.cta.cta }} 4 | -------------------------------------------------------------------------------- /layouts/partials/fontawesome.html: -------------------------------------------------------------------------------- 1 | {{ $version := "5.7.2" }} 2 | {{ $integrity := "sha384-0pzryjIRos8mFBWMzSSZApWtPl/5++eIfzYmTgBBmXYdhvxPc+XcFEk+zJwDgWbP" }} 3 | {{ if and $.Site.Params.fa.version $.Site.Params.fa.integrity }} 4 | {{ $version = $.Site.Params.fa.version }} 5 | {{ $integrity = $.Site.Params.fa.integrity }} 6 | {{ end }} 7 | 8 | {{ $src := printf "%s%s%s" "https://use.fontawesome.com/releases/v" $version "/js/all.js" }} 9 | 10 | 16 | -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layouts/partials/hamburger-menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layouts/partials/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ $.Site.Title }} - {{ .Title }} 7 | 8 | 9 | 10 | {{ if .IsTranslated }} 11 | {{ range .AllTranslations }} 12 | 13 | {{ end }} 14 | {{ end }} 15 | 16 | {{ hugo.Generator }} 17 | 18 | {{ if .Site.GoogleAnalytics }} 19 | {{ template "_internal/google_analytics.html" . }} 20 | {{ end }} 21 | 22 | {{ template "_internal/twitter_cards.html" . }} 23 | {{ template "_internal/opengraph.html" . }} 24 | 25 | 26 | {{ if .IsTranslated }} 27 | {{ range .Translations }} 28 | 29 | {{ end }} 30 | {{ end }} 31 | 32 | 33 | {{ partial "styles.html" . }} 34 | 35 | -------------------------------------------------------------------------------- /layouts/partials/header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | {{ if $.Site.Params.logo }} 5 | 6 | {{ else }} 7 | {{ $.Site.Title }} 8 | {{ end }} 9 | 10 |
11 | 12 | {{ partial "menu.html" . }} 13 | {{ partial "hamburger-menu.html" . }} 14 | {{ if $.Site.Params.languageSwitcher.show }} 15 | {{ partial "language-switcher.html" . }} 16 | {{ end }} 17 |
18 | -------------------------------------------------------------------------------- /layouts/partials/hero.html: -------------------------------------------------------------------------------- 1 |
3 |
5 | {{ .Content }} 6 | {{ if $.Site.Params.cta.show }} 7 | {{ partial "cta-btn.html" . }} 8 | {{ end }} 9 |
10 |
-------------------------------------------------------------------------------- /layouts/partials/language-switcher.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /layouts/partials/menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layouts/partials/scripts.html: -------------------------------------------------------------------------------- 1 | {{ $header := resources.Get "js/header.js" }} 2 | {{ $form := resources.Get "js/form.js" }} 3 | {{ $bundle := slice $header $form | resources.Concat "js/bundle.js" }} 4 | {{ $js := $bundle | resources.Minify | resources.Fingerprint "sha512" }} 5 | 6 | 7 | 8 | {{ partial "fontawesome.html" . }} 9 | -------------------------------------------------------------------------------- /layouts/partials/section.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ .Title }}

3 |
4 | {{ .Content }} 5 |
6 |
-------------------------------------------------------------------------------- /layouts/partials/sections.html: -------------------------------------------------------------------------------- 1 | {{ $items := (where $.Site.RegularPages "Type" "sections") }} 2 | {{ $len := (len $items) }} 3 | 4 | {{ range $i, $e := $items }} 5 | {{ partial "section.html" . }} 6 | 7 | {{ if ne (add $i 1) $len }} 8 | 9 | {{ if $.Site.Params.separator.show }} 10 | {{ partial "separator.html" . }} 11 | {{ end }} 12 | 13 | {{ end }} 14 | {{ end}} -------------------------------------------------------------------------------- /layouts/partials/separator.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
-------------------------------------------------------------------------------- /layouts/partials/styles.html: -------------------------------------------------------------------------------- 1 | {{ $reset := resources.Get "css/reset.css" }} 2 | {{ $base := resources.Get "css/base.css" }} 3 | {{ $style := resources.Get "css/style.css" }} 4 | {{ $media := resources.Get "css/media-queries.css" }} 5 | {{ $animations := resources.Get "css/animations.css" }} 6 | {{ $custom := resources.Get "css/custom.css" }} 7 | {{ $bundle := slice $reset $base $style $media $animations $custom | resources.Concat "css/bundle.css" }} 8 | 9 | {{ $css := $bundle | resources.Minify }} 10 | 11 | -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | IMAGE_NAME=terrassa 2 | APP_NAME=terrassa 3 | IMAGE_PORT=80 4 | HOST_PORT=80 5 | HUGO_SITE=exampleSite 6 | HUGO_BASE_URL=https://danielkvist.github.io/terrassa/ 7 | 8 | hugo-build: 9 | cd ./$(HUGO_SITE) && hugo 10 | hugo-build-min: 11 | cd ./$(HUGO_SITE) && hugo --minify 12 | hugo-build-deploy: 13 | cd ./$(HUGO_SITE) && hugo --minify --baseURL="$(HUGO_BASE_URL)" 14 | hugo-server: 15 | cd ./$(HUGO_SITE) && hugo server -w 16 | hugo-server-draft: 17 | cd ./$(HUGO_SITE) && hugo server -w -D 18 | hugo-clean: 19 | cd ./$(HUGO_SITE) && rm -rf ./public 20 | docker: 21 | docker image build --build-arg HUGO_SITE=$(HUGO_SITE) --build-arg EXPOSE=$(IMAGE_PORT) -t $(IMAGE_NAME) . 22 | docker-nc: 23 | docker image build --build-arg HUGO_SITE=$(HUGO_SITE) --build-arg EXPOSE=$(IMAGE_PORT) --no-cache -t $(IMAGE_NAME) . 24 | docker-run: 25 | docker container run -d -p $(IMAGE_PORT):$(HOST_PORT) --name $(APP_NAME) $(IMAGE_NAME) 26 | docker-stop: 27 | docker container stop $(APP_NAME) 28 | docker-rm: 29 | docker container rm $(APP_NAME) 30 | dev: hugo-server-draft 31 | build: huo-build-deploy 32 | check: hugo-build-min docker-nc docker-run 33 | clean: docker-stop docker-rm hugo-clean -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnlzrgz/hugo-terrassa-theme/87a1454029a012440b8f937702027e60010faac6/static/favicon.ico -------------------------------------------------------------------------------- /static/images/undraw_freelancer_b0my.svg: -------------------------------------------------------------------------------- 1 | freelancer -------------------------------------------------------------------------------- /theme.toml: -------------------------------------------------------------------------------- 1 | name = "Terrassa" 2 | license = "MIT" 3 | licenselink = "https://github.com/danielkvist/hugo-terrassa-theme/blob/master/LICENSE" 4 | description = "A simple, fast and responsive theme for Hugo with a strong focus on accessibility." 5 | homepage = "https://github.com/danielkvist/hugo-terrassa-theme" 6 | tags = ["blog", "clean", "personal", "company", "google analytics", "contact form","mobile", "modern", "accessibility", "font awesome"] 7 | features = [ 8 | "responsive design", 9 | "accessibility", 10 | "social icons", 11 | "contact form", 12 | "blog", 13 | ] 14 | min_version = "0.41" 15 | 16 | [author] 17 | name = "Danielkvist (Daniel Zaragoza)" 18 | homepage = "https://dkvist.com" 19 | --------------------------------------------------------------------------------