网站开发日志

2009年8月22日星期六

放弃DISQUS

上周我更新了博客的评论系统,采用DISQUS,但是今天我把它撤下来了。原因一是DISQUS对中文支持不好,怕网友用不习惯;原因二是DISQUS不支持IE6,虽然我讨厌IE6,但是它毕竟是国人用的最多的浏览器,所以我还是希望我的网站在IE6下运行和显示都正常。

这次换回Blogger自带的留言系统,我不在使用过去使用的弹出式评论系统。而是尝试了Blogger提供的嵌入式的留言系统,不用不知道,Blogge的嵌入式留言系统还是很不错的! 它也支持留言回复通知(只要在留言框下点击Subscribe by email),另外你可以在下拉菜单选择不同的帐号、也可以使用名字/域名(Name/Url)、或者干脆匿名(anonymous) 。

对了,顺便说一下这个嵌入式(Embed)功能是在Blogger控制面板的评论(Comment)选项里开启的。(万一你也用Blogger并且还不知道这个功能)。

上一周有一些网友已经用DISQUS留下一些评论,我也还欠'会潜水的牛'一个问题没回答,我一定会找个时间回复。

P.S. 我依然保留DISQUS的帐号,所以如果你对我的DISQUS感兴趣,你可以到这里访问:http://61dh.disqus.com

标签:

2009年8月14日星期五

新的评论系统

曾经有朋友抱怨《网站开发日志》的评论系统不好用。的确我也不喜欢Blogger自带的这个评论系统,首先它的界面有点老土(我用的是点击弹出留言窗口,还没用过嵌入式的,估计好不到哪里去 Update:嵌入式不错),其次它不支持留言回复通知(网友必须重新打开帖子才可以看到留言的回复),最后就是它不是实时的(你的回复必须要等几分钟才会出现在日志里)。今天在网上看到一个叫DISQUS评论系统,功能非常强大,所以就把日志的评论系统给更新了 Update:放弃DISCUS

DISQUS界面清爽,支持Wordpress, Blogger, MovableType 等等主流博客发布系统。这里说的支持是傻瓜式地导入代码到你的模板,其实如果使用它的通用代码,你可以把它加到任意网页上。我就是使用通用代码,因为傻瓜式不支持经典Blogger模板。

此外DISQUS的功能齐全,我想所有该有的留言系统功能它都具备了,例如:

  • 实时发布留言
  • 容易操作的管理页面
  • 支持邮件和手机回复
  • 支持留言订阅
  • 提供留言Widgets
  • 和Facebook、Twitter、Flickr、LinkenIn、Delicious互通(我还没搞懂这些功能是怎么一回事,反正我极少使用这些社交形网站)

把DISQUS加到Blooger的经典版里还是挺简单的,到DISQUS注册一个帐号后,登入Admin在Tools选择Generic code,点击reinstall按钮,把代码拷贝到你的模板里就可以了。

唯一问题是,DISQUS不能导入原有的留言,当然你可以把原来的留言留着,但是这样可能会混淆读者。好在《网站开发日志》留言不多,我觉得把它隐藏了,准备留一个开关,这样想看旧留言的朋友还是可以看到。

如果你也在使用经典Blooger,建议也使用DISQUS。如果你在安装上有问题,请留言,记得用新的留言评论系统哦:-)

标签:

2009年7月31日星期五

Wordpress 搬家记录

首先不是我的日志搬家,我的日志还是使用Blogspot。

其实是我公司所属的一个子站,本来挂在主站的服务器上,因为怕子站的访问量会增大而影响到主站,所以要搬到别的服务器上。子站使用Wordpress2.7.1,之前Google了一下别人是怎么做的,有的写的还挺麻烦。但是觉得这个好像挺简单的,所以没有细读,反正就算出了问题还可以从来,等装好了再转DNS就成了。总的来讲这次搬家还是挺顺利,当然也碰到一点问题。下面是步骤,希望对某些人有帮助。

1. 申请空间 (市场部的同事给帮忙做了, 给了我FTP的信息)

2. 把Wordpress文档目录下的文件从当前服务器上拷的本地文件夹(我把文件夹命名为WP,里面含有wp-admin、wp-content, 等等),用的也是FTP(Filezilla)。

3. 使用Filezilla,把WP里的文件上传到新空间的public目录里。(注意:你空间的目录可能有不同的命名)

4. 用phpMyAdmin,把Wordpress的数据库导出(Export), 我用的默认设置,唯一修改的保存文件为'gzipped' (文件名:wordpress.sql.gz)。(如图)

7-31-2009 4-05-33 PM

5. 登入新空间的phpMyAdmin,导入(Import), 用的默认设置,选本地文件:wordpress.sql.gz,导入即可。

6. 在旧的wp-config.php文件里更新数据库信息。(这个是老生常谈了,估计大家都知道)

7. 在没挂上任何域名前,我们租的空间提供预览,输入预览网址,结果出现空白页。但很快就发现了原因,原来文档根目录下有个index.html文件,是开通空间的时候用来测试的,估计这个空间设置了index.html 优先于index.php,而运行index.php时,wordpress把转到 “/”下,出了问题。把index.html重命名为index-bk.html后,搞定!

8. 接下来,发现主页导航有问题:CSS样式没了,可是查了一下发现CSS文件没有丢失。由于无法登入(ssh)服务器查看错误信息,我在index.php文件加入了下面代码,想看看主页运行时有没有报错。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', true);

