2009年9月25日
Blogger 10週年慶(五):Show your face!
2009年9月24日
Blogger 10週年慶(四):You Might As Well Jump!
Blogger 10週年慶(二):Share from Nav Bar
Blogger 10週年慶(一):Label Cloud
2008年7月7日
來試試新玩意之六,Blogger in Draft:Import/Export
要使用Import/Export的功能,和其他新的測試功能一樣,一定要先登入draft.blogger.com,你也可以在登入draft.blogger.com後,在控制主頁右上角將「讓Blogger 測試區成為我預設的資訊主頁。」選取,往後不論登入draft.blogger.com或www.blogger.com都直接進到draft.blogger.com。
當登入draft.blogger.com後,在想要匯出的Blog上選擇「設定」,之後會在「基本」的頁面中看到一個「網誌工具」,其中有三個選項–匯入網誌、匯出網誌、刪除網誌,點選「匯出網誌」後,會跳到另一個頁面,再點選一次「匯出網誌」,Blogger.com會將該Blog的文章(包含未發佈的草稿)和意見整合為一個XML檔,讓你儲存在硬碟上,這樣備份就完成了,和之前用FTP備份相比,簡單多了。
而Import的功能,在想要匯入的Blog中,點選「設定」,在「基本」的頁面中的「網誌工具」,點選「匯入網誌」,如下圖:
接著選擇之前Export時所儲存的XML檔案,並輸入驗證碼,如果你打算將所有匯入的文章立即發佈,在這可以直接選取「自動發佈所有匯入的文章」,如果不是,就不要選取,下面再介紹手動選取發佈文章的方式:
當你對於所匯入的文章,並不想全部發佈時,當文章匯入完成後,除了有「發佈所有匯入的文章」的連結選項之外,也可以個別選擇想要發佈的文章,接著再點擊「發佈已選取」。
Import/Export除了備份之外,也可以將二個或二個以上的Blog合併為一個,或是將Blog搬移到另一個帳號,當然這只是針對文章和意見,對於整個Blogger的範本是不會有任何的變動。
2008年6月29日
來試試新玩意之五,Blogger in Draft:Star Ratings
首先還是先登入draft.blogger.com,點選「版面配置」–「網頁元素」,編輯「網誌文章」,選取「顯示星號評等」後儲存。

