Elasticsearch进阶教程:生成离线官方文档

这篇具有很好参考价值的文章主要介绍了Elasticsearch进阶教程:生成离线官方文档。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elastic stack产品相关的文档是由专门的文档团队维护的,内容详实、更新及时,几乎能够通过查找文档的方式解决大部分平时使用上的问题,如此优秀的文档,可以被认为是业内的标杆。我的日常工作中,就需要非常频繁的访问官方文档。

国内访问的Elastic官网的障碍

然而,故事总有另外一面,虽然频率不是特别高,但仍然有不少客户或者用户会向我询问或者要求提供离线的官方文档。特别是对于一些网络受限的用户来说,访问部署在https://www.elastic.co/guide/index.html上的官方文档是一件非常痛苦,甚至是无法办到的事情。比如金融行业里的IT运维的同学,就常年处于网络受限的环境,不仅是访问国外网站走单独的低带宽、高延迟的通道,并且很多总所周知的网址是无法访问的。而偏偏elastic的官网,却有非常多的外部链接:

Elasticsearch进阶教程:生成离线官方文档

这些外部链接中,一旦有那么几个是访问缓慢或者无法访问的。就会造成整个页面无法正确渲染或者打开。这就使用离线访问官方文档成了一项能被理解并且应被满足的需求。

我们曾经探讨过将官方文档部署在腾讯云或者阿里云上的可能,但因为产品发布和文档更新频率,以及其他的一些阻碍,至今没能完成这一目标。

因此,我们将在本文中讨论自己构建一个特定版本的离线官方文档的方法。

构建一个特定版本的离线官方文档

作为最成功的开源项目的上市公司的工程团队,我们也有一套完整且优秀的工具和流程来自动发布产品的文档。并且,这个项目是以public的方式开放于github的:

  • https://github.com/elastic/docs
  • https://github.com/elastic/built-docs

这里我提供了两个github的地址,第一个(/elastic/docs)是我们修改、更新内容和构建文档的工具,而第二个(/elastic/built-docs)是构建出来的内容存放的仓库。

构建自发布的官方文档

对于需要自己更改文档内容的团队来说,可以使用第一个github仓库。

git clone https://github.com/elastic/docs

然后按照HowTo里的教程进行构建和发布。

比如说,腾讯云的elasticsearch service的团队,可以将自己的内核改动、插件、高级功能的特性变成整体文档的一部分放到elasticsearch的文档当中,就可以采用/elastic/docs里描述的方式进行文档的更新、修改和生成。再讲生成好的HTML 文档进行发布即可。

获取已发布的离线官方文档

而对于我们其他的用户来说,大部分的需求以获取一份离线文档为主,则不需要这么麻烦。我们需要的是把第二个仓库保存到本地:

git clone https://github.com/elastic/built-docs

这里的内容是通过运行docs 构建生成的,包含了产品的历史版本的文档。因此,如果要整个项目clone下来,体积是很庞大的(有10多个GB)。

仓库的目录结构如下:

Elasticsearch进阶教程:生成离线官方文档

如果我们要下载特定版本的elasticsearch的文档,一路导航即可。

然后通过svn等工具,只下载特定目录下的内容。这时,下载下来的文档中会包含一些外部链接,比如,我们看这个文档,https://github.com/elastic/built-docs/blob/master/html/en/elasticsearch/reference/7.10/_actions.html

Elasticsearch进阶教程:生成离线官方文档

就包含了:

  • <linkrel=“stylesheet” type=“text/css” href=“/guide/static/styles.css” />
  • <spanclass=“breadcrumb-link”><ahref=“/guide/”>Elastic Docs<spanclass=“chevron-right”>›
  • <scriptsrc=“/guide/static/jquery.js”>
  • <scripttype=“text/javascript” src=“/guide/static/docs.js”>

而目录/guide, 却并不包含在你下载的离线文档包了。因为这里的相对路径,都是按照elastic.co官网上的部署目录来进行配置的。

