work with risotto
This commit is contained in:
parent
e336313018
commit
8327ef14e6
27 changed files with 627 additions and 0 deletions
32
layouts/_default/archives.html
Normal file
32
layouts/_default/archives.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<section>
|
||||||
|
{{ $type := .Type }}
|
||||||
|
{{ $.Scratch.Set "count" 1 }}
|
||||||
|
|
||||||
|
{{ range (.Site.RegularPages.GroupByDate "2006") }}
|
||||||
|
{{ if and (gt .Key 1) (gt (where .Pages "Type" $type) 0) }}
|
||||||
|
|
||||||
|
{{ range (where .Pages "Type" $type) }}
|
||||||
|
{{ if (eq ($.Scratch.Get "count") 1) }}
|
||||||
|
{{ $.Scratch.Set "count" 0 }}
|
||||||
|
<h1>{{ .Date.Format "2006" }}</h1>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ $.Scratch.Set "count" 1 }}
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
{{ range (where .Pages "Type" $type) }}
|
||||||
|
{{ if (ne .Params.hidden true) }}
|
||||||
|
<li>
|
||||||
|
<a href="{{ .RelPermalink }}">
|
||||||
|
<span>{{ .Date.Format "02 Jan" }}</span> — {{ .Title }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</section>
|
||||||
|
{{ end }}
|
36
themes/risotto/.github/workflows/hugo-build-exampleSite.yml
vendored
Normal file
36
themes/risotto/.github/workflows/hugo-build-exampleSite.yml
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
name: hugo build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||||
|
path: risotto
|
||||||
|
|
||||||
|
- name: Setup Hugo
|
||||||
|
uses: peaceiris/actions-hugo@v2
|
||||||
|
with:
|
||||||
|
hugo-version: '0.85.0'
|
||||||
|
# extended: true
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
working-directory: ./risotto/exampleSite
|
||||||
|
run: hugo --minify --themesDir="../.." -t risotto
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
if: ${{ github.ref == 'refs/heads/main' }}
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./risotto/exampleSite/public
|
||||||
|
cname: risotto.joeroe.io
|
1
themes/risotto/.gitignore
vendored
Normal file
1
themes/risotto/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.hugo_build.lock
|
20
themes/risotto/LICENSE
Normal file
20
themes/risotto/LICENSE
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2021 Joe Roe
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
46
themes/risotto/NEWS.md
Normal file
46
themes/risotto/NEWS.md
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# risotto (development version)
|
||||||
|
|
||||||
|
* **Breaking change:** The config parameter `logo` now expects a character, e.g. an emoji or Unicode symbol.
|
||||||
|
* For the old behaviour, use `logo_image`
|
||||||
|
* Fixed invalid HTML in header nav
|
||||||
|
* Added RSS feed references to head element (#73, after <https://gohugo.io/templates/rss/>)
|
||||||
|
* Updated FontAwesome to 6.6.0 (#88)
|
||||||
|
* Please note that future versions will probably not include FontAwesome by default (#59)
|
||||||
|
|
||||||
|
|
||||||
|
# risotto 0.4.0
|
||||||
|
|
||||||
|
* Added descriptions to sidebar of list pages, where defined in the frontmatter of `_index.md` (#55)
|
||||||
|
* Made sidebar sticky, avoiding overflow for long tables of contents (#51)
|
||||||
|
* Added convenience classes for colours, e.g. `.base00` and `.bg-base00`.
|
||||||
|
* Fixed overflow of code blocks with line numbers (#41)
|
||||||
|
* Fixed invalid HTML in page header (#64)
|
||||||
|
* Updated FontAwesome to 6.5.1 (#63)
|
||||||
|
* Please note that future versions will probably not include FontAwesome by default (#59)
|
||||||
|
* Updated Academicons to 1.9.4 (#63)
|
||||||
|
* Please note that future versions will probably not include Academicons by default (#59)
|
||||||
|
|
||||||
|
# risotto 0.3.0
|
||||||
|
|
||||||
|
* Added support for favicons (#57)
|
||||||
|
|
||||||
|
# risotto 0.2.0
|
||||||
|
|
||||||
|
* **Breaking change** – new framework for colour palettes:
|
||||||
|
* Palettes are defined using CSS variables following the [base16](https://github.com/chriskempson/base16) system
|
||||||
|
* Added 14 new palettes: `apprentice`, `base16-dark`, `base16-light`, `dracula`, `material`, `papercolor-dark`, `papercolor-light`, `solarized-dark`, `solarized-light`, `tender`, `tokyo-night-dark`, `tokyo-night-light`, `windows-95` and `windows-95-light`.
|
||||||
|
* The default palette is `base16-dark`
|
||||||
|
* The `mode` parameter is no longer needed
|
||||||
|
* If you were using one of the old named palettes (`gruvbox-dark` or `gruvbox-light`), the change will be seamless.
|
||||||
|
* If you were using a custom palette, you will need to redefine it using the new framework. See README for further details.
|
||||||
|
* Added a table of contents (thanks @dashv, #47)
|
||||||
|
* Added multilanguage support with a language switcher (thanks @bedefaced)
|
||||||
|
* Made the site header and nav wrap more efficiently on narrow screens (thanks @m-dev672, #32)
|
||||||
|
* Added a changelog
|
||||||
|
|
||||||
|
# risotto 0.1.0
|
||||||
|
|
||||||
|
First named release, including:
|
||||||
|
|
||||||
|
* `gruvbox-dark` and `gruvbox-light` colour palettes
|
||||||
|
* FontAwesome6 and Academicons icon sets
|
108
themes/risotto/README.md
Normal file
108
themes/risotto/README.md
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
# 🍚 risotto
|
||||||
|
|
||||||
|
risotto is a minimalist, responsive [hugo](https://gohugo.io) theme inspired by terminal ricing aesthetics.
|
||||||
|
|
||||||
|
[](https://themes.gohugo.io/themes/risotto/)
|
||||||
|
[](https://semver.org)
|
||||||
|

|
||||||
|
[](https://validator.nu/?doc=https%3A%2F%2Frisotto.joeroe.io)
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* Plain, semantic HTML with no Javascript
|
||||||
|
* Plain CSS – no frameworks, no preprocessors, just simple and easy-to-customise stylesheets
|
||||||
|
* Uses [CSS Grid](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout) for native responsive behaviour without arbitrary breakpoints
|
||||||
|
* Comes with [16 built-in colour schemes](#colour-schemes) based on popular terminal themes plus the ability to use custom themes using the [base16 system](https://github.com/monicfenga/base16-styles)
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
The easiest way to install the theme is to [download the latest release](https://github.com/joeroe/risotto/releases) and extract it to your project's `themes/` directory.
|
||||||
|
You can also clone this repository into your site's `themes` directory and checkout the latest release:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/joeroe/risotto themes/risotto && cd themes/risotto
|
||||||
|
git checkout $(git tag -l | grep '^v[0-9.]*$' | sort -V | tail -n 1)
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that this will not work if your site is itself a git repository.
|
||||||
|
In that case, you can add the theme as a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules), but this is not recommended due to the difficulty of tracking a specific release.
|
||||||
|
|
||||||
|
## Update
|
||||||
|
|
||||||
|
If you installed the theme using `git clone`, pull the repository to get the latest version:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd themes/risotto
|
||||||
|
git pull
|
||||||
|
```
|
||||||
|
|
||||||
|
Otherwise, simply [download the latest release](https://github.com/joeroe/risotto/releases) and extract it to your project's `themes/` directory, replacing the old version.
|
||||||
|
|
||||||
|
## Configure
|
||||||
|
|
||||||
|
To use the theme, add `theme = 'risotto'` to your site's `hugo.toml`, or `theme: risotto` to your `hugo.yaml`.
|
||||||
|
|
||||||
|
See `exampleSite/config.toml` for the theme-specific parameters you need to add to your site's `hugo.toml` or `hugo.yaml` to configure the theme.
|
||||||
|
|
||||||
|
### Colour schemes
|
||||||
|
|
||||||
|
risotto uses the [base16 framework](https://github.com/chriskempson/base16) to define colour schemes that can be used with the `theme.palette` parameter.
|
||||||
|
A selection of 16 palettes (10 dark, 6 light) are bundled with the theme: `apprentice`, `base16-dark`, `base16-light`, `dracula`, `gruvbox-dark`, `gruvbox-light`, `material`, `papercolor-dark`, `papercolor-light`, `solarized-dark`, `solarized-light`, `tender`, `tokyo-night-dark`, `tokyo-night-light`, `windows-95` and `windows-95-light`.
|
||||||
|
The default is `base16-dark`.
|
||||||
|
|
||||||
|
<!-- TODO: add screenshots of default themes -->
|
||||||
|
|
||||||
|
The easiest way to use other base16 styles is to place .css file from https://github.com/monicfenga/base16-styles/tree/master/css-variables and place it in your `static/css/palettes` directory.
|
||||||
|
|
||||||
|
Or to define a wholly custom theme, you will need to define the following CSS variables for the following base16 colours (see [base16-dark.css](blob/main/static/css/palettes/base16-dark.css) for an example):
|
||||||
|
|
||||||
|
| Base | Default colour | Used for | Examples |
|
||||||
|
| ---- | ------------------------------------------ | ------------------- | ------------------------------------ |
|
||||||
|
| 00 | <span class="base00">Dark</span> | Background | Page background |
|
||||||
|
| 01 | <span class="base01">│</span> | Alt. background | Content background |
|
||||||
|
| 02 | <span class="base02">│</span> | In-text backgrounds | `<pre>`, `<code>`, `<kbd>`, `<samp>` |
|
||||||
|
| 03 | <span class="base03">│</span> | Muted text | `:before` & `:marker` symbols |
|
||||||
|
| 04 | <span class="base04">│</span> | Alt. foreground | Aside text |
|
||||||
|
| 05 | <span class="base05">│</span> | Foreground | Content text |
|
||||||
|
| 06 | <span class="base06">│</span> | | |
|
||||||
|
| 07 | <span class="base07">Light</span> | | |
|
||||||
|
| 08 | <span class="base08">Red</span> | | |
|
||||||
|
| 09 | <span class="base09">Orange</span> | | |
|
||||||
|
| 0A | <span class="base0A">Yellow</span> | Highlights | Selected text, `<mark>` |
|
||||||
|
| 0B | <span class="base0B">Green</span> | Primary accent | Logo |
|
||||||
|
| 0C | <span class="base0C">Cyan</span> | Active links | `a:active`, `a:hover` |
|
||||||
|
| 0D | <span class="base0D">Blue</span> | Links | `a:link`, `a:visited` |
|
||||||
|
| 0E | <span class="base0E">Magenta</span> | | |
|
||||||
|
| 0F | <span class="base0F">Brown</span> | | |
|
||||||
|
|
||||||
|
For light mode palettes, the sequence of 00–07 should be reversed (light to dark, not dark to light).
|
||||||
|
Note that not all colours are currently used in the theme.
|
||||||
|
|
||||||
|
You you use these colours directly in content using the convenience classes `.baseXX` and `.bg-baseXX`.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<span class="base0A">Yellow text</span>
|
||||||
|
<mark class="bg-base0D">Text highlighted in green</mark>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Favicon
|
||||||
|
|
||||||
|
risotto will automatically use favicons placed in the `static/` directory.
|
||||||
|
The following files will be detected and included in your site's `<head>` section:
|
||||||
|
|
||||||
|
* `favicon.ico`
|
||||||
|
* `favicon-16x16.png`
|
||||||
|
* `favicon-32x32.png`
|
||||||
|
* `apple-touch-icon.png`
|
||||||
|
* `site.webmanifest`
|
||||||
|
|
||||||
|
You can generate these from an image or emoji using [favicon.io](https://favicon.io/) or a similar service.
|
||||||
|
They must be placed directly under your site's `static/` directory, i.e. not in in a subdirectory or `themes/risotto/static/`.
|
||||||
|
|
||||||
|
## Acknowledgements
|
||||||
|
|
||||||
|
The 'cooked rice' emoji used as a favicon for the example site was created by the [Twemoji project](https://twemoji.twitter.com/) and is licensed under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|
2
themes/risotto/archetypes/default.md
Normal file
2
themes/risotto/archetypes/default.md
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
+++
|
||||||
|
+++
|
3
themes/risotto/config.toml
Normal file
3
themes/risotto/config.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[module]
|
||||||
|
[module.hugoVersion]
|
||||||
|
min = "0.41.0"
|
21
themes/risotto/exampleSite/LICENSE
Normal file
21
themes/risotto/exampleSite/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014 Steve Francia
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
103
themes/risotto/exampleSite/config.toml
Normal file
103
themes/risotto/exampleSite/config.toml
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
baseURL = "https://risotto.joeroe.io"
|
||||||
|
theme = "risotto"
|
||||||
|
title = "risotto demo"
|
||||||
|
author = "Joe Roe"
|
||||||
|
copyright = "© [Joe Roe](https://joeroe.io) & [risotto contributors](https://github.com/joeroe/risotto/graphs/contributors)."
|
||||||
|
paginate = 3
|
||||||
|
languageCode = "en"
|
||||||
|
DefaultContentLanguage = "en"
|
||||||
|
enableInlineShortcodes = true
|
||||||
|
# prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
|
||||||
|
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
||||||
|
ignoreErrors = ["error-remote-getjson"]
|
||||||
|
|
||||||
|
# Automatically add content sections to main menu
|
||||||
|
sectionPagesMenu = "main"
|
||||||
|
|
||||||
|
[params]
|
||||||
|
noindex = false
|
||||||
|
|
||||||
|
[params.theme]
|
||||||
|
palette = "base16-dark"
|
||||||
|
|
||||||
|
# Sidebar: about/bio
|
||||||
|
[params.about]
|
||||||
|
title = "risotto"
|
||||||
|
description = "A [hugo](https://gohugo.io) theme inspired by terminal ricing."
|
||||||
|
# unicode/emoji logo:
|
||||||
|
logo = "🍚"
|
||||||
|
# or use an image:
|
||||||
|
#logo_image = "images/rice.svg"
|
||||||
|
|
||||||
|
# Sidebar: social links
|
||||||
|
# Available icon sets:
|
||||||
|
# * FontAwesome 6 <https://fontawesome.com/> ('fa-brands', 'fa-normal', or 'fa-solid' for brands)
|
||||||
|
# * Academicons <https://jpswalsh.github.io/academicons> ('ai ai-')
|
||||||
|
|
||||||
|
[[params.socialLinks]]
|
||||||
|
icon = "fa-brands fa-github"
|
||||||
|
title = "GitHub"
|
||||||
|
url = "https://github.com/joeroe/risotto"
|
||||||
|
|
||||||
|
[[params.socialLinks]]
|
||||||
|
icon = "fa-solid fa-envelope"
|
||||||
|
title = "Email"
|
||||||
|
url = "mailto:example@example.com"
|
||||||
|
|
||||||
|
[[params.socialLinks]]
|
||||||
|
icon = "ai ai-orcid"
|
||||||
|
title = "ORCID"
|
||||||
|
url = "https://orcid.org/0000-0001-2345-6789"
|
||||||
|
|
||||||
|
[menu]
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
identifier = "about"
|
||||||
|
name = "About"
|
||||||
|
url = "/about/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[taxonomies]
|
||||||
|
category = "categories"
|
||||||
|
tag = "tags"
|
||||||
|
series = "series"
|
||||||
|
|
||||||
|
# For hugo >= 0.60.0, enable inline HTML
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe = true
|
||||||
|
|
||||||
|
[markup]
|
||||||
|
|
||||||
|
# Table of contents
|
||||||
|
# Add toc = true to content front matter to enable
|
||||||
|
[markup.tableOfContents]
|
||||||
|
startLevel = 2
|
||||||
|
endLevel = 3
|
||||||
|
ordered = true
|
||||||
|
|
||||||
|
[privacy]
|
||||||
|
|
||||||
|
[privacy.vimeo]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.twitter]
|
||||||
|
disabled = false
|
||||||
|
enableDNT = true
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.instagram]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.youtube]
|
||||||
|
disabled = false
|
||||||
|
privacyEnhanced = true
|
||||||
|
|
||||||
|
[services]
|
||||||
|
|
||||||
|
[services.instagram]
|
||||||
|
disableInlineCSS = true
|
||||||
|
|
||||||
|
[services.twitter]
|
||||||
|
disableInlineCSS = true
|
27
themes/risotto/exampleSite/configTaxo.toml
Normal file
27
themes/risotto/exampleSite/configTaxo.toml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
timeout = 30000
|
||||||
|
enableInlineShortcodes = true
|
||||||
|
|
||||||
|
[taxonomies]
|
||||||
|
category = "categories"
|
||||||
|
tag = "tags"
|
||||||
|
series = "series"
|
||||||
|
|
||||||
|
[privacy]
|
||||||
|
|
||||||
|
[privacy.vimeo]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.twitter]
|
||||||
|
disabled = false
|
||||||
|
enableDNT = true
|
||||||
|
simple = true
|
||||||
|
disableInlineCSS = true
|
||||||
|
|
||||||
|
[privacy.instagram]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.youtube]
|
||||||
|
disabled = false
|
||||||
|
privacyEnhanced = true
|
0
themes/risotto/exampleSite/layouts/.gitkeep
Normal file
0
themes/risotto/exampleSite/layouts/.gitkeep
Normal file
BIN
themes/risotto/images/screenshot.png
Normal file
BIN
themes/risotto/images/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 198 KiB |
BIN
themes/risotto/images/tn.png
Normal file
BIN
themes/risotto/images/tn.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 181 KiB |
0
themes/risotto/layouts/404.html
Normal file
0
themes/risotto/layouts/404.html
Normal file
36
themes/risotto/layouts/_default/baseof.html
Normal file
36
themes/risotto/layouts/_default/baseof.html
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{- site.Language.Lang -}}">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
{{- partial "head.html" . -}}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="page">
|
||||||
|
|
||||||
|
<header class="page__header">
|
||||||
|
{{- partial "header.html" . -}}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="page__body">
|
||||||
|
{{- block "main" . }}{{- end }}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="page__aside">
|
||||||
|
<div class="aside__about">
|
||||||
|
{{- partial "about.html" . -}}
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
{{- block "aside" . }}{{- end }}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer">
|
||||||
|
{{- partial "footer.html" . -}}
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
1
themes/risotto/layouts/_default/li.html
Normal file
1
themes/risotto/layouts/_default/li.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<li><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></li>
|
16
themes/risotto/layouts/_default/list.html
Normal file
16
themes/risotto/layouts/_default/list.html
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<h1 id="{{ .Title | urlize }}">{{ .Title | markdownify }}</h1>
|
||||||
|
|
||||||
|
{{ .Content }}
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
{{ range .Pages }}
|
||||||
|
{{ .Render "li" }}
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{define "aside" }}
|
||||||
|
{{ if .Params.description }}<p>{{ .Params.description }}</p>{{ end }}
|
||||||
|
{{ end }}
|
25
themes/risotto/layouts/_default/single.html
Normal file
25
themes/risotto/layouts/_default/single.html
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<header class="content__header">
|
||||||
|
<h1>{{ .Title | markdownify }}</h1>
|
||||||
|
</header>
|
||||||
|
<div class="content__body">
|
||||||
|
{{ .Content }}
|
||||||
|
</div>
|
||||||
|
<footer class="content__footer"></footer>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{define "aside" }}
|
||||||
|
{{ if .Params.description }}<p>{{ .Params.description }}</p>{{ end }}
|
||||||
|
{{ if or (.Params.author) (.Params.date) }}
|
||||||
|
<p>
|
||||||
|
{{ if .Params.author }}Par {{ .Params.author }}{{ if .Date }}, {{ end }}{{ end }}
|
||||||
|
{{ if .Date }}{{ .Date.Format "02-01-2006" }}{{ end }}
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if and (.Params.toc) (.TableOfContents) }}
|
||||||
|
<hr>
|
||||||
|
Sur cette page:
|
||||||
|
{{ .TableOfContents }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
4
themes/risotto/layouts/index.html
Normal file
4
themes/risotto/layouts/index.html
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
{{ .Content }}
|
||||||
|
{{ end }}
|
||||||
|
|
16
themes/risotto/layouts/partials/about.html
Normal file
16
themes/risotto/layouts/partials/about.html
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{{ with .Site.Params.about }}
|
||||||
|
<div class="aside__about">
|
||||||
|
{{ with .logo }}<span class="about__logo" role="img">{{ . }}</span> {{ end }}
|
||||||
|
{{ with .logo_image }}<img class="about__logo" src="{{ . | absURL }}" alt="Logo">{{ end }}
|
||||||
|
<h1 class="about__title">{{ .title }}</h1>
|
||||||
|
{{ with .description }}<p class="about__description">{{ . | markdownify }}</p>{{ end }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
<ul class="aside__social-links">
|
||||||
|
{{ range $item := .Site.Params.socialLinks }}
|
||||||
|
<li>
|
||||||
|
<a href="{{ $item.url }}" rel="me" aria-label="{{ $item.title }}" title="{{ $item.title }}"><i class="{{ $item.icon }}" aria-hidden="true"></i></a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
3
themes/risotto/layouts/partials/footer.html
Normal file
3
themes/risotto/layouts/partials/footer.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
<p class="copyright">{{ .Site.Copyright | markdownify }}</p>
|
||||||
|
<p class="advertisement">Réalisé avec ♥️ par un debianeu à poil dur.</p>
|
47
themes/risotto/layouts/partials/head.html
Normal file
47
themes/risotto/layouts/partials/head.html
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<title>{{ with .Title }}{{ . }} – {{end}}{{ .Site.Title }}</title>
|
||||||
|
{{ with .Site.Params.about }}<meta name="description" content="{{ .description }}">{{ end }}
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
{{ if .Site.Params.noindex }}<meta name="robots" content="noindex" /> {{ end }}
|
||||||
|
|
||||||
|
<!-- FontAwesome <https://fontawesome.com/> -->
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<a rel="me" href="https://gts.colmaris.fr/@colmaris"></a>
|
||||||
|
<!-- Academicons <https://jpswalsh.github.io/academicons/> -->
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.9.4/css/academicons.min.css" integrity="sha512-IW0nhlW5MgNydsXJO40En2EoCkTTjZhI3yuODrZIc8cQ4h1XcF53PsqDHa09NqnkXuIe0Oiyyj171BqZFwISBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
|
||||||
|
<!-- risotto theme -->
|
||||||
|
<link rel="stylesheet" href="{{ printf "css/palettes/%s.css" (.Site.Params.theme.palette | default "base16-dark") | absURL }}">
|
||||||
|
<link rel="stylesheet" href="{{ "css/risotto.css" | absURL }}">
|
||||||
|
<link rel="stylesheet" href="{{ "css/custom.css" | absURL }}">
|
||||||
|
|
||||||
|
<!-- Matomo -->
|
||||||
|
<script>
|
||||||
|
var _paq = window._paq = window._paq || [];
|
||||||
|
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||||||
|
_paq.push(['trackPageView']);
|
||||||
|
_paq.push(['enableLinkTracking']);
|
||||||
|
(function() {
|
||||||
|
var u="//goaccess.colmaris.fr/";
|
||||||
|
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||||
|
_paq.push(['setSiteId', '1']);
|
||||||
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||||
|
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<!-- End Matomo Code -->
|
||||||
|
|
||||||
|
<!-- Mastodon-->
|
||||||
|
<a rel="me" href="https://gts.colmaris.fr/@colmaris"></a>
|
||||||
|
<!-- favicon -->
|
||||||
|
{{ if os.FileExists "static/favicon.ico" }}<link rel="icon" href="{{ "favicon.ico" | absURL }}">{{ end }}
|
||||||
|
{{ if os.FileExists "static/favicon-32x32.png" }}<link rel="icon" type="image/png" sizes="32x32" href="{{ "favicon-32x32.png" | absURL }}">{{ end }}
|
||||||
|
{{ if os.FileExists "static/favicon-16x16.png" }}<link rel="icon" type="image/png" sizes="16x16" href="{{ "favicon-16x16.png" | absURL }}">{{ end }}
|
||||||
|
{{ if os.FileExists "static/apple-touch-icon.png" }}<link rel="apple-touch-icon" href="{{ "apple-touch-icon.png" | absURL }}">{{ end }}
|
||||||
|
{{ if os.FileExists "static/site.webmanifest" }}<link rel="manifest" href="{{ "site.webmanifest" | absURL }}">{{ end }}
|
||||||
|
|
||||||
|
<!-- RSS header-->
|
||||||
|
{{ with .OutputFormats.Get "rss" -}}
|
||||||
|
{{ printf `<link rel=%q type=%q href=%q title=%q>` .Rel .MediaType.Type .Permalink site.Title | safeHTML }}
|
||||||
|
{{ end }}
|
10
themes/risotto/layouts/partials/header.html
Normal file
10
themes/risotto/layouts/partials/header.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<nav class="page__nav main-nav">
|
||||||
|
<ul>
|
||||||
|
<li class="nomarker"><h1 class="page__logo"><a href="{{ .Site.BaseURL }}" class="page__logo-inner">{{ .Site.Title }}</a></h1></li>
|
||||||
|
{{ $currentPage := . }}
|
||||||
|
{{ range .Site.Menus.main }}
|
||||||
|
<li class="main-nav__item"><a class="nav-main-item{{ if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) (eq ($currentPage.Permalink) (.URL | absLangURL)) }} active{{end}}" href="{{ .URL }}" title="{{ .Title }}">{{ .Name }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
28
themes/risotto/layouts/partials/lang.html
Normal file
28
themes/risotto/layouts/partials/lang.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<p>
|
||||||
|
{{ $siteLanguages := .Site.Languages }}
|
||||||
|
{{ $pageLang := .Page.Lang }}
|
||||||
|
|
||||||
|
{{ $currentPage := . }}
|
||||||
|
{{ $pageName := "" }}
|
||||||
|
{{ range .Site.Menus.main }}
|
||||||
|
{{ if eq ($currentPage.Permalink) (.URL | absLangURL) }}
|
||||||
|
{{ $pageName = .Name }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ range .Page.AllTranslations }}
|
||||||
|
{{ $translation := .}}
|
||||||
|
{{ range $siteLanguages }}
|
||||||
|
{{ if eq $translation.Lang .Lang }}
|
||||||
|
{{ $selected := false }}
|
||||||
|
{{ if eq $pageLang .Lang }}
|
||||||
|
<br/><span class="active">$ echo $LANG<br/><b>{{ .LanguageName }}</b></span><br/>
|
||||||
|
|
||||||
|
{{ else }}
|
||||||
|
<br/><a href="{{ $translation.Permalink }}">export LANG={{ .LanguageName }}; ./{{ $pageName }}</a><br/>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</p>
|
||||||
|
<br /><br />
|
27
themes/risotto/layouts/post/list.html
Normal file
27
themes/risotto/layouts/post/list.html
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<header class="content__header">
|
||||||
|
<h1>{{ .Title | markdownify }}</h1>
|
||||||
|
{{ .Content }}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{ range .Pages }}
|
||||||
|
<article class="post">
|
||||||
|
<header class="post__header">
|
||||||
|
<h1><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h1>
|
||||||
|
<p class="post__meta">
|
||||||
|
{{ .Params.author }},
|
||||||
|
<span class="date">{{ $mymonths := index $.Site.Data.mois }}{{ .Date.Day }}
|
||||||
|
{{ index $mymonths (printf "%d" .Date.Month) }} {{ .Date.Year }}</span>
|
||||||
|
</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="post__summary">
|
||||||
|
{{ .Summary }}
|
||||||
|
</section>
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{define "aside" }}
|
||||||
|
{{ if .Params.description }}<p>{{ .Params.description }}</p>{{ end }}
|
||||||
|
{{ end }}
|
15
themes/risotto/theme.toml
Normal file
15
themes/risotto/theme.toml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
name = "risotto"
|
||||||
|
license = "MIT"
|
||||||
|
licenselink = "https://github.com/joeroe/risotto/blob/master/LICENSE"
|
||||||
|
description = "A minimalist, responsive theme inspired by terminal ricing aesthetics."
|
||||||
|
|
||||||
|
homepage = "https://github.com/joeroe/risotto"
|
||||||
|
demosite = "https://risotto.joeroe.io"
|
||||||
|
|
||||||
|
tags = ["responsive", "minimal", "dark mode"]
|
||||||
|
features = []
|
||||||
|
|
||||||
|
[author]
|
||||||
|
name = "Joe Roe"
|
||||||
|
homepage = "https://joeroe.io"
|
||||||
|
|
Loading…
Add table
Reference in a new issue