Support for "docker stack deploy" using kubernetes as orchestrator has
been deprecated and removed, so removing this part of the template.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Experimental CLI features are enabled by default since docker 20.10, so the
instructions for enabling the features were no longer needed. Also tweaked the
description a bit to align how we describe experimental features elsewhere.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The reference pages show badges for commands and options (flags) that require
a minimum API version. While this information can be useful if an option was
added in a recent version of the Docker Engine (and API), these badges are no
longer relevant to most users if the minimum required version is quite "old".
We assume users reading these pages to be on the current version, or at most
on the version before that (which is already "unsupported"). Users running
older versions have bigger problems on their hand, so we're not accounting for
those.
So, to reduce unnecessary clutter on the page, we only show the minimum required
API version if it requires a relatively recent version of the Engine.
A new "min_api_threshold" option was added in the `_config.yml`, which specifies
the minimum required API version for which we show a badge (currently: API v1.40,
or "Docker 19.03").
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The "parent command" can be useful if the page describes a subcommand,
but generally having a link to `docker` may not provide much value.
This patch omits the "parent command" section if the parent command
is the `docker` command itself.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The "description" header included the short description of each command. In most
cases, this description was very short ("run a container"), and adding the extra
header before it only was adding extra noise.
This patch:
- removes the top "description" header
- renames the existing "extended description" header to "description" (a hidden
"extended-description" anchor is added for backward compatibility)
As the extended description can be long (hopefully!), there may be a long distance
between the `Usage` section and the `Options` section. To help users navigate
to the list of available options, an extra line is printed if an extended
description is available for the command, including a link to the corresponding
section:
> Refer to the options section for an overview of available OPTIONS for this command.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This metadata condition was used for features that were only available
on Docker Enterprise Edition ("Docker EE"), and is no longer used.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The YAML files now support a new "details_url" property for flags, which
can be set if there's an anchor on the same page, or an URL where to
find a detailed description of the flag (Currently only anchors are used).
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Some flag descriptions contain point-brackets to indicate required
options, e.g.:
--ssh stringArray SSH agent socket or keys to expose to the build (format: default|<id>[=<socket>|<key>[,<key>]])
When rendering those options as HTML, those options were not visible as
they were rendered as a HTML element.
Given that flag-descriptions are not expected to have MarkDown or HTML
formatting, we can HTML-escape them to prevent this.
This patch escapes the flag-descriptions using liquid's `esacape` command.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
See https://web.dev/external-anchors-use-rel-noopener/
Using noopener, as that addresses the security issue. "noreferer" blocks
the REFERER header, which may still be useful for some target URLs.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This replaces the JavaScript link fix script with a custom plugin,
based on the jekyll-relative-link plugin, and modified so that it
can be used as Liquid "filter".
While it borrows from the jekyll-relative-links plugin, it takes some shortcuts;
- We use the code from jekyll-relative-links plugin to find/extract
links on the page
- Relative links are converted to absolute links, using the path of
the markdown source file that's passed as argument
- After conversion to an absolute link, we strip the ".md" extension;
no attempt is made to resolve the file that's linked to. This is
different from the jekyll-relative-links plugin, which _does_ resolve
the linked file. This functionality could be added in future by
someone who has more experience with Ruby.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The JavaScript "link fix" looks to be only needed for pages
where Markdown is included, and which contain relative links.
Now that we modified all local includes to use absolute links,
the only location where links are not properly generated, is
in the reference documentation.
If broken links are found elsewhere in the website, those links
are legitimately broken, and should be fixed in the markdown
source, not fixed-up afterwards.
This patch moves the javascript to the cli.md include, so that
the script is only run on the reference pages instead of on every
page.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
When generating HTML pages, Jekyll will generate a directory named after the name
of the Markdown file, and generate an index.html file inside that directory. For
example, for a markdown file named /foo/bar/mypage.md, Jekyll generates a HTML
file named /foo/bar/mypage/index.html.
This means that all links relative to mypage.md, and expect those links to be
relative to the /foo/bar/ directory, will actually end up being relative to
/foo/bar/mypage/.
Unfortunately, Jekyll / Liquid does not have a variable that holds the parent
directory of the _markdown_ file, so we have to generate it by taking `page.path`
(which holds the absolute path of the markdownfile), and remove the filename from
that path.
After generating that path, we prepend that path to URLs linking to related
commands (parent commands and child commands), as all reference files are in the
same path.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Removing this "check" because it made the template difficult to
read, and duilding the docs won't fail if these values are missing.
If a page is empty, it's probably fast to find why anyway.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
- remove some redundant whitespace
- use "remove_first" instead of "replace", because the strings to
replace should only occur once.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
We cannot use relative links in includes, because:
- The jekyll-relative-links, is not called on includes, so
markdown-links are rendered as-is.
- These files are included in various locations on the website;
because of that, it's not possible to compose a relative link
to other Markdown files, so we're falling back to using absolute
URLs, relative to the root of the website.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The base command didn't have a description in the YAML file.
Instead of fixing that up in the template, this was fixed upstream.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Stash computed data in a variable
To avoid computing `site.data[include.datafolder][include.datafile]` multiple times for the same context.
* Revert change to hard-tab whitespace
Some commands provide a long list of options, which may
"hide" the examples section. To help discoverability, add
an anchor-link to the examples section (if present).
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The extended description usually provides a good introduction to
the command, which likely is useful to read before heading to
more detailed information (such as "which options does this command
have")
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
For some commands, the list of "related" commands is lenghty, therefore
hiding the extended description and examples below the fold, which is
not ideal.
This patch moves the "parent command", "child commands", and "related
commands" sections to the bottom of the page.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Update CLI template for "enterprise-only" commands/plugins
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* reference: mark "assemble" subcommands as enterprise-only
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* reference: mark "cluster" subcommands as enterprise-only
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* reference: mark "registry" subcommands as enterprise-only
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* reference: mark "template" subcommands as enterprise-only
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* Add features to CLI ref template
- Differentiate CLI experimental from daemon experimental
- When the whole command is experimental, point to docs for
how to get it to show up
- Make badges links where possible
- Add tooltips to badges for more context
- Document in the test.md how to make badges into links and how to use tooltips
* Go back to small /edge
* Update site front page
Add info about Editions
Reorganize components
Update headings
* Move logic of fetching content to a script
* Add v1.28 API
* Add info about versioned API