上传新文件,打开网页结果发现了几个warning信息:

Warning: Cannot modify header information - headers already sent by (output started at ../public/wp-config.php:1) in /home/username/public_html/wp-includes/pluggable.php on line 676

Cannot send session cache limiter - headers already sent (output started at ../public/wp-config.php:1)

上网GOOGLE一下,找到挺多相关问答。问题出在<?php前 或者?>后的空格,也许你用文本编辑器打开看不到空格,注意保存的时候,选择UTF-8 No BOM。另外我发现wp-admin页面打开后也是空白一片,原因相似,只是出现在不同的文件上,我的出在theme文件的function.php里,只要用文本编辑器打开该文件,把多余的空格删除了,再存为UTF-8 NO BOM就可以了。(如下图)

utf-8_NO_BOM

我觉得编码和FTP上传经常会带来一些莫名其妙的问题,搞不懂为什么在原来的服务器上没有这些问题。

9. 最后到域名供应商那里,把DNS修改了(市场部的同事做的),还挺快的半个小时后就生效了。

注意: 上述记录,可能只对我的例子生效,仅供参考,如有问题,欢迎留言。

标签: ,

2009年3月29日星期日

SEO h1 h2 h3

网站开发日志的模板的原版出自Dan Cederholm之手,在好几款Blooger自带模板里,Dan设计的这套叫做TicTac的模板是我最喜欢的。虽然和当前的许多优秀的博客模板(特别是一些Wordpress模板)相比,TicTac或许不是很出众,但是在2004年,它绝对是一流的。我开始玩Blogger大概是在2005年,但是一直都没有坚持下来。去年准备开始认真的写博客时,我重新选择了Blogger,其实那是Blogger的新版本(Layout)已经出来2年了,而且功能上要比经典版本(Classic Template)强大许多,但是新版本不支持FTP。所以我又重新选择了这款经典的TicTac模板。

TicTac original 

事实上,我对TicTac模板做了很多修改,如果你不认真比较,可能看不出来,我的日志模板来自TicTac。或许是因为TicTac是在2005年5月发行的缘故,它并没有考虑SEO。本人对SEO的研究也不多,下面这些说法只是仅供参考:

  • 1. 每个页面只可以有一个h1
  • 2. 日志首页: 日志标题应该用h1,副标题可以使用h2,首页内的文章标题使用h3;如果没有副标题,首页的文章标题使用h2
  • 3. 日志单独文章页:文章标题应该使用h1,相关文章、评论等可以用h2
  • 4. 边侧栏: 标题使用h3

但是原版TicTac,不论那个页面,标签使用都一样:日志标题用h1、文章的发布时间用h2、文章标题用h3、边侧栏标题用h2。今天,我根据自己对SEO的理解,对模板进行了更新。

虽然我不敢肯定模板的更改会给日志的SEO带来多少好处,但是觉得这么改会比较有道理一点。不是吗?

标签:

2009年3月21日星期六

Blogger出现故障

由于某些原因,我把日志从一个帐号转到另外一个帐号。因为两个帐号都是Blooger的帐号,所以整个转换过程还是很顺利的。只需使用Blooger提供的导出/导入功能,按几个确定键就搞定了。之后我对模板进行了更新、还对日志的分类进行了调整。之间进行了多次重新发布,不知道是那个环节有问题,我的博客里出现了许多重复的文章,貌似重新发布的时候,Blooger把一些文章重新命名了。可是Google引擎还是收录旧的链接,当网友访问旧版本的文章并且留言,就会把日志首页变回旧的版本。真是莫名其妙,我想很这可能是Blogger的Bugs。

于是昨天我把旧版本的文章从61dh的服务器移除,我知道这么一来,这些通过搜索引擎来的朋友将无法访问这些旧文章,但是我想过几天Google总会重新修复这些链接的,因此问题应该不会很大。但是没想到,在移除旧文章后,我试了好几次重新发布整个博客,都已失败告终。现在我的日志里好多文章都不见了,还好这些文章都还在Blogger的服务器上,希望过一段时间后重新发布可以解决问题。

其实用Blooger+FTP是非常没有效率的,因为每次对模板进行更新,都要重新发布所有文章。看来,我要尽快改用Wordpress了。

更新:(2/22/2009)

昨天一直都无法上传文件到61dh所在的服务器,就算我用FTP(FileZilla)上传一些很小的文件都不行,老是报错"... 426 data connection closed ...",文件似乎已经被上传,但是文件大小为0字节。昨天晚上给61dh.com的空间供应商打电话,接电话的同志态度很好,问过问题后,就告诉我,他们周末在进行系统维护,可能是中间出了某些问题,让我过20分钟再试试看。不知道具体是什么原因,但是20分钟后,我已经可以用FileZilla上传文件了,于是我又登入Blooger重新发布我的日志,貌似还是不行,因为上传的需要一定时间,所以就没管了、睡觉去了。

早上起来看了Blogger的上传记录,果然昨晚的重新发布还是没有成功,但是这回的错误信息有所不同,大部分都是"...Broken Pipe..."。查了一下blogger的FTP帮助,得知这还是和FTP服务器有关。今天早上又重新发布了一次,终于成功了!

标签:

2009年3月8日星期日

面包屑(Breadcrumb)导航条

breadcrumb

演示和代码

