WelcomeAnother week, another newsletter! I hope that you all had a great one 🤩 Finally, back to normal life, after having gone through INTENSE emotions recently! First, my upcoming wedding, then a scary bike crash this week-end (first one for me in 25 years)... I've been cooking really cool stuff this week. Come along to The Lab with me, and I'll tell you everything! 🚀 BTW, please consider becoming a paid subscriber. It's THE ONE WAY to support my work and help me be free to help you all day ❤️
This newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a paid subscriber.
The lab 🧪This week, I continued coding. It felt really refreshing to get back into the programmer's mindset, analyzing a problem, thinking about potential solutions, and implementing those. For those who are eagerly waiting for my upcoming course, please be patient. I will deliver ❤️ I've worked on three main things in the last few days: - A template for building Obsidian plugins
- An Obsidian plugin to serialize Dataview queries
- An Obsidian plugin to integrate Typefully
Template for building Obsidian pluginsI didn't like the official Obsidian plugin boiletplate. I found it too basic for my taste. The template I have created is intended to help me (and others) create Obsidian plugins more efficiently, and with more support. And since I'm a huge fan of Nrwl NX, I've used that as a starting point. My template includes: - A clean structure with proper separation of concerns (i.e., not everything in a single file)
- A set of scripts to build, watch, copy to Obsidian, release, format the code, etc
- GitHub workflows for CI and release
- Creating a release is as simple as running `npm version patch|minor|major && git push && git push --tags`
- ...
The code is available on GitHub: Obsidian plugin to serialize Dataview queriesNext, I developed a plugin that can "burn" dataview queries: An example of what the Obsidian Dataview Serializer plugin does Above, you can see an example of what this plugin does. The first line defines a Dataview query to serialize. The following lines are added automatically by the plugin, and correspond to the result of executing that query. You might wonder: "But what's the point if I can just write a normal Dataview query?". There are actually multiple benefits! - First, the lines added by the plugin are actual Markdown, which means that those links above do appear in the Graph view. Hence, the queries I add enrich the knowledge graph
- Second, since it's all actual Markdown, it's compatible with Obsidian Publish, which is not the case with normal Dataview queries.
- Last but not least, the output is stable, and part of the note forever. If you don't edit the note again, the content will remain the same.
The idea came to me when I started publishing my notes using Obsidian Publish. I realized that Dataview queries were not compatible with it. They just disappear once published. And it makes sense. Dataview is an Obsidian plugin that modifies what you see when you look at a note within Obsidian. If you look at the Markdown file with another text editor, all you see is the Dataview query, not its output. When a note is published, Obsidian converts the Markdown to HTML, but Dataview is not involved in the process, and nothing gets generated. Another "problem" is that Dataview queries are always "LIVE". That is, when you add a Dataview query to a note, the result will always be fresh when you look at the note. And it's not always what you want, hence this proposal to allow "burning out" dataviews:
“Burning out” dataviews · Issue #42 · blacksmithgu/obsidian-dataview
I’ve started using dataviews in my daily notes via the daily note template. One dataview I’m using lists all the notes I edit that day: list from “some-folder” where file.mtime.day = date({{date:YY…
GitHub
•blacksmithgu
From those observations, I started thinking about how I could convert Dataview queries to Markdown, and keep the output as part of the note... I then thought about the Waypoint plugin, which actually does something like that for folder notes. Basically, what that plugin does is detect placeholders such as this in folder notes: %% Waypoint %% . When it detects one, it automatically adds a list of notes contained in that folder. I realized that I could basically do the same, but include a Dataview query in the comment: %% QueryToSerialize: LIST FROM #my_quotes WHERE public_note = true SORT file.name ASC %%
And THAT is pretty powerful, since you can do tons of interesting things with Dataview queries. This de-facto makes this plugin valuable. For instance, with the query above, I can generate a list of links for my folder notes and Maps of Content (MoCs) that remain valid once published, since I only include notes that have been marked as public (i.e., published). I couldn't do the same with the Waypoint plugin. The plugin that I've built automatically detects those queries, and automatically serializes each to actual Markdown. To ensure the stability of my notes, the plugin only serializes queries in the current note (meaning that old notes with serialized queries will not be touched unless I edit those). I now use it for my maps of content, person/contact notes, folder notes, and more! Also, I refresh the queries present in the notes I publish online: Updating the serialized dataview queries for published notes Here's an example: For now, the plugin is only available on GitHub, but I'm going to propose it to become part of the community plugins: Obsidian plugin to integrate TypefullyNext, I created a plugin to integrate Obsidian with Typefully. My goal was to publish social media posts to Typefully right from Obsidian. After hacking at it for a few hours, I managed to achieve my goal: Demo of my Typefully plugin for Obsidian My plugin adds a command and context menu entries to publish the current note, or the current selection to Typefully. For now, it's possible to configure the following: The settings of my Typefully plugin Due to the current limitations of the Typefully API, it's not very advanced, but it's still going to help me a ton to schedule social media posts. I also like the last option I've added: "Append tags to posts". With it, whenever I publish something, the tags of the note are automatically appended. This plugin is only available from GitHub at this point, but I'll also try to get it added to the official list of community plugins: New articlesNo new articles this week. New published notesI've published a ton more notes to my Website this week:
I enjoy sharing small bits of the various ideas I explore: Some ideas I've explored recently Note of the weekQuotes of the week- Doubt kills more dreams than failure ever will
- The universe is pure chaos. It's up to us to make things happen. Setbacks are just random events
- We're always fighting in some way. Either against entropy, or inertia
Thinking and learningI've recently discovered and used this cool script to download an Obsidian publish Website. Works like a charm! Go grab a copy of my notes while they're available 😂 Converting handwritten notes is one of the things I'm currently frustrated about. I'm going to give it a try using GPT4o. Meanwhile, others are also working on solutions:
I've started using Voicenotes recently, and really love the UX, transcriptions it generates, and the possibility to ask questions and brainstorm: BTW, the current ~$50 lifetime subscription is a real bargain. How bookmarks became the backbone of Vlad Campos' system. I might explore the possibilities for the Obsidian Starter Kit Adding flashcards in Obsidian? For sure: How do you categorize "special" notes in your PKM system? Personally, I use a "Meta" folder for those: Could we identify a set of universal Knowledge Management "rules"? I think so, and I'll actually give it a try: Ready to get to the next level?If so, then check out the Knowledge Worker Kit, the Obsidian Starter Kit, the Obsidian Starter Course, the Knowledge Management for Beginners course, the PKM Library, a PKM coaching session with me, my collection of books about software development and the IT Concepts Wall 🔥.
If you want to discuss, then don't hesitate to join the Personal Knowledge Management community or the Software Crafters community. About SébastienHello everyone! I'm Sébastien Dubois (you can follow me on Twitter 🐦). I'm an author, founder, and CTO. I write books and articles about software development & IT, personal knowledge management, personal organization, and productivity. I also craft lovely digital products 🚀
If you've enjoyed this article and want to read more like this, then become a member.
|