• Markdown基础语法


    §0 前言


    以下内容只在Typora(mac)编辑器中做过测试。

    §1 代码片段


    • 效果:
    #include  <cstdio>
    int main() {
        printf("Hello, world!
    ");
        return 0;
    }
    

    其中printf()是一个常用的库函数。

    同时四个空格或一个Tab开头的内容也表示代码块,但此时应该有空行与上方的内容隔开。此处就是用这种方式生成的代码块。注意除了列表(第三章)和代码块以外,别的地方慎用Tab和行首空格!
    
    • markdown代码:
    #include  <cstdio>
    int main() {
        printf("Hello, world!
    ");
        return 0;
    }
    
    其中`printf()`是一个常用的库函数。
    
    	同时四个空格或一个Tab开头的内容也表示代码块,但此时应该有空行与上方的内容隔开。此处就是用这种方式生成的代码块。注意除了列表(第三章)和代码块以外,别的地方慎用Tab和行首空格!
    

    §2 标题


    • 效果:

    一级标题(最多有六级标题)

    二级标题

    三级标题

    四级标题

    五级标题
    六级标题

    这也可以是一级标题

    这也可以是二级标题

    • markdown代码:
    # 一级标题(最多有六级标题)
    ## 二级标题
    ### 三级标题
    #### 四级标题 
    ##### 五级标题  
    ###### 六级标题
    这也可以是一级标题
    =====
    这也可以是二级标题
    -----
    

    §3 列表


    在子列表前加入Tab或四个空格后可与上级列表嵌套。

    • 无序号的表
      每一表项都由'-'或'*'或'+',后加一个空格开头,三种字符可以混合使用,但不建议这么用。。

      • 效果:
        • 表项1
        • 表项2
        • 表项3
      • markdown代码:
    - 表项1
    * 表项2
    + 表项3
    
    • 有序号的表
      每一表项由数字序号加'.'加一个空格开头。

      • 效果:
        1. 项目1
        2. 项目2
        3. 项目3
      • markdown代码:
    1. 项目1
    2. 项目2
    3. 项目3
    
    • checkbox
      由'-'加空格加'['加空格加']'加空格
      或'-'加空格加'['加'x'加']'加空格开头(Typora中可用)

      • 效果:
        • [ ] 计划任务
        • [x] 完成任务
      • markdown代码
    - [ ] 计划任务
    - [x] 完成任务
    

    §4 文本样式


    • 效果:
      1. 首尾各一个'*'使该部分变成斜体首尾各一个'_'也可以.
      2. 首尾各两个'*'加粗文本首尾各两个'_'也可以
      3. 首尾各三个'*'使该部分变成粗斜体首尾各三个'_'也可以
      4. 首尾各两个'='可以标记文本(typora中不行)首尾各两个'~'字符用来删除文本
      5. 下划线可以利用html中的标签u实现。
      6. 若某行末尾至少有两个空格,则表示该行和下一行属于两个不同的段落。使用单独的一个空行也可以起到划分段落的作用。建议使用单独的空行,这样更直观,而且使用末尾两个空格时cnblogs在某些情况下和typora的解析结果不一样?特别注意在使用列表时的段落划分。

    用'>'开头来引用文本,好像要用一个空行来结束引用

    引用是可以嵌套的,用若干个'>'即可。

    注意引用可以和列表等其他语法嵌套使用。嵌套时注意空行空格Tab等等的用法。

    1. 试试这个脚注怎么样[1],即使我给这个脚注起了名字,但cnblogs好像显示不出来。
    2. 关于上标和下标:
      可以使用html中的sup和sub标签:x2 - x = 6=>x1 = -2, x2 = 3
    3. 分隔线用三个及以上的'-', 或三个及以上的'_', 或三个以上及的'*'表示,行内可以有空格。注意分隔线使用的字符'-'也可以产生二级标题,所以可能产生冲突。分隔线示例如下:



    • markdown代码:
    1. *首尾各一个'*'使该部分变成斜体*, _首尾各一个'\_'也可以_.
    2. **首尾各两个'*'加粗文本**, __首尾各两个'\_'也可以__。
    3. ***首尾各三个'*'使该部分变成粗斜体***,___首尾各三个'\_'也可以___。
    4. ~~==首尾各两个'='可以标记文本==(typora中不行)~~,~~首尾各两个'~'字符用来删除文本~~。
    5. <u>下划线可以利用html中的标签u实现。</u>
    6. 若某行末尾至少有两个空格,则表示该行和下一行属于两个不同的段落。使用单独的一个空行也可以起到划分段落的作用。建议使用单独的空行,这样更直观,而且使用末尾两个空格时cnblogs在某些情况下和typora的解析结果不一样?特别注意在使用列表时的段落划分。
    7. 
    > 用'>'开头来引用文本,好像要用一个空行来结束引用
    > > 引用是可以嵌套的,用若干个'>'即可。
    > > > 注意引用可以和列表等其他语法嵌套使用。嵌套时注意空行空格Tab等等的用法。
    
    8. 试试这个脚注怎么样[^脚注],即使我给这个脚注起了名字,但cnblogs好像显示不出来。
    9. 关于上标和下标:
    可以使用html中的sup和sub标签:x<sup>2</sup> - x  = 6=>x<sub>1</sub> = -2, x<sub>2</sub> = 3
    10. 分隔线用三个及以上的'-', 或三个及以上的'_', 或三个以上及的'*'表示,行内可以有空格。注意分隔线使用的字符'-'也可以产生二级标题,所以可能产生冲突。分隔线示例如下:
    
    ___
    ---
    ***
    
    [^脚注]:既然是脚注,当然要放在后面啦。
    

    §5 链接


    这是我的链接->[link name 1](https://www.cnblogs.com/watchphone/)
    这也是我的链接-><https://www.cnblogs.com/watchphone/>
    这还是我的链接(使用变量)->[link name 2][variable name](cnblogs中好像不能用)
    [variable name]:https://www.cnblogs.com/watchphone/
    
    • 图片
      • 效果:
        Itis 哆啦A梦

      • markdown语法:

    ![alt 属性文本](图片地址 "可选标题")
    
    - PS:
    

    Markdown还没有办法指定图片的高度与宽度,如果你需要的话,你可以使用html的 img 标签。

    §6 表格


    • 效果:
    Column 1 Column 2
    centered 文本居中 right-aligned 文本居右
    • markdown代码:
    | Column 1 | Column 2      |
    |:--------:| -------------:|
    | centered 文本居中 | right-aligned 文本居右 |
    

    §7 其他技巧


    参考

    1. 用反斜杠可以转义保留字符
    2. 不在Markdown涵盖范围之内的标签,都可以直接在文档里面用HTML 撰写。目前支持的 HTML 元素有:<kbd> <b> <i> <em> <sup> <sub> <br>等。
      • 效果:
        command + w 关闭本页面。(只是举个例子。。)

      • markdown代码:

    用<kbd>command</kbd> + <kbd>w</kbd> 关闭本页面。(只是举个例子。。)
    
    1. LaTeX 数学公式不知道为啥cnblogs预览正确,但有时候显示不出来。。
      使用两个美元符包裹TeX或LaTeX格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax对数学公式进行渲染。参考文档

      • 效果:

    [Gamma(z) = int_0^infty t^{z-1}e^{-t}dt\,. ]

    [ mathbf{V}_1 imes mathbf{V}_2 = egin{vmatrix} mathbf{i} & mathbf{j} & mathbf{k} \ frac{partial X}{partial u} & frac{partial Y}{partial u} & 0 \ frac{partial X}{partial v} & frac{partial Y}{partial v} & 0 \ end{vmatrix} ]

    $$
    Gamma(z) = int_0^infty t^{z-1}e^{-t}dt\,.
    $$
    
    $$
    mathbf{V}_1 	imes mathbf{V}_2 =  egin{vmatrix} 
      mathbf{i} & mathbf{j} & mathbf{k} \
      frac{partial X}{partial u} &  frac{partial Y}{partial u} & 0 \
      frac{partial X}{partial v} &  frac{partial Y}{partial v} & 0 \
      end{vmatrix}
    $$
    
    1. 流程图等(用到了再补充)
      甘特图
      UML图
      Mermaid流程图
      Flowchart流程图

    1. 既然是脚注,当然要放在后面啦。 ↩︎

    本人菜鸡一枚!
    如有错误还请大佬们多多指教!
  • 相关阅读:
    Java8新特性简介
    责任链模式
    Bean的生命周期
    APP中https证书有效性验证引发安全问题(例Fiddler可抓https包)
    程序员成长指南
    Go 代码性能优化小技巧
    Go slice 扩容机制分析
    一次 Go 程序 out of memory 排查及反思
    curl 常用操作总结
    Go benchmark 详解
  • 原文地址:https://www.cnblogs.com/watchphone/p/12297525.html
Copyright © 2020-2023  润新知