经常访问我网站的朋友一定注意到我更新了网站的导航条。上次的更新是在去年十月份,具体的介绍请看这篇文章日志模板更新。虽然上次更新的时候觉得旧款的导航条还挺漂亮的,但是时间一长我就开始厌烦了。特别是两个星期前,我在网上看到这款苹果风格的面包屑导航条,就深深地爱上了它。今天终于有空把它搬到了自己的网站上。

总的来讲,这款导航条还是比较容易整合到网站上。主要碰到的问题还是浏览器的兼容性问题。原创的版本在IE6下根本是不能用的,可是在访问我网站的朋友里,大约有三分之一还在使用IE6,因此就算我不情愿,我也要把它修改成和IE6兼容。其实在这次IE6下最大的问题是:原创版本用PNG做背景,所以在IE6下原本透明的PNG背景被加上了一层淡淡的蓝色。关于IE6的PNG不透明问题在网上讨论的很多,我尝试过其中一种使用javascript的解决方法,但是效果很差,因此我干脆使用photshop把PNG转换成GIF,虽然转换后的背景图边缘不如PNG的平滑,但是整体效果还行,基本上看不出有什么区别。另外一个问题:在IE6/IE7浏览器里中文导航字在垂直方向不会居中,我没有找到更好的办法,只好给IE特别写了一行CSS样式代码。此外,我还加入了搜索栏,但是碰到类似问题:搜索栏在IE6下垂直方向不居中,因此又给IE6写了一行CSS。最终的效果图如上,如果你非常挑剔,那么你可能还注意到,那个搜索图标在垂直方向稍微有点偏上,这回是Firefox的问题了,它在IE里显示正常。不管了,总之我已经挺满意。希望这回不要过早的喜新厌旧。:-) 下面要介绍如何制作这款导航条。

1.HTML代码:

<ul id="breadcrumb">
  <li><a href="/"><img src="home_blk.gif" alt="Home" class="home" /></a></li>
  <li><a href="/blog" class="chinese">博客</a></li>
  <li><a href="/blog/categories" class="chinese">日志分类</a></li>
  <li><a href="/blog/categories/jquery.html">jQuery</a></li>
  <li><a href="http://feed.feedsky.com/61dev" target="_blank" title="订阅本日志"><img src="rss.gif" alt="订阅本日志" class="home" /></a></li>         
  <li>Search Result</li>        
  <li style="float:right;">          
    <form action="http://www.61dh.com/search" id="cse-search-box">
      <div>
       <input type="hidden" name="cx" value="partner-pub-8060693734982386:qvg7d0-myh2" />
       <input type="hidden" name="cof" value="FORID:11" /> 
       <input type="hidden" name="ie" value="UTF-8" /> 
       <input type="text" name="q" size="31" /> 
       <input class="srch" src="search.gif" type="image"> 
      </div> 
     </form> 
     <script type="text/javascript" src="http://www.google.cn/coop/cse/brand?form=cse-search-box&amp;lang=en"></script>               
    </li>
</ul>

上面的HTML代码没什么特别之处,只是些HTML列表(list)而已。值得注意的是: 当列表内容是图片,使用了CLASS ('home');当列表内容是中文,使用CLASS ('chinese')。此外,因为搜索栏是靠右的,所以其列表使用了CSS 'float:right'。

2. CSS代码

<style type="text/css">
body{font: 12px Arial, Helvetica, sans-serif;}
h1{font-size:22px;}
#breadcrumb{
    background-image:url('bc_bg.gif'); 
    background-repeat:repeat-x;
    height:30px;
    line-height:30px;
    color:#9b9b9b;
    border:solid 1px #cacaca;
    width:100%;
    overflow:hidden;
    margin:0px;
    padding:0px;
}
#breadcrumb li {
    list-style-type:none;
    float:left;
    padding-left:10px;
}
#breadcrumb a{
    height:30px;
    display:inline;
    float:left;
    background-image:url('bc_separator.gif'); 
    background-repeat:no-repeat; 
    background-position:right;
    padding-right: 15px;
    text-decoration: none;
    color:#454545;
}
#breadcrumb a:hover{color:#35acc5;}
.home{border:none;margin: 8px 0px;}
.srch{display:inline; padding:5px 10px 0 0;}
</style>
 <!--[if lt IE 7]>
   <style type="text/css">
     .srch{display:inline; padding:7px 10px 0 0;}
   </style>
<![endif]-->
<!--[if IE]>
   <style type="text/css">
     .chinese{ margin-top:2px;}
   </style>
<![endif]--> 

在原版的CSS上,我给#breadcrumb a, 加入了float:left,这解决了导航条在IE6下的显示问题,另外使用GIF替代PNG,还有一些小调整。最后要提醒注意的是:我给IE6和IE专门定制了CSS,用来解决本文开头提到的浏览器兼容问题。

演示和代码

标签: , ,

2009年1月25日星期日

Happy 牛 Year!

祝大家新年快乐、万事大吉!

☆╭┐┌╮☆°.﹒
╭┘└┘└╮∴°☆°
└┐..┌┘───╮∴°
╭┴──┤HAPPY ├╮
│o o│牛YEAR │●°
╰┬──╯ │ ∴°

标签:

2009年1月1日星期四

新年快乐!

现在是纽约时间11:35分,离2009年只有25分钟不到, 国内的朋友已经提前进入2009年了。衷心的祝愿大家新年快乐!

61dh.com 从8月份开通到现在将近5个月。Alexa 综和排名达到:319765, Google的PageRank也在前几天实现了0的突破。在新的一年里,我会继续发布高质量的有关网站开发的文章,希望61dh在Alexa排名和Google的PageRank上能有新的突破。

最后,我要感谢所有读者的关注和支持。

标签:

2008年12月21日星期日

Windows Live Writer以及其插件

Windows Live Writer是我用来撰写和发布日志的首选工具,其实应该说是唯一的工具。前几天晚上我在使用MacBook,Windows Live Writer不支持Mac OS,上网找了几款适用于Mac OX的博客撰写工具,但是用起来总是不如Windows Live Writer来的爽,而且许多支持Mac OS的博客工具还不是免费的,所以最后还是回到Windows下来写日志。

Windows Live Writer中文版已经出2009版,英文版Live软件包里好像还没有集成最新的Live。登入到http://get.live.cn可以下载到Windows Live软件包,里面含有Live Messenger、Live Writer、Live Mail、Live 照片等非常不错的应用软件。当然,我最关心的是其中的Live Writer,当前版本号是:14.0.8050.1202 zh-cn。

和2008版(Version 12.0.01366.1026) 相比,2009版具有以下改进:

  • 1. ”编辑”、“预览”、“源代码”三个选项被放置在正文输入栏的底部,切换起来要方便许多。
  • 2. 如果你在Live Writer设有多个日志,在新版本的右上角可以对它们进行快速切换,并且我发现查看日志链接也修复了,不像2008版总是把你带到Live Space(即使你加入的是Blogger的日志帐号)。
  • 3. 界面比2008版要简洁漂亮一些。

另外,我觉得Windows Live Writer胜过Mac下的日志撰写工具的最主要的原因是:Live Writer支持并拥有一些优秀的插件。其中我的必备插件有,

1. Dynamic Template Plugin

它可以让你自定义一下常用的模板,从而提高编辑日志的效率。比如,你建立这样一个模板:<code><%= _selection %></code>之后,你就可以鼠标选择一个字段,然后点击预设的模板,选择的字段就被自动加上<code>标签。具体的用法请参考:http://www.joecheng.com/code/DynamicTemplate/

2. Source Code Formatter

它绝对是Windows Live Writer下最好用的代码插入工具,支持多种常用的编程语言,例如:XML、Javascript、PHP、Ruby、Python、Perl、CSS等等。你可以到Amer Gerzic的网站了解更多并且下载到最新版本。

虽然Windows Live Writer是我钟爱的博客工具,但是它也有不足的地方。其实这个不足不只是Windows Live Writer的不足,而是许多微软产品的不足。使用的Firefox的朋友都知道,在Firefox里我们可以完全控制工具栏:我们可以把自己喜欢的、常用的工具,按照自己喜爱的顺序进行编排,基本是爱放那就放那,这点在IE7里就无法做到。同样的问题出现在Windows Live Writer上,它的工具栏是锁定的,新加入的插件被加在“插入”下拉菜单里。虽然你也可以在右边的任务窗格里找到它们,但是如果你的窗口不够大或者你的插件比较多,你常常要花那么一点功夫去找到你要的插件。希望有一天,Windows Live Writer也支持工具栏自定义,这样我们就可以把最常用的插件放在顶部的工具栏,从而快速的使用它们。

标签:

2008年11月22日星期六

三大搜索引擎收录对比

2008年7月31日本站域名注册成功,8月5日我上传了少儿导航站的初稿,www.61dh.com 算是正式开通了。随后几个星期,少儿导航站有了一些升级,但是直到今天还是没有完成我打算完成的。做导航站的历史似乎已经过去了,这是个搜索的年代,随着搜索引擎的不断完善,我们已经很容易通过搜索找到自己想要的 - 准确而又快速。但是目前定制搜索还不健全,就比如百度的少儿搜索,它并没有过滤掉太多的成人内容, 用它来搜索少儿信息,仍然会蹦出许多成人的网站。因此,少儿导航站的初衷是给孩子打造一个健康的绿色的上网入口,希望有一天,它可以成为各个中小学电脑的首页。可以由于最近比较忙,一直抽不出时间来更新导航站的内容,少儿导航站的口号是 - 少儿上网从这里开始!但是要真正做到这一步,路还很长。

网站刚刚开通后的前几周里,几乎就没人访问网站,我知道这很正常的事。茫茫网海,谁会注意这个不知名的网站 - 除了搜索引擎和我 :-) 到了8月23日,Google和Yahoo都收录了61导航站,8月27日,百度也收录了61导航网站。但是都只有收录网站的首页。在8月25日,我开通了网站开发日志,用来记录网站开发的点点滴滴,还有一个目的就是想通过经常的更新日志,发表原创内容,来“吸引”搜索引擎“光顾”我的网站,从而让更多人通过认识网站开发日志来认识61dh.com。

可能是因为我的博客是用的Google的blogger,并且加入了Google的自定义搜索,很快的网站开发日志就开始被Google收录了。从8月29日开始,Google的搜索爬爬虫几乎每天都光顾我的网站,尽管不是每次爬爬虫都会增加收录页数,相反有时候收录页数还变少了。截止今天(11/23),61dh.com在Google里已经有165条收录了。

而国内的主要搜索引擎-百度,就远不如Google的勤快,从8/27开始的第一条,到了9/18才有了第二次更新。接下来,一般是一星期爬一次,一般在星期三。不过上周情况有所变化,11月11号、12号、13号、15号,竟然一个星期爬了4次,令人吃惊啊!可是好景不长,这个星期它就爬了一次,而且是在周一(11/17),就连每周必爬日(周三)都取消了。此外,百度似乎不喜欢我的网站内容,到目前为止才收录了46条。

