2 个稳定版本
1.1.0 | 2022年11月5日 |
---|---|
1.0.0 | 2021年8月28日 |
#3 in #dialogue
105KB
1.5K SLoC
ogam
什么是 ogam
?
在文档中一致地执行排版规则可能很复杂。在法语中,对话的排版规则可能最为复杂。 ogam
是一种特定领域的标记语言,旨在让小说作者免于手动执行排版规则的痛苦。
此外,ogam
允许对文本进行元数据注释。例如,可以指明特定对话行是由哪个角色说的。这为可发现性铺平了道路,例如,查找特定角色说话的场景列表。
语言
格式化
This is a regular sentence.
<p>This is a regular sentence.</p>
这是一个普通句子。
*This is a sentence with emphasize.*</p>
<p><em>This is a regular sentence.</em></p>
这是一个普通句子。
+This is a sentence with strong emphasize.+</p>
<p><strong>This is a sentence with strong emphasize.</strong></p>
这是一个强调的句子。
This +is+ a *sentence with +multiple emphasizes+*.
<p>This <strong>is</strong> a <em>sentence with <strong>multiple emphasizes</strong></em>.</p>
这是一个 强调 的句子。
"This is a +quote+."
<p>“This is a <strong>quote</strong>.”</p>
“这是一个 引用。”
This +is an "incorrect+" sentence.
<p>This <span class="illformed_inline">+is an "incorrect+" sentence.</span></p>
This +is an "incorrect+"
sentence.
<p>This <span class="illformed_inline">+is an "incorrect+"</span> sentence.</p>
对话
[Hi,| she says.|](Clara)
<p><span class="dialogue by-Clara">“<span class="reply">Hi,</span>” she says.</span></p>
“嗨,她说。
[Hi,| she says.| How are you?](Clara)
<p><span class="dialogue by-Clara">“<span class="reply">Hi,</span> she says. <span class="reply">How are you?</span>”</span></p>
“嗨,她说。 你好吗?”
[Hi,| she says.| How are you?](Clara) [I'm fine, thanks.]
<p><span class="dialogue by-Clara">“<span class="reply">Hi,</span> she says. <span class="reply">How are you?</span>”</span></p><p><span class="dialogue">“<span class="reply">I’m fine, thanks.</span>”</span></p>
“嗨,她说。 你好吗?”
“我很好,谢谢。”
[Hi,| she says.| How are you?](Clara) She was smiling. [I'm fine, thanks.]
<p><span class="dialogue by-Clara">“<span class="reply">Hi,</span> she says. <span class="reply">How are you?</span>”</span> She was smiling. <span class="dialogue">“<span class="reply">I’m fine, thanks.</span>”</span></p>
“嗨,她说。 你好吗?” 她在微笑。 “我很好,谢谢。”
It was a hot day. [Hi!| he said.](Aaron)
His friends smiled.
<div><p>It was a hot day.<span class="illformed_inline">[Hi!| he said.](Aaron)</span> His friends smiled. </p></div>
天气很热。[嗨!|他说。(Aaron)](Aaron) 他的朋友们笑了。
段落
This is a first paragraph.
This is a second paragraph.
<div><p>This is a first paragraph.</p><p>This is a second paragraph</p>
这是第一段。
这是第二段
[Ceci est une première ligne de dialogue.]
[Ceci est une autre ligne de dialogue.]
<div><p><span class="dialogue">« <span class="reply">Ceci est une première ligne de dialogue.</span></span></p><p><span class="dialogue">— <span class="reply">Ceci est une autre ligne de dialogue.</span></span></p></div>
「 这是第一行对话。
— 这是另一行对话。
实现
在此期间,一个 ogam
的第一个实现(即 ogmarkup
)解析器和编译器已被编写在 Haskell 中,并且已在 hackage(MIT)上发布。
这个第一个项目已被废弃,以便于用 Rust 重新编写。与它的前身不同,ogam
以 MPL 2.0 的条款发布。
依赖关系
~0.9–1.3MB
~25K SLoC