11 KiB
+++ title = "DeepThought" description = "A simple blog theme focused on writing powered by Bulma and Zola." template = "theme.html" date = 2024-09-02T05:58:27Z
[extra] created = 2024-09-02T05:58:27Z updated = 2024-09-02T05:58:27Z repository = "https://github.com/RatanShreshtha/DeepThought.git" homepage = "https://github.com/RatanShreshtha/DeepThought" minimum_version = "0.14.1" license = "MIT" demo = "https://deepthought-theme.netlify.app/"
[extra.author] name = "Ratan Kulshreshtha" homepage = "https://ratanshreshtha.dev" +++
DeepThought
A simple blog theme focused on writing powered by Bulma and Zola.
View Demo · Documentation · Report Bug · Request Feature
📔 Table of Contents
- 📔 Table of Contents
- 🌟 About the Project
- 📷 Screenshots
- 👾 Tech Stack
- 🎯 Features
- 🧰 Getting Started
- ‼️ Prerequisites
- ⚙️ Installation
- 🏃 Run Locally
- 🚩 Deployment
- 👀 Usage
- Multilingual Navbar
- KaTeX math formula support
- Automatic rendering without short codes
- Elasticlunr search in other language
- 👋 Contributing
- ⚠️ License
- 🤝 Contact
- 💎 Acknowledgements
- 🌟 About the Project
🌟 About the Project
📷 Screenshots
👾 Tech Stack
🎯 Features
- Dark Mode
- Pagination
- Search
- Charts
- Maps
- Diagrams
- Galleria
- Analytics
- Comments
- Categories
- Social Links
- Multilingual Navbar
- Katex
🧰 Getting Started
‼️ Prerequisites
You need static site generator (SSG) Zola installed in your machine to use this theme follow their guide on getting started.
⚙️ Installation
Follow zola's guide on installing a theme.
Make sure to add theme = "DeepThought"
to your config.toml
Check zola version (only 0.9.0+) Just to double-check to make sure you have the right version. It is not supported to use this theme with a version under 0.14.1.
🏃 Run Locally
Go into your sites directory and type zola serve
. You should see your new site at localhost:1111
.
NOTE: you must provide the theme options variables in config.toml
to serve a functioning site
🚩 Deployment
Zola already has great documentation for deploying to Netlify or Github Pages. I won't bore you with a regurgitated explanation.
👀 Usage
Following options are available with the DeepThought
theme
# Enable external libraries
[extra]
katex.enabled = true
katex.auto_render = true
chart.enabled = true
mermaid.enabled = true
galleria.enabled = true
navbar_items = [
{ code = "en", nav_items = [
{ url = "$BASE_URL/", name = "Home" },
{ url = "$BASE_URL/posts", name = "Posts" },
{ url = "$BASE_URL/docs", name = "Docs" },
{ url = "$BASE_URL/tags", name = "Tags" },
{ url = "$BASE_URL/categories", name = "Categories" },
]},
]
# Add links to favicon, you can use https://realfavicongenerator.net/ to generate favicon for your site
[extra.favicon]
favicon_16x16 = "/icons/favicon-16x16.png"
favicon_32x32 = "/icons/favicon-32x32.png"
apple_touch_icon = "/icons/apple-touch-icon.png"
safari_pinned_tab = "/icons/safari-pinned-tab.svg"
webmanifest = "/icons/site.webmanifest"
# Author details
[extra.author]
name = "DeepThought"
avatar = "/images/avatar.png"
# Social links
[extra.social]
email = "<email_id>"
facebook = "<facebook_username>"
github = "<github_username>"
gitlab = "<gitlab_username>"
keybase = "<keybase_username>"
linkedin = "<linkedin_username>"
stackoverflow = "<stackoverflow_userid>"
twitter = "<twitter_username>"
instagram = "<instagram_username>"
behance = "<behance_username>"
google_scholar = "<googlescholar_userid>"
orcid = "<orcid_userid>"
mastodon_username = "<mastadon_username>"
mastodon_server = "<mastodon_server>" (if not set, defaults to mastodon.social)
# To add google analytics
[extra.analytics]
google = "<your_gtag>"
# To add disqus comments
[extra.commenting]
disqus = "<your_disqus_shortname>"
# To enable mapbox maps
[extra.mapbox]
enabled = true
access_token = "<your_access_token>"
Multilingual Navbar
If you want to have a multilingual navbar on your blog, you must add your new code language in the languages array in the config.toml
file.
NOTE: Don't add you default language to this array
languages = [
{code = "fr"},
{code = "es"},
]
And then create and array of nav item for each language:
NOTE: Include your default language in this array
navbar_items = [
{ code = "en", nav_items = [
{ url = "$BASE_URL/", name = "Home" },
{ url = "$BASE_URL/posts", name = "Posts" },
{ url = "$BASE_URL/docs", name = "Docs" },
{ url = "$BASE_URL/tags", name = "Tags" },
{ url = "$BASE_URL/categories", name = "Categories" },
]},
{ code = "fr", nav_items = [
{ url = "$BASE_URL/", name = "Connexion" },
]},
{ code = "es", nav_items = [
{ url = "$BASE_URL/", name = "Publicationes" },
{ url = "$BASE_URL/", name = "Registrar" },
]}
]
en:
fr:
es:
KaTeX math formula support
This theme contains math formula support using KaTeX,
which can be enabled by setting katex.enabled = true
in the extra
section
of config.toml
.
After enabling this extension, the katex
short code can be used in documents:
{{/* katex(body="\KaTeX") */}}
to typeset a math formula inlined into a text, similar to$...$
in LaTeX{%/* katex(block=true) */%}\KaTeX{%/* end */%}
to typeset a block of math formulas, similar to$$...$$
in LaTeX
Automatic rendering without short codes
Optionally, \\( \KaTeX \\)
/ $ \KaTeX $
inline and \\[ \KaTeX \\]
/ $$ \KaTeX $$
block-style automatic rendering is also supported, if enabled in the config
by setting katex.auto_render = true
.
Elasticlunr search in other language
Zola use Elasticlunr.js to add full-text search feature.
To use languages other than en (English), you need to add some javascript files. See the Zola's issue #1349.
By placing the templates/base.html
on your project and using the other_lang_search_js
block, you can load the required additional javascript files in the right timing.
e.g. templates/base.html
{%/* extends "DeepThought/templates/base.html" */%} {%/* block other_lang_search_js */%}
<script src="{{/* get_url(path='js/lunr.stemmer.support.js') */}}"></script>
<script src="{{/* get_url(path='js/tinyseg.js') */}}"></script>
<script src="{{/* get_url(path='js/lunr.' ~ lang ~ '.js') */}}"></script>
<script src="{{/* get_url(path='js/search.js') */}}"></script>
{%/* endblock */%}
More detailed explanations are aound in elasticlunr's documents.
👋 Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (git checkout -b feature/AmazingFeature)
- Commit your Changes (git commit -m 'Add some AmazingFeature')
- Push to the Branch (git push origin feature/AmazingFeature)
- Open a Pull Request
⚠️ License
Distributed under the MIT License. See LICENSE
for more information.
🤝 Contact
Ratan Kulshreshtha - @RatanShreshtha - ratan.shreshtha[at]gmail.com
Project Link: https://github.com/RatanShreshtha/DeepThought
💎 Acknowledgements
Use this section to mention useful resources and libraries that you have used in your projects.