正则表达式 实现hexo next主题代码块转markdown代码块
处理文本
hexo next主题 生成的代码块html代码,如下所示
1 | <figure class="highlight plain"> |
现在把这段代码转为原生的markdown代码块:
获取代码文本
删除代码块行数
匹配正则
1 | <td class="gutter">(\s*.*?)+?<\/td> |
替换正则
空字符串
替换结果
1 | <figure class="highlight plain"> |
替换换行符
代码文可能有多行,需要把换行符从<br>
换成\n
:
匹配正则:<br>
替换正则:\n
替换结果:
1 | <figure class="highlight plain"> |
删除剩下的所有html标签
删除掉行号之后,旧简单了,只要删除掉所有的html标签即可得到代码块中的文本
匹配正则
1 | <\/?.*?> |
**替换正则:**空字符串
替换结果:
1 |
|
删除空行
匹配正则:^\s*$(\n|\r\n)*
替换正则:""
,空字符串
替换结果:
1 | <div class="post-body".*?>(.+)<\/div> |
删除多余空白符
匹配正则:^\s{2}
**替换正则:**空字符串
替换结果:
1 | <div class="post-body".*?>(.+)<\/div> |
HTML逆转义
我这里没有找到什么好的办法,暂时先使用穷举法来弄,就是把看到的html转移字符逐个进行替换。
<div class="post-body".*?>(.+)</div><
替换为<
"
替换为"
>
替换为>