存档

‘micolog’ 分类的存档

Micolog添加自定义模块

2010年10月23日 sigma 14 条评论 33,805 views

有时,我们的博客需要经常更新一些模块的内容,如广告栏,以及一些其他不同的人设置不一样的工具。为了方便管理,这些模块最好都要移到后台,这样就可以经常更改模块内容而不用更改博客源码重新上传。之前,我在colin-young的博客上看到了一篇如何后台管理侧边栏模块的文章,受此启发,我想也可以把任何位置的模块都实现后台管理,经过尝试发现可行,具体效果直接看本文的中间和下面,左边的广告条以及aboutme就行了。在此简述一下实现方法(和colin-young的方法几乎一样,只是将其推广了)。

  • 在“\micolog\model.py”搜索“blognotice=db.TextProperty(default=”)”,在其后加入:
     YouModelName=db.TextProperty(default='') 
  • 在“\micolog\views\admin\setup.html”搜索“blog.blognotice”,在30行处关于设置blognotice的代码,仿照其语法,添加如下代码:
    <tr valign="top">
    <th scope="row">{% trans "YouModelName:"%}</th>
    <td><textarea id="YouModelName" style="width:95%" cols="45" rows="2" name="YouModelName">{{blog.YouModelName|escape}}</textarea>
    </td>
    </tr> 

    继续搜索blognotice,大概170行有如下代码

    <input value="title,subtitle,...,default_link_format,blognotice" type="hidden" name="str_options" />

    在blognotice附近添加你的模块名

  • 在需要调用该模块的地方,如sidebar.html,single.html等模板文件中,加入调用代码:
    <div id="YouModelName" class="widget widget_YouModelName">
    <h3>YouModelName</h3>
    <ul>
    {{blog.YouModelName}}
    </ul>
    </div>
  • 上传部署,在后台即可以看到模块设置了,支持任何html标签(注意,不能够转义,默认的blognotice转义了,即上面那步为{{blog.YouModelName}}而不是{{blog.YouModelName|escape}})

Done & enjoy~

feed终于正常工作了

2010年10月16日 sigma 2 条评论 18,021 views

之前,我的博客的feed在google reader能够正常显示,但是,我尝试在校内和live space导入时却总是失败。

仔细对比了我的feed页和一些其他网站的feed页,发现我的feed页有一个标签和其他feed页不同,其他的都是<item>,而我的却是<entry>,感觉应该是我的网站的生成feed页面的python程序有问题。

今天又是周末,有点空,于是想把这问题解决一下,于是去看了micolog官网看了一下,发现micolog竟然release了,于是想更新下我的micolog主程序。

下完release版的micolog,才想到,为了定制我自己的页面,我的micolog程序已被我改的面目全非了,因此,为了让更新后的页面效果和原来一样,必须将官方版的micolog和我自己的修改版进行merge。

本来想用svn进行merge的,但感觉没那个必要,只需要有文件夹比较以及文件比较的编辑器即可以用来merge,于是在放搜狗文件夹比较工具,发现下面一个叫Beyond Compare的工具比较好,于是下了下来并花了大约半个小时进行merge。

merge完后,用GAE进行上传,但发现貌似micolog工具不正常,表现为有的页面打不开,寻思再三,感觉是有的文件没有上传的原因。于是想,为什么会出现目录下的文件没上传,最后猜测应该是GAE可能是根据修改日期判断文件的新旧的,于是,我把merge后的文件夹所有文件的修改日期都进行了批量修改,改到最新,改完后,再上传,发现,It works!

测试feed,出现了&lt item &gt,并尝试日志的导入导出,发现这次正常了,哈~

最后,顺便测试下一个别人刚发给我的windows live writer的插件-InsertPhotsoFromAlbum(下面图片是从SkyDrive相册插入的,测试用)

分类: micolog 标签: , ,

适用于micolog的windows live writer语法高亮插件

2010年10月6日 sigma 1 条评论 11,957 views

对于我等码农来说,在博客上贴代码是家常便饭,为了让代码更好看,代码高亮是必须的,作为离线博客最常用工具,windows live writer这方面的插件有不少,但很遗憾的是,我在网上花了九牛二虎之力,也没搜到适合我的博客平台micolog的语法高亮插件。

既然放搜狗不行,那只好自己动手,丰衣足食。于是我找了个适用于wordpress的语法高亮插件,将其更改了下,貌似原来的名字叫做HiLi,现在已经既不清了,原网址也记不清了,貌似是下网址的主人写的:

http://www.badder.cn/

我主要对代码进行了如下改动:

1. 对micolog和wordpress的高亮插件的语法进行了比较分析,从而对高亮语法的头的生成代码进行了更改,从而使值适用于micolog。

2. 对html一些特殊字符进行了自动替换,如”>”替换成”&gt”,使高亮后的代码末尾不会出现类似”<stdio.h>”的多余代码。

3. 增加了对某些行进行高亮的功能,这个功能对于比较长的代码中需要强调某行代码是很有用的。

完成后的软件界面如下:

image

下面是上面这段代码的高亮结果:

  using namespace std;

int main()
{
  cout << "test"<<endl;
}
 

下载地址:

编译好的dll:
源码:

使用方法:把dll考入windows live writer 插件目录(默认是C:\Program Files\Windows Live\Writer\Plugins)即可.

enjoy~

btw:问一个在windows live writer上发micolog日志的问题

我用wlw发日志的时候,发现其slug无效,感觉是slug没被传输,有人碰到类似问题并且找到了解决方案吗?有的话在留言里告诉我,谢谢~

为博客添加分享按钮

2010年9月24日 sigma 2 条评论 4,901 views

有时,我们想为独立博客添加一个类似于分享到的按钮,以便分享到各种SNS网站添加人气。虽然,现在网上提供这种插件的网站,如addthisonjiathis等,但是,这些网站都是商业网站,为了流量,分享时会跳到上述网站,比较不爽。因此,求人不如求己,自己动手,丰衣足食,于是我搜了一下,看网上有没类似的代码,于是得到下述地址:

http://blog.csdn.net/skymountain/archive/2010/06/25/5694697.aspx

但是,我试用上述代码,发现在我micolog系统里没效,几番更改代码,终于出现了分享按钮图标,但是除图标外,还有一堆文字,看着不美观。于是,我再对代码进行修理,最终得到如下代码,其效果见本文标题下面:

 function ShareCode(server_url, server_icon_url,text){
    var title = encodeURIComponent(document.title.substring(0,76));
    var url = encodeURIComponent(location.href);
    server_url = server_url.replace("{title}",title);
    server_url = server_url.replace("{url}",url);

    return "<a href=\"javascript:window.open(\'"
    + server_url
    +"'); void 0\" title =\"" + text + "\"><IMG alt="
    + text + " src=\""
    + server_icon_url
    + "\"><\/a>"
}
function WriteSNS()
{
    document.writeln(ShareCode("http://share.renren.com/share/buttonshare.do?title={title}&link={url}",
    "http://s.xnimg.cn/favicon-rr.ico?ver=2",
    "Share to Renren"));

    document.writeln(ShareCode("http://www.kaixin001.com/repaste/share.php?rtitle={title}&rurl={url}",
    "http://www.kaixin001.com/favicon.ico",
    "Share to Kaixin"));

    document.writeln(ShareCode("http://v.t.sina.com.cn/share/share.php?title={title}&url={url}",
    "http://t.sina.com.cn/favicon.ico",
    "Share to SinaMicroblog"));

    document.writeln(ShareCode("http://www.douban.com/recommend/?url={url}&title={title}",
    "http://t.douban.com/favicon.ico",
    "Recomend to Douban"));

    document.writeln(ShareCode("http://apps.hi.baidu.com/share/?title={title}&url={url}",
    "http://www.baidu.com/favicon.ico",
    "Forword to BaiduHi"));

}
 

相比于原作者的代码,我做了以下改动:第一,设置分享打开页面为浏览器默认设置,而不会跳转到新的窗口;第二,对打开参数进行精简;第三,删除了按钮旁的文字进行,更加美观;第四,函数不是封装成div,这样可以更方便的贴到某一行内。

使用方法也很简单,在页面的任何一处假如js引用代码:

 <script type="text/javascript" src="/share.js"></script> 

在需要插入分享按钮的地方加入js函数调用代码即可:

 <script type="text/javascript">WriteSNS();</script>

无觅相关文章插件,快速提升流量