因此,为了能在离线文档中也能够正确的加载对应的资源,渲染出页面,我们还需要下载另外一个目录(https://github.com/elastic/built-docs/tree/master/html/static) 里的内容:

Elasticsearch进阶教程:生成离线官方文档

然后在所有的文档中,将/guide替换为你保存static 的位置(path_to_your_static

Elasticsearch进阶教程:生成离线官方文档

使用同样的方法,我们可以获取所有产品文档的离线内容:

Elasticsearch进阶教程:生成离线官方文档

比如,我们下载了以下内容:

tree -L 1
.
├── elasticsearch_7.10
├── hadoop_7.10
├── index.html
├── kibana_7.10
├── ml_7.10
└── static

可以构建这样的一个Index.html来访问:文章来源地址https://www.toymoban.com/news/detail-424477.html

<!DOCTYPE html>
<html lang="en-us">
  <head>
    
<meta charset="UTF-8">
<title>Elastic Stack and Product Documentation | Elastic</title>

<meta name="DC.type" content="Learn/Docs/"/>
<meta name="DC.subject" content=""/>
<meta name="DC.identifier" content=""/>

    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <

到了这里,关于Elasticsearch进阶教程:生成离线官方文档的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kotlin教程4:函数进阶

    kotlin教程:编程基础💎数据结构💎面向对象 kotlin 的函数定义非常灵活,既可以按照顺序传参,也可以通过参数名传参,而且可以设置参数默认值,这些在基础教程中已经讲过了。 此外, kotlin 中用 vararg 修饰的参数,为长度可变的参数列表 递归是一种常用的编程技巧,就像

    2024年02月05日
    浏览(29)
  • Lua 进阶 · 教程笔记

    笔记的内容出自 Bilibili 上的视频:Lua教程-进阶部分 - 4K超清【不定期更新】 笔记主要用于供笔者个人或读者回顾知识点,如有纰漏,烦请指出 : ) 国内的大佬 云风 翻译了 Lua 的 Api 参考手册:传送门【】 以后读者在练习或者开发途中可以在参考手册里查看 Lua 提供的 Api。

    2024年01月24日
    浏览(33)
  • aardio教程二) 进阶语法

    aardio中除了基础数据类型外,其他的复合对象都是table(例如类和名字空间等)。table可以用来存放aardio的任何对象,包括另一个table。 在其他语言中的字典、列表、数组、集合映射等,在aardio中都使用table来实现。 创建字典 创建数组 数组和字典可以混用 使用class定义类

    2024年03月18日
    浏览(26)
  • SpringBoot进阶教程(七十七)WebSocket

    WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 很多

    2024年02月08日
    浏览(35)
  • SQL Server进阶教程读书笔记

    最近把SQL Server进阶教程重新读了一遍,顺便整理了一下书本中的知识点 CASE WHEN         ❑ 高手使用select做分支,新手用where和having做分支         ❑ 要写ELSE,要写END,避免未匹配上得到NULL         ❑ check到底怎么用?                  在SQL Server中,s

    2024年02月09日
    浏览(31)
  • git 进阶系列教程--pull

    功能 从远程仓库拉取最新代码到本地 代码解析 将远程仓库代码拉取到本地。当然这个命令的前提是你本地代码与远程代码有链接,无论是你upstream也好git clone也罢。而且是默认拉取远程代码中与该分支有关联的分支与本地该分支合并。同时,git pull不止是拉取代码,同时会将

    2024年02月11日
    浏览(30)
  • git 进阶系列教程--add

    功能介绍 将工作区(working directory)中的内容放入暂存区(staging area) 追踪文件(解释:刚被添加到工作区的文件处于未跟踪状态(Untracked files),该命令会将新添加的文件放入暂存区,并且文件将处于已跟踪状态) 命令解析 添加工作区所有文件进入暂存区 最后的点可以理解为正则里的

    2024年02月06日
    浏览(33)
  • git 进阶系列教程--push

    功能介绍 将本地仓库中的内容同步到远程仓库 指令解析 这个命令就上将本地仓库中的文件同步到远程。是平时用到push最多的指令。它其实是一种简写方式。省略了远程仓库的地址,本地分支。 这个命令是比较全的一条指令。意思是推送本地master分支到远程(origin)的master分支

    2024年02月14日
    浏览(32)
  • SpringBoot进阶教程(七十八)邮件服务

    Sun公司提供了JavaMail用来实现邮件发送,但是配置烦琐,Spring中提供了JavaMailSender用来简化邮件配置,Spring Boot则提供了MailSenderAutoConfiguration对邮件的发送做了进一步简化。 开通POP3/SMTP服务或者IMAP/SMTP服务 使用邮箱发送邮件,首先要申请开通POP3/SMTP服务或者IMAP/SMTP服务。SMTP全

    2024年02月05日
    浏览(32)
  • JavaScript高级教程(javascript实战进阶)

        分类: 基本数据(值)类型 String:任意字符串 Number:任意的数字 boolean:true/false undefined:undefined null:null 对象(引用)类型 Object:任意对象 Function:一种特别的对象(可以执行) Array:一种特别的对象(数值下标,内部数据是有序的) 判断: typeof:可以判断undef

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包