在您的範本裡安裝Neo

 發表了Neo+Kubrick的Neokubrick後,這次來分享如何直接將Neo的功能加到現有的範本。如果您想要自己把自己的範本改造成具有Neo的功能,這篇主要是寫給有心研究Neo的進階使用者,所以可能對初學者會有點難懂。

警告:你很有可能把自己的template搞爛,請新開一個Blog測試,或是完整備份您的樣版。
 
 首先要先研究您的範本,Blog的範本大部份都是二欄式或三欄式(一欄式或四欄式還滿屌的)。無論是幾欄式,要將Neo加入您的範本前,要注意一件事---那就是顯示最新文章列表的那個widget,要放在顯示文章區塊之前。

 換言之

<b:widget id='Posts' locked='false' title='Posts' type='HTML'>
 要放在
<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'>
 的前面。
 如果不醬子放的話會如何呢?你可以試看看啊~(保持神袐)好啦,你不必試,答案是"回應"會跑不出來。
 那麼問題來了,很多二欄式或三欄式的範本,文章區塊都在左邊,而放置最新文章列表的側邊欄都在左邊,在範本裡的原始碼通常是長醬子:
<div id='content-wrapper'>
<div id='crosscol-wrapper' style='text-align:center'>

<b:section class='crosscol' id='crosscol' showaddelement='no'/>
</div>
<div id='main-wrapper'>→main-wrapper就是主文章區塊

<b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='blog post' type='Blog'/>

</b:section>
</div>
<div id='sidebar-wrapper'>→sidebar-wrapper就是塞巴,不對,是側邊欄
<b:section class='sidebar' id='sidebar' preferred='yes'>

<b:widget id='Label1' locked='false' title='Labels' type='Label'/>
<b:widget id='HTML1' locked='false' title='Label Posts' type='HTML'/>

<b:widget id='HTML3' locked='false' title='Neo Logo' type='HTML'/>
</b:section>

</div>
</div>


為了使Neo正常運行,您必需把main-wrapper移到最後面(最右邊)
然後再使用css的float功能讓它置左。


<div id='content-wrapper'>
<div id='crosscol-wrapper' style='text-align:center'>
<b:section class='crosscol' id='crosscol' showaddelement='no'/>

</div>
<div id='sidebar-wrapper'>→sidebar移到了mainwrapper的上面
<b:section class='sidebar' id='sidebar' preferred='yes'>

<b:widget id='Label1' locked='false' title='Labels' type='Label'/>
<b:widget id='HTML1' locked='false' title='Label Posts' type='HTML'/>

<b:widget id='HTML3' locked='false' title='Neo Logo' type='HTML'/>
</b:section>

</div>
<div id='main-wrapper'>→可憐的main-wrapper乖乖待在下面吧
<b:section class='main' id='main' showaddelement='no'>

<b:widget id='Blog1' locked='true' title='blog ??' type='Blog'/>
</b:section>

</div>
</div>


再用CSS來設定位置

#sidebar-wrapper {
margin-right: 14px;
width: 240px;
float: right;
background-color: $mainBgColor;
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 */
}
#main-wrapper {
margin-left: 14px;
width: 464px;
float: left;
background-color: $mainBgColor;
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 */
}



OK,如果需要安裝Neo到您現有範本的話,要安裝下列widget。

Neo的Javascript連結

放在head裡面。
var numpost是最新文章顯示的篇數。



<script charset='big5' language='javascript' src='http://nautica716.googlepages.com/neochinese.js'/>
<script language="javascript">
var numPosts = 10;
</script>



標籤與Logo的widget


<b:widget id='Labels' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
<div id='LabelList'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>

<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>

<b:else/>
<a expr:href='"javascript:fetchLatestPosts(\"" + data:blog.homepageUrl + "\",\"" + data:label.name + "\");"'><data:label.name/></a>&amp;nbsp;(<data:label.count/>)
</b:if>
</li>
</b:loop>

</ul>
<b:include name='quickedit'/>
</div>
</div>
</b:includable>
</b:widget>
<b:widget id='NeoLogo' locked='false' title='Neo Logo' type='HTML'>

<b:includable id='main'>
<div class='widget-content'>
<p><a href='http://hackosphere.blogspot.com/2006/12/now-available-neo-template.html'><img src='http://www.anniyalogam.com/neo.png'/></a></p>
</div>
<b:include name='quickedit'/>

