💾 Archived View for her.esy.fun › posts › 0011-export-tangle-names › index.gmi captured on 2022-01-08 at 13:41:32. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

Add links to code block during orgmode export

date: [2020-02-29 Sat]

author: Yann Esposito

email: yann@esposito.host

gpg

keywords: org-mode blog

description: Add links to code block during orgmode export.

I wanted to add a link to the file I export with org tangle.

And it was surprisingly difficult to find.

Apparently I am one of the few people that use orgmode the way I do.

Using orgmode file as markdown to blog.

And exporting to a different file some code block.

So I often endup writing something like:

..begin_src elisp :tangle foo.el

I tangle the source code that export the code block to an external file.

Then I use this hook during HTML export to add a caption with the link the

file I tangled:

(defun my-add-link-to-tangled-files (backend)
  "Add a link just before source code block with tangled files.
BACKEND is the export backend. Used as symbol."
  (while ;; (re-search-forward )
      (re-search-forward "^\\( *\\)#\\+begin_src .*:tangle \\([^\s\n]*\\)" nil t)
    (replace-match "\\1#+CAPTION:

=> ./\\2 =\\2=
\n\\&")))

(add-hook 'org-export-before-processing-hook
          'my-add-link-to-tangled-files)

And this article is an example of the result.

The link with the listing is generated automatically for me.

A small note regarding CSS.

My =pre= have a =margin-top=.

But I wanted to get rid of it when the previous block was a =label=.

This is achievable with:

label + pre {margin-top: 0;}

That's it.

It took me really a long time to just think about using caption, and not

trying something smarter like injecting html code, etc...

So I hope it could help someone.

Home

Feed

Slides

About

code

bookmarks

notes