tufu9441 / maupassant-hexo

A simple Hexo theme forked from icylogic.
https://www.haomwei.com
MIT License
2.64k stars 668 forks source link

代码块解析的问题 #36

Closed unnamed42 closed 8 years ago

unnamed42 commented 8 years ago

使用 4331ef7428ff354946d8809e2a56ed77846b60bb 之前的高亮css, 代码块解析是正常的

但是使用新的代码高亮之后,如果是代码块中有代码块的话那么会有不正常,比如

````markdown
```C
#include <stdio.h>
int main(void){
return 0;
}
```

```
#include <iostream>
using std::cout;
using std::endl;
int main(){
cout<<"Hello, world!"<<endl;
return 0;
}
```
````

像这样的代码块,就会多出一个很不自然的滚动条(实际上照常解析的话那个地方根本不需要滚动条) 效果如下1

而使用hexo的codeblock(lang设置为plain)的话,根本解析不出来,变成了

<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#60;!--&#65532;12--&#62;&#10;&#10;&#60;!--&#65532;13--&#62;</span><br></pre></td></tr></table></figure>

效果如下 2

tufu9441 commented 8 years ago

我比较好奇什么时候会出现代码块中有代码块的情况呢……代码高亮的CSS都是从hexo-theme-tranquilpeak搬过来的,我也不知道为什么会出现这样的情况。你要不试一试我说的这个主题会不会出现这个情况?

unnamed42 commented 8 years ago

看样子是没问题的……

代码块内代码块的情况是我要写一些markdown的用法示例,需要写上markdown的源码

tufu9441 commented 8 years ago

你是说tranquilpeak这个主题下是正常的对么?

unnamed42 commented 8 years ago

是的,虽然我好像没配置成功tranquilpeak,但是代码块能够正常解析出来,用maupassant主题解析代码块就不行了

tufu9441 commented 8 years ago

我自己测试了一下,就用你这些代码,没有出现过那个滚动条啊~能否提供一个在线的demo重现一下?

unnamed42 commented 8 years ago

//这几天忙着考试,回复略迟,不好意思

http://unnamed42.github.io/2015-12-02-Markdown%E8%AF%AD%E6%B3%95%E6%B5%8B%E8%AF%95.html

http://unnamed42.github.io/2015-12-02-Markdown%E7%9A%84%E6%AD%A3%E7%A1%AE%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F.html

http://unnamed42.github.io/2015-12-02-GitHub-%E9%A3%8E%E6%A0%BC%E7%9A%84-Markdown-%E8%AF%AD%E6%B3%95.html

以上三篇,凡是涉及到嵌套代码块的地方都有显示的问题

tufu9441 commented 8 years ago

我测试了一下,以这一篇为例,我发现如果把第5行,第16行和第17行的代码前面的四格缩进去掉,显示就正常了。你在上面给我提供的代码里边这几行由于没有缩进,所以我测试是正常的。我觉得可能是由于markdown引擎会将四个空格开头的内容也会识别成代码块,所以会造成三层代码块的情况从而显示出错?但是我也不知道这跟代码高亮的css有什么关系……

tufu9441 commented 8 years ago

刚刚又更新了一下CSS,跟tranquipeak的最新代码一致了,应该没有嵌套代码块的问题了,你试试看。

unnamed42 commented 8 years ago

可以了,多谢。