Hello hello, my name is Marco and today I'll talk about gardening with Emacs. Digital gardening, obviously. First, one thing: sorry, yes, I'm a Microsoft Windows user. I know, I know. I said I’m sorry. Please stick with me, and do not skip this talk! Promise I'll show you only free software! A digital garden is your personal corner of the internet to cultivate ideas. Think of it like a real garden: you plant seeds (new thoughts), water them (add details), and watch them grow. Unlike a fixed-date blog, which shows only polished results, a garden includes works-in-progress—like seedlings in a greenhouse. It’s a network of notes connected by links and tags, helping you see patterns in your thinking. Here, ideas aren’t static; they evolve as you learn, creating a living archive of your mind. Also, you decide the tools, the look, and the pace: I’ll show you how I run my garden with plain Org Mode files and our favourite Emacs. In short: it’s a flexible, pressure-free space to explore, learn, and connect knowledge—your own digital ecosystem. A digital garden keeps knowledge alive: instead of freezing content after “publish,” you revisit and refine it, so ideas stay accurate and useful. By sharing half-formed thoughts early, you lower the barrier to writing and let concepts evolve gradually—no need to wait for one “perfect” essay. Links and tags weave ideas together, revealing unexpected patterns that isolated posts would hide. This approach sheds perfectionism, encouraging small, regular updates that build momentum and invite collaboration. Early readers can offer feedback, share resources, or spot blind spots, accelerating improvement. Over time, your garden can become a searchable showcase of your thinking—a living résumé for collaborators, peers, or anyone curious about how you learn. Now, first topic: how to make Emacs portable, on Windows. Being in Windows, I have the possibility to bring and use my data and software basically everywhere: home, office, my sister-in-law's PC when she needs technical help, friends and the like. So, for these reasons, it's been many years I'm using exclusively portable applications, that do not need an installation and bring their own data and configuration bundled together. And now also Emacs is portable, inside my tiny USB key! How? I mean: not being sure if my USB key drive letter will be D:, E:, K:, or whatever other drive letter will be assigned to it by the system I'm plugging it into, how can I specify, to Emacs, that its home folder is on my USB? I could maybe have used relative paths, but then, where’s the fun of hacking things? The trick here is the not-so-well-known ~dp0 system variable that contains the execution directory full path. And yes, it ends with a backslash, so composing it with other paths is ugly as... The ~dp0 variable is only available inside a batch file, during its execution, and expands to the drive (d) and path (p) in which that batch file (0th command line parameter) is located (which cannot change). It is obtained from %0 which is the batch file's name. I actually have never tried, but it should even allow to let the batch run from a UNC network location with, no mapped drive letter! And that's the batch file I'm using to run Emacs with an automatically selected and fixed emacshome folder, sibling of the unzipped Emacs one, regardless the computer I'm in and the assigned drive letter. If you need a portable Emacs, this is the simplest way to go! Just put the runemacs.bat file in your unzipped emacs-30.2 (actually, now) bin folder and your Emacs and its configuration will always be there with you. With this, I’m basically creating the possibility to have my own desk Zen (digital) garden and all the tools I need to work on it, always with me, in my USB key! Speaking about configuration, here comes the second topic: my Emacs customisation Having a portable Emacs allows to always have the configuration with me. Yes, OK, but which configuration? Obviously the init.el file that lives inside the emacs.d folder in my emacshome portable configuration. I'm not an Emacs expert, but I want to highlight a point here that has to be clear to everyone of us: the set of basic considerations I had for text width, tabs vs. spaces, trailing spaces, and so on. As you can see here, I'm pretty opinionated but this is the important part: we are lucky enough to be able to use the presumably most highly configurable tool ever, so let's use it! Remember that it's your Emacs and you can and must configure it for your needs, even if it might seem ridiculous to others. Here the configuration you see is not the important part: the important part is how you feel with your configuration. For example: I have a fill-column-indicator at 72 characters, I prefer spaces instead of tabs, no trailing spaces, truncate lines and so on. It might seem weird to some of you (and to most of my colleagues and friends as well, but that's another story!) and it might even be. But I'm comfortable with my configuration, and you should be with yours too. That is: as an owner and worker of my digital garden, it’s obviously easier for me to choose my own tools and adapt those to my needs, instead of the opposite! Second point here is: I've studied Japanese (and my wife is Japanese, but that’s a detail), so I frequently write in Japanese. And I wanted to write in Japanese also inside Emacs! I learned that utf8-dos is a more-than-enough coding system to allow me writing, in the same file, both Italian (with all our accented letters) and Japanese, through Windows IME. But it's not enough for copy-pasting Japanese text! If I copied some Japanese text from the browser or from another text editor, it didn't work, it only pasted rubbish, in Emacs, until I found out that, for whatever reason, I had to use utf-16le-dos for the selection coding system. So the lesson here is: if you need European languages and Japanese, inside your Emacs, this coding system works! Continuing on the configuration party, the third topic: PlantUML and Japanese. Why are those two listed together? Well, they are weird enough to be both part of my configuration. First, I think PlantUML is a very nice and powerful tool, so integrating it in Emacs is pretty useful, even if I'm currently using it only to generate SVG images when publishing my digital garden to HTML. There are some pain points that I still have to solve and I know that is also possible to use it for (pre)viewing diagrams directly in Emacs, without publishing, but maybe I don’t need this feature. And I have to thank our favourite Sacha Chua here, because she taught me (through Mastodon) how to automagically answer y, when publishing in HTML, every time that PlantUML has to (re)generate an SVG. So, thank you Sacha. Moving to Japanese, let me go back to previous slide for a moment to show you a bit more in detail the coding systems I’ve configured. Another interesting thing about Japanese is this nice macro I’ve found in the Emacs mailing list to add furigana to Japanese kanjis when exporting or publishing to HTML. It’s actually even possible to do the same with LaTeX export/publish and I’ll give you some references later. It’s very useful because I can show the easier-to-read pronunciation even for readers with really basic knowledge of Japanese (and it’s also useful to myself to remember how to pronounce those kanji!). For those of you that have no idea on how to read or write Japanese… sorry. As you can see, the garden is evolving further and here it’s open to different plants (or PlantUML…) and also be able to adapt to different visitors needs. Third topic: my Org Mode publishing configuration. Or, where the digital garden is born. The latest (but not least!) part of the creation and tending of my digital garden is the publishing file that is needed to export the whole Org Mode project into HTML. Here I do not have many fancy configurations, even though I’m copying the publishing.el file itself in the output folder, to make it available in the published version of the garden. Also I have added the mentioned configuration to manage SVG (or PNG) exports from PlantUML (thank you again, Sacha) and I’m also forcing HTML5 without scripts as the result format. Together with this, I also have a fancy CSS addition to the default one, that uses the System Font Stack concept to harmonise fonts with readers’ local systems, without downloading or injecting external fonts. Only add-on here is that if the reader already has the Atkinson Hyperlegible font by Braille Institute, my HTML use that as first reference font. I’ve customised links and tags a bit, with the CSS, together with tables and some other pieces here and there, but nothing too much fancy. So, this is one (not-so-)random page of my digital garden, or my Knowledge 枯山水, as I prefer to call it. This is, specifically, the page related to write about the Digital Garden concept itself, as a sort of meta-writing. You can see the different rendering of the links, depending if they are internal or external to the garden, you can see the Japanese furigana on top of the kanjis and you also can see the automatic table of contents, the custom aside component that highlights the latest modification date and so on. Thank you everyone for being with me till the end. If you want more details about these topics, take a look at my Knowledge 枯山水, link is here. And feel free to contact me through Delta Chat at this email address! (Yes, Microsoft email address… an old one, recycled… I know, my fault) Thank you again, and happy Emacs everyone!