summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/content_images/emacs-logo.pngbin0 -> 212742 bytes
-rw-r--r--config.toml19
-rw-r--r--content-org/emacs.org22
-rw-r--r--content/emacs/elfeed-literate-config.md12
-rw-r--r--content/emacs/emacs-as-a-shell.md5
-rw-r--r--content/emacs/input-completition-in-emacs.md9
-rw-r--r--content/emacs/literate-programing-in-emacs.md7
-rw-r--r--content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md11
-rw-r--r--content/emacs/notmuch.md13
-rw-r--r--content/emacs/org-babel.md8
-rw-r--r--content/emacs/watching-youtube-with-emacs.md5
-rw-r--r--content/emacs/whys-of-emacs.md5
-rw-r--r--layouts/_default/index.html3
-rw-r--r--layouts/partials/homepage/bsd.html25
-rw-r--r--layouts/partials/homepage/emacs.html30
-rw-r--r--resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_100x0_resize_q75_h2_box_3.webpbin0 -> 2476 bytes
-rw-r--r--resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_150x0_resize_q75_h2_box_3.webpbin0 -> 3990 bytes
-rw-r--r--resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_300x0_resize_q75_h2_box_3.webpbin0 -> 8164 bytes
-rw-r--r--resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_50x0_resize_q75_h2_box_3.webpbin0 -> 1076 bytes
-rw-r--r--static/style.css346
20 files changed, 285 insertions, 235 deletions
diff --git a/assets/content_images/emacs-logo.png b/assets/content_images/emacs-logo.png
new file mode 100644
index 0000000..2878daf
--- /dev/null
+++ b/assets/content_images/emacs-logo.png
Binary files differ
diff --git a/config.toml b/config.toml
index cb8269a..3919d7a 100644
--- a/config.toml
+++ b/config.toml
@@ -89,10 +89,25 @@ enableGitInfo = true
[[menu.bsd.params]]
nonpage = "yes"
+# emacs menu
+[[menu.emacs]]
+ name = "Guides"
+ weight = "10000000"
+ pageRef = "/"
+ identifier = "guides"
+ [[menu.emacs.params]]
+ nonpage = "yes"
+
+[[menu.emacs]]
+ name = "Varia"
+ weight = "10000030"
+ pageRef = "/"
+ identifier = "varia"
+ [[menu.emacs.params]]
+ nonpage = "yes"
# categories:P
-# - emacs
-# - bsd
+# - emacs# - bsd
# - engineering
# - star-trek
# - jazz
diff --git a/content-org/emacs.org b/content-org/emacs.org
index ed8850d..3467773 100644
--- a/content-org/emacs.org
+++ b/content-org/emacs.org
@@ -107,7 +107,7 @@ If you are one of them, you may instead try some ready Emacs distributions, like
* Guides :@emacs:
:PROPERTIES:
-:EXPORT_HUGO_MENU: :menu emacs-guides
+:EXPORT_HUGO_MENU: :menu emacs :parent guides
:END:
** DONE Emacs: Input Completiton in Emacs
@@ -115,7 +115,7 @@ CLOSED: [2023-05-26 Wed 23:00]
:PROPERTIES:
:EXPORT_FILE_NAME: input-completition-in-emacs
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract Icomplete, IDO and FIDO
-:EXPORT_HUGO_MENU: :menu emacs-guides :name "Input completition (Icomplete, IDO, and FIDO)"
+:EXPORT_HUGO_MENU_OVERRIDE: :name "Input completition (Icomplete, IDO, and FIDO)"
:END:
Emacs consists of a massive set of tools with a long history.
Therefore, whatever the problem is, someone likely has already created a package for it.
@@ -222,7 +222,7 @@ CLOSED: [2024-01-30 Tue 19:10]
:PROPERTIES:
:EXPORT_FILE_NAME: literate-programing-in-emacs
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract A short introduction into the idea of literate programming
-:EXPORT_HUGO_MENU: :menu "emacs-guides" :identifier "litprog" :name "Literate programming"
+:EXPORT_HUGO_MENU_OVERRIDE: :identifier "litprog" :name "Literate programming"
:END:
*** Abstract
@@ -334,7 +334,7 @@ CLOSED: [2024-02-07 Wed 21:23]
:PROPERTIES:
:EXPORT_FILE_NAME: org-babel
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract A short introduction into the world if Org Babel
-:EXPORT_HUGO_MENU: :menu "emacs-guides" :parent "litprog" :name "Literate programing in Org with Babel"
+:EXPORT_HUGO_MENU_OVERRIDE: :parent "litprog" :name "Literate programing in Org with Babel"
:END:
*Abstract*: a very short introduction into the word of Org Babel.
@@ -495,7 +495,7 @@ CLOSED: [2023-05-19 Wed 23:00]
:EXPORT_FILE_NAME: moving-my-rss-reading-to-emacs-with-elfeed
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract Setting up config inside an org file
:EXPORT_HUGO_PAIRED_SHORTCODES: img-c
-:EXPORT_HUGO_MENU: :menu "emacs-guides" :identifier "elfeed" :name "Following RSS with Elfeed"
+:EXPORT_HUGO_MENU_OVERRIDE: :identifier "elfeed" :name "Following RSS with Elfeed"
:END:
Since Emacs became my shell of choice[fn:1], I am abandoning more and more dedicated applications in favor of different packages.
As it turns out, Emacs packages are very feature rich.
@@ -570,7 +570,7 @@ CLOSED: [2023-06-02 Wed 23:00]
:PROPERTIES:
:EXPORT_FILE_NAME: elfeed-literate-config
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract Setting up config inside an org file
-:EXPORT_HUGO_MENU: :menu "emacs-guides" :parent "elfeed" :name "Literate configuration"
+:EXPORT_HUGO_MENU_OVERRIDE: :parent "elfeed" :name "Literate configuration"
:END:
Recently I've been toying with a literate configuration[fn:literate] of Emacs.
My init.el took a straightforward form:
@@ -638,7 +638,7 @@ CLOSED: [2023-07-03 Wed 23:00]
:PROPERTIES:
:EXPORT_FILE_NAME: notmuch
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract My email based workflow for GitHub Pull Review Requests
-:EXPORT_HUGO_MENU: :menu emacs-guides :name "Reading and automating email using Notmuch"
+:EXPORT_HUGO_MENU_OVERRIDE: :name "Reading and automating email using Notmuch"
:END:
Web email interfaces have taken over the world a long time ago.
Except for Outlook users, only a few people even consider using an actual application for it.
@@ -975,7 +975,7 @@ CLOSED: [2024-02-23 Fri 16:16]
:PROPERTIES:
:EXPORT_FILE_NAME: watching-youtube-with-emacs
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract Let's use YouTube from the comfort of Emacs
-:EXPORT_HUGO_MENU: :menu emacs-guides :name "Watching YouTube"
+:EXPORT_HUGO_MENU_OVERRIDE: :name "Watching YouTube"
:EXPORT_HUGO_PAIRED_SHORTCODES: img-c
:END:
@@ -1087,13 +1087,13 @@ We need to use =eww= to open the page and we can get the URL from there.
* Varia :@emacs:
:PROPERTIES:
-:EXPORT_HUGO_MENU: :menu emacs-varia
+:EXPORT_HUGO_MENU: :menu emacs :parent varia
:END:
** DONE Emacs as a Shell
CLOSED: [2023-04-13 Wed 23:00]
:PROPERTIES:
:EXPORT_FILE_NAME: emacs-as-a-shell
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract My current understanding of Emcs
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract My current understanding of Emacs
:END:
Pavel Korytov writes in his [[https://sqrtminusone.xyz/posts/2023-04-13-emacs/][recent post]];
@@ -1114,7 +1114,7 @@ So, when you look at it this way, Emacs makes a lot of sense:
- It allows for interoperability between programs.
- It runs above basic OS. You can replace your window manager with Emacs, but you need some sort of kernel.
- You can live entirely inside Emacs, just like you can live entirely inside a terminal.
-
+
** DONE My "whys" for Emacs
CLOSED: [2023-12-26 Tue 22:12]
:PROPERTIES:
diff --git a/content/emacs/elfeed-literate-config.md b/content/emacs/elfeed-literate-config.md
index 6ad965c..6b6f5ed 100644
--- a/content/emacs/elfeed-literate-config.md
+++ b/content/emacs/elfeed-literate-config.md
@@ -1,15 +1,15 @@
+++
-title = "Literate configuration of Elfeed"
+title = "Emacs: Literate configuration of Elfeed"
author = ["Michał Sapka"]
date = 2023-06-02T23:00:00+02:00
categories = ["emacs"]
draft = false
-weight = 2004
+weight = 2005
abstract = "Setting up config inside an org file"
[menu]
- [menu.emacs-guides]
- weight = 2004
- identifier = "literate-configuration-of-elfeed"
+ [menu.emacs]
+ weight = 2005
+ identifier = "emacs-literate-configuration-of-elfeed"
parent = "elfeed"
name = "Literate configuration"
+++
@@ -77,4 +77,4 @@ Just a few lines down, I start to define my list of subscriptions:
Much more readable! Elfeed-org will ignore the entire outer tree and extract the feeds from leaves under the \`:elfeed:\` tag.
[^fn:1]: : <https://en.wikipedia.org/wiki/Literate_programming>
-[^fn:2]: : <https://github.com/remyhonig/elfeed-org> \ No newline at end of file
+[^fn:2]: : <https://github.com/remyhonig/elfeed-org>
diff --git a/content/emacs/emacs-as-a-shell.md b/content/emacs/emacs-as-a-shell.md
index e375a1d..cea18fa 100644
--- a/content/emacs/emacs-as-a-shell.md
+++ b/content/emacs/emacs-as-a-shell.md
@@ -5,11 +5,12 @@ date = 2023-04-13T23:00:00+02:00
categories = ["emacs"]
draft = false
weight = 2001
-abstract = "My current understanding of Emcs"
+abstract = "My current understanding of Emacs"
[menu]
- [menu.emacs-varia]
+ [menu.emacs]
weight = 2001
identifier = "emacs-as-a-shell"
+ parent = "varia"
+++
Pavel Korytov writes in his [recent post](https://sqrtminusone.xyz/posts/2023-04-13-emacs/);
diff --git a/content/emacs/input-completition-in-emacs.md b/content/emacs/input-completition-in-emacs.md
index 66b2d9c..3e7c5b2 100644
--- a/content/emacs/input-completition-in-emacs.md
+++ b/content/emacs/input-completition-in-emacs.md
@@ -1,5 +1,5 @@
+++
-title = "Input Completiton in Emacs"
+title = "Emacs: Input Completiton in Emacs"
author = ["Michał Sapka"]
date = 2023-05-26T23:00:00+02:00
categories = ["emacs"]
@@ -7,9 +7,10 @@ draft = false
weight = 2001
abstract = "Icomplete, IDO and FIDO"
[menu]
- [menu.emacs-guides]
+ [menu.emacs]
weight = 2001
- identifier = "input-completiton-in-emacs"
+ identifier = "emacs-input-completiton-in-emacs"
+ parent = "guides"
name = "Input completition (Icomplete, IDO, and FIDO)"
+++
@@ -115,4 +116,4 @@ The great thing about FIDO is that it, like Icomplete, uses Minibuffer API[^fn:7
[^fn:4]: [IDO documentation](https://www.gnu.org/software/emacs/manual/html_mono/ido.html)
[^fn:5]: [Helm website](https://emacs-helm.github.io/helm/)
[^fn:6]: [Ivy website](https://oremacs.com/swiper/)
-[^fn:7]: [Guide on Minibuffer completition](https://www.gnu.org/software/emacs/manual/html_node/elisp/Minibuffer-Completion.html) \ No newline at end of file
+[^fn:7]: [Guide on Minibuffer completition](https://www.gnu.org/software/emacs/manual/html_node/elisp/Minibuffer-Completion.html)
diff --git a/content/emacs/literate-programing-in-emacs.md b/content/emacs/literate-programing-in-emacs.md
index bf8333f..258a96d 100644
--- a/content/emacs/literate-programing-in-emacs.md
+++ b/content/emacs/literate-programing-in-emacs.md
@@ -1,5 +1,5 @@
+++
-title = "Introduction to Literate programming"
+title = "Emacs: Introduction to Literate programming"
author = ["Michał Sapka"]
date = 2024-01-30T19:10:00+01:00
categories = ["emacs"]
@@ -7,8 +7,9 @@ draft = false
weight = 2002
abstract = "A short introduction into the idea of literate programming"
[menu]
- [menu.emacs-guides]
+ [menu.emacs]
weight = 2002
+ parent = "guides"
identifier = "litprog"
name = "Literate programming"
+++
@@ -113,4 +114,4 @@ You can learn more (including much better example) by reading the [original Knut
[^fn:1]: ["Literate Programming -- Propaganda and Tools", Christopher Lee, 1997](https://web.archive.org/web/20170603045917/http://vasc.ri.cmu.edu:80/old_help/Programming/Literate/literate.html)
[^fn:2]: this name was choosen, because at the time it was not in use related to computing.
We're dealing with history here!
-[^fn:3]: I know that Jupyter is not strictly a literate program, but it's close enough. \ No newline at end of file
+[^fn:3]: I know that Jupyter is not strictly a literate program, but it's close enough.
diff --git a/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md b/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md
index f923ab5..508a31b 100644
--- a/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md
+++ b/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md
@@ -1,14 +1,15 @@
+++
-title = "Moving My RSS Reading to Emacs With Elfeed"
+title = "Emacs: Moving My RSS Reading to Elfeed"
author = ["Michał Sapka"]
date = 2023-05-19T23:00:00+02:00
categories = ["emacs"]
draft = false
-weight = 2003
+weight = 2004
abstract = "Setting up config inside an org file"
[menu]
- [menu.emacs-guides]
- weight = 2003
+ [menu.emacs]
+ weight = 2004
+ parent = "guides"
identifier = "elfeed"
name = "Following RSS with Elfeed"
+++
@@ -75,4 +76,4 @@ Elfeed has a few packages expanding its functionality, but I found the default b
[^fn:1]: [Emacs as a Shell](/2023/emacs-as-a-shell/)
[^fn:2]: [Newsboat homepage](https://newsboat.org/)
[^fn:3]: [Elfeed repository on Github](https://github.com/skeeto/elfeed)
-[^fn:4]: my elisp-fu not good \ No newline at end of file
+[^fn:4]: my elisp-fu not good
diff --git a/content/emacs/notmuch.md b/content/emacs/notmuch.md
index 0a7cc29..47338e6 100644
--- a/content/emacs/notmuch.md
+++ b/content/emacs/notmuch.md
@@ -1,15 +1,16 @@
+++
-title = "Managing email with Notmuch and Emacs"
+title = "Emacs: Managing email with Notmuch"
author = ["Michał Sapka"]
date = 2023-07-03T23:00:00+02:00
categories = ["emacs"]
draft = false
-weight = 2005
+weight = 2006
abstract = "My email based workflow for GitHub Pull Review Requests"
[menu]
- [menu.emacs-guides]
- weight = 2005
- identifier = "managing-email-with-notmuch-and-emacs"
+ [menu.emacs]
+ weight = 2006
+ identifier = "emacs-managing-email-with-notmuch"
+ parent = "guides"
name = "Reading and automating email using Notmuch"
+++
@@ -349,4 +350,4 @@ One cool thing I plan to apply soon is integrating notmuch(1) with Org-mode with
[^fn:13]: [Afew on Github](https://github.com/afewmail/afew)
[^fn:14]: [Prot's website](<https://protesilaos.com/>)
[^fn:15]: [Muchsync homepage](https://www.muchsync.org/)
-[^fn:16]: my work computer gets all work messages, and my private one gets all private ones—complete separation. When I get a second personal machine, I will set it up, but for now, there is no use case for me. \ No newline at end of file
+[^fn:16]: my work computer gets all work messages, and my private one gets all private ones—complete separation. When I get a second personal machine, I will set it up, but for now, there is no use case for me.
diff --git a/content/emacs/org-babel.md b/content/emacs/org-babel.md
index 363fde9..691f6c7 100644
--- a/content/emacs/org-babel.md
+++ b/content/emacs/org-babel.md
@@ -1,5 +1,5 @@
+++
-title = "Executing code in Org files with Babel"
+title = "Emacs: Executing code in Org files with Babel"
author = ["Michał Sapka"]
date = 2024-02-07T21:23:00+01:00
categories = ["emacs"]
@@ -7,9 +7,9 @@ draft = false
weight = 2003
abstract = "A short introduction into the world if Org Babel"
[menu]
- [menu.emacs-guides]
+ [menu.emacs]
weight = 2003
- identifier = "executing-code-in-org-files-with-babel"
+ identifier = "emacs-executing-code-in-org-files-with-babel"
parent = "litprog"
name = "Literate programing in Org with Babel"
+++
@@ -172,4 +172,4 @@ If you are interested in the subject, you can look at much more details sources:
[^fn:1]: you may argue and say that `magit` had bigger impact.
I disagree.
Magit made using git nicer and easier, but it is still the old, old git.
- Babel changed the way we use the edit code, the way we think and how we work. \ No newline at end of file
+ Babel changed the way we use the edit code, the way we think and how we work.
diff --git a/content/emacs/watching-youtube-with-emacs.md b/content/emacs/watching-youtube-with-emacs.md
index fc8b5da..a064626 100644
--- a/content/emacs/watching-youtube-with-emacs.md
+++ b/content/emacs/watching-youtube-with-emacs.md
@@ -7,9 +7,10 @@ draft = false
weight = 2007
abstract = "Let's use YouTube from the comfort of Emacs"
[menu]
- [menu.emacs-guides]
+ [menu.emacs]
weight = 2007
identifier = "emacs-watching-youtube-with-yeetube-and-mpv"
+ parent = "guides"
name = "Watching YouTube"
+++
@@ -116,4 +117,4 @@ Then, just add a simple keyboard navigation, and you're done
You can find the channel ID using different online services, as it is not as straight forward as it should be.
[^fn:4]: Only if the package registers itself as a provider for `thing-at-point`.
In Elfeed it will for main item URL, but not for items embedded in the body.
- We need to use `eww` to open the page and we can get the URL from there. \ No newline at end of file
+ We need to use `eww` to open the page and we can get the URL from there.
diff --git a/content/emacs/whys-of-emacs.md b/content/emacs/whys-of-emacs.md
index d5a478f..2c62ee1 100644
--- a/content/emacs/whys-of-emacs.md
+++ b/content/emacs/whys-of-emacs.md
@@ -9,9 +9,10 @@ draft = false
weight = 2002
abstract = "My reasons for using Emacs"
[menu]
- [menu.emacs-varia]
+ [menu.emacs]
weight = 2002
identifier = "my-whys-for-emacs"
+ parent = "varia"
+++
I have used many editors over the years.
@@ -176,4 +177,4 @@ Using Emacs _sparks joy_.
[^fn:13]: this also applies my other love, [BSD](/bsd/)
[^fn:14]: sadly, this was one of the biggest reasons I stopped following certain hyperactive Vim evangelist.
Let him become nameless.
-[^fn:15]: there is a very funny movie about this <https://www.youtube.com/watch?v=urcL86UpqZc> \ No newline at end of file
+[^fn:15]: there is a very funny movie about this <https://www.youtube.com/watch?v=urcL86UpqZc>
diff --git a/layouts/_default/index.html b/layouts/_default/index.html
index 9dc6df3..fcdcb25 100644
--- a/layouts/_default/index.html
+++ b/layouts/_default/index.html
@@ -29,6 +29,7 @@ Hey! I'm Michał Sapka, a computer programmer living in Kraków, Poland. This we
<a href="/blog/">&raquo; Go to blog</a></p>
{{ partial "partials/homepage/bsd.html" . }}
+ {{ partial "partials/homepage/emacs.html" . }}
<h2>Sections</h2>
@@ -36,7 +37,7 @@ Hey! I'm Michał Sapka, a computer programmer living in Kraków, Poland. This we
<P><a class="sec-link" href="/blog/"><b>Blog</b>: my shorter publications withount any theme. You can treat it as E/N site.</a> </p>
<P><a class="sec-link" href="/articles/"><b>Articles</b>: longer publications that don't fit blog or any other category.</a> </p>
- <P><a class="sec-link" href="/emacs/"><b>C-X Emacs</b>: this is my Emacs. There are many like it, but this one is mine. My Emacs is my best friend. It is my life.</a> </p>
+
<P><a class="sec-link" href="/star-trek/"><b>Star Trek fan site</b>: my little shrine to the greatest american Sci-Fi that has ever graced our screens.</a> </p>
<P><a class="sec-link" href="/funnies/"><b>Funnies</b>: A small, curated collection of things I found funny or ammusing.</a> </p>
<p><a class="sec-link" href="/git/"><b>Version control system</b> : My little code repository. I don't expect to cooporate on any of those, so it's just stagit.</a></p>
diff --git a/layouts/partials/homepage/bsd.html b/layouts/partials/homepage/bsd.html
index 358218b..5882379 100644
--- a/layouts/partials/homepage/bsd.html
+++ b/layouts/partials/homepage/bsd.html
@@ -4,24 +4,21 @@
{{- $img1x := $img.Resize "150x webp" }}
{{- $img2x := $img.Resize "300x webp" }}
-
-
<section class="bsd" style="display: flow-root">
<h2 id="bsd">Berkeley Software Distribution</h2>
- <img
- style="float: right; max-width: 20%;"
- src="{{ $img1x.Permalink }}"
- srcset="
- {{ $img1x.Permalink }} 1x,
- {{ $img2x.Permalink }} 2x
- "
- width="{{ $img1x.Width }}"
- height="{{ $img1x.Height }}"
->
+ <img
+ style="float: right; max-width: 20%;"
+ src="{{ $img1x.Permalink }}"
+ srcset="
+ {{ $img1x.Permalink }} 1x,
+ {{ $img2x.Permalink }} 2x
+ "
+ width="{{ $img1x.Width }}"
+ height="{{ $img1x.Height }}"
+ >
- Some articles on the BSD family of Operating Systems I use
- {{ partial "menu.html" (dict "menuID" "bsd" "page" .) }}
+ Some articles on the BSD family of Operating Systems I use: {{ partial "menu.html" (dict "menuID" "bsd" "page" .) }}
</section>
diff --git a/layouts/partials/homepage/emacs.html b/layouts/partials/homepage/emacs.html
new file mode 100644
index 0000000..52c9ea2
--- /dev/null
+++ b/layouts/partials/homepage/emacs.html
@@ -0,0 +1,30 @@
+{{- $file := "emacs-logo.png" }}
+{{- $path := printf "content_images/%s" $file}}
+{{- $img := resources.Get $path }}
+{{- $img1x := $img.Resize "50x webp" }}
+{{- $img2x := $img.Resize "100x webp" }}
+
+<section class="emacs">
+ <h2>Emacs</h2>
+ <div style="display: flow-root; vertical-align: middle;">
+ <img
+ style="float: left; max-width: 20%; margin-right: 10px;"
+ src="{{ $img1x.Permalink }}"
+ srcset="
+ {{ $img1x.Permalink }} 1x,
+ {{ $img2x.Permalink }} 2x
+ "
+ width="{{ $img1x.Width }}"
+ height="{{ $img1x.Height }}"
+ >
+
+ After years of using (neo)vim, I've migrated fully to Emacs.
+ Funny thing about this editor is that it's not only an editor but a style of life.
+
+ <p>
+ Here you can find some articles I've written about it:
+ </p>
+ </div>
+ {{ partial "menu.html" (dict "menuID" "emacs" "page" .) }}
+
+ </section>
diff --git a/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_100x0_resize_q75_h2_box_3.webp b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_100x0_resize_q75_h2_box_3.webp
new file mode 100644
index 0000000..f661643
--- /dev/null
+++ b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_100x0_resize_q75_h2_box_3.webp
Binary files differ
diff --git a/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_150x0_resize_q75_h2_box_3.webp b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_150x0_resize_q75_h2_box_3.webp
new file mode 100644
index 0000000..6a82688
--- /dev/null
+++ b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_150x0_resize_q75_h2_box_3.webp
Binary files differ
diff --git a/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_300x0_resize_q75_h2_box_3.webp b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_300x0_resize_q75_h2_box_3.webp
new file mode 100644
index 0000000..35df4a3
--- /dev/null
+++ b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_300x0_resize_q75_h2_box_3.webp
Binary files differ
diff --git a/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_50x0_resize_q75_h2_box_3.webp b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_50x0_resize_q75_h2_box_3.webp
new file mode 100644
index 0000000..f442c70
--- /dev/null
+++ b/resources/_gen/images/content_images/emacs-logo_hu68c5d38b649d37d5d821391a91685a6d_212742_50x0_resize_q75_h2_box_3.webp
Binary files differ
diff --git a/static/style.css b/static/style.css
index 968ad10..a93de5b 100644
--- a/static/style.css
+++ b/static/style.css
@@ -407,183 +407,183 @@ article.blog-post-item > nav {
}
/* emacs_article_start */
- body.emacs h2 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h3 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h4 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h5 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h6 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- /* emacs_article_end */
-
- /* bss_article_start */
- .bsd h2 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
- .bsd h3 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
- .bsd h4 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
- .bsd h5 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
- .bsd h6 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
- .bsd nav a { color: var(--bsd-highlight-color}; }
- /* emacs_article_end */
-
- /* emacs_article_start */
- body.star-trek h2 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
- body.star-trek h3 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
- body.star-trek h4 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
- body.star-trek h5 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
- body.star-trek h6 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
- /* emacs_article_end */
-
- /* emacs_article_start */
- body.blog h2 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
- body.blog h2 a { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
- body.blog h3 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
- body.blog h4 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
- body.blog h5 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
- body.blog h6 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
- /* emacs_article_end */
-
- blockquote {
- border: 0;
- border-left: 3px;
- border-style: solid;
- border-color: var(--blockquote-border-color);
- margin-left: 15px;
- padding-left: 15px;
- color: var(--blockquote-color);
- }
- pre {
- padding-bottom: 5px;
- white-space: pre-wrap;
- padding: 11px;
- background-color: var(--pre-bg);
- word-break: keep-all;
- }
- pre code {
- max-width: 100%;
- /* word-break: break-all; */
- }
-
- /* star_rek_article_start */
- body.emacs h2 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h3 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h4 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h5 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
- body.emacs h6 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
-
- /* emacs_article_end */
- /* ----------- Articles images */
- article figure {
- text-align: center;
- margin: 0;
- max-width: 100%;
- font-size: 0.8em;
- }
- img.float-right {
- float: right;
- display: inline;
- margin-left: 10px;
- }
- img.center {
- max-width: 100%;
- height: auto;
- }
- img.small {
- max-width: 50%;
- height: auto;
- }
- figure.graph {
- background-color: var(--highlight-bg);
- padding: 5px;
- padding-top: 20px;
- }
- figure.graph img {
- width: 95%;
- }
-
- /* ----------- Articles adjustement navigation */
- .next-link {
- float: right;
- }
+.emacs h2 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+.emacs h3 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+.emacs h4 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+.emacs h5 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+.emacs h6 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+/* emacs_article_end */
+
+/* bss_article_start */
+.bsd h2 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
+.bsd h3 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
+.bsd h4 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
+.bsd h5 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
+.bsd h6 { color: var(--bsd-h2-color); border-color: var(--bsd-h2-color) }
+.bsd nav a { color: var(--bsd-highlight-color}; }
+/* emacs_article_end */
+
+/* emacs_article_start */
+body.star-trek h2 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
+body.star-trek h3 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
+body.star-trek h4 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
+body.star-trek h5 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
+body.star-trek h6 { color: var(--star-trek-h2-color); border-color: var(--star-trek-h2-color) }
+/* emacs_article_end */
+
+/* emacs_article_start */
+body.blog h2 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
+body.blog h2 a { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
+body.blog h3 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
+body.blog h4 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
+body.blog h5 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
+body.blog h6 { color: var(--blog-h2-color); border-color: var(--blog-h2-color) }
+/* emacs_article_end */
+
+blockquote {
+ border: 0;
+ border-left: 3px;
+ border-style: solid;
+ border-color: var(--blockquote-border-color);
+ margin-left: 15px;
+ padding-left: 15px;
+ color: var(--blockquote-color);
+}
+pre {
+ padding-bottom: 5px;
+ white-space: pre-wrap;
+ padding: 11px;
+ background-color: var(--pre-bg);
+ word-break: keep-all;
+}
+pre code {
+ max-width: 100%;
+ /* word-break: break-all; */
+}
+
+/* star_rek_article_start */
+body.emacs h2 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+body.emacs h3 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+body.emacs h4 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+body.emacs h5 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+body.emacs h6 { color: var(--emacs-h2-color); border-color: var(--emacs-h2-color) }
+
+/* emacs_article_end */
+/* ----------- Articles images */
+article figure {
+ text-align: center;
+ margin: 0;
+ max-width: 100%;
+ font-size: 0.8em;
+}
+img.float-right {
+ float: right;
+ display: inline;
+ margin-left: 10px;
+}
+img.center {
+ max-width: 100%;
+ height: auto;
+}
+img.small {
+ max-width: 50%;
+ height: auto;
+}
+figure.graph {
+ background-color: var(--highlight-bg);
+ padding: 5px;
+ padding-top: 20px;
+}
+figure.graph img {
+ width: 95%;
+}
- /* ----------- Footer */
- footer {
- text-align: center;
- padding: 10px 0 30px 0;
- }
+/* ----------- Articles adjustement navigation */
+.next-link {
+ float: right;
+}
- /* ---------- Footnotes */
- a[href^="#fn:"], a[href^="#fnref:"] {
- text-decoration: none;
- }
- a[href^="#fn:"]:before{ content: '[' }
- a[href^="#fn:"]:after{ content: ']' }
- .footnotes p {
- margin: 3px;
- }
- .footnotes hr {
- size: 1px;
- }
- .footnotes::before {
- border: 0;
- border-bottom-width: 1px;
- border-style: solid;
- font-weight: bold;
- display: block;
- text-transform: uppercase;
- }
+/* ----------- Footer */
+footer {
+ text-align: center;
+ padding: 10px 0 30px 0;
+}
- /* ----------- Donations */
- .donor {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- justify-content: center;
- align-items: center;
- align-content: flex-start;
- gap: 50px;
- }
+/* ---------- Footnotes */
+a[href^="#fn:"], a[href^="#fnref:"] {
+ text-decoration: none;
+}
+a[href^="#fn:"]:before{ content: '[' }
+a[href^="#fn:"]:after{ content: ']' }
+.footnotes p {
+ margin: 3px;
+}
+.footnotes hr {
+ size: 1px;
+}
+.footnotes::before {
+ border: 0;
+ border-bottom-width: 1px;
+ border-style: solid;
+ font-weight: bold;
+ display: block;
+ text-transform: uppercase;
+}
- /* --------- Code blocks */
-
- /* Background */ .bg { background-color: #f8f8f8; }
- /* PreWrapper */ .chroma { background-color: #f8f8f8; }
- /* Other */ .chroma .x { }
- /* Error */ .chroma .err { }
- /* CodeLine */ .chroma .cl { }
- /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
- /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
- /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
- /* LineHighlight */ .chroma .hl { background-color: #ffffcc }
- /* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
- /* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
- /* Line */ .chroma .line { display: flex; }
- /* Keyword */ .chroma .k { color: #aa22ff; font-weight: bold }
- /* KeywordConstant */ .chroma .kc { color: #aa22ff; font-weight: bold }
- /* KeywordDeclaration */ .chroma .kd { color: #aa22ff; font-weight: bold }
- /* KeywordNamespace */ .chroma .kn { color: #aa22ff; font-weight: bold }
- /* KeywordPseudo */ .chroma .kp { color: #aa22ff }
- /* KeywordReserved */ .chroma .kr { color: #aa22ff; font-weight: bold }
- /* KeywordType */ .chroma .kt { color: #00bb00; font-weight: bold }
- /* Name */ .chroma .n { }
- /* NameAttribute */ .chroma .na { color: #bb4444 }
- /* NameBuiltin */ .chroma .nb { color: #aa22ff }
- /* NameBuiltinPseudo */ .chroma .bp { }
- /* NameClass */ .chroma .nc { color: #0000ff }
- /* NameConstant */ .chroma .no { color: #880000 }
- /* NameDecorator */ .chroma .nd { color: #aa22ff }
- /* NameEntity */ .chroma .ni { color: #999999; font-weight: bold }
- /* NameException */ .chroma .ne { color: #d2413a; font-weight: bold }
- /* NameFunction */ .chroma .nf { color: #00a000 }
- /* NameFunctionMagic */ .chroma .fm { }
- /* NameLabel */ .chroma .nl { color: #a0a000 }
- /* NameNamespace */ .chroma .nn { color: #0000ff; font-weight: bold }
- /* NameOther */ .chroma .nx { }
- /* NameProperty */ .chroma .py { }
- /* NameTag */ .chroma .nt { color: #008000; font-weight: bold }
- /* NameVariable */ .chroma .nv { color: #b8860b }
- /* NameVariableClass */ .chroma .vc { }
- /* NameVariableGlobal */ .chroma .vg { }
- /* NameVariableInstance */ .chroma .vi { }
- /* NameVariableMagic */ .chroma .vm { }
- /* Literal */ .chroma .l { }
+/* ----------- Donations */
+.donor {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: center;
+ align-content: flex-start;
+ gap: 50px;
+}
+
+/* --------- Code blocks */
+
+/* Background */ .bg { background-color: #f8f8f8; }
+/* PreWrapper */ .chroma { background-color: #f8f8f8; }
+/* Other */ .chroma .x { }
+/* Error */ .chroma .err { }
+/* CodeLine */ .chroma .cl { }
+/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
+/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
+/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
+/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+/* Line */ .chroma .line { display: flex; }
+/* Keyword */ .chroma .k { color: #aa22ff; font-weight: bold }
+/* KeywordConstant */ .chroma .kc { color: #aa22ff; font-weight: bold }
+/* KeywordDeclaration */ .chroma .kd { color: #aa22ff; font-weight: bold }
+/* KeywordNamespace */ .chroma .kn { color: #aa22ff; font-weight: bold }
+/* KeywordPseudo */ .chroma .kp { color: #aa22ff }
+/* KeywordReserved */ .chroma .kr { color: #aa22ff; font-weight: bold }
+/* KeywordType */ .chroma .kt { color: #00bb00; font-weight: bold }
+/* Name */ .chroma .n { }
+/* NameAttribute */ .chroma .na { color: #bb4444 }
+/* NameBuiltin */ .chroma .nb { color: #aa22ff }
+/* NameBuiltinPseudo */ .chroma .bp { }
+/* NameClass */ .chroma .nc { color: #0000ff }
+/* NameConstant */ .chroma .no { color: #880000 }
+/* NameDecorator */ .chroma .nd { color: #aa22ff }
+/* NameEntity */ .chroma .ni { color: #999999; font-weight: bold }
+/* NameException */ .chroma .ne { color: #d2413a; font-weight: bold }
+/* NameFunction */ .chroma .nf { color: #00a000 }
+/* NameFunctionMagic */ .chroma .fm { }
+/* NameLabel */ .chroma .nl { color: #a0a000 }
+/* NameNamespace */ .chroma .nn { color: #0000ff; font-weight: bold }
+/* NameOther */ .chroma .nx { }
+/* NameProperty */ .chroma .py { }
+/* NameTag */ .chroma .nt { color: #008000; font-weight: bold }
+/* NameVariable */ .chroma .nv { color: #b8860b }
+/* NameVariableClass */ .chroma .vc { }
+/* NameVariableGlobal */ .chroma .vg { }
+/* NameVariableInstance */ .chroma .vi { }
+/* NameVariableMagic */ .chroma .vm { }
+/* Literal */ .chroma .l { }
/* LiteralDate */ .chroma .ld { }
/* LiteralString */ .chroma .s { color: #bb4444 }
/* LiteralStringAffix */ .chroma .sa { color: #bb4444 }