├── .buildkite
├── air_gapped_pipeline.yml
├── build_pipeline.yml
├── build_pr_pipeline.yml
├── hooks
│ └── pre-command
├── link_check_pipeline.yml
├── preview_cleaner_pipeline.yml
├── pull-requests.org-wide.json
├── scripts
│ ├── build.sh
│ ├── build_pr.sh
│ ├── cancel_running_pr.sh
│ ├── clean_preview_branches.sh
│ ├── compare_commits.sh
│ ├── publish_air_gapped_docs.sh
│ └── test.sh
└── test_pipeline.yml
├── .bundle
└── config
├── .ci
├── clean_preview_branches.sh
├── packer_cache.sh
├── publish_air_gapped_docs.sh
├── publish_preview.sh
└── test.sh
├── .docker
├── README
├── apt
│ ├── keys
│ │ ├── nodesource.gpg
│ │ └── yarn.gpg
│ └── sources.list.d
│ │ ├── nodesource.list
│ │ └── yarn.list
└── asciidoctor_2_0_10.patch
├── .github
├── CODEOWNERS
├── ISSUE_TEMPLATE.md
├── PULL_REQUEST_TEMPLATE.md
├── actions
│ └── docs-preview
│ │ ├── README.md
│ │ └── action.yml
└── workflows
│ ├── doc-preview.yml
│ └── patch-release-version-bump.yml
├── .gitignore
├── .repos
└── README.txt
├── .rubocop.yml
├── Dockerfile
├── Dockerfile.dockerignore
├── Gemfile
├── Gemfile.lock
├── Makefile
├── README.asciidoc
├── air_gapped
├── Dockerfile
├── Dockerfile.dockerignore
├── build.sh
├── build_bk.sh
└── test.sh
├── build_docs
├── build_docs.pl
├── catalog-info.yaml
├── common.mk
├── conf.yaml
├── doc_build_aliases.sh
├── extra
├── README
├── apm_docs_landing.html
├── apm_guide_landing.html
├── client_docs_landing.html
├── docs_landing.html
└── kibana_landing.html
├── gitconfig
├── github.known_hosts
├── integtest
├── .rspec
├── Makefile
├── README
├── html_diff
├── readme_examples
│ ├── csharp
│ │ └── 8a7e0a79b1743d5fd94d79a7106ee930.adoc
│ └── js
│ │ ├── 8a7e0a79b1743d5fd94d79a7106ee930.adoc
│ │ └── 9fa2da152878d1d5933d483a3c2af35e.adoc
└── spec
│ ├── air_gapped_spec.rb
│ ├── all_books_broken_link_detection_spec.rb
│ ├── all_books_change_detection_spec.rb
│ ├── all_books_sources_spec.rb
│ ├── all_books_spec.rb
│ ├── all_books_sub_dir_spec.rb
│ ├── helper
│ ├── book.rb
│ ├── book_conf.rb
│ ├── console_alternative_examples.rb
│ ├── dest.rb
│ ├── dsl.rb
│ ├── dsl
│ │ ├── convert_all.rb
│ │ ├── convert_single.rb
│ │ └── file_contexts.rb
│ ├── matcher
│ │ ├── doc_body.rb
│ │ ├── have_same_keys.rb
│ │ ├── initial_js_state.rb
│ │ ├── redirect_to.rb
│ │ └── serve.rb
│ ├── opened_docs.rb
│ ├── preview.rb
│ ├── repo.rb
│ ├── serving_docs.rb
│ ├── sh.rb
│ ├── shell_repo.rb
│ └── source.rb
│ ├── preview_spec.rb
│ ├── single_book_spec.rb
│ └── spec_helper.rb
├── jest.js
├── lib
└── ES
│ ├── BaseRepo.pm
│ ├── Book.pm
│ ├── BranchTracker.pm
│ ├── DocsParser.pm
│ ├── DocsRepo.pm
│ ├── LinkCheck.pm
│ ├── Repo.pm
│ ├── Source.pm
│ ├── TargetRepo.pm
│ ├── Toc.pm
│ └── Util.pm
├── package.json
├── preview
├── Dockerfile
├── Dockerfile.dockerignore
├── Makefile
├── __test__
│ ├── buffer_itr.test.js
│ ├── clean.test.js
│ └── git.test.js
├── buffer_itr.js
├── build.sh
├── clean.js
├── cli.js
├── core.js
├── git.js
├── preview.js
└── test.sh
├── renderconf.py
├── renovate.json
├── resources
├── asciidoctor
│ ├── .rspec
│ ├── Makefile
│ ├── README
│ ├── lib
│ │ ├── alternative_language_lookup
│ │ │ ├── alternative.rb
│ │ │ ├── converter.rb
│ │ │ ├── extension.rb
│ │ │ ├── listing.rb
│ │ │ ├── lookup.rb
│ │ │ ├── report.rb
│ │ │ └── summary.rb
│ │ ├── care_admonition
│ │ │ └── extension.rb
│ │ ├── change_admonition
│ │ │ └── extension.rb
│ │ ├── chunker
│ │ │ ├── breadcrumbs.rb
│ │ │ ├── convert_outline.rb
│ │ │ ├── extension.rb
│ │ │ ├── extra_docinfo.rb
│ │ │ ├── find_related.rb
│ │ │ ├── footnotes.rb
│ │ │ ├── link.rb
│ │ │ ├── nav.rb
│ │ │ ├── obs_breadcrumbs.rb
│ │ │ ├── search_breadcrumbs.rb
│ │ │ ├── url_to_v3.rb
│ │ │ └── v3-mapping.json
│ │ ├── copy_images
│ │ │ ├── copier.rb
│ │ │ └── extension.rb
│ │ ├── cramped_include
│ │ │ └── extension.rb
│ │ ├── delegating_converter.rb
│ │ ├── docbook_compat
│ │ │ ├── clear_cached_titles.rb
│ │ │ ├── convert_admonition.rb
│ │ │ ├── convert_dlist.rb
│ │ │ ├── convert_document.rb
│ │ │ ├── convert_example.rb
│ │ │ ├── convert_floating_title.rb
│ │ │ ├── convert_inline_quoted.rb
│ │ │ ├── convert_links.rb
│ │ │ ├── convert_listing.rb
│ │ │ ├── convert_lists.rb
│ │ │ ├── convert_open.rb
│ │ │ ├── convert_outline.rb
│ │ │ ├── convert_paragraph.rb
│ │ │ ├── convert_quote.rb
│ │ │ ├── convert_sidebar.rb
│ │ │ ├── convert_table.rb
│ │ │ ├── convert_table_cell.rb
│ │ │ ├── extension.rb
│ │ │ ├── extra_docinfo.rb
│ │ │ ├── munge_body.rb
│ │ │ └── titleabbrev_handler.rb
│ │ ├── edit_me
│ │ │ └── extension.rb
│ │ ├── elastic_compat_preprocessor
│ │ │ └── extension.rb
│ │ ├── elastic_compat_tree_processor
│ │ │ └── extension.rb
│ │ ├── elastic_include_tagged
│ │ │ └── extension.rb
│ │ ├── extensions.rb
│ │ ├── glob_include_processor
│ │ │ └── extension.rb
│ │ ├── lang_override
│ │ │ └── extension.rb
│ │ ├── log_util.rb
│ │ ├── migration_log.rb
│ │ ├── open_in_widget
│ │ │ └── extension.rb
│ │ ├── relativize_link
│ │ │ └── extension.rb
│ │ ├── scaffold.rb
│ │ └── strip_tags.rb
│ └── spec
│ │ ├── alternative_language_lookup_spec.rb
│ │ ├── care_admonition_spec.rb
│ │ ├── change_admonition_spec.rb
│ │ ├── chunker_spec.rb
│ │ ├── copy_images_spec.rb
│ │ ├── cramped_include_spec.rb
│ │ ├── docbook_compat_spec.rb
│ │ ├── edit_me_spec.rb
│ │ ├── elastic_compat_preprocessor_spec.rb
│ │ ├── elastic_compat_tree_processor_spec.rb
│ │ ├── elastic_include_tagged_spec.rb
│ │ ├── open_in_widget_spec.rb
│ │ ├── relativize_link_spec.rb
│ │ ├── resources
│ │ ├── alternative_language_lookup
│ │ │ ├── csharp
│ │ │ │ ├── 2daa97b0218b60aec4714333e80d7e84.adoc
│ │ │ │ ├── 5712902c12d9db15d01e8639ece9ec84.adoc
│ │ │ │ ├── 9e01493a85c06a5100ff712f6b3eead4.adoc
│ │ │ │ ├── cf49fef4c762241eee0fa3d1e7fa8b58.adoc
│ │ │ │ ├── ded0ba409b7c66489d5833dc6aa5f696.adoc
│ │ │ │ ├── fcac4757ba45b9b14f316eb9bda58584.adoc
│ │ │ │ ├── included.cs
│ │ │ │ └── subdir
│ │ │ │ │ └── 35f7386b82f3d924b7bfffa26470ac81.adoc
│ │ │ ├── java
│ │ │ │ └── 5712902c12d9db15d01e8639ece9ec84.adoc
│ │ │ └── js
│ │ │ │ ├── 39f76498cca438ba11af18a7075d24c9.adoc
│ │ │ │ ├── 5712902c12d9db15d01e8639ece9ec84.asciidoc
│ │ │ │ └── c4f54085e4784ead2ef4a758d03edd16.adoc
│ │ ├── copy_images
│ │ │ ├── example1.png
│ │ │ ├── example2.png
│ │ │ └── images
│ │ │ │ └── icons
│ │ │ │ ├── callouts
│ │ │ │ ├── 1.gif
│ │ │ │ ├── 1.png
│ │ │ │ ├── 2.gif
│ │ │ │ └── 2.png
│ │ │ │ ├── caution.gif
│ │ │ │ ├── caution.png
│ │ │ │ ├── important.gif
│ │ │ │ ├── important.png
│ │ │ │ ├── note.gif
│ │ │ │ ├── note.png
│ │ │ │ ├── tip.gif
│ │ │ │ ├── tip.png
│ │ │ │ ├── warning.gif
│ │ │ │ └── warning.png
│ │ ├── cramped_include
│ │ │ ├── Example.java
│ │ │ ├── colist1.adoc
│ │ │ └── colist2.adoc
│ │ ├── does_not_break_line_numbers
│ │ │ └── missing_callout.adoc
│ │ ├── edit_me
│ │ │ ├── appendix1.adoc
│ │ │ ├── appendix2.adoc
│ │ │ ├── bibliography1.adoc
│ │ │ ├── bibliography2.adoc
│ │ │ ├── chapter1.adoc
│ │ │ ├── chapter2.adoc
│ │ │ ├── colophon1.adoc
│ │ │ ├── colophon2.adoc
│ │ │ ├── dedication1.adoc
│ │ │ ├── dedication2.adoc
│ │ │ ├── float1.adoc
│ │ │ ├── float2.adoc
│ │ │ ├── glossary1.adoc
│ │ │ ├── glossary2.adoc
│ │ │ ├── section1.adoc
│ │ │ └── section2.adoc
│ │ ├── elastic_compat_preprocessor
│ │ │ └── target.adoc
│ │ └── elastic_include_tagged
│ │ │ └── Example.java
│ │ ├── shared_examples
│ │ └── does_not_break_line_numbers.rb
│ │ ├── snippets
│ │ ├── snippet.console
│ │ ├── snippet.ece
│ │ ├── snippet.ess
│ │ ├── snippet.kibana
│ │ └── snippet.sense
│ │ └── spec_helper.rb
├── legacy_redirects.conf
├── readme
│ ├── cat.jpg
│ ├── chunking-toc.png
│ ├── example.svg
│ └── screenshot.png
├── style
│ ├── Makefile
│ └── pretend_regexp_isnt_mutable.rb
├── test
│ ├── Makefile
│ ├── dsl
│ │ └── file_context.rb
│ └── matcher
│ │ └── file_exist.rb
└── web
│ ├── Makefile
│ ├── __test__
│ └── air_gapped_template.test.js
│ ├── air_gapped_template.html
│ ├── docs.js.licenses
│ ├── docs_js
│ ├── __tests__
│ │ ├── actions
│ │ │ ├── modal.test.js
│ │ │ └── settings.test.js
│ │ ├── components
│ │ │ ├── alternative_picker.test.jsx
│ │ │ ├── alternative_switcher.test.js
│ │ │ ├── modal.test.js
│ │ │ └── mount.test.js
│ │ ├── docs.test.js
│ │ ├── localization.test.js
│ │ ├── prettify
│ │ │ ├── lang-asciidoc.test.js
│ │ │ └── lang-console.test.js
│ │ └── utils.test.js
│ ├── actions
│ │ ├── index.js
│ │ ├── modal.js
│ │ └── settings.js
│ ├── components
│ │ ├── alternative_picker.jsx
│ │ ├── alternative_switcher.js
│ │ ├── console_widget.jsx
│ │ ├── feedback_modal.jsx
│ │ ├── feedback_widget.jsx
│ │ ├── modal.js
│ │ ├── mount.js
│ │ └── tabbed_widget.js
│ ├── deps.js
│ ├── index-v1.js
│ ├── localization.js
│ ├── prettify
│ │ ├── lang-asciidoc.js
│ │ └── lang-console.js
│ ├── store.js
│ └── utils.js
│ ├── lib
│ ├── bootstrap
│ │ └── bootstrap.css
│ ├── inter
│ │ ├── Inter-Black.woff
│ │ ├── Inter-Black.woff2
│ │ ├── Inter-BlackItalic.woff
│ │ ├── Inter-BlackItalic.woff2
│ │ ├── Inter-Bold.woff
│ │ ├── Inter-Bold.woff2
│ │ ├── Inter-BoldItalic.woff
│ │ ├── Inter-BoldItalic.woff2
│ │ ├── Inter-ExtraBold.woff
│ │ ├── Inter-ExtraBold.woff2
│ │ ├── Inter-ExtraBoldItalic.woff
│ │ ├── Inter-ExtraBoldItalic.woff2
│ │ ├── Inter-ExtraLight-BETA.woff
│ │ ├── Inter-ExtraLight-BETA.woff2
│ │ ├── Inter-ExtraLightItalic-BETA.woff
│ │ ├── Inter-ExtraLightItalic-BETA.woff2
│ │ ├── Inter-Italic.woff
│ │ ├── Inter-Italic.woff2
│ │ ├── Inter-Light-BETA.woff
│ │ ├── Inter-Light-BETA.woff2
│ │ ├── Inter-LightItalic-BETA.woff
│ │ ├── Inter-LightItalic-BETA.woff2
│ │ ├── Inter-Medium.woff
│ │ ├── Inter-Medium.woff2
│ │ ├── Inter-MediumItalic.woff
│ │ ├── Inter-MediumItalic.woff2
│ │ ├── Inter-Regular.woff
│ │ ├── Inter-Regular.woff2
│ │ ├── Inter-SemiBold.woff
│ │ ├── Inter-SemiBold.woff2
│ │ ├── Inter-SemiBoldItalic.woff
│ │ ├── Inter-SemiBoldItalic.woff2
│ │ ├── Inter-Thin-BETA.woff
│ │ ├── Inter-Thin-BETA.woff2
│ │ ├── Inter-ThinItalic-BETA.woff
│ │ ├── Inter-ThinItalic-BETA.woff2
│ │ ├── Inter-italic.var.woff2
│ │ ├── Inter-upright.var.woff2
│ │ ├── Inter.var.woff2
│ │ ├── LICENSE.txt
│ │ └── inter.css
│ ├── noto-sans-japanese
│ │ ├── LICENSE.txt
│ │ ├── NotoSansJP-Black.otf
│ │ ├── NotoSansJP-Black.woff
│ │ ├── NotoSansJP-Black.woff2
│ │ ├── NotoSansJP-Bold.otf
│ │ ├── NotoSansJP-Bold.woff
│ │ ├── NotoSansJP-Bold.woff2
│ │ ├── NotoSansJP-DemiLight.otf
│ │ ├── NotoSansJP-DemiLight.woff
│ │ ├── NotoSansJP-DemiLight.woff2
│ │ ├── NotoSansJP-Light.otf
│ │ ├── NotoSansJP-Light.woff
│ │ ├── NotoSansJP-Light.woff2
│ │ ├── NotoSansJP-Medium.otf
│ │ ├── NotoSansJP-Medium.woff
│ │ ├── NotoSansJP-Medium.woff2
│ │ ├── NotoSansJP-Regular.otf
│ │ ├── NotoSansJP-Regular.woff
│ │ ├── NotoSansJP-Regular.woff2
│ │ ├── NotoSansJP-Thin.otf
│ │ ├── NotoSansJP-Thin.woff
│ │ ├── NotoSansJP-Thin.woff2
│ │ └── noto-sans-japanese.css
│ ├── prettify
│ │ ├── lang-esql.js
│ │ ├── lang-sql.js
│ │ ├── lang-yaml.js
│ │ └── prettify.js
│ └── roboto-mono
│ │ ├── LICENSE.txt
│ │ ├── roboto-mono-latin-400-normal.woff
│ │ ├── roboto-mono-latin-400-normal.woff2
│ │ └── roboto-mono.css
│ ├── postcss.config.js
│ ├── static
│ ├── android-chrome-192x192.png
│ ├── apple-icon-114x114.png
│ ├── apple-icon-120x120.png
│ ├── apple-icon-144x144.png
│ ├── apple-icon-152x152.png
│ ├── apple-icon-180x180.png
│ ├── apple-icon-57x57.png
│ ├── apple-icon-60x60.png
│ ├── apple-icon-72x72.png
│ ├── apple-icon-76x76.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon-96x96.png
│ ├── favicon.ico
│ ├── favicon_16x16.png
│ ├── favicon_32x32.png
│ ├── favicon_64x64_16bit.png
│ ├── logo-elastic-footer-white.svg
│ └── manifest.json
│ ├── style
│ ├── admonishment.pcss
│ ├── air_gapped.pcss
│ ├── alternative_picker.pcss
│ ├── base_styles.pcss
│ ├── calloutlist.pcss
│ ├── code.pcss
│ ├── console_widget.pcss
│ ├── conum.pcss
│ ├── docbook.pcss
│ ├── example.pcss
│ ├── feedback.pcss
│ ├── heading.pcss
│ ├── icons.pcss
│ ├── img.pcss
│ ├── img
│ │ ├── alert.svg
│ │ ├── check.svg
│ │ ├── copy.svg
│ │ ├── edit-me-private.png
│ │ ├── edit-me.png
│ │ ├── gear.png
│ │ ├── icons
│ │ │ ├── bug.svg
│ │ │ ├── checkInCircleFilled.svg
│ │ │ └── warningFilled.svg
│ │ ├── important.svg
│ │ ├── link.png
│ │ ├── minus.png
│ │ ├── note.svg
│ │ ├── plus.png
│ │ ├── rtpcontainer
│ │ │ ├── icon-beats-bb-white.svg
│ │ │ ├── icon-cloud-bb-white.svg
│ │ │ ├── icon-elastic-stack-bb-white.svg
│ │ │ ├── icon-elasticsearch-bb-white.svg
│ │ │ ├── icon-expand.svg
│ │ │ ├── icon-kibana-bb-white.svg
│ │ │ ├── icon-logstash-bb-white.svg
│ │ │ ├── icon-xpack-bb-white.svg
│ │ │ ├── logo-apm-32-white.svg
│ │ │ ├── logo-app-search-32-white.svg
│ │ │ ├── logo-beats-32-white.svg
│ │ │ ├── logo-business-analytics-32-white.svg
│ │ │ ├── logo-cloud-32-white.svg
│ │ │ ├── logo-code-search-32-white.svg
│ │ │ ├── logo-ece-32-white.svg
│ │ │ ├── logo-elasticon-32-white.svg
│ │ │ ├── logo-elasticsearch-32-white.svg
│ │ │ ├── logo-enterprise-search-32-white.svg
│ │ │ ├── logo-hadoop-32-white.svg
│ │ │ ├── logo-kibana-32-white.svg
│ │ │ ├── logo-logging-32-white.svg
│ │ │ ├── logo-logstash-32-white.svg
│ │ │ ├── logo-maps-32-white.svg
│ │ │ ├── logo-metrics-32-white.svg
│ │ │ ├── logo-siem-32-white.svg
│ │ │ ├── logo-site-search-32-white.svg
│ │ │ ├── logo-stack-32-white.svg
│ │ │ └── logo-uptime-32-white.svg
│ │ ├── tip.svg
│ │ ├── warning.svg
│ │ ├── xpack-default.svg
│ │ └── xpack-hover.svg
│ ├── layout.pcss
│ ├── link.pcss
│ ├── list.pcss
│ ├── nav.pcss
│ ├── on_this_page.pcss
│ ├── openapi.pcss
│ ├── page_header.pcss
│ ├── rtpcontainer.pcss
│ ├── settings_modal.pcss
│ ├── sidebar.pcss
│ ├── tabbed_widget.pcss
│ ├── table.pcss
│ ├── this_page.pcss
│ ├── toc.pcss
│ ├── util.pcss
│ ├── video.pcss
│ └── xpack.pcss
│ ├── styles-v1.pcss
│ ├── styles.css.licenses
│ └── template.html
├── schema.yaml
├── shared
├── api-definitions-ex.asciidoc
├── api-ref-ex.asciidoc
├── attributes.asciidoc
├── attributes62.asciidoc
├── cloud
│ ├── cloud-login.asciidoc
│ ├── ess-access-kibana.asciidoc
│ ├── ess-getting-started-obs.asciidoc
│ ├── ess-getting-started.asciidoc
│ └── tab-widgets
│ │ ├── cloud-login-widget.asciidoc
│ │ └── code.asciidoc
├── discontinued.asciidoc
├── fn-ref-ex.asciidoc
├── images
│ ├── logo_cloud.png
│ ├── logo_cloud.svg
│ ├── logo_cloud_ece.png
│ └── logo_cloud_ece.svg
├── legacy-attrs.asciidoc
├── notices
│ ├── README.txt
│ ├── page_header-EOL.html
│ └── page_header-maintenance.html
├── settings.asciidoc
├── settings55.asciidoc
├── settings56.asciidoc
├── settings60.asciidoc
├── settings61.asciidoc
├── settings65.asciidoc
├── versions.asciidoc
└── versions
│ ├── ece
│ ├── 1.0.asciidoc
│ ├── 1.1.asciidoc
│ ├── 2.0.asciidoc
│ ├── 2.1.asciidoc
│ ├── 2.2.asciidoc
│ ├── 2.3.asciidoc
│ ├── 2.4.asciidoc
│ ├── 2.5.asciidoc
│ ├── current.asciidoc
│ ├── master.asciidoc
│ ├── ms-105.asciidoc
│ ├── ms-119.asciidoc
│ ├── ms-47.asciidoc
│ ├── ms-49.asciidoc
│ ├── ms-53.asciidoc
│ ├── ms-57.asciidoc
│ ├── ms-59.asciidoc
│ ├── ms-62.asciidoc
│ ├── ms-65.asciidoc
│ ├── ms-69.asciidoc
│ ├── ms-70.asciidoc
│ ├── ms-72.asciidoc
│ ├── ms-75.asciidoc
│ ├── ms-81.asciidoc
│ ├── ms-92.asciidoc
│ └── release-ms-41.asciidoc
│ └── stack
│ ├── 5.5.asciidoc
│ ├── 5.6.asciidoc
│ ├── 6.0.asciidoc
│ ├── 6.1.asciidoc
│ ├── 6.2.asciidoc
│ ├── 6.3.asciidoc
│ ├── 6.4.asciidoc
│ ├── 6.5.asciidoc
│ ├── 6.6.asciidoc
│ ├── 6.7.asciidoc
│ ├── 6.8.asciidoc
│ ├── 7.0.asciidoc
│ ├── 7.1.asciidoc
│ ├── 7.10.asciidoc
│ ├── 7.11.asciidoc
│ ├── 7.12.asciidoc
│ ├── 7.13.asciidoc
│ ├── 7.14.asciidoc
│ ├── 7.15.asciidoc
│ ├── 7.16.asciidoc
│ ├── 7.17.asciidoc
│ ├── 7.2.asciidoc
│ ├── 7.3.asciidoc
│ ├── 7.4.asciidoc
│ ├── 7.5.asciidoc
│ ├── 7.6.asciidoc
│ ├── 7.7.asciidoc
│ ├── 7.8.asciidoc
│ ├── 7.9.asciidoc
│ ├── 7.x.asciidoc
│ ├── 8.0.asciidoc
│ ├── 8.1.asciidoc
│ ├── 8.10.asciidoc
│ ├── 8.11.asciidoc
│ ├── 8.12.asciidoc
│ ├── 8.13.asciidoc
│ ├── 8.14.asciidoc
│ ├── 8.15.asciidoc
│ ├── 8.16.asciidoc
│ ├── 8.17.asciidoc
│ ├── 8.18.asciidoc
│ ├── 8.19.asciidoc
│ ├── 8.2.asciidoc
│ ├── 8.3.asciidoc
│ ├── 8.4.asciidoc
│ ├── 8.5.asciidoc
│ ├── 8.6.asciidoc
│ ├── 8.7.asciidoc
│ ├── 8.8.asciidoc
│ ├── 8.9.asciidoc
│ ├── 8.x.asciidoc
│ ├── 9.0.asciidoc
│ ├── README
│ ├── current.asciidoc
│ ├── do-not-delete_legacy-docs.asciidoc
│ ├── main.asciidoc
│ └── master.asciidoc
├── template
├── Makefile
├── __test__
│ └── template.test.js
├── cli.js
└── template.js
└── yarn.lock
/.buildkite/air_gapped_pipeline.yml:
--------------------------------------------------------------------------------
1 | steps:
2 | - key: "publish-air-gapped-doc"
3 | label: ":white_check_mark: Build and publish air-gapped doc"
4 | command: ".buildkite/scripts/publish_air_gapped_docs.sh"
5 | env:
6 | AIR_GAPPED: "docker.elastic.co/docs-private/air_gapped:latest"
7 | agents:
8 | provider: "gcp"
9 | image: family/docs-ubuntu-2204
10 |
--------------------------------------------------------------------------------
/.buildkite/link_check_pipeline.yml:
--------------------------------------------------------------------------------
1 | steps:
2 | - label: 'Clone built-docs'
3 | command: |
4 | git clone git@github.com:elastic/built-docs --branch master --depth 1
5 | - label: 'ls'
6 | command: |
7 | ls
8 | agents:
9 | provider: "gcp"
10 | image: family/docs-ubuntu-2204
11 | diskSizeGb: 150
12 | machineType: n2-standard-4
13 | # notify:
14 | # - email: "docs-status@elastic.co"
15 | # if: build.state == "failed"
16 |
--------------------------------------------------------------------------------
/.buildkite/preview_cleaner_pipeline.yml:
--------------------------------------------------------------------------------
1 | env:
2 | USE_HTTPS_CLONE: true
3 |
4 | steps:
5 | - label: ":white_check_mark: Preview cleaning"
6 | command: ".buildkite/scripts/clean_preview_branches.sh"
7 | agents:
8 | provider: "gcp"
9 | image: family/docs-ubuntu-2204
10 |
--------------------------------------------------------------------------------
/.buildkite/scripts/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -euo pipefail
4 | set +x
5 |
6 | # Configure the git author and committer information
7 | export GIT_AUTHOR_NAME='Buildkite CI'
8 | export GIT_AUTHOR_EMAIL='docs-status+buildkite@elastic.co'
9 | export GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME
10 | export GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL
11 |
12 |
13 | build_args=""
14 | rebuild_opt=""
15 | broken_links_opt=""
16 |
17 | if [[ "${REBUILD}" == 'rebuild' ]]; then
18 | rebuild_opt="--rebuild"
19 | fi
20 |
21 | if [[ "${BROKEN_LINKS}" == 'skiplinkcheck' ]]; then
22 | broken_links_opt="--skiplinkcheck"
23 | elif [[ "${BROKEN_LINKS}" == 'warnlinkcheck' ]]; then
24 | broken_links_opt="--warnlinkcheck"
25 | fi
26 |
27 | if [[ "${BUILDKITE_BRANCH}" == "master" ]]; then
28 | build_args+=" --push"
29 | fi
30 |
31 | # The docs build can use the ssh agent's authentication socket
32 | # but can't use ssh keys directly so we start an ssh-agent.
33 |
34 | # Temporary workaround until we can move to HTTPS auth
35 | vault read -field=private-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa"
36 | vault read -field=public-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa.pub"
37 | ssh-keyscan github.com >> "$HOME/.ssh/known_hosts"
38 | chmod 600 "$HOME/.ssh/id_rsa"
39 |
40 | ssh-agent bash -c "
41 | ssh-add &&
42 | ./build_docs --all \
43 | --target_repo git@github.com:elastic/built-docs \
44 | --reference /opt/git-mirrors/ \
45 | $build_args \
46 | $rebuild_opt $broken_links_opt"
47 |
--------------------------------------------------------------------------------
/.buildkite/scripts/cancel_running_pr.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -euo pipefail
3 | set +x
4 |
5 | # This script should only be invoked by the Buildkite PR bot
6 | if [ -z ${GITHUB_PR_NUMBER+set} ] || [ -z ${GITHUB_PR_BASE_REPO+set} ];then
7 | echo "One of the following env. variable GITHUB_PR_NUMBER, GITHUB_PR_BASE_REPO is missing - exiting."
8 | exit 1
9 | fi
10 |
11 | running_builds_url="https://api.buildkite.com/v2/organizations/elastic/pipelines/${BUILDKITE_PIPELINE_SLUG}/builds"
12 | running_builds_url+="?branch=${BUILDKITE_BRANCH}&state[]=scheduled&state[]=running"
13 | jq_filter="map(select(any(.meta_data; .repo_pr == \"${GITHUB_PR_BASE_REPO}_${GITHUB_PR_NUMBER}\"))) | .[] .number"
14 |
15 | for bn in $(curl -sH "Authorization: Bearer ${BUILDKITE_API_TOKEN}" $running_builds_url | jq -c "${jq_filter}"); do
16 | if [ "$bn" != "${BUILDKITE_BUILD_NUMBER}" ];then
17 | echo "Cancelling build ${bn} targetting the same PR"
18 | cancel_url="https://api.buildkite.com/v2/organizations/elastic/pipelines/${BUILDKITE_PIPELINE_SLUG}/builds/${bn}/cancel"
19 | curl --silent -X PUT -H "Authorization: Bearer ${BUILDKITE_API_TOKEN}" "${cancel_url}" > /dev/null
20 | fi
21 | done
22 |
23 |
24 |
--------------------------------------------------------------------------------
/.buildkite/scripts/clean_preview_branches.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eo pipefail
3 |
4 | export REPO=git@github.com:elastic/built-docs.git
5 | export IMAGE=docker.elastic.co/docs/build:latest
6 |
7 | # Temporary workaround until we can move to HTTPS auth
8 | vault read -field=private-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa"
9 | vault read -field=public-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa.pub"
10 | ssh-keyscan github.com >> "$HOME/.ssh/known_hosts"
11 | chmod 600 "$HOME/.ssh/id_rsa"
12 |
13 | ./build_docs --docker-build build
14 | ssh-agent bash -c '
15 | ssh-add &&
16 | docker run --rm \
17 | -v $(pwd):/docs_build:cached,ro \
18 | -v ~/.ssh/known_hosts:/root/.ssh/known_hosts:cached,ro \
19 | -v $SSH_AUTH_SOCK:$SSH_AUTH_SOCK:cached,ro \
20 | -e SSH_AUTH_SOCK=$SSH_AUTH_SOCK \
21 | -e GITHUB_TOKEN=$VAULT_GITHUB_TOKEN \
22 | -v /opt/git-mirrors:/opt/git-mirrors:cached,ro \
23 | -e CACHE_DIR=/opt/git-mirrors \
24 | $IMAGE node /docs_build/preview/clean.js $REPO'
25 |
--------------------------------------------------------------------------------
/.buildkite/scripts/compare_commits.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | last_successful_build_url="https://api.buildkite.com/v2/organizations/elastic/pipelines/${BUILDKITE_PIPELINE_SLUG}/builds?branch=${BUILDKITE_BRANCH}&state=passed"
4 | LAST_SUCCESSFUL_COMMIT=$(curl -s -H "Authorization: Bearer ${BUILDKITE_API_TOKEN}" $last_successful_build_url | jq -r '.[0].commit')
5 |
6 | echo "Comparing the current docs build commit ${BUILDKITE_COMMIT} to the last successful build commit ${LAST_SUCCESSFUL_COMMIT}"
7 | if [[ "$BUILDKITE_COMMIT" == "$LAST_SUCCESSFUL_COMMIT" ]]; then
8 | echo "The docs repo has not changed since the last build."
9 | buildkite-agent meta-data set "REBUILD" "false"
10 | else
11 | echo "The docs repo has changed since the last build."
12 | buildkite-agent meta-data set "REBUILD" "rebuild"
13 | fi
14 |
--------------------------------------------------------------------------------
/.buildkite/scripts/publish_air_gapped_docs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eo pipefail
3 |
4 | source ./air_gapped/build_bk.sh
5 | echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password-stdin docker.elastic.co
6 | echo "Pushing doc to $AIR_GAPPED"
7 | docker push "$AIR_GAPPED"
8 |
--------------------------------------------------------------------------------
/.buildkite/scripts/test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -euo pipefail
4 |
5 | echo "Building images for docs test"
6 | for IMAGE in build py_test node_test ruby_test integ_test diff_tool; do
7 | echo Building $IMAGE
8 | ./build_docs --docker-build $IMAGE
9 | done
10 |
11 | make
12 |
--------------------------------------------------------------------------------
/.buildkite/test_pipeline.yml:
--------------------------------------------------------------------------------
1 | steps:
2 | - label: "Execute tests"
3 | command: ".buildkite/scripts/test.sh"
4 | agents:
5 | provider: "gcp"
6 | image: family/docs-ubuntu-2204
7 | notify:
8 | - email: "docs-status@elastic.co"
9 | if: build.state == "failed" && build.branch == "master"
10 |
--------------------------------------------------------------------------------
/.bundle/config:
--------------------------------------------------------------------------------
1 | ---
2 | BUNDLE_PATH: "vendor/bundle"
3 |
--------------------------------------------------------------------------------
/.ci/clean_preview_branches.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eo pipefail
4 |
5 | # Uncomment me to test with docker.
6 | # JENKINS_HOME=/var/lib/jenkins
7 |
8 | # Use Jenkin's home as our home because that is where the ssh
9 | # known hosts file lives.
10 | export HOME=$JENKINS_HOME
11 |
12 | export REPO=git@github.com:elastic/built-docs.git
13 | export IMAGE=docker.elastic.co/docs/build:latest
14 |
15 | ./build_docs --docker-build build
16 | ssh-agent bash -c '
17 | ssh-add &&
18 | docker run --rm \
19 | -v $(pwd):/docs_build:cached,ro \
20 | -v ~/.ssh/known_hosts:/root/.ssh/known_hosts:cached,ro \
21 | -v $SSH_AUTH_SOCK:$SSH_AUTH_SOCK:cached,ro \
22 | -e SSH_AUTH_SOCK=$SSH_AUTH_SOCK \
23 | -e GITHUB_TOKEN=$GITHUB_TOKEN \
24 | -v ~/.git-references:/var/lib/jenkins/.git-references:cached,ro \
25 | -e CACHE_DIR=/var/lib/jenkins/.git-references \
26 | $IMAGE node /docs_build/preview/clean.js $REPO'
27 |
--------------------------------------------------------------------------------
/.ci/packer_cache.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eo pipefail
4 |
5 | cd $(git rev-parse --show-toplevel)
6 | for IMAGE in build py_test node_test ruby_test integ_test diff_tool; do
7 | echo Building $IMAGE
8 | ./build_docs --docker-build $IMAGE
9 | done
10 |
--------------------------------------------------------------------------------
/.ci/publish_air_gapped_docs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eo pipefail
4 |
5 | cd "$(git rev-parse --show-toplevel)"
6 | source ./air_gapped/build.sh
7 | docker push "$AIR_GAPPED"
8 |
--------------------------------------------------------------------------------
/.ci/publish_preview.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eo pipefail
4 |
5 | cd "$(git rev-parse --show-toplevel)"
6 | source ./preview/build.sh
7 | docker push "$PREVIEW"
8 |
--------------------------------------------------------------------------------
/.ci/test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eo pipefail
4 |
5 | cd $(git rev-parse --show-toplevel)
6 |
7 | # It'd be a real shame if we couldn't build the packer cache the morning after
8 | # we merge. So let's test that. We'll use the images that it builds to run the
9 | # rests of the tests anyway.
10 | echo "Building packer cache"
11 | ./.ci/packer_cache.sh
12 |
13 | make
14 |
--------------------------------------------------------------------------------
/.docker/README:
--------------------------------------------------------------------------------
1 | This contains files we copy to the docker container to build it properly.
--------------------------------------------------------------------------------
/.docker/apt/sources.list.d/nodesource.list:
--------------------------------------------------------------------------------
1 | deb https://deb.nodesource.com/node_12.x buster main
2 |
--------------------------------------------------------------------------------
/.docker/apt/sources.list.d/yarn.list:
--------------------------------------------------------------------------------
1 | deb https://dl.yarnpkg.com/debian/ stable main
2 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @elastic/docs-repo-owners
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/.github/actions/docs-preview/README.md:
--------------------------------------------------------------------------------
1 | ## About
2 |
3 | GitHub Action to create a GitHub comment with the docs-preview
4 |
5 | * [Usage](#usage)
6 | * [Configuration](#configuration)
7 | * [Customizing](#customizing)
8 | * [inputs](#inputs)
9 |
10 | ## Usage
11 |
12 | ### Configuration
13 |
14 | Given the CI GitHub action:
15 |
16 | ```yaml
17 | ---
18 | on:
19 | pull_request_target:
20 | types: [opened]
21 |
22 | permissions:
23 | pull-requests: write
24 |
25 | jobs:
26 | doc-preview:
27 | runs-on: ubuntu-latest
28 | steps:
29 | - uses: elastic/docs/.github/actions/docs-preview@master
30 | with:
31 | github-token: ${{ secrets.GITHUB_TOKEN }}
32 | repo: ${{ github.event.repository.name }}
33 | preview-path: 'guide/en/observability/master/index.html'
34 | pr: ${{ github.event.pull_request.number }}
35 |
36 | ```
37 |
38 | ## Customizing
39 |
40 | ### inputs
41 |
42 | Following inputs can be used as `step.with` keys
43 |
44 | | Name | Type | Description |
45 | |-------------------|---------|------------------------------------------------|
46 | | `preview-path` | String | Path to append to base doc url in preview link |
47 | | `repo` | String | The GitHub repository name without org |
48 | | `github-token` | String | The GitHub token |
49 | | `pr` | String | The GitHub PR number |
50 |
--------------------------------------------------------------------------------
/.github/workflows/doc-preview.yml:
--------------------------------------------------------------------------------
1 | ---
2 | name: test-docs-preview
3 |
4 | on:
5 | workflow_dispatch:
6 | pull_request_target:
7 | types: [opened]
8 |
9 | permissions:
10 | pull-requests: write
11 |
12 | jobs:
13 | doc-preview-pr:
14 | if: github.event_name == 'pull_request_target'
15 | runs-on: ubuntu-latest
16 | steps:
17 | - uses: elastic/docs/.github/actions/docs-preview@master
18 | with:
19 | github-token: ${{ secrets.GITHUB_TOKEN }}
20 | repo: ${{ github.event.repository.name }}
21 | pr: ${{ github.event.pull_request.number }}
22 |
23 | doc-preview-manual:
24 | if: github.event_name == 'workflow_dispatch'
25 | runs-on: ubuntu-latest
26 | steps:
27 | - uses: elastic/docs/.github/actions/docs-preview@action-update
28 | with:
29 | github-token: ${{ secrets.GITHUB_TOKEN }}
30 | repo: ${{ github.event.repository.name }}
31 | preview-path: 'guide/en/observability/master/index.html'
32 | pr: 2865
33 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | bin
3 | .includepath
4 | .ignorepath
5 | .settings
6 | .classpath
7 | /styles.css
8 | /styles-v1.css
9 | .project
10 | .vscode
11 | .DS_Store
12 | .repos/*/
13 | *.iml
14 | *.ipr
15 | *.iws
16 | *.log
17 | /*.xml
18 | /*.pdf
19 | metastore_db
20 | html_docs/
21 | vendor
22 | air_gapped/work
23 |
24 | # Compiled docs.js
25 | .cache/
26 | resources/web/tests/
27 |
28 | # Comes from running rspec tests
29 | .rspec_status
30 |
31 | # Comes from running rubocop
32 | .rubocop_cache
33 |
34 | # For running js tests
35 | node_modules
36 |
37 | # The Visual Studio Code Perl extension creates this file
38 | .vstags
39 |
40 | /conf.before.yaml
41 | /conf.after.yaml
42 |
--------------------------------------------------------------------------------
/.repos/README.txt:
--------------------------------------------------------------------------------
1 | The .repos directory is used to maintain a local checkout
2 | of all repos needed to build the documentation.
3 |
--------------------------------------------------------------------------------
/.rubocop.yml:
--------------------------------------------------------------------------------
1 | require:
2 | # Pretend that regexps aren't mutable. They *mostly* aren't already and
3 | # we think it is more idiomatic not to freeze them all over the place.
4 | - ./resources/style/pretend_regexp_isnt_mutable.rb
5 |
6 | AllCops:
7 | TargetRubyVersion: 2.3
8 | CacheRootDirectory: .rubocop_cache
9 | MaxFilesInCache: 1000
10 |
11 | Style/ReturnNil:
12 | Enabled: true
13 |
14 | Style/TrailingCommaInArrayLiteral:
15 | EnforcedStyleForMultiline: comma
16 |
17 | Style/TrailingCommaInHashLiteral:
18 | EnforcedStyleForMultiline: comma
19 |
20 | Style/WordArray:
21 | Enabled: false
22 |
23 | Metrics/AbcSize:
24 | Max: 20
25 |
26 | # The blocks in context and describe can be pretty long and that is ok.
27 | Metrics/BlockLength:
28 | ExcludedMethods:
29 | - context
30 | - describe
31 | - file_context
32 | - page_context
33 | - shared_context
34 | - shared_examples
35 |
36 | Metrics/ClassLength:
37 | Max: 120
38 |
39 | Metrics/MethodLength:
40 | Max: 20
41 |
--------------------------------------------------------------------------------
/Dockerfile.dockerignore:
--------------------------------------------------------------------------------
1 | *
2 | !.docker
3 | !Gemfile*
4 | !package.json
5 | !yarn.lock
6 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | # IMPORTANT: If you change this file you should run `bundle lock` to
2 | # regenerate Gemfile.lock or building the docker image will fail.
3 | source "https://rubygems.org"
4 |
5 | ruby "~> 2.5"
6 |
7 | # We commit Gemfile.lock so we're not going to have "unexpected" version bumps
8 | # of our gems. This file specifies what we think *should* work. Gemfile.lock
9 | # specifies what we *know* does work.
10 | gem "asciidoctor", "~> 2.0" # Used by the docs build
11 | gem "digest-murmurhash", "~> 1.1.1" # Used by a custom asciidoctor plugin
12 | gem "thread_safe", "~> 0.3.6" # Used by asciidoctor
13 | gem "asciidoctor-diagram", "~> 1.5" # Speculative
14 | gem "asciimath", "~> 1.0" # Speculative
15 |
16 | group :test do
17 | gem "rspec", "~> 3.8"
18 | gem "rubocop", "~> 0.64.0"
19 | end
20 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | asciidoctor (2.0.10)
5 | asciidoctor-diagram (1.5.19)
6 | asciidoctor (>= 1.5.7, < 3.x)
7 | asciimath (1.0.8)
8 | ast (2.4.0)
9 | diff-lcs (1.3)
10 | digest-murmurhash (1.1.1)
11 | jaro_winkler (1.5.3)
12 | parallel (1.18.0)
13 | parser (2.6.5.0)
14 | ast (~> 2.4.0)
15 | powerpack (0.1.2)
16 | rainbow (3.0.0)
17 | rspec (3.9.0)
18 | rspec-core (~> 3.9.0)
19 | rspec-expectations (~> 3.9.0)
20 | rspec-mocks (~> 3.9.0)
21 | rspec-core (3.9.0)
22 | rspec-support (~> 3.9.0)
23 | rspec-expectations (3.9.0)
24 | diff-lcs (>= 1.2.0, < 2.0)
25 | rspec-support (~> 3.9.0)
26 | rspec-mocks (3.9.0)
27 | diff-lcs (>= 1.2.0, < 2.0)
28 | rspec-support (~> 3.9.0)
29 | rspec-support (3.9.0)
30 | rubocop (0.64.0)
31 | jaro_winkler (~> 1.5.1)
32 | parallel (~> 1.10)
33 | parser (>= 2.5, != 2.5.1.1)
34 | powerpack (~> 0.1)
35 | rainbow (>= 2.2.2, < 4.0)
36 | ruby-progressbar (~> 1.7)
37 | unicode-display_width (~> 1.4.0)
38 | ruby-progressbar (1.10.1)
39 | thread_safe (0.3.6)
40 | unicode-display_width (1.4.1)
41 |
42 | PLATFORMS
43 | ruby
44 |
45 | DEPENDENCIES
46 | asciidoctor (~> 2.0)
47 | asciidoctor-diagram (~> 1.5)
48 | asciimath (~> 1.0)
49 | digest-murmurhash (~> 1.1.1)
50 | rspec (~> 3.8)
51 | rubocop (~> 0.64.0)
52 | thread_safe (~> 0.3.6)
53 |
54 | RUBY VERSION
55 | ruby 2.5.3p105
56 |
57 | BUNDLED WITH
58 | 1.17.3
59 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | include common.mk
2 |
3 | .PHONY: check
4 | check: unit_test integration_test
5 |
6 | .PHONY: unit_test
7 | unit_test: style style_check test_check asciidoctor_check \
8 | web_check template_check preview_check conf_check
9 |
10 | .PHONY: style
11 | style: build_docs
12 | $(DOCKER) py_test pycodestyle build_docs
13 |
14 | .PHONY: style_check
15 | style_check:
16 | $(MAKE) -C resources/style
17 |
18 | .PHONY: test_check
19 | test_check:
20 | $(MAKE) -C resources/test
21 |
22 | .PHONY: asciidoctor_check
23 | asciidoctor_check:
24 | $(MAKE) -C resources/asciidoctor
25 |
26 | .PHONY: web_check
27 | web_check:
28 | $(MAKE) -C resources/web
29 |
30 | .PHONY: template_check
31 | template_check:
32 | $(MAKE) -C template
33 |
34 | .PHONY: preview_check
35 | preview_check:
36 | $(MAKE) -C preview
37 |
38 | .PHONY: integration_test
39 | integration_test:
40 | $(MAKE) -C integtest
41 |
42 | .PHONY: conf_check
43 | conf_check: conf.yaml
44 | $(DOCKER) py_test yamale -s schema.yaml conf.yaml --no-strict
45 |
--------------------------------------------------------------------------------
/air_gapped/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM docker.elastic.co/docs/preview:latest
2 |
3 | COPY air_gapped/work/target_repo.git /docs_build/.repos/target_repo.git
4 |
5 | CMD ["/docs_build/build_docs.pl", "--in_standard_docker", "--gapped", "--preview"]
6 |
--------------------------------------------------------------------------------
/air_gapped/Dockerfile.dockerignore:
--------------------------------------------------------------------------------
1 | *
2 | !air_gapped
3 |
--------------------------------------------------------------------------------
/air_gapped/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Build the docker image for the air gapped docs.
4 |
5 | set -eo pipefail
6 |
7 | export AIR_GAPPED=docker.elastic.co/docs-private/bk_air_gapped:latest
8 |
9 | cd $(git rev-parse --show-toplevel)
10 |
11 | if [[ ! -d ~/.git-references/built-docs.git ]]; then
12 | echo "~/.git-references/built-docs.git must exist and contain a reference clone of the built-docs repo"
13 | exit 1
14 | fi
15 |
16 | # Get an up to date copy of the repo
17 | rm -rf air_gapped/work
18 | mkdir air_gapped/work
19 | git clone --reference ~/.git-references/built-docs.git --dissociate \
20 | --depth 2 --branch master --bare \
21 | git@github.com:elastic/built-docs.git air_gapped/work/target_repo.git
22 | GIT_DIR=air_gapped/work/target_repo.git git fetch
23 |
24 | # Build the images
25 | source preview/build.sh
26 | DOCKER_BUILDKIT=1 docker build -t $AIR_GAPPED -f air_gapped/Dockerfile .
27 |
--------------------------------------------------------------------------------
/air_gapped/build_bk.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Build the docker image for the air gapped docs.
4 |
5 | set -eo pipefail
6 | cd $(git rev-parse --show-toplevel)
7 |
8 | if [[ ! -d /opt/git-mirrors/built-docs.git ]]; then
9 | echo "/opt/git-mirrors/built-docs.git must exist and contain a reference clone of the built-docs repo"
10 | exit 1
11 | fi
12 |
13 | # Get an up to date copy of the repo
14 | mkdir air_gapped/work
15 | git clone --reference /opt/git-mirrors/built-docs.git --dissociate \
16 | --depth 2 --branch master --bare \
17 | git@github.com:elastic/built-docs.git air_gapped/work/target_repo.git
18 | GIT_DIR=air_gapped/work/target_repo.git git fetch
19 |
20 | # Build the images
21 | source preview/build.sh
22 | DOCKER_BUILDKIT=1 docker build -t "$AIR_GAPPED" -f air_gapped/Dockerfile .
23 |
--------------------------------------------------------------------------------
/air_gapped/test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Performs a quick and dirty local test on the air gapped docs. Because this
4 | # runs as it would in k8s you'll need to `docker kill` it when you are done.
5 | # We do have integration tests for this in integtest/spec/air_gapped_spec.rb
6 | # which are much faster because they don't use real data but this is useful too.
7 |
8 | set -e
9 |
10 | cd $(git rev-parse --show-toplevel)
11 |
12 | source ./air_gapped/build.sh
13 | id=$(docker run --rm \
14 | --publish 8000:8000/tcp \
15 | -d \
16 | $AIR_GAPPED)
17 | echo "Started the air gapped docs. Some useful commands:"
18 | echo " docker kill $id"
19 | echo " docker logs -tf $id"
20 | echo "You should eventually be able to access:"
21 | echo " http://master.localhost:8000/guide/index.html"
22 |
--------------------------------------------------------------------------------
/common.mk:
--------------------------------------------------------------------------------
1 | SHELL = /bin/bash -eu -o pipefail
2 | TOP = $(shell git rev-parse --show-toplevel)
3 | DOCKER = $(TOP)/build_docs --docker-run
4 |
--------------------------------------------------------------------------------
/extra/README:
--------------------------------------------------------------------------------
1 | HTML files included into built docs without modification.
--------------------------------------------------------------------------------
/extra/kibana_landing.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/gitconfig:
--------------------------------------------------------------------------------
1 | [safe]
2 | directory = *
3 |
--------------------------------------------------------------------------------
/github.known_hosts:
--------------------------------------------------------------------------------
1 | # from 'ssh-keyscan github.com'
2 | github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
3 | github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
4 | github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
5 |
--------------------------------------------------------------------------------
/integtest/.rspec:
--------------------------------------------------------------------------------
1 | --format documentation
2 | --color
3 | --require spec_helper
4 |
--------------------------------------------------------------------------------
/integtest/Makefile:
--------------------------------------------------------------------------------
1 | include ../common.mk
2 |
3 | .PHONY: check
4 | check: style rspec
5 |
6 | .PHONY: style
7 | style: pycodestyle rubocop
8 |
9 | .PHONY: pycodestyle
10 | pycodestyle: html_diff
11 | $(DOCKER) py_test pycodestyle html_diff
12 |
13 | .PHONY: rubocop
14 | rubocop:
15 | $(DOCKER) ruby_test rubocop
16 |
17 | .PHONY: rspec
18 | rspec:
19 | $(DOCKER) integ_test rspec
20 |
--------------------------------------------------------------------------------
/integtest/README:
--------------------------------------------------------------------------------
1 | This directory contains integration tests that can be run with `make`. While
2 | you can run rspec locally with bundler it isn't going to work outside of the
3 | docker image booted by the `Makefile`.
4 |
--------------------------------------------------------------------------------
/integtest/readme_examples/csharp/8a7e0a79b1743d5fd94d79a7106ee930.adoc:
--------------------------------------------------------------------------------
1 | [source,csharp]
2 | ----
3 | var searchResponse = _client.Search(s => s
4 | .Query(q => q
5 | .QueryString(m => m
6 | .Query("foo bar") <1>
7 | )
8 | )
9 | );
10 | ----
11 | <1> Here's the explanation for csharp
12 |
--------------------------------------------------------------------------------
/integtest/readme_examples/js/8a7e0a79b1743d5fd94d79a7106ee930.adoc:
--------------------------------------------------------------------------------
1 | [source,js]
2 | ----
3 | const result = await client.search({
4 | body: { query: 'foo bar' } <1>
5 | })
6 | ----
7 | <1> Here's the explanation for js
8 |
--------------------------------------------------------------------------------
/integtest/readme_examples/js/9fa2da152878d1d5933d483a3c2af35e.adoc:
--------------------------------------------------------------------------------
1 | [source,js-result]
2 | ----
3 | {
4 | "statusCode": 200,
5 | "body": {
6 | "hits": {
7 | "total": { "value": 0, "relation": "eq" },
8 | "hits": []
9 | }
10 | }
11 | }
12 | ----
13 |
--------------------------------------------------------------------------------
/integtest/spec/helper/dsl/convert_single.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'digest'
4 |
5 | module Dsl
6 | module ConvertSingle
7 | ##
8 | # Include a context into the current context that converts asciidoc files
9 | # into html and adds some basic assertions about the conversion process.
10 | # Pass a block that takes a `Repo` object and uses it to build and return
11 | # an index file to convert.
12 | def convert_single_before_context
13 | convert_before do |src, dest|
14 | repo = src.repo 'src'
15 | from = yield repo
16 | repo.commit 'commit outstanding'
17 | convert = dest.prepare_convert_single(from, '.')
18 | convert.convert
19 | end
20 | include_examples 'convert single'
21 | end
22 | shared_context 'convert single' do
23 | let(:out) { outputs[0] }
24 | it 'prints the "Done" when it is finished' do
25 | expect(out).to include('Done')
26 | end
27 | end
28 | end
29 | end
30 |
--------------------------------------------------------------------------------
/integtest/spec/helper/matcher/doc_body.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Matches extracts the "body" of a docs page, removing its template.
5 | RSpec::Matchers.define :doc_body do |expected|
6 | match do |actual|
7 | body = actual.sub(/.+/m, '')
8 | .sub(/.+/m, '')
9 |
10 | expected.matches? body
11 | end
12 | failure_message do
13 | "doc_body didn't match: #{expected.failure_message}"
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/integtest/spec/helper/matcher/have_same_keys.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Match the keys in two hashes, printing the extra or missing keys when there
5 | # is a failure.
6 | RSpec::Matchers.define :have_same_keys do |expected|
7 | match do |actual|
8 | expected_keys = expected.keys.sort
9 | actual_keys = actual.keys.sort
10 | expected_keys == actual_keys
11 | end
12 | failure_message do |actual|
13 | expected_keys = expected.keys.sort
14 | actual_keys = actual.keys.sort
15 |
16 | missing = expected_keys - actual_keys
17 | extra = actual_keys - expected_keys
18 |
19 | msg = 'expected keys to match exactly but'
20 | if missing
21 | msg += " missed:\n"
22 | missing.each { |k| msg += "#{k} => #{expected[k]}" }
23 | msg += "\nand" if extra
24 | end
25 | msg += " had extra:\n"
26 | extra.each { |k| msg += "#{k} => #{actual[k]}" }
27 |
28 | msg
29 | end
30 | end
31 |
--------------------------------------------------------------------------------
/integtest/spec/helper/matcher/initial_js_state.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Matches extracts the "initial javascript state" of a templated html page.
5 | # If the page doesn't contain the initial js state it'll be `nil`.
6 | RSpec::Matchers.define :initial_js_state do |expected|
7 | match do |actual|
8 | expected.matches? extract(actual)
9 | end
10 | failure_message do
11 | "doc_body didn't match: #{expected.failure_message}"
12 | end
13 |
14 | def extract(contents)
15 | start_boundry = 'window.initial_state = '
16 | start = contents.index start_boundry
17 | return unless start
18 |
19 | start += start_boundry.length
20 | stop = contents.index '', start
21 | return unless stop
22 |
23 | txt = contents[start, stop - start]
24 | JSON.parse txt, symbolize_names: true
25 | end
26 | end
27 |
--------------------------------------------------------------------------------
/integtest/spec/helper/matcher/redirect_to.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Matches http responses.
5 | RSpec::Matchers.define :redirect_to do |expected, ecode = '301'|
6 | match do |actual|
7 | return false unless actual.code == ecode
8 |
9 | expected.matches? actual['Location']
10 | end
11 | failure_message do |actual|
12 | unless actual.code == ecode
13 | return "expected status [#{ecode}] but was [#{actual.code}]. Body:\n" +
14 | actual.body
15 | end
16 |
17 | message = expected.failure_message
18 | "status was [#{ecode}] but the location didn't match: #{message}"
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/integtest/spec/helper/matcher/serve.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Matches http responses.
5 | RSpec::Matchers.define :serve do |expected|
6 | match do |actual|
7 | return false unless actual.code == '200'
8 |
9 | expected.matches? actual.body
10 | end
11 | failure_message do |actual|
12 | unless actual.code == '200'
13 | return "expected status [200] but was [#{actual.code}]. Body:\n" +
14 | actual.body
15 | end
16 |
17 | "status was [200] but the body didn't match: #{expected.failure_message}"
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/integtest/spec/helper/opened_docs.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'open3'
4 |
5 | require_relative 'serving_docs'
6 |
7 | class OpenedDocs < ServingDocs
8 | ##
9 | # Reads the logs of the preview without updating them from the subprocess.
10 | attr_reader :logs
11 |
12 | def initialize(cmd, uses_preview)
13 | super cmd
14 |
15 | wait_for_logs(/start worker processes$/, 60)
16 | return unless uses_preview
17 |
18 | wait_for_logs(/^preview server is listening on 3000$/, 60)
19 | wait_for_logs(/ Built in /, 60) # Wait for parcel as well
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/integtest/spec/helper/preview.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'open3'
4 |
5 | require_relative 'serving_docs'
6 |
7 | class Preview < ServingDocs
8 | ##
9 | # Reads the logs of the preview without updating them from the subprocess.
10 | attr_reader :logs
11 |
12 | def initialize(bare_repo, air_gapped: false)
13 | super [
14 | '/docs_build/build_docs.pl', '--in_standard_docker',
15 | '--preview', '--target_repo', bare_repo
16 | ].concat(air_gapped ? ['--gapped'] : [])
17 |
18 | wait_for_logs(/^preview server is listening on 3000$/, 60)
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/integtest/spec/helper/sh.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'open3'
4 |
5 | ##
6 | # Defines methods to run commands in example blocks like `it` and `before`.
7 | module Sh
8 | ##
9 | # Execute a command and return the result. Use this to execute commands in
10 | # `before` sections to prepare the environment to test.
11 | def sh(cmd)
12 | out, status = Open3.capture2e cmd
13 | raise_status cmd, out, status unless status.success?
14 |
15 | out
16 | end
17 |
18 | ##
19 | # Raise an exception based on a return status.
20 | def raise_status(cmd, out, status)
21 | outmsg = out == '' ? '' : " with stdout/stderr:\n#{out}"
22 | raise "#{status.exitstatus} [#{cmd}] returned [#{status}]#{outmsg}"
23 | end
24 | end
25 |
--------------------------------------------------------------------------------
/jest.js:
--------------------------------------------------------------------------------
1 | var jQuery = require("jquery");
2 | window.$ = window.jQuery = jQuery;
3 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "license": "SEE LICENSE IN README.asciidoc",
3 | "devDependencies": {
4 | "jest": "^24.8.0",
5 | "nock": "^10.0.6",
6 | "rmfr": "^2.0.0"
7 | },
8 | "scripts": {
9 | "test": "jest"
10 | },
11 | "jest": {
12 | "setupFiles": [
13 | "./jest.js"
14 | ]
15 | },
16 | "dependencies": {
17 | "dedent": "^0.7.0",
18 | "details-polyfill": "^1.1.0",
19 | "jquery": "^1.11.3",
20 | "js-cookie": "^2.1.0",
21 | "linkstate": "^1.1.1",
22 | "parcel": "^1.12.3",
23 | "postcss-assets": "^5.0.0",
24 | "preact": "^8.4.2",
25 | "preact-context": "^1.1.3",
26 | "preact-redux": "^2.1.0",
27 | "precss": "^4.0.0",
28 | "ramda": "^0.26.1",
29 | "recursive-copy": "^2.0.10",
30 | "redux": "^4.0.4",
31 | "redux-thunk": "^2.3.0",
32 | "url-search-params-polyfill": "^8.0.0",
33 | "yargs": "^14.0.0"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/preview/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM docker.elastic.co/docs/build:latest
2 |
3 | RUN mkdir /var/log/nginx
4 | RUN mkdir -p /run/nginx
5 |
6 | # Limit the memory used by git gc so we can be good k8s citizens.
7 | RUN git config --global pack.windowMemory 500m
8 | RUN git config --global pack.deltaCacheSize 10m
9 | RUN git config --global pack.threads 1
10 | # Prevent git auto-gc from warning about too many references by increasing the
11 | # threshold of unreachable objects that triggers a prune and more aggressively
12 | # pruning those unreachable objects. While we're at it we more aggressively
13 | # prune the reflog as well. It is important to prevent corruption that we do
14 | # leave *some* grace period in all of these (see the note in docs for git gc
15 | # for more about this).
16 | RUN git config --global gc.auto 20000
17 | RUN git config --global gc.pruneExpire 1.hour.ago
18 | RUN git config --global gc.reflogExpire 1.hour.ago
19 | RUN git config --global gc.reflogExpireUnreachable 1.hour.ago
20 |
21 | COPY build_docs.pl /docs_build/
22 | COPY conf.yaml /docs_build/
23 | COPY lib /docs_build/lib
24 | COPY preview /docs_build/preview
25 | COPY template /docs_build/template
26 | COPY resources /docs_build/resources
27 |
28 | ENTRYPOINT ["dumb-init", "--"]
29 | CMD ["/docs_build/build_docs.pl", "--in_standard_docker", "--preview"]
30 |
--------------------------------------------------------------------------------
/preview/Dockerfile.dockerignore:
--------------------------------------------------------------------------------
1 | *
2 | !build_docs.pl
3 | !conf.yaml
4 | !lib
5 | !preview
6 | !template
7 | !resources/web
8 | resources/web/.cache
9 | resources/web/tests
10 |
--------------------------------------------------------------------------------
/preview/Makefile:
--------------------------------------------------------------------------------
1 | include ../common.mk
2 |
3 | .PHONY: check
4 | check: jest
5 |
6 | .PHONY: jest
7 | jest:
8 | $(DOCKER) integ_test /node_modules/jest/bin/jest.js ./__test__/**
9 |
--------------------------------------------------------------------------------
/preview/buffer_itr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license
3 | * Licensed to Elasticsearch under one or more contributor
4 | * license agreements. See the NOTICE file distributed with
5 | * this work for additional information regarding copyright
6 | * ownership. Elasticsearch licenses this file to you under
7 | * the Apache License, Version 2.0 (the "License"); you may
8 | * not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing,
14 | * software distributed under the License is distributed on an
15 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 | * KIND, either express or implied. See the License for the
17 | * specific language governing permissions and limitations
18 | * under the License.
19 | */
20 |
21 | 'use strict';
22 |
23 | /**
24 | * Buffers an async iterator until its output is at least min characters
25 | * @param {Generator} itr async iterator that returns a string to buffer
26 | */
27 | module.exports = async function* (itr, min) {
28 | let buffer = "";
29 | for await (const chunk of itr) {
30 | buffer += chunk;
31 | if (buffer.length > min) {
32 | yield buffer;
33 | buffer = "";
34 | }
35 | }
36 | if (buffer !== "") {
37 | yield buffer;
38 | }
39 | };
40 |
--------------------------------------------------------------------------------
/preview/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Build the docker image for the docs preview.
4 |
5 | set -eo pipefail
6 |
7 | export IMAGE=docker.elastic.co/docs/preview
8 | export VERSION=18
9 |
10 | cd $(git rev-parse --show-toplevel)
11 | ./build_docs --docker-build build
12 | DOCKER_BUILDKIT=1 docker build -t $IMAGE:$VERSION -f preview/Dockerfile .
13 |
14 | docker tag $IMAGE:$VERSION $IMAGE:latest
15 |
16 | # docker push $IMAGE:$VERSION
17 | # docker push $IMAGE:latest
18 |
--------------------------------------------------------------------------------
/preview/test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Performs a quick and dirty local test on the preview. Because this runs as
4 | # it would in k8s you'll need to `docker kill` it when you are done. We do
5 | # have integration tests for this in integtest/spec/preview_spec.rb which are
6 | # much faster because they don't use real data but this is useful too.
7 |
8 | set -euxo pipefail
9 |
10 | cd "$(git rev-parse --show-toplevel)"
11 | ../infra/ansible/roles/git_fetch_reference/files/git-fetch-reference.sh git@github.com:elastic/built-docs.git
12 | # shellcheck source=build.sh
13 | source preview/build.sh
14 | id=$(
15 | docker run --rm \
16 | --publish 8000:8000/tcp \
17 | -v "$HOME/.git-references:/root/.git-references" \
18 | -d \
19 | docker.elastic.co/docs/preview:latest \
20 | /docs_build/build_docs.pl --in_standard_docker \
21 | --preview --reference /root/.git-references \
22 | --target_repo https://github.com/elastic/built-docs.git
23 | )
24 | echo "Started the preview. Some useful commands:"
25 | echo " docker kill $id"
26 | echo " docker logs -tf $id"
27 | echo "You should eventually be able to access:"
28 | echo " http://master.localhost:8000/guide/index.html"
29 |
--------------------------------------------------------------------------------
/renderconf.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | # Loads and then dumps conf.yaml, to test that changes to the conf.yaml don't lead to actual functional changes in behavior.
4 | # Usage:
5 | # ./renderconf.py > conf.before.yaml
6 | # (Make changes)
7 | # ./renderconf.py > conf.after.yaml
8 | # diff conf.before.yaml conf.after.yaml
9 |
10 | import yaml
11 |
12 | yaml.Dumper.ignore_aliases = lambda *args : True
13 |
14 |
15 | def main():
16 | data = yaml.load(open("conf.yaml").read(), Loader=yaml.SafeLoader)
17 | print(yaml.dump(data))
18 |
19 | if __name__ == "__main__":
20 | main()
21 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "enabled": false
4 | }
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/.rspec:
--------------------------------------------------------------------------------
1 | --format documentation
2 | --color
3 | --require spec_helper
4 |
--------------------------------------------------------------------------------
/resources/asciidoctor/Makefile:
--------------------------------------------------------------------------------
1 | include ../../common.mk
2 |
3 | .PHONY: check
4 | check: rspec rubocop
5 |
6 | .PHONY: rspec
7 | rspec:
8 | $(DOCKER) ruby_test rspec
9 |
10 | .PHONY: rubocop
11 | rubocop:
12 | $(DOCKER) ruby_test rubocop
13 |
--------------------------------------------------------------------------------
/resources/asciidoctor/README:
--------------------------------------------------------------------------------
1 | These are Elastic's extensions to Asciidoctor! The `lib` directory contains
2 | the actual extensions and the spec directory contains the tests. You can run
3 | the tests with `make` to reproduce the authoritative, in docker tests. You can
4 | also use more ruby standard stuff like:
5 |
6 | ```
7 | bundle install
8 | bundle exec rspec
9 | bundle exec rubocop
10 | ```
11 |
12 | but it is not authoritative.
13 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/alternative_language_lookup/converter.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require_relative '../delegating_converter'
4 |
5 | module AlternativeLanguageLookup
6 | ##
7 | # A Converter that adds an anchor above each listing with its digest.
8 | class Converter < DelegatingConverter
9 | def convert_listing(node)
10 | return yield unless (digest = node.attr 'digest')
11 |
12 | %( \n) + yield
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/alternative_language_lookup/report.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'json'
4 |
5 | module AlternativeLanguageLookup
6 | ##
7 | # Reports on the result of processing a lookup.
8 | class Report
9 | def self.open(path)
10 | File.open path, 'w' do |f|
11 | f.print '['
12 | yield Report.new f
13 | f.print "]\n"
14 | end
15 | end
16 |
17 | def initialize(file)
18 | @file = file
19 | @first = true
20 | end
21 |
22 | def report(listing, found_langs)
23 | if @first
24 | @first = false
25 | else
26 | @file.print ','
27 | end
28 | @file.print "\n"
29 | @file.print json(listing, found_langs)
30 | end
31 |
32 | def json(listing, found_langs)
33 | JSON.generate(
34 | source_location: {
35 | file: listing.source_location.path,
36 | line: listing.source_location.lineno,
37 | },
38 | digest: listing.digest,
39 | lang: listing.lang,
40 | found: found_langs,
41 | source: listing.source
42 | )
43 | end
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/alternative_language_lookup/summary.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'json'
4 |
5 | module AlternativeLanguageLookup
6 | ##
7 | # Summary of the alternative language listings included to be processed by
8 | # other tools.
9 | class Summary
10 | def initialize(path, lookups)
11 | @path = path
12 | @data = {}
13 | lookups.each do |source_lang, lang_lookups|
14 | @data[source_lang] = sdata = { total: 0, alternatives: {} }
15 | lang_lookups.each do |lookup|
16 | sdata[:alternatives][lookup.alternative_lang] = { found: 0 }
17 | end
18 | end
19 | end
20 |
21 | def on_listing(listing, found_langs)
22 | sdata = @data[listing.key_lang]
23 | sdata[:total] += 1
24 | adata = sdata[:alternatives]
25 | found_langs.each { |alt| adata[alt][:found] += 1 }
26 | end
27 |
28 | def save
29 | File.open @path, 'w:UTF-8' do |f|
30 | f.write JSON.pretty_generate(@data)
31 | end
32 | end
33 | end
34 | end
35 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/chunker/convert_outline.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module Chunker
4 | ##
5 | # Clean up the generated outline.
6 | module ConvertOutline
7 | def convert_outline(node, opts = {})
8 | # Fix links in the toc
9 | toclevels = opts[:toclevels] || node.document.attributes['toclevels'].to_i
10 | outline = yield
11 | cleanup_outline outline, node, toclevels
12 | outline
13 | end
14 |
15 | private
16 |
17 | def cleanup_outline(outline, node, toclevels)
18 | node.sections.each do |section|
19 | next if section.roles.include? 'exclude'
20 |
21 | outline.gsub!(%(href="##{section.id}"), %(href="#{section.id}.html")) ||
22 | raise("Couldn't fix section link for #{section.id} in #{outline}")
23 | cleanup_outline outline, section, toclevels if section.level < toclevels
24 | end
25 | end
26 | end
27 | end
28 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/chunker/extra_docinfo.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require_relative '../strip_tags'
4 | require_relative 'link'
5 |
6 | module Chunker
7 | ##
8 | # Adds extra tags tags to the to emulate docbook.
9 | module ExtraDocinfo
10 | include Link
11 | include StripTags
12 |
13 | def docinfo(location = :head, suffix = nil)
14 | info = super
15 | info += extra_chunker_head if location == :head
16 | info
17 | end
18 |
19 | private
20 |
21 | def extra_chunker_head
22 | [
23 | %( ),
24 | link_rel('up', attributes['up_section']),
25 | link_rel('prev', attributes['prev_section']),
26 | link_rel('next', attributes['next_section']),
27 | link_rel('canonical', attributes['canonical-url']),
28 | ].compact.join "\n"
29 | end
30 |
31 | def link_rel(rel, related)
32 | return unless related
33 |
34 | if related.is_a?(String)
35 | %( )
36 | else
37 | extra = related.context == :document ? related.attr('title-extra') : ''
38 | title = "#{strip_tags(link_text(related))}#{extra}"
39 | # We're in an attribute so escape quotes too!
40 | title = title.gsub '"', '"'
41 | %( )
42 | end
43 | end
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/chunker/footnotes.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module Chunker
4 | ##
5 | # Generate the footnotes.
6 | module Footnotes
7 | def footnotes(doc, subdoc)
8 | return unless doc.footnotes?
9 |
10 | source = [
11 | '',
14 | ].join "\n"
15 | doc.footnotes.clear
16 |
17 | Asciidoctor::Block.new subdoc, :pass, source: source
18 | end
19 |
20 | def convert_footnote(footnote)
21 | <<~HTML.strip
22 |
25 | HTML
26 | end
27 | end
28 | end
29 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/chunker/link.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module Chunker
4 | ##
5 | # Helpers for making links.
6 | module Link
7 | def link_href(target)
8 | case target.context
9 | when :section
10 | %(href="#{target.id}.html")
11 | when :document
12 | %(href="index.html")
13 | else
14 | raise "Can't link to #{target}"
15 | end
16 | end
17 |
18 | def link_text(target)
19 | case target.context
20 | when :section
21 | target.captioned_title
22 | when :document
23 | target.doctitle(partition: true).main.strip
24 | else
25 | raise "Can't link to #{target}"
26 | end
27 | end
28 | end
29 | end
30 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/chunker/nav.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require_relative 'link'
4 |
5 | module Chunker
6 | ##
7 | # Generate the navigation header and footer.
8 | class Nav
9 | include Link
10 |
11 | attr_reader :header, :footer
12 |
13 | def initialize(doc)
14 | body = nav_body doc
15 | @header = Asciidoctor::Block.new(doc, :pass, source: <<~HTML)
16 |
19 | HTML
20 | @footer = Asciidoctor::Block.new(doc, :pass, source: <<~HTML)
21 |
24 | HTML
25 | end
26 |
27 | private
28 |
29 | def nav_body(doc)
30 | nav = [
31 | %(),
32 | nav_link(doc.attr('prev_section'), '« ', ''),
33 | %( ),
34 | %(),
35 | nav_link(doc.attr('next_section'), '', ' »'),
36 | %( ),
37 | ]
38 | nav.compact.join "\n"
39 | end
40 |
41 | def nav_link(section, lmarker, rmarker)
42 | return unless section
43 | # section could be the document itself which shouldn't render.
44 | return unless section.context == :section
45 |
46 | %(#{lmarker}#{link_text section}#{rmarker} )
47 | end
48 | end
49 | end
50 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/cramped_include/extension.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'asciidoctor/extensions'
4 |
5 | ##
6 | # Preprocessor to support more "cramped" include statements. Usually something
7 | # like
8 | # include::resources/1.adoc[]
9 | # include::resources/2.adoc[]
10 | # will result in syntax errors if 1.adoc ends in only a single new line. Things
11 | # like callout lists require that they be followed by an empty line or else
12 | # the thing below them will get sucked into the callout list. This isn't a
13 | # problem with asciidoc, and to be better compatible with it try and work around
14 | # this problem by adding an extra new line after every sequence of lines we
15 | # include. In theory this *shouldn't* bother us because we don't include things
16 | # that are sensitive to the extra line.
17 | #
18 | class CrampedInclude < Asciidoctor::Extensions::Preprocessor
19 | def process(_document, reader)
20 | def reader.prepare_lines(data, opts = {})
21 | # The + here is important because it makes the string mutable which is
22 | # required by asciidoctor's reader in general and our compatibility
23 | # preprocessor specifically.
24 | super << +''
25 | end
26 | reader
27 | end
28 | end
29 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/delegating_converter.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Abstract base for implementing a converter that implements some conversions
5 | # and delegates the rest to the "next" converter.
6 | class DelegatingConverter
7 | ##
8 | # Setup a converter on a document.
9 | def self.setup(document)
10 | converter = yield document.converter
11 | document.instance_variable_set :@converter, converter
12 | end
13 |
14 | def initialize(delegate)
15 | @delegate = delegate
16 | end
17 |
18 | def convert(node, transform = node.node_name, opts = nil)
19 | # The behavior of this method mirrors Asciidoctor::Base.convert
20 | t = "convert_#{transform}"
21 | if respond_to? t
22 | send t, node do
23 | # Passes a block that subclasses can call to run the converter chain.
24 | @delegate.convert node, transform, opts
25 | end
26 | else
27 | @delegate.convert node, transform, opts
28 | end
29 | end
30 | end
31 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/clear_cached_titles.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require_relative '../scaffold'
4 |
5 | module DocbookCompat
6 | ##
7 | # Clears the internal cache of the title's conversion on sections that look
8 | # like they have generated ids. This is because when we generate ids we
9 | # convert titles differently.
10 | class ClearCachedTitles < TreeProcessorScaffold
11 | def process_block(block)
12 | return unless %i[section floating_title].include? block.context
13 | return unless block.id&.start_with?(block.attr('idprefix') || '_')
14 |
15 | block.instance_variable_set :@converted_title, nil
16 | end
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_example.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert example blocks.
6 | module ConvertExample
7 | def convert_example(node)
8 | return yield unless node.title
9 | return yield if node.option? 'collapsible'
10 |
11 | [
12 | '',
13 | %(
#{node.captioned_title}
),
14 | '
',
15 | node.content,
16 | '
',
17 | '
',
18 | ].compact.join "\n"
19 | end
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_floating_title.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert floating titles.
6 | module ConvertFloatingTitle
7 | def convert_floating_title(node)
8 | tag_name = %(h#{node.level + 1})
9 | [
10 | '',
11 | '<', tag_name, node.role ? %( class="#{node.role}") : nil, '>',
12 | node.id ? %(
) : nil,
13 | node.title,
14 | xpack_tag(node),
15 | '', tag_name, '>',
16 | node.attr('edit_me_link', ''),
17 | '
'
18 | ].compact.join
19 | end
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_inline_quoted.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert "inline quoted" which is mostly markup.
6 | module ConvertInlineQuoted
7 | def convert_inline_quoted(node, &block)
8 | [
9 | convert_inline_quoted_main(node, &block),
10 | xpack_tag(node),
11 | ].compact.join
12 | end
13 |
14 | private
15 |
16 | def convert_inline_quoted_main(node)
17 | case node.type
18 | when :monospaced
19 | node.attributes['role'] ||= 'literal'
20 | yield
21 | when :strong
22 | # Docbook's "strong" rendering is comically repetitive.....
23 | %(#{node.text} )
24 | else
25 | yield
26 | end
27 | end
28 | end
29 | end
30 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_open.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert open blocks.
6 | module ConvertOpen
7 | def convert_open(node)
8 | # If the open block is *totally* unadorned then it is entirely invisible.
9 | return yield unless node.style == 'open'
10 | return yield if node.id
11 | return yield if node.title?
12 |
13 | node.content
14 | end
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_paragraph.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert paragraphs.
6 | module ConvertParagraph
7 | def convert_paragraph(node)
8 | # Asciidoctor adds a \n at the end of the paragraph so we don't.
9 | [
10 | node.role ? %() : '
',
11 | paragraph_id_part(node),
12 | paragraph_title_part(node),
13 | node.content,
14 | '
',
15 | ].compact.join
16 | end
17 |
18 | def paragraph_id_part(node)
19 | return if node.id.nil? || node.id.empty?
20 |
21 | %( )
22 | end
23 |
24 | def paragraph_title_part(node)
25 | return unless node.title
26 |
27 | "#{node.title} "
28 | end
29 | end
30 | end
31 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_quote.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert quotes.
6 | module ConvertQuote
7 | def convert_quote(node)
8 | return convert_fancy_quote node if node.attr 'attribution'
9 |
10 | yield
11 | end
12 |
13 | def convert_fancy_quote(node)
14 | [
15 | '',
16 | '
',
17 | convert_quote_row(node),
18 | convert_attribution_row(node),
19 | '
',
20 | '
',
21 | ].compact.join "\n"
22 | end
23 |
24 | private
25 |
26 | def convert_quote_row(node)
27 | [
28 | '',
29 | ' ',
30 | '',
31 | node.content,
32 | ' ',
33 | ' ',
34 | ' ',
35 | ]
36 | end
37 |
38 | def convert_attribution_row(node)
39 | [
40 | '',
41 | ' ',
42 | '',
43 | %(-- #{node.attr 'attribution'} ),
44 | ' ',
45 | ' ',
46 | ]
47 | end
48 | end
49 | end
50 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_sidebar.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert lists.
6 | module ConvertSidebar
7 | def convert_sidebar(node)
8 | [
9 | %(',
14 | ].compact.join "\n"
15 | end
16 |
17 | def convert_sidebar_title(node)
18 | return '
' unless node.title
19 |
20 | [
21 | '',
22 | %(
#{node.title}
),
23 | %(
),
24 | ].join "\n"
25 | end
26 | end
27 | end
28 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/convert_table_cell.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module DocbookCompat
4 | ##
5 | # Methods to convert table cells.
6 | module ConvertTableCell
7 | def convert_table_cell(cell, data_tag, allow_formatting)
8 | result = [convert_cell_open(cell, data_tag)]
9 | result << convert_cell_content(cell, allow_formatting)
10 | result << '' << data_tag << '>'
11 | result.join
12 | end
13 |
14 | def convert_cell_open(cell, data_tag)
15 | [
16 | '<',
17 | data_tag,
18 | ' ',
19 | cell_open_attrs(cell).map { |k, v| %(#{k}="#{v}") }.join(' '),
20 | '>',
21 | ].join
22 | end
23 |
24 | def cell_open_attrs(cell)
25 | {
26 | align: cell.attr('halign'),
27 | colspan: cell.colspan == 1 ? nil : cell.colspan,
28 | rowspan: cell.rowspan == 1 ? nil : cell.rowspan,
29 | valign: cell.attr('valign'),
30 | }.compact
31 | end
32 |
33 | def convert_cell_content(cell, allow_formatting)
34 | if cell.inner_document
35 | ["\n", cell.content, "\n"].join
36 | elsif allow_formatting
37 | cell_text cell
38 | else
39 | cell.text
40 | end
41 | end
42 |
43 | def cell_text(cell)
44 | cell.style = :strong if cell.style == :header
45 | "#{cell.content.join "
\n"}
"
46 | end
47 | end
48 | end
49 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/docbook_compat/titleabbrev_handler.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require_relative '../scaffold'
4 |
5 | module DocbookCompat
6 | ##
7 | # Looks for pass blocks with `` and adds an attributes to their
8 | # parent section. This attribute is an abbreviated title used when rendering
9 | # the table of contents. This exists entirely for backwards compatibility with
10 | # docbook. It is simpler and recommended to set the `reftext` attribute.
11 | class TitleabbrevHandler < TreeProcessorScaffold
12 | def process_block(block)
13 | return unless block.context == :pass
14 |
15 | process_pass block
16 | end
17 |
18 | def process_pass(block)
19 | text = block.lines.join "\n"
20 | return unless (m = text.match %r{([^<]+) \n?}m)
21 |
22 | text.slice! m.begin(0), m.end(0)
23 | block.lines = text.split "\n"
24 | process_titleabbrev block, m[1]
25 | end
26 |
27 | private
28 |
29 | def process_titleabbrev(block, reftext)
30 | reftext = block.apply_subs reftext, [:attributes]
31 | section = block.parent
32 | section = section.parent until section.context == :section
33 | # Docbook seems to bold links to sections less than 2 so we should too.
34 | reftext = "_#{reftext}_" if section.level < 2
35 | section.attributes['reftext'] = reftext
36 | end
37 | end
38 | end
39 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/glob_include_processor/extension.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'asciidoctor/extensions'
4 | ##
5 | # Include multiple files in a directory using globbing
6 | class GlobIncludeProcessor < Asciidoctor::Extensions::IncludeProcessor
7 | def process(_doc, reader, target_glob, attributes)
8 | Dir[File.join reader.dir, target_glob].sort.reverse_each do |target|
9 | content = IO.readlines target
10 | content.unshift '' unless attributes['adjoin-option']
11 | reader.push_include content, target, target, 1, attributes
12 | end
13 | reader
14 | end
15 |
16 | def handles?(target)
17 | target.include? '*'
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/lang_override/extension.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Block macro that exists entirely to mark language overrides in a clean way
5 | # without adding additional lines to the input file which would throw off
6 | # line numbers.
7 | #
8 | class LangOverride < Asciidoctor::Extensions::BlockMacroProcessor
9 | use_dsl
10 | named :lang_override
11 | name_positional_attributes :override
12 |
13 | def process(parent, _target, attrs)
14 | Asciidoctor::Block.new(parent, :pass, source: "// #{attrs[:override]}")
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/log_util.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'asciidoctor/logging'
4 |
5 | ##
6 | # Utilities for logging in a way that makes asciidoctor happy.
7 | module LogUtil
8 | include Asciidoctor::Logging
9 |
10 | def error(location: nil, block: nil, message:)
11 | location ||= block&.source_location
12 | logger.error message_with_context message, source_location: location
13 | end
14 |
15 | def warn(location: nil, block: nil, message:)
16 | location ||= block&.source_location
17 | logger.warn message_with_context message, source_location: location
18 | end
19 |
20 | def info(location: nil, block: nil, message:)
21 | location ||= block&.source_location
22 | logger.info message_with_context message, source_location: location
23 | end
24 | end
25 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/migration_log.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'asciidoctor/extensions'
4 |
5 | ##
6 | # Infrastructure for logging migration warnings.
7 | module MigrationLog
8 | include Asciidoctor::Logging
9 |
10 | ##
11 | # Emit a migration warning if migration warnings are enabled overall and if
12 | # this particular migration warning is enabled.
13 | def migration_warn(block, cursor, key, message)
14 | # TODO: playback_attributes will almost never work propery. We should remove
15 | # this *somehow*
16 | # We have to play the block's attributes against the document, then clear
17 | # them on the way out so we can override this behavior inside a block.
18 | doc = block.document
19 | doc.playback_attributes block.attributes
20 | return unless doc.attr('migration-warnings', 'true') == 'true'
21 | return unless doc.attr("migration-warning-#{key}", 'true') == 'true'
22 |
23 | logger.warn message_with_context "MIGRATION: #{message}",
24 | source_location: cursor
25 | end
26 | end
27 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/relativize_link/extension.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'asciidoctor/extensions'
4 | require_relative '../delegating_converter'
5 |
6 | ##
7 | # Converts absolute links to some url root into relative links.
8 | module RelativizeLink
9 | def self.activate(registry)
10 | DelegatingConverter.setup(registry.document) do |doc|
11 | Converter.new doc
12 | end
13 | end
14 |
15 | ##
16 | # Converter implementation that does the conversion.
17 | class Converter < DelegatingConverter
18 | def convert_inline_anchor(node)
19 | modify node
20 | yield
21 | end
22 |
23 | def modify(node)
24 | return unless node.type == :link
25 | return unless (root = node.document.attr 'relativize-link')
26 | return unless node.target.start_with? root
27 |
28 | node.target = '/' + node.target[root.length..node.target.length]
29 | end
30 | end
31 | end
32 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/scaffold.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'asciidoctor/extensions'
4 |
5 | ##
6 | # Scaffolding for TreeProcessor extensions to automatically iterate.
7 | #
8 | class TreeProcessorScaffold < Asciidoctor::Extensions::TreeProcessor
9 | def process_block(_document)
10 | raise ::NotImplementedError,
11 | %(#{self.class} subclass must implement ##{__method__} method)
12 | end
13 |
14 | def process(document)
15 | backup = document.attributes.dup
16 | process_blocks document
17 | document.attributes.replace backup
18 | nil
19 | end
20 |
21 | def process_blocks(block)
22 | unless block.document == block
23 | block.document.playback_attributes block.attributes
24 | end
25 | process_block block
26 | sub_blocks(block).each do |sub_block|
27 | # sub_block can be nil for definition lists without a definition.
28 | # this is weird, but it is safe to skip nil here because subclasses
29 | # can't change it anyway.
30 | process_blocks sub_block if sub_block
31 | end
32 | end
33 |
34 | def sub_blocks(block)
35 | if block.context == :dlist
36 | # If there isn't a definition then the list can have a nil. So we compact.
37 | block.blocks.flatten.compact
38 | else
39 | # Dup so modifications to the list don't cause us to reprocess
40 | block.blocks.dup
41 | end
42 | end
43 | end
44 |
--------------------------------------------------------------------------------
/resources/asciidoctor/lib/strip_tags.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Strips tags from html.
5 | module StripTags
6 | def strip_tags(html)
7 | return unless html
8 |
9 | # Remove inline admonitions. This is kind of a lame way to do it but
10 | # Asciidoctor doesn't give us a better way.
11 | html = html.gsub(%r{
12 | \n
16 |
17 | }xm, '')
18 | # Comment to fix up syntax highlighting "HTML
19 | html.gsub(/<[^>]*>/, '').squeeze(' ').strip
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/relativize_link_spec.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require 'relativize_link/extension'
4 |
5 | RSpec.describe RelativizeLink do
6 | before(:each) do
7 | Asciidoctor::Extensions.register RelativizeLink
8 | end
9 |
10 | after(:each) do
11 | Asciidoctor::Extensions.unregister_all
12 | end
13 |
14 | context 'when not configured' do
15 | include_context 'convert without logs'
16 | let(:input) { 'https://www.elastic.co/guide/foo[foo]' }
17 | it "doesn't do anything" do
18 | expect(converted).to include <<~HTML.strip
19 | foo
20 | HTML
21 | end
22 | end
23 | context 'when configured' do
24 | include_context 'convert without logs'
25 | let(:convert_attributes) do
26 | { 'relativize-link' => 'https://www.elastic.co/' }
27 | end
28 | context 'when the url matches' do
29 | let(:input) { 'https://www.elastic.co/guide/foo[foo]' }
30 | it 'relativizes the link' do
31 | expect(converted).to include <<~HTML.strip
32 | foo
33 | HTML
34 | end
35 | end
36 | context "when the url doesn't match" do
37 | let(:input) { 'https://not.elastic.co/guide/foo[foo]' }
38 | it "doesn't do anything" do
39 | expect(converted).to include <<~HTML.strip
40 | foo
41 | HTML
42 | end
43 | end
44 | end
45 | end
46 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/2daa97b0218b60aec4714333e80d7e84.adoc:
--------------------------------------------------------------------------------
1 | [source,csharp]
2 | ----
3 | include::included.cs[tag=example]
4 | ----
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/5712902c12d9db15d01e8639ece9ec84.adoc:
--------------------------------------------------------------------------------
1 | [source,csharp]
2 | ----
3 | Console.WriteLine("all alternatives");
4 | ----
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/9e01493a85c06a5100ff712f6b3eead4.adoc:
--------------------------------------------------------------------------------
1 | [source,csharp]
2 | ----
3 | Console.WriteLine("there are callouts"); <1> <2>
4 | ----
5 | <1> csharp a
6 | <2> csharp b
7 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/cf49fef4c762241eee0fa3d1e7fa8b58.adoc:
--------------------------------------------------------------------------------
1 | [source,csharp]
2 | ----
3 | var searchResponse = _client.Search(s => s
4 | .Query(q => q
5 | .QueryString(m => m
6 | .Query("foo bar")
7 | )
8 | )
9 | );
10 | ----
11 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/ded0ba409b7c66489d5833dc6aa5f696.adoc:
--------------------------------------------------------------------------------
1 | [source,csharp]
2 | ----
3 | include::missing.adoc[]
4 | ----
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/fcac4757ba45b9b14f316eb9bda58584.adoc:
--------------------------------------------------------------------------------
1 | [source,not_csharp]
2 | ----
3 | Console.WriteLine("bad language");
4 | ----
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/included.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | namespace Included
3 | {
4 | class Hello
5 | {
6 | static void Main()
7 | {
8 | // tag::example[]
9 | Console.WriteLine("Hello World!");
10 | // end::example[]
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/csharp/subdir/35f7386b82f3d924b7bfffa26470ac81.adoc:
--------------------------------------------------------------------------------
1 | [source,csharp]
2 | ----
3 | Console.WriteLine("In subdir");
4 | ----
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/java/5712902c12d9db15d01e8639ece9ec84.adoc:
--------------------------------------------------------------------------------
1 | [source,java]
2 | ----
3 | System.out.println("all alternatives");
4 | ----
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/js/39f76498cca438ba11af18a7075d24c9.adoc:
--------------------------------------------------------------------------------
1 | [source,js]
2 | ----
3 | console.info('just js alternative');
4 | ----
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/js/5712902c12d9db15d01e8639ece9ec84.asciidoc:
--------------------------------------------------------------------------------
1 | [source,js]
2 | ----
3 | console.info('all alternatives');
4 | ----
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/alternative_language_lookup/js/c4f54085e4784ead2ef4a758d03edd16.adoc:
--------------------------------------------------------------------------------
1 | [source,js-result]
2 | ----
3 | 'just js result'
4 | ----
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/example1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/example1.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/example2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/example2.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/1.gif
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/1.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/2.gif
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/callouts/2.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/caution.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/caution.gif
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/caution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/caution.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/important.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/important.gif
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/important.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/important.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/note.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/note.gif
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/note.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/note.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/tip.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/tip.gif
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/tip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/tip.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/warning.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/warning.gif
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/copy_images/images/icons/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/asciidoctor/spec/resources/copy_images/images/icons/warning.png
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/cramped_include/Example.java:
--------------------------------------------------------------------------------
1 | public class Example {}
2 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/cramped_include/colist1.adoc:
--------------------------------------------------------------------------------
1 | [[P1]]
2 | === P1
3 |
4 | [[P1_1]]
5 | ==== P1.1
6 |
7 | ["source","java",subs="attributes,callouts,macros"]
8 | --------------------------------------------------
9 | words <1> <2>
10 | --------------------------------------------------
11 | <1> foo
12 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/cramped_include/colist2.adoc:
--------------------------------------------------------------------------------
1 | [[P2]]
2 | === P2
3 |
4 | [[P2_1]]
5 | ==== P2.1
6 |
7 | ["source","java",subs="attributes,callouts,macros"]
8 | --------------------------------------------------
9 | words <1> <2>
10 | --------------------------------------------------
11 | <1> foo
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/does_not_break_line_numbers/missing_callout.adoc:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 | <1> callout
4 |
5 | This line is required or asciidoctor screws up the error reporting.
6 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/appendix1.adoc:
--------------------------------------------------------------------------------
1 | [appendix]
2 | == Appendix 1
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/appendix2.adoc:
--------------------------------------------------------------------------------
1 | [appendix]
2 | == Appendix 2
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/bibliography1.adoc:
--------------------------------------------------------------------------------
1 | [bibliography]
2 | == Bibliography 1
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/bibliography2.adoc:
--------------------------------------------------------------------------------
1 | [bibliography]
2 | == Bibliography 2
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/chapter1.adoc:
--------------------------------------------------------------------------------
1 | == Chapter 1
2 |
3 | Words.
4 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/chapter2.adoc:
--------------------------------------------------------------------------------
1 | == Chapter 2
2 |
3 | Words.
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/colophon1.adoc:
--------------------------------------------------------------------------------
1 | [colophon]
2 | == Colophon 1
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/colophon2.adoc:
--------------------------------------------------------------------------------
1 | [colophon]
2 | == Colophon 2
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/dedication1.adoc:
--------------------------------------------------------------------------------
1 | [dedication]
2 | == Dedication 1
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/dedication2.adoc:
--------------------------------------------------------------------------------
1 | [dedication]
2 | == Dedication 2
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/float1.adoc:
--------------------------------------------------------------------------------
1 | [float]
2 | === Float 1
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/float2.adoc:
--------------------------------------------------------------------------------
1 | [float]
2 | === Float 2
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/glossary1.adoc:
--------------------------------------------------------------------------------
1 | [glossary]
2 | == Glossary 1
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/glossary2.adoc:
--------------------------------------------------------------------------------
1 | [glossary]
2 | == Glossary 2
3 |
4 | Words.
5 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/section1.adoc:
--------------------------------------------------------------------------------
1 | === Section 1
2 |
3 | Words.
4 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/edit_me/section2.adoc:
--------------------------------------------------------------------------------
1 | === Section 2
2 |
3 | Words.
4 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/elastic_compat_preprocessor/target.adoc:
--------------------------------------------------------------------------------
1 | = Target
2 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/resources/elastic_include_tagged/Example.java:
--------------------------------------------------------------------------------
1 |
2 | public class Example {
3 | public void doThings() {
4 | // tag::t1
5 | System.err.println("I'm an example");
6 | for (int i = 0; i < 10; i++) {
7 | System.err.println(i); // <1>
8 | }
9 | // end::t1
10 |
11 | // tag::t2
12 | System.err.println("I'm another example");
13 | // end::t2
14 |
15 | // tag::empty
16 | // end::empty
17 |
18 | //tag::no_leading_space
19 | System.err.println("no leading space");
20 | //end::no_leading_space
21 |
22 | // tag::empty_line
23 | System.err.println("empty list after this one");
24 |
25 | System.err.println("and before this one");
26 | // end::empty_line
27 |
28 | // end::missing_start
29 |
30 | // tag::missing_end
31 | System.err.println("this tag doesn't have any end");
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/shared_examples/does_not_break_line_numbers.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | RSpec.shared_examples "doesn't break line numbers" do
4 | context "doesn't break line numbers" do
5 | include_context 'convert with logs'
6 | context 'when there is an error in the main asciidoc file' do
7 | let(:input) do
8 | <<~ASCIIDOC
9 | ---
10 | ---
11 | <1> callout
12 | ASCIIDOC
13 | end
14 | it 'reports the right line for the error' do
15 | expect(logs).to eq('WARN: : line 3: no callout found for <1>')
16 | end
17 | end
18 |
19 | context 'when there is an error in an included file' do
20 | let(:included) do
21 | 'resources/does_not_break_line_numbers/missing_callout.adoc'
22 | end
23 | let(:input) { "include::#{included}[]" }
24 | let(:expected) { "WARN: #{included}: line 3: no callout found for <1>" }
25 | it 'reports the right line for the error' do
26 | expect(logs).to eq(expected)
27 | end
28 | end
29 | end
30 | end
31 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/snippets/snippet.console:
--------------------------------------------------------------------------------
1 | GET /
2 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/snippets/snippet.ece:
--------------------------------------------------------------------------------
1 | GET /
2 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/snippets/snippet.ess:
--------------------------------------------------------------------------------
1 | GET /
2 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/snippets/snippet.kibana:
--------------------------------------------------------------------------------
1 | GET /api/security/role/my_kibana_role
2 |
--------------------------------------------------------------------------------
/resources/asciidoctor/spec/snippets/snippet.sense:
--------------------------------------------------------------------------------
1 | GET /
2 |
--------------------------------------------------------------------------------
/resources/readme/cat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/readme/cat.jpg
--------------------------------------------------------------------------------
/resources/readme/chunking-toc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/readme/chunking-toc.png
--------------------------------------------------------------------------------
/resources/readme/example.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | SVG
12 |
--------------------------------------------------------------------------------
/resources/readme/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/readme/screenshot.png
--------------------------------------------------------------------------------
/resources/style/Makefile:
--------------------------------------------------------------------------------
1 | include ../../common.mk
2 |
3 | .PHONY: check
4 | check: rubocop
5 |
6 | .PHONY: rubocop
7 | rubocop:
8 | $(DOCKER) ruby_test rubocop
9 |
--------------------------------------------------------------------------------
/resources/style/pretend_regexp_isnt_mutable.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | module RuboCop
4 | module AST
5 | # Patches rubocop's Node so it considers regexps immutable. They already
6 | # are *mostly* immutable and we find it more idiomatic to pretend that
7 | # they are actually immutable.
8 | class Node
9 | MUTABLE_LITERALS = remove_const(:MUTABLE_LITERALS) - [:regexp]
10 | remove_const :IMMUTABLE_LITERALS
11 | IMMUTABLE_LITERALS = (LITERALS - MUTABLE_LITERALS).freeze
12 | end
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/resources/test/Makefile:
--------------------------------------------------------------------------------
1 | include ../../common.mk
2 |
3 | .PHONY: check
4 | check: rubocop
5 |
6 | .PHONY: rubocop
7 | rubocop:
8 | $(DOCKER) ruby_test rubocop
9 |
--------------------------------------------------------------------------------
/resources/test/dsl/file_context.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require_relative '../matcher/file_exist'
4 |
5 | ##
6 | # Create a context to assert things about a file. By default it just
7 | # asserts that the file was created but if you pass a block you can add
8 | # assertions on `contents`.
9 | # IMPORTANT: This requires a function to be in scope named `dest_file` that
10 | # resolves the file name into the file's path.
11 | def file_context(name, file_name = name, &block)
12 | context "for #{name}" do
13 | include_context 'Dsl_file', file_name
14 |
15 | # Yield to the block to add more tests.
16 | class_exec(&block) if block
17 | end
18 | end
19 | RSpec.shared_context 'Dsl_file' do |file_name|
20 | let(:file) do
21 | dest_file file_name
22 | end
23 | let(:contents) do
24 | File.open file, 'r:UTF-8', &:read if File.exist? file
25 | end
26 |
27 | it 'is created' do
28 | expect(file).to file_exist
29 | end
30 | end
31 |
--------------------------------------------------------------------------------
/resources/test/matcher/file_exist.rb:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | ##
4 | # Match paths that refer to an existing file.
5 | # Prefer this instead of `expect(File).to exist('path')` because the failure
6 | # message is worlds better.
7 | RSpec::Matchers.define :file_exist do
8 | match do |actual|
9 | File.exist? actual
10 | end
11 | failure_message do |actual|
12 | msg = "expected that #{actual} exists"
13 | parent = File.expand_path '..', actual
14 | parent = File.expand_path '..', parent until Dir.exist? parent
15 |
16 | entries = Dir.entries(parent).reject { |e| e.start_with? '.' }
17 | msg + " but only #{parent}/#{entries.sort} exist"
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/resources/web/Makefile:
--------------------------------------------------------------------------------
1 | include ../../common.mk
2 |
3 | .PHONY: check
4 | check: jest
5 |
6 | .PHONY: jest
7 | jest: tests
8 | $(DOCKER) node_test /node_modules/jest/bin/jest.js ./tests/** ./__test__/**
9 |
10 | .PHONY: tests
11 | tests:
12 | rm -rf tests
13 | $(DOCKER) node_test /node_modules/parcel/bin/cli.js build ./docs_js/__tests__/**/* ./docs_js/__tests__/* -d ./tests/ --target node --no-minify --no-source-maps
14 |
--------------------------------------------------------------------------------
/resources/web/docs_js/__tests__/actions/modal.test.js:
--------------------------------------------------------------------------------
1 | import * as actions from "../../actions/modal";
2 | import store from "../../store";
3 |
4 | describe("Modal actions", () => {
5 | const db = store();
6 |
7 | test("closed by default", () => {
8 | expect(db.getState().modal.isOpen).toBe(false);
9 | });
10 |
11 | test("OpenModal sets isOpen to true", () => {
12 | db.dispatch(actions.openModal());
13 | expect(db.getState().modal.isOpen).toEqual(true);
14 | });
15 |
16 | test("CloseModal sets isOpen to false", () => {
17 | db.dispatch(actions.closeModal());
18 | expect(db.getState().modal.isOpen).toEqual(false);
19 | });
20 | });
21 |
--------------------------------------------------------------------------------
/resources/web/docs_js/__tests__/actions/settings.test.js:
--------------------------------------------------------------------------------
1 | import Cookies from "../../../../../../node_modules/js-cookie";
2 | import * as actions from "../../actions/settings";
3 | import store from "../../store";
4 |
5 | describe("saveSettings", () => {
6 | const db = store({modal: {isOpen: true}});
7 |
8 | test("the modal is open", () => {
9 | expect(db.getState().modal.isOpen).toBe(true);
10 | });
11 |
12 | test("it converts a map to list of tuples", () => {
13 | const setCookies = jest.fn();
14 | const saveSettings = actions._saveSettings(setCookies);
15 | db.dispatch(saveSettings({
16 | console_url: "c",
17 | language: "en"
18 | }));
19 |
20 | expect(setCookies).toHaveBeenCalledWith([["console_url", "c"], ["language", "en"]]);
21 | });
22 |
23 | test("it updates the store", () => {
24 | const settings = db.getState().settings;
25 | expect(settings).toEqual({
26 | console_url: "c",
27 | language: "en"
28 | });
29 | });
30 |
31 | test("it closes the modal", () => {
32 | expect(db.getState().modal.isOpen).toBe(false);
33 | });
34 | });
35 |
36 | describe("setCookies", () => {
37 | test("it iterates and saves cookies", () => {
38 | actions.setCookies([["a", "b"], ["c", "d"]]);
39 |
40 | expect(Cookies.get("a")).toBe("b");
41 | expect(Cookies.get("c")).toBe("d");
42 | });
43 | });
44 |
--------------------------------------------------------------------------------
/resources/web/docs_js/__tests__/components/modal.test.js:
--------------------------------------------------------------------------------
1 | import {newStore} from "../../store";
2 | import {mount} from "../../components/mount";
3 | import Modal from "../../components/modal";
4 |
5 | describe("Modal component", () => {
6 | let div;
7 | beforeAll(() => {
8 | div = document.createElement('div');
9 | });
10 |
11 | afterEach(() => {
12 | div.innerHTML = '';
13 | });
14 |
15 | test("it's hidden when modal.isOpen is false", () => {
16 | const db = newStore({modal: {isOpen: false}});
17 | mount({el: div, Component: Modal, store: db});
18 | const el = div.querySelector("#settings_modal_bg");
19 | expect(el).toBe(null);
20 | });
21 |
22 | test("it's shown when modal.isOpen is true", () => {
23 | const db = newStore({modal: {isOpen: true}});
24 | mount({el: div, Component: Modal, store: db});
25 | const el = div.querySelector("#settings_modal_bg");
26 |
27 | expect(el).not.toBeNull();
28 | });
29 |
30 | test("Clicking close, closes the modal", () => {
31 | const db = newStore({modal: {isOpen: true}});
32 | mount({el: div, Component: Modal, store: db});
33 | const el = div.querySelector(".settings_modal-close");
34 |
35 | el.click();
36 |
37 | setTimeout(() => {
38 | const final = div.querySelector("#settings_modal_bg");
39 | expect(final).toBe(null);
40 | }, 1);
41 | });
42 | });
43 |
--------------------------------------------------------------------------------
/resources/web/docs_js/__tests__/components/mount.test.js:
--------------------------------------------------------------------------------
1 | import {h} from "../../../../../../node_modules/preact";
2 | import {connect} from "../../../../../../node_modules/preact-redux";
3 | import {newStore} from "../../store";
4 | import {mount} from "../../components/mount";
5 |
6 | const Component = connect(state => ({
7 | msg: state.settings.msg
8 | }))(props => {props.msg} );
9 |
10 | describe("Mount component", () => {
11 | let div;
12 | beforeAll(() => {
13 | div = document.createElement('div');
14 | });
15 |
16 | afterEach(() => {
17 | div.innerHTML = '';
18 | });
19 |
20 | test("Wraps the component in a store provider", () => {
21 | const db = newStore({settings: {msg: "Hello"}});
22 | mount({el: div, Component, store: db});
23 | const el = div.querySelector("h1").innerHTML;
24 | expect(el).toBe("Hello");
25 | });
26 | });
27 |
--------------------------------------------------------------------------------
/resources/web/docs_js/__tests__/localization.test.js:
--------------------------------------------------------------------------------
1 | import * as l from "../localization";
2 | import * as R from "../../../../../node_modules/ramda";
3 |
4 | describe("Localization of strings", () => {
5 | const specs = R.toPairs(l.lang_spec);
6 |
7 | R.forEach(([phrase, {zh_cn, en}]) => {
8 | const expectedEn = en ? en : phrase;
9 |
10 | test(`Correct Chinese translation of the phrase ${phrase}`, () => {
11 | expect(l.lang_strings("zh_cn")(phrase)).toEqual(zh_cn);
12 | });
13 |
14 | test(`Correct English translation of the phrase ${phrase}`, () => {
15 | expect(l.lang_strings("en")(phrase)).toEqual(expectedEn);
16 | });
17 | }, specs);
18 |
19 | test("It throws an error for unrecognized phrases", () => {
20 | expect(() => l.lang_strings("en")("not found")).toThrow(Error);
21 | });
22 |
23 | test("It throws an error for a language entry for phrase", () => {
24 | expect(() => l.lang_strings("fr")("Save")).toThrow(Error);
25 | });
26 | });
27 |
--------------------------------------------------------------------------------
/resources/web/docs_js/actions/index.js:
--------------------------------------------------------------------------------
1 | import {combineReducers} from "../../../../../node_modules/redux";
2 | import {reducer as settingsReducer} from "./settings";
3 | import {reducer as modalReducer} from "./modal";
4 |
5 | export default combineReducers({
6 | alternatives: (state = null, _action) => state,
7 | settings: settingsReducer,
8 | modal: modalReducer
9 | })
10 |
--------------------------------------------------------------------------------
/resources/web/docs_js/actions/modal.js:
--------------------------------------------------------------------------------
1 | import {dissoc} from "../../../../../node_modules/ramda";
2 |
3 | const initialState = {isOpen: false, Component: null, props: null};
4 |
5 | const SET_MODAL = "SET_MODAL_VALUE";
6 |
7 | export const setModal = ({isOpen, Component, props}) => ({type: SET_MODAL, isOpen, Component, props});
8 | export const openModal = (Component, props) => setModal({isOpen: true, Component, props});
9 | export const closeModal = () => setModal({isOpen: false});
10 |
11 | export const reducer = (state = initialState, action) => {
12 | switch (action.type) {
13 | case SET_MODAL:
14 | return action.isOpen ? dissoc("type", action) : initialState;
15 | default:
16 | return state;
17 | }
18 | };
19 |
--------------------------------------------------------------------------------
/resources/web/docs_js/actions/settings.js:
--------------------------------------------------------------------------------
1 | import Cookies from "../../../../../node_modules/js-cookie";
2 | import {omit, merge, toPairs, forEach} from "../../../../../node_modules/ramda";
3 | import {closeModal} from "./modal";
4 |
5 | const SAVE_SETTING = "SAVE_SETTING";
6 |
7 | export const setCookies = forEach(([k, v]) => Cookies.set(k, v));
8 |
9 | // this is used as a factory so we can mock it up during tests
10 | // the function used in the app is setup below
11 | export const _saveSettings = setCookies =>
12 | m => dispatch => {
13 | const values = omit(["console_curl_password", "kibana_curl_password", "sense_curl_password", "alternativeChangeSource"], m);
14 | setCookies(toPairs(values));
15 | dispatch(closeModal());
16 | return dispatch({
17 | type: SAVE_SETTING,
18 | settings: m
19 | });
20 | };
21 |
22 | export const saveSettings = _saveSettings(setCookies);
23 |
24 | const initialState = {
25 | /*
26 | language: lang,
27 | langStrings: LangStrings,
28 | baseUrl: base_url,
29 | kibana_url,
30 | console_url,
31 | sense_url,
32 | curl_host: Cookies.get("curl_host") || "localhost:9200",
33 | curl_user: Cookies.get("curl_user"),
34 | curl_password: Cookies.get("curl_password")
35 | */
36 | };
37 |
38 | export const reducer = (state = initialState, action) => {
39 | switch (action.type) {
40 | case SAVE_SETTING:
41 | return merge(state, action.settings);
42 | default:
43 | return state;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/resources/web/docs_js/components/modal.js:
--------------------------------------------------------------------------------
1 | import {h} from "../../../../../node_modules/preact";
2 | import {connect} from "../../../../../node_modules/preact-redux";
3 | import {closeModal} from "../actions/modal";
4 |
5 | export const Modal = ({Component, props, isOpen, closeModal}) => {
6 | return isOpen && (
7 |
13 | );
14 | };
15 |
16 | export default connect(state => ({
17 | ...state.modal
18 | }), {closeModal})(Modal);
19 |
--------------------------------------------------------------------------------
/resources/web/docs_js/components/mount.js:
--------------------------------------------------------------------------------
1 | import { Provider } from '../../../../../node_modules/preact-redux';
2 | import { h, render } from '../../../../../node_modules/preact';
3 | import store from "../store";
4 |
5 | export const mount = ({el, Component, props = {}, store}) =>
6 | render(
7 | (
8 |
9 | )
10 | , el);
11 |
12 | export default (domEl, Component, opts = {}) =>
13 | mount({el: domEl[0], Component, props: opts, store: store()});
14 |
--------------------------------------------------------------------------------
/resources/web/docs_js/deps.js:
--------------------------------------------------------------------------------
1 | import _Cookies from "../../../../node_modules/js-cookie";
2 |
3 | export const jQuery = window.jQuery;
4 | export const $ = window.jQuery;
5 | export const Cookies = _Cookies;
6 |
--------------------------------------------------------------------------------
/resources/web/docs_js/store.js:
--------------------------------------------------------------------------------
1 | import thunk from '../../../../node_modules/redux-thunk';
2 | import { createStore, applyMiddleware } from '../../../../node_modules/redux';
3 | import reducer from "./actions";
4 |
5 | export const newStore = initialState =>
6 | createStore(reducer, initialState, applyMiddleware(thunk));
7 |
8 | export default initialState => {
9 | if (!window.__reduxStore) {
10 | window.__reduxStore = newStore(initialState);
11 | }
12 |
13 | return window.__reduxStore;
14 | }
15 |
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Black.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Black.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Black.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Black.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-BlackItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-BlackItalic.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-BlackItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-BlackItalic.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Bold.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Bold.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-BoldItalic.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-BoldItalic.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraBold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraBold.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraBold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraBold.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraBoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraBoldItalic.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraBoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraBoldItalic.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraLight-BETA.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraLight-BETA.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraLight-BETA.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraLight-BETA.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraLightItalic-BETA.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraLightItalic-BETA.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ExtraLightItalic-BETA.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ExtraLightItalic-BETA.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Italic.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Italic.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Light-BETA.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Light-BETA.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Light-BETA.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Light-BETA.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-LightItalic-BETA.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-LightItalic-BETA.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-LightItalic-BETA.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-LightItalic-BETA.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Medium.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Medium.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-MediumItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-MediumItalic.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-MediumItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-MediumItalic.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Regular.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Regular.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-SemiBold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-SemiBold.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-SemiBold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-SemiBold.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-SemiBoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-SemiBoldItalic.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-SemiBoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-SemiBoldItalic.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Thin-BETA.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Thin-BETA.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-Thin-BETA.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-Thin-BETA.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ThinItalic-BETA.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ThinItalic-BETA.woff
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-ThinItalic-BETA.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-ThinItalic-BETA.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-italic.var.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-italic.var.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter-upright.var.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter-upright.var.woff2
--------------------------------------------------------------------------------
/resources/web/lib/inter/Inter.var.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/inter/Inter.var.woff2
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Black.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Black.otf
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Black.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Black.woff
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Black.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Black.woff2
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Bold.otf
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Bold.woff
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Bold.woff2
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-DemiLight.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-DemiLight.otf
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-DemiLight.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-DemiLight.woff
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-DemiLight.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-DemiLight.woff2
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Light.otf
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Light.woff
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Light.woff2
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Medium.otf
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Medium.woff
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Medium.woff2
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Regular.otf
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Regular.woff
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Regular.woff2
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Thin.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Thin.otf
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Thin.woff
--------------------------------------------------------------------------------
/resources/web/lib/noto-sans-japanese/NotoSansJP-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/noto-sans-japanese/NotoSansJP-Thin.woff2
--------------------------------------------------------------------------------
/resources/web/lib/roboto-mono/roboto-mono-latin-400-normal.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/roboto-mono/roboto-mono-latin-400-normal.woff
--------------------------------------------------------------------------------
/resources/web/lib/roboto-mono/roboto-mono-latin-400-normal.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/lib/roboto-mono/roboto-mono-latin-400-normal.woff2
--------------------------------------------------------------------------------
/resources/web/lib/roboto-mono/roboto-mono.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Roboto Mono';
3 | font-style: normal;
4 | font-weight: 400;
5 | src: url(roboto-mono-latin-400-normal.woff2) format('woff2'),
6 | url(roboto-mono-latin-400-normal.woff) format('woff');
7 | }
8 |
--------------------------------------------------------------------------------
/resources/web/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: [
3 | require('precss')(),
4 | require('postcss-assets'),
5 | ],
6 | };
7 |
--------------------------------------------------------------------------------
/resources/web/static/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/android-chrome-192x192.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-114x114.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-120x120.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-144x144.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-152x152.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-180x180.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-57x57.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-60x60.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-72x72.png
--------------------------------------------------------------------------------
/resources/web/static/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/apple-icon-76x76.png
--------------------------------------------------------------------------------
/resources/web/static/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/favicon-16x16.png
--------------------------------------------------------------------------------
/resources/web/static/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/favicon-32x32.png
--------------------------------------------------------------------------------
/resources/web/static/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/favicon-96x96.png
--------------------------------------------------------------------------------
/resources/web/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/favicon.ico
--------------------------------------------------------------------------------
/resources/web/static/favicon_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/favicon_16x16.png
--------------------------------------------------------------------------------
/resources/web/static/favicon_32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/favicon_32x32.png
--------------------------------------------------------------------------------
/resources/web/static/favicon_64x64_16bit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/static/favicon_64x64_16bit.png
--------------------------------------------------------------------------------
/resources/web/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "App",
3 | "icons": [
4 | {
5 | "src": "\/android-icon-36x36.png",
6 | "sizes": "36x36",
7 | "type": "image\/png",
8 | "density": "0.75"
9 | },
10 | {
11 | "src": "\/android-icon-48x48.png",
12 | "sizes": "48x48",
13 | "type": "image\/png",
14 | "density": "1.0"
15 | },
16 | {
17 | "src": "\/android-icon-72x72.png",
18 | "sizes": "72x72",
19 | "type": "image\/png",
20 | "density": "1.5"
21 | },
22 | {
23 | "src": "\/android-icon-96x96.png",
24 | "sizes": "96x96",
25 | "type": "image\/png",
26 | "density": "2.0"
27 | },
28 | {
29 | "src": "\/android-icon-144x144.png",
30 | "sizes": "144x144",
31 | "type": "image\/png",
32 | "density": "3.0"
33 | },
34 | {
35 | "src": "\/android-icon-192x192.png",
36 | "sizes": "192x192",
37 | "type": "image\/png",
38 | "density": "4.0"
39 | }
40 | ]
41 | }
--------------------------------------------------------------------------------
/resources/web/style/air_gapped.pcss:
--------------------------------------------------------------------------------
1 | #air_gapped_footer {
2 | background: #343741;
3 | color: white;
4 | padding-top: 30px;
5 | a {
6 | color: white;
7 | &:hover {
8 | text-decoration: underline;
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/resources/web/style/calloutlist.pcss:
--------------------------------------------------------------------------------
1 | #guide .calloutlist {
2 | margin: -15px 0 15px auto;
3 | border-top: 1px solid #52576a;
4 | padding: 15px 0 0 15px;
5 | td {
6 | padding: 0;
7 | border: none;
8 | }
9 | a {
10 | text-decoration: underline;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/resources/web/style/conum.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | .conum {
3 | display: inline-block;
4 | width: 16px;
5 | height: 16px;
6 | line-height: 16px;
7 | color: #f5f7fa;
8 | background-color: #0080d5;
9 | border-radius: 100px;
10 | text-align: center;
11 | font-size: 10pt;
12 | font-weight: bold;
13 | font-family: Inter, sans-serif;
14 | font-style: normal;
15 | &::after {
16 | content: attr(data-value);
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/resources/web/style/docbook.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | div {
3 | &.chapter,
4 | &.part,
5 | &.section {
6 | margin-bottom: 2em;
7 | }
8 | }
9 |
10 | .article div.section,
11 | .book div.part,
12 | .book div.chapter,
13 | .chapter div.section {
14 | margin-top: 2em;
15 | }
16 | }
17 |
18 | .guide-section {
19 | margin-bottom: 30px;
20 | @media screen and (max-width: 992px) {
21 | padding-right: 40px;
22 | }
23 | }
24 |
25 | #sticky_content {
26 | padding-bottom: 30px;
27 | }
--------------------------------------------------------------------------------
/resources/web/style/example.pcss:
--------------------------------------------------------------------------------
1 | #guide .example {
2 | margin: 0;
3 |
4 | .title {
5 | margin: 0 0 0 10px;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/resources/web/style/icons.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | .eui-icon {
3 | background-repeat: no-repeat;
4 | background-position: 0 0;
5 | background-size: contain;
6 | display: inline-block;
7 | width: 16px;
8 | height: 16px;
9 | vertical-align: middle;
10 | &.icon-bug { background-image: inline("img/icons/bug.svg"); }
11 | &.icon-checkInCircleFilled { background-image: inline("img/icons/checkInCircleFilled.svg"); }
12 | &.icon-warningFilled { background-image: inline("img/icons/warningFilled.svg"); }
13 | }
14 | }
--------------------------------------------------------------------------------
/resources/web/style/img.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | /* 'inlinemediaobject' and 'mediaobject' are for docbook. 'image' and
3 | * 'imageblock' are for Asciidoctor. */
4 | .image, .imageblock, .inlinemediaobject, .mediaobject {
5 | img {
6 | max-width: 100%;
7 | }
8 | .title {
9 | font-weight: bold;
10 | margin-bottom: 1em;
11 | color: #333;
12 | font-style: italic;
13 | font-size: 0.9em;
14 | }
15 | }
16 | .imageblock {
17 | /* Asciidoctor emits the title *after* the image but we want it above. */
18 | margin: 32px 0 32px 0;
19 | display: flex;
20 | flex-direction: column-reverse;
21 | }
22 | .screenshot img {
23 | box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/resources/web/style/img/alert.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/resources/web/style/img/check.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/resources/web/style/img/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/resources/web/style/img/edit-me-private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/style/img/edit-me-private.png
--------------------------------------------------------------------------------
/resources/web/style/img/edit-me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/style/img/edit-me.png
--------------------------------------------------------------------------------
/resources/web/style/img/gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/style/img/gear.png
--------------------------------------------------------------------------------
/resources/web/style/img/icons/checkInCircleFilled.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/resources/web/style/img/icons/warningFilled.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/resources/web/style/img/important.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 | important
6 | Created with Sketch.
7 |
8 |
9 |
10 |
12 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/resources/web/style/img/link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/style/img/link.png
--------------------------------------------------------------------------------
/resources/web/style/img/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/style/img/minus.png
--------------------------------------------------------------------------------
/resources/web/style/img/note.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 | note
6 | Created with Sketch.
7 |
8 |
9 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/resources/web/style/img/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/resources/web/style/img/plus.png
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-beats-bb-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
13 |
15 |
16 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-cloud-bb-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
13 |
17 |
18 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-elastic-stack-bb-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-elasticsearch-bb-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
14 |
18 |
19 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-expand.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-kibana-bb-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-logstash-bb-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/icon-xpack-bb-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
14 |
18 |
19 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-apm-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / apm / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-app-search-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / apm / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-beats-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / beats / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-business-analytics-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / business-analytics / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-code-search-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / lambda / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-kibana-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / kibana / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-logging-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / logging / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-logstash-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / logstash / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-maps-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / maps / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-siem-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / security-analytics / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-site-search-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / site-search / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-stack-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / stack / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/rtpcontainer/logo-uptime-32-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | icon / product-logo / 32x32px / uptime / white
5 | Created with Sketch.
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/resources/web/style/img/tip.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 | tip
6 | Created with Sketch.
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/resources/web/style/img/warning.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/web/style/layout.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | .container, .row {
3 | &:before, &:after {
4 | content: normal;
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/resources/web/style/link.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | a {
3 | color: #0077CC;
4 | font-weight: normal;
5 | text-decoration: none;
6 | outline: none;
7 | outline-offset: 0;
8 | &:hover, &:focus {
9 | text-decoration: underline !important;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/resources/web/style/list.pcss:
--------------------------------------------------------------------------------
1 | %list-common {
2 | padding-left: 2em;
3 | margin-bottom: 24px;
4 | /* Drop margins inside of multi-level lists. */
5 | ol, ul { margin-bottom: 0 }
6 | }
7 |
8 | #guide {
9 | ul {
10 | list-style: disc;
11 | @extend %list-common;
12 | li {
13 | /* Elastic's main.css leaks into the docs and sets this to none so we
14 | * have to set it back here. */
15 | list-style: inherit;
16 | }
17 | }
18 | ol {
19 | list-style: decimal;
20 | @extend %list-common;
21 |
22 | /* Respect explicitly typed lists. */
23 | &[type=a] {
24 | list-style: lower-alpha;
25 | }
26 | &[type="1"] {
27 | list-style: decimal;
28 | }
29 | }
30 | li {
31 | padding: 0.15em 1em 0.15em 0;
32 | /* Style implicitly typed lists. */
33 | ol { list-style: lower-alpha; }
34 | li {
35 | ol { list-style: lower-roman; }
36 | li {
37 | ol { list-style: upper-alpha; }
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/resources/web/style/on_this_page.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | .heading-level-0 {
3 | display: block;
4 | }
5 |
6 | .heading-level-1 {
7 | display: block;
8 | padding-left: 1em !important;
9 | }
10 |
11 | .heading-level-2 {
12 | display: block;
13 | padding-left: 2em !important;
14 | }
15 |
16 | .heading-level-3 {
17 | display: block;
18 | padding-left: 3em !important;
19 | }
20 | }
--------------------------------------------------------------------------------
/resources/web/style/page_header.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | .page_header {
3 | padding: 1em;
4 | margin-bottom: 1em;
5 | border: 1px solid #ccc;
6 | background: #FFFFD2;
7 | color: black;
8 | display: none;
9 | }
10 |
11 | .version-warning {
12 | padding: 1em;
13 | margin-bottom: 1em;
14 | border: 1px solid #ccc;
15 | background: #FFFFD2;
16 | color: black;
17 | }
18 |
19 | .abstract .page_header,
20 | .abstract .version-warning {
21 | width: 100%;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/resources/web/style/settings_modal.pcss:
--------------------------------------------------------------------------------
1 | #settings_modal {
2 | display: inline-block;
3 | position: relative;
4 | margin: 15% auto;
5 | width: 600px;
6 | background: #f8f8f8;
7 | border: 1px solid #ddd;
8 | border-radius: 10px;
9 | padding: 2em 4em 1em;
10 | text-align: left;
11 | box-shadow: 5px 7px 7px #ccc;
12 | &_bg {
13 | position: fixed;
14 | top: 0;
15 | right: 0;
16 | bottom: 0;
17 | left: 0;
18 | background: rgba(255,255,255,0.8);
19 | z-index: 99999;
20 | text-align: center;
21 | }
22 | label {
23 | display: block;
24 | margin: 0.5em 0;
25 | color: #2b4590;
26 | }
27 | input {
28 | width: 100%;
29 | display: block;
30 | margin-bottom: 0.1em;
31 | font-family: monospace;
32 | }
33 | button {
34 | margin: 0.5em 0.5em 1em 0;
35 | background-color: #00a9e5;
36 | color: white;
37 | border: none;
38 | }
39 | }
40 |
41 | .settings_modal-close {
42 | position: absolute;
43 | top: 2px;
44 | right: 10px;
45 | font-size: 20px;
46 | color: #ccc;
47 | &:hover {
48 | color: black;
49 | cursor: pointer;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/resources/web/style/sidebar.pcss:
--------------------------------------------------------------------------------
1 | #guide .sidebar {
2 | border: 1px solid #00a9e5;
3 | border-radius: 10px;
4 | background: #fbfbfb;
5 | padding: 15px 20px 0;
6 | margin: 10px 15px 20px;
7 |
8 | .title {
9 | margin: 0;
10 | border-bottom: 1px solid #ddd;
11 | margin-bottom: 10px;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/resources/web/style/this_page.pcss:
--------------------------------------------------------------------------------
1 | #this_page {
2 | padding-bottom: 20px;
3 | display: block;
4 | border-bottom: 1px solid #dee2e6;
5 | max-height:40vh;
6 | overflow: auto;
7 | @media screen and (max-width: 992px) {
8 | display: none;
9 | }
10 | h2 {
11 | font-size: 1.5em;
12 | line-height: 1.5em;
13 | }
14 | ul {
15 | list-style: none;
16 | margin: 0;
17 | font-size: 0.85em;
18 | padding: 0;
19 | }
20 | li {
21 | line-height: 1.2em;
22 | margin-top: .3em;
23 | margin-bottom: .3em;
24 | }
25 | .active {
26 | font-weight: 700;
27 | font-style: ul;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/resources/web/style/util.pcss:
--------------------------------------------------------------------------------
1 | #guide, #air_gapped_footer {
2 | .u-text-center {
3 | text-align: center;
4 | }
5 | .u-mono {
6 | font-family:Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
7 | }
8 | .u-strikethrough {
9 | text-decoration: line-through;
10 | }
11 | .u-space-between {
12 | display: flex;
13 | justify-content: space-between;
14 | }
15 | }
--------------------------------------------------------------------------------
/resources/web/style/video.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | /* This should line up with img.pcss. */
3 | .videoblock {
4 | img {
5 | max-width: 100%;
6 | }
7 | iframe {
8 | width: 100%
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/resources/web/style/xpack.pcss:
--------------------------------------------------------------------------------
1 | #guide {
2 | .xpack_tag {
3 | background-image: inline("img/xpack-default.svg");
4 | background-repeat: no-repeat;
5 | background-position: 0 0;
6 | display: inline-block;
7 | width: 52px;
8 | height: 1em;
9 | margin-left: 10px;
10 | z-index: 1000;
11 | position: relative;
12 | vertical-align: middle;
13 | &:hover {
14 | background-image: inline("img/xpack-hover.svg ");
15 | }
16 | }
17 |
18 | /*
19 | * When we mark a floating title with xpack we do it by annotating a phrase
20 | * inside the title. That "phrase" would be rendered in a funny way
21 | * without this.
22 | */
23 | h1 > .xpack,
24 | h2 > .xpack,
25 | h3 > .xpack,
26 | h4 > .xpack,
27 | h5 > .xpack,
28 | h6 > .xpack {
29 | font-size: inherit;
30 | margin-top: inherit;
31 | margin-bottom: inherit;
32 | margin-left: inherit;
33 | margin-right: inherit;
34 | font-weight: inherit;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/resources/web/styles-v1.pcss:
--------------------------------------------------------------------------------
1 | @import './lib/bootstrap/bootstrap.css';
2 | @import './lib/inter/inter.css';
3 | @import './lib/noto-sans-japanese/noto-sans-japanese.css';
4 | @import './lib/roboto-mono/roboto-mono.css';
5 |
6 | @import './style/air_gapped.pcss';
7 | @import './style/base_styles.pcss';
8 | @import './style/alternative_picker.pcss';
9 | @import './style/admonishment.pcss';
10 | @import './style/calloutlist.pcss';
11 | @import './style/conum.pcss';
12 | @import './style/code.pcss';
13 | @import './style/console_widget.pcss';
14 | @import './style/docbook.pcss';
15 | @import './style/example.pcss';
16 | @import './style/feedback.pcss';
17 | @import './style/heading.pcss';
18 | @import './style/icons.pcss';
19 | @import './style/img.pcss';
20 | @import './style/layout.pcss';
21 | @import './style/link.pcss';
22 | @import './style/list.pcss';
23 | @import './style/nav.pcss';
24 | @import './style/on_this_page.pcss';
25 | @import './style/page_header.pcss';
26 | @import './style/rtpcontainer.pcss';
27 | @import './style/settings_modal.pcss';
28 | @import './style/sidebar.pcss';
29 | @import './style/table.pcss';
30 | @import './style/tabbed_widget.pcss';
31 | @import './style/this_page.pcss';
32 | @import './style/toc.pcss';
33 | @import './style/util.pcss';
34 | @import './style/video.pcss';
35 | @import './style/xpack.pcss';
36 | @import './style/openapi.pcss';
37 |
38 | /* test comment used to detect unminified source */
39 |
--------------------------------------------------------------------------------
/shared/cloud/cloud-login.asciidoc:
--------------------------------------------------------------------------------
1 | // tag::ess[]
2 | . Log in to the link:https://cloud.elastic.co/{ess-utm-params}[Elasticsearch Service Console].
3 | . Select your deployment on the home page in the {ess} card or go to the deployments page.
4 | +
5 | Narrow your deployments by name, ID, or choose from several other filters. To customize your view, use a combination of filters, or change the format from a grid to a list.
6 | // end::ess[]
7 |
8 | // tag::ece[]
9 | . {ece-ref}/ece-login.html[Log into the Cloud UI]
10 | . On the deployments page, select your deployment.
11 | +
12 | Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters.
13 | // end::ece[]
--------------------------------------------------------------------------------
/shared/cloud/ess-access-kibana.asciidoc:
--------------------------------------------------------------------------------
1 | // Include this file in your docs:
2 | // include::{docs-root}/shared/cloud/ess-access-kibana.asciidoc[]
3 |
4 | //[id="{p}-access-kibana"]
5 | //== Access Kibana
6 |
7 | Kibana is an open source analytics and visualization platform designed to search, view, and interact with data stored in Elasticsearch indices. Kibana is included with your subscription.
8 |
9 | To access Kibana:
10 |
11 | . Log into {ess-console}[Elastic Cloud].
12 | +
13 | TIP: If you don't have access, {ess-trial}[get a free trial].
14 |
15 | . Select your Elasticsearch Service deployment.
16 |
17 | . Under *Applications*, click the Kibana *Launch* link and wait for Kibana to open.
18 |
19 | . Log into Kibana as the `elastic` superuser to try it out. (Don't have the password? Reset it on the *Security* page for your deployment.
20 |
21 | // In production systems, you might need to control what Elasticsearch data users can access through Kibana, so you need create credentials that can be used to access the necessary Elasticsearch resources. This means granting read access to the necessary indexes, as well as access to update the `.kibana` index.
22 |
--------------------------------------------------------------------------------
/shared/cloud/ess-getting-started-obs.asciidoc:
--------------------------------------------------------------------------------
1 | // Include this file in your docs:
2 | // include::{docs-root}/shared/cloud/ess-getting-started-obs.asciidoc[]
3 |
4 | . {ess-trial}[Get a free trial].
5 |
6 | . Log into {ess-console}[{ecloud}].
7 |
8 | . Click *Create deployment*.
9 |
10 | . Give your deployment a name.
11 |
12 | . Click *Create deployment*.
13 |
14 | . Save your deployment credentials.
15 |
16 | You can find your Cloud ID and APM endpoint in your deployments
17 | list at {ess-deployments}[cloud.elastic.co]. To reset the provided
18 | password, go to the *Security* page for your deployment.
19 |
--------------------------------------------------------------------------------
/shared/cloud/ess-getting-started.asciidoc:
--------------------------------------------------------------------------------
1 | // Include this file in your docs:
2 | // include::{docs-root}/shared/cloud/ess-getting-started.asciidoc[]
3 |
4 | //[[cloud-ess-getting-started]]
5 | //== Get started with {ess}
6 |
7 | There's no faster way to get started than with Elastic Cloud:
8 |
9 | // tag::generic[]
10 | . {ess-trial}[Sign up for a free trial].
11 |
12 | . Follow the on-screen steps to create your first project.
13 | // end::generic[]
14 |
15 | That’s it! You're ready to get some data into your
16 | project.
17 |
--------------------------------------------------------------------------------
/shared/cloud/tab-widgets/cloud-login-widget.asciidoc:
--------------------------------------------------------------------------------
1 | ++++
2 |
3 |
4 |
8 | Elasticsearch Service
9 |
10 |
14 | Elastic Cloud Enterprise
15 |
16 |
17 |
21 | ++++
22 |
23 | include::../cloud-login.asciidoc[tag=ess]
24 |
25 | ++++
26 |
27 |
32 | ++++
33 |
34 | include::../cloud-login.asciidoc[tag=ece]
35 |
36 | ++++
37 |
38 |
39 | ++++
--------------------------------------------------------------------------------
/shared/discontinued.asciidoc:
--------------------------------------------------------------------------------
1 |
2 | // tag::cm-discontinued[]
3 |
4 | .Beats central management discontinued
5 | ****
6 | We have ceased development on Beats central management and
7 | are working on a comprehensive solution to replace it.
8 | Thank you for participating in the beta and providing feedback.
9 | If you have any questions or concerns, please reach out to us on the
10 | https://discuss.elastic.co/c/beats[Discuss forum].
11 | ****
12 |
13 | // end::cm-discontinued[]
--------------------------------------------------------------------------------
/shared/images/logo_cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/shared/images/logo_cloud.png
--------------------------------------------------------------------------------
/shared/images/logo_cloud_ece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elastic/docs/4bcaa5785511b21b79e1949447690cb11a6ecf08/shared/images/logo_cloud_ece.png
--------------------------------------------------------------------------------
/shared/legacy-attrs.asciidoc:
--------------------------------------------------------------------------------
1 | // Legacy URLs to specific versions of books which have been moved
2 | :marvel-13: https://www.elastic.co/guide/en/marvel/1.3/
3 | :shield-13: https://www.elastic.co/guide/en/shield/1.3/
4 |
--------------------------------------------------------------------------------
/shared/notices/README.txt:
--------------------------------------------------------------------------------
1 | This directory contains boilerplate notices for books that are released in sync with the stack
2 | versioning.
3 |
4 | page_header-maintenance.html contains the notice for the live "maintenance version" from the
5 | previous major release stream. (The last minor of the previous major.)
6 |
7 | page_header-EOL.html contains the notice for all versions that have reached their
8 | end of life (EOL) date. For the official Elastic product EOL schedule,
9 | see https://www.elastic.co/support/eol.
10 |
11 | These notices need to be set explicitly by adding a file named `page_header.html` to the same
12 | directory as the `index.asciidoc` file used to build each book. Edit the EOL notice to specify
13 | the appropriate product and version.
14 |
15 | If no page_header.html file is specified for a version older than current, the default
16 | "out of maintenance" notice is displayed:
17 |
18 | IMPORTANT: No additional bug fixes or documentation updates will be released for this version.
19 | For the latest information, see the current release documentation.
20 |
21 | Note that you can create a custom page header for any version of a book.
22 | This is useful for beta versions and when books are superseded by entirely new books.
23 | The header must be valid HTML and cannot contain comments.
--------------------------------------------------------------------------------
/shared/notices/page_header-EOL.html:
--------------------------------------------------------------------------------
1 |
2 | WARNING : Version {version} of {product} has passed its
3 | EOL date .
4 |
5 |
6 | This documentation is no longer being maintained and may be removed.
7 | If you are running this version, we strongly advise you to upgrade.
8 | For the latest information, see the
9 | current release documentation .
10 |
--------------------------------------------------------------------------------
/shared/notices/page_header-maintenance.html:
--------------------------------------------------------------------------------
1 |
2 | NOTE : You are looking at documentation for an older release.
3 | For the latest information, see the
4 | current release documentation .
5 |
--------------------------------------------------------------------------------
/shared/settings55.asciidoc:
--------------------------------------------------------------------------------
1 | You configure settings for {xpack} features in the `elasticsearch.yml`,
2 | `kibana.yml`, and `logstash.yml` configuration files.
3 |
4 | [options="header", cols="a,d,d,d"]
5 | |=======================
6 | |{xpack} Feature |{es} Settings |{kib} Settings |Logstash Settings
7 | |Development Tools |No |{kibana-ref}/dev-settings-kb.html[Yes] |No
8 | |Graph |No |{kibana-ref}/graph-settings-kb.html[Yes] |No
9 | |Machine learning |{ref}/ml-settings.html[Yes] |{kibana-ref}/ml-settings-kb.html[Yes] |No
10 | |Monitoring |{ref}/monitoring-settings.html[Yes] |{kibana-ref}/monitoring-settings-kb.html[Yes] |{logstash-ref}/settings-xpack.html#monitoring-settings[Yes]
11 | |Reporting |No |{kibana-ref}/reporting-settings-kb.html[Yes] |No
12 | .2+|Security
13 |
14 | * Auditing
15 | |{ref}/security-settings.html[Yes] |{kibana-ref}/security-settings-kb.html[Yes] |No
16 | |{ref}/auditing-settings.html[Yes] |No |No
17 | |Watcher |{ref}/notification-settings.html[Yes] |No |No
18 | |=======================
19 |
--------------------------------------------------------------------------------
/shared/settings56.asciidoc:
--------------------------------------------------------------------------------
1 | You configure settings for {xpack} features in the `elasticsearch.yml`,
2 | `kibana.yml`, and `logstash.yml` configuration files.
3 |
4 | [options="header", cols="a,d,d,d"]
5 | |=======================
6 | |{xpack} Feature |{es} Settings |{kib} Settings |Logstash Settings
7 | |Development Tools |No |{kibana-ref}/dev-settings-kb.html[Yes] |No
8 | |Graph |No |{kibana-ref}/graph-settings-kb.html[Yes] |No
9 | |Machine learning |{ref}/ml-settings.html[Yes] |{kibana-ref}/ml-settings-kb.html[Yes] |No
10 | |Monitoring |{ref}/monitoring-settings.html[Yes] |{kibana-ref}/monitoring-settings-kb.html[Yes] |{logstash-ref}/settings-xpack.html#monitoring-settings[Yes]
11 | |Reporting |No |{kibana-ref}/reporting-settings-kb.html[Yes] |No
12 | .2+|Security
13 |
14 | * Auditing
15 | |{ref}/security-settings.html[Yes] |{kibana-ref}/security-settings-kb.html[Yes] |No
16 | |{ref}/auditing-settings.html[Yes] |No |No
17 | |Watcher |{ref}/notification-settings.html[Yes] |No |No
18 | |=======================
19 |
--------------------------------------------------------------------------------
/shared/settings60.asciidoc:
--------------------------------------------------------------------------------
1 | You configure settings for {xpack} features in the `elasticsearch.yml`,
2 | `kibana.yml`, and `logstash.yml` configuration files.
3 |
4 | [options="header", cols="a,d,d,d"]
5 | |=======================
6 | |{xpack} Feature |{es} Settings |{kib} Settings |Logstash Settings
7 | |Development Tools |No |{kibana-ref}/dev-settings-kb.html[Yes] |No
8 | |Graph |No |{kibana-ref}/graph-settings-kb.html[Yes] |No
9 | |Machine learning |{ref}/ml-settings.html[Yes] |{kibana-ref}/ml-settings-kb.html[Yes] |No
10 | |Management |No |No |{logstash-ref}/configuring-centralized-pipelines.html#configuration-management-settings[Yes]
11 | |Monitoring |{ref}/monitoring-settings.html[Yes] |{kibana-ref}/monitoring-settings-kb.html[Yes] |{logstash-ref}/configuring-logstash.html#monitoring-settings[Yes]
12 | |Reporting |No |{kibana-ref}/reporting-settings-kb.html[Yes] |No
13 | .2+|Security
14 |
15 | * Auditing
16 | |{ref}/security-settings.html[Yes] |{kibana-ref}/security-settings-kb.html[Yes] |No
17 | |{ref}/auditing-settings.html[Yes] |No |No
18 | |Watcher |{ref}/notification-settings.html[Yes] |No |No
19 | |=======================
20 |
--------------------------------------------------------------------------------
/shared/versions.asciidoc:
--------------------------------------------------------------------------------
1 | include::versions/stack/master.asciidoc[]
--------------------------------------------------------------------------------
/shared/versions/ece/1.0.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 1.0.2
2 | :ece-version-short: 1.0
3 | :ece-version-link: current
4 |
--------------------------------------------------------------------------------
/shared/versions/ece/1.1.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 1.1.5
2 | :ece-version-short: 1.1
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/2.0.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.0.1
2 | :ece-version-short: 2.0
3 | :ece-version-link: current
4 |
--------------------------------------------------------------------------------
/shared/versions/ece/2.1.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.1.1
2 | :ece-version-short: 2.1
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/2.2.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.2.3
2 | :ece-version-short: 2.2
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/2.3.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.3.2
2 | :ece-version-short: 2.3
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/2.4.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.4.3
2 | :ece-version-short: 2.4
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/2.5.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.5.1
2 | :ece-version-short: 2.5
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/current.asciidoc:
--------------------------------------------------------------------------------
1 | include::ms-119.asciidoc[]
2 |
--------------------------------------------------------------------------------
/shared/versions/ece/master.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 4.0.0
2 | :ece-version-short: 4.0
3 | :ece-version-link: 4.0
--------------------------------------------------------------------------------
/shared/versions/ece/ms-105.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.7.3
2 | :ece-version-short: 3.7
3 | :ece-version-link: 3.7
--------------------------------------------------------------------------------
/shared/versions/ece/ms-119.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.8.0
2 | :ece-version-short: 3.8
3 | :ece-version-link: 3.8
--------------------------------------------------------------------------------
/shared/versions/ece/ms-47.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.7.2
2 | :ece-version-short: 2.7
3 | :ece-version-link: current
4 |
--------------------------------------------------------------------------------
/shared/versions/ece/ms-49.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.8.1
2 | :ece-version-short: 2.8
3 | :ece-version-link: current
4 |
--------------------------------------------------------------------------------
/shared/versions/ece/ms-53.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.9.2
2 | :ece-version-short: 2.9
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-57.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.10.0
2 | :ece-version-short: 2.10
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-59.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.11.2
2 | :ece-version-short: 2.11
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-62.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.12.1
2 | :ece-version-short: 2.12
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-65.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.13.2
2 | :ece-version-short: 2.13
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-69.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.0.0
2 | :ece-version-short: 3.0
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-70.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.1.0
2 | :ece-version-short: 3.1
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-72.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.2.1
2 | :ece-version-short: 3.2
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-75.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.3.0
2 | :ece-version-short: 3.3
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-81.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.4.1
2 | :ece-version-short: 3.4
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/ms-92.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 3.6.2
2 | :ece-version-short: 3.6
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/ece/release-ms-41.asciidoc:
--------------------------------------------------------------------------------
1 | :ece-version: 2.6.2
2 | :ece-version-short: 2.6
3 | :ece-version-link: current
--------------------------------------------------------------------------------
/shared/versions/stack/5.5.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 5.5.3
2 | :logstash_version: 5.5.3
3 | :elasticsearch_version: 5.5.3
4 | :kibana_version: 5.5.3
5 | :branch: 5.5
6 | :minor-version: 5.5
7 | :major-version: 5.x
8 | :prev-major-version: 2.x
9 | :ece-version-link: current
10 |
11 | //////////
12 | release-state can be: released | prerelease | unreleased
13 | //////////
14 |
15 | :release-state: released
16 |
--------------------------------------------------------------------------------
/shared/versions/stack/5.6.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 5.6.16
2 | :logstash_version: 5.6.16
3 | :elasticsearch_version: 5.6.16
4 | :kibana_version: 5.6.16
5 | :branch: 5.6
6 | :minor-version: 5.6
7 | :major-version: 5.x
8 | :prev-major-version: 2.x
9 | :ece-version-link: current
10 |
11 | //////////
12 | release-state can be: released | prerelease | unreleased
13 | //////////
14 |
15 | :release-state: released
16 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.0.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.0.1
2 | :logstash_version: 6.0.1
3 | :elasticsearch_version: 6.0.1
4 | :kibana_version: 6.0.1
5 | :apm_server_version: 6.0.1
6 | :branch: 6.0
7 | :minor-version: 6.0
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 | :release-state: released
16 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.1.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.1.4
2 | :logstash_version: 6.1.4
3 | :elasticsearch_version: 6.1.4
4 | :kibana_version: 6.1.4
5 | :apm_server_version: 6.1.4
6 | :branch: 6.1
7 | :minor-version: 6.1
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 |
16 | :release-state: released
17 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.2.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.2.4
2 | :logstash_version: 6.2.4
3 | :elasticsearch_version: 6.2.4
4 | :kibana_version: 6.2.4
5 | :apm_server_version: 6.2.4
6 | :branch: 6.2
7 | :minor-version: 6.2
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 |
16 | :release-state: released
17 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.3.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.3.2
2 | :logstash_version: 6.3.2
3 | :elasticsearch_version: 6.3.2
4 | :kibana_version: 6.3.2
5 | :apm_server_version: 6.3.2
6 | :branch: 6.3
7 | :minor-version: 6.3
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 |
16 | :release-state: released
17 |
18 | ////
19 | APM Agent versions
20 | ////
21 | :apm-rum-branch: 0.x
22 | :apm-node-branch: 1.x
23 | :apm-py-branch: 3.x
24 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.4.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.4.3
2 | :logstash_version: 6.4.3
3 | :elasticsearch_version: 6.4.3
4 | :kibana_version: 6.4.3
5 | :apm_server_version: 6.4.3
6 | :branch: 6.4
7 | :minor-version: 6.4
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 |
16 | :release-state: released
17 |
18 | ////
19 | APM Agent versions
20 | ////
21 | :apm-rum-branch: 0.x
22 | :apm-node-branch: 1.x
23 | :apm-py-branch: 3.x
24 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.5.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.5.4
2 | :logstash_version: 6.5.4
3 | :elasticsearch_version: 6.5.4
4 | :kibana_version: 6.5.4
5 | :apm_server_version: 6.5.4
6 | :branch: 6.5
7 | :minor-version: 6.5
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 |
16 | :release-state: released
17 |
18 | ////
19 | APM Agent versions
20 | ////
21 | :apm-go-branch: 1.x
22 | :apm-java-branch: 1.x
23 | :apm-rum-branch: 2.x
24 | :apm-node-branch: 2.x
25 | :apm-py-branch: 4.x
26 | :apm-ruby-branch: 3.x
27 | :apm-dotnet-branch: 1.x
28 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.6.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.6.2
2 | :logstash_version: 6.6.2
3 | :elasticsearch_version: 6.6.2
4 | :kibana_version: 6.6.2
5 | :apm_server_version: 6.6.2
6 | :branch: 6.6
7 | :minor-version: 6.6
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 |
16 | :release-state: released
17 |
18 | ////
19 | APM Agent versions
20 | ////
21 | :apm-go-branch: 1.x
22 | :apm-java-branch: 1.x
23 | :apm-rum-branch: 3.x
24 | :apm-node-branch: 4.x
25 | :apm-py-branch: 5.x
26 | :apm-ruby-branch: 3.x
27 | :apm-dotnet-branch: 1.x
28 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.7.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.7.2
2 | :logstash_version: 6.7.2
3 | :elasticsearch_version: 6.7.2
4 | :kibana_version: 6.7.2
5 | :apm_server_version: 6.7.2
6 | :branch: 6.7
7 | :minor-version: 6.7
8 | :major-version: 6.x
9 | :prev-major-version: 5.x
10 | :ece-version-link: current
11 |
12 | //////////
13 | release-state can be: released | prerelease | unreleased
14 | //////////
15 |
16 | :release-state: released
17 |
18 | ////
19 | APM Agent versions
20 | ////
21 | :apm-go-branch: 1.x
22 | :apm-java-branch: 1.x
23 | :apm-rum-branch: 4.x
24 | :apm-node-branch: 4.x
25 | :apm-py-branch: 5.x
26 | :apm-ruby-branch: 3.x
27 | :apm-dotnet-branch: 1.x
28 |
--------------------------------------------------------------------------------
/shared/versions/stack/6.8.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 6.8.23
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 6.8.23
6 | :logstash_version: 6.8.23
7 | :elasticsearch_version: 6.8.23
8 | :kibana_version: 6.8.23
9 | :apm_server_version: 6.8.23
10 | :branch: 6.8
11 | :minor-version: 6.8
12 | :major-version: 6.x
13 | :prev-major-version: 5.x
14 | :ecs_version: 1.0
15 | :ece-version-link: current
16 |
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 4.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.0.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.0.1
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.0.1
6 | :logstash_version: 7.0.1
7 | :elasticsearch_version: 7.0.1
8 | :kibana_version: 7.0.1
9 | :apm_server_version: 7.0.1
10 | :branch: 7.0
11 | :minor-version: 7.0
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.0
15 | :ece-version-link: current
16 |
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.1.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.1.1
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.1.1
6 | :logstash_version: 7.1.1
7 | :elasticsearch_version: 7.1.1
8 | :kibana_version: 7.1.1
9 | :apm_server_version: 7.1.1
10 | :branch: 7.1
11 | :minor-version: 7.1
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.0
15 | :ece-version-link: current
16 |
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.10.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.10.2
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.10.2
6 | :logstash_version: 7.10.2
7 | :elasticsearch_version: 7.10.2
8 | :kibana_version: 7.10.2
9 | :apm_server_version: 7.10.2
10 | :branch: 7.10
11 | :minor-version: 7.10
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :major-version-only: 7
15 | :ecs_version: 1.6
16 | :ece-version-link: current
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 | :release-state: released
21 |
22 | //////////
23 | is-current-version can be: true | false
24 | //////////
25 | :is-current-version: false
26 |
27 | ////
28 | APM Agent versions
29 | ////
30 | :apm-go-branch: 1.x
31 | :apm-java-branch: 1.x
32 | :apm-rum-branch: 5.x
33 | :apm-node-branch: 4.x
34 | :apm-php-branch: master
35 | :apm-py-branch: 5.x
36 | :apm-ruby-branch: 3.x
37 | :apm-dotnet-branch: 1.x
38 |
39 | ////
40 | ECS Logging
41 | ////
42 | :ecs-logging: master
43 | :ecs-logging-go-logrus: master
44 | :ecs-logging-go-zap: master
45 | :ecs-logging-java: 1.x
46 | :ecs-logging-dotnet: master
47 | :ecs-logging-nodejs: master
48 | :ecs-logging-php: master
49 | :ecs-logging-python: master
50 | :ecs-logging-ruby: master
51 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.2.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.2.1
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.2.1
6 | :logstash_version: 7.2.1
7 | :elasticsearch_version: 7.2.1
8 | :kibana_version: 7.2.1
9 | :apm_server_version: 7.2.1
10 | :branch: 7.2
11 | :minor-version: 7.2
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.0
15 | :ece-version-link: current
16 |
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.3.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.3.2
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.3.2
6 | :logstash_version: 7.3.2
7 | :elasticsearch_version: 7.3.2
8 | :kibana_version: 7.3.2
9 | :apm_server_version: 7.3.2
10 | :branch: 7.3
11 | :minor-version: 7.3
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.0
15 | :ece-version-link: current
16 |
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.4.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.4.2
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.4.2
6 | :logstash_version: 7.4.2
7 | :elasticsearch_version: 7.4.2
8 | :kibana_version: 7.4.2
9 | :apm_server_version: 7.4.2
10 | :branch: 7.4
11 | :minor-version: 7.4
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.1
15 | :ece-version-link: current
16 |
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.5.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.5.2
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.5.2
6 | :logstash_version: 7.5.2
7 | :elasticsearch_version: 7.5.2
8 | :kibana_version: 7.5.2
9 | :apm_server_version: 7.5.2
10 | :branch: 7.5
11 | :minor-version: 7.5
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.2
15 | :ece-version-link: current
16 |
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.6.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.6.2
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.6.2
6 | :logstash_version: 7.6.2
7 | :elasticsearch_version: 7.6.2
8 | :kibana_version: 7.6.2
9 | :apm_server_version: 7.6.2
10 | :branch: 7.6
11 | :minor-version: 7.6
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.4
15 | :ece-version-link: current
16 | //////////
17 | release-state can be: released | prerelease | unreleased
18 | //////////
19 |
20 | :release-state: released
21 |
22 | ////
23 | APM Agent versions
24 | ////
25 | :apm-go-branch: 1.x
26 | :apm-java-branch: 1.x
27 | :apm-rum-branch: 5.x
28 | :apm-node-branch: 4.x
29 | :apm-py-branch: 5.x
30 | :apm-ruby-branch: 3.x
31 | :apm-dotnet-branch: 1.x
32 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.7.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.7.1
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.7.1
6 | :logstash_version: 7.7.1
7 | :elasticsearch_version: 7.7.1
8 | :kibana_version: 7.7.1
9 | :apm_server_version: 7.7.1
10 | :branch: 7.7
11 | :minor-version: 7.7
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :ecs_version: 1.4
15 | :ece-version-link: current
16 | //////////
17 | release-state can be: released | prerelease | unreleased
18 | //////////
19 |
20 | :release-state: released
21 |
22 | ////
23 | APM Agent versions
24 | ////
25 | :apm-go-branch: 1.x
26 | :apm-java-branch: 1.x
27 | :apm-rum-branch: 5.x
28 | :apm-node-branch: 4.x
29 | :apm-py-branch: 5.x
30 | :apm-ruby-branch: 3.x
31 | :apm-dotnet-branch: 1.x
32 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.8.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.8.1
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.8.1
6 | :logstash_version: 7.8.1
7 | :elasticsearch_version: 7.8.1
8 | :kibana_version: 7.8.1
9 | :apm_server_version: 7.8.1
10 | :branch: 7.8
11 | :minor-version: 7.8
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :major-version-only: 7
15 | :ecs_version: 1.5
16 | :ece-version-link: current
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-py-branch: 5.x
31 | :apm-ruby-branch: 3.x
32 | :apm-dotnet-branch: 1.x
33 |
--------------------------------------------------------------------------------
/shared/versions/stack/7.9.asciidoc:
--------------------------------------------------------------------------------
1 | :version: 7.9.3
2 | ////
3 | bare_version never includes -alpha or -beta
4 | ////
5 | :bare_version: 7.9.3
6 | :logstash_version: 7.9.3
7 | :elasticsearch_version: 7.9.3
8 | :kibana_version: 7.9.3
9 | :apm_server_version: 7.9.3
10 | :branch: 7.9
11 | :minor-version: 7.9
12 | :major-version: 7.x
13 | :prev-major-version: 6.x
14 | :major-version-only: 7
15 | :ecs_version: 1.5
16 | :ece-version-link: current
17 | //////////
18 | release-state can be: released | prerelease | unreleased
19 | //////////
20 |
21 | :release-state: released
22 |
23 | ////
24 | APM Agent versions
25 | ////
26 | :apm-go-branch: 1.x
27 | :apm-java-branch: 1.x
28 | :apm-rum-branch: 5.x
29 | :apm-node-branch: 4.x
30 | :apm-php-branch: master
31 | :apm-py-branch: 5.x
32 | :apm-ruby-branch: 3.x
33 | :apm-dotnet-branch: 1.x
34 |
--------------------------------------------------------------------------------
/shared/versions/stack/8.19.asciidoc:
--------------------------------------------------------------------------------
1 | 8.x.asciidoc
--------------------------------------------------------------------------------
/shared/versions/stack/README:
--------------------------------------------------------------------------------
1 | Books that are "part of the stack" include these files by looking at their
2 | branch. So the docs for Elasticsearch can use this:
3 |
4 | ```
5 | include::{asciidoc-dir}/../../shared/versions/stack/{source_branch}.asciidoc[]
6 | ```
7 |
8 | Which will resolve to the `6.3.asciidoc` file for the 6.3 branch. Or the
9 | `7.2.asciidoc` file for the 7.2 branch. Or `master.asciidoc` for the master
10 | branch.
11 |
12 | NOTE: `current.asciidoc` is never automatically used.
13 |
14 | Books outside of the stack have two choices:
15 |
16 | 1. Use the `current.asciidoc` file.
17 | 2. "Pin" theselves to some version of the stack.
18 |
19 | Using `current.asciidoc` is useful because we'll update it whenever we release
20 | a new version of the stack so the doc will automatically update on release.
21 |
22 | "Pinning" the version of the stack that a book refers to is quite useful for
23 | old versions of books for which we consistently see broken links when we release
24 | new versions of the docs. It could also be useful for books that need special
25 | care when bumping the stack version.
26 |
--------------------------------------------------------------------------------
/shared/versions/stack/current.asciidoc:
--------------------------------------------------------------------------------
1 | include::8.18.asciidoc[]
2 |
--------------------------------------------------------------------------------
/shared/versions/stack/do-not-delete_legacy-docs.asciidoc:
--------------------------------------------------------------------------------
1 | include::master.asciidoc[]
--------------------------------------------------------------------------------
/shared/versions/stack/main.asciidoc:
--------------------------------------------------------------------------------
1 | master.asciidoc
--------------------------------------------------------------------------------
/template/Makefile:
--------------------------------------------------------------------------------
1 | include ../common.mk
2 |
3 | .PHONY: check
4 | check: jest
5 |
6 | .PHONY: jest
7 | jest:
8 | $(DOCKER) node_test /node_modules/jest/bin/jest.js ./__test__/**
9 |
--------------------------------------------------------------------------------