由于一些原因,SMD3的后端已被关停,现通过在线工具的形式,提供部分SMD3的功能,并且,这些正则表达式现已直接放置于源码中,可供您参考。部分表达式水平很烂,还望谅解。 !!注意:浏览器在线工具仅简单通过正则替换的形式,解析SMD3实现的MarkDown部分指令,更多指令需由后端解析,这意味着右侧展现可能与预期有一些差别!! ## 摘要 >- SMD**是什么**? >- **凭什么**使用SMD? >- SMD的**语法**? >- 旧版SMD**支持情况**? ## 正文 ### 1. SMD*是什么*? - **SmallMD**是一个==解析语言==,它以纯文本形式编写,传入SMD解析器,解析为HTML输出。 - **SmallMD**的前身是`上火shanghuo`的S1S2项目,后命名为**SnMoreDevelop语言**,与*markdown语言*无关。 - **SmallMD**是自==第二版==起逐步兼容了*markdown语言*语法。 - **SmallMD**于==第三版==起不再推荐使用旧版**SnMoreDevelop语言**语法。并更名为**SmallMD**,逐步向*markdown语言*语法靠拢的。 ### 2. *凭什么*使用SMD? - 它兼容HTML,可以方便的转换为HTML格式。 - 只要你有支持HTML5的浏览器,您就可以随时使用它。 - 它也可以兼容Markdown语法。 - 方便你的排版,方便你的调用,网站开始逐步的支持它。 - 它正处在活跃的开发期,前景巨大。 ### 3. SMD的**语法**? 自从SMD2开始逐步兼容*markdown语言*语法,SMD的使用也变得更为简单。 当然这还不够,在未来,SMD将会以现在已支持的*markdown语言*语法为基础,不断的扩展更多更便于使用的功能。 #### 3.1 标题 1、使用`=`和`-`标记居中的一级和二级标题。 > 一级标题 > `=========` > 二级标题 > `---------` 效果: > 一级标题 > ========= > 二级标题 > --------- 2、使用`#`,表示默认的1-6级标题。 > \# 一级标题 > \## 二级标题 > \### 三级标题 > \#### 四级标题 > \##### 五级标题 > \###### 六级标题 效果: > # 一级标题 > ## 二级标题 > ### 三级标题 > #### 四级标题 > ##### 五级标题 > ###### 六级标题 #### 3.2 引用与列表 1、引用 行开头使用符号`>`,引用是可以嵌套的,如: > \> 区块引用 > \>> 嵌套引用 效果: > 区块引用 >> 嵌套引用 2、列表 行开头使用符号`-`或`+`或`·`,列表是可以嵌套的,如: > \- 列表1 > \- 列表2 > \-\- 列表21 > \-\- 列表22 > \- 列表3 效果: - 列表1 - 列表2 -- 列表21 -- 列表22 - 列表3 3、引用与列表互相嵌套 列表与引用之间的嵌套会被整理,高亮内容将被认为是内容的一部分,不被解析 --->> `==---==>>` -->>- `==--==>>-` ->->- `==->-==>-` ->>-- `==-==>>--` >>--- `>>---` #### 3.3 代码块 代码块在单独行用\`\`\`标记。如: > \``` > function main(){ > printf("Hi, SMD."); //好吧,这是开玩笑,目前的SMD语法不是这样的 > return 0; > } > \``` 效果: ``` function main(){ printf("Hi, SMD."); //好吧,这是开玩笑,目前的SMD语法不是这样的 return 0; } ``` #### 3.4 事项 在相应行开头使用“-”后跟一个空格,再跟“[”后跟**“x”或一个空格**“]”后跟一个空格,可与同类行开头标记配合使用(如:引用): > \- [ ] 未办事项 > \- [x] 已办事项 > \> \- [ ] 引用内容与未办事项配合 效果: - [ ] 未办事项 - [x] 已办事项 > - [ ] 引用内容与未办事项配合 #### 3.5 分割线 需要在新行,且`---`时上一行只能为空字符或`*`与`-`,但连续两行`-`只解析一行为hr,同时`---`或`***`前后不能含有任何字符,除了换行,`-`数量必须3个以上): > \*\*\* > \-\-\- 效果: *** --- #### 3.6 表格 表格应至少含有一行表头,一行表格标记,一行内容,如下即为一个最小的2×2表格: 表格|表头 ---|--- 表格|内容 表格中使用\|与&|;均无法取得实体|,因为没有|这个实体。表格标记应为至少3个-加1|加至少3个-,更多的-与|不做详细检查,但两|之间至少3个-,同理内容的行列数也不做详细检查,如下表格也是可以被解析的: 表格|表头 ----|---|---- 表格|内容|内容 表格|内容 表格中使用\|与&|;均无法取得实体|,因为没有|这个实体。 #### 3.7 链接 链接的格式为: `\[链接内容](链接地址)`或 `\[链接内容](链接地址"链接内容")`或 `\[链接说明]:链接地址"链接内容"`或 `\[链接内容]\[链接说明](链接地址)`这4种形式 效果: > 链接是行内标签,[这就是个链接](#"这是链接内容,链接地址为#号"),链接前后可以存在内容 #### 3.8 图片 图片的格式为: `!\[图片说明](图片地址)`或 `\[图片说明](图片地址)"图片长:图片宽"`这2种形式 效果: > 图片是行内标签,[这里的地址用的base64表示,但通常应使用URL表示](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUAQMAAAC3R49OAAAAA1BMVEWKqIm5Yq7pAAAADElEQVQImWNgoC4AAABQAAGmLdqcAAAAAElFTkSuQmCC)"50:100",图片前后可以存在内容 #### 3.9 文本样式: 标记:\`内容\`,前后分别1个\`,通常用于标出指数,\`一般位于键盘左上角数字1左侧 删除线:\~\~内容\~\~,前后分别2个`~`,`~`一般位于键盘左上角数字1左侧 下划线:\+\+内容\+\+ 上标字:\^\^内容\^\^,前后分别2个`^`,通常用于标出指数,`^`一般位于英文模式下的键盘数字6上 高亮:\=\=内容\=\= 强调:\!\!内容\!\! !!倾斜与加粗不建议使用!! 倾斜并加粗:\*\*\*内容\*\*\*或\_\_\_内容\_\_\_,多个\*或\_混合时将按照单\*或\_优先原则执行倾斜并加粗 加粗:\*\*内容\*\*或\_\_内容\_\_ 倾斜:\*内容\*或\_内容\_,当内容中含有HTML标签或`>=<`这3个运算符时不会倾斜内容,但`\*内容\*\*内容\*\*内容\*`形式除外 效果: 正常文本 ***倾斜并加粗*** **加粗** *倾斜* `标记` ~~删除线~~ ++下划线++ ^^上标字^^ ==高亮== !!强调!! ### 4 旧版SMD**支持情况**? 目前依旧支持旧版内容,但旧版所有默认样式不再提供,由页面使用CSS决定样式。