Emacs Turbo-Charges My Writing
Jeremy Friesen (he/him) - Pronunciation: JERR-im-EE FREE-SEHN, https://takeonrules.com, jeremy@jeremyfriesen.com
Format: 9-min talk ; Q&A: BigBlueButton conference room
Status: Q&A to be extracted from the room recordings
Talk
Duration: 08:53 minutes00:00.000 Intro 00:57.120 How I got here 01:18.400 Friction 01:45.960 Domains for notes 02:15.920 Demo 02:55.440 Dabbrev and hippie-expand 03:32.840 Links 07:49.160 Conclusion
Q&A
Description
https://takeonrules.com/2023/12/03/emacs-turbo-charges-my-writing/
I’ve been actively blogging since 2011. In May 2020 I switched to writing my blog posts in Emacs. The numbers don’t lie, I’m writing more than ever, in part because of Emacs.
In this presentation I’ll walk through my writing setup for Emacs. I’ll go over the workflow of writing in Org Mode syntax with Denote serving as my personal knowledge management system.
I’ll demonstrate some of functions (or types of functions) I use for:
- Dynamic auto-completion for Org-Mode macros
- Linking to other Org-Mode documents via different contexts (abbreviations, citations, and links)
- Different Org-Mode blocks that map to HTML elements
And with a complete post, I’ll then walk through the resulting export. Demonstrating the output to Hugo (and its shortcodes) as well as other formats.
About the speaker:
Jeremy Friesen is a long-time software developer but only recently an Emacs convert (as of May 2020). When he switched to writing posts using Emacs, he observed an explosion in writing, in part because of the joy of using a tool that he can shape and extend to meet his needs and wants.
Discussion
Questions and answers
- Q: Do you think the line number for writing document kind of
distraction? Especially for notes.
- A:I don't find it distracting; I've been coding for a long
time and those fringes are partially invisible. But help me
orient.
- or, what it brings to you, if we don't have that.
- Given that I'm writing code, prose, documentation, etc, I prefer to have a common left fring...most of the time.
- Okay. I use (avy-goto-line &optional ARG) for jumping
- I bind C-j to jump to
avy-goto-char-timer
; My C-l is bound toconsult-goto-line
- I bind C-j to jump to
- or, what it brings to you, if we don't have that.
- A:I don't find it distracting; I've been coding for a long
time and those fringes are partially invisible. But help me
orient.
- Q: How do you manage private and public data with your zettlekasten.
One of my blockers on putting my zettlekasten on the web is I don't
want everything in it to be public. expeccily fleeting notes
- A: I explicitly export a single page at a time; this ensures the primary page is something I consider public.
- Q: Do you have anything to prevent private links from getting
accidentally being made publicaly accessible
- The main guard is the "publish this page" function. Under
the hood, private notes are those that I don't specify a
public URL. I do this by way of the
#+ROAM_REFS:
keyword (technically there are a few other keywords I check as well; for bespoke historical reasons) on the document. If it doesn't have that, then an internal link to that item will not export a public link.
- The main guard is the "publish this page" function. Under
the hood, private notes are those that I don't specify a
public URL. I do this by way of the
- Q: Is there anything special you're using to go from Org to Hugo
Markdown? This looks like a really nice setup, and I'd like to
give it a try!
- A: https://github.com/jeremyf/dotemacs you'll be looking for jf-blogging.el (also jf-org-mode.el)
- Q: Another font question. What font were you using in eww?
- A: For fixed fonts I'm using "Iosevka Comfy Motion Fixed" and for variable "ETBembo"
- Q: What's the story behind the name "Take On Rules"?
- A: The blog started as a game rules oriented blog; it was my
time to interrogate rule systems. But over time that drifted;
and once I moved to Org-Mode for writing I settled on an
everything and nothing blog. My
https://takeonrules.com/about/ has a bit more details on this
- "Anything and nothing." Makes sense.
- A: The blog started as a game rules oriented blog; it was my
time to interrogate rule systems. But over time that drifted;
and once I moved to Org-Mode for writing I settled on an
everything and nothing blog. My
https://takeonrules.com/about/ has a bit more details on this
Notes
- https://takeonrules.com (presenter's personal blog)
- When you put your thoughts on the physical world, it actually helps you to generate more. It's kind of releasing your mind and let your mind freely be free so from that kind of states you can create something new
Transcript
Captioner: bala
Q&A transcript (unedited)
so Sasha, you don't need to worry about this. Hi Jeremy, how are you doing? I am feeling replenished after this lunch break and I am happy to go back for 4 more yeah great, Let me just put up the questions. So Jeremy is going to read the questions and answer them and I will be doing jazz hands in the background or provide any bits of information I may, considering that Orgrim has been mentioned during the presentation and everyone's going to want to ask me. at... Show me? Yeah, go. do you think the line numbers for writing documents is kind of a distraction, especially for notes? No, I do software development and that left fringe is kind of invisible, but I do like to use jump to line. So I just bind that to control L and it's helpful to just see that. So no, I haven't noticed that. There are other ways to jump around in Emacs, but I like to have many different ways. So, yeah. Then how do you manage private and public data with your Zettelkasten? 1 of my blockers on putting my Zettelkasten on the web is I don't want everything to be public, especially fleeting notes. So 1 thing is I only explicitly export a file to Hugo and I have that, I can like, I can export this. That doesn't show up very well. So it's export probably export org to take on rules and we'll export the buffer. And then any that I referenced, like these are all links, any notes that are not public will be exported as the text, but there won't be a link to it. So it's having the very deliberate, this is going up. And so I send it over into Hugo, which is its own repository, and either massage it there or whatnot. Is that any further questions on that 1? org to Hugo markdown? This looks like a really nice setup. I like to give it a try. Yes, there I have a bespoke build process. Having started in WordPress, working through Jekyll, going to Hugo, and then switching from Markdown to org mode, I've backed into this private public Zettelkasten, which is really nice. And I have added quite a bit of code. There's my dog. notes because I want I have marginalia instead of like the footnotes, but I still use org mode footnotes. And so I've got a bunch of these things and this is all available up on GitHub And I'll provide a link in the document. Yeah, so there's quite a bit of making the export work how I want it. And I've been kind of fiddling with also improving like LaTeX or PDF export. So yeah, I have a long running to do item to fully lay out my bespoke build process. Because once it gets to Hugo, there's also additional work that I do to compile what is kind of a personal, like a digital garden-ish, it's really a blog focused 1. So yeah, it's at Jeremy F on GitHub at dot Emacs. And you'll be looking for JF blogging.l that has some of this. Also jforgmode.l will have some of that. Yeah, I wanna circle back to that, anything to prevent private links from getting accidentally being made publicly accessible. Yes. So previous to using denote, I also used org-roam. So I have this idea of a node in org-roam has roam refs. And org-roam is much more robust about that. So anytime you mention a ref, it will count it as a backlink. So for example, if my node was my blog, take on rules, anytime, anywhere in my org Rome repository, I mentioned takeonrules.com, it would treat it as a backlink. So from that Rome refs, I have a, I will interrogate, and this is not the function for I will look at the node to see does it have a Rome ref and if it does I will treat it as a public link. So I don't I haven't bled out any private information because again going back to I only publish a document and the document I'm explicitly doing so and then my process filters out any links that do not have public URLs. It will just dump it in there as maybe a span with a ref class of it so that I can kind of know that that came from there. Yes, So the font I am using is, so this is another font. What font were you using in EWW? I think I'm using IOS Becca and ET Bembo. If we are doing full ricing setup, I can recognize Yosefka just by looking at it. ET Bembo, I'm using these 2 fonts as kind of my anchor. So the variable pitch is ETBembo. My blog started off with a Tufta style CSS and I really pared it down and got rid of any of the additional fonts because they can be used as trackers. And I'm like, nope, you decide what font you want for your browser. I don't need to tell you what looks good for you. Yeah, so the story of Take On Rules, I have to thank my partner and lovely wife for that. She kind of nudged me to do some blogging, and we spent some time thinking about it. And originally, it started off as writing about rules for role-playing games or tabletop games. And it has extended far beyond that. The blog, as I've shifted, as I think I mentioned in the presentation, as I've shifted towards an everything and nothing approach, the blog is anything I want to write about anymore. There's haikus up there with some regularity. So the name is now a relic of a past. So yeah, the thing and nothing is, and I put that in the about on my blog. So it's, I highly encourage like, I feel great. Once I like said, oh, I don't have to write this towards a topical blog post or like what the topic is, it freed it up. And I know that it comes at a potential compromise because it's very much me being a voice up there instead of something that is curated and filtered through a specific channel like I could have a technical blog but I decided I'm just gonna tag it as programming or emacs and let you find it and you can subscribe to the rss feeds of each tag that you find applicable question on the pad but I see that some people have joined us on the blue button. So, hi everyone! We have about 6 minutes until we need to go to the next talk, but if anyone has a question on the blue button, I'm thinking about James who's joined us and who was kind enough to drop a thank you line on the blue button. Do you want to unmute yourself and ask a question maybe? I'm not putting pressure by the way, I don't feel like you need to but it just... I speak all the time otherwise I'm very happy to spend time with our speakers you know but you know EmacsConf it's about, as Sasha told you during the intro, it's about making people take things, brilliant things out of their mind and put them outside in the public. And for us, you know, we get to see the talk evolve, we talk with people. So for us we are already quite cognizant of the topic and the point is not for us hosts to ask questions, it's mostly for you to ask questions and then we worry about all the fancy stuff in the background. Otherwise you damn well know I will ask questions about org-roam, about links, and nodes in general, because that's my bread and butter. the process of migrating the data from a WordPress export to markdown to org mode by way of Pandoc was, it was really insightful to help me understand how I want the data to flow and how I could create a repository for me of information and 1 that I could then send out into the world, the public information, while not having to worry about the private things that I might want to keep. So it was that process of just working through it to reflect on how I'm writing and what I started using writing for. I think Richard Feynman said, no, writing is my thinking. What I wrote is thinking. So it has helped to really frame that. ambivalent relationship because it feels like writing helps thinking and thinking helps writing in a way and nowhere have I personally been more aware of this than when coming up with networks of notes because it really I mean you use whichever word you want you know a second brain a collection of notes a slip box a repository of notes whichever the tool you use the point at the end is to resonate with you. It's kind of like extending those moments of consciousness that you have when you take your notes, and you make the entire gradient available. Sorry, I heard Sasha whispering in my ear sometimes. It's pretty pleasant. It's really shocking. Do I use denote just for my blogs or do I use it for other purposes? I use denote for all of my note taking and almost, I think it's exclusively org mode that I, that I use it in. But what I really appreciated in the consideration that Proc put forward was the file name encodes the information that's relevant. So it has helped me be able to query by using things like ripgrep, well not ripgrep, tree or I forget any more what I use. But having that the file encodes useful information. And it's so much more relevant when I look at having worked at a university that rolled out Google Drive to everyone without any guidance on how to organize stuff. And I worked at a library and it was just a nightmare watching things show up where you could never find it again. So, file name, the file name having the date, having the title and having tags just made so much sense to be findable. And yeah, I really do just use org. But if I am going to make txt files or other files, I have started adopting that structure and format. and 30 seconds left until we go on to the next talk. Do you have any final words regarding your presentation or maybe where people can find you? I know you've already mentioned this but... dice.campmastodon at take on rules and I've thought about emacs.h but we federate well So I appreciate that. And I can stay on and answer any further questions if folks have it. I confused myself with the buttons talking to production and all. Well then, what I'm going to do is that the stream is going to move on to the next talk in about 50 seconds. If people want to join and ask any questions, feel free to join on the blue button. The link is on the talk page or on IRC. And feel free to hang out as long as you want to ask as many questions as you want to Jeremy. We are recording all of this and we'll be publishing this later on once again. And all that's left for me to do is to thank you so much, Jeremy, for your presentation and your answers. And I will see you another time. I'm not able to grant speaking powers. So if you wanted to type up something question-wise. So we're moving on to the next talk. We'll figure out the things about VBB, But in the meantime, enjoy the next talk. Bye. All right, Jeremy. We are now on the next talk. Sorry about having to mention multiple things at the same time. Speaking rights. I will try fixing this in the background. I need to get moving for the next talk, but I'll do it in the background and we'll let you know as soon as it's ready.Questions or comments? Please e-mail jeremy@jeremyfriesen.com