Powerfull this template with YAFPA
A digital garden using a custom version of simply-jekyll
, optimised for integration with Obsidian. It is more oriented on note-taking and aims to help you build a nice knowledge base that can scale with time.
If you want to see a more refined example, you can check my notes (in french) at owlly-house.
Issues are welcome, including feedback ! Don't hesitate to ask if you can't find a solution. 💫
- Markdown is fully-compatible with Obsidian (including Latex delimiters!)
- There are now only notes (no blog posts).
- There are cosmetic changes (ADHD-friendly code highlighting, larger font, larger page)
- Code is now correctly indented
- Wikilinks, but also alt-text wikilinks (with transclusion!) are usable.
You can click on this link and let the deploy-to-netlify-for-free-script do the rest !
Follow the How to setup this site guide, written by raghuveerdotnet and then adapted for this fork.
If you want to use it with Github Pages, it is possible, please read this.
Open an issue to share feedback or propose features. Star the repo if you like it! 🌟
Things to modify to make it yours:
- The favicon and profile are here: assets/site/
- You can change the header in assets/site/ (don't forget the name) and/or change this line
- The main stuff is in _config.yml:
title: My obsidian notebook name: Obsidian Notebook user_description: My linked notebook tagline: My linked notebook notes_url: "https://yourlink.netlify.app" profile_pic: /assets/site/profile.gif favicon: /assets/site/favicon.png logo: /assets/site/LOGO_SEO.png copyright_name: MIT baseurl: "/" # the subpath of your site, e.g. /blog url: "https://owlly-house.netlify.app/" # the base hostname & protocol for your site, e.g. http://example.com encoding: utf-8
- You may want to change the copyright in _includes/footer.html:
<p id="copyright-notice">Licence MIT</p>
On command-line, you can run bundle exec jekyll serve
then go to localhost:4000
to check the result.
You can style the sidenav for your need.
- Folder name had
.folder_name
class - Category name had
.category_name
class. You can use::marker
to style the marker before each summary.
Having files written in Markdown on Obsidian, I created a python script in order to semi-automatically share selected file, not all file, in my blog.
To install it use pip install YAFPA
You can have more information here and you can work on the script here.
You need to have python 3.8 on your computer, and pip
need to be in your PATH.
The first time you use the script, it will ask you three things :
- Your vault path (absolute path !)
- The path of the blog (absolute too !)
- The link of your blog, as
https://my-awesome-blog.netlify.app/
The script will be in $HOME/.YAFPA-env
so you can edit it with VIM/notepad/your hands…
You can also edit it with yafpa --config
Here is a blank sheet to help you if you want to manually write / edit it :
vault=
blog_path=
blog=
share=
With :
vault
: Vault Absolute Pathblog_path
: Blog repository absolute pathblog
: Blog linkshare
: your wanted share key ; by default :share
usage: yafpa [-h] [--preserve | --update] [--filepath FILEPATH] [--git] [--keep] [--config]
Create file in folder, move image in assets, convert to relative path, add share support, and push to git
optional arguments:
-h, --help
: show this help message and exit--preserve, --p, --P
: Don't delete file if already exist--update, --u, --U
: force update : delete all file and reform.--filepath FILEPATH, --f FILEPATH, --F FILEPATH
: Filepath of the file you want to convert--git, --g, --G
: No commit and no push to git--keep, --k
: Keep deleted file from vault and removed shared file--config, --c
: Edit the config file
The script work with the frontmatter :
share: true
: Share the file (this key can be changed in the configuration !)embed: false
: remove the transluction (convert to normal wikilinks)update: false
: Don't update the file at all.current: false
: Don't update the datefolder
: Use another folder than_notes
alternatively you can use thecategory
keycategory
: Choose a folder and a category for the file as :folder/category
folder
is optional ; as default :_notes
category
can befalse
to prevent apparence in the feed NB : ifcategory
andfolder
is used at the same time,folder
will be used as the folder.
flux: false
: remove the file from the feeddescription
: Add a description of the file in the feed.category: false
: Remove the file from the category feed ; Category is a classement for your file.
category: Roleplay/Application
date: 21-12-2021
share: true
tag: RP/Darkness-Haunted/Application/PC
title: (Darkness Haunted) Alwyn Kallendris
The file will be added in the Roleplay
folder ; and the Application
will now show the file in the sidebar, the Roleplay page and the collections page.
The metadata key folder
allow to use another folder than _note
.
There are two ways to create the files needed to use this option:
- You can use the little python script in
assets/script
, with :python3 assets/script/folder.py folder_name
- You can use the long way, modify the
_config.md
file and creating folder and main page.
Here is the steps for the long way :
- Create a new folder with the name you want, prefixed with
_
(as_notes
or_private
) - Add to the
_config.yml
:- collection :
private:
output: true
permalink: /folder_name/:title
- defaults
- scope:
path: ""
type: folder_name
values:
layout: post
content-type: notes
- Duplicate the
private.md
and rename it with the folder name you want.- In this new file, change the line
{%- if page.permalink == "/private/" -%}
for{%- if page.permalink == "/folder_name/" -%}
- Change the
permalink
key withpermalink: /folder_name/
- change
{% assign mydocs = site.folder_name | group_by: 'category' %}
- In this new file, change the line
And there is it !
Note : Git don't push empty folder. So, don't forget to create an empty file. (The python script will do it for you.)
Notes about Private folder : the private folder doesn't have a page, and doesn't appear in the feed or in search. The only way to access it is with the link (adding /private
at the end)
You can add custom css in custom css. It will be read when you use hashtag to stylize your text according to ContextualTypography and/or CodeMirror Options.
To add custom tag to customize your text, you need to edit the custom.css
file with :
#tag_name {
css_value : css;
. . .
}
The script will read the file and change #tag_name
to {: .tag_name}
.
The file custom_admonition
allow you to create custom admonition for the script.
The template is :
- admonition_type: #Admonition plugin, same name
- logo #emoji, ASCII...
- admonition_title #As in admonition plugin
A reference of logo used in the original script :
- Note, seelaso : 🖊️
- Abstract, summary, tldr: 📝
- info, todo: ℹ️
- tip, hint, important: 🔥
- success, check, done: ✨
- question, help, faq: ❓
- warning, caution, attention:
⚠️ - failure, fail, missing: ❌
- danger, error: ⚡
- bug: 🐛
- example, exemple: 📌
- quote, cite: 🗨️
Sometimes, you want to exclude folder for privacy, or just because you move a file in your archive, and forgot about the share state !
So, you can exclude folder with exclude_folder
.
The template is :
- folder_name
- folder_name2
(yes, it is just a list
⚠ File in excluded folder are deleted in the blog.
→ Please use Wikilinks with "short links" (I BEG YOU) You can integrate the script within obsidian using the nice plugin Obsidian ShellCommands.
You could create two commands :
share all
:yafpa
share one
:yafpa --f {{file_path:absolute}}
You can use :
- Customizable Sidebar
- Obsidian Customizable Menu To have a button to share your file directly in Obsidian !
→ The • indicate that this value is optional
title: My files•
date: 12-11-2021•
embed: true•
update: true•
current: true•
folder: notes•
flux: true•
share: false
category: Notes
description: my awesome file
You can use MetaEdit / Supercharged links to quickly update the front matter.