alice.institute
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Initial commit.

alice d4415532

+1413
+17
.github/workflows/deploy.yml
··· 1 + name: Fly Deploy 2 + on: 3 + push: 4 + branches: 5 + - main 6 + 7 + jobs: 8 + deploy: 9 + name: Deploy alice.institute 10 + runs-on: ubuntu-latest 11 + concurrency: deploy-group 12 + steps: 13 + - uses: actions/checkout@v4 14 + - uses: superfly/flyctl-actions/setup-flyctl@master 15 + - run: flyctl deploy --remote-only 16 + env: 17 + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
+1
.gitignore
··· 1 + .vscode/
+3
.gitmodules
··· 1 + [submodule "themes/anemone"] 2 + path = themes/anemone 3 + url = https://github.com/Speyll/anemone
+9
Dockerfile
··· 1 + FROM ghcr.io/getzola/zola:v0.17.2 AS builder 2 + 3 + WORKDIR /app 4 + COPY . . 5 + RUN ["zola", "build"] 6 + 7 + FROM joseluisq/static-web-server:2 8 + COPY --from=builder /app/public /public 9 + ENV SERVER_PORT 8080
+19
config.toml
··· 1 + # The URL the site will be built for 2 + base_url = "https://alice.institute" 3 + 4 + # Whether to automatically compile all Sass files in the sass directory 5 + compile_sass = true 6 + 7 + # Whether to build a search index to be used later on by a JavaScript library 8 + build_search_index = true 9 + 10 + theme = "anemone" 11 + 12 + [markdown] 13 + # Whether to do syntax highlighting 14 + # Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola 15 + highlight_code = true 16 + 17 + [extra] 18 + # Put all your custom variables here 19 + default_theme = "light"
+16
content/_index.md
··· 1 + +++ 2 + +++ 3 + 4 + ## Hello 5 + 6 + I'm Alice! 7 + 8 + ## Where to find me 9 + 10 + - Email: [aliceisjustplaying@gmail.com](mailto:aliceisjustplaying@gmail.com) 11 + - GitHub: [aliceisjustplaying](https://github.com/aliceisjustplaying) 12 + - Twitter: [@__justplaying](https://twitter.com/__justplaying) 13 + - Mastodon: [@aliceisjustplaying@chaos.social](https://chaos.social/@aliceisjustplaying) 14 + - Bluesky: [alice.bsky.sh](https://bsky.app/profile/alice.bsky.sh) 15 + - Discord: @aliceisjustplaying 16 + - DECT @ EMF: 7724
+20
fly.toml
··· 1 + # fly.toml app configuration file generated for alice-institute on 2024-05-30T12:42:22+01:00 2 + # 3 + # See https://fly.io/docs/reference/configuration/ for information about how to use this file. 4 + # 5 + 6 + app = 'alice-institute' 7 + primary_region = 'ams' 8 + 9 + [build] 10 + 11 + [http_service] 12 + internal_port = 8080 13 + force_https = true 14 + auto_stop_machines = true 15 + auto_start_machines = true 16 + min_machines_running = 0 17 + processes = ['app'] 18 + 19 + [[vm]] 20 + size = 'shared-cpu-1x'
templates/.gitkeep

This is a binary file and will not be displayed.

