MOxFIVE / hexo-theme-yelee

简而不减 Hexo 双栏博客主题; Another simple and elegant theme for Hexo.
http://moxfive.xyz/
1.38k stars 328 forks source link

Markdown中写的代码块,生成html静态文件显示不好 #128

Open freeshow opened 8 years ago

freeshow commented 8 years ago

Markdown中代码: 1

Yelee主题生成的静态文件效果: 2

问题1:代码块最前面和最后面都出现多余的行 问题2:html中显示的代码,没有格式,全部左对齐了

freeshow commented 8 years ago

我有发现了一个问题,上述问题Chrome浏览器可以显示正常,百度浏览器显示不正常。 可能是浏览器不兼容的问题?

freeshow commented 8 years ago

但是不管使用哪个浏览器,代码块的最上方和最下方都会多一个空行。

MOxFIVE commented 8 years ago

我找了些代码调试,没发现多余行。 麻烦把上面的代码文本贴出来我测试下

freeshow commented 8 years ago
package wordcount;

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

//创建一个 WordMapper 类继承与 Mapper 抽象类
public class WordMapper extends Mapper<Object, Text, Text, IntWritable>{
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    //Mapper 抽象类的核心方法,三个参数
    @Override
    protected void map(Object key,  //首字符偏移量     
                      Text value,   //文件的一行内容
                      Context context)  //Mapper端的上下文
            throws IOException, InterruptedException {
        //默认使用空格分隔
        StringTokenizer itr = new StringTokenizer(value.toString());
        while(itr.hasMoreTokens()){
            word.set(itr.nextToken());
            context.write(word, one);
        }
    }
}
MOxFIVE commented 8 years ago

没发现多余行 snip20160725_1

freeshow commented 8 years ago

好的,非常感谢! 我在找找原因,有可能是我自己的配置问题。 我的配置如下: ss

sephymartin commented 8 years ago

v3.5下代码块有头部和底部时候会出现空行 chrome 浏览器下 post代码

location匹配规则

| 符号 | 说明 |
| --- | --- |
| ~ | 正则匹配, 区分大小写 |
| ~* | 正则匹配, 不区分大小写 |
| ^~ | 普通字符匹配, 如果该选项匹配, 只匹配该选项, 不匹配别的选项, 一般用来匹配目录; 如果最大前缀匹配的路径以“^~”开始,那么nginx不再检查正则表达式 |
| = | 普通字符精确匹配; 使用“=”前缀可以定义URI和路径的精确匹配. 如果发现匹配, 则终止路径查找. |
| ~* | 定义一个命名的 location, 使用在内部定向时, 例如 error_page, try_files |

Nginx中将路径匹配分为两类: 

1. 前缀路径匹配, 即前缀字符串定义的路径, 如上配置文件中“/,/static/js/,/static/css/,/api,/trip/”
2. 正则表达式路径匹配, 即使用正则表达式需要在路径开始添加“~*”前缀 (不区分大小写), 或者“~”前缀(区分大小写)。如上配置文件中“/\.ht,^/~([^/]+)(/?.*)$,\.do$,/trip/, \.php$,\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar||bmp|rtf|js|mov)”

Nginx首先检查前缀字符串定义的路径 (前缀路径), 在这些路径中找到能最精确匹配请求URI的路径。然后Nginx按在配置文件中的出现顺序检查正则表达式路径, 匹配上某个路径后即停止匹配并使用该路径的配置, 否则使用最大前缀匹配的路径的配置. 

``` Crmsh 例子
location  = / {
  # 精确匹配 / ,主机名后面不能带任何字符串
  [ configuration A ] 
}

location  / {
  # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
  # 但是正则和最长字符串会优先匹配
  [ configuration B ] 
}

location /documents/ {
  # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索
  # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条
  [ configuration C ] 
}

location ~ /documents/Abc {
  # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索
  # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条
  [ configuration CC ] 
}

location ^~ /images/ {
  # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。
  [ configuration D ] 
}

location ~* \.(gif|jpg|jpeg)$ {
  # 匹配所有以 gif,jpg或jpeg 结尾的请求
  # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则
  [ configuration E ] 
}

location /images/ {
  # 字符匹配到 /images/,继续往下,会发现 ^~ 存在
  [ configuration F ] 
}

location /images/abc {
  # 最长字符匹配到 /images/abc,继续往下,会发现 ^~ 存在
  # F与G的放置顺序是没有关系的
  [ configuration G ] 
}

location ~ /images/abc/ {
  # 只有去掉 config D 才有效:先最长匹配 config G 开头的地址,继续往下搜索,匹配到这一条正则,采用
    [ configuration H ] 
}
location ~* /js/.*/\.js
bytemain commented 8 years ago

表示确实存在这个问题, 每次都不得不把空行删掉。

CmcnPro commented 8 years ago

把代码从chrome里复制出来替换掉MD文件里的代码应该可以解决问题

之前用另外一个主题时也有这个问题 https://github.com/yscoder/hexo-theme-indigo/issues/62

zhaochj commented 8 years ago

准确说是当代码块中有空行时,会把块里的空行自动提到代码块前端和后端,而代码块里的代码本有的空行就没有了,比如python的代码,根据PEP8规范需要在函数与函数间空一行,如果使用了yelee模板后,那函数与函数间的空行就没有了,而空行被放到了行首,希望有办法修复这个问题。

li360 commented 8 years ago

确实存在这个问题,更换默认主题就不存在这个

zhaochj commented 8 years ago

可以变通一下,把空行全部替换成空格,因我是ubuntu用户,写mardown是使用vim编辑器,所以全文替换空行很方便,把空行换成空格后生成的Html就没问题了。

yelog commented 7 years ago

如果用空格替换空行,不是就没有空行了吗,遇到这样的问题,都是需要有空行的

gawinwong commented 7 years ago

我发现的方法是在需要有空行的地方,前一行行尾输入两个以上空格再回车,比如 imshow("image", img);空格空格回车waitKey();应该就能看到两行之间有空行了,我使用的是yelee主题

LoserSun commented 6 years ago

解决办法: