test

test
顯示具有 Blogger Tips 標籤的文章。 顯示所有文章
顯示具有 Blogger Tips 標籤的文章。 顯示所有文章

2008年4月12日 星期六

在blogger首頁只顯示文章摘要, 隱藏全文的做法-hide fullpost

這項功能的做法,參考自:
http://skyvee.net/2007/06/blogger-hide-fullpost.html

亦可參考這篇:http://chenkaie.blogspot.com/2006/11/blog-expandable-posts-with-peekaboo_2149.html

請自行進入該網頁閱讀



底下為原文收錄:

在blogger首頁只顯示文章摘要, 隱藏全文的做法- hide fullpost


2007/07/14 更新 : 原始引用的script出了問題, 所以文章中有部分修改, 有刪除線者, 代表刪除,並更新新的程式碼, 請參考.


在blogger(blogspot)只顯示摘要這個功能, 應該是很多使用blogspot的人覺得需要的. 可以讓首頁呈現較多篇文章的摘要, 讓首頁載入時間快一點, 版面也可以較整齊.


在上次改版時, 參考了一些template, 也加入了一些功能, 包含閱讀全文的部分.


利用這次長假,把這個部分整理出來, 提供有需要的人參考一下.


首先要注意的是, 每次修改之前, 最好先備份一下模板.


備份說明: 按一下 "下載完整模版", 把目前的template 另存到電腦.


先選擇 範本--> 修改 html --> 打勾 展開小裝置範本


1.在 <head> 後面加入這行程式

<script type='text/javascript' src='http://www.anniyalogam.com/widgets/hackosphere.js' />

<script type="text/javascript">
function toggleIt(id) {
post = document.getElementById(id);
if (post.style.display != 'none') {
post.style.display = 'none';
} else {
post.style.display = '';
}
}

function showFullPost(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost")
spans[i].style.display = 'inline';
if (spans[i].id == "readmore")
spans[i].style.display = 'none';
}
}

var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}

function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}

function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") && (found == 0))
spans[i].style.display = 'none';
}
}
</script>


2.再來就是找到下列這段程式碼, 把紅字加上去

<b:includable id='post' var='post'>
<div class='post' expr:id='"post-" + data:post.id'>
<a expr:name='data:post.id'/>


3.再找到下列這段程式碼, 加入下述紅色程式碼.

<div class='post-header-line-1'/>
<div class='post-body'>
<b:if cond='data:blog.pageType == "item"'>
<p><data:post.body/></p>
<b:else/>
<style>#fullpost {display:none;}</style>
<p><data:post.body/></p>
<span id='showlink'>
<p><a expr:onclick='"javascript:showFull(\"post-" + data:post.id + "\");"'
href='javascript:void(0);'>[+/-] 繼續閱讀...</a></p>
</span>
<span id='hidelink' style='display:none'>
<p><a expr:onclick='"javascript:hideFull(\"post-" + data:post.id + "\");"'
href='javascript:void(0);'>[+/-] 只顯示摘要...</a></p>
</span>
<script type='text/javascript'>
checkFull("post-" + "<data:post.id/>");
</script>
</b:if>

<div style='clear: both;'/> </div>


其中,繼續閱讀及只顯示摘要的文字, 可以自己換掉.

4. 在設定-->格式

文章範本加入這行
文章摘要的部分<span id="fullpost">這裡是要隱藏的部分</span>
這樣,以後新增文章時, 就不用自己再輸入<span id="fullpost">及</span>了!

參考來源 Expandable posts with Peekaboo view (blogger beta)

在Blogger中處理程式碼區塊-CodeBlock

第一種方法,是在程式碼資料區塊外加框,並且加入底圖(我這裡故意沒加底圖)。
這個方法的參考網址是:http://skyvee.net/2007/07/code.html
底下為原文收錄:
記得改程式碼前, 要先備分template哦!



