如何在Wordpress里写Markdown

在这个Markdown大行其道的时代,作为一个Blog程序,不支持Markdown是会没落的,然而由于Wordpress是开源程序,有很多的第三方扩展可以很方便的获得Markdown支持。

很多人都会百度一下Wordpress里怎么写Markdown, 不要轻易的被知乎上的回答给骗了,那是回答早都过时了,只可参考,实际上并不能真正解决问题。

闲话少说,跟着我。

安装WP Editor.MD 插件

这个谁都会,插件页面搜一下,点安装就行了。

安装完之后,点击 【设置】->【Editor.MD】, 勾选 支持前端语法高亮。

PS. 这个插件还有一些Bug,比如使用#写标题或是其他的*等,排版符号和文本之间需要有空格才行。比如#h1#这样,前台页面显示是不正常的,# h1 #这样前台显示才正常,其他排版符号也类似。而且,这个插件到目前为止还不支持MD多标签嵌套。希望插件作者能够修复这个小bug.

取消Wordpress默认的Html标签过滤

由于Markdown插件是将MD排版语法转换成纯Html格式,而转换以后的Html里面会有很多class和style的Html代码,而默认的Wordpress会将这些代码过滤,这就是为什么你明明安装了MD的插件,而前台却显示不正常的原因了。

打开 【外观】-> 【编辑】

在右侧编辑区找到 【模板函数 functions.php】

在文件尾部添加

#移除Wordpress默认的Html标签和代码过滤
remove_action('init', 'kses_init');   
remove_action('set_current_user', 'kses_init');

注意:

这也意味着,别人可以在你的评论区,随意的写html和行内javascript,你的Blog的安全性可能有问题,如果针对评论你有更好的解决办法,可以联系我,我加到Blog里分享给大家。

调整Crayon Syntax Highlighter插件配置,使它可以和MD无缝结合

  • 打开 【设置】-> 【Cyayon】-> 【标签】
  • 取消勾选 【捕获 标签为插件所用】
  • 取消勾选 【捕获 反引号 标签】
  • 勾选【捕获 pre标签为插件所用 】
  • 可以根据自己的设置,灵活调整

到这里基本就完成了,就可以在Wordpress里顺利的写Markdown了

服务器优化,升级内核,提高性能

查看内核版本

uname -a

Debian升级内核

#配置source list
#Debian现阶段默认的安全与稳定内核是3.6,而实际上linux内核已经更新到了4.12,如要安装4.0以上版本的内核,这需要添加jessie-backports源
#使用修改/etc/apt/source.list添加如下行
deb http://ftp.debian.org/debian jessie-backports main
#更新缓存的软件列表
apt-get update
apt-cache search linux-image
#找到合适自己的版本,比如我的是64的系统
#这里需要注意的是,后缀含有bpo的为jessie-backports软件包,和jessie包是不同的
apt-get -t jessie-backports install linux-image-4.9.0-0.bpo.2-amd64
#这个命令运行完之后,根据相关的提示就可以看到,新的内核已经安装上了
#重启使新内核生效
reboot
#如果需要回滚到以前的kernel,重新安装jessie版本下的内核包就可以了

配置TCP BBR实现加速

#运行一下命令,添加设置项,需要root权限
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
#保存使命令生效
sysctl -p
#运行结果如下,表示设置以保存
kernel.sysrq = 1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
#查看BBR是否开启
sysctl net.ipv4.tcp_available_congestion_control
#命令结果如下,表示BBR已开启
net.ipv4.tcp_available_congestion_control = bbr cubic reno
#查看BBR运行状态
lsmod | grep bbr
#结果如下,表示正在运行
tcp_bbr 16383 0
#关闭BBR和启用BBR相类似,删除相关的配置项,重启一下系统服务就可以了
sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf
sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf
sysctl -p

这里有个小插曲需要说一下

目前我有三台服务器,其中1台Qcloud,2台Linodes,在Qcloud上部署BBR很简单,安装新版内核,激活配置就可以了,然而在Linode上却出现了问题。这可能和云平台底层的虚拟化技术有关。

具体的问题是,即使在terminal界面下载了适合自己系统的kernel, 你也成功的apt安装了,使用uanme -a查看,内核切换成了你安装的新内核,在sysctl -p命令下,BBR也生效了,然而使用lsmod | grep bbr命令验证,却发现并不是那么回事,BBR还是没有运行,这是为什么?

原因其实很简单,使用另外一个命令cat /proc/version查看系统当前的内核仍然是linode提供的内核,其实这是linode根据自己的平台而修改后的内核,很可惜这个内核目前并不支持我们想要的BBR功能,那么怎么办?

实际上新内核已经装上了,只不过系统启动的时候并没有采用新内核,这是因为linode默认的VPS启动过程似乎并没有调用相关的引导如GRUB2,而是直接载入内核,然后加载硬件和文件系统,对于VPS来说,这样启动很快。

解决办法如下:

开启系统引导,取消linode默认的快速启动

#安装grub2 引导
apt-get install grub2
# 配置引导项
vi /etc/default/grub
#这里基本不用设置,因为grub2提供的配置本身就是十分合适
#具体的配置可以参照下面几个重要的项目,建议不要修改默认的配置文件
GRUB_TIMEOUT=10
GRUB_CMDLINE_LINUX="console=ttyS0,19200n8"
GRUB_DISABLE_LINUX_UUID=true
GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_TERMINAL=serial

#使用update-grub命令更新引导,看到4个内核文件,其实实际上只有2个内核文件,有2个应该只是链接符Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.9.0-0.bpo.2-amd64
Found initrd image: /boot/initrd.img-4.9.0-0.bpo.2-amd64
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
done

#到这里配置也就完成了

登录到linode账户的后台,打开当前你要配置的linode,点击profile,在Boot settings设置项的Kernel子项目中,选择Grub2启动方式,然后再linode控制台重启VPS,这样新的内核就真正加载了。

使用terminal登录vps, 查看内核版本,新内核生效了,再重新验证一篇BBR的配置也都正常,使用lsmod | grep bbr命令验证BBR运行状态,终端显示

tcp_bbr 16384 10

说明TCP_BBR正式成功生效。由此,问题解决。

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.6.01001)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.5.01003)
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8
Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.01
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1
Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02
Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1
Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.53 Safari/525.19
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.36 Safari/525.19
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/7.0.540.0 Safari/534.10
Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.481.0 Safari/534.4
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.86 Safari/533.4
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.223.3 Safari/532.2
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.201.1 Safari/532.0
Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.173.1 Safari/530.5
Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.558.0 Safari/534.10
Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML,like Gecko) Chrome/9.1.0.0 Safari/540.0
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14
Mozilla/5.0 (X11; U; Windows NT 6; en-US) AppleWebKit/534.12 (KHTML, like Gecko) Chrome/9.0.587.0 Safari/534.12
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20
Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.872.0 Safari/535.2
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7
Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24
Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 Safari/537.15
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1467.0 Safari/537.36
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1623.0 Safari/537.36
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.103 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.38 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36