00:05.980 Introduction
00:39.040 What is a digital garden?
02:11.520 Why a digital garden?
03:39.200 How to digital garden?
04:57.440 How to make Emacs portable, on Windows
08:18.820 My Emacs customization
10:36.120 PlantUML and Japanese
14:50.660 My Org Mode publishing configuration
16:04.520 The final result
17:03.280 Thank you for listening
I'm a not-ashamed Windows user, both at
work and at home, since forever. I also like portable applications, to
bring everything I need, everywhere, on my tiny USB thumb drive.
And now also Emacs is there, on my USB!
I'm also not the blogger type of person: I've tried, for a time. I
stopped at entry ~8 of a "100 days blogging" saga.
But I actually immediately fell in love with the (possibly slower pace)
digital garden concept and since I wanted to try Emacs, I decided to
catch two pigeons with one stone.
This is the story of how I learned the very basics of Emacs and Org Mode,
from how to save and exit to how to change letters case of a whole region
or the (long searched for) fill-paragraph feature.
This is the story of how I learned Org Mode publishing configuration and
tricks, to create my digital garden, give it a structure and make it
freely available for anyone to read (and hopefully enjoy) in HTML format.
This is the story of how I added Japanese furigana and PlantUML diagrams
and a one few clicks-away "go to market" strategy.
This is the story of my digital garden, how I tend to it while learning
the tool(s) I'm using to care of my garden, Emacs and Org Mode.
And this is the story of how I ask for your help, to continue learning
Emacs and Org Mode.
About the speaker:
20+ years software
developer and Vi user during university life, now moved to the dark side
of agile coaching as Scrum Master.
Started learning Emacs by chance since I wanted to try it since ages.
Hello, everyone. My name is Marcoand today I'll talk about gardening with Emacs.Gardening? Yes, but digital gardening, obviously.But first, one thing: I'm sorry, yes,I'm a Microsoft Windows user.I know, I know. I said I'm sorry.Please stick with me.Do not skip this talk!Promise, I'll show you only free software!And speaking about free software,yes, this presentation is not made with Emacs,but I made it with LibreOffice.
So what is a digital garden?A digital garden isyour personal corner of the internetto cultivate ideas.Think of it like a real gardenwhere you plant seeds (your new thoughts),you water them (you add the 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 notesconnected by links and tags,helping you see patterns in your thinking.Here, the ideas are not static;they evolve as you learn,creating a living archive of your mind,just like the plants in a garden grow.Also here, instead of the blog platform,you decide the tools, the look, and your pace.I'll show you how I run my gardenwith plain Org Mode filesand our favorite Emacs.In short: a digital gardenis a flexible, pressure-free spaceto explore, learn in publicand connect the knowledge--your own digital ecosystem.
Why a digital garden?Well, 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 writingand let concepts evolve gradually--no need to wait for one "perfect" essay.Links and tags weave ideas together,revealing unexpected patternsthat isolated posts would hide.This approach sheds perfectionism,encouraging small, regular updatesthat build momentum and invite collaboration.Well, actually, even not regular updates are fine.Early readers can offer feedback, share resources,or identify blind spots,accelerating your and their improvement.Over time, your garden can becomea searchable showcase of your thinking,a living résumé for collaborators, peers,or anyone curious about how you learn.And what about me?Why a digital garden?Well, I actually have started a digital gardento learn Emacs and Org Mode.
How to digital garden?Well, start simple.Pick one place for your notesand put them online.Even the worst Github ever out there is fine.Then, well, maybe you can move out of GitHub,but that's another story.Capture your ideas quickly.Publish them, even rough,and maybe, if you want, tag them as seedsto let the other people know they are rough.Learning in public is usefulbecause link-related pagesso that readers can work through your thinking,helping them see your connections.Once a week or whenever you want,prune outdated pieces if you wantor keep them thereand add fresh insights if you have any.Share your updates openly.Invite comments because steady small stepswill keep the garden thriving.And what about me?How I do digital garden work with Emacs?With Org Mode and its publishing to HTML file,and we will see it in a moment.
How to make Emacs portable on Windowsis the first topic.Well, being in Windows,I have the advantage and the possibilityto bring and use my dataand software basically everywhere:home, office, my sister-in-law's PCwhen she needs technical help,friends and the like.So for these reasons,it's been many, many yearsI'm using exclusively portable applicationsthat do not need an installationand bring their own dataand configuration bundled together.And now also Emacs is portable,inside my tiny, really tiny, USB key.How?I mean: not being sureif my USB key drive letterwill be D:, E:, K:,or whatever other drive letterwill be assigned to itby the system I'm plugging it into,how can I specify, to Emacs,that its home folder is on my USB?Well, I could maybe have used relative paths,but then, where's the fun of hacking things?The trick here isthe not-so-well-known ~dp0 system variablethat contains the execution directoryfull path of the executable file.And yes, it ends with a backslash,so composing it with other literal paths is ugly as well.The ~dp0 variable is only availableinside a batch file during its execution,and expands to the drive (d) and the path (p),in which that batch file (0th)command line parameter is located(that obviously cannot changebecause it's executing).The data are obtainedfrom the %0 system variablethat contains the batch file name.I actually have never tried,but it should even allow to let the batch runfrom a UNC network locationwith no mapped drive letter at all!And that's the batch fileI'm using to run Emacs with an automatically selectedand fixed Emacs folder,emacshome folder,sibling of the unzipped Emacs one,regardless the computer I'm inand the assigned drive letter.If you need a portable Emacs,this is probably the simplest way to go!Just put the runemacs.bat filein your unzipped Emacs(well, 30.2 actually now) bin folder,and your Emacs and its configurationwill always be there with you.With this, I'm basicallycreating the possibilityto bring my own digital garden with me,just like a little desk Zen garden,and together with it, also,all the tools that I need to work on it,always with me, in my USB key.
Speaking about configuration,here comes the second topic:my Emacs customization.Having a portable Emacs allows toalways have the configuration with me.Yes, okay, but which configuration?Well, obviously, I'm speaking of the init.el filethat lives inside of the emacs.d folderin my emacshome portable configuration folderthat we just saw.I'm not an Emacs expert,but I want to highlight a point herethat has to be clear to every one of us:the set of basic considerations I hadfor text width, tabs versus 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 Emacs,that is presumablythe most highly configurable tool ever,so let's use it!Remember that it's your Emacs,and you can and must configure itfor your needs,even if it might seem ridiculous to others.Here, the configuration you seeis not the important part.The important part is how you feelwith your configuration.For example: I have a fill-column-indicatorat 72 characters,I prefer spaces instead of tabs,no trailing spaces, truncate lines, and so on.It might seem weird to some of youand 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 workerof my own digital garden,it's obviously easier for meto choose my own toolsand adapt those to my needs,instead of the opposite!If I want to put the rosesin a circle instead of a rowthat is maybe the best practice, who cares?It's my garden, and I use it as I want.
Continuing on the configuration party,the third topic is PlantUML and Japanese.Why those two are listed together?Well, they are weird enoughto be both part of my configuration.First, I think PlantUMLis a very nice and powerful tool,so integrating it in Emacsis pretty useful,even if I'm currently using itonly to generate SVG imageswhen publishing my digital garden to HTML.There are some pain pointsthat I still have to solve,and I know that it's also possible to use itfor (pre)viewing diagramsdirectly in Emacs, without publishing,but maybe I don't need this feature at the moment.And I have to thank our favorite Sacha Chua here,because she taught me (through Mastodon)how to automatically 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 tothe previous slide for a momentto show you a bit more in detailthe coding system I've configured.If this PC is helping me in movingback to the previous slide.Okay, so let me... No, it's not working.It's not... Okay.So, speaking about Japanese,I have studied Japanese.My wife is Japanese,but that's a detail.So I frequently write in Japanese,and I wanted to write in Japanesealso inside Emacs.I learned, as you can see,that UTF-8 DOSis a more than enough coding systemto allow me writing in the same file,both Italian with all our accented lettersand Japanese through Windows IME system.This allows me to properly write, save, read files,but it was not enough for copyingand pasting Japanese text.If I copied some Japanese text from the browseror even from another text editor,it didn't work.It only pasted the rubbish in Emacsuntil I found out that for whatever reason,I had to use, as you can see in bold,UTF-16LE DOS for the selection coding system.And this basically allows meto copy Japanese from another file,text editor, browser, whatever,and paste it in Emacs and vice versa.So the lesson here is,if you need European languagesand Japanese inside your Emacs,well, this coding system works.Let me go back to PlantUML and Japanese.Another interesting thing about Japaneseis this nice macro I foundin the Emacs mailing listto add furigana to Japanese kanjiswhen exporting or publishing to HTML.It's actually even possible to do the samewith LaTeX export/publishand I'll give you some references later.It's very useful because I can show,as you can see on the example at the bottom,I can show the easier-to-read pronunciationeven for readers with really basic knowledge of Japanese.(And it's also useful to myself, actually,to remember how to pronounce those kanji!)For those of you that have no ideaon how to read or write Japanese, well, sorry.As you can see, the garden evolved from the beginningon how to use Emacs and Org Mode,and it's evolving further,and here it's becoming open todifferent plants (or PlantUML…)and also be able to adaptto different foreign visitors' needs.
Third topic: my Org Mode publishing configuration,or where the digital garden is born.The latest (but not least!) part ofthe creation and tending of my digital gardenis the publishing file that is needed to exportthe whole Org Mode project into HTML.Here I do not have many fancy configurations,even though I'm copying the publishing.el file itselfin the output folder,to make it available in the published version of the garden.Also I have added the mentioned configurationto manage SVG (or PNG) exports from PlantUML(thank you again, Sacha),and I'm also forcing HTML5without scripts as the result format.Together with this,I also have a fancy CSS additionto the default onethat uses the System Font Stack conceptto harmonize fontswith readers' local systems,without downloading or injectingexternal fonts.I've customized links and tags a bit,with the CSS, together with tablesand some other pieces here and there,but nothing too much fancy.
So, this is one (not-so-)random pageof my digital garden,or my knowledge 枯山水,my knowledge Zen garden, as I prefer to call it.This is, specifically, the page relatedto write about the Digital Garden concept itself,as a sort of meta-writing.You can see the differentrendering of the links,depending if they are internal, in blue,or external to the garden in gray-ish.You can see the Japanese furiganaon top of the kanjis,and you also can see the automatic table of contents,the custom aside component that highlightsthe latest modification date, and so on.Everything I've spoke about hereis available in my digital gardenin my knowledge kare-san-sui, again,as a sort of self-descriptionof the digital garden itself.
Thank you, everyone,for being with me till the end.So as I said, if you want more detailsabout these topics,take a look at my knowledge kare-san-sui.The link is here, and feel free to contact methrough Delta Chatat this email address.Yes, I know.It's a Microsoft email address.It's an old one.I recycled it. I know. It's my fault.Thank you again, and happy Emacs everyone!