<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>hi, it&#39;s mike</title>
    <link>https://mike.puddingtime.org/tags/gollum/</link>
    <description>Recent content on hi, it&#39;s mike</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>mike@puddingtime.org (mike)</managingEditor>
    <webMaster>mike@puddingtime.org (mike)</webMaster>
    <copyright>© 2026, mike</copyright>
    <lastBuildDate>Sun, 20 Apr 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://mike.puddingtime.org/tags/gollum/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Solving the Denote/Gollum links quandary</title>
      <link>https://mike.puddingtime.org/posts/2025-04-20-solving-the-denote-gollum-links-quandary/</link>
      <pubDate>Sun, 20 Apr 2025 00:00:00 +0000</pubDate><author>mike@puddingtime.org (mike)</author>
      <guid>https://mike.puddingtime.org/posts/2025-04-20-solving-the-denote-gollum-links-quandary/</guid>
      <description>&lt;p&gt;My whole &amp;ldquo;thing I wish Denote would just do&amp;rdquo; issue has been around its custom linking format: If you use Denote&amp;rsquo;s kind of awesome org-mode dblocks, you get &lt;code&gt;denote:&lt;/code&gt; formatted links. Prot is very careful to say custom links are perfectly legal and supported by Emacs, but that leaves out the reality that there&amp;rsquo;s an ecosystem of non-Emacs org-mode tools (e.g. &lt;a href=&#34;https://plainorg.com/&#34;&gt;Plain Org&lt;/a&gt;) that don&amp;rsquo;t understand custom link formats.&lt;/p&gt;
&lt;p&gt;So I had this very cool thing going on with &lt;a href=&#34;https://github.com/gollum/gollum&#34;&gt;Gollum&lt;/a&gt; running on my Synology. Gollum is mostly the same engine GitHub uses for its own wikis, and it can understand a variety of plaintext formats (including Markdown and org). With Gollum you&amp;rsquo;ve got a web front-end with search, version control, and inline editing if you&amp;rsquo;re away from an Emacs-capable machine or just want to look a note up on a phone.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>My whole &ldquo;thing I wish Denote would just do&rdquo; issue has been around its custom linking format: If you use Denote&rsquo;s kind of awesome org-mode dblocks, you get <code>denote:</code> formatted links. Prot is very careful to say custom links are perfectly legal and supported by Emacs, but that leaves out the reality that there&rsquo;s an ecosystem of non-Emacs org-mode tools (e.g. <a href="https://plainorg.com/">Plain Org</a>) that don&rsquo;t understand custom link formats.</p>
<p>So I had this very cool thing going on with <a href="https://github.com/gollum/gollum">Gollum</a> running on my Synology. Gollum is mostly the same engine GitHub uses for its own wikis, and it can understand a variety of plaintext formats (including Markdown and org). With Gollum you&rsquo;ve got a web front-end with search, version control, and inline editing if you&rsquo;re away from an Emacs-capable machine or just want to look a note up on a phone.</p>
<p>And Denote has its very cool org-mode dblocks: You can use a regexp to pull files matching a certain pattern into a dynamically updating block to create things the Zettelkasten folks might call a MOC, Prot refers to as &ldquo;metanotes,&rdquo; etc. I have made a set of index files on high-level areas I tagged with &ldquo;topic,&rdquo; so a Denote dblock with this syntax:</p>






<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span class="line"><span class="cl"><span class="err">#</span><span class="nv">+BEGIN:</span> <span class="nv">denote-links</span> <span class="nb">:regexp</span> <span class="s">&#34;_topic&#34;</span> <span class="nb">:not-regexp</span> <span class="no">nil</span> <span class="nb">:excluded-dirs-regexp</span> <span class="no">nil</span> <span class="nb">:sort-by-component</span> <span class="no">nil</span> <span class="nb">:reverse-sort</span> <span class="no">nil</span> <span class="nb">:id-only</span> <span class="no">nil</span> <span class="nb">:include-date</span> <span class="nv">nil</span></span></span></code></pre></div>
<p>&hellip; will dynamically create an index of links to all my &ldquo;topic&rdquo; notes, and within each of them I can make Denote dblocks that pull in notes with their tag.</p>
<p>In the context of Gollum, or even just an entry point into my notes collection, that means my Home page can provide a dynamic index of topic notes as I create them. <em>Except</em>, of course, the whole problem that a Denote dblock uses its custom <code>denote:</code> link scheme, and Gollum can&rsquo;t understand that.</p>
<p>You can manually use Denote&rsquo;s <code>denote-org-convert-links-to-file-type</code> command to convert those links to standard <code>file:</code> links, but I&rsquo;m forgetful and hate the thought of having to remember to do it. So I fixed it with a <code>.dir-locals.el</code> file that does it for me with a pre-save hook:</p>






<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span class="line"><span class="cl"><span class="p">((</span><span class="nv">org-mode</span> <span class="o">.</span> <span class="p">((</span><span class="nf">eval</span> <span class="o">.</span> <span class="p">(</span><span class="nv">add-hook</span> <span class="ss">&#39;before-save-hook</span>
</span></span><span class="line"><span class="cl">                                <span class="nf">#&#39;</span><span class="nv">denote-org-convert-links-to-file-type</span>
</span></span><span class="line"><span class="cl">                                <span class="no">nil</span> <span class="no">t</span><span class="p">)))))</span></span></span></code></pre></div>
<p>So I can update my topic pages, save them, the hook runs for me, and I can push into the Gollum repo. I get to keep all of Denote&rsquo;s convenience features around link-making, backlink lists, etc, and Gollum knows what to do with it all.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