</b:includable>
</b:widget>


顯示"最新文章列表"的widget

<b:widget id='Posts' locked='false' title='Posts' type='HTML'>
<b:includable id='main'>
<div id='LabelDisplay'>
<div id='LabelTitle'>
</div>
<div class='widget-content' id='LabelPosts'>
<script language='javascript'>fetchLatestPosts('<data:blog.homepageUrl/>', &#39;');</script>

</div>
</div>
</b:includable>
</b:widget>


文章區塊主體的widget

註:

這個widget要覆蓋您範本裡原有的blog1 widget。

你可以不展開小裝置範本,直接覆蓋id=blog1的那個widget,它通常長醬子:

<b:widget id='Blog1' locked='true' title='blog 文章' type='Blog'/>

當然你也可以選擇展開小裝置範本來貼,只是範本裡的blog1的widget通常都落落長-_-。

<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'>
<b:includable id='postQuickEdit' var='post'>
<b:if cond='data:post.editUrl'>
<span expr:class='"item-control " + data:post.adminClass'>
<a expr:href='data:post.editUrl' expr:title='data:top.editPostMsg'>
<span class='quick-edit-icon'>&#160;</span>

</a>
</span>
</b:if>
</b:includable>
<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='main' var='top'>
<!-- POSTS -->
<div class='blog-posts'>

<b:loop values='data:posts' var='post'>
<b:include data='top' name='status-message'/>
<b:include data='post' name='post'/>

<script language='javascript'>
var blogAuthor = '<data:post.author/>';
fetchComments(&#39;<data:post.id/>&#39;);
</script>

</b:loop>
</div>
<b:if cond='data:blog.pageType != "archive"'>
<div class='comments' id='comments'>
<center><h2>No comments yet</h2></center>

</div>
</b:if>

</b:includable>
<b:includable id='backlinkDeleteIcon' var='backlink'>
<span expr:class='"item-control " + data:backlink.adminClass'>
<a expr:href='data:backlink.deleteUrl' expr:title='data:top.deleteBacklinkMsg'>

<span class='delete-comment-icon'>&#160;</span>
</a>
</span>
</b:includable>
<b:includable id='feedLinksBody' var='links'>
<div class='feed-links'>

<data:feedLinksMsg/>
<b:loop values='data:links' var='f'>
<a class='feed-link' expr:href='data:f.url' expr:type='data:f.mimeType' target='_blank'><data:f.name/> (<data:f.feedType/>)</a>
</b:loop>

</div>
</b:includable>
<b:includable id='backlinks' var='post'>
<a name='links'/><h4><data:post.backlinksLabel/></h4>
<b:if cond='data:post.numBacklinks != 0'>
<dl class='comments-block' id='comments-block'>

<b:loop values='data:post.backlinks' var='backlink'>
<div class='collapsed-backlink backlink-control'>
<dt class='comment-title'>
<span class='backlink-toggle-zippy'>&#160;</span>
<a expr:href='data:backlink.url' rel='nofollow'><data:backlink.title/></a>

<b:include data='backlink' name='backlinkDeleteIcon'/>
</dt>
<dd class='comment-body collapseable'>
<data:backlink.snippet/>
</dd>
<dd class='comment-footer collapseable'>

<span class='comment-author'><data:post.authorLabel/> <data:backlink.author/></span>
<span class='comment-timestamp'><data:post.timestampLabel/> <data:backlink.timestamp/></span>
</dd>

</div>
</b:loop>
</dl>
</b:if>
<p class='comment-footer'>
<a class='comment-link' expr:href='data:post.createLinkUrl' expr:id='data:widget.instanceId + "_backlinks-create-link"' target='_blank'><data:post.createLinkLabel/></a>

</p>
</b:includable>
<b:includable id='status-message'>
<b:if cond='data:navMessage'>
<div class='status-msg-wrap'>
<div class='status-msg-body'>
<data:navMessage/>

</div>
<div class='status-msg-border'>
<div class='status-msg-bg'>
<div class='status-msg-hidden'><data:navMessage/></div>
</div>

</div>
</div>
<div style='clear: both;'/>
</b:if>
</b:includable>
<b:includable id='feedLinks'>
<b:if cond='data:blog.pageType != "item"'> <!-- Blog feed links -->

<b:if cond='data:feedLinks'>
<div class='blog-feeds'>
<b:include data='feedLinks' name='feedLinksBody'/>
</div>
</b:if>

<b:else/> <!--Post feed links -->

<div class='post-feeds'>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.allowComments'>
<b:if cond='data:post.feedLinks'>
<b:include data='post.feedLinks' name='feedLinksBody'/>
</b:if>

</b:if>
</b:loop>
</div>
</b:if>
</b:includable>
<b:includable id='nextprev'>
<div class='blog-pager' id='blog-pager'>

<b:if cond='data:newerPageUrl'>
<span id='blog-pager-newer-link'>
<a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + "_blog-pager-newer-link"' expr:title='data:newerPageTitle'><data:newerPageTitle/></a>
</span>
</b:if>

<b:if cond='data:olderPageUrl'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + "_blog-pager-older-link"' expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
</span>
</b:if>

<b:if cond='data:blog.homepageUrl != data:blog.url'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
<b:else/>
<b:if cond='data:newerPageUrl'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>

</b:if>
</b:if>

</div>
<div class='clear'/>
</b:includable>
<b:includable id='commentDeleteIcon' var='comment'>

<span expr:class='"item-control " + data:comment.adminClass'>
<a expr:href='data:comment.deleteUrl' expr:title='data:top.deleteCommentMsg'>
<span class='delete-comment-icon'>&#160;</span>
</a>
</span>

</b:includable>
<b:includable id='post' var='post'>
<div class='post' id='post'>
<a expr:name='data:post.id'/>
<h2 class='date-header' id='PostDate'>
<data:post.dateHeader/>
</h2>

<h3 class='post-title' id='PostTitle'>
<b:if cond='data:post.url'>
<a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<data:post.title/>

</b:if>
</h3><br/>

<div class='post-header-line-1'/>
<style>#fullpost {display:none;}</style>
<div class='post-body' id='PostContent'>

<p><data:post.body/></p>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<span id='showlink' style='display:none'>
<p><a href='javascript:showFullNeo();'>Read More...</a></p>

</span>
<span id='hidelink' style='display:none'>
<p><a href='javascript:hideFullNeo();'>Collapse...</a></p>
</span>
<script type='text/javascript'>

checkFullNeo();
</script>
<div class='post-footer'>
<p class='post-footer-line post-footer-line-1'>
<span class='post-author'>
<b:if cond='data:top.showAuthor'>
<data:top.authorLabel/> <data:post.author/>

</b:if>
</span>
<b:if cond='data:post.editUrl'>
<span expr:class='"item-control " + data:post.adminClass' id='PostEditLink'>
<a expr:href='data:post.editUrl' title='Edit Post'>
<span class='quick-edit-icon'>&#160;</span>

</a>
</span>
</b:if>
</p>
<h3 class='post-comment-link' id='PostCommentLink'>
<a expr:href='data:post.addCommentUrl' target='_blank'>Post a Comment</a>

</h3>

<span class='post-icons'>
<!-- email post links -->
<b:if cond='data:post.emailPostUrl'>
<span class='item-action'>
<a expr:href='data:post.emailPostUrl' expr:title='data:top.emailPostMsg'>

<span class='email-post-icon'>&#160;</span>
</a>
</span>
</b:if>
</span>

</div>

<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:widget>


相關文章:

留言

  1. 人人有用Neo吧?= =

    我打算先直接用neokubrick,雖然些Hacks就得重做了....

    回覆刪除
  2. 我是學"人人有功練"啦

    還是改一下名字好了-_-

    回覆刪除
  3. 好有創意唷,想請教一下嘿,我有使用"試用"的功能套用我的範本並試操作了一下,發現當中在文章的點閱速度之快,請問是拜該模板中的語法所致嗎?可以將該功能套用一般模組內嗎?
    再想請教第二點,(因為在下書念得少^^")
    我的部落格在IE瀏覽下常常會出現"卡頁",也就是無法完全顯示網頁,但左下方卻顯示[完成]的情形,以大大的功力如此深厚,可以教我該如何排解此問題嗎?

    回覆刪除
  4. 艾迪

    您的問題可以在這篇文章得到解答
    http://ooxxoox.blogspot.com/2007/07/bloggerneo-template.html

    至於您Blog卡頁,應該是hack灌太多了,導致javascript的錯誤。
    而且我不是學資訊的,所以可能也幫不了太多忙。

    最簡單的方式,就是灌firefox
    請到我BLOG右上方的連結下載安裝科科

    回覆刪除
  5. olly

    不管什麼版型
    要改樣式

    就要先找到該div的id

    然後用css去改它

    label的id應該是label2

    所以你就用

    #label2 {
    background:white;
    }

    大概是醬子

    你可以自己看我的原始碼

    或參考

    http://chinese-school.netfirms.com/css-tutorial-T-Chinese-index.htm

    回覆刪除
  6. 阿倫同學,對不起,我們是弘光網路電視台。我們用了你做的那一組ccs模組去改出我們要的版面。

    但是我們不小心把posts(顯示最新文章)的那個網頁元素刪除了,結果就發生你說的不會顯示回應的狀況。

    請問我們要怎麼把他救回來呢?

    因為其實我對於ccs根本就是菜鳥中的菜鳥...研究了半天我還是看不懂,只好求助於站長了。

    回覆刪除
  7. @小花兒

    您好,你們很會改啊,超有創意的TEMPLETE

    可是我不太懂你所謂的"但是我們不小心把posts(顯示最新文章)的那個網頁元素刪除了。。。

    因為我剛去看,是有最新文章啊,我也不知道你們那篇文章才有回應

    總之解決的方法,(WAIT)

    我剛去再看一次,好像已經解決了吧?

    good job...

    回覆刪除
  8. 恩,是的,我們已經解決了。

    不過我還是大概說一下我們碰上的問題,
    就是最新回應的那個網頁元素,我們是希望把他拿掉,所以就移除了這個網頁元素。
    結果回應就跑不出來了,昨天我看了半天的ccs才找回這個網頁元素的語法把他貼回去,就解決了。

    不過我還是想問一下...不曉得有沒有辦法把最新回應拿掉、回應還是可以跑出來?

    謝謝阿倫"校長"的解惑了!(剛剛才被同學糾正應該要叫校長XD)

    回覆刪除
  9. @小花兒

    我好像變老人了,聽不太懂妳在講什麼>_<

    什麼叫"不曉得有沒有辦法把最新回應拿掉、回應還是可以跑出來

    因為哦,我的範本是沒有內建"最新回應"的

    所以你們拿掉的"最新回應",跟這個範本沒有關係

    易言之,我猜你們根本刪錯網頁元素了。

    另外要補充的是,css是css,xml是xml,二者不一樣哦,不是看不懂的都叫css。

    css是那一坨

    .body { fuck : 9pt }

    而xml是

    <B:WIDGET></B>

    那一坨。

    回覆刪除
  10. 請問一下
    我用了個新template想嘗試套用neo看看
    但典籍最新文章列表卻不會更新文章
    想請阿倫大大幫忙看下~麻煩了
    http://45645416.blogspot.com/

    回覆刪除
  11. @wei

    要將文章區塊主體的widget複製好哦

    回覆刪除
  12. 阿倫校長 我好愛你~~
    你的教學真是太棒了~~
    http://drs425.blogspot.com
    用你的教學做出來的。太愛你了!!

    回覆刪除
  13. 倫校長,安裝neo可以不要用它的繼續閱讀語法,用這篇http://chenkaie.blogspot.com/2006/11/blog-adding-read-more-tag-in-blogger.html的語法嗎?是不是文章區塊主體widget要修改?自己嘗試修改,改不出來,可以指導一下嗎,衷心的謝謝你^^;

    回覆刪除
  14. @匿名

    neo的繼續閱讀
    好像有內建

    但我不太懂

    去問Kaie比較好

    Kaie:"躺著也中槍"

    回覆刪除
  15. 作者已經移除這則留言。

    回覆刪除
  16. 作者已經移除這則留言。

    回覆刪除
  17. 阿倫校長 : 你好 我 焦糖莫...又來了...=.= ,想問你neo的文章區塊好像不能用這篇http://joshnote.blogspot.com/2008/06/blogger-in-draftembedded-comment-form.html內坎式意見表單後?
    改老半天改不出來,冏,neo的文章區塊好難改....我試著改,有出來一下@@,測試回覆意見後,就又不見了,我想是neo.js的問題吧?可是我不知道怎麼在js裡面加入html的語法@@?
    還有一個小問題,作者回應怎麼讓他加入底圖底色呢?Kaie大大在文章說他不會耶@@
    打擾了..
    http://drs425.blogspot.com

    回覆刪除

張貼留言

嗯嗯。

熱門文章