0.4.0 • Published 8 years ago

youki v0.4.0

Weekly downloads
5
License
-
Repository
-
Last release
8 years ago

[load-library path/join directories/loader "youki-article"]

[define template article auxutil/trace { html5-doctypetags/html { [tags/head { tags/meta [html-attributes [charset "utf-8"]] }] [tags/body [tags/article { tags/h1 article/title }]] }] }]]

[define template/inject sbegin [define s/title content] ]]

[[macro template article [invoke youki-article template article '= 333]] template]::

title {Youki · 有纪}

Youki 是一个文档生成语言,其具备完整的编程特性和完备的宏特性,使之可作任意复杂的文章。Youki 是完全开放源码的,依照 MIT 协议发布。

section {目录}:

# 文法
	# 章句
	# 算式
	# 抄录
	# 它们的组合
# 预定义函数和宏
	# 基础
	# 高级
# 有纪华章

section "文法": Youki 文章是由许多种元素组合而成,主要的是章句算式抄录。它们可以相互穿插嵌套,这也是 Youki 强大能力的来源。

[section {章句}]:
	Youki 使用章句以表示文字。一段章句用花括弧围住,形如:
	
	[pre]|
		{这样。}

	当然也可以更复杂,比如包含若干个段落,类似

	[pre]|
		{
			这里的情形。

			章句中的段落用空行分隔,一个段落可以包含多行,方便
			组织比较复杂的文字。

			同一份章句中的段落必须相同缩进,每一行也是如此。

			不过你可以通过花括弧来组织缩进。花括弧 {
				里面是另一份章句,对于外面来说只相当于一个字。

				在花括弧里的段落可以增加缩进,只要其中的内容缩进保持一致即可。

				{
		其实也可以减少缩进 :)
				}
			}。
		}

	在章句里也可以包含列表,它们

	[pre]|
		- 由一系列的项目组成
		- 每一项占据一行
		+ 列表表头可以是加号、减号或者井号
		+ 表头相同的算作同一个列表
		# 使用井号可以得到有数字编号的列表
		+ 列表的每一项只能有一行
		+ 不过可以
			- 包含子列表
			- 子列表
				# 可以有很多层
				# 很多内容
		+ 当然,任何时候都可以通过 {
			花
			括
			弧
		} 来包含更复杂的内容

	不过只有段落和列表,对于生成文章来说仍然远远不够,因此 Youki 支持一种基于缩进的格式,可以插入任意复杂的模式。要使用它,你需要

	[pre]|
		[一个算式调用]:
			后面加上冒号

			然后就是缩进了的章句节。

	Youki 中绝大多数更复杂的文章组件都是用这种方式提供的,例如,

	[pre]|
		[blockquote]:
			使用 `[blockquote]:` 就可以创建引文区段

	程序员有时候会需要在文章中添加代码块,这些东西都是预先排版好的文字块,我们不想把它当成段落或者列表排版。为了处理这种情形,Youki 的做法是将上面那种「算式-冒号」中的冒号 `:` 替换成竖线 `|`,之后被缩进的地方保持原样,类似

	[pre]|
		[pre]|
			这个样子。

		[highlight javascript]|
			// 于是你就可以在这里放源码了
0.4.0

8 years ago