Skip to content

cleanwk/markdown-parse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

从零开始自制一个MarkDown解析器

作用于单行的语法

  • 标题 #
  • 粗体 **
  • 引用
  • 图片
  • 链接

作用于多行的语法

  • 代码块
  • 无序列表
  • 有序列表

主要思路

主要思路是扫描 markdown 文件,对每一行进行标记,确定每一行的 markdown 标签,之后再根据每一行的 markdown 标签将 markdown 语句转换成 html 语句。

  • 第一次扫描 markdown 文件,定位 代码区引用区无序列表区有序列表区,因为这些标签均是可以作用于多行,要根据上下文的 markdown 标签才可以确定其作用范围。在这里需要特别注意 代码区 内不含其它区域,引用区 内可以嵌套其它区域。
  • 第二次扫描 markdown 文件,根据前一次扫描的定位结果,确定每一行 markdown 语句所对应的 markdown 标签。在这次扫描中可以确定 代码引用无序列表有序列表标题 这 5 类可以根据行首元素就能判定出类型的标签,所以不需要扫描全行。
  • 第三次扫描 markdown 文件,根据上一次的结果,可以直接将对应的 markdown 标签转换成 html 标签,此外要扫描全行,确定 图片链接行内引用粗体斜体 这 5 类元素并直接转换成 html。
hahahahah
  kjhlkjh
  

About

用java编写的markdown解析器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages