從iG:Syntax Hiliter轉換到WP-Syntax

| Comments

終于決定放棄使用了三年多的iG:Syntax Hiliter,將代碼語法高亮插件換成WP-Syntax

原因是Vim的Markdown語法高亮插件有問題,會把iG的標簽[LANG]當作Markdown的超鏈接處理,結果導致插入代碼後,後面的內容被錯誤地著色,很難看。而Syntax使用<pre lang="LANG">格式的標簽,不會有這個問題。

其實很早就想過要換了,只是受累于使用iG進行高亮的文章太多,替換起來不方便。加上後來解決了由于iG停止更新導致的不支持更多的語法的問題,所以就一致拖到現在。今天晚上花了一個小時就完成了替換,比想象中的要容易地多。

根據我使用過的語法的情況,使用以下語句在數據庫中替換iG的標簽到Syntax的標簽:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
update wp_posts set post_content=replace(post_content,'[bash]','&lt;pre lang="bash" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/bash]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[python]','&lt;pre lang="python" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/python]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[vim]','&lt;pre lang="vim" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/vim]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[java]','&lt;pre lang="java" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/java]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[lua]','&lt;pre lang="lua" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/lua]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[sql]','&lt;pre lang="sql" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/sql]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[plsql]','&lt;pre lang="plsql" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/plsql]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[php]','&lt;pre lang="php" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/php]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[cpp]','&lt;pre lang="cpp" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/cpp]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[inno]','&lt;pre lang="inno" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/inno]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[xml]','&lt;pre lang="xml" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/xml]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[html]','&lt;pre lang="html4strict" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/html]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[ini]','&lt;pre lang="ini" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/ini]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[pascal]','&lt;pre lang="pascal" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/pascal]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[javascript]','&lt;pre lang="javascript" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/javascript]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[reg]','&lt;pre lang="reg" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/reg]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'[css]','&lt;pre lang="css" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'[/css]','&lt;/pre&gt;');
update wp_posts set post_content=replace(post_content,'&lt;coolcode LANG="php"&gt;','&lt;pre lang="php" line="1"&gt;');
update wp_posts set post_content=replace(post_content,'&lt;/coolcode&gt;','&lt;/pre&gt;');

即便轉換到Syntax,也不能避免Vim中Markdown語法高亮的問題,只要文字中出現成對的方括號,仍然會出問題,正確的做法是對HTML標簽中的內容不進行Markdown語法的著色。

在轉換和寫這篇文章的過程中,發現WP-Syntax還存在一些問題,例如啟用行號後部分表格不能充滿頁面寬度的問題,還有上面這些SQL語句,必須將其中的尖括號替換成HTML實體才能正常顯示。看來雖然歷經兩三年的發展,WP-Syntax還是不很成熟。

Posted via UltraBlog.vim.

Comments