+20
themes/anemone/LICENSE
··· 1 + The MIT License (MIT) 2 + 3 + Copyright (c) 2023 Speyll Lyes 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.
+129
themes/anemone/README.md
··· 1 + # anemone 2 + 3 + Introducing "anemone," a minimalist [Zola](https://www.getzola.org) theme that prioritizes clean CSS and avoids heavy JavaScript. Enjoy a seamless user experience with lightning-fast load times. Let your content take center stage in a clutter-free, elegant design that enhances readability. Responsive and efficient, anemone brings focus to your ideas. 4 + 5 + You can browse the demo website [here](https://anemone.pages.dev/) 6 + I also use it on my own [website.](https://speyllsite.pages.dev/) 7 + 8 + Anemone is a versatile Zola theme that comes with both light and dark variants. You can easily switch between the light and dark themes to suit your preferences. 9 + 10 + ![Anemone Light and Dark Theme](screenshot.png) 11 + 12 + ### Installation 13 + 14 + To get started with Anemone, follow these simple steps: 15 + 16 + 1. Download the theme to your `themes` directory: 17 + 18 + ```bash 19 + cd themes 20 + git clone https://github.com/Speyll/anemone 21 + ``` 22 + 23 + 2. Enable Anemone in your `config.toml`: 24 + 25 + ```toml 26 + theme = "anemone" 27 + ``` 28 + 29 + ### Options 30 + 31 + Anemone provides various options to customize your website: 32 + 33 + #### Default Taxonomies 34 + 35 + To use tags, add the following code to a page's metadata: 36 + 37 + ```toml 38 + [taxonomies] 39 + tags = ["tag1", "tag2"] 40 + ``` 41 + 42 + #### Pages List in Homepage 43 + 44 + Enable listing of pages in the homepage by adding the following code to `config.toml`: 45 + 46 + ```toml 47 + [extra] 48 + list_pages = true 49 + ``` 50 + 51 + #### Multilanguage 52 + 53 + The theme has a built-in feature that allows you to use multiple languages. For detailed instructions on how to use this feature, you can refer to the [Zola Multilingual documentation](https://www.getzola.org/documentation/content/multilingual/). This documentation provides additional information on how to make the most out of this multilingual capability. 54 + 55 + ```toml 56 + [languages.fr] 57 + weight = 2 58 + title = "anemone" 59 + languageName = "Français" 60 + languageCode = "fr" 61 + ``` 62 + #### Multilanguage-Ready Navigation Bar 63 + 64 + Customize the header navigation links with the following code in the `extra` section of `config.toml`: 65 + 66 + ```toml 67 + [extra] 68 + 69 + header_nav = [ 70 + { url = "/", name_en = "/home/", name_fr = "/accueil/" }, 71 + { url = "/about", name_en = "/about/", name_fr = "/concernant/" }, 72 + { url = "/journal", name_en = "/journal/", name_fr = "/journal/" }, 73 + { url = "/blog", name_en = "/blog/", name_fr = "/blog/" } 74 + ] 75 + ``` 76 + 77 + #### Default Theme 78 + 79 + To configure the default theme, simply utilize the `default_theme` variable and set it to either `light` or `dark`: 80 + 81 + ```toml 82 + [extra] 83 + default_theme = "light" 84 + ``` 85 + 86 + #### Display Author Name in Blog Posts 87 + 88 + Customize the display of the author's name in your blog posts by toggling the `display_author` variable to either `true` or `false`: 89 + 90 + ```toml 91 + [extra] 92 + display_author = true 93 + ``` 94 + 95 + ### Webrings 96 + 97 + Add a webring with a shortcode: 98 + 99 + ```html 100 + {{ webring(prev="#", webring="#", webringName="Random Webring", next="#") }} 101 + ``` 102 + 103 + #### Add Table of Contents (TOC) to Pages 104 + 105 + In a page's frontmatter, set `extra.toc` to `true`: 106 + 107 + ```toml 108 + [extra] 109 + toc = true 110 + ``` 111 + 112 + ### Extra Data 113 + 114 + - Set the `author` in both the main config and in pages' metadata. 115 + - Use the `image` variable in pages to add an image to HTML `<meta>` tags. 116 + - Similarly, set `favicon` in the main config, and it will be used as the site icon. 117 + 118 + #### Disable Twitter Card 119 + 120 + Twitter metatags are generated by default. To disable them, set `extra.twitter_card` to `false` in `config.toml`: 121 + 122 + ```toml 123 + [extra] 124 + twitter_card = true 125 + ``` 126 + 127 + ### License 128 + 129 + The Anemone theme is available as open source under the terms of the [MIT License](LICENSE).
+48
themes/anemone/config.toml
··· 1 + base_url = "https://anemone.pages.dev" 2 + description = "A minimalist Zola theme that prioritizes clean CSS and avoids heavy JavaScript. Enjoy a seamless user experience with lightning-fast load times. Let your content take center stage in a clutter-free, elegant design that enhances readability. Responsive and efficient, anemone brings focus to your ideas." 3 + compile_sass = false 4 + minify_html = true 5 + generate_feed = true 6 + default_language = "en" 7 + 8 + taxonomies = [ 9 + {name = "tags", feed = true}, 10 + ] 11 + 12 + [languages.fr] 13 + weight = 2 14 + languageName = "Français" 15 + languageCode = "fr" 16 + 17 + [markdown] 18 + render_emoji = true 19 + external_links_target_blank = true 20 + smart_punctuation = true 21 + highlight_code = false 22 + highlight_theme = "gruvbox-dark" 23 + 24 + [slugify] 25 + paths = "on" 26 + taxonomies = "on" 27 + anchors = "on" 28 + 29 + [link_checker] 30 + internal_level = "warn" 31 + 32 + [extra] 33 + author = "Speyll" 34 + display_author = true 35 + 36 + favicon = "favicon.ico" 37 + image = "" 38 + 39 + default_theme = "light" 40 + list_pages = false 41 + twitter_card = true 42 + 43 + header_nav = [ 44 + { url = "/", name_en = "/home/", name_fr = "/accueil/" }, 45 + { url = "/about", name_en = "/about/", name_fr = "/concernant/" }, 46 + { url = "/journal", name_en = "/journal/", name_fr = "/journal/" }, 47 + { url = "/blog", name_en = "/blog/", name_fr = "/blog/" } 48 + ]
+47
themes/anemone/content/_index.fr.md
··· 1 + +++ 2 + +++ 3 + 4 + ## Aperçu 5 + 6 + Le thème anemone est conçu pour offrir une expérience quasi sans JavaScript, efficace et minimaliste pour votre site web. Adoptant la simplicité, le thème met l'accent sur le contenu et la lisibilité, garantissant une expérience utilisateur fluide sans distractions inutiles. 7 + 8 + > *"Bloc de citation inutile"* 9 + 10 + ## Articles de Blog 11 + 12 + Explorez nos articles de blog instructifs sur une variété de sujets : 13 + 14 + - 🥣 [Article de présentation](./blog/overview-post) 15 + - 🈚 [Tests de Langue](./blog/language-tests) 16 + - 🔥 [Titre Très Très Très Long et Contenu Très Très Très Court](./blog/very-very-very-long-title-and-very-very-very-short-content) 17 + - 📺 [Exemple d'Article avec Titres et TOC](./blog/post-example-with-headings-and-toc) 18 + 19 + ## Étiquettes 20 + 21 + Parcourez nos articles par étiquettes : 22 + 23 + - [exemple](./tags/example) 24 + 25 + ## Une Autre Liste 26 + 27 + Découvrez du contenu supplémentaire : 28 + 29 + - Avec des sous-éléments 30 + - Avec des sous-sous-éléments 31 + - [Exemple de Page](./about) 32 + - Cette liste correspond simplement au contenu de `content/_index.md`, les tests sont honteusement volés depuis [no style, please!](https://www.getzola.org/themes/no-style-please/) 33 + 34 + ## Présence en Ligne 35 + 36 + Restez connecté avec nous : 37 + 38 + - Email : [jgll6dij6@mozmail.com](mailto:jgll6dij6@mozmail.com) 39 + - Dépôts de Code : [Speyll@GitHub](https://github.com/Speyll) 40 + - @Speyll partout ailleurs. 41 + 42 + ## Anneaux Web 43 + 44 + Rejoignez nos anneaux web et explorez davantage : 45 + 46 + - 🈯 {{ webring(prev="#", webring="#", webringName="Anneau Aléatoire", next="#") }} 47 + - 🎶 {{ webring(prev="#", webring="#", webringName="Autre Anneau", next="#") }}
+48
themes/anemone/content/_index.md
··· 1 + +++ 2 + +++ 3 + 4 + ## Overview 5 + 6 + anemone theme is designed to provide a nearly no-JavaScript, efficient, and minimalist experience for your website. Embracing simplicity, the theme focuses on content and readability, ensuring a seamless user experience without unnecessary distractions. 7 + 8 + > *"Useless blockquote"* 9 + 10 + ## Blog Posts 11 + 12 + Explore our insightful blog posts on a variety of topics: 13 + 14 + - 🥣 [Overview Post](./blog/overview-post) 15 + - 🥣 [Overview Post But in French](./fr/blog/overview-post) 16 + - 🈚 [Language Tests](./blog/language-tests) 17 + - 🔥 [Very Very Very Long Title And Very Very Very Short Content](./blog/very-very-very-long-title-and-very-very-very-short-content) 18 + - 📺 [Post Example With Headings And TOC](./blog/post-example-with-headings-and-toc) 19 + 20 + ## Tags 21 + 22 + Browse our posts by tags: 23 + 24 + - [example](./tags/example) 25 + 26 + ## Another List 27 + 28 + Discover additional content: 29 + 30 + - With Subitems 31 + - With Subsubitems 32 + - [Example Page](./about) 33 + - this list is just the content of `content/_index.md`, the tests are shamelessly stolen from [no style, please!](https://www.getzola.org/themes/no-style-please/) 34 + 35 + ## Online Presence 36 + 37 + Stay connected with us: 38 + 39 + - Email: [jgll6dij6@mozmail.com](mailto:jgll6dij6@mozmail.com) 40 + - Code Repositories: [Speyll@GitHub](https://github.com/Speyll) 41 + - @Speyll anywhere else. 42 + 43 + ## Webrings 44 + 45 + Join our webrings and explore more: 46 + 47 + - 🈯 {{ webring(prev="#", webring="#", webringName="Random Webring", next="#") }} 48 + - 🎶 {{ webring(prev="#", webring="#", webringName="Another Webring", next="#") }}
+6
themes/anemone/content/about.md
··· 1 + +++ 2 + title = "About" 3 + +++ 4 + This is an about page, nothing more nothing less `forget about it`. 5 + 6 + {{ youtube(id="pS6zJ7IsJkM" class="textCenter") }}
+78
themes/anemone/content/blog/2020-07-07-overview-post.fr.md
··· 1 + +++ 2 + title = "Article de Présentation" 3 + +++ 4 + 5 + Lorem ipsum[^1] dolor sit amet, consectetur adipiscing elit. Pellentesque vel lacinia neque. Praesent nulla quam, ullamcorper in sollicitudin ac, molestie sed justo. Cras aliquam, sapien id consectetur accumsan, augue magna faucibus ex, ut ultricies turpis tortor vel ante. In at rutrum tellus. 6 + 7 + # Titre d'exemple 1 8 + ## Titre d'exemple 2 9 + ### Titre d'exemple 3 10 + #### Titre d'exemple 4 11 + ##### Titre d'exemple 5 12 + ###### Titre d'exemple 6 13 + 14 + Mauris viverra dictum ultricies. Vestibulum quis ipsum euismod, facilisis metus sed, varius ipsum. Donec scelerisque lacus libero, eu dignissim sem venenatis at. Etiam id nisl ut lorem gravida euismod. 15 + 16 + ## Listes 17 + 18 + Non ordonnée : 19 + 20 + - Fusce non velit cursus ligula mattis convallis vel at metus[^2]. 21 + - Sed pharetra tellus massa, non elementum eros vulputate non. 22 + - Suspendisse potenti. 23 + 24 + Ordonnée : 25 + 26 + 1. Quisque arcu felis, laoreet vel accumsan sit amet, fermentum at nunc. 27 + 2. Sed massa quam, auctor in eros quis, porttitor tincidunt orci. 28 + 3. Nulla convallis id sapien ornare viverra. 29 + 4. Nam a est eget ligula pellentesque posuere. 30 + 31 + ## Bloc de citation 32 + 33 + Voici un bloc de citation : 34 + 35 + > Suspendisse tempus dolor nec risus sodales posuere. Proin dui dui, mollis a consectetur molestie, lobortis vitae tellus. 36 + 37 + ## Code 38 + 39 + Maintenant un peu de code : 40 + 41 + ```js 42 + const ultimateTruth = 'ce thème est le meilleur !'; 43 + console.log(ultimateTruth); 44 + ``` 45 + 46 + Et voici du `code en ligne` ! 47 + 48 + ## Tableaux 49 + 50 + Maintenant un tableau : 51 + 52 + | Tables | Sont | Cool | 53 + | ------------- |:-------------:| -----:| 54 + | col 3 est | alignée à droite| $1600 | 55 + | col 2 est | centrée | $12 | 56 + | zèbre | est sympa | $1 | 57 + 58 + ## Images 59 + 60 + {{ img(id="https://uploads-ssl.webflow.com/5ff0b3326e5782a256714165/638b6f3a3d8d2e6bad1cb03b_Random22.1.jpg", alt="logo du thème") }} 61 + 62 + image aléatoire d'un chien[^4] 63 + 64 + ## Prise en charge multilingue 65 + - 🥣 [Ce site mais en français (seulement cette page et la page d'acceuil sont traduis)](/fr) 66 + 67 + ## Anneaux Web 68 + - 🈯 {{ webring(prev="#", webring="#", webringName="Anneau Aléatoire", next="#") }} 69 + 70 + --- 71 + 72 + [^1]: Ceci est une note de bas de page. Elle devrait être mise en évidence si vous cliquez sur le chiffre en exposant correspondant. 73 + 74 + [^2]: salut toi 75 + 76 + [^3]: ceci est une autre note de bas de page. 77 + 78 + [^4]: ceci est une note de bas de page très très longue pour tester si une note de bas de page très très longue pose problème ou non. J'espère vivement qu'il n'y a pas de problèmes, mais vous savez parfois les problèmes surgissent de nulle part.
+78
themes/anemone/content/blog/2020-07-07-overview-post.md
··· 1 + +++ 2 + title = "Overview Post" 3 + +++ 4 + 5 + Lorem ipsum[^1] dolor sit amet, consectetur adipiscing elit. Pellentesque vel lacinia neque. Praesent nulla quam, ullamcorper in sollicitudin ac, molestie sed justo. Cras aliquam, sapien id consectetur accumsan, augue magna faucibus ex, ut ultricies turpis tortor vel ante. In at rutrum tellus. 6 + 7 + # Sample heading 1 8 + ## Sample heading 2 9 + ### Sample heading 3 10 + #### Sample heading 4 11 + ##### Sample heading 5 12 + ###### Sample heading 6 13 + 14 + Mauris viverra dictum ultricies. Vestibulum quis ipsum euismod, facilisis metus sed, varius ipsum. Donec scelerisque lacus libero, eu dignissim sem venenatis at. Etiam id nisl ut lorem gravida euismod. 15 + 16 + ## Lists 17 + 18 + Unordered: 19 + 20 + - Fusce non velit cursus ligula mattis convallis vel at metus[^2]. 21 + - Sed pharetra tellus massa, non elementum eros vulputate non. 22 + - Suspendisse potenti. 23 + 24 + Ordered: 25 + 26 + 1. Quisque arcu felis, laoreet vel accumsan sit amet, fermentum at nunc. 27 + 2. Sed massa quam, auctor in eros quis, porttitor tincidunt orci. 28 + 3. Nulla convallis id sapien ornare viverra. 29 + 4. Nam a est eget ligula pellentesque posuere. 30 + 31 + ## Blockquote 32 + 33 + The following is a blockquote: 34 + 35 + > Suspendisse tempus dolor nec risus sodales posuere. Proin dui dui, mollis a consectetur molestie, lobortis vitae tellus. 36 + 37 + ## Code 38 + 39 + Now some code: 40 + 41 + ```js 42 + const ultimateTruth = 'this theme is the best!'; 43 + console.log(ultimateTruth); 44 + ``` 45 + 46 + And here is some `inline code`! 47 + 48 + ## Tables 49 + 50 + Now a table: 51 + 52 + | Tables | Are | Cool | 53 + | ------------- |:-------------:| -----:| 54 + | col 3 is | right-aligned | $1600 | 55 + | col 2 is | centered | $12 | 56 + | zebra stripes | are neat | $1 | 57 + 58 + ## Images 59 + 60 + {{ img(id="https://uploads-ssl.webflow.com/5ff0b3326e5782a256714165/638b6f3a3d8d2e6bad1cb03b_Random22.1.jpg", alt="theme logo") }} 61 + 62 + random image of a dog[^4] 63 + 64 + ## Multilanguage support 65 + - 🥣 [This site but in french (only this page and the homepage is translated)](/fr) 66 + 67 + ## Webrings 68 + - 🈯 {{ webring(prev="#", webring="#", webringName="Random Webring", next="#") }} 69 + 70 + --- 71 + 72 + [^1]: this is a footnote. It should highlight if you click on the corresponding superscript number. 73 + 74 + [^2]: hey there 75 + 76 + [^3]: this is another footnote. 77 + 78 + [^4]: this is a very very long footnote to test if a very very long footnote brings some problems or not. I strongly hope that there are no problems but you know sometimes problems arise from nowhere.
+52
themes/anemone/content/blog/2020-07-08-language-tests.md
··· 1 + +++ 2 + title = "Language Tests" 3 + [taxonomies] 4 + tags = ["example"] 5 + +++ 6 + 7 + Note: I took this test post from [moving](https://github.com/huangyz0918/moving), which is another Jekyll theme which is better that this one so I should not have linked it because now you will decide to use it instead of mine. 8 + 9 + ### 1. 日本語テスト 10 + 11 + This is a Japanese test post to show you how japanese is displayed. 12 + 13 + 私は昨日ついにその助力家というのの上よりするたなけれ。 14 + 最も今をお話団はちょうどこの前後なかろでくらいに困りがいるたをは帰着考えたなかって、そうにもするでうたらない。 15 + がたを知っないはずも同時に九月をいよいよたありた。 16 + 17 + もっと槙さんにぼんやり金少し説明にえた自分大した人私か影響にというお関係たうませないが、この次第も私か兄具合に使うて、槙さんののに当人のあなたにさぞご意味と行くて私個人が小尊敬を聴いように同時に同反抗に集っだうて、いよいよまず相当へあっうからいだ事をしでなけれ。 18 + 19 + > それでそれでもご時日をしはずはたったいやと突き抜けるますて、その元がは行ったてという獄を尽すていけですた。 20 + 21 + この中道具の日その学校はあなたごろがすまなりかとネルソンさんの考えるですん、辺の事実ないというご盲従ありたですと、爺さんのためが薬缶が結果までの箸の当時してならて、多少の十月にためからそういう上からとにかくしましないと触れべきものたで、ないうですと多少お人達したのでたた。 22 + 23 + From [すぐ使えるダミーテキスト - 日本語 Lorem ipsum.](http://lipsum.sugutsukaeru.jp/index.cgi) 24 + 25 + 26 + ### 2. 繁体中文测试 27 + 28 + This is a chinese test post to show you how chinese is displayed. 29 + 30 + 善我王上魚、產生資西員合兒臉趣論。畫衣生這著爸毛親可時,安程幾?合學作。觀經而作建。都非子作這!法如言子你關!手師也。 31 + 32 + 以也座論頭室業放。要車時地變此親不老高小是統習直麼調未,行年香一? 33 + 34 + 就竟在,是我童示讓利分和異種百路關母信過明驗有個歷洋中前合著區亮風值新底車有正結,進快保的行戰從:弟除文辦條國備當來際年每小腳識世可的的外的廣下歌洲保輪市果底天影;全氣具些回童但倒影發狀在示,數上學大法很,如要我……月品大供這起服滿老?應學傳者國:山式排只不之然清同關;細車是!停屋常間又,資畫領生,相們制在?公別的人寫教資夠。資再我我!只臉夫藝量不路政吃息緊回力之;兒足灣電空時局我怎初安。意今一子區首者微陸現際安除發連由子由而走學體區園我車當會,經時取頭,嚴了新科同?很夫營動通打,出和導一樂,查旅他。坐是收外子發物北看蘭戰坐車身做可來。道就學務。 35 + 36 + 國新故。 37 + 38 + > 工步他始能詩的,裝進分星海演意學值例道……於財型目古香亮自和這乎?化經溫詩。只賽嚴大一主價世哥受的沒有中年即病行金拉麼河。主小路了種就小為廣不? 39 + 40 + From [亂數假文產生器 - Chinese Lorem Ipsum.](http://www.richyli.com/tool/loremipsum/) 41 + 42 + 43 + 44 + ### 3. 简体中文测试 45 + 46 + 效育声去本义然空,各值太法心想,场强实地。 题铁习点儿表管少间千,只何政亲织文意部,千影画派证男须。 手反取长风治增非等直难群,连取及天他己事头级,影数弦适把气快目人。 专议以省通引而千个,格则口段度样水热马,地教少务改磨。 包思外心半院应她算斯,市外会快记路又火学,劳如肃它准众丧边。 47 + 48 + > 团算部住县单总边素格军所,合音府教看和广光采率位转,位用品根确针百。 证其标元角工方海接交他,论象切万世认一响义,治然身本风弦带题。 向我次路持加北,她不反心。 说总元军例市决,现始即算证养,规走还壳。 49 + 50 + 因林可相儿应满军,热影省条律因资再,整肃赤心将届。 局广写两量备验还,南教事争工民的,备进研上布。 素身电活非直,速这区交示从,百层达。 资量那毛什京身,白这快。 半打容三手开常价或,手严量般象式效,名可重芽门适。 来设什一我么,光界美么或,住身式准。 造酸改表委验众办地百养,商物战众本列听度名院,制压录丽快与千机内。 住需当四议决得命南然照按民置,当住命形金决否矿单外。 气象理离开新集增际,三划方工义很年关,拉许准孝口。 构片出干计由备美打养,持育总指承入无己。 51 + 52 + From [假文生成器, lorem ipsum Chinese](http://www.cancms.com/content/dummytext)
+5
themes/anemone/content/blog/2020-07-08-very-very-very-long-title-and-very-very-very-short-content.md
··· 1 + +++ 2 + title = "Very Very Very Long Title And Very Very Very Short Content" 3 + +++ 4 + 5 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vel lacinia neque. Praesent nulla quam, ullamcorper in sollicitudin ac, molestie sed justo. Cras aliquam, sapien id consectetur accumsan, augue magna faucibus ex, ut ultricies turpis tortor vel ante. In at rutrum tellus. Nullam vestibulum metus eu purus malesuada, volutpat mattis leo facilisis.
+24
themes/anemone/content/blog/2020-07-09-post-example-with-headings-and-toc.md
··· 1 + +++ 2 + title = "Post Example With Headings And Toc" 3 + [taxonomies] 4 + tags = ["example"] 5 + [extra] 6 + toc = true 7 + +++ 8 + 9 + Mauris viverra dictum ultricies. Vestibulum quis ipsum euismod, facilisis metus sed, varius ipsum. Donec scelerisque lacus libero, eu dignissim sem venenatis at. Nunc a egestas tortor, sed feugiat leo. 10 + 11 + Mauris viverra dictum ultricies. Vestibulum quis ipsum euismod, facilisis metus sed, varius ipsum. Donec scelerisque lacus libero, eu dignissim sem venenatis at. Nunc a egestas tortor, sed feugiat leo. Vestibulum porta tincidunt tellus, vitae ornare tortor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed nunc neque, tempor in iaculis non, faucibus et metus. Etiam id nisl ut lorem gravida euismod. 12 + 13 + ## [The start](#the-start) 14 + 15 + Fusce non velit cursus ligula mattis convallis vel at metus. Sed pharetra tellus massa, non elementum eros vulputate non. Suspendisse potenti. Quisque arcu felis, laoreet vel accumsan sit amet, fermentum at nunc. Sed massa quam, auctor in eros quis, porttitor tincidunt orci. Nulla convallis id sapien ornare viverra. Cras nec est lacinia ligula porta tincidunt. Nam a est eget ligula pellentesque posuere. Maecenas quis enim ac risus accumsan scelerisque. Aliquam vitae libero sapien. Etiam convallis, metus nec suscipit condimentum, quam massa congue velit, sit amet sollicitudin nisi tortor a lectus. Cras a arcu enim. Suspendisse hendrerit euismod est ac gravida. Donec vitae elit tristique, suscipit eros at, aliquam augue. In ac faucibus dui. Sed tempor lacus tristique elit sagittis, vitae tempor massa convallis. 16 + 17 + ## [The middle](#the-middle) 18 + 19 + Proin quis velit et eros auctor laoreet. Aenean eget nibh odio. Suspendisse mollis enim pretium, fermentum urna vitae, egestas purus. Donec convallis tincidunt purus, scelerisque fermentum eros sagittis vel. Aliquam ac aliquet risus, tempus iaculis est. Fusce molestie mauris non interdum hendrerit. Curabitur ullamcorper, eros vitae interdum volutpat, lacus magna lacinia turpis, at accumsan dui tortor vel lectus. Aenean risus massa, semper non lectus rutrum, facilisis imperdiet mi. Praesent sed quam quis purus auctor ornare et sed augue. Vestibulum non quam quis ligula luctus placerat sed sit amet erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Fusce auctor, sem eu volutpat dignissim, turpis nibh malesuada arcu, in consequat elit mauris quis sem. Nam tristique sit amet enim vel accumsan. Sed id nibh commodo, dictum sem id, semper quam. 20 + 21 + ## [The end](#the-end) 22 + 23 + Donec ex lectus, tempus non lacinia quis, pretium non ipsum. Praesent est nunc, rutrum vel tellus eu, tristique laoreet purus. In rutrum orci sit amet ex ornare, sit amet finibus lacus laoreet. Etiam ac facilisis purus, eget porttitor odio. Suspendisse tempus dolor nec risus sodales posuere. Proin dui dui, mollis a consectetur molestie, lobortis vitae tellus. Vivamus at purus sed urna sollicitudin mattis. Mauris lacinia libero in lobortis pulvinar. Nullam sit amet condimentum justo. Donec orci justo, pharetra ut dolor non, interdum finibus orci. Proin vitae ante a dui sodales commodo ac id elit. Nunc vel accumsan nunc, sit amet congue nunc. Aliquam in lacinia velit. Integer lobortis luctus eros, in fermentum metus aliquet a. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. 24 +
+9
themes/anemone/content/blog/_index.md
··· 1 + +++ 2 + paginate_by = 15 3 + path = "blog" 4 + title = "All blog posts" 5 + sort_by = "date" 6 + page_template = "blog-page.html" 7 + +++ 8 + 9 + > List of all *[tags](/tags)*
+26
themes/anemone/content/journal.md
··· 1 + +++ 2 + title = "Personal journal" 3 + date = 2019-10-05 4 + draft = false 5 + +++ 6 + 7 + ## 2023-06-29 🔧 8 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean dapibus dignissim nulla et ornare. Vestibulum porta, risus eu ultrices condimentum, quam ante mattis massa, eget laoreet neque nisl ullamcorper nibh. 9 + 10 + 11 + ## 2023-06-28 😊 12 + Etiam vulputate nibh in magna feugiat viverra. Donec ultricies sagittis justo vel facilisis. Nulla sollicitudin felis eu tortor consectetur, ac sodales odio faucibus. Vivamus id ultrices orci, ut luctus dolor. Sed sem nibh, semper in posuere eget, dictum eget dui. Praesent nunc dolor, lacinia at tortor eget, sollicitudin sagittis turpis. 13 + 14 + {{ img(id="https://uploads-ssl.webflow.com/5ff0b3326e5782a256714165/638b6f3a3d8d2e6bad1cb03b_Random22.1.jpg", alt="xfx6800xt", class="textCenter") }} 15 + 16 + ## 2022-11-30 💀 17 + Pellentesque iaculis diam leo, vel euismod libero finibus sed. Praesent ultrices libero nec lectus posuere euismod. Fusce lobortis elit dui. In non pulvinar ligula. Integer augue mauris, condimentum vitae ante sit amet, consectetur scelerisque lectus. Sed dignissim vitae magna et volutpat. Integer vel risus sagittis 18 + 19 + ## 2022-11-11 😐 20 + Vivamus molestie, ipsum id ullamcorper facilisis, velit neque elementum metus, quis lacinia ligula felis et metus. Quisque at condimentum tellus, id venenatis turpis. Integer accumsan metus non mauris vulputate pretium. 21 + 22 + ## 2022-10-29 🍿 23 + vel mollis varius. Aenean non bibendum dui, eget facilisis turpis. Cras eleifend mi vel leo malesuada, ac vestibulum est condimentum. Aenean accumsan felis elit, sed porttitor nulla volutpat nec. In leo purus, condimentum ut augue sed, imperdiet dapibus sapien. Proin id ullamcorper nisi. 24 + 25 + ## 2022-10-27 💢 26 + facilisis sapien, quis faucibus leo urna ut diam. Etiam eu dolor vestibulum, cursus odio at, aliquam nibh. Donec molestie metus non purus facilisis euismod. In interdum luctus libero, in mollis est tincidunt at. Nam congue, nibh nec tempus elementum, nunc sapien placerat felis, id dignissim sapien tellus a libero. Nunc at elementum tortor, eget scelerisque elit. Donec ultricies mi at accumsan semper. Pellentesque vehicula leo sed urna dapibus, quis feugiat arcu auctor.
themes/anemone/screenshot.png

This is a binary file and will not be displayed.

+352
themes/anemone/static/css/style.css
··· 1 + :root, 2 + :root.light { 3 + --bgColor: #EEEEEE; 4 + --fgColor: #41474E; 5 + --metaColor: #D26878; 6 + --headColor: #; 7 + --linkColor: #5690AF; 8 + --hovColor: #22453F; 9 + --bgSelect: #FFFAE1; 10 + --bgUrl: url(https://i.ibb.co/Qpkrw4V/tile-Light.webp) repeat; 11 + --red: #D26878; 12 + --dimRed: #623039; 13 + --orange: #e08f67; 14 + --dimOrange: #926048; 15 + --yellow: #FFFAE1; 16 + --dimYellow: #D5C5A1; 17 + --green: #56AFA0; 18 + --dimGreen: #22453F; 19 + --blue: #5690AF; 20 + --dimBlue: #223844; 21 + --purple: #9271D6; 22 + --dimPurple: #47356C; 23 + --grey: #CBCDCD; 24 + --dimGrey: #646868 25 + } 26 + 27 + :root.dark { 28 + --bgColor: #222529; 29 + --fgColor: #D6D6D6; 30 + --metaColor: #78B6AD; 31 + --headColor: #; 32 + --linkColor: #DBD5BC; 33 + --hovColor: #E2AEA2; 34 + --bgSelect: #464949; 35 + --bgUrl: url(https://i.ibb.co/LzrFBFJ/tileDark.webp) repeat; 36 + --red: #CD909B; 37 + --dimRed: #684249; 38 + --orange: #E2AEA2; 39 + --dimOrange: #704941; 40 + --yellow: #DBD5BC; 41 + --dimYellow: #6F6847; 42 + --green: #78B6AD; 43 + --dimGreen: #3E615C; 44 + --blue: #87C9E5; 45 + --dimBlue: #38494F; 46 + --purple: #CEA7DE; 47 + --dimPurple: #5E406A; 48 + --grey: #CBCDCD; 49 + --dimGrey: #464949 50 + } 51 + 52 + ::-moz-selection { 53 + color: var(--bgColor); 54 + background: var(--metaColor) 55 + } 56 + 57 + ::selection { 58 + color: var(--bgColor); 59 + background: var(--metaColor) 60 + } 61 + 62 + html { 63 + -webkit-box-sizing: border-box; 64 + box-sizing: border-box; 65 + font-size: 62.5%; 66 + scrollbar-color: var(--metaColor) var(--bgColor); 67 + scrollbar-width: thin; 68 + } 69 + 70 + body { 71 + font-family: monospace; 72 + font-size: 1.6rem; 73 + line-height: 1.35; 74 + max-width: 64rem; 75 + margin: auto; 76 + overflow-wrap: break-word; 77 + background: var(--bgColor); 78 + color: var(--fgColor); 79 + } 80 + 81 + h1 { 82 + font-size: 2.4rem; 83 + color: var(--bgColor); 84 + background-color: var(--metaColor); 85 + text-align: center; 86 + text-wrap: balance; 87 + } 88 + 89 + h1::before { 90 + color: var(--bgColor); 91 + content: '# ' 92 + } 93 + 94 + h2::before, 95 + h3::before, 96 + h4::before, 97 + h5::before, 98 + h6::before { 99 + color: var(--metaColor); 100 + content: '# ' 101 + } 102 + 103 + a { 104 + text-decoration: none; 105 + padding: 0 .2rem 0 .2rem; 106 + border-radius: .3rem; 107 + color: var(--linkColor); 108 + } 109 + 110 + a:focus, 111 + a:hover { 112 + background-color: var(--linkColor); 113 + color: var(--bgColor) 114 + } 115 + 116 + ul { 117 + list-style: none; 118 + margin-top: .5rem; 119 + margin-bottom: .5rem; 120 + } 121 + 122 + li { 123 + margin-bottom: .25rem; 124 + } 125 + 126 + ul li::marker { 127 + content: '» '; 128 + color: var(--metaColor) 129 + } 130 + 131 + ul li:hover::marker { 132 + content: '# '; 133 + font-weight: 700; 134 + color: var(--linkColor) 135 + } 136 + 137 + blockquote { 138 + border-left: .5rem solid var(--metaColor); 139 + margin: 1rem; 140 + padding: 0 0 0 1rem 141 + } 142 + 143 + textarea { 144 + border: 2px dotted; 145 + outline: 0; 146 + resize: none; 147 + overflow: auto; 148 + background-color: var(--bgColor) 149 + } 150 + 151 + hr { 152 + border: 1px dashed 153 + } 154 + 155 + img { 156 + max-width: 90%; 157 + height: auto; 158 + margin: .2rem; 159 + padding: .2rem; 160 + border: dashed .2rem var(--metaColor); 161 + border-radius: 15px 162 + } 163 + 164 + pre { 165 + border: 1px solid var(--metaColor); 166 + padding: 1rem; 167 + overflow-x: auto; 168 + font-style: monospace; 169 + white-space: pre-wrap; 170 + word-break: break-word; 171 + } 172 + 173 + p code, 174 + li code, 175 + div code { 176 + padding: 0 .2rem 0 .2rem; 177 + border-radius: .3rem; 178 + color: var(--bgColor); 179 + background-color: var(--fgColor); 180 + } 181 + 182 + pre code { 183 + padding: 0; 184 + border-radius: 0; 185 + color: inherit; 186 + background-color: inherit; 187 + } 188 + 189 + iframe { 190 + max-width: 90%; 191 + } 192 + 193 + table { 194 + table-layout: fixed; 195 + width: 100%; 196 + border-collapse: collapse; 197 + border: none; 198 + margin-left: auto; 199 + margin-right: auto; 200 + margin-bottom: 1rem; 201 + line-height: 1.1 202 + } 203 + 204 + thead th:first-child { 205 + width: 20% 206 + } 207 + 208 + th { 209 + font-weight: 400 210 + } 211 + 212 + td, 213 + th { 214 + padding: .5rem; 215 + border: dashed .1rem var(--metaColor) 216 + } 217 + 218 + footer { 219 + font-size: 1.4rem; 220 + clear: both; 221 + color: var(--footColor) 222 + } 223 + 224 + footer, 225 + td, 226 + th { 227 + text-align: left 228 + } 229 + 230 + .metaData, 231 + .themeButton, 232 + hr, 233 + textarea { 234 + color: var(--metaColor) 235 + } 236 + 237 + /* Site Specific Styling */ 238 + .wrapper { 239 + min-height: 100vh; 240 + min-height: 100svh; 241 + display: grid; 242 + grid-template-rows: auto 1fr auto; 243 + gap: 2rem; 244 + 245 + } 246 + 247 + /* Icons settings */ 248 + .icons { 249 + width: 2.0rem; 250 + height: 2.0rem; 251 + aspect-ratio: 1/1; 252 + display: inline-block; 253 + vertical-align: middle; 254 + color: var(--fgColor); 255 + fill: var(--fgColor); 256 + background-color: transparent; 257 + } 258 + 259 + .icons__background:hover { 260 + background-color: transparent; 261 + color: var(--metaColor); 262 + } 263 + 264 + .navBar { 265 + padding: 1rem 0 0 0; 266 + display: flex; 267 + flex-direction: row; 268 + gap: .4rem; 269 + flex-wrap: wrap; 270 + justify-content: flex-end; 271 + align-items: center; 272 + align-content: flex-end 273 + } 274 + 275 + .themeButton { 276 + cursor: pointer; 277 + border: none; 278 + font-size: 1.8rem; 279 + background-color: transparent 280 + } 281 + 282 + .dark .themeButton.dark, 283 + .themeButton.light { 284 + display: none 285 + } 286 + 287 + .dark .themeButton.light { 288 + display: block 289 + } 290 + 291 + .tagsData { 292 + display: flex; 293 + flex-direction: column; 294 + flex-wrap: wrap; 295 + justify-content: flex-end; 296 + align-items: flex-start; 297 + align-content: flex-end 298 + } 299 + 300 + .titleList li { 301 + margin-bottom: .75rem; 302 + } 303 + 304 + .footnote-definition { 305 + margin: 0 0 0 2rem; 306 + } 307 + 308 + .footnote-definition-label { 309 + color: var(--metaColor); 310 + } 311 + 312 + .footnote-definition p { 313 + display: inline; 314 + padding: 0 0 0 1rem; 315 + } 316 + 317 + .footContainer { 318 + display: flex; 319 + flex-wrap: wrap; 320 + justify-content: space-between; 321 + align-items: center; 322 + } 323 + 324 + .noStyle { 325 + padding: 0; 326 + margin: 0; 327 + border: none; 328 + border-radius: 0 329 + } 330 + 331 + .textCenter { 332 + text-align: center; 333 + } 334 + 335 + .floatRight { 336 + float: right 337 + } 338 + 339 + .floatLeft { 340 + float: left 341 + } 342 + 343 + .webring { 344 + margin: 0.5rem; 345 + } 346 + 347 + /* Add Padding */ 348 + @media (max-width: 650px) { 349 + .wrapper { 350 + margin: 1rem; 351 + } 352 + }
themes/anemone/static/favicon.ico

This is a binary file and will not be displayed.

+21
themes/anemone/static/icons.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg"> 2 + <symbol id="rss" viewBox="0 0 24 24"><rect x="0" y="0" fill="none" stroke="none" /> 3 + <path fill="currentColor" d="M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1Z"/> 4 + </symbol> 5 + 6 + <symbol id="darkMode" viewBox="0 0 24 24"><rect x="0" y="0" fill="none" stroke="none" /> 7 + <path fill="currentColor" d="M12 21q-3.775 0-6.388-2.613T3 12q0-3.45 2.25-5.988T11 3.05q.625-.075.975.45t-.025 1.1q-.425.65-.638 1.375T11.1 7.5q0 2.25 1.575 3.825T16.5 12.9q.775 0 1.538-.225t1.362-.625q.525-.35 1.075-.037t.475.987q-.35 3.45-2.937 5.725T12 21Zm0-2q2.2 0 3.95-1.213t2.55-3.162q-.5.125-1 .2t-1 .075q-3.075 0-5.238-2.163T9.1 7.5q0-.5.075-1t.2-1q-1.95.8-3.163 2.55T5 12q0 2.9 2.05 4.95T12 19Zm-.25-6.75Z"/> 8 + </symbol> 9 + 10 + <symbol id="lightMode" viewBox="0 0 24 24"><rect x="0" y="0" fill="none" stroke="none" /> 11 + <path fill="currentColor" d="M12 15q1.25 0 2.125-.875T15 12q0-1.25-.875-2.125T12 9q-1.25 0-2.125.875T9 12q0 1.25.875 2.125T12 15Zm0 2q-2.075 0-3.538-1.463T7 12q0-2.075 1.463-3.538T12 7q2.075 0 3.538 1.463T17 12q0 2.075-1.463 3.538T12 17ZM2 13q-.425 0-.713-.288T1 12q0-.425.288-.713T2 11h2q.425 0 .713.288T5 12q0 .425-.288.713T4 13H2Zm18 0q-.425 0-.713-.288T19 12q0-.425.288-.713T20 11h2q.425 0 .713.288T23 12q0 .425-.288.713T22 13h-2Zm-8-8q-.425 0-.713-.288T11 4V2q0-.425.288-.713T12 1q.425 0 .713.288T13 2v2q0 .425-.288.713T12 5Zm0 18q-.425 0-.713-.288T11 22v-2q0-.425.288-.713T12 19q.425 0 .713.288T13 20v2q0 .425-.288.713T12 23ZM5.65 7.05L4.575 6q-.3-.275-.288-.7t.288-.725q.3-.3.725-.3t.7.3L7.05 5.65q.275.3.275.7t-.275.7q-.275.3-.687.288T5.65 7.05ZM18 19.425l-1.05-1.075q-.275-.3-.275-.713t.275-.687q.275-.3.688-.287t.712.287L19.425 18q.3.275.288.7t-.288.725q-.3.3-.725.3t-.7-.3ZM16.95 7.05q-.3-.275-.288-.687t.288-.713L18 4.575q.275-.3.7-.288t.725.288q.3.3.3.725t-.3.7L18.35 7.05q-.3.275-.7.275t-.7-.275ZM4.575 19.425q-.3-.3-.3-.725t.3-.7l1.075-1.05q.3-.275.712-.275t.688.275q.3.275.288.688t-.288.712L6 19.425q-.275.3-.7.288t-.725-.288ZM12 12Z"/> 12 + </symbol> 13 + 14 + <symbol id="chevronLeft" viewBox="0 0 24 24"><rect x="0" y="0" fill="none" stroke="none" /> 15 + <path fill="currentColor" d="M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42Z"/> 16 + </symbol> 17 + 18 + <symbol id="chevronRight" viewBox="0 0 24 24"><rect x="0" y="0" fill="none" stroke="none" /> 19 + <path fill="currentColor" d="M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42Z"/> 20 + </symbol> 21 + </svg>
+21
themes/anemone/static/js/script.js
··· 1 + const setTheme = (theme) => { 2 + document.documentElement.className = theme; 3 + localStorage.setItem('theme', theme); 4 + } 5 + 6 + const hasCodeRun = localStorage.getItem('hasCodeRun'); 7 + 8 + if (!hasCodeRun) { 9 + const defaultTheme = "{{ config.extra.default_theme }}"; 10 + setTheme(defaultTheme); 11 + localStorage.setItem('hasCodeRun', 'true'); 12 + } 13 + 14 + const getTheme = () => { 15 + const theme = localStorage.getItem('theme'); 16 + if (theme) { 17 + setTheme(theme); 18 + } 19 + } 20 + 21 + getTheme();
+20
themes/anemone/templates/base.html
··· 1 + <!DOCTYPE html> 2 + <html lang="{% if page %}{{ page.lang }}{% else %}{{ config.default_language }}{% endif %}"> 3 + <head> 4 + {% include "head.html" %} 5 + </head> 6 + <body> 7 + <div class="wrapper"> 8 + <header> 9 + {% include "header.html" %} 10 + </header> 11 + <main> 12 + {% block content %} 13 + {% endblock content %} 14 + </main> 15 + <footer> 16 + {% include "footer.html" %} 17 + </footer> 18 + </div> 19 + </body> 20 + </html>
+47
themes/anemone/templates/blog-page.html
··· 1 + {% extends "base.html" %} 2 + 3 + {% block content %} 4 + <div><a href="..">..</a>/<span class="metaData">{{ page.slug }}</span></div> 5 + <time datetime="{{ page.date }}">Published on: <span class="metaData">{{ page.date }}</span></time> 6 + {% if config.extra.author and config.extra.display_author == true %} 7 + <address rel="author">By <span class="metaData">{{config.extra.author}}</span></address> 8 + {% endif %} 9 + <h1>{{ page.title }}</h1> 10 + 11 + {% if page.toc and page.extra.toc %} 12 + <h2>Table of contents</h2> 13 + <ul> 14 + {% for h1 in page.toc %} 15 + <li> 16 + <a href="{{ h1.permalink | safe }}">{{ h1.title }}</a> 17 + {% if h1.children %} 18 + <ul> 19 + {% for h2 in h1.children %} 20 + <li> 21 + <a href="{{ h2.permalink | safe }}">{{ h2.title }}</a> 22 + <ul> 23 + {% for h3 in h2.children %} 24 + <li> 25 + <a href="{{ h3.permalink | safe }}">{{ h3.title }}</a> 26 + </li> 27 + {% endfor %} 28 + </ul> 29 + </li> 30 + {% endfor %} 31 + </ul> 32 + {% endif %} 33 + </li> 34 + {% endfor %} 35 + </ul> 36 + {% endif %} 37 + 38 + {{ page.content | safe }} 39 + 40 + <p class="tagsData"> 41 + {% if page.taxonomies.tags %} 42 + {% for tag in page.taxonomies.tags %} 43 + <a href="/tags/{{ tag | slugify }}">&#47;{{ tag }}&#47;</a> 44 + {% endfor %} 45 + {% endif %} 46 + </p> 47 + {% endblock content %}
+13
themes/anemone/templates/footer.html
··· 1 + <!-- <hr> --> 2 + <div class=footContainer> 3 + <!-- <div class="footLeft"> 4 + <p>Licensed under <a target="_blank" rel="noopener noreferrer" href="https://fr.wikipedia.org/wiki/Licence_MIT">MIT</a><br> 5 + Built with <a target="_blank" rel="noopener noreferrer" href="https://www.getzola.org">Zola</a> using <a target="_blank" rel="noopener noreferrer" href="https://github.com/Speyll/anemone">anemone</a> theme &amp; <a target="_blank" rel="noopener noreferrer" href="https://github.com/Speyll/veqev">veqev</a> colors.<br> 6 + </p> --> 7 + </div> 8 + {% if config.generate_feed %} 9 + <div class="footRight"> 10 + <a class="icons__background" target="_blank" rel="noopener noreferrer" href="{{ get_url(path="atom.xml", trailing_slash=false) }}" title="Subscribe via RSS for updates."><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#rss', trailing_slash=false) | safe }}"></use></svg></a> 11 + </div> 12 + {% endif %} 13 + </div>
+96
themes/anemone/templates/head.html
··· 1 + <meta charset="UTF-8"> 2 + <meta content="IE=edge" http-equiv="X-UA-Compatible"/> 3 + <meta content="text/html; charset=UTF-8" http-equiv="content-type"/> 4 + <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /> 5 + <meta name="robots" content="index, follow"> 6 + {% if page.title %} 7 + {% set title = page.title %} 8 + {% elif section.title %} 9 + {% set title = section.title %} 10 + {% elif config.title %} 11 + {% set title = config.title %} 12 + {% endif %} 13 + {% if page.extra.author %} 14 + {% set author = page.extra.author %} 15 + {% elif section.extra.author %} 16 + {% set author = section.extra.author %} 17 + {% elif config.extra.author %} 18 + {% set author = config.extra.author %} 19 + {% endif %} 20 + {% if page.description %} 21 + {% set description = page.description | truncate(length=150) %} 22 + {% elif section.description %} 23 + {% set description = section.description | truncate(length=150) %} 24 + {% elif config.description %} 25 + {% set description = config.description | truncate(length=150) %} 26 + {% endif %} 27 + {% if page.extra.image %} 28 + {% set image = get_url(path=page.extra.image, trailing_slash=false) %} 29 + {% elif section.extra.image %} 30 + {% set image = get_url(path=section.extra.image, trailing_slash=false) %} 31 + {% elif config.extra.favicon %} 32 + {% set image = get_url(path=config.extra.favicon, trailing_slash=false) %} 33 + {% endif %} 34 + {% if page.permalink %} 35 + {% set url = page.permalink %} 36 + {% elif section.permalink %} 37 + {% set url = section.permalink %} 38 + {% elif config.base_url %} 39 + {% set url = config.base_url %} 40 + {% endif %} 41 + {% if title %} 42 + <title>{{ title }}</title> 43 + {% endif %} 44 + {% block metatags %} 45 + {% if title %} 46 + <meta name="title" content="{{ title }}"> 47 + {% endif %} 48 + {% if author %} 49 + <meta name="author" content="{{ author }}"> 50 + {% endif %} 51 + {% if description %} 52 + <meta name="description" content="{{ description }}"> 53 + {% endif %} 54 + <meta property="og:type" content="website"> 55 + <meta property="og:url" content="{{ url | safe }}"> 56 + {% if title %} 57 + <meta property="og:site_name" content="{{ config.title }}"> 58 + {% endif %} 59 + {% if title %} 60 + <meta property="og:title" content="{{ title }}"> 61 + {% endif %} 62 + {% if description %} 63 + <meta property="og:description" content="{{ description }}"> 64 + {% endif %} 65 + {% if image %} 66 + <meta property="og:image" content="{{ image }}"> 67 + {% endif %} 68 + {% set twitter_card = config.extra.twitter_card | default(value=true) %} 69 + {% if twitter_card != false %} 70 + <meta property="twitter:card" content="summary_large_image"> 71 + <meta property="twitter:url" content="{{ url | safe }}"> 72 + {% if title %} 73 + <meta property="twitter:title" content="{{ title }}"> 74 + {% endif %} 75 + {% if description %} 76 + <meta property="twitter:description" content="{{ description }}"> 77 + {% endif %} 78 + {% if image %} 79 + <meta property="twitter:image" content="{{ image }}"> 80 + {% endif %} 81 + {% endif %} 82 + <link rel="canonical" href="{{ url | safe }}"> 83 + {% if image %} 84 + <link rel="shortcut icon" type="image/x-icon" href="{{ get_url(path=config.extra.favicon, trailing_slash=false) }}"> 85 + {% endif %} 86 + {% endblock metatags %} 87 + {% if config.generate_feed %} 88 + {% block feed %} 89 + <link rel="alternate" type="application/atom+xml" title="RSS" href="{{ get_url(path="atom.xml", trailing_slash=false) }}"> 90 + {% endblock feed %} 91 + {% endif %} 92 + {% block css %} 93 + <link rel="stylesheet" href="{{ get_url(path='css/style.css', trailing_slash=false) | safe }}"/> 94 + {% endblock css %} 95 + <script src="{{ get_url(path='js/script.js', trailing_slash=false) | safe }}" defer></script> 96 +
+31
themes/anemone/templates/header.html
··· 1 + {% set current_lang = config.default_language %} 2 + {% if page %} 3 + {% set current_lang = page.lang %} 4 + {% elif section %} 5 + {% set current_lang = section.lang %} 6 + {% endif %} 7 + {% if config.extra.header_nav %} 8 + <nav class="navBar"> 9 + {% for nav_item in config.extra.header_nav %} 10 + <a href="{{ nav_item.url }}" class="{% if nav_item.url == current_url %}active{% endif %}"> 11 + {% set language_key = 'name_' ~ current_lang %} 12 + {{ nav_item[language_key] }} 13 + </a> 14 + {% endfor %} 15 + 16 + <div class="themeSwitch"> 17 + {% if not config.extra.default_theme %} 18 + <button class="themeButton light" onclick="setTheme('light')" title="Light mode"><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#lightMode', trailing_slash=false) | safe }}"></use></svg></button> 19 + <button class="themeButton dark" onclick="setTheme('dark')" title="Dark mode"><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#darkMode', trailing_slash=false) | safe }}"></use></svg></button> 20 + 21 + {% elif config.extra.default_theme and config.extra.default_theme == "light" %} 22 + <button class="themeButton light" onclick="setTheme('light')" title="Light mode"><svg class="icons icons__background"> <use href="{{ get_url(path='icons.svg#lightMode', trailing_slash=false) | safe }}"></use></svg></button> 23 + <button class="themeButton dark" onclick="setTheme('dark')" title="Dark mode"><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#darkMode', trailing_slash=false) | safe }}"></use></svg></button> 24 + 25 + {% elif config.extra.default_theme and config.extra.default_theme == "dark" %} 26 + <button class="themeButton dark" onclick="setTheme('dark')" title="Dark mode"><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#darkMode', trailing_slash=false) | safe }}"></use></svg></button> 27 + <button class="themeButton light" onclick="setTheme('light')" title="Light mode"><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#lightMode', trailing_slash=false) | safe }}"></use></svg></button> 28 + {% endif %} 29 + </div> 30 + </nav> 31 + {% endif %}
+29
themes/anemone/templates/index.html
··· 1 + {% extends "base.html" %} 2 + 3 + {% block content %} 4 + {{ section.content | safe }} 5 + 6 + {% if config.extra.list_pages %} 7 + 8 + {% if paginator %} 9 + {% set pages = paginator.pages %} 10 + {% else %} 11 + {% set pages = section.pages %} 12 + {% endif %} 13 + 14 + <ul class="titleList"> 15 + {% for page in pages %} 16 + <li> 17 + <a href="{{ page.permalink | safe }}">{{ page.title }}</a> 18 + <br /> 19 + {{ page.description }} 20 + </li> 21 + {% endfor %} 22 + </ul> 23 + 24 + {% if paginator %} 25 + <div class="metaData">{% if paginator.previous %}<a href="{{ paginator.first }}">⥶</a> &nbsp <a href="{{ paginator.previous }}"><</a>{% endif %} &nbsp {{ paginator.current_index }} / {{ paginator.number_pagers }} &nbsp {% if paginator.next %}<a href="{{ paginator.next }}">></a> &nbsp <a href="{{ paginator.last }}">⥸</a>{% endif %}</div> 26 + {% endif %} 27 + 28 + {% endif %} 29 + {% endblock content %}
+42
themes/anemone/templates/page.html
··· 1 + {% extends "base.html" %} 2 + 3 + {% block content %} 4 + <h1>{{ page.title }}</h1> 5 + 6 + {% if page.toc and page.extra.toc %} 7 + <h2>Table of contents</h2> 8 + <ul> 9 + {% for h1 in page.toc %} 10 + <li> 11 + <a href="{{ h1.permalink | safe }}">{{ h1.title }}</a> 12 + {% if h1.children %} 13 + <ul> 14 + {% for h2 in h1.children %} 15 + <li> 16 + <a href="{{ h2.permalink | safe }}">{{ h2.title }}</a> 17 + <ul> 18 + {% for h3 in h2.children %} 19 + <li> 20 + <a href="{{ h3.permalink | safe }}">{{ h3.title }}</a> 21 + </li> 22 + {% endfor %} 23 + </ul> 24 + </li> 25 + {% endfor %} 26 + </ul> 27 + {% endif %} 28 + </li> 29 + {% endfor %} 30 + </ul> 31 + {% endif %} 32 + 33 + {{ page.content | safe }} 34 + 35 + <p class="tagsData"> 36 + {% if page.taxonomies.tags %} 37 + {% for tag in page.taxonomies.tags %} 38 + <a href="/tags/{{ tag | slugify }}">&#47;{{ tag }}&#47;</a> 39 + {% endfor %} 40 + {% endif %} 41 + </p> 42 + {% endblock content %}
+25
themes/anemone/templates/section.html
··· 1 + {% extends "base.html" %} 2 + 3 + {% block content %} 4 + <h1>{{ section.title }}</h1> 5 + 6 + {{ section.content | safe }} 7 + 8 + {% if paginator %} 9 + {% set pages = paginator.pages %} 10 + {% else %} 11 + {% set pages = section.pages %} 12 + {% endif %} 13 + 14 + <ul class="titleList"> 15 + {% for page in pages %} 16 + <li> 17 + <a href="{{ page.permalink | safe }}">{{ page.title }}</a> 18 + </li> 19 + {% endfor %} 20 + </ul> 21 + 22 + {% if paginator %} 23 + <div class="metaData">{% if paginator.previous %}<a href="{{ paginator.first }}">⥶</a> &nbsp <a href="{{ paginator.previous }}"><</a>{% endif %} &nbsp {{ paginator.current_index }} / {{ paginator.number_pagers }} &nbsp {% if paginator.next %}<a href="{{ paginator.next }}">></a> &nbsp <a href="{{ paginator.last }}">⥸</a>{% endif %}</div> 24 + {% endif %} 25 + {% endblock content %}
+4
themes/anemone/templates/shortcodes/img.html
··· 1 + <div {% if class %}class="{{class}}"{% endif %}> 2 + <img src="{{id}}" {% if alt %}alt="{{alt}}"{% endif %}> 3 + {% if caption %}<div class="caption">{{caption}}</div>{% endif %} 4 + </div>
+1
themes/anemone/templates/shortcodes/metaData.html
··· 1 + <span class="metaData">{{content}}</span>
+4
themes/anemone/templates/shortcodes/webring.html
··· 1 + <span class="webring"> 2 + <a class="icons__background" href={{prev}}><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#chevronLeft', trailing_slash=false) | safe }}"></use></svg></a> 3 + <a href={{webring}}>{{webringName}}</a> 4 + <a class="icons__background" href={{next}}><svg class="icons icons__background"><use href="{{ get_url(path='icons.svg#chevronRight', trailing_slash=false) | safe }}"></use></svg></a></span>
+9
themes/anemone/templates/shortcodes/youtube.html
··· 1 + <div {% if class %}class="{{class}}"{% endif %}> 2 + <iframe 3 + src="https://www.youtube-nocookie.com/embed/{{id}}{% if autoplay %}?autoplay=1{% endif %}" 4 + allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 5 + webkitallowfullscreen 6 + mozallowfullscreen 7 + allowfullscreen> 8 + </iframe> 9 + </div>
+10
themes/anemone/templates/tags/list.html
··· 1 + {% extends "base.html" %} 2 + 3 + {% block content %} 4 + <h1>{{ taxonomy.name }}</h1> 5 + <p> 6 + {% for term in terms %} 7 + <a href="{{ term.permalink | safe }}">#{{ term.name }}</a>[{{ term.pages | length }}] 8 + {% endfor %} 9 + </p> 10 + {% endblock content %}
+20
themes/anemone/templates/tags/single.html
··· 1 + {% extends "base.html" %} 2 + 3 + {% block content %} 4 + <h1>{{ term.name }}</h1> 5 + {% if paginator %} 6 + {% set pages = paginator.pages %} 7 + {% else %} 8 + {% set pages = term.pages %} 9 + {% endif %} 10 + <ul> 11 + {% for page in pages %} 12 + <li> 13 + <a href="{{ page.permalink | safe }}">{% if page.date %}{{ page.date }} - {% endif %}{{ page.title }}</a> 14 + </li> 15 + {% endfor %} 16 + </ul> 17 + {% if paginator %} 18 + <p>{% if paginator.previous %}<a href="{{ paginator.first }}">&lt;&lt; First</a> <a href="{{ paginator.previous }}">&lt; Previous</a>{% endif %} [{{ paginator.current_index }}/{{ paginator.number_pagers }}] {% if paginator.next %}<a href="{{ paginator.next }}">Next &gt;</a> <a href="{{ paginator.last }}">Last &gt;&gt;</a>{% endif %}</p> 19 + {% endif %} 20 + {% endblock content %}
+13
themes/anemone/theme.toml
··· 1 + name = "anemone" 2 + description = "A minimalist Zola theme that prioritizes clean CSS and avoids heavy JavaScript. Enjoy a seamless user experience with lightning-fast load times. Let your content take center stage in a clutter-free, elegant design that enhances readability. Responsive and efficient, anemone brings focus to your ideas." 3 + license = "MIT" 4 + homepage = "https://github.com/Speyll/anemone" 5 + min_version = "0.4.0" 6 + demo = "https://anemone.pages.dev" 7 + 8 + [extra] 9 + 10 + 11 + [author] 12 + name = "Speyll" 13 + homepage = "https://speyllsite.pages.dev/"