2011-08-11 105 views
1

我在我的博客上使用syntaxhighlighter來格式化C++代碼。自從最近幾天以來,我在每行代碼之後的每行之後都會獲得額外的空白行。有關更多信息,請參閱此linkSyntaxhighlighter在每行之後插入額外的空白行

以下是我在那裏寫的代碼。我沒有看到任何線路突破。

//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目前W/O多餘的空行顯示。

+0

我想說你從另一個瀏覽器/新版本的同一瀏覽器添加此帖子? – naveen

+0

@Naveen:是的,這怎麼會造成額外的空行?在博客中預覽它看起來不錯,但發佈後顯示空行。 –

+1

@Aash:你在這裏粘貼的代碼被StackOverflow轉換爲HTML。這使得無法確定原始文件行的外觀如何。 –

回答

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的複製副本與其他編輯器複製到其他瀏覽器。

+0

@naveen:當然。生成的來源有空列表項來表示空行('

  • '),這是正確的,因爲*有*空行。 –

    +0

    +1:那是正確的。道歉。我檢查了mozilla的代碼,發現了br和line feed。我想這個操作並沒有什麼不同。這就是wysiwyg編輯器在瀏覽器中的行爲。 – naveen

    +0

    在檢查螢火蟲等,我發現一樣。但我沒有添加任何空行。不知道爲什麼會出現這種情況。任何想法。 –