2008年11月12日
挺不賴的Windows Live Writer的插件:Polaroid Picture
從How to add Polariod-style pictures into your blog posts看到一個挺不賴的Windows Live Writer的插件:Polariod Picture,能把插入到編輯區的圖片以拍立得的樣式呈現,除了可以加標題,也能旋轉圖片。加標題或旋轉用許多美工工具都能簡單的完成,但Polaroid Picture的這些特效只利用CSS樣式完成的,既迅速又輕鬆。
...繼續閱讀2008年11月3日
氣象局衛星雲圖修正-討厭,怎麼又改了?
從昨天開始中央氣象局的衛星雲圖連結圖檔都無法正確顯示,晚上檢查一下,發現圖檔檔名原本用的「時-日-月-年」格式突然變成「年-月-日-時」,修改後即告正常。完整程式如下,以自由欄位加入:
2008/11/03修改:
2008年10月4日
HighLight:程式碼顯示的美化工具
在Blog裡顯示程式碼經常都有繁瑣的程序,我使用過dp.SyntaxHighlighter、CodePress與Syntax Highlighting in JavaScript等JavaScript程式庫,功能各有高低但都必須在網站上存放JavaScript檔案,若存放的網站發生問題或不再提供服務(如Google Page Creator即是)時,原先貼入程式碼的文章就會發生問題,最後我反而覺得倒不如直接列入HTML格式的程式碼就好,如此就不會受限於外部網站或Blog的<PRE>、<XMP>的處理規則了。
HighLight的操作很簡單:指定好要操作的檔案與輸出格式後,指定輸出選項,再按〔Convert files〕就可以了。輸出選項如下圖所示有四大項:
- 行 號格式:要讓程式碼標上行號的話必須勾選本項設定,行號的號碼要用HTML的OL+LI格式輸出時則再將【HTML ordered list】打勾,使用OL+LI的好處是在此格式下按左鍵選取程式碼時不會選取到行號號碼,若未勾選則行號號碼會一併被選取到。
另外在FireFox下還要自行將</LI>刪去,否則每行會多出一行空行,IE則能正確顯示。 - 換行處理:當一行程式超過網頁右邊界時要如何處理,在後面有簡單說明。
- 是否輸出表頭和表尾:若是要貼到Blog裡,一般是不需要勾選的
- 樣式的輸出方式:標籤樣式可以產生成外部的.CSS檔,或內嵌在標籤裡,為求簡單則勾選之以使用內嵌格式
按下〔Convert files〕後就會將加上.html的檔名產生在指定的資料夾裡,用記事本等文書編輯程式讀取並選取到剪貼簿後,全部貼到Blog文章的原始碼裡即可。
再來說明換行的處理對輸出造成的影響。在沒有勾選Line wrap的情況時,程式碼超過右邊界時不做任何處理。
勾選了【Line Wrap】,則超出右邊界的「有些」會被切到下一列開頭。由下圖可以看到並不是每行都會成功換行。
再勾【Intelligent Wrap】時,部份超出右邊界的程式會被切到下一列並對齊上一行的較後面位置。要採用那種換行顯示悉聽尊便。
HighLight是很方便的程式碼輸出工具,又是自由軟體,推薦大家多多使用。
- 下載:http://www.andre-simon.de/zip/download.html
- 支援的輸出格式:HTML, XHTML, RTF, TeX, LaTeX, SVG與XML
- 支援的輸入語言:超過120種程式語言
- 能選用的輸出樣式:40種
最後貼上我的Ubiquity命令程式做為範例:
- /*
- * V1.0.1 2008/09/01
- * V1.0.2 2008/09/26 加入plurk指令
- * V1.0.3 2008/09/27 改進plurk, 在開頭加入qualifier動詞
- * V1.0.4 2008/09/28 改進plurk, qualifier動詞-語系, 如loves-cn, loves-en
- */
- CmdUtils.CreateCommand({
- name: "funp",
- author: { name: "emisjerry"},
- contributors: ["emisjerry"],
- license: "GPL",
- description: "選取好描述文字,把本篇文章貼上推推王",
- takes: {"輸入標籤名稱": noun_arb_text},
- icon: "http://funp.com/favicon.ico",
- execute: function(directObject) {
- var _sSelection = CmdUtils.getSelection();
- //window.alert(_sSelection + ':' + context.focusedWindow.location.href);
- var _aTags = directObject.text.split(" "); // 把輸入字串分成陣列
- var _sTags = "";
- for (var ele in _aTags) {
- _sTags += "&tags[]=" + encodeURIComponent(_aTags[ele]);
- }
- if (_sTags == "") _sTags = "&tags[]=科技"; // 未輸入標籤則預設為科技
- else _sTags = _sTags.replace(/tech/, '科技'); // 把tech標籤換成科技, 加快輸入速度
- Utils.openUrlInBrowser("http://funp.com/push/submit/?popup&url=" +
- encodeURIComponent(context.focusedWindow.location.href) +
- "&t="+encodeURIComponent(_sSelection)+_sTags);
- }
- });
- CmdUtils.CreateCommand({
- name: "dict",
- author: { name: "emisjerry"},
- contributors: ["emisjerry"],
- license: "GPL",
- description: "Yahoo!奇摩字典",
- takes: {"要翻譯的字彙": noun_arb_text},
- icon: "http://tw.dictionary.yahoo.com/favicon.ico",
- execute: function(directObject) {
- Utils.openUrlInBrowser("http://tw.dictionary.yahoo.com/search?ei=UTF-8&p=" +
- directObject.text );
- }
- });
- CmdUtils.CreateCommand({
- name: "cdic",
- author: { name: "emisjerry"},
- contributors: ["emisjerry"],
- license: "GPL",
- description: "教育部國語辭典",
- takes: {"要翻譯的字彙": noun_arb_text},
- //icon: "http://tw.dictionary.yahoo.com/favicon.ico",
- execute: function(directObject) {
- Utils.openUrlInBrowser( "http://140.111.34.46/cgi-bin/newDict/dict.sh?idx=dict.idx&pieceLen=50&fld=1&imgFont=1&cond=" +
- (directObject.text));
- }
- });
- /*
- * Original author: http://theunfocused.net/moz/ubiquity/verbs/, Blair McBride
- * Copied from http://www.plurk.com/user/fortelin
- * sample: plurk loves Plurking test.
- */
- CmdUtils.CreateCommand({
- name: "plurk",
- takes: {status: noun_arb_text},
- homepage: "http://theunfocused.net/moz/ubiquity/verbs/",
- author: {name: "Blair McBride", homepage: "http://theunfocused.net/"},
- modifier: {name: "Jerry Chien"},
- license: "MPL",
- preview: function(previewBlock, statusText) {
- var previewTemplate = "將要發佈的內容如下: <br/>" +
- "<b>${status}</b><br /><br />" +
- " 總字數為: <b>${chars}</b>";
- var truncateTemplate = "<br />後面 <b>${truncate}</b> " +
- "個字將予以刪除!";
- var previewData = {
- status: statusText.text,
- chars: statusText.text.length
- };
- var previewHTML = CmdUtils.renderTemplate(previewTemplate,
- previewData);
- if(previewData.chars > 140) {
- var truncateData = {
- truncate: previewData.chars - 140
- };
- previewHTML += CmdUtils.renderTemplate(truncateTemplate,
- truncateData);
- }
- previewBlock.innerHTML = previewHTML;
- },
- execute: function(statusText) {
- if(statusText.text.length < 1) {
- displayMessage("Plurk 內容不可空白");
- return;
- }
- var _sQualifier = "says";
- var _sLang = "tr_ch"; // 預設為繁體中文
- var _sText = statusText.text;
- var _iIndex = _sText.indexOf(" ");
- var found = false;
- if (_iIndex > 0) {
- var _aQualifiers = ["loves","likes","shares","gives","hates","wants",
- "wishes","has","will","wonders","asks","was","feels","thinks","says","is"];
- var _sVerb = _sText.substring(0, _iIndex); // 要使用的qualifier
- var _iIndex2 = _sVerb.indexOf("-"); // loves, loves-tw, loves-cn, loves-en, 減號後面加語系
- if (_iIndex2 > 0) {
- var _sVerbLang = _sVerb.substring(_iIndex2+1).toLowerCase();
- if (_sVerbLang=="tw") _sLang = "tr_ch";
- else _sLang = _sVerbLang;
- _sVerb = _sVerb.substring(0, _iIndex2); // loves-cn ==> loves
- }
- for (var ele in _aQualifiers) {
- if (_sVerb==_aQualifiers[ele]) {
- found = true;
- _sQualifier = _sVerb;
- _sText = _sText.substring(_iIndex+1);
- break;
- }
- }
- }
- var updateUrl = "http://www.plurk.com/TimeLine/addPlurk";
- var updateParams = {
- uid: 3170067,
- qualifier:_sQualifier,
- lang:_sLang, // en
- content: _sText
- };
- jQuery.ajax({
- type: "POST",
- url: updateUrl,
- data: updateParams,
- dataType: "json",
- error: function() {
- displayMessage("Plurk 發佈錯誤");
- },
- success: function() {
- displayMessage("Plurk 發佈成功");
- }
- });
- }
- });
##
2008年09月29日
簡單放大Plurk輸入區的方法
讀者們在打回應訊息時是否會跟我一樣老是覺得這個框實在是太小了?雖說只能打140個字,但框大一點也看得服些吧?我由這篇How to increase the size of your response box找到了解答,再順便把修改張貼內容與最下面的輸入框也加大。
首先按左上角的〔編輯〕→〔自訂外觀〕,把下列的CSS指示輸入樣式框裡:
| #input_small { height: 70px;} |
| 回應輸入框變身前 | 回應輸入框變身後 |
| 訊息輸入框變身前 | 訊息輸入框變身後 |
修改框放大後:
讓訊息輸入框變大的另一個方法是安裝FireFox的擴充:Resizable Textarea,安裝後就能在框的邊緣用拖拉的方法動態變更框的大小。
##
2008年09月27日
用Ubiquity快速發佈 Plurk 訊息-改良版
動詞後面可以加-tw, -cn, -en等變更語系為繁體中文、簡體中文與英文。如:plurk loves-cn 動詞變簡體的愛。
程式請直接點http://220.134.115.15/files/ubq/ubq_jerry.js另存新檔檢視,不再張貼了。
先前的第一版只能用「說」來張貼簡訊,在這個改良版裡加入了指定Qualifier的參數,格式變成:「plurk Qualifier Message」,Qualifier與Message之間以一個空白隔開,若未指定Qualifier則預設為 says。Qualifier只能是Plurk認識的"loves","likes","shares","gives","hates","wants","wishes","has","will","asks","was","feels","thinks","says","is"這幾種。更新方法與第一版相同。
| /* var updateUrl = "http://www.plurk.com/TimeLine/addPlurk"; |
2008年08月31日
簡單的Mozilla Ubiquity應用2:將目前網頁貼上推推王的命令
使用Ubiquity將目前瀏覽網頁貼上推推王的命令如下。網址列會填入目前網頁的網址,選取的文字會填入「描述」欄位,命令的參數會形成標籤,若標籤為 tech則會自動轉換成「科技」,例如:funp Google Web2.0 tech。
| // V1.0.1 2008/09/01修改 CmdUtils.CreateCommand({ |
你可以把上述命令直接貼入Ubiquity Command Editor,或瀏覽我的命令網頁再訂閱它。
##
2008年08月24日
如何備份Windows Live Writer的草稿與張貼內容?
一直以來Blog文章都是先用KompoZer(Nvu的非官方版)編輯好再貼到幾個同步發表的Blog上,但KompoZer無法正確斷行的問題卻始終無法解決,今天為了測試Windows Live Writer(簡稱WLW)的功能,順便試看看能否把書寫平台換到WLW時,同時可以更簡單的把文章張貼到多個Blog裡。
安裝好WLW後(安裝過程已有許多先進有寫了,請自行搜尋),再把Blog設定好,屆時即可方便的在多個Blog間切換與發佈文章;Blogger與微軟的Windows Live Spaces很容易就能設定好,別的BSP則需要額外設定。以下是樂多與博客大巴的設定摘要:
- 樂多
- 提供者:Metaweblog API
- 遠端張貼URL:http://xmlrpc.blog.roodo.com/cgi-bin/mt/mt-xmlrpc.cgi
- PIXNET(未測試,請自行檢測)
- 提供者:Wordpress 2.2+
- 遠端張貼URL:http://blog.pixnet.net/xmlrpc.php
- 博客大巴
- 提供者:Atom Publishing Protocol
- 遠端張貼URL:http://您的博客地址/api
可惜Xuite尚無法遠端張貼。
使用WLW寫了幾篇文章後覺得WLW實在不錯,把Blog撰寫的常用功能彙整得相當便利,所有的功能聚焦在Blog文章的生成與發佈程序,比網頁編輯工具(如FrontPage或Nvu)簡單,功能也比BSP提供的編輯網頁強,算是介於二者之間的一個專用工具。
用了一會後想要把檔案另存到備份資料夾,但在功能表【檔案】裡卻找不到另存新檔的選項,搜尋後在Move Draft Posts Written in Windows Live Writer Across Computers一文裡找到答案:
- 草稿存放在C:\Uses\帳號\My Documents\My Weblog Posts\Drafts(XP使用者把C:\Users換成C:\Documents and Settings即可)資料夾裡
- 最近張貼內容則在C:\Uses\帳號\My Documents\My Weblog Posts\Recent Posts裡
張貼內容都儲存為.wpost格式,.wpost檔案原來是ZIP格式,因此能用WinZip或7-Zip來開啟,本文就在名為Content的那個檔裡。把找到的.wpost檔案複製到常用的備份資料裡就能在本機另外備份文章內容了。
##
2008年08月10日
和風部落格FC2有中文版了
2008年07月6日
Blog側邊欄改用iframe以提升網頁載入速度
首先要找到一個可以存放外連檔案的網站,建立bloggerAds.html與sitetag.html,內容如下:
| bloggerAds.html |
| <script src="http://ad2.bloggerads.net/showads.aspx?blogid=你的ID&charset=utf-8"> </script> |
| sitetag.html |
| <html> <body> </body> </html> <script type="text/javascript" src="http://track.sitetag.us/tracking.js?hash=你的代碼"></script> <script type="text/javascript" src="http://pub.sitetag.us/badge.js?hash=你的代碼&extra=user& background_color=FFFFFF&border_color=999999&border_width=4&inner_background_color=FFFFCC"></script> |
先在瀏覽器裡載入外部網頁測試看看,若正常再修改Blog裡的自由欄位(插入欄位)。
| BloggerAds欄位 |
| <iframe frameborder="0" width="100%" height="445px" scrolling="no" alight="middle" marginwidth="0" marginheight=0" src="http://外連網址/bloggerads.html"> </iframe> |
| SiteTag欄位 |
| <iframe src="http://外連網址/sitetag.html" frameborder="0" width="220px" height="350px" marginwidth="0" marginheight="0"></iframe> |
希望這樣的修改能對網頁載入速度有幫助。另外,Xuite欄位的換行問題終於修改好,不會自作「聰明」的把所有指令都連成一行了。
##
2008年05月10日
解決NVu、Kompozer的換行問題
如果你仔細檢視我的文章文字,會發現有一些莫名其妙的空白出現在不應出現的句子中間,原來這都是我使用的網頁編輯軟體NVu和它的修訂版本Kompozer的自動換行問題造成的。今天在這裡(分享:Nvu/KompoZer格式化Html源碼的問題及解決)發現了解決方法,雖然並未完全克服這個問題,但結果應該會比未處理前來得好些。改善的步驟如下:- 下載給NVu或Kompozer使用的擴充(Extensions):HandCoder
- 由功能表【Tools→Extensions】安裝HandCoder
- 再下載整理HTML內容的工具:Tidy
- 重新啟動NVu或Kompozer後,由【Tools→HandCoder→Options...】在第二個Tidy頁籤裡指定Tidy.exe路徑
- 在工具列空白處按右鍵選【Customize Toolbar】把「Editor」拖到工具列裡
分享: Nvu/KompoZer格式化Html源碼的問題及解決作者提供最終的解決方法是功能表【Tools→JavaScriptConsole】再於輸入框裡輸入「top.opener.GetCurrentEditor().wrapWidth = 9999」按〔Evalute〕,再用「Editor」即可。同時該作者也提供了操作錄影可以參考。
下載連結
- HandCoder:http://fabiwan.kenobi.free.fr/xpi/?id=HandCoder&ver=0.3.4-en
- Tidy:http://www.paehl.com/open_source/?download=tidy.zip


如果你平常就喜歡日系風格的話,告訴你一個好消息:日本的部落格提供商