曾经的搜索巨人-Yahoo对我的网站收录情况同百度和Google相比大有不同。首先,它在8月23日收录我的网站之后,沉寂两个月多都没光顾我的网站,我以为Yahoo不做搜索了.:-) 但是让我欣慰的是Yahoo在10月28日又一次拜访了我的网站,并且在那之后,几乎每天都会爬一次我的网站,到现在为止只落下两天。虽然Yahoo对我的网站收录数目不如Google的多,但是和百度相比却是后来居上,遥遥领先。截止今天(11/23),已经收录了87条。

下面是61dh.com与三大搜索引擎关联对比表

  百度 Google 雅虎
第一次收录时间 2008-8-28 2008-8-23 2008-8-23
第二次收录时间 2008-9-18 2008-8-29 2008-10-28
至今最高收录数 46条 @11-17 173条 @11-22 87条 @11-23
目前收录数(11-23) 46 165 87
来自搜索引擎的访问量 55.3% 43.8% 0.1%

从上表数据来看,百度仍然是中文搜索的老大,虽然它对61dh.com的收录最少,但是61dh.com来自它的访问量却是最多的。

标签: ,

2008年11月15日星期六

Addthis 收藏按钮的更新

昨天更新了网站的模板,增加了日志分类功能。更新后发现Addthis收藏按钮出现问题:虽然我在博客首页的每一个帖子后面都加入收藏按钮,但是不论你按那一个,它总是识别该页的最后一个帖子。开始还以为是更新惹得祸,但是仔细检查了模板代码,并没有发现任何错误。心想前几天还用的好好的,是不是AddThis把这个功能关闭了。早上在Addthis的留言板上留言,中午的时候就得到了他们的答复。原来是他们最近的一次软件升级造成这个功能失灵,并且他们会在下午加紧修复这个bug。下面是Email原文:

Adam,
You are right.  The version of the button you’re using was just updated and it broke this use case.  We will push a fix later today.
Sorry for the inconvenience.
Stewart

果然,下午我又收到了Stewart的来信,那个Bug已经修复了、收藏功能恢复正常。在Email里Stewart还谈到他们已经在做Addthis本地化,目前已经可以支持18种语言,其中包括中文。虽然他们还没有更新网站上的帮助文件,但是我被告知可以通过自定义变量来支持其他语言,例如我在变量里加入addthis_language='zh'之后,已经可以看到中文显示了。

从这件事里,我再一次感受到美国人认真的工作态度和优良的服务品质。

注: Addthis提供世界第一的书签分享按扭,该公司已经被Clearspring收购。只是Addthis目前还不支持国内的书签收藏网站,例如QQ书签、百度收藏等。我已经向他们提出反馈,希望不久的将来可以看到这些按钮被收录。

标签:

2008年11月14日星期五

利用美味书签创建日志分类

经过几天的努力,终于把日志分类做好了。Blogger是一个优秀的日志播报引擎,但是和我一样在使用它的FTP功能来发布日志的朋友,一定都有这样的烦恼 - Blogger的传统模板没有日志分类(也称作标签)功能。我们都知道日志分类的功能是很有用的,它会帮助读者更好的找到需要的帖子。因此在我还没有切换到WordPress之前,我准备自己做一个。最初的想法是通过博客的Feed来创建分类标签,但是发现Blogger只给我的博客Feed(供稿)提供20个帖子。这样一来,我就需要经常的备份旧的供稿,以便得到完整的帖子分类。

前几天给本博客增加了Add this - 收藏博客帖子的快捷方式,其中有一个快速把帖子链接加入美味书签的功能。因为目前日志的帖子数不多,所以通过这个AddThis按钮,我很快就把所有帖子都加到了我的美味书签。不试不知道,美味书签真不愧是当今第一网络书签。它提供丰富的功能和接口,很容易我就把美味书签提供的“云标签”添加到我的博客。代码如下,你可以把它加入你的网站,这样就很容易接入本博客的每一个帖子。

  <!--start delicious -->  
  <script type="text/javascript" 
   src="http://feeds.delicious.com/v2/js/tags/61dh?
        title=%E7%BE%8E%E5%91%B3%E4%B9%A6%E7%AD%BE
        &count=100&sort=alpha&flow=cloud&color=999-777&size=12-30">
  </script>  
  <!-- end delicious -->

除了“云标签”,美味书签还给网站开发者提供许多有用的工具,其中有一个由第三方开发者开发的PHP美味书签API,phpdelicious,就相当的好用,我就是利用它创建了日志分类。具体的过程如下:

1. 到phpdelicious网站下载库文件

2. 通过库文件提供的方法(methods),先导出帖子标签,然后再把对应的帖子找出来。示例代码如下:

<?php
   require('/home/dcai/61dh/library/php-delicious.inc.php');
   require('py.php');//这个用来把中文字符转换成拼音的,在我的上一个帖子里有介绍
   define('DELICIOUS_USER', '你的美味书签用户名');
   define('DELICIOUS_PASS', '密码');   
   $oDelicious = new PhpDelicious(DELICIOUS_USER, DELICIOUS_PASS);
   $tags = $oDelicious->GetAllTags(); //导出所有标签
   $aPosts = $oDelicious->GetAllPosts(); //导出所有帖子
   foreach ($tags as $tag){
?>
   <h3 class="post-title"><?=$tag['tag'] ?></h3>
<?php
     foreach($aPosts as $aPost) {
       if(in_array($tag['tag'], $aPost['tags'])){
?>
     <a href="<?=$aPost['url'] ?>"><?=$aPost['desc'] ?></a>
<?php
       }
     }
   }
