使用markdown语法撰写csdn博客

在CSDN之下写blog无疑是一件非常吃力的事情,对于非常多simple爱好者来讲,能用markdown语法来书写代码是最优雅简洁只是的了。本文主要介绍markdown语法和怎样它来撰写csdn下的blog。


1 基本原理

撰写csdn博客有两种模式,源码模式和可视化模式,当中可视化模式是我们最经常使用的,源码模式主要是html语法。通常模式下,我们不会选用源码模式,可是,我们能够将源码模式作为中间输出,来沟通markdown和可视化博客。简单而言,我们直接撰写mardown文档,通过python脚本转化成html放到csdn的blog编辑器中,然后生成blog。所以,这里面一个非常关键的地方在于撰写将markdown转化成html的python脚本。


2. 功能python脚本

脚本的功能是将markdown语法转变成html文件。代码例如以下:

#!/usr/bin/python
#coding utf8
import  markdown
import  sys
sys.defaultencoding=('utf8')
sys.defaultdecoding=('utf8')
filename=sys.argv[1]
markfile=open(filename)
markcontent=markfile.read();
print "markcontent type:", type(markcontent)#str ob
htmlcontent=markdown.markdown(markcontent.decode('utf8'))#
print "htmlcontent type:", type(htmlcontent)#unicode ob
htmlfilename=filename+".html"
htmlfile=open(htmlfilename, "w")
htmlcontent=htmlcontent.encode('gbk')#translate into str
htmlfile.write(htmlcontent)
htmlfile.close()
markfile.close()

功能比較简单,不在此解释,以下两部分介绍markdown的详细语法。


3 区块元素


3.1 段落与换行

换行须要插入一个明显的空行来实现,也就是说,须要连续两个换行符号。

效果:

这是第一段

这是第二段

代码:这是第一段(两次换行)这是第二段


3.2区块引用

区块引用是>来实现的,效果例如以下:

This is a block

相应代码:> This is a block

注意:区块引用,并没有屏蔽内部的markdown语法解析。

问题:假设一个区块引用包括几个段落那么该怎样处理呢?

答: 每一个段落之前,都加上区块引用符号,效果:

First para in a block

second para in the block.

>First para in a block

>second para in the block.


3.3标题

标题是通过#实现的,#个数的多少,表示标题的等级。

效果:

first head

second head

third head

实际代码:

#first head
##second head
###third head

问题:区块元素会自己主动加入换行符吗?

答:标题元素确实会加入换行符号, 可是其它区块元素不会加入换行符号。


3.4列表

无序列表使用*、+、-来作为列表标记,标记后面最少跟着一个空格,效果:

  • red
  • green
  • blue

代码例如以下:

* red
* green
* blue

注意:列表和标题一样,会自己主动换行

答:通过缩进来引用代码,代码内部的markdown解析将被屏蔽。

列表项包括多个段落的时候,我们将在第二个段落之后,每一个段落開始,加上四个以上的空格或者制表符,这样就能够实现以下的效果:

  1. first of a table

    second of a table

另外,列表中并没有屏蔽markdown语法,能够在列表中放入区块,也能够放入引用代码块。在列表中放入缩进的情况例如以下:

这里是缩进之后


3.5 code block

我们来看看代码块的语法:

int main()
{
    int a;
}


3.6 切割线

切割线的语法是三个以上的","、"-"、"_",效果例如以下



4. 区段元素


4.1 链接

markdown 支持两种链接模式,行内式和參考式:都用“ []”来引用链接文字。

行内式的链接语法与效果例如以下:

[google](http://www.google.com"the character you will see when mouse on")

google


4.2 强调

使用一对“ *”或者一对“ -”来标记须要强调的内容;使用一对两个“*”或者“-”来对字体进行加粗。效果例如以下:outstanding,and,strong。值得注意的是,符号两边不能含有空格,否则,这些符号将被当作符号本身进行解析;另外,我们相同能够使用反斜线来转义它们.outstanding, andstrong outstanding, and strong

很多其它语法介绍能够參考这里:markdown 语法介绍


4.3 小块代码

使用单个反引號来表示小块代码引用,效果如printf

原文地址:https://www.cnblogs.com/mfrbuaa/p/3816351.html