儲存後,先檢視一下你的Blog,看看是否有出現如下圖的Star Ratings,如果沒有就必須手動加入程式碼。
至於手動加入的步驟,Josh在這示範的是加在文章底部,文章底部有三個區塊,分別是<div class='post-footer-line post-footer-line-1'>、<div class='post-footer-line post-footer-line-2'>、<div class='post-footer-line post-footer-line-3'> ,由你自己決定要放在那:- 尋找上述三個區塊其中一個
- 將下列程式碼放在你想放置的區塊內
<span class='star-ratings'>
<b:if cond='data:top.showStars'>
<div expr:g:background-color='data:backgroundColor' expr:g:text-color='data:textColor' expr:g:url='data:post.absoluteUrl' g:height='42' g:type='RatingPanel' g:width='180'/>
</b:if>
</span> - 尋找<b:include name='feedLinks'/>
- 將下列程式碼放在<b:include name='feedLinks'/>的下方
<b:if cond='data:top.showStars'>
<script src='http://www.google.com/jsapi' type='text/javascript'/>
<script type='text/javascript'>
google.load("annotations", "1");
function initialize() {
google.annotations.setApplicationId(<data:top.blogspotReviews/>);
google.annotations.createAll();
google.annotations.fetch();
}
google.setOnLoadCallback(initialize);
</script>
</b:if> - 儲存範本
.star-ratings {
float:right;
}完工後,文章底部所承現的樣子就如下圖。
來試試新玩意之四,Blogger in Draft:Embedded Comment Form
但是當Josh我回到文章頁面想看看承現的結果時,卻發現Comment Form並沒有出現,相信滿多人會有這個問題,我花了一點時間找到解決方法,如下:- 進入「修改HTML」,選取「展開小裝置範本」
- 尋找下最程式碼:
<p class='comment-footer'>
<a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
</p> - 以下列程式碼取代:
<p class='comment-footer'>
<b:if cond='data:post.embedCommentForm'>
<b:include data='post' name='comment-form'/>
<b:else/>
<b:if cond='data:post.allowComments'>
<a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
</b:if>
</b:if>
</p> - 完成後儲存範本即可。
往後在文章頁面中,就會出現一個Comment Form,從此跟彈出視窗的意見說Bye Bye。
2008年5月17日
回覆留言:改進Blogger的留言方式
在改進Blogger的留言方式這一篇的步驟1和步驟2之中,稍作比較會發現原作者並沒有動到太多的原始程式碼,如下:
<b:includable id='comments' var='post'>
<div class='comments' id='comments'>
<a name='comments'/>
<b:if cond='data:post.allowComments'>
<!-- jackbook.com part 1 start -->
<!--
<h4>
<b:if cond='data:post.numComments == 1'>
1 <data:commentLabel/>:
<b:else/>
<data:post.numComments/> <data:commentLabelPlural/>:
</b:if>
</h4>
-->
<div class='onepx'>
<dl id='comments-block' style='height: 1px;overflow:hidden;'>
<b:loop values='data:post.comments' var='comment'>
<dt class='comment-author' expr:id='"comment-" + data:comment.id'>
<a expr:name='"comment-" + data:comment.id'/>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
<b:else/>
<data:comment.author/>
</b:if>
<data:commentPostedByMsg/>
</dt>
<dd class='comment-body'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p><data:comment.body/></p>
</b:if>
</dd>
<dd class='comment-footer'>
<span class='comment-timestamp'>
<a expr:href='"#comment-" + data:comment.id' title='comment permalink'>
<data:comment.timestamp/>
</a>
<b:include data='comment' name='commentDeleteIcon'/>
</span>
</dd>
</b:loop>
</dl>
</div>
<!--
<p class='comment-footer'>
<a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
</p>
-->
<!-- jackbook.com part 1 ends -->
<!-- actually i almost do nothing with your template, just add that comment, you did it :) -->
<div id='comment-parent' onmouseover='showcomment("hoverme", "comment-child");' style='margin-bottom: 50px;'>
<h3 id='hoverme' style='display:block;'>
<img alt='Your cOmment"s Here! Hover Your cUrsOr to leave a cOmment.' src='http://img229.imageshack.us/img229/5559/htmlcodeleavecommentfi5.gif' title='Your cOmment"s Here! Hover Your cUrsOr to leave a cOmment.'/>
</h3>
<!-- this iframe below is your comment form. you can change the height, or add more style property into it -->
<div id='comment-child' style='border:none; display: none; height:750px; width: 440px; margin-bottom: 5px; background: #fff none; border: 1px solid #FCO;'>
<iframe expr:src='data:post.addCommentUrl' height='100%' scrolling='yes' style='border:none;' width='100%'/>
<br/>
<a href='http://www.jackbook.com/2007/06/how-to-make-readers-leave-comment.html' title='Want to have this on your blogger/blogspot?'>Comment Form under post in blogger/blogspot</a>
</div>
<!-- end of iframe -->
</div>
</b:if>
<div id='backlinks-container'>
<div expr:id='data:widget.instanceId + "_backlinks-container"'>
<b:if cond='data:post.showBacklinks'>
<b:include data='post' name='backlinks'/>
</b:if>
</div>
</div>
</div>
</b:includable>原作者只在裡面加入了紅字的部份,如果你之前曾以改進Blogger的留言方式作過修改,請先刪掉紅字部份,再依以下方法進行修改,如果沒有請直接進行以下步驟:
- 尋找下列程式碼:
<p class='comment-footer'>
<a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
</p> - 以下列程式碼取代:
<div id='comment-footer'>
<p class='comment-footer'>
<a onclick='showcomment("comments-block", "comment-child", "comment-footer");' style='cursor:pointer'><data:postCommentMsg/></a>
</p>
</div>
在這主要是將<p class='comment-footer'>以<div id='comment-footer'>進行包覆,並將原本的「張貼意見」連結由呼叫popwindows改為呼叫js進行css的display屬性改變。 - 將下列程式碼新增到<div id='backlinks-container'>之前:
<!-- this iframe below is your comment form. you can change the height, or add more style property into it -->
<div id='comment-child' style='border:none; display: none; height:750px; width: 475px; margin-bottom: 15px; background: #ffffff none; border: 1px solid #FCO;'>
<iframe expr:src='data:post.addCommentUrl' height='100%' scrolling='yes' style='border:none; overflow-x:hidden;' width='100%'/>
<br/>
<div style='text-align:right;'>
<a onclick='closecomment("comments-block", "comment-child", "comment-footer");' style='cursor:pointer;'>關閉表單</a></div><br/>
</div>
<!-- end of iframe -->
在這就是加入以iframe載入留言視窗的語法,並加入一個「關閉表單」的js呼劍語法,其中紅字部份就是iframe的屬性設定,各位可以在這修改iframe的height、width、background等等。 - 在改進Blogger的留言方式中,原作者以onmouseover進行呼叫js來進行css的display屬性的改變,一但變換後除非重新載入,不然是無法恢復成原先的樣式,原來的js如下:
<!-- www.jackbook.com -->
<!-- this to hide and show el -->
<script languange='javascript'>
function showcomment(a,b){
var jackbookdotcom = document.getElementById(a);
jackbookdotcom.style.display = 'none';
jackbookdotcom = document.getElementById(b);
jackbookdotcom.style.display = 'block';
}
</script>
<!-- www.jackbook.com -->
在這裡Josh我是再增加一關閉iframe的js,如果你曾以改進Blogger的留言方式的第3步驟進行修改,請先將上面的js以下面的替代,如果沒有請將下列的js加在</head>之前:<script languange='javascript'>
function showcomment(a,b,c){
var showcommentfrom = document.getElementById(a);
showcommentfrom.style.display = 'none';
showcommentfrom = document.getElementById(b);
showcommentfrom.style.display = 'block';
showcommentfrom = document.getElementById(c);
showcommentfrom.style.display = 'none';
}
function closecomment(a,b,c){
var closecommentfrom = document.getElementById(a);
closecommentfrom.style.display = 'block';
closecommentfrom = document.getElementById(b);
closecommentfrom.style.display = 'none';
closecommentfrom = document.getElementById(c);
closecommentfrom.style.display = 'block';
}
</script> - 另外在Blog主頁還有一個呼叫Popwindow留言視窗的連結,由於我們已經要改為以iframe載入,所以這一個連結也需要一併改掉,也就是改進Blogger的留言方式的第4、第5步驟,曾經改過的就跳過這個步驟,沒有請先尋找下列程式碼:
<span class='post-comment-link'>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>
<b:if cond='data:post.numComments == 1'>1
<data:top.commentLabel/><b:else/><data:post.numComments/>
<data:top.commentLabelPlural/>
</b:if></a>
</b:if>
</b:if>
</span>
以下列程式碼取代之:<span class='post-comment-link'>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.url + "#comments"' >
<b:if cond='data:post.numComments == 1'>1
<data:top.commentLabel/><b:else/><data:post.numComments/>
<data:top.commentLabelPlural/>
</b:if></a>
</b:if>
</b:if>
</span> - 以上完成後,往後留言者只要點選「張貼意見」,留言視窗會以iframe載入,並將原先的留言暫時隱藏,待留言完成後,點選「關閉表單」就會恢復原先的樣式,並關閉iframe。
在這回覆Idle 的留言提問,很抱歉過了二個月才給你答案。
2008年3月9日
將Link改為下拉式選單之原視窗開啟
如果你想要讓下拉選單在原視窗開啟,先參考將Link改為下拉式選單,將原本欲取代的程式碼改用下列程式取代:
<select onchange='javascript:location.href=this.options[this.selectedIndex].value;'>
<option>Select a Link</option>
<b:loop values='data:links' var='link'>
<option expr:value='data:link.target'><data:link.name/></option>
</b:loop>
</select>延伸閱讀:
將Link改為下拉式選單
2008年2月27日
來試試新玩意之三,Blogger in Draft:Scheduled Posts
首先別忘了先登入http://draft.blogger.com/,打一篇新文章,完成後打開在左下角的“張貼選項”,在“張貼日期與時間”輸入未來的時間:

