2008-10-24

網誌存檔預設收合 (Archives Default Collapsed)

原先我是用「網誌存檔」這個 Blogger 的預設模組來做 Archive Calendar,後來搞出 Feed Calendar 後,這個 Archive 模組還是保留(就是我現在版面、旁邊的 MONTHLY ARCHIVE),而且恢復了它的原貌。我喜歡用的樣式是「階層」(Hierarchy)、每月存檔一次,好處是可以依年月動態展開自己發表的文章,方便統計和依時間快速索引。不過這個樣式有個缺點,就是預設會展開、讓在 Sidebar 這個模組變得很長,偏偏 Blogger 並沒有調整預設不要展開的選項,所以只好手動 Hack 一下。

這個 Hack 要修改樣板的原始碼。到「版面配置」、「修改 HTML」、勾選「展開小裝置範本」(記得先手動備份樣板),先找到「網誌存檔」的區段(type='BlogArchive'),找到下面這一段:

<li expr:class='&quot;archivedate &quot; + data:i.expclass'>

然後取代成下面這樣(如果找不到,找關鍵字 data:i.expclass 也行),意思是預設將網誌存檔的樹狀結構收合折疊起來:

<li expr:class='&quot;archivedate collapsed&quot;'>

這樣是收起來了沒錯,但是怎麼預設的箭頭符號還是展開的啊?這一點也要修正。找一下下面這段程式碼:

<b:includable id='toggle' var='interval'>
  <b:if cond='data:interval.toggleId'>
  <b:if cond='data:interval.expclass == &quot;expanded&quot;'>
    <a class='toggle' expr:href='data:widget.actionUrl + &quot;&amp;action=toggle&quot; + &quot;&amp;dir=close&amp;toggle=&quot; + data:interval.toggleId +       &quot;&amp;toggleopen=&quot; + data:toggleopen'>
        <span class='zippy toggle-open'>&#9660; </span>
    </a>
  <b:else/>
    <a class='toggle' expr:href='data:widget.actionUrl + &quot;&amp;action=toggle&quot; + &quot;&amp;dir=open&amp;toggle=&quot; + data:interval.toggleId +         &quot;&amp;toggleopen=&quot; + data:toggleopen'>
          <span class='zippy'>

就修改紅色的地方,把 close 改成 open (預設是展開的,所以連結點下去會收合,改成預設收合後,連結點下去就是 open 囉!),然後把 &#9660; 改成 &#9658;(更改圖示),這樣才算是完整地修改預設的畫面顯示和操作。最後,因為預設這些展開、收合的圖示是用 ASCII 碼中的特殊符號,在 IE6 裡面一樣會莫名其妙放大(再罵一次,IE 真爛),如果你覺得礙眼,一樣可以透過 CSS 來修正。在 CSS 區段(標籤 <b:skin> 後面)裡加入下面的定義就搞定了:

#ArchiveList .toggle-open {  /* Fixed for IE */
  _font-size: 90% !important;
}

其實這篇不是什麼新的玩意,我一直都有在用,只不過用過當時忘了記錄下來,突然臨時發生狀況時不知所措,才趕緊再去找一下解決方案,然後再筆記起來。

參考文章:收縮Blog Archive!

回應: 13

匿名 提到...

版大你好 請教關於文章裡包含的圖片
為何有些是箭頭游標不可點入放大
有些卻是手掌游標可點入
而可點入放大的圖片卻不是該張圖片的連結
麻煩幫忙解答 感謝

飄~ 提到...

版大你好~
進一步請教一下,
不使用標籤雲,希望標籤用階層型式顯示
就是此階層的"年""月"是以標籤分類
要如何改寫呢?

Abin 提到...

To 風舞:
階層?不知道你有沒有弄清楚「標籤」的用法,一篇文章可以同時屬於多個標籤、每個標籤都是獨立沒有關係的,是要怎麼用階層分類?

G 提到...

版大你好:

不知道版大有沒有興趣做一篇文章分類的教學?(我猜風舞也許是指這個?)
雖然網上有以furl來達成的文章分類的教學...不過無法階層化也無法收合...不太理想...

Abin 提到...

我想我已經說得很清楚了。Blogger 的文章分類,就是用標籤來做的,已經就有很好用的標籤功能,為什麼還要畫蛇添足做什麼分類?
再來是階層化的問題,一個文章可以屬於多個標籤,這比分類更有彈性,如果硬要搞階層,我想網路上有很多種作法,像是設「兩個」標籤叫「網路\遊戲」、「網路\軟體」,然後再用一些手段把標籤拆得像有階層的感覺,都屬於「網路」這個「目錄」下。要作成這樣當然可以,但是就剝奪「一個文章能屬於多個標籤」的彈性、失去擴充分類的彈性、也增加搜尋的困難(標籤會被當搜尋關鍵字,如果用組合的標籤名稱會有識別的問題)。
如果看著 Blogger 的標籤、說不能階層化、不能收合之類的,真的請你先搞清楚「標籤」和一般分類的差別,我覺得這樣很棒,沒有必要改回傳統樹狀階層的架構。

白花花 提到...

今天修改另一個網誌的archives的時候
發現原來要把close改成open的那句語法變成這樣↓
<a class='toggle' href='javascript:void(0)'>

所以那個步驟可以跳過囉,只要改
<li expr:class='"archivedate collapsed"'>
再把▼變成► 網誌存檔就會預設縮合了

白花花 提到...

Blogger的標籤雖然不能樹枝狀分類,排序上也不夠彈性
但最近他除了標籤雲之外,還多了個顯示哪幾個分類的新功能
加上標籤欄位跟HTML/JavaScript欄位一樣可以新增n個
所以可以善用這兩個特性把落落長的標籤們整理的更用秩序一點
如果嫌佔版面的話再把他改成下拉式選單XD

Winson 提到...

To Abin,白花花,
感謝二位的語法教導,我順利將"它"給關起來了..
版面漂亮整齊多了

西楼 提到...

在大陆blogger被封杀的情况下,存档还是会被自动打开,变得很长!你的博客也一样。这个问题怎么解决呢?我的blogger www.hexilou.com
帮帮忙吧!!
这个问题困扰很久了!!

阿堡 提到...

To Abin
我目前使用的樣本的code如下,似乎跟你所列的不依樣,
我僅修改數字9660--->9658
雖然看起來預設是ok的!

Abin 提到...

To 阿堡:
9660 是往下的箭頭(展開),9658 是往右的箭頭(預設,非展開),我就是為了改成往下的箭頭才換 9660 的,請你看清楚再說。

阿堡 提到...

作者已經移除這則留言。

阿堡 提到...

嗯嗯 別誤會
我參照你文章步驟去修改,覆蓋~~~expr:class='"archivedate " + data:i.expclass'~~~之後,箭頭仍是朝下,卻找不到dir=close這部份的CODE,,所以我就只修改數字部份!

另再請教一與此篇文章不相關的問題,我要如何修改意見欄的寬度,使寬度跟文章同寬~~~

張貼留言

歡迎留言或發表意見,不過要理性不做人身攻擊。匿名的朋友得到回應的速度會比較慢喔~
發問相關的禮貌和規矩請先參考這篇文章,不當留言、和本文無關的回應可能會被直接刪除無視喔!