first commit with a pre-push hook, curious >.<"

This commit is contained in:
Joost Agterhoek 2024-08-26 16:04:05 +02:00
parent 2b1140996e
commit b4deca7d0f
9 changed files with 275 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
sync-zola.sh

14
_index.md Normal file
View File

@ -0,0 +1,14 @@
+++
template = "index.html"
title = "Test home page"
+++
Hi!
This is my test website build with the static site generator [Zola](www.getzola.org). I want to try out a more direct workflow in writing/blogging and keeping up with projects than my [main website build with Grav](https://joostagterhoek.nl) can offer. Liking it so far! :star:
## Blog Posts
- 🥇 [My first blog post here](./blog/my-first-post)
## Projects

5
about.md Normal file
View File

@ -0,0 +1,5 @@
+++
title = "About"
+++
Hi there! I'm Joost Agterhoek and this is one of my websites. Currently not my main one, that would be [this lovely place](https://joostagterhoek.nl). This is still a work in progress.

198
config.toml Normal file
View File

@ -0,0 +1,198 @@
# The base URL of the site; the only required configuration variable.
base_url = "https://notes.joostagterhoek.nl"
# The site title and description; used in feeds by default.
title = "Trying out a statically generated website"
description = ""
# The default language; used in feeds.
default_language = "en"
# The site theme to use.
theme = "anemone"
# For overriding the default output directory `public`, set it to another value (e.g.: "docs")
output_dir = "public"
# Whether dotfiles at the root level of the output directory are preserved when (re)building the site.
# Enabling this also prevents the deletion of the output folder itself on rebuilds.
preserve_dotfiles_in_output = false
# When set to "true", the Sass files in the `sass` directory in the site root are compiled.
# Sass files in theme directories are always compiled.
compile_sass = false
# When set to "true", the generated HTML files are minified.
minify_html = false
# A list of glob patterns specifying asset files to ignore when the content
# directory is processed. Defaults to none, which means that all asset files are
# copied over to the `public` directory.
# Example:
# ignored_content = ["*.{graphml,xlsx}", "temp.*", "**/build_folder"]
ignored_content = []
# Similar to ignored_content, a list of glob patterns specifying asset files to
# ignore when the static directory is processed. Defaults to none, which means
# that all asset files are copied over to the `public` directory
ignored_static = []
# When set to "true", a feed is automatically generated.
generate_feeds = true
# The filenames to use for the feeds. Used as the template filenames, too.
# Defaults to ["atom.xml"], which has a built-in template that renders an Atom 1.0 feed.
# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed.
feed_filenames = [ "atom.xml" ]
# The number of articles to include in the feed. All items are included if
# this limit is not set (the default).
# feed_limit = 20
# When set to "true", files in the `static` directory are hard-linked. Useful for large
# static files. Note that for this to work, both `static` and the
# output directory need to be on the same filesystem. Note that the theme's `static`
# files are always copied, regardless of this setting.
hard_link_static = false
# The default author for pages
author = "Joost Agterhoek"
# The taxonomies to be rendered for the site and their configuration of the default languages
# Example:
# taxonomies = [
# {name = "tags", feed = true}, # each tag will have its own feed
# {name = "tags"}, # you can have taxonomies with the same name in multiple languages
# {name = "categories", paginate_by = 5}, # 5 items per page for a term
# {name = "authors"}, # Basic definition: no feed or pagination
# ]
#
taxonomies = [
{name = "tags", feed = true},
]
# When set to "true", a search index is built from the pages and section
# content for `default_language`.
build_search_index = false
# Configuration of the Markdown rendering
[markdown]
# When set to "true", all code blocks are highlighted.
highlight_code = false
# A list of directories used to search for additional `.sublime-syntax` and `.tmTheme` files.
extra_syntaxes_and_themes = []
# The theme to use for code highlighting.
# See below for list of allowed values.
highlight_theme = "dracula"
# When set to "true", emoji aliases translated to their corresponding
# Unicode emoji equivalent in the rendered Markdown files. (e.g.: :smile: => 😄)
render_emoji = true
# Whether external links are to be opened in a new tab
# If this is true, a `rel="noopener"` will always automatically be added for security reasons
external_links_target_blank = false
# Whether to set rel="nofollow" for all external links
external_links_no_follow = false
# Whether to set rel="noreferrer" for all external links
external_links_no_referrer = false
# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form)
# For example, `...` into `…`, `"quote"` into `“curly”` etc
smart_punctuation = false
# Whether to set decoding="async" and loading="lazy" for all images
# When turned on, the alt text must be plain text.
# For example, `![xx](...)` is ok but `![*x*x](...)` isnt ok
lazy_async_image = false
# Configuration of the link checker.
[link_checker]
# Skip link checking for external URLs that start with these prefixes
skip_prefixes = [
"http://[2001:db8::]/",
]
# Skip anchor checking for external URLs that start with these prefixes
skip_anchor_prefixes = [
"https://caniuse.com/",
]
# Treat internal link problems as either "error" or "warn", default is "error"
internal_level = "warn"
# Treat external link problems as either "error" or "warn", default is "error"
external_level = "error"
# Various slugification strategies, see below for details
# Defaults to everything being a slug
[slugify]
paths = "on"
taxonomies = "on"
anchors = "on"
# Whether to remove date prefixes for page path slugs.
# For example, content/posts/2016-10-08_a-post-with-dates.md => posts/a-post-with-dates
# When true, content/posts/2016-10-08_a-post-with-dates.md => posts/2016-10-08-a-post-with-dates
paths_keep_dates = false
[search]
# Whether to include the title of the page/section in the index
include_title = true
# Whether to include the description of the page/section in the index
include_description = false
# Whether to include the path of the page/section in the index
include_path = false
# Whether to include the rendered content of the page/section in the index
include_content = true
# At which character to truncate the content to. Useful if you have a lot of pages and the index would
# become too big to load on the site. Defaults to not being set.
# truncate_content_length = 100
# Wether to produce the search index as a javascript file or as a JSON file
# Accepted value "elasticlunr_javascript" or "elasticlunr_json"
index_format = "elasticlunr_javascript"
# Optional translation object for the default language
# Example:
# default_language = "fr"
#
# [translations]
# title = "Un titre"
#
[translations]
# Additional languages definition
# You can define language specific config values and translations:
# title, description, generate_feed, feed_filename, taxonomies, build_search_index
# as well as its own search configuration and translations (see above for details on those)
[languages]
# For example
# [languages.fr]
# title = "Mon blog"
# generate_feed = true
# taxonomies = [
# {name = "auteurs"},
# {name = "tags"},
# ]
# build_search_index = false
# You can put any kind of data here. The data
# will be accessible in all templates
# Example:
# [extra]
# author = "Famous author"
#
# author value will be available using {{ config.extra.author }} in templates
#
[extra]
header_nav = [
{ url = "/", name_en = "/home/", name_fr = "/accueil/" },
{ url = "/about", name_en = "/about/", name_fr = "/concernant/" },
{ url = "/journal", name_en = "/journal/", name_fr = "/journal/" },
{ url = "/blog", name_en = "/blog/", name_fr = "/blog/" }
]

13
content/_index.md Normal file
View File

@ -0,0 +1,13 @@
+++
template = "index.html"
title = "Test home page"
+++
Here you can find a website built with the static site generator [Zola](www.getzola.org). I want to try out a more direct workflow in writing/blogging and keeping up with projects than my [main website built with Grav](https://joostagterhoek.nl) can offer. Liking it so far! :star:
## Blog posts
- 🥇 [My first blog post here](./blog/my-first-post)
## Projects
- (add gui-host-lookup)

5
content/about.md Normal file
View File

@ -0,0 +1,5 @@
+++
title = "About"
+++
Hi there! I'm Joost Agterhoek and this is one of my websites. Currently not my main one, that would be [this lovely place](https://joostagterhoek.nl). This is still a work in progress.

7
content/blog/_index.md Normal file
View File

@ -0,0 +1,7 @@
+++
paginate_by = 15
title = "All blog posts"
sort_by = "date"
+++
> List of all *[tags](/tags)*

View File

@ -0,0 +1,25 @@
+++
title = "My first statically generated post"
date = 2024-08-24
description = "A blog post about Obsidian, Zola and friction in writing"
+++
I have spent *many* hours searching and trying out different ways to manage my own website. I want it to be a resume, a place where I can blog if I want to (which is not really frequent), and most importantly, a place to showcase my development. Especially that last part has been hard: none of the setups I have tried worked so far.
## Friction
So what's wrong? What's holding me back? I've recently seen some YouTube-videos by [Devops Toolbox](https://youtu.be/oLpGahrsSGQ?si=YRMo5k47hx1GDHE-) and his comments on how friction in your workflow can degrade of your intended input. This got me thinking. Very recently I switched both my personal and work notes entirely to [Obsidian](https://obsidian.md/). There, I *finally* did not experience any friction, taking notes. So, I thought, why not make this wonderful writing and note taking experience that [combines Obsidian with Neovim](https://joostagterhoek.nl/blog/learning-obsidian) also work for my online presence?
## Searching
Unfortunately, the solution was not so easy: combining [Grav](https://www.getgrav.org) with Obsidian didn't work, because they both interpret and rely on YAML frontmatter. Given that I had already spent quite some time setting up my ideal Obsidian/Nvim-experience, I thought, well, maybe that last bit is just too good to be true. And then, I thought of statically generated websites.
## Trying
I still don't have the workflow down exactly, but the ideal for me would be the following: I can write from Obsidian (phone or laptop) or Neovim a blog post, something about a project, and have it sync to and update my website seamlessly. After some failed attempts with Git and remote bare repositories (which I misunderstood), I think I *almost* have a working process.
1 => I write from my Obsidian vault (phone, laptop, Neovim)
2 => Obsidian and Neovim (with nvim.images) show me a preview of the content
3 => I sync the content to my server which puts it in the correct place and file ownership context
I would say that I'm stuck at step 3, but not in an immovable way: I just need to configure everything right, learn how to best leverage [rsync](https://linux.die.net/man/1/rsync) and [inotify-tools](https://manpages.debian.org/bullseye/inotify-tools/inotifywait.1.en.html) to get a somewhat smart syncing going on, and then I'm in business. Oh yeah, also, I hope to get my emoji game on with [this plugin](https://github.com/Allaman/emoji.nvim?tab=readme-ov-file), because, uh, I'm a professional...? See you soon!

View File

@ -0,0 +1,7 @@
+++
title = "Trying out my new Obsidian<->Zola sync"
date = 2024-08-26
description = "A blog post about my attempt to sync an Obsidian vault from WSL to my Zola-instance on my Yunohost-server."
+++
Here we are! The first post on this particular website that I hope to sync neatly from my workstation's WSL installation to my Yunohost-server. I have been thinking about and trying out various ways to do it: Git repositories, syncing services like Syncthing. But in the end, especially as I take this work laptop with me almost every other day, I don't want anything too sophisticated or requiring real maintenance. So for the sake of reliability and ease-of-use, I want to combine Obsidian (store the static files in a vault folder) with Git (version control those static files to my [Gitea-instance](https://www.code.joostagterhoek.nl) and rsync (sync the static files from my Obsidian vault folder to the server). A script on my server is waiting for new files in a user folder to copy (new or modified) or delete files from the user folder to the root path of Zola. I will try this workflow for this blog post and a few future posts or edits and see how it goes.