The versioned_plugins.rb ruby script crawls the github repositories of the "logstash-plugins" organization and generate the following structure:
docs/versioned-plugins ├── codecs │ ├── cef-index.asciidoc │ ├── cef-v5.0.1.asciidoc │ ├── cef-v5.0.2.asciidoc │ ├── rubydebug-index.asciidoc │ ├── rubydebug-v3.0.3.asciidoc │ ├── rubydebug-v3.0.4.asciidoc │ ├── rubydebug-v3.0.5.asciidoc ├── codecs-index.asciidoc ├── filters │ ├── mutate-index.asciidoc │ ├── mutate-v3.1.5.asciidoc │ ├── mutate-v3.1.6.asciidoc │ ├── mutate-v3.1.7.asciidoc │ ├── mutate-v3.2.0.asciidoc │ ├── ruby-index.asciidoc │ ├── ruby-v3.0.3.asciidoc │ ├── ruby-v3.1.3.asciidoc ├── filters-index.asciidoc ├── ...
- Ruby MRI
- Bundler
- GitHub Personal Access Token with "public_repo" scope: https://github.com/settings/tokens/new
- A clone of the logstash-docs repo: https://github.com/elastic/logstash-docs/
Instal dependencies with bundle install
% bundle exec ruby versioned_plugins.rb -h
Usage:
versioned_plugins.rb [OPTIONS]
Options:
--output-path OUTPUT Path to the top-level of the logstash-docs path to write the output.
--skip-existing Don't generate documentation if asciidoc file exists
--latest-only Only generate documentation for latest version of each plugin (default: false)
--repair Apply several heuristics to correct broken documentation (default: false)
--plugin-regex REGEX Only generate if plugin matches given regex (default: "logstash-(?:codec|filter|input|output)")
-h, --help print help
- generate docs for new versions of plugins (doesn't overwrite existing files)
GITHUB_TOKEN=XXXXXXXXXXXXXX bundle exec ruby versioned_plugins.rb --output-path=/tmp/elastic/logstash-docs --skip-existing
- generate docs for all versions of a specific plugin and attempt to correct asciidoc errors
GITHUB_TOKEN=XXXXXXXXXXXXXX bundle exec ruby versioned_plugins.rb --output-path=/tmp/elastic/logstash-docs --plugin-regex "logstash-input-tcp" --repair