1. 請先下載此圖檔, 然後上傳到一個網頁空間... 記錄此圖片網址.(請記得下載, 最好把圖片另存, 萬一skyvee以後不小心砍掉可就麻煩囉!^^")



2. 將以下程式碼, 貼到 <head> </head>之間的CSS區塊,如 <b:skin><![CDATA[
的後面. 其中紅字部分, 要改成另外存的圖片網址哦!



code {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 9pt;
overflow:auto;
background: #fff5ee url(圖片網址並注意大小寫要正確) left top repeat-y;
border: 1px solid #ccc;
padding: 5px 5px 5px 20px;
max-height:200px;
line-height: 1.2em;
margin: 5px 0 0 15px;
}



3. 以上步驟完成後, 只要在文章中, 想把有 程式碼 的那一段區域, 用特別的圖示標出, 就可以用 <code> </code> 包住那段程式碼囉!



效果就會像這篇文章中出現的程式碼一樣


第二個方法,可用於框示各種類程式碼,並有提供複製及列印功能。
這個方法的參考網址是:http://yehhou.blogspot.com/2007/06/blogger-dpsyntaxhighlighter.html
原始提供網址是: http://code.google.com/p/syntaxhighlighter/(其Downloads頁面有原始檔可供免費下載)
這部份內容較多,請自行至該二處網址參考使用。


以下,則將該篇原文收錄:

Blogger dp.SyntaxHighlighter斷行問題解決方法


syntaxHighLighter是一個蠻不錯的Blog語法工具,可以High Light文章中的程式碼
使用的方法是先下載下來,再將裡面相關的javascript檔案和css上傳到自己的網頁空間
如果沒有網頁空間可以到Google Pages申請一個
然後到 範本->修改HTML 將下列的語法貼到 </body> </html> 前面
也有人是貼文章時才貼在文章中,這樣可以提升載入的速度



<link href="http://你的網頁空間網址/SyntaxHighlighter.css" rel="stylesheet" type="text/css">
<script class="javascript" src="http://你的網頁空間網址/shCore.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushCSharp.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushPhp.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushJScript.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushJava.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushVb.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushSql.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushXml.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushDelphi.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushPython.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushRuby.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushCss.js"></script>
<script class="javascript" src="http://你的網頁空間網址/shBrushCpp.js"></script>
</link>

<script class="javascript">
//<![CDATA[
dp.SyntaxHighlighter.ClipboardSwf = 'Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
//]]>
</script>


要使用時則加上
<textarea name='code' class='language'>
程式碼
</textarea>

or

<pre name='code' class='language'>
程式碼
</pre>


language可以是c-sharp, css, c, delphi, java, js, php, python, ryby, sql, vb, xml


因為Blogger預設會替文章中的每行文字加上<br />,
所以在Blogger中使用SyntaxHighLighter時,程式碼的每行後面都顯示<br />
解決的方法是將上面貼的最後一段JavaScript改成

<script class='javascript'>
//<![CDATA[
function FindTagsByName(container, name, Tag)
{
var elements = document.getElementsByTagName(Tag);
for (var i = 0; i < elements.length; i++)
{
if (elements[i].getAttribute("name") == name)
{
container.push(elements[i]);
}
}
}
var elements = [];
FindTagsByName(elements, "code", "pre");
FindTagsByName(elements, "code", "textarea");

for(var i=0; i < elements.length; i++) {
if(elements[i].nodeName.toUpperCase() == "TEXTAREA") {
var childNode = elements[i].childNodes[0];
var newNode = document.createTextNode(childNode.nodeValue.replace(/<br\s*\/?>/gi,'\n'));
elements[i].replaceChild(newNode, childNode);

}else if(elements[i].nodeName.toUpperCase() == "PRE") {
brs = elements[i].getElementsByTagName("br");
for(var j = 0, brLength = brs.length; j < brLength; j++) {
var newNode = document.createTextNode("\n");
elements[i].replaceChild(newNode, brs[0]);
}
}
}
dp.SyntaxHighlighter.HighlightAll("code");
//]]>
</script>

這段code主要目的是把TextArea和Pre中的<br />拿掉
對DOM而言,Pre中的<br />算Child Node, TextArea中則不是
所以需要分開處理
如果是TextArea,則直接把<br />都換成\n(21,22行)
如果是Pre,則一個一個把ChildNode取代掉(27,28行)


幾年沒寫Javascript,一段簡單的code寫了好幾天>"<
主要是沒搞懂textarea和pre的差異...
另外有些DOM的語法IE和FireFox的支援程度不同也沒搞懂
這年頭的JavaScript真是愈來愈複雜了....

在Blogger上置入FunP推推王按鈕

參考這兩篇:

http://skyvee.net/2007/05/blogger-funp.html
http://skyvee.net/2007/08/funp-push.html



以下為原文重點收錄:
I.首先 在 <head> </head> 之間, 加入這段程式碼.
<script language='JavaScript' src='http://bloggertips.googlecode.com/files/funp_button2.js'/>
II.以下三選一

如果要把推文按鈕加在文章標題列, 則在 <h3 class='post-title'> 後, 加入以下程式碼
<script>funp_genButton("<data:post.url/>");</script>

如果想放在文章左側, 則在<p><data:post.body/></p> 之前, 加入以下程式碼
<div style='float:left;margin-left:10px;'>
<script>funp_genButton("");</script>
</div>

如果是文章右側, 則在<p><data:post.body/></p> 之前, 加入以下程式碼
<div style='float:right;margin-right:10px;'>
<script>funp_genButton("<data:post.url/>");</script>
</div>

2008年4月11日 星期五

擴展Blogger版面寬度(-Width Expansion)

在剛建立好Blogger時,會發現顯示頁面不夠寬,預設顯示頁面只有660的寬度而已(根據所選原始模版不同,各別可能的預設值也會不同)。如果想要加寬頁面顯示寬度的話,就得動手改一改了。
  1. 按下Blogger的『版面配置』頁籤
  2. 再按下其下的『修改HTML』頁籤
  3. 若對HTML語言及CSS語法沒有把握,可以按下『下載完整模版』,先將現有模版儲存在自己電腦中,以便將來處理錯誤要復原時使用。
    要復原模版,可以在『從硬碟的檔案裡上載模版』右方文字格中輸入自己電腦中的完整模版儲存路徑,或按右方『瀏覽...』鈕進入挑選。最後,再按『上載』鈕即可。
  4. 『展開小裝置範本』 核取盒,現在用不著,故,可以暫不理它。
  5. 在下方HTML碼中,找到下面段落,並將紅色字處改掉(以下內容,可能會因原始所選模版不同,而有所差異,找到大致類似位置修改之即可)。

    下面者,原預設是660,視所需顯示頁面大小將之更改:

    /* Header
    -----------------------------------------------
    */

    #header-wrapper {
    width:1000px;
    margin:0 auto 10px;
    border:1px solid $bordercolor;
    }

    下面者,預設為700,此處可不改。
    #header .description {
    margin:0 5px 5px;
    padding:0 20px 15px;
    max-width:1040px;
    text-transform:uppercase;
    letter-spacing:.2em;
    line-height: 1.4em;
    font: $descriptionfont;
    color: $descriptioncolor;
    }

    下面者,預設為660。
    /* Outer-Wrapper
    ----------------------------------------------- */
    #outer-wrapper {
    width: 1000px;
    margin:0 auto;
    padding:10px;
    text-align:$startSide;
    font: $bodyfont;
    }

    下面為文章內容的寬度設定,預設為410。
    #main-wrapper {
    width: 750px;
    float: $startSide;
    word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
    overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
    }
    當然,你也可以改Sidebar的寬度,預設為220。我沒改,要改的話,要注意與上方main-wrapper者之加總,不可超過Outer-Wrapper之寬度設定。
    #sidebar-wrapper {
    width: 220px;
    float: $endSide;
    word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
    overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
    }
  6. 改完後,按下下方的『儲存範本』鈕即可。
  7. 按下『檢視Blog』連結,即可發現顯示頁面加寬了。

在Blogger中上載圖片或影片(-Photo-Video Upload)

在Blogger中,要上載圖片或影片,只要在編寫張貼文章時處理即可。

  • 插入圖片:
    1. 在建立編寫文章的工具列上按下『插入圖片(Add Image)』按鈕
    2. 可選擇自電腦或網頁中來新增圖片
    3. 並可直接設定圖片與文字間的版面配置
    4. 記得要勾選『我接受服務條款』項目
    5. 按下『上載圖片』按鈕
    6. 上載完畢後,上載圖片便會被貼入編寫文章中,再自行調整位置或修改HTML碼即可
  • 插入影片:
    做法與插入圖片類似,但只提供從電腦中來新增影片