Josh這一篇預計在2/27 上午10:00發佈,所以我就將這個時間輸入,完成後“發佈文章”,回到文章列表中,你會發現該篇文章在會有“已排定”的字樣,這就表示這一篇文章會在設定時間到時才會發佈,這真的是一個很方便的功能。

但是,現在問題來了,有一些Blog會將文章的日期定在未來的某個時間,以便於將該篇文章置於最上方,方便閱讀,如此一來,是否會和這一個新功能有所衝突?關於這一點Blogger in draft也有設想到,以下摘自New feature: Scheduled Posts:
We know that some bloggers currently use future post dates in order to keep one post at the top of their blog for a while. Though we recommend that you use a Text page element for this, you can still get this old behavior with just one additional step. First, publish your post with the current date and time. This will publish it to your blog. Then, once it’s published, edit the post to change the date to the future and publish it again. We don’t re-schedule posts that are already published, so the post will stay on your blog but sort to the very top.
解決方法就是將該篇文章以現在的時間先行發佈,之後再回去編輯該篇文章,並修改發佈時間,因為Blogger不會將已發佈的文章重新排定發佈時間,另外還有另一點:
As with published posts, the post editor does not autosave scheduled posts if you go back and edit them. You wouldn’t want the post to publish while you’re in the middle of editing it! You can save the scheduled post as a draft to remove the scheduling and this will turn autosave back on.
當要修改一篇已排定發佈時間的文章,自動儲存的功能將會關閉,要再啟用自動儲存的功能,可先將該篇文章再儲存成草稿,再次進入編輯,這樣該篇文章會自排定發佈移除,而自動儲存的功能也就會再度開啟,當然以上的動作都是要在Blogger in draft中進行。
最後為了取信於各位,附一現在時間的圖,以茲證明。當你在2/27 上午10:00以後看到這一篇,留個言吧,多謝了。

