使用CHM文档 阅读随笔
2013-05-18 21:43
225 查看
原文 /article/5277637.html
博客园的文章,如果不设置在首页显示的话,个人觉得查看起来不是很方便。想到自己曾做了一个数据库CHM文档生成工具,于是,不管是随笔,还是文章,能否也通过CHM文档的形式查看呢。想到这里,我的需求就产生了。
到这里基本上就已经完成了,但是有一点需要改进。博客中插入的图片,是url地址,如果阅读该chm文件时,电脑没有联网,此时是影响阅读的。此时我们的工作就应该是下载博客正文所使用的图片,存储到本地,编译到CHM文件中。
4.首先提取博客正文的url链接,并下载图片。图片分两种,手动插入的图片和博客园显示代码时使用的图片(展开代码,折叠代码,复制代码的图标),前者下载时需防止图片命名重复导致覆盖,后者如果已经下载,则无需重复下载。下载成功后,对博客正文进行替换,将引用图片的url链接替换成本地的相对途径。
到这里,基本上全部完成了。
程序使用的模版文件,全在content文件夹下,如果有朋友使用到自定义css,可以手动的更改模版。
以啊汉的博客为例,示例文档下载,效果图预览:
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
感谢阅读,希望这篇文章能给你带来帮助!
背景
我们在开发的过程中,常常都会想记录下来一些东西,可以成文的,则以随笔的形式发布,那些不能成文的,例如某bug的解决方案,或者开发中的注意事项,甚至是某个SQL语句,以只言片语的形式记录在文章、日记里,这样,自己就能在不同的设备、终端上查看自己记录的东西。博客园的文章,如果不设置在首页显示的话,个人觉得查看起来不是很方便。想到自己曾做了一个数据库CHM文档生成工具,于是,不管是随笔,还是文章,能否也通过CHM文档的形式查看呢。想到这里,我的需求就产生了。
效果预览
//编译CHM文档 ChmHelp chm = new ChmHelp(); chm.RootPath = ".//cnblogs"; chm.ChmFileName =Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop ),channel.title+".chm"); chm.DefaultPage = "博文目录.html"; chm.Title = channel.title; chm.Compile();
到这里基本上就已经完成了,但是有一点需要改进。博客中插入的图片,是url地址,如果阅读该chm文件时,电脑没有联网,此时是影响阅读的。此时我们的工作就应该是下载博客正文所使用的图片,存储到本地,编译到CHM文件中。
4.首先提取博客正文的url链接,并下载图片。图片分两种,手动插入的图片和博客园显示代码时使用的图片(展开代码,折叠代码,复制代码的图标),前者下载时需防止图片命名重复导致覆盖,后者如果已经下载,则无需重复下载。下载成功后,对博客正文进行替换,将引用图片的url链接替换成本地的相对途径。
/// <summary> /// 提取网页文件中的图片链接 /// </summary> /// <param name="sHtmlText">html</param> /// <returns></returns> public static string[] GetHtmlImageUrls(string sHtmlText) { // 定义正则表达式用来匹配 img 标签 Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase); // 搜索匹配的字符串 MatchCollection matches = regImg.Matches(sHtmlText); int i = 0; string[] sUrlList = new string[matches.Count]; // 取得匹配项列表 foreach (Match match in matches) sUrlList[i++] = match.Groups["imgUrl"].Value; return sUrlList; }
到这里,基本上全部完成了。
程序使用的模版文件,全在content文件夹下,如果有朋友使用到自定义css,可以手动的更改模版。
下节预告
我们既然能将自己的博客备份得到的xml文件,转换成chm文件,我们也同样可以将某个人的博客随笔备份成chm文件,参考《一键构造你的博客目录》,它可以得到某个博客下的所有随笔链接,既然能够得到链接,我们就可以等到博客的正文,因此我们同样将其转换成CHM文件。以啊汉的博客为例,示例文档下载,效果图预览:
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
感谢阅读,希望这篇文章能给你带来帮助!
相关文章推荐
- 使用CHM文档 阅读随笔
- 使用CHM文档 阅读随笔
- 使用CHM文档 采集随笔(续)
- 使用CHM文档 采集随笔(续)
- [转]使用Doxygen生成全中文的chm帮助文档
- 使用libsvm工具箱,README文档要仔细阅读
- 使用Sandcastle工具为.NET项目工程生成一份项目帮助文档chm
- python自动生成易于阅读的html文档——使用Sphinx
- 使用Doxygen软件将程序代码自动生成chm格式帮助文档
- 一款比较不错的由word制作帮助文档的好软件!wordToChm 专业版!推荐使用!
- 把.html文件(使用说明包)制作成CHM文档的方法
- python自动生成易于阅读的html文档——使用Sphinx
- RabbitMQ官方文档使用指南阅读笔记
- 让你的linux支持chm文档的阅读
- ShellExecute使用详解,并示范发送电子邮件和打开CHM文档
- MediaPlayer类可用于控制音频/视频文件或流的播放。关于如何使用这个类的方法还可以阅读VideoView类的文档。
- python自动生成易于阅读的html文档——使用Sphinx
- 使用Eclipse生成CHM帮助文档(图解)
- 使用Sandcastle工具为.NET项目工程生成一份项目帮助文档chm
- python自动生成易于阅读的html文档——使用Sphinx