标签 github 下的文章

开始使用Markdown写Blog

近期发了一些带有大量代码的Go技术文章,结果文章中的代码样式被大家鄙视了,比如评论中的“不忍直视”、“这代码看得让人难受”等。于是我决定花些时间尝试做些改变。

博客系统

目前使用的这个博客系统是放在DigitalOcean VPS的Wordpress 3.2.1。在迁移到VPS之前,我的博客是一直托管在同事的一个托管主机上的,当初从blogbus迁移到他的托管WordPress主机时使用的就是WordPress 3.2.1版本,这两年一直未动,目前WordPress版本都4.3.1了。WordPress 3.2.1有很多bug,尤其是其安全漏洞,今年就被黑过几次,为此在后台将blog纳入git version管理,这样被黑后就可以很容易恢复。但将版本升级到WordPress新版我还是担心的,主要是担心升级失败,尤其是>数据库表变化较大,担心无法恢复。

不过由于历史“负重”太大(900多篇),我很难将WordPress顺利平滑的切换到一些新博客系统,比如golang开发的hugoJekyllOctopress等,只能继续坚守WordPress。

由于经常在文章里贴代码,也曾尝试过使用一些语法高亮的插件,但目前使用的富文本编辑器CKEditor似乎总是与语法高亮不兼容,试了N多都不好用,尤其是在html编辑器和富文本编辑器切换时高亮>部分代码内容被自动转码,于是放弃。这样在文章中只能暂时用Courier New字体来“高亮”代码部分。

Crayon Syntax Highlighter

在尝试之初思路主要还是想找到一款与CKEditor兼容的好用的语法高亮插件,在网上找到一个插件组合:CKEditor + SyntaxHighlighter CKEditor Button + Auto-SyntaxHighlighter。安装后简单>测试了一下发现的确比之前找的几款插件强。输入代码时只需要点击CKEditor工具栏上的一个Code Button,SyntaxHighlighter CKEditor Button会打开一个源码输入对话框,选择源码的语言种类贴入源码即可,还可以在”高级”tab中设置一些选项,是否带行号等。这个组合最大的好处就是无需切换到html编辑器手工输入html tag。

不过测试一段时间后还是发现了这个插件组合的问题,那就是不支持Go语法。Auto-SyntaxHighlighter内部使用的是syntaxhighligter的js,后者已经停止更新,并且即便是最新版本也不支持golang。我只能fork一个Auto-SyntaxHighlighter的repo,并“照猫画虎”的Auto-SyntaxHighlighter增加Go语法文件:shBrushGo-min.js和shBrushGo.js,并修改SyntaxHighlighter CKEditor Button的js文件,增加Go选项。不过try后,发现高亮格式依旧不对,最初以为是我修改的不正确,后来发现即便是用其支持的C/C++代码,高亮格式依旧有问题,我怀疑是与我当前的theme不兼容所致。

在知乎上看到人们都推荐Crayon Syntax Highlighter这个语法高亮插件,于是想最后再尝试一下。安装后发现Crayon Syntax Highlighter的确强大,我将字体设置为monaco, 字号14,主题:monokai,其渲染出来的高亮代码和我在本地mac上的几乎一模一样。不过小问题还是有的,比如: 行号无法去掉,浮动工具栏不好用等。

Crayon插件的最大的问题还是使用不便:需要切换到html源码editor中手工加入:
<pre lang:"go"> </pre>

如果再切换到富文本编辑器后,再切回来,

<pre> </pre>

之间的文本就会被转码,这极大增加了使用门槛。在没有理想办法之前,只能将就着用吧。

以上已经让我折腾我几个小时了,凌晨一点,睡。

Markdown on Save Improved