UpData:早上抽空上來看這一篇,發現到標題的連結沒作用,不會連結到文章內部,這應該算是測試中的Bug,將來正式推出後應該會修正。這個Bug已於03/06修正。
2008年2月26日
來試試新玩意之二,Blogger in Draft:網誌清單
當然,就如同我上一篇所說,要加入這個「網誌清單」,一定要先從http://draft.blogger.com/登入;進入版面配置點選「加入網頁元素」,將網誌清單加入BLOG:

在網誌清單的設定中,你可以自行設定排序(有最近更新和Blog名稱二種)、顯示數量,另外還有圖示、最新項目的標題、最新項目的部分資訊、上次更新日期可設定,接著就是設定清單項目,點選下方的「將網誌新增到您的清單」:
至於清單的來源有二種,一是自行輸入,二是從Google Reader選取,像我這種懶人當然就是要選那種比較方便的作法,也就是從Google Reader中來選取,往後要加入新的Blog到清單中,只要先訂閱該Blog,再修改網頁元素即可:
當選好後,還可以進行重新命名(rename)和移除(remove)的動作:
下圖就是完成後的樣子:
往後要新增新的Blog只需二個動作:- 訂閱該Blog到Google Reader
- 修改網誌清單,將新訂閱的Blog加入清單之中
2008年2月25日
來試試新玩意之一,Blogger in Draft:訂閱連結
登入後在版面配置的地方,能新增的網頁元素也有不同:
Josh我在http://draft.blogger.com/新增一個新功能–訂閱連結,之後回到http://www.blogger.com/也還能夠使用。

