Markup Reference for This Blog

This Blog consists of two parts: an old section written in Org Mode markup, and a new section written in Pollen. The code for generating content from the Org source is in /elisp, and we don’t talk about it. This reference describes the markup language I implemented on top of Pollen.

This reference assumes basic understanding of Pollen, one should read its manual, Pollen: the book is a program, before reading this reference.

The source of most of the tag functions described in this page can be found in /pollen.rkt, under the project root.

This page describes some common markups.


Bold and italic are the same as in html.

◊b{bold}, ◊em{italic}.

For Chinese, use 着重号 and 仿宋

◊emph{着重号} and ◊zhalt{仿宋}。

Center a block with


For small caps, use ◊sc{...}, they will be rendered as small caps in html and normal caps in rss.

Use ◊om{...} for proportional oldstyle (0123456789); use ◊lm{...} for tabular lining (0123456789). The default is the font default, which is usually tabular lining. Tables and footnote references explicitly use tabular lining by default.


A blog post (or a single page of text) rarely needs headings beyond the second level, so This Blog only provides first and second level headings:

◊section{First level heading}
◊subsection{Second level heading}

Headings written in this way are collected in the table of contents and is numbered. To produce a heading that is not in the toc, nor numbered, use

◊h2{First level heading}
◊h3{Second level heading}

Hyperlinks and images

Hyperlinks are produced by


For example,

◊link[""]{◊em{GNU Emacs}}

produces a link to gnu Emacs’s homepage: GNU Emacs.

Similarly, images are produced by

◊image["url" #:style "CSS style"]{Image description}

The description is mandatory, for accessibility purpose. The #:style argument is optional.

If one wish to include a caption under an image, they can write

  ◊image["url" #:style "width: 30%"]{Image description}

It would look something like

A cat
A cat that looks quite serious

There are also some preconfigured styles:

img.half { width: max(50%, 300px); }
img.twothird { width: max(66%, 400px); }

which can be used as:

◊image["url" #:class "half"]{Image description}

Code and quote

Monospaced text is marked with


Inline code can be produced by


Block code are produced by


As for now, code blocks are not colored.

Similar to a block code, a block quote is produced by

  My name is Ozymandias, King of Kings;
  Look on my Works, ye Mighty, and despair!


We use the same tags as in html for creating lists:

For example,





An easy way to produce a table is to use quick-table. In a quick-table, each line defines a row, each cell is separated by “|”. And the first row is considered the header.

  Name | Love Power | Exp Level
  Caroline | Strong | 1
  Kat | Medium | 3
  Annie | Strong | 2

The complicated way, and perhaps more powerful way, is to use html tags:

Tag Role
tr table row
th table header
td table data cell
thead table head
tbody table body
tfoot table foot

Note that the table above is wrapped in center tag, a table by itself is not centered.


A reference to a footnote is produced by

◊fnref["id"]{referenced text}

And the definition of the footnote is produced by


For example,

Today’s guest has 130 years of work experience in the


◊fndef["federation"]{Galactic Federation of Homo Sapiens}

It is recommended to put the footnote definition at the end of a section or subsection instead of the end of the whole
, because a page on the web could stretch quite long.

Like this.


Before the body starts, we declare some meta information used to produce the final page. The meta for this particular page looks like

◊define-meta[date]{<2021-09-03 Fri 00:14>}

  ◊title{Markup Reference}

The date meta contains an Org Mode time stamp2 that’s down to either day or minutes. The uuid meta contains a uuid for this page. The tags meta contains a space-separated list of categories. For now there are Type, Emacs, Emacs_pkgs, Programming, Tech, Blog. The lang meta contains the ISO-639 language code of this page.

Since define-meta can only store plain text, This Blog provides the meta tag to store annotated metas. For the purpose of Notes, we only need to declare the title for the page. 余日摇滚 make more elaborate use of this feature.

An Org Mode timestamp looks like <2021-09-08 Wed> or <2021-09-08 Wed 09:42>. See Creating Timestamps.

For rss documents, set a rss-mode meta to indicate we are in generating rss, the value can be anything. Eg,





◊jpns{inline content}
  Block content


◊trad{inline content}
  Block content

韩文用 ◊korean{inline content}

歌词用 lyrics 包裹起来翻译在每行原文下面trans 标记

  ◊jpns{相约出来见面 16岁的夜晚}
  ◊trans{相约出来见面 16岁的夜晚}

余日摇滚的 meta 用下面的格式

◊define-meta[date]{<2021-09-02 Thu 21:08>}

  ◊artist{First impression}
  ◊title{Title of the single}
  ◊album{Title of the album}



cover-img 这个标签里填专辑图片的文件名博客会自动去 /rock/day/album 里找