三月 17

WordPress 的 SyntaxHighlighter-Plus 外掛預設支援下列的語言

* Bash -- `bash`, `sh`
* C++ -- `cpp`, `c`, `c++`
* C# -- `c#`, `c-sharp`, `csharp`
* CSS -- `css`
* Delphi -- `delphi`, `pascal`
* Diff -- `diff`, `patch`
* Groovy -- `groovy`
* Java -- `java`
* JavaScript -- `js`, `jscript`, `javascript`
* PHP -- `php`
* Plain text -- `plain`, `text`
* Python -- `py`, `python`
* Ruby -- `rb`, `ruby`, `rails`, `ror`
* SQL -- `sql`
* VB -- `vb`, `vbnet`, `vb.net`
* XML/HTML -- `xml`, `html`, `xhtml`, `xslt`

如果今天想要加入一個新的語言該怎麼怎做呢?

只要2個步驟就可以完成了

1.把適用於SyntaxHighlighter-Plus的語言樣版(JavaScript)放到
/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter/scripts

2.編輯/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter.php
大約在在112行的位置加入樣版的名子

$this->aliases = apply_filters( 'agsyntaxhighlighter_aliases', array(
'Bash' => array('bash', 'sh', 'shell'),
'Cpp' => array('cpp', 'c', 'c++'),

例如要加入一個批次檔(bat)的樣版,把下面這行加入

'Batch' => array('batch','dos','bat'),

加入後變成

$this->aliases = apply_filters( 'agsyntaxhighlighter_aliases', array(
'Bash' => array('bash', 'sh', 'shell'),
'Batch' => array('batch','dos','bat'),
'Cpp' => array('cpp', 'c', 'c++'),

下面我們用例子來看看。

如果要加入Dos批次檔與Perl的語法樣版

首先,先把下面2個JavaScrip放到

/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter/scripts

程式碼另存為shBrushBatch.js

/*shBrushBatch.js*/

SyntaxHighlighter.brushes.Batch = function()
{

var keywords =  'do else for in call choice goto shift pause errorlevel ' +
'if not exist lfnfor start setlocal endlocal echo set';

var commands =  'append attrib cd chdir chkdsk choice cls copy del erase deltree ' +
'dir exit fc comp fdisk find format fsutil help join ' +
'label loadfix md mkdir mem memmaker more move msd pcpark ' +
'print rd rmdir ren scandisk share sort subst sys ' +
'time date tree truename type undelete ver xcopy';

this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,             css: 'comments' },              // one line comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,                 css: 'string' },                // double quoted strings
{ regex: new RegExp(this.getKeywords(keywords), 'gm'),                  css: 'keyword' },               // keywords
{ regex: new RegExp(this.getKeywords(commands), 'gm'),                  css: 'functions' }              // commands
];
}

SyntaxHighlighter.brushes.Batch.prototype       = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Batch.aliases         = ['dos', 'batch', 'bat'];

程式碼另存為shBrushPerl.js

</span></span>

程式碼另存為shBrushPerl.js

[code='js']

/*shBrushPerl.js*/

SyntaxHighlighter.brushes.Perl = function()
{
var funcs = 'abs accept alarm atan2 bind binmode bless caller chdir chmod chomp chop chown chr chroot close closedir connect cos crypt dbmclose dbmopen defined delete dump each endgrent endhostent endnetent endprotoent endpwent endservent eof exec exists exp fcntl fileno flock fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt glob gmtime grep hex import index int ioctl join keys kill lc lcfirst length link listen localtime lock log lstat m map mkdir msgctl msgget msgrcv msgsnd no oct open opendir ord pack pipe pop pos print printf prototype push q qq quotemeta qw qx rand read readdir readline readlink readpipe recv ref rename reset reverse rewinddir rindex rmdir scalar seek seekdir semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unlink unpack unshift untie utime values vec waitpid wantarray warn write qr';

var keywords =  's select goto die do package redo require return continue for foreach last next wait while use if else elsif eval exit unless switch case';

var constants   = 'my our local';

this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments,        css: 'comments' },                      // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments,         css: 'comments' },                      // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,         css: 'string' },                        // double quoted strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString,         css: 'string' },                        // single quoted strings
{ regex: /\$\w+/g,                                                                                      css: 'variable' },                      // variables
{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),            css: 'functions' },                     // common functions
{ regex: new RegExp(this.getKeywords(constants), 'gmi'),        css: 'constants' },                     // constants
{ regex: new RegExp(this.getKeywords(keywords), 'gm'),          css: 'keyword' }                        // keyword
];

this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
};
SyntaxHighlighter.brushes.Perl.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Perl.aliases  = ['perl','pl'];

最後在 /wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter.php 加入

'Batch' => array('batch','dos','bat'),
'Perl' => array('perl', 'pl'),

大功告成

參考資料:
shBrushBatch for Google SyntaxHighlighter
Perl Syntax Highlighter





三月 07

加入的方式很簡單就只是插入一張圖片而已

只要把這行html碼放到你的Blog中就行了

<!--本行為註解-->
<!--台灣即時衛星雲圖-->
<a href="http://www.cwb.gov.tw/V6/observe/satellite/Data/s3p/s3p.jpg">
<img src="http://www.cwb.gov.tw/V6/observe/satellite/Data/s3p/s3p.jpg"
alt="即時衛星雲圖" title="即時衛星雲圖" border="0" align="center" width="190" />

上面這張圖片是"台灣"的

如果你要的是"東亞"的請用這段程式碼

<!--本行為註解-->
<!--東亞即時衛星雲圖-->
<a href="http://www.cwb.gov.tw/V6/observe/satellite/Data/s1p/s1p.jpg">
<img src="http://www.cwb.gov.tw/V6/observe/satellite/Data/s1p/s1p.jpg"
alt="即時衛星雲圖" title="即時衛星雲圖" border="0" align="center" width="190" />

如果你要的是"全球"的請用這段程式碼

<!--本行為註解-->
<!--全球即時衛星雲圖-->
<a href="http://www.cwb.gov.tw/V6/observe/satellite/Data/s0p/s0p.jpg">
<img src="http://www.cwb.gov.tw/V6/observe/satellite/Data/s0p/s0p.jpg"
alt="即時衛星雲圖" title="即時衛星雲圖" border="0" align="center" width="190" />

參考資料來源:欄位加入多功能中央氣象局衛星雲圖動畫





三月 03

一直想在WordPress中把來訪的人,做個流量與IP統計與分析

又不想用現成的google、yahoo人數統計

今天終於找到一個不錯用的外掛套件

當初選WordPress果然是對的,一堆外掛等你用

這個外掛套件叫wp-slimstat-ex,網站在這邊

下載下來後要改2個地方才能使用

第1個地方

var $external_iptc = 'internal';
改成
var $external_iptc = 'external';

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

第2個地方,在最後一行加上

$GLOBALS['SlimCfg'] =&amp;amp; $SlimCfg;

使其變成下面的程式碼
if(!isset($SlimCfg))
$SlimCfg =&amp;amp; SlimCfg::get_instance();

$GLOBALS['SlimCfg'] =&amp;amp; $SlimCfg;
?>

或是下載我修正後的版本使用也可以

下載後如同一般WordPress外掛套件的安裝即可





二月 26

我們除了可以消極的讓 Google 自動來我們的網站搜尋之外

也可以主動出擊,讓 Google 主動來抓取網站的資料

這個服務叫 Google Sitemaps

運作的原理就是提供一份符合標準XML檔給 Google

讓 Google 依據該XML檔去抓取網站的資料

接下來我們就以 WordPress 所架設的 Blog,配合外掛套件來使用

產生出符合標準的XML檔

首先就是在 WordPress 裡的外掛選項,選擇新增外掛

在安裝外掛裡的搜尋中輸入 Google XML Sitemaps,然後按下搜尋

安裝 Google XML Sitemaps 套件了

安裝完成後這個套件會出現在你的選單中,點選它

基本上我們保持這個外掛套件的預設就行了,接下來就是按下去,產生XML檔了

接下來就是設定 Google Sitemap 了,登入 Sitemap 後首先要先新增一個網站,就是你的Blog

然後 Google Sitemap 會驗證這個網站是不是你所有的,這邊我們選擇使用html檔的方式

先把 Google Sitemap 要求你建立的 html檔案(內容可為空白) 上傳到你的主機後,再按下驗證

驗證完成後接下來就是設定 Sitemap 的位置了。如果你沒修改外掛套件的預設值

就照下面的方式輸入就行了

到此就大功告成了,過個幾天。再去 Google 就搜尋的到你了

不用再傻傻的等待 Google 來你的網站抓資料了





二月 24

在 WordPress 中有個外掛套件叫 Syntaxhighlighter-Plus

這個套件是用來做程式碼高亮顯示的

也就是說可以讓你放在網頁上的程式碼比較好閱讀

這個一個 JavaScript 寫的套件

安裝完 Syntaxhighlighter-Plus 這個外掛後

你會發現原本有的程式碼複製到剪貼簿(copyToClipboard)不見了

這是因為預設值是關的,必需手動打開

到wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter/src/

編輯 shCore.js 這個檔案,找到下面這行程式,大約在第71行
clipboardSwf : null,

以本站為例就改成這樣子
clipboardSwf : 'http://www.minitw.com/wp-content/plugins/syntaxhighlighter-plus/syntaxhighlighter/scripts/clipboard.swf',

這樣這個功能就打開了

2009/03/11 補充:syntaxhighlighter支援程式語言列表