to avoid javascript fenced code block parsing error, do fenced code blocks before hash html blocks

fenced code block 如果是 javascript 时，markdown2 会解析出一些 md5 值，不能转换成高亮代码块。
原因就是在处理 fenced code block 前，会对 html blocks 计算摘要，导致处理高亮时，变成了一些 md5 摘要值。
解决办法就是将处理 fenced code block 提前，这里利用 markdown2 提供的 preprocess 函数（A hook for subclasses to do some preprocessing of the Markdown, if desired.）

ref-> https://github.com/trentm/python-markdown2/pull/113