由於這個功能內就有包含Atom資訊提供,那也就意謂著頁面最下方的那一個“訂閱”是多餘的了,但似乎無法從設定中移除,只好從CSS中著手,從firebug中找到該div區塊class為blog-feeds:.blog-feeds{
display :none;
}新增上列語法在CSS中即可隱藏。
UpData 03/09:
之前沒注意到在文章頁面還有一個“訂閱:張貼意見 (Atom)”,而這一個如果也要隱藏,只要將上述的css改為下列所示,就可以了。
.blog-feeds, .post-feeds{
display :none;
}
2008年1月27日
改進Blogger的留言方式
我也曾經在Singpolyma那裡看過替代方法–利用Lightbox這支JS將留言的頁面直接載入,但是還要再另外載入二支JS,整個Blog開啟完畢的時間拉的太長,只好再尋找別的方法。
今天在Google上又發現一個方法,就是將整個留言的頁面鑲嵌進文章的頁面,作法有點小複雜,建議先備份一下Template。
原始文章出處:
a comment form under post in blogger - like wordpress comment style.
- 進入控制主頁–範本–修改Html,選取「展開小裝置範本」,尋找下最程式片段:
<b:includable id='comments' var='post'>
<div class='comments' id='comments'>
<a name='comments'/>
<b:if cond='data:post.allowComments'>
<h4>
<b:if cond='data:post.numComments == 1'>
1 <data:commentLabel/>:
<b:else/>
<data:post.numComments/> <data:commentLabelPlural/>:
</b:if>
</h4>
<dl id='comments-block'>
<b:loop values='data:post.comments' var='comment'>
<dt class='comment-author' expr:id='"comment-" + data:comment.id'>
<a expr:name='"comment-" + data:comment.id'/>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
<b:else/>
<data:comment.author/>
</b:if>
<data:commentPostedByMsg/>
</dt>
<dd class='comment-body'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p><data:comment.body/></p>
</b:if>
</dd>
<dd class='comment-footer'>
<span class='comment-timestamp'>
<a expr:href='"#comment-" + data:comment.id' title='comment permalink'>
<data:comment.timestamp/>
</a>
<b:include data='comment' name='commentDeleteIcon'/>
</span>
</dd>
</b:loop>
</dl>
<p class='comment-footer'>
<a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
</p>
</b:if>
<div id='backlinks-container'>
<div expr:id='data:widget.instanceId + "_backlinks-container"'>
<b:if cond='data:post.showBacklinks'>
<b:include data='post' name='backlinks'/>
</b:if>
</div>
</div>
</div>
</b:includable>
也就是從<b:includable id='comments' var='post'>到<b:includable id='comments' var='post'>的前一行,就是待會要取代的片段。 - 將上述的程式片段以下列程式取代:
<b:includable id='comments' var='post'>
<div class='comments' id='comments'>
<a name='comments'/>
<b:if cond='data:post.allowComments'>
<!-- jackbook.com part 1 start -->
<!--
<h4>
<b:if cond='data:post.numComments == 1'>
1 <data:commentLabel/>:
<b:else/>
<data:post.numComments/> <data:commentLabelPlural/>:
</b:if>
</h4>
-->
<div class='onepx'>
<dl id='comments-block' style='height: 1px;overflow:hidden;'>
<b:loop values='data:post.comments' var='comment'>
<dt class='comment-author' expr:id='"comment-" + data:comment.id'>
<a expr:name='"comment-" + data:comment.id'/>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
<b:else/>
<data:comment.author/>
</b:if>
<data:commentPostedByMsg/>
</dt>
<dd class='comment-body'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p><data:comment.body/></p>
</b:if>
</dd>
<dd class='comment-footer'>
<span class='comment-timestamp'>
<a expr:href='"#comment-" + data:comment.id' title='comment permalink'>
<data:comment.timestamp/>
</a>
<b:include data='comment' name='commentDeleteIcon'/>
</span>
</dd>
</b:loop>
</dl>
</div>
<!--
<p class='comment-footer'>
<a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
</p>
-->
<!-- jackbook.com part 1 ends -->
<!-- actually i almost do nothing with your template, just add that comment, you did it :) -->
<div id='comment-parent' onmouseover='showcomment("hoverme", "comment-child");' style='margin-bottom: 50px;'>
<h3 id='hoverme' style='display:block;'>
<img alt='Your cOmment"s Here! Hover Your cUrsOr to leave a cOmment.' src='http://img229.imageshack.us/img229/5559/htmlcodeleavecommentfi5.gif' title='Your cOmment"s Here! Hover Your cUrsOr to leave a cOmment.'/>
</h3>
<!-- this iframe below is your comment form. you can change the height, or add more style property into it -->
<div id='comment-child' style='border:none; display: none; height:750px; width: 440px; margin-bottom: 5px; background: #fff none; border: 1px solid #FCO;'>
<iframe expr:src='data:post.addCommentUrl' height='100%' scrolling='yes' style='border:none;' width='100%'/>
<br/>
<a href='http://www.jackbook.com/2007/06/how-to-make-readers-leave-comment.html' title='Want to have this on your blogger/blogspot?'>Comment Form under post in blogger/blogspot</a>
</div>
<!-- end of iframe -->
</div>
</b:if>
<div id='backlinks-container'>
<div expr:id='data:widget.instanceId + "_backlinks-container"'>
<b:if cond='data:post.showBacklinks'>
<b:include data='post' name='backlinks'/>
</b:if>
</div>
</div>
</div>
</b:includable>
上面紅字部份,你可以自行修改自己所想要的圖片連結,Josh我就自己改了一個圖片,當然也可以純文字取代。
- 將下列程式放到</body>的上方,</body>通常位於文件的倒數第二行
<!-- www.jackbook.com -->
<!-- this to hide and show el -->
<script languange='javascript'>
function showcomment(a,b){
var jackbookdotcom = document.getElementById(a);
jackbookdotcom.style.display = 'none';
jackbookdotcom = document.getElementById(b);
jackbookdotcom.style.display = 'block';
}
</script>
<!-- www.jackbook.com --> - 尋找下列程式片段
<span class='post-comment-link'>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>
<b:if cond='data:post.numComments == 1'>1
<data:top.commentLabel/><b:else/><data:post.numComments/>
<data:top.commentLabelPlural/>
</b:if></a>
</b:if>
</b:if>
</span> - 以下列程式取代
<span class='post-comment-link'>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.url + "#comments"' >
<b:if cond='data:post.numComments == 1'>1
<data:top.commentLabel/><b:else/><data:post.numComments/>
<data:top.commentLabelPlural/>
</b:if></a>
</b:if>
</b:if>
</span> - 儲存你的Template,進入文章內部看看留言方式的變化吧!!
2007年4月16日
自行架設Ftp伺服器備份Blogger文章
目前Serv-U最新版本為6.4,因為在這我只是要做個備份,並不是真正要架一個Ftp伺服器,所以我在這僅提供4.2版+中文化給大家,請先下載Serv-U 4.2英文版及Serv-U 4.2 中文化檔案。
首先請先執行Serv-U 4.2英文版的安裝檔案,安裝過程在此不加詳述,當你安裝到最後時,如下圖:
因為還要進行中文化的動作,所以先將“Start Serv-U Administrator program”這一項取消選取,按下“Finish”並將右下常駐的Serv-U取消常駐,接著執行中文化的檔案,完成後於桌面執行Serv-U。當Serv-U執行後,會跑出一個設定精靈,你可以依下面的列表設定或自行設定:
- 顯示選單圖示:是
- 啟動伺服器
- 你的IP位址:動態IP請空白,固定IP可填可不填
- 網域名稱:前面說過,架這個伺服器只是要備份,所以直接按下一步
- 系統服務:不
- 匿名帳號:不
- 使用者帳號:是
- 帳號名稱:請自行設定
- 帳號密碼:請自行設定
- 起始目錄:選擇一個目錄做為登入FTP直接開啟的目錄
- 鎖定起始目錄:避免麻煩,選“是”
- 管理權限:選擇系統管理者以取得伺服器的最大權限
- 完成
接下來的步驟和如何利用HiNet FTP空間備份Blogger的文章差不多,在這再一次簡述一下。
Ⅰ、在「控制主頁–範本–修改HTML」頁面中,備份範本,並在頁面下方將範本回復成傳統範本:
Ⅱ、在「控制主頁–設定–發佈」的頁面中選擇Ftp發佈:
Ⅲ、進行連線的設定,其中“FTP伺服器”請填入你的IP位址,下方的帳號、密碼則填入之前安裝Ftp伺服器時所設定的帳號、密碼:
Ⅳ、儲存設定後,點選“立即重新發佈”,完成後你會發現所有的文章,已經備份到你的硬碟上。
完成備份,照例要回復成備份前的格式:
- 在「控制主頁–設定–發佈」中將發佈模式換回blogspot.com
- 在「控制主頁–範本–自定設計」進行升級
- 在「控制主頁–範本–修改Html」將之前所備份的範本上傳
2007年4月13日
如何利用HiNet FTP空間備份Blogger的文章

想要利用Ftp進行備份,首先必須將Blog的訪問權限設定為“任何人”,你可以在「控制主頁–設定–權限」進行變更。

接著還需要將範本恢復成傳統範本,也就是恢復成舊的Blogger格式,所以在進行這一步時,最好將範本備份,而恢復成傳統範本的選項可以在「控制主頁–範本–修改HTML」頁面中最下方找到。

當完成上述的設定時,就可以在「控制主頁–設定–發佈」的頁面中,看到Ftp發佈的選項,連線方式有二種:Ftp和sFtp,目前HiNet似乎無法使用sFtp進行連線,建議選擇Ftp即可。

接下來要進行連線的設定,如下圖:

- 這裡是以HiNet做示範,所以在“FTP伺服器”請填入“upload.myweb.hinet.net“
- Blog URL填入欲進行備份的Blog網址(包含“Http://”)
- Ftp路徑則填入Ftp伺服器要放置備份檔案的資料夾名稱,也可不填
- 在頁面下方輸入會員帳號和密碼
- 儲存設定後會在頁面上出現“立即重新發佈”,點擊它進行備份

完成備份後,接著就是要Blog恢復成之前的格式,首先就是在「控制主頁–設定–發佈」中將發佈模式換回blogspot.com,接著到「控制主頁–範本–自定設計」進行升級,升級完後再將之前所備份的範本上傳,完成上述動作,你的Blog就會恢復成原本的模式,而且所有的文章也完成了備份。
至於沒有HiNet Ftp空間的朋友,請耐心等候,過幾天再來介紹如何自行架設一個FTP伺服器來進行備份。
2007年3月27日
利用JavaScript加密文章內容
當初之所以沒有用這個Hack,是因為我覺得既然要在Blog上PO文又何必怕被人看呢?但是在跟朋友強力推薦Blogger時,卻又常常被以文章沒有保密的功能而加以回絕,昨天因RaRaYA的留言又讓我想起了這個Hack,於是決定將這個Hack的用法寫出來,順便看能不能打動我的朋友也加入Blogger的行列。
我在這裡有做了一篇Demo,建議各位先去看看,如果覺得這個效果不錯,再往下看這的Hack的做法。
- 前面提過這Hack是利用JavaScript以AES 256 bit將文章加密,所以第一步就是要將加密/解密用的Javascript加入範本中,所以請將下列的程式碼加入範本的</head>之前:
- 到這個網頁將文章加密;“key”的欄位可自行輸入,也可以按自動產生,但是key的內容請一定要留著,因為文章的解密一定要用,如果忘記key的內容,我想大概也沒有人能解出原來的文章內容。
- “Plain Text”這個欄位輸入想要加密的文章內容,按下會在下方的“Cipher Text”產生加密過後的字串。
- 而要在Blog內顯示的做法,就像我在Demo頁面有二種,一種是顯示加密過後的內容,一種是隱藏加密過後的內容,方法如下:
方法一(Demo1):<a href="javascript:Decrypt_text('unique_name');">Decrypt text(文章解密)</a>
<div id="unique_name">這裡輸入步驟3所產生的字串</div>
方法二(Demo2):<a href="javascript:Decrypt_text('unique_name', '這裡輸入步驟3所產生的字串');">Show encrypted text(顯示加密過後的字串)</a>
<div id="unique_name"></div>
而當你要解密時,按下上面所產生的連結時,會出現一個字串輸入視窗,將步驟2的key輸入就會將字串解密為原來的文章,所以當你只想讓特定的人士觀看你的文章時,只需要將步驟2的“key”給那個人即可,而不知道“key”的人所看到的不過就是一堆不相關英文字串,這樣就能有文章保密的效果了。
<script src='http://vincentcheung.googlepages.com/blogjscrypt.js' language='JavaScript'></script>
- 在步驟4中“unique_name”代表的是Div的ID,請儘量取一個不會和別的Div重覆的名字。紅字部份一定要填入“Cipher Text”的內容,這是文章解密的依據。
- “key”的內容一定要備份。
2007年3月25日
Hacks In Lifetags:Label/Archive Page's View
Peek-A-Boo的修改方法如下:(參考文章:Peek-A-Boo view of posts in label/archive pages)
1、加載JavaScript(如果已經有的話請略過)
<script type='text/javascript'
src='http://www.anniyalogam.com/widgets/hackosphere.js' />2、這個步驟有點複雜,所以我將全部的程式碼貼上:
<b:includable id='PeekABooPost' var='post'>
<div class='post uncustomized-post-template'>
<table><tr><td width='40px'>
<a href='javascript:void(0)' title='Expand/collapse this post' style='text-decoration:none' expr:onclick='"javascript:toggleIt(\"" + data:post.id + "\");"'>[+/-]</a>
</td><td>
<h3 class='post-title'><a expr:href='data:post.url'><data:post.title/></a></h3>
</td></tr></table>
<div class='post-body' expr:id='data:post.id' style='display:none'>
<p><data:post.body/></p>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
</div>
</b:includable>
<b:includable id='main' var='top'>
<!-- posts -->
<div id='blog-posts'>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != "item"'>
<b:include data='post' name='PeekABooPost'/>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<b:if cond='data:post.allowComments'>
<b:include data='post' name='comments'/>
</b:if>
</b:if>
</b:loop>
</div>將紅色部份加入範本內即可。
然而,如果你只想在Label/Archive的頁面只Show出文章的Title而不想Show出文章內容,作法則是更簡單。
1、首先找到下面的程式片段:(參考文章:New hack to improve your label/archive pages)
<div class='blog-posts'>
<b:include data='top' name='status-message'/>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>
<b:include data='post' name='post'/>
<b:if cond='data:blog.pageType == "item"'>
<b:include data='post' name='comments'/>
</b:if>
</b:loop>
</div>2、將上列的紅色部份以下列程式碼取代:
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != "item"'>
<a expr:href='data:post.url'>
<data:post.title/></a><br/><br/>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>以上兩種方法,提供給各位做參考。
2007年3月9日
有雜誌風格的Blog文章ⅡFor Internet Explorer
方法如下:
1、加入以下css於]]></b:skin>之前:
.cap {
float:left;
color:white;
background:#00CCFF;
border:1px solid;
font-size:60px;
line-height:60px;
}在這我只是在cap前多加了一個“.”
2、編輯文章時第一個字要用<span class="cap">和</span>包起來。
其實這兩個方法差不多,只不過要打的字多了一些,我個人比較懶了一些,只好委屈一下用IE的朋友了,畢竟IE已經被我遺忘很久了。
2007年2月26日
Blogger Hacked: AJAX Labels Reloaded
我在這將方法稍做解釋:
1、進入編輯範本,打開小裝置範本,將下列程式碼加入]]></b:skin>之前:
#indicator {position:fixed;z-index:1000;padding:15px 0;top:40%;background-color:#FFFFFF;border:1px solid #AAAAAA;width:176px;left:50%;margin-left:-88px;text-align:center;}
#search-result {border:1px solid #AAAAAA;padding:10px;padding-bottom:30px;font-size:85%;}
.search-result-meta {background:#EFEFEF;padding:2px;}
.search-result-meta img {border-width:0;vertical-align:text-bottom;}
.search-title {font-size:1em;padding-bottom:3px;font-weight:bold;text-align:left;text-decoration:underline;}
.search-cat {display:block;padding:3px;font-size:1em;margin-top:5px;margin-bottom:5px;border-bottom:1px solid #C0C0C0;font-weight:bold;}
.search-close {color:silver;float:right;border:1px solid #F5F5F5;margin-top:10px;cursor:pointer;}
.search-result-nav {font-size:1.4em;font-weight:bold;padding:5px 0pt;text-align:center;}
將下列程式碼加入</head>之前:<script type='text/javascript' src='http://bloggerhacked.googlepages.com/prototype.js' />
<script type='text/javascript'>
//<![CDATA[
// User customisable parameters
// ----------------------------
// maxresults - Number of results to show per page
// navFlag - Set Navigation ON or OFF. Give 1 for ON and 0 for OFF.
// feedLabel - Text to show for the label feed link.
// catLabel - Label for categories.
// closeLabel - Label for Close button. You can use hypertext also.
var maxresults = 5;
var navFlag = 1; //ON by default
var feedLabel = "標籤訂閱";
var catLabel = "標籤:";
var closeLabel = "[x]關閉";
//]]>
</script>
<script type='text/javascript' src='http://bloggerhacked.googlepages.com/ajaxlabels.js' />其中紅色部份可以自行設定,maxresults – 每一頁所顯示的筆數,navFlag – “1”表示開啟分頁“0”表示關閉;如果你之前已經有如入Ajax Label請跳到步驟4。
2、接著尋找下列程式碼:
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>取代為:
<b:loop values='data:post.labels' var='label'>
<a href='#sres' expr:onclick='"javascript:getCat(\"" + data:label.name + "\",null)"' rel='tag'><data:label.name/></a>3、在範本中找到你的Label1這個widget,找到下列的程式碼:
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a href='data:label.url'><data:label.name/></a>
</b:if>取代為:
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a href='#sres' expr:onclick='"javascript:getCat(\"" + data:label.name + "\",null)"' ><data:label.name/></a>
</b:if>4、你可以到原作者Blog的步驟4,按下來新增一個Html/Javascript的widget以便顯示Ajax Label的搜尋結果,並儲存範本;或者自行新增,將下列程式碼加入你自行新增的widget內:
<div id="indicator" style="display:none">
<img alt="Indicator" src="http://bloggerhacked.googlepages.com/indicator.gif"/>
Loading...</div>
<div id="search-result" style="display:none"><a name="sres"></a>
<div class="search-close" onclick="javascript:Element.hide('search-result')">
<script type="text/javascript">document.write(closeLabel);</script>
</div><div id="show-result"></div>
<div class="search-close" onclick="javascript:Element.hide('search-result')">
<script type="text/javascript">document.write(closeLabel);</script></div></div>如果你之前曾經加入過Ajax Label,請先移除舊的widget,再進行此步驟。
因為之前的版本最多只能顯示5筆,所以我才保留Label Cloud,另外再加入一個Tab來使用Ajax Label,套用這個版本後,可能要考慮將Tab移除或者將Tab轉為其他用途了。
UpData:2/27
修正一些顯示上的錯誤,如果你在2/27以前曾參考本文,請重新進行步驟2、3、4。
參考資料:Blogger Hacked: AJAX Labels Reloaded
2007年2月23日
有雜誌風格的Blog文章
之前我曾經用良人的大秘寶 -> [筆記]在文章裡顯示優質的程式碼區來顯示程式碼,再參考53 CSS-Techniques You Couldn’t Live Without的第10個方法,所以這一次我就套用他的方法。
只要在範本的]]></b:skin>之前加入下列的CSS:
cap {
float:left;
color:white;
background:#00CCFF;
border:1px solid;
font-size:60px;
line-height:60px;
}以後在發表文章時,只要將文章的第一個字用<cap>和</cap>包起來,這樣看起來就滿有雜誌文章的味道。
訂閱:
文章 (Atom)



