Syntaxhighlighter在每行之后插入额外的空行

时间:2011-08-11 07:17:47

标签: javascript

我在博客上使用syntaxhighlighter来格式化C ++代码。从最近几天开始,我在每行代码后的每一行之后得到额外的空白行。有关详细信息,请参阅此link

以下是我在那里写的代码。我没有看到任何换行符。

//Define MAX 1 less so that adding 1 doesn't make it 0
#define MAX 0xFFFFFFFE;

unsigned int jump(int *array, int n)
{
    unsigned int *result = new unsigned int[n];
    int i, j;

    //Boundry conditions
    if (n == 0 || array[0] == 0)
        return MAX;

     result[0] = 0;  //no need to jump at first element
     for (i = 1; i < n; i++)
     {
           result[i] = MAX; //Initialization of result[i]
           for (j = 0; j < i; j++)
           {
                 //check if jump is possible from j to is
                 if (array[j] >= (i-j))
                 {
                       //check if better solution available
                       if ((result[j] + 1) < result[i])
                             result[i] = result[j] + 1;  //updating result[i]
                 }
           }
     }

     //return result[n-1]
     unsigned int answer = result[n-1];
     delete[] result;

     return answer;
}

令人惊讶的是,这只发生在新帖子上,所有old posts目前都显示没有多余的空白行。

1 个答案:

答案 0 :(得分:2)

您的源代码(在JavaScript之前)基本上如下所示:

<pre>
First line
<br />Another line
<br />Last line
</pre>

如果您使用的是<pre>代码,则无需插入<br />代码来强制换行,但如果您这样做,则应替换原始代码换行。

更新:我会用我们掌握的一些信息盲目猜测。您的代码使用Windows换行符(CR+LF)保存到本地文件中。服务器运行Linux并应用替换Linux换行符(LF)的函数。使用<br />代码,最终得到CR<br />。这会插入到<pre>代码中,以便浏览器将其转换为两个连续的换行符。

我的假设似乎很可能是因为,如果您将HTML源代码保存到文件中并使用可显示换行符的文本编辑器打开它,它将显示该文件使用的是Linux样式(LF)期待在代码段中,它使用CR(旧的MacOS 9样式)。

enter image description here

解决方法:在将复制与另一个编辑器复制到另一个浏览器之前,将文件另存为Unix。