diff --git a/docs/content/themes/Ergo/index.md b/docs/content/themes/Ergo/index.md index 83dbed2ae9..066bb1bb69 100644 --- a/docs/content/themes/Ergo/index.md +++ b/docs/content/themes/Ergo/index.md @@ -3,14 +3,14 @@ title = "Ergo" description = "A simple blog Theme focused on writing, inspired by svbtle" template = "theme.html" -date = 2023-07-14T17:59:06+01:00 +date = 2025-03-17T15:01:15Z [taxonomies] theme-tags = [] [extra] -created = 2023-07-14T17:59:06+01:00 -updated = 2023-07-14T17:59:06+01:00 +created = 2025-03-17T15:01:15Z +updated = 2025-03-17T15:01:15Z repository = "https://github.com/insipx/Ergo.git" homepage = "https://github.com/insipx/Ergo" minimum_version = "0.4.1" diff --git a/docs/content/themes/abridge/index.md b/docs/content/themes/abridge/index.md index 4ca472f82c..6dff0c188a 100644 --- a/docs/content/themes/abridge/index.md +++ b/docs/content/themes/abridge/index.md @@ -3,14 +3,14 @@ title = "abridge" description = "A fast and lightweight Zola theme using semantic html, a class-light abridge.css, and No mandatory JS." template = "theme.html" -date = 2025-02-02T21:30:23-08:00 +date = 2025-04-06T01:01:44Z [taxonomies] theme-tags = [] [extra] -created = 2025-02-02T21:30:23-08:00 -updated = 2025-02-02T21:30:23-08:00 +created = 2025-04-06T01:01:44Z +updated = 2025-04-06T01:01:44Z repository = "https://github.com/Jieiku/abridge.git" homepage = "https://github.com/jieiku/abridge" minimum_version = "0.19.1" @@ -33,7 +33,7 @@ A fast, lightweight, and modern [Zola](https://getzola.org) theme utilizing [abr Maintenance of this project is made possible by all the contributors and sponsors. If you'd like to sponsor this project and have your avatar or company logo appear below click here. 💖 -User avatar: User avatar: Samuel Henrique +User avatar: User avatar: Samuel HenriqueUser avatar: Bensuperpc --- diff --git a/docs/content/themes/apollo/index.md b/docs/content/themes/apollo/index.md index 9e7633bfa7..05cb1d9beb 100644 --- a/docs/content/themes/apollo/index.md +++ b/docs/content/themes/apollo/index.md @@ -3,14 +3,14 @@ title = "apollo" description = "Modern and minimalistic blog theme" template = "theme.html" -date = 2025-02-18T18:52:04+01:00 +date = 2025-04-03T18:13:10+02:00 [taxonomies] theme-tags = [] [extra] -created = 2025-02-18T18:52:04+01:00 -updated = 2025-02-18T18:52:04+01:00 +created = 2025-04-03T18:13:10+02:00 +updated = 2025-04-03T18:13:10+02:00 repository = "https://github.com/not-matthias/apollo.git" homepage = "https://github.com/not-matthias/apollo" minimum_version = "0.14.0" @@ -31,21 +31,23 @@ Modern and minimalistic blog theme powered by [Zola](https://getzola.org). See a
Dark theme - ![blog-dark](./screenshot-dark.png) +![blog-dark](./screenshot-dark.png) +
Light theme ![blog-light](./screenshot.png) +
## Features -- [X] Pagination -- [X] Themes (light, dark, auto) -- [X] Projects page -- [X] Analytics using [GoatCounter](https://www.goatcounter.com/) / [Umami](https://umami.is/) +- [x] Pagination +- [x] Themes (light, dark, auto) +- [x] Projects page +- [x] Analytics using [GoatCounter](https://www.goatcounter.com/) / [Umami](https://umami.is/) - [x] Social Links - [x] MathJax Rendering - [x] Taxonomies @@ -57,6 +59,7 @@ Modern and minimalistic blog theme powered by [Zola](https://getzola.org). See a ## Installation 1. Download the theme + ``` git submodule add https://github.com/not-matthias/apollo themes/apollo ``` diff --git a/docs/content/themes/daisy/index.md b/docs/content/themes/daisy/index.md new file mode 100644 index 0000000000..a8db351855 --- /dev/null +++ b/docs/content/themes/daisy/index.md @@ -0,0 +1,217 @@ + ++++ +title = "Daisy" +description = "Beautiful and fast responsive theme based on TailwindCSS and DaisyUI." +template = "theme.html" +date = 2025-04-06T13:02:47+02:00 + +[taxonomies] +theme-tags = ['multilingual', 'responsive', 'search'] + +[extra] +created = 2025-04-06T13:02:47+02:00 +updated = 2025-04-06T13:02:47+02:00 +repository = "https://codeberg.org/winterstein/zola-theme-daisy.git" +homepage = "https://codeberg.org/winterstein/zola-theme-daisy" +minimum_version = "0.9.0" +license = "MIT" +demo = "https://zola-daisy.winterstein.biz" + +[extra.author] +name = "Adrian Winterstein" +homepage = "https://www.winterstein.biz" ++++ + +# Daisy Theme + +> You can find this theme on [Codeberg](https://codeberg.org/winterstein/zola-theme-daisy) and [Github](https://github.com/awinterstein/zola-theme-daisy). + +A beautiful and fast [Zola](https://www.getzola.org/) theme build on [TailwindCSS](https://tailwindcss.com) and [DaisyUI](https://daisyui.com) with 37 different color schemes included. See an example of the *autumn* colors here: + +![Screenshot](https://codeberg.org/awinterstein/zola-theme-daisy/raw/branch/main/screenshot.png) + +The theme is responsive and works very well on mobile devices: + +Mobile Screenshot + +## Features + +* Responsive design (looks good on desktop and mobile) +* Automatically selected dark / light modes +* 37 color schemes included +* Customizable navbar and footer (with social links) +* Can be used with any Zola taxonomies (e.g., tags, categories) +* Search functionality +* Multi-language support +* Pagination +* Customizable favicon +* Error 404 page + +### Styling + +The Daisy theme supports all [built-in color themes of DaisyUI](https://daisyui.com/docs/themes/#enable-a-built-in-theme) plus a light and dark color scheme that I created for my own website. The color themes can optionally even be switched at runtime. + +![DaisyUI Color Themes](https://codeberg.org/winterstein/zola-theme-daisy/raw/branch/main/daisyui-themes.png) + +## Quick Start + +The installation of the theme works the same as for other Zola themes. As it is described in the [official documentation](https://www.getzola.org/documentation/themes/installing-and-using-themes/). Hence, it fist needs to be added as a git submodule: + +```bash +cd my-zola-website +git submodule add -b main \ + https://codeberg.org/winterstein/zola-theme-daisy.git \ + themes/daisy +``` + +Please make sure to add it at the path `themes/daisy` in your Zola directory. The translations and the icons won't work if added to a different directory. + +As the second step, it can be enabled then in the `config.toml` file of your website: + +```toml +theme = "daisy" +``` + +For starting to create a new Zola website using this theme, the you can also just checkout / fork the [example repository](https://codeberg.org/winterstein/zola-theme-daisy-example) and adapt it to your needs. That repository already contains a structure and configuration for the Zola-based website. + +## Configuration + +See the following sections for information on the possible configurations for the theme in the your `config.toml` file. + +### Color Schemes + +Set a light and dark color scheme: + +```toml +daisyui_theme_light = "light" +daisyui_theme_dark = "dark" +``` + +See the `themes` list in the [`theme.toml`](theme.toml) for all possible identifiers. You can also set only a light or a dark color scheme, if you do not want the automatic dark mode switching based on the browser settings of your visitors. + +If you want to allow your visitors to change the used color scheme, just set the following variable in the `[extra]` section of your `config.toml`: + +```toml +[extra] +enable_theme_switching = true +``` + +There will be a dropdown in the navbar then, for the visitors to select form the color schemes. + +### Languages + +To enable support for multiple languages, simply set the default language and add language settings for all your additional languages: + +```toml +default_language = "en" + +[languages.de] +# title and description in the additional language +title = "Daisy Theme" +description = "Beispiel- und Demoseite des Daisy-Themas für Zola." + +# don't forget to enable features like search or feed +# generation for the additional language as well +build_search_index = true +generate_feeds = true + +# also any taxonomies of your default language need to +# be defined for the additional language as well +taxonomies = [ + { name = "tags", paginate_by = 2, feed = true }, + { name = "directors", paginate_by = 2, feed = true }, +] +``` + +Taxonomies should have exactly the same (not translated) name in all languages, for the language switching to work best. + +You need to create an i18n file containing the translations for all theme variables for all the languages of your website, if they are not included in the theme. Right now, only [English](i18n/en.toml) and [German](i18n/de.toml) are included. You can create a the directory `i18n` in your website root directory and the language files in there will be picked up by the theme. It would be great, however, I you create a [pull-request](https://codeberg.org/winterstein/zola-theme-daisy/pulls) on the theme repository to add your translations to the theme. + +### Search + +Integrating a search into your website is as easy as adding the following to your configuration: + +```toml +# enable it globally for the default language +build_search_index = true + +[search] +# only this format is supported by the theme +index_format = "elasticlunr_json" + +# you need to enable search at all your language sections as well +[languages.de] +build_search_index = true +``` + +As soon as `build_search_index` is enabled, the search indices are created for all languages that have this variable enabled in their section in the `config.toml` and the search bar is shown in the navbar of the website. + +Just be aware, that you need to add a [Lunr Languages](https://github.com/MihaiValentin/lunr-languages) file to your `static` directory, if you ae using other languages than English and German. See the corresponding repository for the [`min` files](https://github.com/MihaiValentin/lunr-languages/tree/master/min). Feel free to add support for your languages to the theme as well, via a [pull-request](https://codeberg.org/winterstein/zola-theme-daisy/pulls). + +### Navbar + +Arbitrary links can be added to the footer by defining the following list in the `[extra.navbar]` section: + +```toml +[extra.navbar] +links = [ + { url = "blog", i18n_key = "posts" }, + { url = "tags", i18n_key = "tags" }, + { url = "movies", i18n_key = "movies" }, +] +``` + +The value of the `i18n_key` must be in the `i18n` files for your languages (see [en.toml](i18n/en.toml), for example). + +### Footer + +All three parts of the footer can be adapted: the links, the social icons, and the copyright notice. + +#### Links + +Arbitrary links can be added to the footer by defining the following list in the `[extra.footer]` section: + +```toml +[extra.footer] +links = [ + { url = "about", i18n_key = "about" }, + { url = "sitemap.xml", i18n_key = "sitemap", no_translation = true }, +] +``` + +The value of the `i18n_key` must be in the `i18n` files for your languages (see [en.toml](i18n/en.toml), for example). If the parameter `no_translation` is set to true, than the URL is not adapted to contain the current language code. This is needed for external links or something like the `sitemap.xml` in the example, that is not translated within your website. + +#### Social Icons + +The social icons in the footer can be adapted by setting any of the following variables: + +```toml +[extra.social] +codeberg = "" +github = "" +gitlab = "" +stackoverflow = "" +mastodon = "" +linkedin = "" +instagram = "" +youtube = "" +signal = "" +telegram = "" +email = "" +phone = "" +``` + +For every non-empty variable, the corresponding icon is shown in the footer. + +#### Copyright Notice + +The copyright notice in the footer can be set by adding the following variable in the configuration: + +```toml +[extra.footer] +notice = "This is my copyright notice." +``` + +HTML can be used there. + + \ No newline at end of file diff --git a/docs/content/themes/daisy/screenshot.png b/docs/content/themes/daisy/screenshot.png new file mode 100644 index 0000000000..7d8fa66c02 Binary files /dev/null and b/docs/content/themes/daisy/screenshot.png differ diff --git a/docs/content/themes/duckquill/index.md b/docs/content/themes/duckquill/index.md index 2053405523..84c6426645 100644 --- a/docs/content/themes/duckquill/index.md +++ b/docs/content/themes/duckquill/index.md @@ -3,14 +3,14 @@ title = "Duckquill" description = "Modern, pretty, and clean theme" template = "theme.html" -date = 2025-01-14T12:22:27Z +date = 2025-03-30T08:12:44+03:00 [taxonomies] theme-tags = [] [extra] -created = 2025-01-14T12:22:27Z -updated = 2025-01-14T12:22:27Z +created = 2025-03-30T08:12:44+03:00 +updated = 2025-03-30T08:12:44+03:00 repository = "https://codeberg.org/daudix/duckquill.git" homepage = "https://codeberg.org/daudix/duckquill" minimum_version = "0.19.0" diff --git a/docs/content/themes/halve-z/index.md b/docs/content/themes/halve-z/index.md index 76dbfc715a..70a5658427 100644 --- a/docs/content/themes/halve-z/index.md +++ b/docs/content/themes/halve-z/index.md @@ -3,14 +3,14 @@ title = "halve-z" description = "Retro two-column theme" template = "theme.html" -date = 2025-03-09T18:53:31-04:00 +date = 2025-04-06T19:25:28-04:00 [taxonomies] theme-tags = [] [extra] -created = 2025-03-09T18:53:31-04:00 -updated = 2025-03-09T18:53:31-04:00 +created = 2025-04-06T19:25:28-04:00 +updated = 2025-04-06T19:25:28-04:00 repository = "https://github.com/charlesrocket/halve-z.git" homepage = "https://github.com/charlesrocket/halvez" minimum_version = "0.19.2" diff --git a/docs/content/themes/hermit/index.md b/docs/content/themes/hermit/index.md index e113873224..91f86cd880 100644 --- a/docs/content/themes/hermit/index.md +++ b/docs/content/themes/hermit/index.md @@ -3,14 +3,14 @@ title = "Hermit_Zola" description = "Minimal Zola theme" template = "theme.html" -date = 2024-09-30T14:13:56+02:00 +date = 2025-04-06T11:23:44+02:00 [taxonomies] theme-tags = [] [extra] -created = 2024-09-30T14:13:56+02:00 -updated = 2024-09-30T14:13:56+02:00 +created = 2025-04-06T11:23:44+02:00 +updated = 2025-04-06T11:23:44+02:00 repository = "https://github.com/VersBinarii/hermit_zola.git" homepage = "https://github.com/VersBinarii/hermit_zola" minimum_version = "0.4.0" diff --git a/docs/content/themes/homepage-creators/index.md b/docs/content/themes/homepage-creators/index.md index 02c37985e0..b68e24d5fb 100644 --- a/docs/content/themes/homepage-creators/index.md +++ b/docs/content/themes/homepage-creators/index.md @@ -3,14 +3,14 @@ title = "homepage-creators" description = "A fast and beautiful personal homepage for creators, used by https://jiaxiang.wang, a port of HeoWeb." template = "theme.html" -date = 2025-03-14T12:19:40+08:00 +date = 2025-03-27T00:49:13+08:00 [taxonomies] theme-tags = [] [extra] -created = 2025-03-14T12:19:40+08:00 -updated = 2025-03-14T12:19:40+08:00 +created = 2025-03-27T00:49:13+08:00 +updated = 2025-03-27T00:49:13+08:00 repository = "https://github.com/iWangJiaxiang/Homepage-Creators.git" homepage = "https://github.com/iWangJiaxiang/homepage-for-creators" minimum_version = "0.19.2" diff --git a/docs/content/themes/linkita/index.md b/docs/content/themes/linkita/index.md index 5ed9877b94..5ad7eb07a3 100644 --- a/docs/content/themes/linkita/index.md +++ b/docs/content/themes/linkita/index.md @@ -3,14 +3,14 @@ title = "Linkita" description = "A clean and elegant blog theme for Zola. Linkita is based on Kita and Hugo-Paper and is multilingual and SEO friendly." template = "theme.html" -date = 2025-03-15T13:10:54+02:00 +date = 2025-04-05T22:42:22+03:00 [taxonomies] theme-tags = ['Blog', 'Multilingual', 'Responsive', 'SEO', 'Search'] [extra] -created = 2025-03-15T13:10:54+02:00 -updated = 2025-03-15T13:10:54+02:00 +created = 2025-04-05T22:42:22+03:00 +updated = 2025-04-05T22:42:22+03:00 repository = "https://codeberg.org/salif/linkita.git" homepage = "https://codeberg.org/salif/linkita" minimum_version = "0.19.0" @@ -61,6 +61,7 @@ A clean and elegant blog theme for [Zola](https://www.getzola.org/). Linkita is - Improved search engine optimization - Improved configurability - Author profiles +- Projects shortcode - Keyboard shortcuts ## Installing @@ -71,7 +72,7 @@ A clean and elegant blog theme for [Zola](https://www.getzola.org/). Linkita is git submodule add https://codeberg.org/salif/linkita.git themes/linkita ``` -Alternatively, clone the repository: `git clone https://codeberg.org/salif/linkita.git themes/linkita`. +Alternatively, clone the repository: `git clone https://codeberg.org/salif/linkita.git themes/linkita` 2. Set `linkita` as your theme in your `config.toml` file. @@ -87,13 +88,6 @@ To update the theme, run: git submodule update --remote themes/linkita ``` -Optionally, switch from the `linkita` branch to the latest stable version: - -```sh -cd themes/linkita -git checkout $(git describe --tags $(git rev-list --tags --max-count=1)) -``` - Check the [changelog](https://codeberg.org/salif/linkita/src/branch/linkita/CHANGELOG.md) for all versions after the one you are using; there may be breaking changes that require manual involvement. @@ -108,19 +102,27 @@ Set the ones you need. +++ title = "" description = "" -# date = -# updated = +# The date of the post +date = 2025-12-30 +# The last updated date of the post +updated = 2025-12-31 + [taxonomies] categories = [] tags = [] -authors = [] + [extra] -# comment = true -# math = true -# mermaid = true +# Enable comments +comment = false +# Enable KaTeX support +math = false +# Enable Mermaid support +mermaid = false [extra.cover] -# image = "" -# alt = "" +# Path to the cover image +image = "" +# A description of the cover image +alt = "" +++ ``` @@ -131,11 +133,10 @@ authors = [] title: "" description: "" date: -# updated: +updated: taxonomies: categories: tags: - authors: extra: comment: false math: false @@ -146,74 +147,76 @@ extra: --- ``` -### Extra frontmatter variables +### Other extra frontmatter variables ```toml ,name=frontmatter [extra] -# page_info = [] +# See `config.extra.page_info`. +# (type: array of strings; default value: config.extra.page_info;) +page_info = [] +# See `config.extra.page_summary_on_paginator`. +# (type: boolean; default value: config.extra.page_summary_on_paginator;) +page_summary_on_paginator = true +# See `config.extra.toc`. +# (type: boolean or object; default value: config.extra.toc;) +toc = true [extra.cover] # Width of the cover image in pixels. -# (type: number; default value: uses `get_image_metadata()`;) -# width = +# (type: number; default value: uses `get_image_metadata()`;) +width = # Height of the cover image in pixels. -# (type: number; default value: uses `get_image_metadata()`;) -# height = -``` - -### Open Graph frontmatter variables +# (type: number; default value: uses `get_image_metadata()`;) +height = -```toml ,name=frontmatter +# Open Graph frontmatter variables [extra.open_graph] # When the article is out of date after. e.g. `2024-02-29`. -# (type: datetime; no default value;) +# (type: datetime; no default value;) expiration_time = # Describes the tier status for an article. e.g. `free`, `locked`, or `metered`. -# (type: string; no default value;) +# (type: string; no default value;) content_tier = "" # Defines the location to target for the article. e.g. `["county:COUNTY"]` or `["city:CITY,COUNTY"]`. -# (type: array of strings; no default value;) +# (type: array of strings; no default value;) locations = [] # A high-level section name. e.g. `Technology`. -# (type: string; no default value;) +# (type: string; no default value;) section = "" # Indicates whether the article is an opinion piece or not. e.g. `true` or `false`. -# (type: boolean; no default value;) +# (type: boolean; no default value;) opinion = # The URL for the audio. -# (type: string; no default value;) +# (type: string; no default value;) audio = "" # MIME type of the audio. e.g. `audio/vnd.facebook.bridge`, `audio/mpeg`. -# (type: string; no default value;) +# (type: string; no default value;) audio_type = "" # The URL for the video. -# (type: string; no default value;) +# (type: string; no default value;) video = "" # MIME type of the video. e.g. `application/x-shockwave-flash`, `video/mp4`. -# (type: string; no default value;) +# (type: string; no default value;) video_type = "" # Width of the video in pixels. -# (type: number; no default value;) +# (type: number; no default value;) video_width = # Height of the video in pixels. -# (type: number; no default value;) +# (type: number; no default value;) video_height = # Set only if different from canonical page URL. -# (type: string; default value: current_url;) +# (type: string; default value: current_url;) url = "" -``` - -### Sitemap frontmatter variables -```toml ,name=frontmatter +# Sitemap frontmatter variables [extra.sitemap] # Set only if different from `page.updated`. -# (type: string; default value: page.updated;) +# (type: string; default value: page.updated;) updated = # Valid values are `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, `never`. -# (type: string; no default value;) +# (type: string; no default value;) changefreq = # Valid values range from 0.0 to 1.0. The default priority of a page is 0.5. -# (type: string; no default value;) +# (type: string; no default value;) priority = ``` @@ -223,6 +226,8 @@ Create `content/_index.md` file in your blog and set `extra.profile` to your use ```toml ,name=content/_index.md +++ +# title = "" +# description = "" sort_by = "date" paginate_by = 5 [extra] @@ -233,14 +238,13 @@ profile = "your_username" Do it for each language in your blog. For French, the file name is `content/_index.fr.md`. -### Profiles for authors - -Add `extra.profiles.author_username` table in your `config.toml` file for each author in your blog. -Replace `author_username` with author's username. -See Profiles. +See Profiles for more. ### Non-post pages +The default page template `page.html` is for blog posts. +For pages that are not blog posts, create a `pages` directory and use the `pages.html` template. + Create `content/pages/_index.md` file in your blog: ```toml ,name=content/pages/_index.md @@ -250,6 +254,20 @@ page_template = "pages.html" +++ ``` +#### About you page + +Create `content/pages/about.md` file in your blog: + +```toml ,name=content/pages/about.md ++++ +title = "About me" +# description = "" +# path = "about" ++++ + +## Hello, world! +``` + #### Archive page Create `content/pages/archive.md` file in your blog: @@ -265,21 +283,38 @@ section = "_index.md" +++ ``` -#### About you page +#### Projects page -Create `content/pages/about.md` file in your blog: +Create `content/pages/projects/index.md` file in your blog: -```toml ,name=content/pages/about.md +```toml ,name=content/pages/projects/index.md +++ -title = "About me" +title = "My Projects" # description = "" -# path = "about" +# path = "projects" +++ ``` +Include the following shortcode too: \{\{ projects(path="data.toml", format="toml") \}\} + +Create `content/pages/projects/data.toml` file in your blog: + +```toml ,name=content/pages/projects/data.toml +[[project]] +name = "lorem" +desc = "Lorem ipsum dolor sit." +tags = ["lorem", "ipsum"] +links = [ + { name = "homepage", url = "https://example.com" }, + { name = "source", url = "https://example.com" }, +] +``` + ### Page authors -#### Option 1: Using `page.authors` +Choose one of the following options or skip if you don't know what you're doing: + +#### Option A: Using `page.authors` You don't need to set `page.authors` in the frontmatter if you are the only author of the post. @@ -291,7 +326,7 @@ authors = ["author_username"] +++ ``` -#### Option 2: Using Taxonomies +#### Option B: Using Taxonomies Useful if the blog has a team of several authors. If you choose this option you should set taxonomies in each page. @@ -331,30 +366,43 @@ and comment out the variables you don't use instead of setting empty values. All variables are optional. ```toml ,name=config.toml -# The default language. (type: string;) +# The URL the site will be built for +base_url = "https://example.com" + +# The site theme to use. +theme = "linkita" + +# The default language. default_language = "en" -# The default author for pages. See `extra.profiles`. (type: string;) +# The default author for pages. +# See `extra.profiles`. +# (type: string;) author = "your_username" -# The site title. (type: string;) +# The site title. Will be in all page titles. +# (type: string;) title = "" -# The site description. (type: string;) +# The site description. Used in feeds by default. +# (type: string;) description = "" -# Automatically generate a feed. (type: boolean;) +# Automatically generate a feed. +# (type: boolean;) generate_feeds = true -# The filenames to use for the feeds. (type: array of strings;) +# The filenames to use for the feeds. +# (type: array of strings;) feed_filenames = ["atom.xml"] # or ["rss.xml"] # Build a search index from the pages and section content -# for `default_language`. (type: boolean;) +# for `default_language`. (type: boolean;) build_search_index = true ``` -Taxonomies with translated names are `tags`, `categories`, and `authors`. +Zola has built-in support for taxonomies. +Taxonomies on Linkita with translated names are `tags`, `categories`, and `authors`. ```toml ,name=config.toml [[taxonomies]] @@ -373,7 +421,7 @@ feed = true paginate_by = 5 ``` -Add more languages ​​by replacing `fr` from the example with the language code. +Add more languages by replacing `fr` from the example with the language code: ```toml ,name=config.toml [languages.fr] @@ -383,7 +431,7 @@ generate_feeds = true feed_filenames = ["atom.xml"] # or ["rss.xml"] build_search_index = true taxonomies = [ - { name = "authors", feed = true, paginate_by = 5 } + { name = "tags", feed = true, paginate_by = 5 } ] ``` @@ -411,18 +459,22 @@ title_separator = " | " # (type: string; no default value;) header_menu_name = "menu_name" -# (type: boolean; default value: false;) +# If you disable default favicons, you can use +# the inject support to set your own favicons. +# (type: boolean; default value: `false`;) disable_default_favicon = false -# (type: boolean; default value: false;) +# If you want to reimplement the JS code +# yourself, set to true and use the inject support. +# (type: boolean; default value: `false`;) disable_javascript = false -# (type: boolean; default value: false;) +# (type: boolean; default value: `false`;) use_cdn = false # You can reorder the strings, remove them, or replace them. -# For example, you can replace `site_title` with `home_button`. -# (type: array of strings; default value: `["site_title", "theme_button", "search_button", "translations_button"]`;) +# For example, you can replace `site_title` with `home_button`. +# (type: array of strings; default value: `["site_title", "theme_button", "search_button", "translations_button"]`;) # header_buttons = [] # Valid values: @@ -432,8 +484,22 @@ use_cdn = false # `word_count`, `word_count_on_page`, `word_count_on_paginator`, # `authors`, `authors_on_page`, `authors_on_paginator`, # `tags`, `tags_on_page`, `tags_on_paginator`. -# (type: array of strings; default value: `["date", "date_updated_on_page", "reading_time", "authors"]`;) +# (type: array of strings; default value: `["date", "date_updated_on_page", "reading_time", "authors"]`;) # page_info = [] + +# Prioritize summary over description. +# (type: boolean; default value: `false`;) +# page_summary_on_paginator = true + +# Enable table of contents on all pages. +# If not set, toc is enabled only on post pages. +# If set to false, toc is disabled on all pages. +# (type: boolean or object;) +# toc = true + +# Reverse the order of prev and next post links. +# (type: boolean; default value: `false`;) +# invert_page_navigation = false ``` ### Style config @@ -449,10 +515,10 @@ bg_dark_color = "#18181b" header_blur = false # The custom header color, only available -# when `header_blur` is false. (type: string;) +# when `header_blur` is false. (type: string;) header_color = "#e4e4e7" # The custom header color in dark mode, only available -# when `header_blur` is false. (type: string;) +# when `header_blur` is false. (type: string;) header_dark_color = "#27272a" ``` @@ -461,20 +527,20 @@ header_dark_color = "#27272a" ```toml ,name=config.toml [extra.menus] menu_name = [ - {url = "$BASE_URL/pages/archive/", name = "Archive"}, - {url = "$BASE_URL/categories", name = "Categories"}, - {url = "$BASE_URL/tags/", name = "Tags"}, - {url = "$BASE_URL/pages/about/", name = "About"}, + { url = "$BASE_URL/pages/archive/", name = "Archive" }, + { url = "$BASE_URL/categories", name = "Categories" }, + { url = "$BASE_URL/tags/", name = "Tags" }, + { url = "$BASE_URL/pages/about/", name = "About" }, ] # Example multilingual menu. multilingual_menu_name = [ - {url = "$BASE_URL/pages/about/", names = {en = "About", fr = "About in French"} }, - {url = "$BASE_URL/pages/projects/", names = {en = "Projects", fr = "Projects in French"} }, - {url = "$BASE_URL/pages/archive/", names = {en = "Archive", fr = "Archive in French"} }, - {url = "$BASE_URL/categories/", names = {en = "Categories", fr = "Categories in French"} }, - {url = "$BASE_URL/tags/", names = {en = "Tags", fr = "Tags in French"} }, - {url = "$BASE_URL/authors/", names = {en = "Authors", fr = "Authors in French"} }, + { url = "$BASE_URL/pages/about/", names = { en = "About", fr = "About in French" } }, + { url = "$BASE_URL/pages/projects/", names = { en = "Projects", fr = "Projects in French" } }, + { url = "$BASE_URL/pages/archive/", names = { en = "Archive", fr = "Archive in French" } }, + { url = "$BASE_URL/categories/", names = { en = "Categories", fr = "Categories in French" } }, + { url = "$BASE_URL/tags/", names = { en = "Tags", fr = "Tags in French" } }, + { url = "$BASE_URL/authors/", names = { en = "Authors", fr = "Authors in French" } }, ] ``` @@ -509,21 +575,15 @@ name = "" # (type: string; supports markdown; no default value;) bio = "" -# Profile email. -# (type: string; no default value;) -# email = "" - -# Profile website. -# (type: string; no default value;) -# url = "" - # Social icons. -# The `name` should be the file name of `static/icons/*.svg` or the icon name of https://simpleicons.org/ -# The `url` supports `$BASE_URL`. +# `name` should be the file name of `static/icons/*.svg` or the icon name of https://simpleicons.org/ +# `url` supports `$BASE_URL`. +# Other: `urls`, `title`, `titles`. # (type: array of tables; no default value;) social = [ - { name = "github", url = "https://github.com/username" }, { name = "bluesky", url = "https://bsky.app/profile/username" }, + { name = "github", url = "https://github.com/username" }, + { name = "email", url = "mailto:example@example.com" }, { name = "rss", url = "$BASE_URL/atom.xml" }, ] ``` @@ -533,21 +593,21 @@ social = [ ```toml ,name=config.toml # For French. Replace `your_username` with your username. [extra.profiles.your_username.languages.fr] +# A description of what is in the avatar. +# (type: string; default avatar: extra.profiles.your_username.avatar_alt;) +avatar_alt = "" + # Profile name. -# (type: string; default value: extra.profiles.your_username.url;) +# (type: string; default value: extra.profiles.your_username.name;) name = "" # Profile bio. # (type: string; supports markdown; default value: extra.profiles.your_username.bio;) bio = "" -# Profile website. -# (type: string; default value: extra.profiles.your_username.url;) -url = "" - -# A description of what is in the avatar. -# (type: string; default avatar: extra.profiles.your_username.avatar_alt;) -avatar_alt = "" +# Social icons. +# (type: array of tables; default value: extra.profiles.your_username.social;) +social = [] ``` ### Open Graph for profiles @@ -574,8 +634,9 @@ gender = "" # "female" or "male" # handle - Your Fediverse handle. (type: string; no default value;) # domain - Your Fediverse instance. (type: string; no default value;) # url - Your Fediverse account URL. (type: string; optional;) -# Example for @user@mastodon.social: -# fediverse_creator = { handle = "user", domain = "mastodon.social" } +# Example for @me@mastodon.social: +# fediverse_creator = { handle = "me", domain = "mastodon.social" } +fediverse_creator = { handle = "", domain = "" } ``` `fb_app_id` and `fb_admins` are only allowed in the default author's profile. @@ -655,13 +716,26 @@ date_format_archive = "%m-%d" # (type: array of strings; default value: extra.header_buttons;) # header_buttons = [] -# IETF tag for artificial languages. (type: string; no default value;) -# language_code = "art-x-code" +# To set a different `lang` attribute of the document. +# You can set IETF tag for artificial languages, e.g. `art-x-code`. +# (type: string;) +# language_code = "" + +# To use a different interface language, e.g. English. (type: string;) +# i18n_code = "en" + +# Set a description for taxonomy pages. +[extra.languages.en.taxonomy_descriptions] +categories = "A map of all categories on this site. Start exploring!" +tags = "A map of all tags on this site. Start exploring!" +authors = "A map of all authors on this site. Start exploring!" -# Taxonomy/term pages do not have a description by default. -# Optionally you can set a generic description. `$NAME` will be automatically replaced. -# taxonomy_list_description = "A map of all $NAME on this site. Start exploring!" -# taxonomy_single_description = "Browse articles related to $NAME. Start exploring!" +# Set a description for term pages. +# `$NAME` will be automatically replaced. +[extra.languages.en.term_descriptions] +categories = "Browse articles related to $NAME. Start exploring!" +tags = "Browse articles related to $NAME. Start exploring!" +authors = "Browse articles written by $NAME. Start exploring!" ``` ```toml ,name=config.toml @@ -720,21 +794,21 @@ repo_id = "" category = "" # (type: string; no default value;) category_id = "" -# (type: string; default value: `pathname`) +# (type: string; default value: `pathname`;) mapping = "pathname" -# (type: number; default value: `1`) +# (type: number; default value: `1`;) strict = 1 -# (type: number; default value: `0`) +# (type: number; default value: `0`;) reactions_enabled = 0 -# (type: number; default value: `0`) +# (type: number; default value: `0`;) emit_metadata = 0 -# (type: string; default value: `top`) +# (type: string; default value: `top`;) input_position = "top" -# (type: string; default value: `light`) +# (type: string; default value: `light`;) theme = "light" -# (type: string; default value: `en`) +# (type: string; default value: `en`;) lang = "en" -# (type: string; default value: `lazy`) +# (type: string; default value: `lazy`;) loading = "lazy" ``` @@ -746,12 +820,14 @@ See the [MIT License](https://codeberg.org/salif/linkita/src/branch/linkita/LICE Pull requests are welcome on [Codeberg](https://codeberg.org/salif/linkita) and [Github](https://github.com/salif/linkita). -If you notice even the slightest ambiguity or bug in this repo, report it IMMEDIATELY before it breeds and takes over the entire project! +If you notice even the slightest ambiguity or bug in this repo, +report it IMMEDIATELY, before it breeds and takes over the entire project! ## Sites using Linkita - [Zola Themes Collection](https://github.com/salif/zola-themes-collection) - [salif.eu](https://github.com/salif/personal-web-page): Personal website +- [Rratic's blog](https://github.com/Rratic/rratic.github.io): Personal website If your blog uses Linkita and is open source, feel free to create a pull request to add it to this list. diff --git a/docs/content/themes/neovim-theme/index.md b/docs/content/themes/neovim-theme/index.md index 0166dde131..68c7fd1ebb 100644 --- a/docs/content/themes/neovim-theme/index.md +++ b/docs/content/themes/neovim-theme/index.md @@ -3,14 +3,14 @@ title = "neovim" description = "A only keyboard theme with tabs and file browser" template = "theme.html" -date = 2024-09-26T00:35:09+02:00 +date = 2025-03-21T00:55:38+01:00 [taxonomies] theme-tags = [] [extra] -created = 2024-09-26T00:35:09+02:00 -updated = 2024-09-26T00:35:09+02:00 +created = 2025-03-21T00:55:38+01:00 +updated = 2025-03-21T00:55:38+01:00 repository = "https://github.com/Super-Botman/neovim-theme.git" homepage = "https://github.com/super-botman/zola-theme" minimum_version = "0.4" @@ -30,10 +30,11 @@ Neovim theme is a neovim like theme for zola. exemple: [https://super-botman.github.io](https://super-botman.github.io) -## Instalation +## Installation ```bash cd themes git clone https://github.com/Super-Botman/neovim-theme.git +mv neovim-theme/content/readme.md ../content ``` then enable it in your config @@ -42,46 +43,54 @@ then enable it in your config theme = "neovim-theme" ``` -## Config - -You can setup the blog name with config file in extra +## Configuration ```toml [extra] +# set the name of the blog blog_name = "name" -``` -## Customisation +# set the background image u want +background-image = "assets/background.jpg" -### JS +# this parameter allow you to configure specific init functions/shortcuts and commands +# the value has to be the path of you're config.js file +config_js = "config.js" -You can add some custom javascript function with this parameter: - -```toml -[extra] -custom_script = ".js" +# allow you to include custom css into u're blog +custom_css = "style.css" ``` -then you just add a file `static/js/custom_script.js` and define your custom functions like this: - -```javascript -// add special commands -function custom_commands(command, args){ - ... -} -// add special init routine -function custom_init(){ - ... +```js +const keys = { + // "normal" keys are just keys typed on the page + // for exemple " " is when space is typed + normal: { + " ": (event, element) => { + alert("u pressed space key"); + }, + }, + + // this is for keys when shift is pressed + shortcut: {}, +}; + +const commands = { + // the key is used to specify the name of the command + test: (command) => { + alert("you entered 'test' command"); + + // and then the return value with type and message + return { + type: "success", // "success" = green text, "error" = red text + message: "command executed", // the text to show in the command line + }; + }, +}; + +function custom_init() { + // here some code } ``` -### CSS - -And for css - -```toml -[extra] -custom_css = ".css" -``` - \ No newline at end of file diff --git a/docs/content/themes/neovim-theme/screenshot.png b/docs/content/themes/neovim-theme/screenshot.png index 7496d39326..17674d61a6 100644 Binary files a/docs/content/themes/neovim-theme/screenshot.png and b/docs/content/themes/neovim-theme/screenshot.png differ diff --git a/docs/content/themes/project-portfolio/index.md b/docs/content/themes/project-portfolio/index.md index d7ad697d87..e124b41660 100644 --- a/docs/content/themes/project-portfolio/index.md +++ b/docs/content/themes/project-portfolio/index.md @@ -3,17 +3,17 @@ title = "Project Portfolio" description = "Theme for a project portfolio (based on Tailwind CSS)." template = "theme.html" -date = 2025-02-28T20:53:32+01:00 +date = 2025-04-06T10:20:14+02:00 [taxonomies] theme-tags = [] [extra] -created = 2025-02-28T20:53:32+01:00 -updated = 2025-02-28T20:53:32+01:00 +created = 2025-04-06T10:20:14+02:00 +updated = 2025-04-06T10:20:14+02:00 repository = "https://github.com/awinterstein/zola-theme-project-portfolio.git" -homepage = "https://github.com/awinterstein/zola-theme-project-portfolio" -minimum_version = "0.9.0" +homepage = "https://codeberg.org/winterstein/zola-theme-project-portfolio" +minimum_version = "0.19.0" license = "MIT" demo = "https://awinterstein.github.io/zola-theme-project-portfolio-example/" @@ -24,29 +24,203 @@ homepage = "https://www.winterstein.biz" # Project Portfolio -A [Zola](https://www.getzola.org/) theme built with [Tailwind CSS](https://tailwindcss.com/) for presenting the project portfolio of a freelancer, for example. The theme is based on the [Blow](https://www.getzola.org/themes/blow/) theme that was created by Thomas Chartron. +> You can find this theme on [Codeberg](https://codeberg.org/winterstein/zola-theme-project-portfolio) and [Github](https://github.com/awinterstein/zola-theme-project-portfolio). -Check out the [live demo of the example project](https://awinterstein.github.io/zola-theme-project-portfolio-example/) or a [real-world implementation](https://www.winterstein.biz/) of this template. +A [Zola](https://www.getzola.org/) theme built with [Tailwind CSS](https://tailwindcss.com/) and [DaisyUI](https://daisyui.com) for presenting the project portfolio of a freelancer, for example. The theme is based on the [Blow](https://www.getzola.org/themes/blow/) theme that was created by Thomas Chartron and on my generic [Daisy](https://codeberg.org/winterstein/zola-theme-daisy) theme. It extends the [Daisy](https://codeberg.org/winterstein/zola-theme-daisy) with specific pages, taxonomies and shortcodes for managing a project portfolio and supports all color schemes of the [Daisy](https://codeberg.org/winterstein/zola-theme-daisy) as well. ![Screenshot of a project page example](screenshot.png) +Check out the [live demo of the example project](https://awinterstein.github.io/zola-theme-project-portfolio-example/) or a [real-world implementation](https://www.winterstein.biz/) of this theme. + ## Features -- Project types and skills taxonomies -- Automatically selected dark / light modes (with syntax highlighting depending the mode) -- Search functionality supporting `Meta` + `K` shortcut -- Social links (github, gitlab, twitter, linkedin, email) -- Pagination -- Multilingual -- Error 404 page -- Mobile responsive -- Favicon -- Customizable navbar links -- Customizable footer +* Responsive design (looks good on desktop and mobile) +* Automatically selected dark / light modes +* 37 color schemes included +* Customizable navbar and footer (with social links) +* Project types and skills taxonomies +* Search functionality +* Multi-language support +* Pagination +* Customizable favicon +* Error 404 page ## Quick Start -For starting to create a new Zola website using this theme, the easiest approach is to just checkout / fork the [example repository](https://github.com/awinterstein/zola-theme-project-portfolio-example) and adapt it to your needs. That repository already contains a minimal structure and configuration for the Zola-based website and can directly be built and deployed to Github pages. +For starting to create a new Zola website using this theme, the easiest approach is to just checkout / fork the [example repository](https://codeberg.org/winterstein/zola-theme-project-portfolio-example) and adapt it to your needs. That repository already contains a minimal structure and configuration for the Zola-based website and can directly be built and deployed to [Netlify](https://www.netlify.com/) and Github pages. + +## Configuration + +The minimal `config.toml` file for using the theme looks like this: + +```toml +base_url = "https://www.example.com" + +theme = "project-portfolio" + +taxonomies = [ + {name = "projects", paginate_by = 5, feed = true}, + {name = "skills", paginate_by = 5, feed = true}, +] +``` + +### Color Schemes + +Set a light and dark color scheme: + +```toml +daisyui_theme_light = "light" +daisyui_theme_dark = "dark" +``` + +See the `themes` list in the [`theme.toml`](theme.toml) for all possible identifiers. You can also set only a light or a dark color scheme, if you do not want the automatic dark mode switching based on the browser settings of your visitors. + +If you want to allow your visitors to change the used color scheme, just set the following variable in the `[extra]` section of your `config.toml`: + +```toml +[extra] +enable_theme_switching = true +``` + +There will be a dropdown in the navbar then, for the visitors to select form the color schemes. + +### Languages + +To enable support for multiple languages, simply set the default language and add language settings for all your additional languages: + +```toml +default_language = "en" + +[languages.de] +# title and description in the additional language +title = "Projekt-Portfolio" +description = "Beispiel- und Demoseite des Projekt-Portfolio-Themas für Zola." + +# don't forget to enable features like search or feed +# generation for the additional language as well +build_search_index = true +generate_feeds = true + +# also any taxonomies of your default language need to +# be defined for the additional language as well +taxonomies = [ + {name = "projects", paginate_by = 5, feed = true}, + {name = "skills", paginate_by = 5, feed = true}, +] +``` + +Taxonomies should have exactly the same (not translated) name in all languages, for the language switching to work best. + +You need to create an i18n file containing the translations for all theme variables for all the languages of your website, if they are not included in the theme. Right now, only [English](i18n/en.toml) and [German](i18n/de.toml) are included. You can create a the directory `i18n` in your website root directory and the language files in there will be picked up by the theme. It would be great, however, I you create a pull-request on the theme repository to add your translations to the theme. + +### Search + +Integrating a search into your website is as easy as adding the following to your configuration: + +```toml +# enable it globally for the default language +build_search_index = true + +[search] +# only this format is supported by the theme +index_format = "elasticlunr_json" + +# you need to enable search at all your language sections as well +[languages.de] +build_search_index = true +``` + +As soon as `build_search_index` is enabled, the search indices are created for all languages that have this variable enabled in their section in the `config.toml` and the search bar is shown in the navbar of the website. + +Just be aware, that you need to add a [Lunr Languages](https://github.com/MihaiValentin/lunr-languages) file to your `static` directory, if you ae using other languages than English and German. See the corresponding repository for the [`min` files](https://github.com/MihaiValentin/lunr-languages/tree/master/min). Feel free to add support for your languages to the theme as well, via a pull-request. + +### Navbar + +Arbitrary links can be added to the footer by defining the following list in the `[extra.navbar]` section: + +```toml +[extra.navbar] +links = [ + { url = "projects", i18n_key = "projects" }, + { url = "skills", i18n_key = "skills" }, + { url = "blog", i18n_key = "blog" }, +] +``` + +The value of the `i18n_key` must be in the `i18n` files for your languages (see [en.toml](i18n/en.toml), for example). + +### Footer + +All three parts of the footer can be adapted: the links, the social icons, and the copyright notice. + +#### Links + +Arbitrary links can be added to the footer by defining the following list in the `[extra.footer]` section: + +```toml +[extra.footer] +links = [ + { url = "about", i18n_key = "about" }, + { url = "sitemap.xml", i18n_key = "sitemap", no_translation = true }, +] +``` + +The value of the `i18n_key` must be in the `i18n` files for your languages (see [en.toml](i18n/en.toml), for example). If the parameter `no_translation` is set to true, than the URL is not adapted to contain the current language code. This is needed for external links or something like the `sitemap.xml` in the example, that is not translated within your website. + +#### Social Icons + +The social icons in the footer can be adapted by setting any of the following variables: + +```toml +[extra.social] +codeberg = "" +github = "" +gitlab = "" +stackoverflow = "" +mastodon = "" +linkedin = "" +instagram = "" +youtube = "" +signal = "" +telegram = "" +email = "" +phone = "" +``` + +For every non-empty variable, the corresponding icon is shown in the footer. + +#### Copyright Notice + +The copyright notice in the footer can be set by adding the following variable in the configuration: + +```toml +[extra.footer] +notice = "This is my copyright notice." +``` + +HTML can be used there. + +### Syntax Highlighting + +The theme makes use of Zola code highlighting feature and supports setting a different color scheme depending on whether a light or dark theme is active. Just enable syntax highlighting the following way: + +```toml +highlight_code = true +highlight_theme = "css" +``` + +### Index Page + +A title and text can be added to the index page by creating a file `_index.md` in the `content` directory. Additionally, a slogan and an image an be configured in the `config.toml`: + +```toml +[extra.index] +slogan = "Slogan text that is shown under the title" +image = "portrait.png" +image_alt = "Placeholder text describing the index's image." +``` + +You can also created a completely different index page, by overwriting the `index.html` template in the template directory of your site. Just inherit from the `page.html` template of the theme. ## Details on Using the Theme @@ -55,14 +229,16 @@ The installation of the theme works the same as for other Zola themes. As it is ```bash cd my-zola-website git submodule add -b main \ - git@github.com:awinterstein/zola-theme-project-portfolio.git \ + https://codeberg.org/winterstein/zola-theme-project-portfolio.git \ themes/project-portfolio ``` +Please make sure to add it at the path `themes/project-portfolio` in your Zola directory. The translations and the icons won't work if added to a different directory. + In the `config.toml` file it needs to be selected then: ```toml -theme = "project-portfolio" # The site theme to use. +theme = "project-portfolio" ``` Create the files `projects.md` and `skills.md` in your `content` directory that are used to show the "Projects" and "Skills" [taxonomies](https://www.getzola.org/documentation/content/taxonomies/). They both need a title and can optionally get a descriptive text that will be shown above the terms of the taxonomy. See the following `projects.md` file as an example: @@ -84,7 +260,7 @@ lead. Whatever makes most sense for your project portfolio. It would be shown with the configured title and content like this above the terms: -![Screenshot of the projects taxonomy page](https://raw.githubusercontent.com/awinterstein/zola-theme-project-portfolio/main/screenshot-projects-taxonomy.png) +![Screenshot of the projects taxonomy page](https://codeberg.org/winterstein/zola-theme-project-portfolio/raw/branch/main/screenshot-projects-taxonomy.png) The `skills.md` file can be created the same way. The corresponding page will just show the terms of the skills taxonomy instead of the terms of the projects taxonomy then. @@ -117,110 +293,6 @@ The content of the project description page follows here. The generated project site would then look like this: -![Screenshot of the project example page](https://raw.githubusercontent.com/awinterstein/zola-theme-project-portfolio/main/screenshot-project-example.png) - -## Configuration - -The minimal `config.toml` file for using the theme looks like this: - -```toml -base_url = "https://www.example.com" - -theme = "project-portfolio" - -taxonomies = [ - {name = "projects", paginate_by = 5, feed = true}, - {name = "skills", paginate_by = 5, feed = true}, -] - -[translations] -language_symbol = "🇬🇧" -home = "Home" -projects = "Projects" -skills = "Skills" -read_more = "Read More" -skills_technologies = "Skills & Technologies" -main_skills = "Main Skills" -other_skills = "Additional Skills" -words = "words" -minutes = "minutes" -``` - -This would, however, lead to an empty index page. The `config.toml` can be extended by the following configuration parameters for the index page: - -```toml -[extra.index] -title = "Main Title" -slogan = "Slogan text that is shown under the title" -image = "portrait.png" -image_alt = "Placeholder text describing the index's image." - -[extra.social] -codeberg = "https://codeberg.org/johndoe" -github = "https://github.com/johndoe" -gitlab = "https://gitlab.com/johndoe" -twitter = "https://twitter.com/johndoe" -mastodon = "https://social.somewhere.com/users/johndoe" -linkedin = "https://www.linkedin.com/in/john-doe-b1234567/" -stackoverflow = "https://stackoverflow.com/users/01234567/johndoe" -telegram = "https://t.me/johndoe" -email = "john.doe@gmail.com" -``` - -## Syntax Highlighting - -The theme makes use of Zola code highlighting feature. -It supports setting a different color scheme depending on the user selected theme (Dark / Light) -In order to use it you should select the color scheme you want to use for light and dark themes in the list provided [here](https://www.getzola.org/documentation/getting-started/configuration/#syntax-highlighting) and edit your `config.toml` file like this example: - -```toml -highlight_code = true -highlight_theme = "css" -highlight_themes_css = [ - { theme = "ayu-dark", filename = "syntax-dark.css" }, - { theme = "ayu-light", filename = "syntax-light.css" }, -] -``` - -## Custom Footer Content - -To overwrite the default footer (copyright notice), extend the `layout.html` template of the theme as described in the [Zola documentation](https://www.getzola.org/documentation/themes/extending-a-theme/#overriding-a-block) by creating a `layout.html` with the following content in your `templates` directory: - -```jinja -{%/* extends "project-portfolio/templates/layout.html" */%} - -{%/* block content_footer */%} -Here is my own footer with a link. -{%/* endblock */%} -``` - -## Multiple Languages - -To enable multilingual support, add the following to the `config.toml` file (adapted to the additional language that you want to support): - -```toml -[languages.de] -title = "Projekt-Portfolio" -taxonomies = [ - {name = "projects", paginate_by = 5, feed = true}, - {name = "skills", paginate_by = 5, feed = true}, -] - -[languages.de.translations] -language_symbol = "🇩🇪" -home = "Home" -projects = "Projekte" -skills = "Qualifikationen" -read_more = "Weiterlesen" -skills_technologies = "Qualifikationen & Technologien" -main_skills = "Top-Fähigkeiten" -other_skills = "Weitere Fähigkeiten" - -[extra] -enable_multilingual = true -``` - -For the language switching of the theme to work best, it is recommended not to change the names of the taxonomies and to also keep the filenames for all pages of the site the same in all languages. Right now, the theme only supports websites with up to two languages. The default language and one additional language. +![Screenshot of the project example page](https://codeberg.org/winterstein/zola-theme-project-portfolio/raw/branch/main/screenshot-project-example.png) -Proceed to add translated markdown files. \ No newline at end of file diff --git a/docs/content/themes/project-portfolio/screenshot.png b/docs/content/themes/project-portfolio/screenshot.png index 8c5a1bc1ba..5f0dc90a32 100644 Binary files a/docs/content/themes/project-portfolio/screenshot.png and b/docs/content/themes/project-portfolio/screenshot.png differ diff --git a/docs/content/themes/radion/index.md b/docs/content/themes/radion/index.md index 71783d9fa6..b52e22ff33 100644 --- a/docs/content/themes/radion/index.md +++ b/docs/content/themes/radion/index.md @@ -3,14 +3,14 @@ title = "radion" description = "A sleek, modern blog theme." template = "theme.html" -date = 2025-03-02T14:11:58-06:00 +date = 2025-03-31T11:19:50-05:00 [taxonomies] theme-tags = ['SEO', 'search', 'accessible'] [extra] -created = 2025-03-02T14:11:58-06:00 -updated = 2025-03-02T14:11:58-06:00 +created = 2025-03-31T11:19:50-05:00 +updated = 2025-03-31T11:19:50-05:00 repository = "https://github.com/micahkepe/radion.git" homepage = "https://github.com/micahkepe/radion" minimum_version = "0.19.2" @@ -158,11 +158,15 @@ author = "John Smith" ### Favicon -To change the default favicon, create your own favicon folder with the following -site: [RealFaviconGenerator](https://realfavicongenerator.net/), setting the -'Favicon path' option to `/icons/favicon/`. Unzip the created folder, then -create a `static/icons/` directory if it does not already exist, and then place -the unzipped `favicon/` directory in `static/icons/`. +To change the default favicon: + +1. Create your own favicon folder with the following site: [RealFaviconGenerator](https://realfavicongenerator.net/) + + - Set the 'Favicon path' option to `/icons/favicon/` + +2. Unzip the created folder +3. Create a `static/icons/` directory if it does not already exist +4. Place the unzipped `favicon/` directory in `static/icons/`. By default, favicons are enabled, however, if for some reason you would like to disable favicons, set the following in your `config.toml`: @@ -202,6 +206,10 @@ Enhanced Codeblocks (Clipboard Support and Language Tags) codeblock = true ``` +> [!NOTE] +> Ligatures are disabled by default as defined in the +> [\_theme.scss](./sass/_theme.scss) file. + ### LaTex Support To enable LaTeX support with MathJax, set the following in your `config.toml`: diff --git a/docs/content/themes/seje2/index.md b/docs/content/themes/seje2/index.md index 3b88e94023..12480701c8 100644 --- a/docs/content/themes/seje2/index.md +++ b/docs/content/themes/seje2/index.md @@ -3,14 +3,14 @@ title = "Seje2" description = "A beautiful zola theme" template = "theme.html" -date = 2024-11-20T15:05:16+08:00 +date = 2025-04-02T10:52:01+08:00 [taxonomies] theme-tags = [] [extra] -created = 2024-11-20T15:05:16+08:00 -updated = 2024-11-20T15:05:16+08:00 +created = 2025-04-02T10:52:01+08:00 +updated = 2025-04-02T10:52:01+08:00 repository = "https://github.com/eatradish/seje2.git" homepage = "https://github.com/eatradish/Seje2" minimum_version = "0.15.0" @@ -78,6 +78,13 @@ seje2_menu_links = [ If you put `$BASE_URL` in a url, it will automatically be replaced by the actual site URL. +### MathJax Latex Support +Set a field in `extra` with a bool key of `seje_mathjax`: + +```toml +seje_mathjax = true +``` + ### License Set a field in `extra` with a key of `license`: diff --git a/docs/content/themes/serene/index.md b/docs/content/themes/serene/index.md index 3383bcebda..a80ebc3edb 100644 --- a/docs/content/themes/serene/index.md +++ b/docs/content/themes/serene/index.md @@ -3,14 +3,14 @@ title = "serene" description = "A spiffy blog theme for zola" template = "theme.html" -date = 2025-02-02T23:22:46+08:00 +date = 2025-03-31T08:20:53+08:00 [taxonomies] theme-tags = [] [extra] -created = 2025-02-02T23:22:46+08:00 -updated = 2025-02-02T23:22:46+08:00 +created = 2025-03-31T08:20:53+08:00 +updated = 2025-03-31T08:20:53+08:00 repository = "https://github.com/isunjn/serene.git" homepage = "https://github.com/isunjn/serene" minimum_version = "0.19.0" @@ -22,33 +22,15 @@ name = "isunjn" homepage = "https://github.com/isunjn" +++ -截屏2024-11-02 19 15 38 +

+ A minimal blog theme for zola, well crafted +

-
+

+ Demo · + Usage +

-A spiffy blog theme for [zola](https://www.getzola.org), demo: - -## Features - -- Well crafted design -- Customizable homepage layout -- Projects page & Prose page -- Dark mode & Customizable colors -- Image zooming, Table-of-contents, Back-to-top button... -- Out-of-date alert, Special quote, Featured mark... -- Callout (note, warning, alert, etc.) -- Anonymous emoji reactions -- Comments using [Giscus](https://giscus.app) -- Mathematical notations using [KaTeX](https://katex.org) or [Typst](https://typst.app) -- Diagrams and visualizations using [Mermaid](https://github.com/mermaid-js/mermaid) - -## Usage - -- Check the [USAGE.md](https://github.com/isunjn/serene/blob/latest/USAGE.md) of `latest` branch -- Also available in Simplified Chinese: [USAGE-zh_CN.md](https://github.com/isunjn/serene/blob/latest/USAGE-zh_CN.md) (简体中文) - -## License - -[MIT](https://github.com/isunjn/serene/blob/main/LICENSE) +Screenshot \ No newline at end of file diff --git a/docs/content/themes/serene/screenshot.png b/docs/content/themes/serene/screenshot.png index 7e2ecfed1c..b824cded12 100644 Binary files a/docs/content/themes/serene/screenshot.png and b/docs/content/themes/serene/screenshot.png differ diff --git a/docs/content/themes/tabi/index.md b/docs/content/themes/tabi/index.md index 857734036a..bae2d8b26c 100644 --- a/docs/content/themes/tabi/index.md +++ b/docs/content/themes/tabi/index.md @@ -3,14 +3,14 @@ title = "tabi" description = "tabi is an accessible Zola theme with search, multi-language support, optional JavaScript, a perfect Lighthouse score, and comprehensive documentation. Crafted for personal websites and blogs." template = "theme.html" -date = 2025-03-15T10:12:11+01:00 +date = 2025-04-05T22:53:51+02:00 [taxonomies] theme-tags = [] [extra] -created = 2025-03-15T10:12:11+01:00 -updated = 2025-03-15T10:12:11+01:00 +created = 2025-04-05T22:53:51+02:00 +updated = 2025-04-05T22:53:51+02:00 repository = "https://github.com/welpo/tabi.git" homepage = "https://github.com/welpo/tabi" minimum_version = "0.17.0" diff --git a/docs/content/themes/zluinav/index.md b/docs/content/themes/zluinav/index.md index f211949f22..a1f6f82ad1 100644 --- a/docs/content/themes/zluinav/index.md +++ b/docs/content/themes/zluinav/index.md @@ -3,14 +3,14 @@ title = "UI Navigation" description = "A multilingual theme designed for accessibility rather than visual." template = "theme.html" -date = 2025-03-07T12:07:40+06:30 +date = 2025-03-18T21:11:06+07:00 [taxonomies] theme-tags = ['blind', 'multilingual', 'accessible', 'responsive', 'search', 'documentation', 'blog', 'SEO'] [extra] -created = 2025-03-07T12:07:40+06:30 -updated = 2025-03-07T12:07:40+06:30 +created = 2025-03-18T21:11:06+07:00 +updated = 2025-03-18T21:11:06+07:00 repository = "https://github.com/harrymkt/zluinav" homepage = "https://github.com/harrymkt/zluinav" minimum_version = "0.19.2"