早上醒来,想到了Markdown,也许是最后稻草了。以前一直以为WordPress版本较低,很多Markdown plugin都不支持。但今天先不管那些了,装上试试。我找到了Markdown on Save Improved,这款插件最大的好处就是可以在每篇文章级别上加markdown开启选项。目前该插件已>经停更,并且其作者基于该插件开发了”Jetpack’s Markdown module”,Jetpack太大,对WordPress版本要求也太高,于是我就选择了”Markdown on Save Improved”,满足我使用就可以了。安装插件后,有一个“Markdown on Save Improved Convert to Jetpack”提示,似乎点击一个按钮,就可以将该插件转换为”Jetpack’s Markdown module”,不过我>也不能肯定,因为从表面上看不出来,没有什么变化。

“Markdown on Save Improved”给我的最大惊喜是它居然兼容Crayon Syntax Highlighter,我将Crayon的默认语言设置为go,这样markdown标记的代码块后者渲染后展现出很理想的高亮效果。

package main

import "fmt"

func main() {
    fmt.Println("Hello, MarkDown and SyntaxHighlighter")
}

至于Markdown的预览,可以在stackedit.io上来做。

Golang技术幻灯片的查看方法

随着go 1.5的发布,golang在世界各地日益受到欢迎,golang技术鼓吹者在世界各地举办各种级别的技术会议(从GopherCon大会到小小的meetup),并在会议上分享自己的技术心得和技术想法。

Golang相关的技术幻灯片有多种格式,以.ppt, .pdf和.slide为主。ppt、pdf自然不必多说,需要直接下载查看。

.slide是随着golang诞生而出现的一种present格式,Go核心开发成员似乎十分喜欢以这种格式分享Go语言。在Golang官方,几乎所有技术会议的talk幻灯片均是以.slide形式提供的。

.slide文件通过web服务查看,目前似乎尚无本地工具可以render slide文件。

目前已知的render .slide文件的服务包括:
- talks.golang.org
- go-talks.appspot.com

talks.golang.org是golang官方的服务,用于查看Go core team发表的各次技术演讲的幻灯片资料,按年份归档。

其他Go开发者用.slide形式编写的文件可以放在自己的github.com repo中,并使用go-talks.appspot.com这个第三方服务render。

比如:Dave Cheney将自己的performance-without-the-event-loop.slide存放在 github.com/davecheney/presentations下,那我们就可以通过如下url查看该slide render后的形式:

http://go-talks.appspot.com/github.com/davecheney/presentations/performance-without-the-event-loop.slide

不过由于appspot.com是Go appengine托管服务,国内无法访问,因此前期搭建了一个go-talks的镜像go-talks.tonybai.com,国内程序员可以无需fanqiang就可以访问(由于go-talks.tonybai.com托管主机内存不大,常常出现超时甚至crash现象,望谅解)。

因此要想看到上述slide,可以访问:

http://go-talks.tonybai.com/github.com/davecheney/presentations/performance-without-the-event-loop.slide

对于talks.golang.org上的slide,比如:

http://talks.golang.org/2015/gogo.slide

如果无法fanqiang又如何访问呢?这样行么?

http://go-talks.tonybai.com/talks.golang.org/2015/gogo.slide

结果告诉我们这样是不行的。那如何访问呢?

好在talks.golang.org上的slide都放在了github.com上,repo为https://github.com/golang/talks,上述那个gogo.slide,我们可以通过:

http://go-talks.tonybai.com/github.com/github.com/golang/talks/2015/gogo.slide访问。

补充

“相濡以沫”网友在评论中给出了一种在本地查看.slide的方法:

1、go get -u golang.org/x/tools/cmd/present //需翻墙
2、go install golang.org/x/tools/cmd/present,将present可执行程序放入$GOBIN或$GOPATH/bin中
3、下载你要查看的.slide,比如go get github.com/golang/talks,cd到talks所在目录,执行./present,你会看到如下结果:

$present
2015/08/23 19:34:51 Open your web browser and visit http://127.0.0.1:3999

打开浏览器,如果要查看当前目录下的2015/tricks.slide,则在浏览器里输入:http://127.0.0.1:3999/2015/tricks.slide即可查看该.slide文件。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats