#Tag
🥳 New Kitten Release!
🚨 Breaking change: You can now add arbitrary JavaScript in script blocks in Kitten Markdown Pages front-matter (and the imports property is gone).
You can also use JavaScript string interpolation and all special Kitten tags (e.g., conditional tags, etc.) in Kitten Markdown Pages.
📦 https://kitten.small-web.org
Examples:
• Simple: https://codeberg.org/kitten/site/src/branch/main/tutorials/markdown/index.page.md?display=source
• More complex: https://codeberg.org/kitten/site/src/branch/main/reference/index.page.md?display=source
And the Markdown parser itself is now both more robust and faster than before.
(This change also bumps the Kitten runtime to Node.js version 24.6.0.)
Enjoy!
💕
• Full change log: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-11-14
• Kitten Markdown Pages reference: https://kitten.small-web.org/reference/#markdown-pages-page-md-files
• Kitten Markdown tutorial: https://kitten.small-web.org/tutorials/markdown/
#Kitten #SmallWeb #KittenMarkdownPages #Markdown #improvedParser
If you’re using Kitten¹ in production, listen up (yes, both of you!)
I’ve had a Kitten release with a hugely improved Markdown parser and Kitten Markdown Pages support lying on my laptop for the past three months as I was working on Gaza Verified².
This week, I went over over everything and documented it and the release is ready.
This is a breaking change if you use Kitten Markdown Pages (.page.md files).
Specifically:
1. You can now include arbitrary JavaScript in your Markdown pages in a `script` block in your YAML front matter.
2. Because of #1, the `imports` front matter property has been removed (just use JavaScript imports to load in components, etc.)
3. You can now use JavaScript string interpolation and special Kitten syntax (e.g., conditional tags) within your Kitten Markdown Pages.
4. Because of #3, if you have JavaScript string interpolation or Kitten-specific tags in Markdown code fences, you must escape them. e.g., `${something}` becomes `\${something}` and `<if ${something}>this<else>that</if>` becomes `\<if \${something}>this\<else>that\</if>` .
That’s it.
So the simple Kitten Count example that increments a counter on page reload and displays the latest count would look like this as a Kitten Markdown Page now:
```markdown
---
script: |
let count = 1
---
# Kitten count
${'🐱️'.repeat(count++)}
```
This took so long to get right but I think it’s 100% solid right now (the only way I’ve been able to break it so far turned out to be a bug in the CommonMark spec itself).
I’ll update you once the new release is live.
💕
🥳 New Kitten Release!
🚨 Breaking change: You can now add arbitrary JavaScript in script blocks in Kitten Markdown Pages front-matter (and the imports property is gone).
You can also use JavaScript string interpolation and all special Kitten tags (e.g., conditional tags, etc.) in Kitten Markdown Pages.
📦 https://kitten.small-web.org
Examples:
• Simple: https://codeberg.org/kitten/site/src/branch/main/tutorials/markdown/index.page.md?display=source
• More complex: https://codeberg.org/kitten/site/src/branch/main/reference/index.page.md?display=source
And the Markdown parser itself is now both more robust and faster than before.
(This change also bumps the Kitten runtime to Node.js version 24.6.0.)
Enjoy!
💕
• Full change log: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-11-14
• Kitten Markdown Pages reference: https://kitten.small-web.org/reference/#markdown-pages-page-md-files
• Kitten Markdown tutorial: https://kitten.small-web.org/tutorials/markdown/
#Kitten #SmallWeb #KittenMarkdownPages #Markdown #improvedParser
If you’re using Kitten¹ in production, listen up (yes, both of you!)
I’ve had a Kitten release with a hugely improved Markdown parser and Kitten Markdown Pages support lying on my laptop for the past three months as I was working on Gaza Verified².
This week, I went over over everything and documented it and the release is ready.
This is a breaking change if you use Kitten Markdown Pages (.page.md files).
Specifically:
1. You can now include arbitrary JavaScript in your Markdown pages in a `script` block in your YAML front matter.
2. Because of #1, the `imports` front matter property has been removed (just use JavaScript imports to load in components, etc.)
3. You can now use JavaScript string interpolation and special Kitten syntax (e.g., conditional tags) within your Kitten Markdown Pages.
4. Because of #3, if you have JavaScript string interpolation or Kitten-specific tags in Markdown code fences, you must escape them. e.g., `${something}` becomes `\${something}` and `<if ${something}>this<else>that</if>` becomes `\<if \${something}>this\<else>that\</if>` .
That’s it.
So the simple Kitten Count example that increments a counter on page reload and displays the latest count would look like this as a Kitten Markdown Page now:
```markdown
---
script: |
let count = 1
---
# Kitten count
${'🐱️'.repeat(count++)}
```
This took so long to get right but I think it’s 100% solid right now (the only way I’ve been able to break it so far turned out to be a bug in the CommonMark spec itself).
I’ll update you once the new release is live.
💕
Apropos of nothing, this is a project I started some time ago. Due to the community’s lack of interest and financial support, I kind of stopped…just testing the waters for it again.
https://codeberg.org/IDEmacs/IDEmacs
IDEmacs aims to be a set of #Emacs configurations which provide an out-of-the-box experience similar (if not identical) to popular GUI IDEs and editors.
It is aimed at…
Programmers coming to Emacs from other IDEs, or even first-time programmers familiar with only office applications.
Beginner #CommonLisp and #Scheme programmers, who need the functionality of Emacs (Sly/Geiser + structural editing) without having to perform unnecessary setup and without dealing with an alien style of keybindings. In other words, similar to Portacle or Guile Studio.
Non-programmers who want a fully-featured #Org, #Markdown, or #LaTeX editor with idiomatic shortcuts and mouse-friendly GUI.
It aims to provide…
GUI and mouse support, in addition to a keyboard-driven interface.
Unlike most starter kits, we do not hide GUI elements by default.
We support configuration via the
customGUI, not just ElispIf resources allow, we may implement new GUIs in Emacs
Keybindings that follow popular GUI and IDE conventions.
CUA mode is just the start - much more keybinding configuration is needed to provide an unsurprising experince. And that’s before we even get to the IDE-specific keybindings.
This excludes starter kits that use Evil by default, such as Spacemacs or Doom.
A fully-featured, fast, and configuration-free Emacs experience, like any starter kit/distro.
- The configuration uses idiomatic Elisp and contains a generous amount of comments, valuable to anyone interested in learning to configure Emacs using Elisp.
Perfectly imitating the GUIs and subtle behaviour differences of IDEs is desirable, but not top priority. Given our limited resources, we aim for “good enough”.
We hope this gives new users a comfortable starting point, and make them more likely to stick around to discover the possibilities of Emacs’ malleability, rather than being driven off by the default experience.
Apropos of nothing, this is a project I started some time ago. Due to the community’s lack of interest and financial support, I kind of stopped…just testing the waters for it again.
https://codeberg.org/IDEmacs/IDEmacs
IDEmacs aims to be a set of #Emacs configurations which provide an out-of-the-box experience similar (if not identical) to popular GUI IDEs and editors.
It is aimed at…
Programmers coming to Emacs from other IDEs, or even first-time programmers familiar with only office applications.
Beginner #CommonLisp and #Scheme programmers, who need the functionality of Emacs (Sly/Geiser + structural editing) without having to perform unnecessary setup and without dealing with an alien style of keybindings. In other words, similar to Portacle or Guile Studio.
Non-programmers who want a fully-featured #Org, #Markdown, or #LaTeX editor with idiomatic shortcuts and mouse-friendly GUI.
It aims to provide…
GUI and mouse support, in addition to a keyboard-driven interface.
Unlike most starter kits, we do not hide GUI elements by default.
We support configuration via the
customGUI, not just ElispIf resources allow, we may implement new GUIs in Emacs
Keybindings that follow popular GUI and IDE conventions.
CUA mode is just the start - much more keybinding configuration is needed to provide an unsurprising experince. And that’s before we even get to the IDE-specific keybindings.
This excludes starter kits that use Evil by default, such as Spacemacs or Doom.
A fully-featured, fast, and configuration-free Emacs experience, like any starter kit/distro.
- The configuration uses idiomatic Elisp and contains a generous amount of comments, valuable to anyone interested in learning to configure Emacs using Elisp.
Perfectly imitating the GUIs and subtle behaviour differences of IDEs is desirable, but not top priority. Given our limited resources, we aim for “good enough”.
We hope this gives new users a comfortable starting point, and make them more likely to stick around to discover the possibilities of Emacs’ malleability, rather than being driven off by the default experience.
# "Using LibreOffice and other Free software for documents as a lawyer"
I was asked recently about how I get on using LibreOffice for document-related legal work, and I promised to write down some thoughts.
The short answer is that I use a mix of LibreOffice and other FOSS tools, and I’m very positive about it, with no particular concerns.
If you have questions, please do ask!
https://neilzone.co.uk/2025/11/using-libreoffice-and-other-free-software-for-documents-as-a-lawyer/
Been updating my personal Mastodon tooling to download and convert my bookmarked toots. Here's how little code is needed to download a single message and convert its HTML content into Markdown, all using these #ThingUmbrella packages:
- https://thi.ng/hiccup: Interop data format (i.e. just nested JS arrays) to encode hierarchical documents
- https://thi.ng/hiccup-html-parse: Parses HTML into hiccup format
- https://thi.ng/hiccup-markdown: Serialize hiccup to Markdown (also includes a Markdown parser to hiccup, but not used here)
- https://thi.ng/zipper: Functional tree editing, manipulation & navigation (here to clean/transform the parsed HTML document)
Edit: Gist version of this example code:
https://gist.github.com/postspectacular/1d7ebdc5a81894c16ab744cb8d25c320
# "Using LibreOffice and other Free software for documents as a lawyer"
I was asked recently about how I get on using LibreOffice for document-related legal work, and I promised to write down some thoughts.
The short answer is that I use a mix of LibreOffice and other FOSS tools, and I’m very positive about it, with no particular concerns.
If you have questions, please do ask!
https://neilzone.co.uk/2025/11/using-libreoffice-and-other-free-software-for-documents-as-a-lawyer/
Sunday afternoon sneak peek at my #ReclaimOpen2025 Leap into Open Publishing with Docsify‑This interactive session guide, published with, what else but Docsify-This 👀
Really looking forward to attending and presenting ⚡️
For over a year I've been using Ghostwriter for writing blog posts and documentation and I really like it.
It's a classic two-pane, ligthweight Markdown editor for Linux. I initially configured the settings the way I want and now I can just write without the editor getting in the way. It's a humble, simple tool that works well and lets me focus on the task.
Sunday afternoon sneak peek at my #ReclaimOpen2025 Leap into Open Publishing with Docsify‑This interactive session guide, published with, what else but Docsify-This 👀
Really looking forward to attending and presenting ⚡️
Introducing #Hollo. Hollo is an #ActivityPub-enabled single-user microblogging software. Although it's for a single user, it also supports creating and running multiple accounts for different topics.
It's headless, meaning you can use existing #Mastodon client apps instead, with its Mastodon-compatible APIs. It has most feature parity with Mastodon. Two big differences with Mastodon is that you can use #Markdown in the content of your posts and you can quote another post.
Oh, and Hollo is built using #Bun and #Fedify.
Have you heard about Markdown but don’t really get what it’s for or how and where you could use it? In my latest ScreenCastsONLINE tutorial, I teach all the essentials of Markdown and give lots of examples of applications where it’s useful.
A space for Bonfire maintainers and contributors to communicate