著名的标记语言有

  • HTML
  • MarkDown
  • Tex
  • HTML

    HTML是当代互联网创建网页的通用标记语言,由一系列<>标签进行标记。由3W联盟制定标准。3W还有一个被称作”语义网“的计划,私以为和HTML密切相关。在H5的制定标准中,HTML的标签更倾向于语义描述而不是样式描述。江湖传言中真正的高手直接使用HTML编写自己的博客,而假使遵循“所见即所指”的原则,编写HTML只需要关心文本的内涵,而无需关注他们的显示样式。看似美好,但这里有一个严重问题,就是每次编写一段内容的时候都要输入各种标签,有时还需要标明特定的class或者标签的id,非常繁琐。

    MathML

    <math xmlns="http://www.w3.org/1998/Math/MathML">
    
    <mrow>
    
    <msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup><mo>=</mo><msup><mi>c</mi><mn>2</mn></msup>
    
    </mrow>
    
    </math>
    

    a2+b2=c2

    MarkDown

    MarkDown一般使用方式均为翻译为HTML在网页显示。所以一般MarkDown能实现的均可以使用HTML实现。MakrDown属于内容和格式分离的标记语言,因此不能操作一些格式上的问题,想要操作格式需要使用css的技巧。另外MarkDown的官方标准最新更新是在2004年,至今MarkDown虽然被很多平台采用,但不同平台的实现各有不同,因此移植性较差。此外MarkDown还有一些语言本身的问题

  • layout语法空格敏感
  • 特殊字符选择不合理,如*被用于做标记。
  • 因MarkDown一般都是转换成HTML使用,因此可尝试自己设计一下修改MarkDown的语法为自己平日编辑做转换。

    Tex

    Tex是高德纳发明的一种排版系统,可以输出多种文件格式,可以显示多种符号。纸张的写法在二维平面内不受限制,而计算机只能输入制定编码以特定形式展现,键盘只有有限且固定的键位,因此想要输入各种在纸张时代设计的数学符号公式、化学结构式等复杂的结构,就必须有一套强大的编辑系统。只有如此才能在计算机内编辑出想要的文章。而Tex的问题正是在于其复杂的功能所带来的学习难度。

    网页插入公式方案总结

    生成图片

    先利用工具生成图片,然后在网页中嵌入图片,wikipedia和知乎似乎都是这样的方案。保留Tex格式的源码,重复编辑时使用。网页显示时直接生成图片,需要复杂的后端支持(?)

    MathJax

    应用广泛,支持大多数Tex/LaTex语法,可以输出为HTML/CSS, SVG和 MathML三种格式。但是体积大,渲染速度慢。

    KaTex

    以快速渲染著称,但似乎在公式支持上有所不足,另相关中文资料较少

    总结

    虽然HTML提供了<math>标签做各种数学公式的表示,但仍有不足,而MarkDown自然不会更好。现有很多平台的编辑器疑似采用了Tex引擎,在用户输入内容后,后台将用户的源码中的公式按既定语法转换成图片后嵌入HTML,这对于自己写博客来说似乎有点糟糕。