BasicSytax.md 9.2 KB

基础语法

和Markdown类似,ZumDown的书写也是类似纯文本,如果您不需要任何额外的样式,您可以直接当做纯文本进行书写。如果您需要一些额外的样式,可以使用一些特殊的符号格式。

几个基本概念

空白符

指诸如空格、制表符等只占位置不显示内容的符号。

语法字符

用于表达ZumDown语法的符号,例如`号等。另外像#号和>号等字符出现在行首位置时是语法字符,出现在中间没有特殊意义。

可显示字符

除空白符和语法字符以外的其它符号

转义

如果您需要在文本内容中书写语法字符,您需要对其进行转义,转义使用\号,如果您需要书写\号本身,请连续输入两个。使用\号加上该语法字符,即可实现转义,即该字符会被当做可显示字符,而不被当语法字符处理。

续行符

如果您有一行文本,它很长,书写的时候您想分成几行书写,但希望显示出来的效果仍然是一行,您可以使用续行符。在新的一行前面加上+=两个符号,即可实现续行。注意+=之前不应该有其它字符。从+=到您书写的第一个可显示字符之间的空白符会被忽略。

缩进

缩进指在行首出现的一个或连续几个空白符,在ZumDown中,缩进通常会被忽略。如果您想在文中利用缩进产生层级视觉效果,请使用->号(必须从行首开始使用),在ZumDown中它将代表一个制表符的缩进。关于缩进和区块引用的详细说明请看本文档的《与Markdown不兼容的特性》部分。

Superblock

ZumDown提供的一种可扩展高级块级元素,通常情况下使用一对三个`号包围,第一行写Superblock的控制语句:

    ```Superblock控制语句
    块内容
    ```

Superblock控制语句用于指定该Superblock的类型和基本样式。如果该类型不含样式参数,直接写类型,例如注释:

    ```comment
    这是一些注释
    ```

如果该类型含有样式参数,则格式为类型:样式参数,多个参数用逗号隔开:

    ```Superblock类型:样式参数1,样式参数2,样式参数3,...
    块内容
    ```

例如代码区块:

    ```code:python
    def foo():
        return bar()
    ```

由于Superblock是可扩展的,所以不同的渲染器,或者在不同的使用场合,可能存在具体的区别,因为渲染器的开发者或者使用了某个渲染器的网站会自己定义一些类型的Superblock。 关于具体的Superblock用法,可以参考本文档的以下部分:

  • 基本Superblock功能
  • 在swzry.com旗下网站支持的Superblock内容

Markdown已有的样式功能

纯文本

纯文本直接像正常那样书写就可以了。注意,与Markdown不同的是,Markdown的行尾需要两个空白符(空格等)才会换行,而在ZumDown中,你所书写的一行,就是实际上的一行,除非你使用续行符。

换行符

在ZumDown中无需使用Markdown的换行符,直接换行即可。

特殊字符自动转换

如果您需要输入的一些可显示字符,而它对于HTML来说是特殊字符,ZumDown渲染器会自动将其转换为HTML实体。 (注意同转义区分,转义是针对ZumDown语法字符,如果您输入的是ZumDown语法字符,需要手动加上转义符\,而不会自动转义) 书写时写的HTML实体本身可以被保留,例如您想插入一个版权标记 © ,输入©并在前后各留一个空白符即可。

标题

有两种写法,均和Markdown相同(这两种分别被称作类Setext和类atx形式)。

类 Setext 形式:


    大标题
    =============

    二级标题
    -------------

显示效果

大标题
=============

二级标题
-------------

类 atx 形式:


    # 这是 大标题

    ## 这是 二级标题

    ###### 这是 六级标题

显示效果

# 这是 大标题

## 这是 二级标题

###### 这是 六级标题

无序列表与有序列表

无序列表

使用星号、加号或是减号作为列表标记


    * 博丽灵梦
    * 雾雨魔理沙
    * 东风谷早苗

    + 东方红魔乡
    + 东方妖妖梦
    + 东方萃梦想
    + 东方永夜抄

    - 博丽神社
    - 红魔馆
    - 雾之湖

显示效果

* 博丽灵梦
* 雾雨魔理沙
* 东风谷早苗

+ 东方红魔乡
+ 东方妖妖梦
+ 东方萃梦想
+ 东方永夜抄

- 博丽神社
- 红魔馆
- 雾之湖

有序列表

    1. 一面道中
    2. 一面BOSS
    3. 二面道中
    4. 二面BOSS
显示效果

1. 一面道中
2. 一面BOSS
3. 二面道中
4. 二面BOSS

**注意:** 列表标记上使用的数字并不会影响输出的 HTML 结果

例如:

    9. 一面道中
    9. 一面BOSS
    9. 二面道中
    9. 二面BOSS
显示效果

9. 一面道中
9. 一面BOSS
9. 二面道中
9. 二面BOSS

所以,如果想偷懒懒,您可以完全不用在意数字的正确性。

分隔线

在一行中用三个以上的星号、减号或下划线来创建分割线,分割线中可以含有空白符。例:

    - * *

    ***

    *****

    + - -

    ---------------------------------------
显示效果
- * *

***

*****

+ - -

---------------------------------------

链接

格式为[链接文字](链接地址)。例:

[Z神社](http://www.z-touhou.org)
显示效果
[Z神社](http://www.z-touhou.org)

注意,在ZumDown中链接和SuperSpan是共用语法,作为链接,只允许http、https、mailto、ftp、ftps这几个协议,magnet等需渲染器权限配置允许才能使用,除此之外的内容可能会被作为SuperSpan解析。

在Markdown中链接还有一种叫参考式(目前介绍的这种叫行内式),在ZumDown中也是兼容的,但大家较少使用这种类型,所以在本文档中不再赘述。

如果你的链接文字和地址是一样的,可以简单地使用<>把地址包裹起来创建链接。

<http://www.sagume.com/>
显示效果
<http://www.sagume.com/>

斜体、粗体、下划线、删除线

使用一对星号*包裹内容来表示斜体,两对星号表示粗体:

    突然 *警报* 大作,打破了这片宁静, **早苗** 和 **探女** 即刻转过身接手操控。
显示效果
突然 *警报* 大作,打破了这片宁静, **早苗** 和 **探女** 即刻转过身接手操控。

使用一对下划线_来使文字带下划线,使用两对~来表示删除线:

    答案是 _0个人_ , ~~因为幻想乡没有巴士~~
显示效果
答案是 _0个人_ , ~~因为幻想乡没有巴士~~

注: Markdown支持使用_代替*产生粗体、斜体,而在ZumDown中,一对_是表示下划线。但两对_仍然可以表示粗体。

行内代码

使用一对`包裹,可以在行内插入代码。这个是继承自Markdown的行内代码功能。

    按`Win`+`R`打开`运行`,输入`regedit.exe`并回车,打开`注册表编辑器`
显示效果
按`Win`+`R`打开`运行`,输入`regedit.exe`并回车,打开`注册表编辑器`

与Markdown不兼容的特性

值得注意的是,ZumDown虽然兼容大部分Markdown语法语义,但并不是完全兼容,这里特意将不能兼容的部分及替代方法整理出来加以介绍。

### 区块引用

原本在Markdown中代表区块引用的\>号,在ZumDown中用于替代制表符缩进。而您如果想使用区块引用功能,请参照“Superblock”

缩进和代码区块

在ZumDown和部分其它的Markdown方言中,缩进通常都会被忽略。如果您想在文中利用缩进产生层级视觉效果,请使用->号(必须从行首开始使用),在ZumDown中它将代表一个制表符的缩进。

如果是在标准的Markdown中,四个空格或一个制表符代表的缩进是“代码块”,而该功能在ZumDown和部分其它的Markdown方言中被禁用。如果您想显示一些源代码,请参照文档的Superblock部分对code区块的介绍。

原本的另一种形式的代码区块,即一对三个`号包括的代码块,在ZumDown中被定义为Superblcok,它具备有丰富的功能,其中也包括了Markdown原本所提供的代码区块功能,只是使用稍有不同。关于Superblock的使用请参照本文档的Superblock部分。

换行符与续行符

如果您有一行文本,它很长,书写的时候您想分成几行书写,但希望显示出来的效果仍然是一行,您可以使用续行符。在新的一行前面加上+=两个符号,即可实现续行。注意+=之前不应该有其它字符。从+=到您书写的第一个可显示字符之间的空白符会被忽略。在ZumDown中无需使用Markdown的换行符,直接换行即可。

## 该部分待完善