?>
最后,使用PHP代码在本地产生HTML文件,然后用FTP上传到网站服务器,这个过程将用Linux的Cron自动完成。另外我还应用jQuery的Popin插件制作了对应标签帖子的覆盖层(overlay)展示。具体方法和步骤将会在以后的帖子里详述。

标签: ,

2008年11月10日星期一

Add this - 收藏博客帖子的快捷方式

为了方便读者收藏我的帖子,我在每个帖子后加入了Add This下拉按钮,它支持多种流行的书签网站,像delicious、google书签、yahoo书签;而且也支持社交网站,像facebook、myspace;此外还支持digg类网站,还有很多很多。唯一的缺点是它没有中文支持,所以对于国内用户,可能用起来会不大习惯。但是至少你将很容易通过这个按钮把我的帖子加到你的浏览器的收藏夹 - “在下拉菜单里选择Favorite > 按确认即可。”另外在博客里加入这个功能也相当简单。如果你也想在你的博客里加入收藏按钮,可以按照下列步骤完成:

1. 到Add This申请一个帐号,根据需要定制收藏按钮代码,你可以选择按钮的外观(which look?),还可以选择在那里加入这个按钮(Where do you want to put the button?),你可以把按钮加入一般网站、博客、myspace、Ezine或者newspaper。代码示例如下:

<!-- AddThis Button for Post BEGIN -->
<div>
  <script type='text/javascript'>addthis_url='<data:post.url/>'; 
  addthis_title='<data:post.title/>'; 
  addthis_pub='61dh';</script>
  <script src='http://s7.addthis.com/js/addthis_widget.php?v=12'
    type='text/javascript'></script>
</div>
<!-- AddThis Button for Post END -->

2. 把代码加入日志模板,放在帖子的页脚区(post-footer)

注意:以上步骤是适用于Blogger模板日志引擎,如果你用的是其它日志引擎或者想直接用到你的网站上,那么你应该根据实际情况稍作修改。

11/14/08 - 补充:Addthis得知,他们已经可以支持多国语言了。比如要显示中文,可以把上述代码修改为:

<script type='text/javascript'>
addthis_url='http://www.61dh.com/blog/categories'; 
addthis_title='网站开发日志-分类';
addthis_language="zh"; //定义语言
addthis_brand="61dh.com";//定义下来菜单右上角的品牌
</script>

标签: ,

2008年11月8日星期六

Blogger 创建可扩展的帖子摘要?

我的博客引擎用的是Google的Blogger。默认下,Blogger不提供可扩展的帖子摘要。帖子摘要“可以选择显示自帖子开头截至帖子任意处的一小段文字,作为一个引子,引起读者对全文的好奇心。如果用户要阅读帖子的余下部分,可以点击链接查看全文。如果您需要在某一页安排很多长文章,利用这一方法就会非常方便。”通过Blogger的帮助,我找到了创建可扩展的帖子摘要的方法。实现该功能需要三个部分:在模板加入条件CSS、在模板里加入“阅读全文”的链接、对使用该功能的帖子进行修改。

1. 在模板加入条件CSS

布局模板不适用于FTP类型的服务器,我博客使用的传统模板。传统模板支持的条件标记有:

  • 选择主页面,包括首页和标签页:<MainPage></MainPage>
  • 选择存档页:<ArchivePage></ArchivePage>
  • 选择帖子页:<ItemPage></ItemPage>
  • 选择主页面和存档页:<MainOrArchivePage></MainOrArchivePage>

因为我只希望对主页面使用帖子摘要,对于单独的帖子将显示完整的帖子,所以我在head间加入以下条件css:

<Main> 
   span.fullpost {display:none;}
</Main
<ItemPage> 
   span.fullpost {display:inline;} 
</ItemPage>

2. 在模板里加入“阅读全文”的链接

我把它加在<$BlogItemBody$>之后,如下:

<div class="post-body">
  <$BlogItemBody$>
    <div style="margin-top: -25px; padding:0; float: right;">
      <span class="backhome">
        <a href="<$BlogItemPermalinkURL$>" target="_blank">...阅读全文</a>
      </span>
    </div>   
</div>

3. 对使用该功能的帖子进行修改

这是个比较繁琐的过程,因为它需要对每个帖子都进行修改,我已经发布了49个帖子,如果想让它们都有这个功能,我需要对每个帖子中需要隐藏的部分都加上如下代码:

这是帖子的摘要。<span class="fullpost">这是它的其余部分。</span>

其实这种方法还有一个缺陷,它只是把帖子的其他部分隐藏了,当这些页面在浏览器里显示,隐藏的内容仍然要加载。我的博客是一个月存档一次,因此存档页通常含有很多的帖子,再加上许多帖子的内容都很长,就会造成页面体积过大,就算我采用了这种隐藏的方法,它仍然需要占用很大的带宽。为了避免这个问题,我决定在存档页只显示标题,读者可以通过点击标题进入对应的帖子页面。实现这一功能的方法很简单:只要使用上面提到的条件标记,在模板中只对主页面和帖子页显示“post-body”就可以了,代码如下:

<ItemPage> 
  <div class="post-body">
    <$BlogItemBody$>
  </div>
</ItemPage>
<MainPage> 
  <div class="post-body">
    <$BlogItemBody$>
    <div style="margin-top: -25px; padding:0; float: right;">
      <span class="backhome">
        <a href="<$BlogItemPermalinkURL$>">...阅读全文</a>
      </span>
    </div>   
  </div>
</MainPage>

标签: , ,

2008年10月27日星期一

日志模板更新

这次的更新主要是针对模板的顶头部分(header), 原来的header是套用61dh.com的header。因为觉得那张一群孩子玩耍的图片放在少儿导航上还不错,但是放在网站开发日志上显得有些幼稚。所以就把它改成现在的深灰色背景,是不是稳重了许多? :-)

此外还更新导航条。我在以前的日志里介绍过原先的那款CSS 导航菜单, 它用的是改变背景图位置(background-position)的方法来实现鼠标划过图层变化的效果。为了和新的header匹配,我重新设计了一个简洁的导航条。新的导航条不是对单个<li>使用背景图,而是对<ul>使用背景图。另外也少了原来的鼠标滑过改变图层的效果。但是背景图仍然可以根据实际<ul>的宽度的改变而改变。

CSS 代码:

#main-tabs {
  margin-top: -2px; /*设为负数的目的是和header的下边框融合*/
  float:left;
  width:600px;
  height:30px;
  font-size:100%;
  line-height:normal;
  }
#main-tabs ul {
  background:url("/images/tabl4.gif") left bottom repeat-x;
  float: left; /* 这个很重要*/
  height:25px;	
  margin:0 0 0 30px;
  padding:5px 10px 0 10px;
  list-style:none;
  }
#main-tabs li {
  display:inline;
  margin:0;
  padding:0;
  }
#main-tabs a {
  float:left;
  margin:0;
  padding:0 0 0 10px;
  text-decoration:none;
  }
#main-tabs a span {
  color:#FFF;
  }
.navR {
  background:url("/images/tabr4.gif") right bottom no-repeat;
  float:left;
  width:10px;
  display:block;
  height:30px;
  }

HTML 代码:

<div id="main-tabs">
  <ul>    
    <li><a href="/">少儿上网导航</a></li> 
    <li><a href="/blog">网站开发</a></li>
    <li><a href="http://english.61dh.com">英语学习</a></li>
  </ul>
  <span class="navR"></span> <!--用加入背景图的右边部分-->
</div> 

标签: , ,

2008年10月6日星期一

IE打开网页出现空白

前一段时间,用Windows XP里的IE7打开我的主页www.61dh.com是发生了一件“怪事”:页面一片空白,连个错误信息也没有。右键点击,发现整个html代码数据已经下载下来了。折腾了几下,发现只要把"字符编码"手动改"utf-8"就可以显示了。到google搜索一下,找到解决方法了,为了方便自己也方便别人就把解决方法贴出来!

Google上搜索的解决方法 (注:我用Window Vista里IE7可以正常显示)


在windows操作系统上使用IE作为浏览器时。常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动侦测(即没有设定“自动选择”编码格式时)该页面所用的编码。即使网页已经声明过编码格式:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

,由此造成某些含有中文UTF-8编码的页面产生空白输出。

如果使用的是Mozilla、Mozilla Firefox、Sarafi的浏览器这不会造成这个问题。这是由于IE解析网页编码时以HTML内的标签优先,而后才是HTTP header内的讯息;而Mozilla系列的浏览器则刚刚相反。

由于UTF-8为3个字节表示一个汉字,而普通的GB2312或BIG5是两个。页面输出时,由于上述原因,使浏览器解析、输出<title></title>的内容时,如果在</title>前有奇数个全角字符时,IE把UTF-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字,导致IE无法读完<title>部分,使整个页面为空百输出。而这个时候如果察看源文件的话,会发现实际上整个叶面全部已经输出了。

因此最简单的解决办法是再网页文件的<head></head>标签中一定要把字符定义<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 放在<title></title>之前。

标签: , ,

2008年9月15日星期一

国外的免费空间

上周在网上看到一些免费空间的介绍:无广告;支持PHP, MYSQL, CGI; FTP上传;空间容量大(上G); 月流量高。总而言之,比我现在用的这个空间要好多了。:-)

于是就试着申请了两个:Lead Hoster 和 110mb

Lead Hoster 110mb

250MB Disk Space
6GB Traffic
2 Domains Hosting
1 MySQL Databases
5 Emails
FTP Access
PHP Support
Perl Support
Web File Manager
File size limit 500 KB

5GB Disk Space
300GB Traffic
1 Domains Hosting
No MySQL Databases
Emails (好像没有)
FTP Access
PHP Support
No Perl Support
Web File Manager
size limit 8 MB

其中Lead Hoster 一申请就开通了;LeadHoster 等了一天也收到了确认信。相比之下,Lead Hoster可用资源小了点,但是别的功能还是挺齐全的。110mb可以资源大,特别是他的FTP上传飞快。

遗憾的是两个免费空间国内都不能访问!

标签:

2008年9月12日星期五

网站宕机

