[版权声明]:本文章由danvid发布于http://danvid.cnblogs.com/,如需转载或部分使用请注明出处

  最近在看es的文档,发现查起api来真的很麻烦,很多现在开源的文档都没有查询功能,对于忘了的一些东西,想查询真的有点麻烦,找了很多方法,最后发现了这个工具Dash(dash只能在macOS上使用,windows用户可以用zeal试试,好像docset是可以通用的)。

  Dash是可以提供文档的检索和本地化的功能,十分适合学习之后对文档的查找。Dash本身和很多开源项目合作,提供了很多的文档下载,其中就包含的ES:

下载之后是变成一个较docset的文件,就可以使用了,在搜索框查一下就可以找到你心仪的文档了:

如果搜不到也不用怕,我们可以自己制作,非常简单:

1.找到你要制作的文档的首页地址,如lucene的:http://lucene.apache.org/core/8_1_0/index.html ,使用weget命令递归把网页全部爬下来:

wget -r -p -np -k -P ~/tmp/ http://lucene.apache.org/core/8_1_0/index.html

2.去github上下载个html2dash的程序:https://github.com/selfboot/html2Dash 感谢一下这位兄弟[selfboot]提供的代码,[当然官网也提供了两个程序https://github.com/technosophos/dashinghttps://github.com/godbout/dash-docset-builder ]剩下的就执行一下转换的命令即可,这里需要注意的是执行的文件目录是index.html的目录

./html2dash.py -n lucene8.1.0  -i ~/tmp/lucene_green_300.png  ~/tmp/lucene.apache.org/core/7_0_0

-i 表示图片路径,需要是png格式,剩下的自己看github把,查询效果:

使用起来确实很方便,大家可以试试。

更新:

由于官网上也有程序生成docset文件https://github.com/technosophos/dashing 按github指引安装一下dashing就可以,这个生成出来跟html2Dash相比可能更切合docset格式些,但是也要你网上的文档格式比较规范。当然这个更简单,配置一下json文件几行命令就可以

1.首先执行安装命令:

brew install dashing

2.cd到你要生成的docset文件需要放在的文件夹,执行create命令

cd ~/danvid/tmp
dashing create

3.你执行完dashing create之后会产生一个dashing.json文件,vim编辑一下

{
"name": "elasticsearch-cn-guide",
"package":"elasticsearch-cn-guide",
"index": "index.html",
"selectors": {
"dt a": "Command",
"title": "Package"
},
"ignore": [
"ABOUT"
],
"icon32x32": "favicon.png",
"allowJS": false,
"externalURL": "https://www.elastic.co/guide/cn/elasticsearch/guide/current"
}

这里需要注意的是你要提前下载icon图片到你文件夹中(favicon.png),还要必须写"package"这个属性,不然会生成不了(我也是开始没命名这个,后面去issue里才知道),然后执行一下

dashing build tmp

就可以了,tmp就是开始你要放docset文件的文件夹

生成原理简单讲一下(网上有挺多手工制作教程的,有时间也可以自己写一个~反正我是不想写~哈哈):

  1. Create the Docset Folder;建一个文件夹价格docset的后缀

  2. Copy the HTML Documentation;复制html文件到Documentations文件夹

  3. Create the Info.plist File;创建首页文件

  4. Create the SQLite Index;创建SQLite索引表

  5. Populate the SQLite Index;插入索引数据

完事!

[参考]https://kapeli.com/docsets#dashDocset

[参考]https://segmentfault.com/a/1190000000721142

最新文章

  1. 漫谈TCP
  2. oracle数据库高级应用之《自动生成指定表的insert,update,delete语句》
  3. ADF_Starting系列8_使用EJB/JPA/JSF通过ADF构建Web应用程序之扩展UI Method
  4. Scala Tail Recursion (尾递归)
  5. Java8之默认方法和静态接口方法
  6. C#中有关字符串去重的解决方案
  7. Delphi 使用自定义消息
  8. Linux编程环境介绍(2) -- shell(Bash) 介绍
  9. TLD算法概述--学习理解之(一)
  10. 调用约定__cdecl __fastcall与__stdcall
  11. PowerShell 中 RunspacePool 执行异步多线程任务
  12. [android] 自定义广播事件
  13. elasticSearch学习安装
  14. Oracle数据库分组排序
  15. idea 设置注释
  16. python文件处理复习
  17. JetBrains全系列在线激活中心pycharm
  18. jzoj5848
  19. 第八章 SQL高级处理 8-2 GROUPING运算符
  20. 英特尔老款CPU支持虚拟化对照表(转)

热门文章

  1. 深信服edr 2020HW行动0day 漏洞细节
  2. Google面试题(选自公众号)
  3. vue-cli3生产环境和开发环境路径的替换
  4. 源码都没调试过,怎么能说熟悉 redis 呢?
  5. 02 HTML 常见标记 选择器 样式
  6. Java学习的第三十二天
  7. MYSQL连接时错误码2059解决办法
  8. [Luogu P1119] 灾后重建 (floyd)
  9. eclipse配置NS3
  10. php 检测敏感字