Notion app logo
Struggling to stay organized and effective? Learn to master your time and tasks with the Effectively Notion course!

Literate Programming

A brief overview of literate programming: the combination of a programming language where the code is embedded in the documentation.

2022-10-28

A concept coined by Donald Knuth.

Literate Programming combines programming language with documentation language by embedding code blocks in the documentation. The embedded code blocks as tangled, or compiled, into a file the target programming language understands.

Most developers write the documentation as comments (usually after the code has been written) in the source code. Literate Programming flips the paradigm so that the documentation informs the code. The documentation becomes the source of truth that leads to the code.

As a trivial example, I write my css for my Obsidian Styles in a Markdown file (it's the Obsidian Styles source file!) and use a Python executable called md-tangle to generate a css file.

Here's an example gif of how that looks in practice.

In this gif, I demonstrate...

  • There's no file called "minimal-plus.css" in my Obsidian dotfiles directory
  • I show my Obsidian Styles Markdown note
  • I then run a command with md-tangle to generate minimal-plus.css from the Obsidian Styles note
Photo of Chase Adams

Hey, I'm Chase. I help aspiring entrepreneurs and makers turn their ideas into digital products and apps.

Freebies

Vector Arrow Scribbles
banner image for figma vector arrows scribbles

A figma community project of vectorized hand-drawn arrows.

Go To Figma
Vector Line Scribbles
banner for figma vector line scribbles

A figma community project of vectorized hand-drawn lines.

Go To Figma
Vector Shape Scribbles
banner image of figma vector shapes scribbles

A figma community project of vectorized hand-drawn shapes.

Go To Figma

Subscribe to my Newsletter

Every other week I publish the Curiously Crafted newsletter.

In it, I explore the intersection of curiosity and craft: the people who make stuff, what they make and the way they pursue the craft of making.

Online

I'm on almost all social media as @curiouslychase.

The curious logo of Chase Adams: glasses and a bow tie.stay curious.