从早上开始就无法访问我的网站:www.61dh.com,打电话也没人接,CNCOMPANY(中华企业网)的售后服务真的很一般。如果是服务器维修什么的,给大家发封信也好啊。从8月份开通到现在已经宕机两次了,前一次恢复的快一点,但是这一次足足等了12个小时。还好我的网站目前没什么人访问,而且国内是夜里,所以没什么大的影响。

标签:

2008年9月10日星期三

不能发布文章了

不能发布文章了! FTP超时...

更新:今天发现昨天没有上传成功的两篇文章,显示在博客上了。看来Google把我的发布做了缓存,在网络通畅的时候,继续FTP到服务器了。

标签:

日志要多久才可以被Google的搜索引擎收录

因为我的博客是用的Google的Blogger发布的,所以前一段时间发布的文章几乎是同步被Google收录。另外我的站内搜索用的也是Google的Custom Search,这么一来,站内搜索也可实时搜索我的网站了。可以这两天发现,Google的搜索引擎不会实时收录我的发布的日志了。我最新文章是9/8发布的,可是站内搜索最后更新是在9/7。

有没有可能,我在9/8发布的文章代码太多,文字太少了?

看看这篇可不可以被收录。

更新:今天好像一切正常了!:-)

标签:

2008年9月7日星期日

Google 站内搜索

少儿导航(www.61dh.com)网站开发日志里的文章渐渐多了,于是想着加个站内搜索。谈到搜索,Google是老大,很自然就想到了Google。

Google提供免费的自定义搜索引擎,刚刚用它给www.61dh.com创建了站内搜索。Google(谷歌)提供的这个工具真是非常不错!而且使用起来非常简单。

  1. 点击这个链接:http://www.google.com/coop/cse/?hl=zh-CN
  2. 点击 '创建自定义搜索引擎' 按钮 (你必须有Google账户,如果没有,你可以免费申请一个)
  3. 登入自定义搜索后,输入相关信息来设置你的搜索引擎。
  4. 点击下一页,你就可以试用建好的搜索引擎了。
  5. 接下来,点击"完成"即可转到您的"我的搜索引擎"页,您可以在它新的 Google 主页上使用您的搜索引擎,或使用其控制面板以下列方式对其进一步进行自定义:
    • 包含更多网站
    • 更改外观
    • 注册、赚钱
    • 邀请其他人参与
    • 创建搜索优化
  6. Google的自定义搜索提供的功能挺多的。当你完成前面的步骤,你将会得到一个挂在Google的自定义搜索页面,就像我的这个:http://www.google.com/coop/cse?cx=016393313139407949218%3Al72g0rvahmi&hl=zh-CN。 如果你想把搜索整合到自己的网站,在"控制面板"的"代码"选项里,可以得到相应的代码。关于搜索结果Google提供了三个选项:
    1. 在 Google 网页上托管此搜索结果
    2. iframe – 需要两个网页:一个网页提供搜索框,另一个提供结果
    3. 覆盖 – 需要一页,但以覆盖模式提供结果 (使用ajax)
  7. 我选择了第三种,使用方法很简单,把产生的代码放入HTML里就可以了。就像右上角那个搜索栏,试试效果如何吧。 :-)

标签:

2008年9月2日星期二

Windows Live Writer

用Live Writer好几天了,简单好用。唯一遇到的问题是写好的文章在本地预览时好好的,但是发布到Blogger后,段落之间的距离被拉大了很多。开始以为是Writer的问题,仔细检查了源代码,发现在博客里显示的代码,段落和段落间被加入了<br> (也就是断行),但是在Writer这端的源码里并没有加入<br>。

上网Google了一下,终于找到了答案。原来Blogger软件自动加入的。解决方法很简单:登入Blogger 到(设置 > 格式设定)页面,里面有个选项‘转换断行’选择‘否’即可。一下是这个选项的解释:

如果选中“是”,则在帖子编辑器中输入的单个硬回车在您的博客中会替换成单个 <br /> 标记,双硬回车则会替换成两个标记(<br /><br />)。

标签:

2008年8月25日星期一

Blogger plus Windows Live Writer

<?php
echo "在博客里显示代码";
?>
61导航(http://www.61dh.com/)挂在‘简陋的’的服务器上,为了省钱,没有买数据库。这几天一直在找一种适合的方法 --可以这个小小的网站上开个博客 -- 用来记录一些与网站开发相关的东西。

Wordpress 本来是一个很好的选择,但是它需要mySQL支持。此外我还试了一些用PHP写的,用纯文本代替数据库的Blog软件,像cutePHP 和 PHPslash,但是总觉得这些产品不过成熟。

最后选择了大名鼎鼎的Blogger,之前就用过这Google旗下的Blog工具觉得非常的不错,而且它支持FTP publishing,这样就可以把在整个博客搬到61dh的所在服务器。值得一提的是,目前新版的Blogger不支持FTP,但是我觉得旧版的功能已经挺齐全了(特别是支持标签)而且我想我还可以在61dh的服务器上通过Javascripts和PHP给博客加些新功能

因为这个博客将来主要用来记录一些与网站开发相关的东西,所以显示代码是一定免不了的了。Blogger Web-based的编辑工具不支持直接输入代码,幸运的是我找到了Windows Live Writer, 它不仅支持多种主流的博客软件(mySpace, Blogger, MovableType),而且可以提供很多Plug-in下载,本文的开头就是用Source Code Formatter Plug-in 加入的PHP代码。

下一步,是修改博客的模板。

标签:

六一导航 网站开发日志

日志引擎来自Google Blogger。

标签: