first seeds planted

This commit is contained in:
Lukasz Skotarek 2023-01-29 13:16:41 +01:00
parent fa52922077
commit 965776fde3
22 changed files with 126 additions and 222 deletions

View file

@ -1,32 +1,13 @@
[![Netlify Status](https://api.netlify.com/api/v1/badges/8cfa8785-8df8-4aad-ad35-8f1c790b8baf/deploy-status)](https://app.netlify.com/sites/digital-garden-jekyll-template/deploys)
# Entropic Jungle
# Digital garden Jekyll template
This marks second attempt at digital garden. This time I chose something with lower barrier to start writing.
Use this template repository to get started with your own digital garden.
As evertyhing in repo is work in progress and will grow overtime, so will this readme.
**I wrote a tutorial explaining how to set it up: [Setting up your own digital garden with Jekyll](https://maximevaillancourt.com/blog/setting-up-your-own-digital-garden-with-jekyll)**
Preview the template here: https://digital-garden-jekyll-template.netlify.app/
**Code forked from repo in this tutorial: [Setting up your own digital garden with Jekyll](https://maximevaillancourt.com/blog/setting-up-your-own-digital-garden-with-jekyll)**
- Based on Jekyll, a static website generator
- Supports Roam-style double bracket link syntax to other notes
- Creates backlinks to other notes automatically
- Features link previews on hover
- Includes graph visualization of the notes and their links
- Features a simple and responsive design
- Supports Markdown or HTML notes
<img width="1522" alt="Screen Shot 2020-05-19 at 23 05 46" src="https://user-images.githubusercontent.com/8457808/82400515-7d026d80-9a25-11ea-83f1-3b9cb8347e07.png">
## A note about GitHub Pages
GitHub Pages only partially supports this template: to power the interactive notes graph, this template uses a custom Jekyll plugin to generate the graph data in [`notes_graph.json`](https://github.com/maximevaillancourt/digital-garden-jekyll-template/blob/7ac331a4113bac77c993856562acc2bfbde9f2f7/_plugins/bidirectional_links_generator.rb#L102), and [GitHub Pages doesn't support custom Jekyll plugins](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll#plugins).
If you want to use the graph with GitHub Pages, you may try building your garden locally using Jekyll then pushing the result to GitHub Pages.
Alternatively, you may deploy your garden to Netlify and it'll work out of the box. [I wrote a guide explaining how to set this up](https://maximevaillancourt.com/blog/setting-up-your-own-digital-garden-with-jekyll).
If you don't care about the graph, you can simply remove it from this layout, [as explained here](https://github.com/maximevaillancourt/digital-garden-jekyll-template/discussions/132#discussioncomment-3625772).
[link to GitHub template](https://github.com/maximevaillancourt/digital-garden-jekyll-template).
## License

View file

@ -1,4 +1,4 @@
title: My digital garden
title: Entropic Jungle
include: ['_pages']
exclude: ['_includes/notes_graph.json']
# You may need to change the base URL depending on your deploy configuration.

View file

@ -1 +1,4 @@
This is the footer. Include anything you'd like here, like a link to an <a class="internal-link" href="/about">About</a> page.
<a class="internal-link" href="/about">about</a>
<br />
<br />
made with entropy by dreat.

View file

@ -5,6 +5,10 @@
<nav>{% include nav.html %}</nav>
<div class="wrapper">
<main>{{ content }}</main>
<hr>
<graph>Here are all the notes in this jungle, along with their links, visualized as a graph.</graph>
{% include notes_graph.html %}
<footer>{% include footer.html %}</footer>
</div>

View file

@ -14,7 +14,6 @@ layout: default
<div id="notes-entry-container">
<content>
{{ content }}
<p>This line appears after every note.</p>
</content>
<side style="font-size: 0.9em">
@ -31,6 +30,8 @@ layout: default
{% else %}
<div style="font-size: 0.9em">
<p>
There are no notes linking to this note.
</p>
@ -39,9 +40,3 @@ layout: default
</side>
</div>
</article>
<hr>
<p>Here are all the notes in this garden, along with their links, visualized as a graph.</p>
{% include notes_graph.html %}

BIN
_notes/.DS_Store vendored Normal file

Binary file not shown.

View file

@ -1,5 +0,0 @@
---
title: Bon appétit!
---
Page titles with accents are supported.

View file

@ -1,21 +0,0 @@
---
title: A note about cats
---
This is a second note with a poem with cats.
Here's a link to a note that explains why it's important to [[move your body every day]].
> I like my pillow, my fancy bed,
>
> My cat tree and the bathroom sink.
>
> Each has its time and fills a need,
>
> but a box is best when I want to think.
You can create as many notes as you want.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur et risus at ipsum pharetra pellentesque vel in massa. Nam ornare, velit sed pulvinar gravida, justo ipsum eleifend augue, id porta velit eros vestibulum odio. Vestibulum dignissim malesuada sapien, eu volutpat lacus pellentesque et. Curabitur dui nisi, sagittis ut tempor ac, scelerisque in diam. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum vitae euismod ex. Morbi lacinia iaculis tempor.
Nunc porttitor lacus ullamcorper mauris porttitor feugiat. Vestibulum condimentum lacus vitae orci lobortis pellentesque in ac dolor. Nullam libero justo, suscipit id suscipit vel, tincidunt vitae lectus. Phasellus gravida iaculis ligula, at pharetra urna. Nunc vel tellus eleifend, aliquet magna non, condimentum est. Pellentesque vulputate posuere felis eget sodales. Cras finibus tortor porta libero bibendum, vel bibendum orci luctus. Donec ac eros vitae erat malesuada imperdiet at tempor turpis.

View file

@ -1,5 +0,0 @@
---
title: Tigers
---
This is yet another note, this one about tigers.

10
_notes/categories.md Normal file
View file

@ -0,0 +1,10 @@
---
title: Categories
---
<status>Status: 🌱 </status>
This is a starting point of a `graph`, I list all categories I write about here
- [[software engineering]]
- [[random]]

24
_notes/codex vitae.md Normal file
View file

@ -0,0 +1,24 @@
---
title: Codex Vitae
---
<status>Status: 🌱 </status>
This is my Codex Vitae, a list of things I believe/follow in life. Feel free to take anything that resonates, but please remember those are things that work for me and may not necessarily work for you.
## people
- Don't be a dick
- Give everyone a chance, but if they turn out to be not worth the time - remove from life
- Remember about [[excuse hydra]] and avoid it.
- If you can give some value to someone with low/zero cost - do it.
- Unsolicited help/advice is worse than lack of it
## philosophy
- Stoicism seems to work really well
- Don't suffer imagined troubles - if something bad has not happened yet, it's not terrible.
- You can prepare for the bad thing thou - just don't get stressed about something
- Happiness comes from things you have control over - from the inside
- You don't have control over other people's reactions
- You do have control over your own reaction - anger is easily managed by stopping for a second before reacting
- Treat every situation like a hand in a card game - you try to play best what you're given, not complain about what you got.
- There's no "inherent fairness" to the world, some people will have better/worse start than you had - don't waste time and energy complaining about it

View file

@ -1,7 +0,0 @@
---
title: Consistency is key
---
Show up. Do the work. Be consistent.
Then go take a look at the [[Your first note|first note]].

17
_notes/excuse hydra.md Normal file
View file

@ -0,0 +1,17 @@
---
title: Excuse Hydra
---
<status>Status: 🌱 </status>
Sometimes people will have an excuse for not doing **the thing**.
The natural instinct here is to help them dissolve the excuse, to help them. If that happens and they say "thanks!" and go their way, then good job, you did something good.
But sometimes other thing will happen - they will have another excuse ready. You cut it down too, and there's another one. That's something I call "excuse hydra" -> no matter how many excuses you defeat, there's always a new one.
My hunch here is that folks who do that don't actually want/need help - just attention. By being there and fighting with hydra, you give them that while wasting your energy and time.
While I'm not sure if that's the (only) reason for hydra to appear, what I'm sure that one should not engage with excuse hydra. As soon as you notice it - just stop fighting with it. Change topic, or end conversation. It's a waste of time and energy.
Note: there may be a lot of excuses and it will not be excuse hydra - what I've encourtered the most is excuses being "provided" very quickly, right after you get one down. If you talk with someone for 3 hrs and during that time you get 5 excuses, with some timespan in between, chances are that it's not excuse hydra.

View file

@ -1,11 +0,0 @@
---
---
Move your body every day. Benefits include:
- Improved sleep quality
- Less risk of chronic disease
- Increased productivity
- Reduced anxiety
The "every day" part is important, because [[consistency]] is key to most things worth doing.

9
_notes/random.md Executable file
View file

@ -0,0 +1,9 @@
---
title: random
---
<status>Status: 🌱 </status>
(At least for now) a bag for all thoughts that do not fit other categories
- [[excuse hydra]]

View file

@ -0,0 +1,7 @@
---
title: Software Engineering
---
During my years working with code I stumbled upon stories to share and some thoughts to explore. All of those will be put here
[[SOLID for FP]]

15
_notes/solid for fp.md Normal file
View file

@ -0,0 +1,15 @@
---
title: SOLID for FP
---
<status>Status: 🌱 </status>
I have OOP brackground and used SOLID and other OOP techniques to make my code better.
Since then I switched to FP and feel like there's not enough `guidelines` for writing FP code. At the same time I have a hunch that some of the OOP wisdom can be applied here.
- **S**ingle Responsibility Principle - this one is easy and free to take. Just make sure that your methods have "one reason to change" - a single responsobility. Make them small and specialized. Anything with `and` in name can be a sign that there's too much going on
- **O**pen Close Principle - this one is trickier, but if we say that refactoring is flow of making code open to extension - this makes things easier to adapt. Basically you want to be able to add new functionalities withtout altering existing code - and this can be achieved in FP.
- **L**iskov Substitution Principle -
- **I**nterface Segregation Principle -
- **D**ependency Inversion Principle - can be argued to go with "top level module" as main dependency, instead of more specialized ones.

View file

@ -1,126 +0,0 @@
---
title: Your first seed
---
### Welcome!
This is your first note. You'll find it in the [`notes/`](https://github.com/maximevaillancourt/digital-garden-jekyll-template/tree/master/_notes) directory.
### Link syntax
To link to another note, you can use multiple syntaxes. The following four use the "double-bracket" notation ([view the Markdown source file](https://github.com/maximevaillancourt/digital-garden-jekyll-template/blob/master/_notes/your-first-note.md#link-syntax) to see the underlying syntax).
- Using the note title: [[a note about cats]]
- Using the note's filename: [[cats]]
- Using the note's title, with a label: [[A note about cats|link to the note about cats using the note title]]
- Using the note's filename, with a label: [[cats|link to the note about cats using the note's filename]]
You can organize notes in subdirectories and link them normally. For example, the links above all point to the `_notes/animals/cats.md` file. Here's another example: [[tigers]].
Non-latin languages are supported: [[안녕하세요]]; so are accents/diacritics: [[bon appétit!]]
Dashes and underscores in file names are supported, and may be omitted in the bracket link syntax. As an example, the `your-first-note.md` file can be linked to with [[your first note]] or [[your-first-note]], or even [[yOuR-FiRsT Note]].
In all cases, if the double-bracket link does not point to a valid note, the double brackets will still be shown, like this: [[there is no note that matches this link]].
Alternatively, you can use regular [Markdown syntax](https://www.markdownguide.org/getting-started/) for links, with a relative link to the other note, like this: [this is a Markdown link to the note about cats](/cats){: .internal-link}. Don't forget to use the `.internal-link` class to make sure the link is styled as an internal link (without the little arrow).
Since the Web is all about HTML, you can always use plain HTML if you want, like this: <a class="internal-link" href="/cats">This is a link to the note about cats with HTML</a>.
Of course, you can also link to external websites, like this: [this is a link to Wikipedia](https://wikipedia.org/). Again, you can use plain HTML if you prefer. Footnotes are also supported and will be treated like internal links.[^1] You can point to other notes in your footnotes.[^2]
[^1]: This is a footnote. For more information about using footnotes, check out the [Markdown Guide](https://www.markdownguide.org/extended-syntax/#footnotes).
[^2]: This is another footnote that links to the note about [[cats]]. You may also point to [[notes that do not exist]] if you wish.
### Tweet embedding
Note: This behavior is disabled by default for privacy reasons. See "Site configuration" section below to enable it.
You may include a tweet URL on its own line (like below), and it would be replaced with an official Twitter embed if the site configuration demands it.
https://twitter.com/jack/status/20
### Media embedding
You may embed media files within a note using HTML5 media tags. Here's an example for an audio file:
"Jazzy Frenchy" by Benjamin Tissot from bensound.com
<audio controls>
<source src="/assets/jazzyfrenchy.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
### Site configuration
Some behavior is configurable by tweaking the `_config.yml` file.
**`use_html_extension`**: if you use a static host that doesn't support URLs that don't end with `.html` (such as Neocities), try changing the `use_html_extension` value to `true` in the `_config.yml` file and restart the Jekyll server (or re-build the site). This adds a `.html` extension to note URLs and may resolve issues with links. If you're still having trouble, I recommend using Netlify to host your digital garden: it's free, easy to use, and fully supports this template's features out of the box.
**`open_external_links_in_new_tab`**: when set to `true`, this makes external links open in new tabs. Set to `false` to open all links in the current tab.
**`embed_tweets`**: when set to `true`, tweet URLs on their own lines will be replaced with a Twitter embed. Default value is `false`.
### Automatic bi-directional links
Notice in the "Notes mentioning this note" section that there is another note linking to this note. This is a bi-directional link, and those are automatically created when you create links to other notes.
### Link previews
If you're on a device with mouse support, try hovering your mouse on internal links to preview the notes: [[a note about cats]].
Links that have been previewed will be cached to avoid redundant requests.
### Images and other Markdown goodies
Finally, because you have the full power of Markdown in this template, you can use regular Markdown syntax for various formatting options.
Lists work as expected:
- List element A
- List element B
- List element C
1. List element
2. List element
3. List element
If you'd like to quote other people, consider using quote blocks:
> Lorem ipsum dolor sit amet
And of course, images look great:
<img src="/assets/image.jpg"/>
You can also ==highlight some content== by wrapping it with `==`.
Non-latin languages are supported too: ==你好==, ==안녕하세요==, ==こんにちは==.
### Code syntax highlighting
You can add code blocks with full syntax color highlighting by wrapping code snippet in triple backticks and specifying the type of the code (`js`, `rb`, `sh`, etc.):
```js
// Here's a bit of JavaScript:
console.log('hello!')
```
```rb
# And now some Ruby
def foo(bar)
"baz"
end
```
```sh
$ cat /dev/urandom | grep "the answer to life" # shell scripts look nice too
```
### Next steps
This digital garden template is free, open-source, and [available on GitHub here](https://github.com/maximevaillancourt/digital-garden-jekyll-template).
The easiest way to build your own digital garden based on this template is to read this [step-by-step guide explaining how to set this up from scratch](https://maximevaillancourt.com/blog/setting-up-your-own-digital-garden-with-jekyll).
Go forth, have fun, and learn new something every day! ✌️

View file

@ -1,6 +0,0 @@
---
title: 안녕하세요
---
This template supports any language. Come as you are! :)

View file

@ -4,6 +4,9 @@ title: About
permalink: /about
---
*This is an about page.*
Feel free to tell the world about what you love! 😍
Hi I'm <a class="external-link" href="https://dreat.info">dreat</a>.
I'm a Software Monk, Drummer and Ambient creator.
This is my space to organize things I know and think about.

View file

@ -5,15 +5,20 @@ id: home
permalink: /
---
# Welcome! 🌱
# Welcome!
<p style="padding: 3em 1em; background: #f5f7ff; border-radius: 4px;">
Take a look at <span style="font-weight: bold">[[Your first note]]</span> to get started on your exploration.
</p>
Hello! Welcome to my take on digital gardening, an entropic jungle.
This digital garden template is free, open-source, and [available on GitHub here](https://github.com/maximevaillancourt/digital-garden-jekyll-template).
Feel free to explore my brain dumps.
You may want to take a look at [[categories]]
Small legend that can be useful:
- 🌱 - very early stage - probably just dumping an idea/thought
- 🌿 - some effort put - some cleanup/clarification done
- 🌳 - "finished" - this *does not* mean that this won't be ever edited. But it means I spent a lot of time and **probably** won't touch it
The easiest way to get started is to read this [step-by-step guide explaining how to set this up from scratch](https://maximevaillancourt.com/blog/setting-up-your-own-digital-garden-with-jekyll).
<style>
.wrapper {

View file

@ -36,6 +36,18 @@ footer {
padding-top: 1em;
}
graph {
font-size: 0.8em;
color: mix($color-text, white, 80%);
margin: 2em 0;
}
status {
font-size: 0.8em;
color: mix($color-text, white, 80%);
margin: 2em 0;
}
img {
max-width: 100%;
display: block;