2015-10-08
jQuery-based Local Search Engine for Hexo

jQuery-based Local Search Engine for Hexo

早在我最初从 Ruhoh 迁移博客到 Hexo 时,我就有动手写一个本地的搜索引擎的想法。比起使用第三方服务的站内搜索,本地搜索引擎有几个好处:

  1. 更可靠。不用担心由于某些显而易见的原因导致第三方服务不可访问。
  2. 速度更快。不管是 Google 还是 Swiftype ,第三方搜索服务的加载速度总是比较慢,影响浏览体验。
  3. 定制性更强。由于是自己写的插件,检索的具体策略、界面样式都可以自己定义,满足极客们 Bigger than Bigger 的需求。

这个想法起初是受了 Christian Fei 的 Simple Jekyll Search 启发。在了解了它的原理后,我认为在 Hexo 上实现一个本地搜索引擎并不复杂。大致的思路是:

  • 写一个 generator ,生成站点所有文章的索引数据;
  • 当在搜索框中输入关键词时,触发 Javascript 的特定函数,在这个索引数据里头检索包含该关键词的文章;
  • 利用 jQuery 在页面中动态插入检索结果。
Read More

2013-08-01
Alternative Video Source According to IP Address

我在撰写上篇博文的时候遇到了一个有趣的问题:如何根据ip所在地选择视频源?

由于你很了解的一个原因,国外流行的视频网站(e.g.YouTube)在国内一般不能访问。为了同时照顾大陆和其他国家地区的视频观看者,@李扬彦博士把我们的视频分别上传到了优酷和YouTube上。于是,作为一名勤奋勇敢的大陆人民(我自豪!),我当然是优先选择嵌入优酷上的视频。但我随后又萌生了一个念头:如果访问者是个外国朋友,访问优酷不一定能像 YouTube 般顺畅(尤其是前者还有万恶的30秒广告!)。能否根据ip所在地的不同,让ip地址不在中国的朋友使用YouTube上的视频源呢?

于是我就基于 jQuery 和 AJAX 写了这个插件。思路很简单:

  1. 默认先加载优酷上的视频;
  2. 读取访问者的ip信息,判断其所在的国家(或地区);
  3. 如果所在地不是地大物博,千秋万代的大陆地区,就自动将视频源切换到YouTube上;
  4. 用户还可以通过下方的选择按钮切换视频源。
Read More

© 2021 wzpan