Title : Proposal for Markdown ruby tag syntax
Author : Charles Jie (tw)
Email : chjie7@gmail.com
Tags : [markdown ruby syntax]
Revision : 0.2 - formalized by DeepSeek, then refined
Created : 2025-05-09
Proposal for Markdown ruby tag syntax
requirements
- Easy to type – ASCII-only (avoid full-width
()【】
). - Easy to read – Base text remains clean (no quoting); ruby text should be subtle and ignorable.
- Minimal syntax – Prefer one symbol (e.g.,
^
) over pairs like[]
or{}
. - Language-agnostic – No full-width symbols.
- Unambiguous – Visually scannable and machine-parsable.
- Intuitive design –
^
for<ruby>
(implies “up” for ruby text);()
for<rt>
(enclosing a string/list).
proposed syntax
1. inline ruby
^base(ruby) # e.g., ^振り向(ふりむ)く
^base() # Auto-fill ruby from a dictionary
2. outlined ruby block
standard (invisible by default):
^^^ruby[+] # `ruby` is optional; add `+` to show this block as well (for learning)
- ^base(ruby) - append extra text if needed (to explain etc.)
- ^base(r1 r2) # Multiple rubies (e.g., ^図書館(と しょ かん)
^^^
alternative (render ruby literally by default):
^^^ruby[+][^] # add `^` to render ruby objects
- base(ruby) # Clean reference format
- base(r1 r2)
^^^
Note: ^
acts as <ruby>
without needing a closing tag (implied by )
).
examples
^振り向(ふりむ)く
^振(ふ)り^向(む)く
^図書館(としょかん)
^図書館(と しょ かん)
^台灣(ㄊㄞˊㄨㄢ)
^香港(xiānggǎng)
comparison to existing conventions
- じゅくご【熟語】→ Uses
【】
(visually heavy) for kanji. - しめ【締め・〆】→
・
delimits multiple kanji.