博客园随笔导出CHM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博客园随笔导出CHM相关的知识,希望对你有一定的参考价值。

有过几段时间特别希望能把自己在博客园发布的随笔整理成PDF或CHM之类的电子档。试用了豆约翰博客备份专家、瑞祥博客备份工具、BlogDown、Blog_Backup等备份工具,给我的感觉都不怎样,对于非注册版本导出有限制,而且导出的样式真心觉得丑!
最近在博客园看到使用CHM文档 采集随笔(续),扒拉下来稍微修改后还真可以使用~.~
先看导出的CHM效果图
技术分享 
主要修改的部分:
1、博客园随笔从2013-06-17起(翻看别人的随笔推测的时间点),随笔路径从http://www.cnblogs.com/userId/archive/…调整到http://www.cnblogs.com/userId/p/…,因此源代码中随笔路径需修改。Program.cs->string archive
2、随笔页面底部增加发布时间——G绿框部分;随笔目录页面底部增加生成CHM的时间。Program.cs->channelPubDate、temChild.html->class="postDesc"
3、随笔页面顶部博文标题——B1蓝框部分,链接修改在浏览器新窗口打开当前博文;随笔页面底部——B2蓝框部分,链接修改在浏览器新窗口打开作者博客园首页。temChild.html->class="postTitle"、temChild.html->class="postDesc"、Program.cs->channelLink
4、目录分类和分类下的随笔按照采集顺序排列——R红框部分。之前下载的随笔以1.html、2.html、3.html…这样保存,在工具类别的随笔是91.html、92.html、93.html…105.html,通过Directory.GetFiles(path)变成了100.html、101.html、102.html…105.html、91.html、92.html、93.html…99.html。修改本地随笔起始值为10001.html,分类目录参考添加101起始前缀,编译CHM取目录名称时Remove中间三个数字。Program.cs->fileIndex、Program.cs->cateIndex、ChmHelp.cs->string dirname in strDirectories
存在问题:
1、能否整合从archive和p目录下查找随笔,这样就不会出现2013-06-17临界点问题
2、对博客园的备份CNBlogs_BlogBackup_1_xxxx_xxxx.xml支持不好,同一个UserId,备份周期短的正常生成CHM;备份周期长的异常退出。由于前面第4步的修改,编译CHM目录名称进行Remove,导致目录名称不全。因此建议在ChmHelp.cs中对Directory.GetFiles(path)、Directory.GetDirectories(path)进行排序
3、对部分博客皮肤支持不好,同一个UserId使用SimpleBlue可以导出,换成Minyx2_Lite就获取不到
源代码归原作者所有,我只是小打小闹(本人不懂C#,程序有BUG问我也不懂)。修改后的源代码奉上,再次感谢原作者!有兴趣的可以继续完善,适合自己的才是最好的!

以上是关于博客园随笔导出CHM的主要内容,如果未能解决你的问题,请参考以下文章

博客园自动显示随笔标签

第一篇随笔__原创

博客园美化首页随笔展示美化

我的第一篇博客园随笔

如何在博客园随笔中增加章节导航

博客园随笔中添加目录导航悬浮框