[版权声明]:本文章由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

[工具推荐]制作基于Dash的本地文档方便搜索文档api和内容的更多相关文章

  1. 使用requests爬取梨视频、bilibili视频、汽车之家,bs4遍历文档树、搜索文档树,css选择器

    今日内容概要 使用requests爬取梨视频 requests+bs4爬取汽车之家 bs4遍历文档树 bs4搜索文档树 css选择器 内容详细 1.使用requests爬取梨视频 # 模拟发送http ...

  2. 低成本制作基于OpenWRT的渗透工具

    不知道你听说过Hak5的产品没有,它们可是黑客以及渗透测试人员的最爱.其中,有很多的PoC黑客工具都曾在热门美剧<黑客军团>中出现过.Hak5的 PACKETSQUIRREL 上架已经有好 ...

  3. Mac iOS Mac Watch 应用和游戏编程开发工具推荐

    今日分享「iOS / Mac / Watch 应用和游戏开发工具」推荐,这期专题主要为iOS开发者推荐一些优秀的设计和开发工具,这些工具包含移动原型的设计.程序的开发等,可以大大提高开发的效率!专题会 ...

  4. 10款Mac上程序员装机必备的开发工具推荐和下载

    10款Mac上程序员装机必备的开发工具推荐和下载 使用Mac的用户主要有两大类:设计师和程序员,为各位程序员童鞋推荐10个Mac上非常棒的开发工具和辅助工具,分享软件专题[10款Mac上程序员装机必备 ...

  5. 值得推荐的C/C++框架和库(深度好文)

    [本文系外部转贴,原文地址:http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.html http://coolshell.info ...

  6. 工具推荐--刷LeetCode的神器

    本文首发于微信公众号:[坂本先生],文章地址为: https://mp.weixin.qq.com/s/vHv5hO8nils_g2VSKwu1Cg如有转载请标明出处 今天给大家安利一款快速刷Leet ...

  7. [转帖]推荐一款比 Find 快 10 倍的搜索工具 FD

    推荐一款比 Find 快 10 倍的搜索工具 FD https://www.hi-linux.com/posts/15017.html 试了下 很好用呢. Posted by Mike on 2018 ...

  8. 基于ConcurrentHashMap的本地缓存

    基于ConcurrentHashMap的本地缓存 在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无 ...

  9. 工具推荐-使用RedisInsight工具对Redis集群CURD操作及数据可视化和性能监控

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x00 快速 ...

随机推荐

  1. xlrd加载Excal表格编码格式的问题

    Python自动化测试中,利用xlrd加载文件名,代码如下: newpath = os.chdir('文件所在目录') filename = "文件名.xlsx" 报IOError ...

  2. 编写shell脚本的规范

    目录 编写shell脚本的一些规范 解释器 添加脚本版本和注释功能 添加脚本调试 变量命名 全局变量和局部变量 命名规范 函数命名 脚本命名 函数 引用模块或文件 脚本日志 配置文件 其他 编写she ...

  3. CSS动画之动画模块

    过渡模块和动画模块的区别:过渡动画需要人为的去触发这个反应,而动画模块不需要人为相同点:都是动画:都是系统新增的属性:都是要满足三要素才有动画效果三要素:1.告诉系统执行哪个动画,要写出动画名称:an ...

  4. ViewModel和LiveData问题思考与解答

    嗨,大家好,面试真题系列又来了,今天我们说说MVVM架构里的两大组件:ViewModel和LiveData. 还是老样子,提出问题,做出解答. ViewModel 是什么? ViewModel 为什么 ...

  5. mysql增删改查语法

    MySQL 关注公众号"轻松学编程"了解更多. MySQL是关系型数据库,对大小写不敏感. MySQL属于关系型数据库, 优点: 复杂查询 可以用SQL语句方便的在一个表以及多个表 ...

  6. 学了元件作用域,我终于对JMeter开窍了

    引子 先看一下这个例子,测试计划"进入考场"下面有一个线程组,线程组下面有 3 个 HTTP 请求,分别是学生登录.考场 token和进入房间: 它们的处理逻辑是: 学生登录后,在 ...

  7. (模板)graham扫描法、andrew算法求凸包

    凸包算法讲解:Click Here 题目链接:https://vjudge.net/problem/POJ-1113 题意:简化下题意即求凸包的周长+2×PI×r. 思路:用graham求凸包,模板是 ...

  8. 你说一下对Java中的volatile的理解吧

    前言 volatile相关的知识其实自己一直都是有掌握的,能大概讲出一些知识,例如:它可以保证可见性:禁止指令重排.这两个特性张口就来,但要再往深了问,具体是如何实现这两个特性的,以及在什么场景下使用 ...

  9. ajax 加载数据前的刷新动画

    $(document).ready(function(){     $.ajax({        type:"get",        cache:false,        u ...

  10. Docker - 解决容器内获取的时间和主机的时间不一样的问题

    问题背景 分别在容器和主机下执行 date 命令 可以看到,时间是完全不一样的 解决方案 在运行容器时,挂载 /etc/localtime  目录 docker run -d -v /etc/loca ...