2011年11月7日 星期一

在 Blogspot 上安裝 Objective-C 的 Syntax Highlighting

since: 2011/11/07
update: 2011/11/07

references:
1. JumpTheBox: Syntax Highlighting Objective C code on your blog
2. How To Add Syntax Highlighter for Blogger/Blogspot

A. 先到 SyntaxHighlighter 網站, 下載最新的版本: 3.0.83
    解壓縮後先 copy 三個檔案: shCore.css, shThemeDefault.css
    與 shCore.js

---------------------------------------------------------------------------------------------

B. 接著, 到 Scott Densmore: Objective C Syntax Highlighter Reboot 下載:
    Objective C Syntax Highlighter , 解壓縮後 copy 檔案: shBrushObjC.js  

---------------------------------------------------------------------------------------------

C. 到 google site , 先建立 "協作平台":

---------------------------------------------------------------------------------------------


D. 接著, 新增頁面: 使用檔案櫃當作範本

---------------------------------------------------------------------------------------------

E. 新增檔案: 上傳剛剛 copy 的 4 個檔案

   說明: 此時我們可以得到 4 個去掉 ? 參數後面的檔案連結: (同時將 https 改成 http)
           http://sites.google.com/site/lanli0210/blogspot/shBrushObjC.js
           http://sites.google.com/site/lanli0210/blogspot/shCore.css
           http://sites.google.com/site/lanli0210/blogspot/shCore.js
           http://sites.google.com/site/lanli0210/blogspot/shThemeDefault.css

---------------------------------------------------------------------------------------------
F. 開始修改 blogspot:
   blogspot > 設計 > 修改 HTML >
   在 <head> 標籤下, 新增以下的內容:
  
<!-- start for Syntax Highlighting -->

   <link href='http://sites.google.com/site/lanli0210/blogspot/shCore.css' rel='stylesheet' type='text/css'/>
   <link href='http://sites.google.com/site/lanli0210/blogspot/shThemeDefault.css' rel='stylesheet' type='text/css'/>
   <script src='http://sites.google.com/site/lanli0210/blogspot/shCore.js' type='text/javascript'/>
   <script src='http://sites.google.com/site/lanli0210/blogspot/shBrushObjC.js' type='text/javascript'/>
  
   <script type='text/javascript'>
   SyntaxHighlighter.config.bloggerMode = true;

   SyntaxHighlighter.all();
   </script>

<!--  end for Syntax Highlighting -->  
 

---------------------------------------------------------------------------------------------

G. 使用方式:(不知道哪裡出問題, 沒有效果)
    在程式碼的外圍加上以下的 <pre> 標籤:   
  
   <pre class="brush: objc; toolbar: false;">

<pre class="brush: objc; toolbar: false;">
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    
    // Override point for customization after application launch.
    
    // Converting RGBA color for use with UIColor
    UIColor *colorFromRgba = [UIColor colorWithRed:23/255.0f green:45/255.0f blue:145/255.0f alpha:1];
    NSLog(@"converted rgba color is: %@", colorFromRgba);
                             
    [self.window makeKeyAndVisible];
    
    return YES;
}</pre>

4 則留言:

  1. 你好,請問你成功了嗎?
    我是本身都有用syntax highlighter 的,但加不了objective c 的支援
    網頁出現
    ”SyntaxHighlighter

    Can't find brush for: objc”

    的訊息.

    回覆刪除
  2. 你好, 我之前試過, 沒有成功, 後來就沒有再試了.
    (可能是 HTML 的 source 我沒有處理好).

    有一些資料提供你參考: (請見下方說明)
    1. SyntaxHighlighter 3.0.83 after AJAX call "Can't find brush for: BRUSH" fix
    http://kitsula.com/Article/SyntaxHighlighter-3.0.83-after-AJAX-call-Cant-find-brush-for-BRUSH-fix

    2. alexg / SyntaxHighlighter / issues / #164 - Multiple Brushes Won't with Dynamically added Highlighters post-instantiation — Bitbucket
    https://bitbucket.org/alexg/syntaxhighlighter/issue/164/multiple-brushes-wont-with-dynamically


    說明:

    1. 上面第一個網址:
    作者把: shCore.js, shAutoloader.js 與 XRegExp.js 合成一個檔案, 提供下載:
    http://kitsula.com/Downloads/mySyntaxHighlighter.js
    (亦即, 載入 mySyntaxHighlighter.js 就可以取代 3 個 .js 檔)

    另外提到, 網站如果有使用 AJAX 的話, 需要利用 setTimeout 函式,
    延緩載入, ex: setTimeout("SyntaxHighlighter.highlight();", 500);

    2. 上面第二個網址:
    提供暫時的解決方式: 將原本的 shCore.js 檔案打開, 搜尋 brushes 字串,
    找到: if (brushes == null) 這一行(我這邊試, 在 648 行), 接著改成以下:
    // for temporary solution
    brushes = null;
    if (brushes == null)
    ....
    亦即: 將變數 brushes 永遠設成 null 值.

    P.S. 這二個方式, 我都沒有實際測過, 祝你成功 ~

    回覆刪除
  3. 這個Code的作者已經修正brush找不到的問題,重新下載他的code就可以直接使用,是成功的,謝謝您的教學~

    回覆刪除

注意:只有此網誌的成員可以留言。