Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
@redpanda-data/docs-extensions-and-macros
Advanced tools
Antora extensions and macros developed for Redpanda documentation.
= Antora Extensions and Macros for Redpanda Docs :url-org: https://github.com/redpanda-data :url-project: {url-org}/docs-extensions-and-macros :url-playbook: {url-org}/docs-site :url-git: https://git-scm.com :url-git-dl: {url-git}/downloads :url-nodejs: https://nodejs.org :url-nodejs-releases: https://github.com/nodejs/Release#release-schedule :url-nvm-install: {url-nvm}#installation :idprefix: :idseparator: - ifdef::env-github[] :important-caption: :exclamation: :note-caption: :paperclip: endif::[] :toc: :toc-title: Contents
toc::[]
This library provides https://docs.antora.org/antora/latest/extend/extensions/[Antora extensions] and https://docs.asciidoctor.org/asciidoctor.js/latest/extend/extensions/register/[Asciidoc macros] developed for Redpanda documentation.
== Prerequisites
To use this library, you must have {url-nodejs}[Node.js] 16 or higher installed on your machine.
If this command fails with an error, you don't have Node.js installed.
When you have Node.js installed, use the following command to install the antora-extensions-and-macros
package in your project:
To use the development version instead, refer to the <<development-quickstart,Development Quickstart>>.
== Extensions
This section documents the Antora extensions that are provided by this library and how to configure them.
IMPORTANT: Be sure to register each extension under the antora.extensions
key in the playbook, not the asciidoc.extensions
key.
=== Algolia indexer
This extension generates an Algolia index for each version of each component. The index entries are then saved to Algolia using the saveObjects()
method, and also saved as JSON files in the site catalog. JSON files are published to the site root using the following template: algolia-<component>-<version>.json
.
NOTE: Only pages that include an <article>
element with the doc
class are indexed. Pages marked as "noindex" for "robots" are skipped.
==== Environment variables
ALGOLIA_ADMIN_API_KEY
(required)ALGOLIA_APP_ID
(required)ALGOLIA_INDEX_NAME
(required)==== Configuration options
The extension accepts the following configuration options:
excludes (optional):: Any elements, classes, or IDs that you want to exclude from the index. index-latest-only (optional):: Whether to index all versions or just the latest version of a component.
==== Registration example
antora:
extensions:
- require: '@redpanda-data/docs-extensions-and-macros/extensions/algolia-indexer/index'
excludes: ['.thumbs','script', '.page-versions','.feedback-section','.banner-container']
index-latest-only: true
=== Version fetcher
This extension fetches the latest release tag and latest release commit hash from http://github.com/redpanda-data/redpanda. These values are then assigned to the full-version
and latest-release-commit
attributes of the latest version of the Redpanda documentation, respectively.
It also fetches the latest version of Redpanda Console and assigns it to the latest-console-version
attribute in the playbook so that all components have access to it.
==== Environment variables
REDPANDA_GITHUB_TOKEN
(optional): A Personal access token (PAT) that has repo
permissions for the redpanda-data
GitHub organization.NOTE: If you don't set the environment variable, the latest versions may not be made available to your build. When the environment variable is not set, the extension sends unauthenticated requests to GitHub. Unauthenticated requests may result in hitting the API rate limit and cause GitHub to reject the request.
==== Registration example
antora:
extensions:
- '@redpanda-data/docs-extensions-and-macros/extensions/version-fetcher/set-latest-version'
=== Global attributes
This extension collects Asciidoc attributes from the {url-playbook}[shared
component] and makes them available to all component versions. Having global attributes is useful for consistent configuration of local and production builds.
==== Registration example
antora:
extensions:
- require: '@redpanda-data/docs-extensions-and-macros/extensions/add-global-attributes'
=== Replace attributes in attachments
This extension replaces AsciiDoc attribute placeholders with their respective values in attachment files, such as CSS, HTML, and YAML.
replace-attributes-in-attachments: true
.@
character is removed from attribute values to prevent potential issues with CSS or HTML syntax.==== Registration example
antora:
extensions:
- '@redpanda-data/docs-extensions-and-macros/extensions/replace-attributes-in-attachments'
=== Aggregate terms
This extension aggregates all term pages from the {url-playbook}[shared
component] and does the following:
term-name
, hover-text
, and link
attributes available to the <<glossterm-macro,glossterm
macro>>.reference:glossary.adoc
in all versions of all components and appends the contents of each term file to the glossary in alphabetical order.glossary-page
attribute of the <<glossterm, glossterm
macro>> to reference:glossary.adoc
so that terms can be linked to the glossary page.==== Registration example
antora:
extensions:
- '@redpanda-data/docs-extensions-and-macros/extensions/aggregate-terms'
=== Unlisted pages
This extension identifies and logs any pages that aren't listed in the navigation (nav) file of each version of each component. It then optionally adds these unlisted pages to the end of the navigation tree under a configurable heading.
IMPORTANT: By default, this extension excludes components named 'api'. This behavior is hardcoded and cannot be changed in the configuration.
==== Configuration options
This extension accepts the following configuration options:
addToNavigation (optional)::
Whether to add unlisted pages to the navigation. The default is false
(unlisted pages are not added).
unlistedPagesHeading (optional):: The heading under which to list the unlisted pages in the navigation. The default is 'Unlisted Pages'.
==== Registration example
antora:
extensions:
- require: '@redpanda-data/docs-extensions-and-macros/extensions/unlisted-pages'
addToNavigation: true
unlistedPagesHeading: 'Additional Resources'
== Macros
This section documents the Asciidoc macros that are provided by this library and how to configure them.
IMPORTANT: Be sure to register each extension under the asciidoc.extensions
key in the playbook, not the antora.extensions
key.
=== config_ref
This inline macro is used to generate a reference to a configuration value in the Redpanda documentation. The macro's parameters allow for control over the generated reference's format and the type of output produced.
==== Usage
The config_ref
macro is used in an AsciiDoc document as follows:
The config_ref
macro takes three parameters:
configRef::
This is the configuration reference, which is also used to generate the anchor link if isLink
is true
.
isLink::
Whether the output should be a link. If isLink
is set to true
, the output will be a cross-reference (xref) to the relevant configuration value.
path::
This is the path to the document where the configuration value is defined. This parameter is used to to generate the link if isLink
is true
.
IMPORTANT: The path must be the name of a document at the root of the reference
module.
NOTE: The config_ref
macro is environment-aware. It checks if the document it is being used in is part of a Kubernetes environment by checking if the env-kubernetes
attribute is set in the document's attributes. Depending on this check, it either prepends storage.tieredConfig.
to the configRef
or just uses the configRef
as is.
For example:
==== Registration example
=== glossterm
The glossterm
inline macro provides a way to define and reference glossary terms in your AsciiDoc documents.
NOTE: This macro is a customized version of https://gitlab.com/djencks/asciidoctor-glossary[`asciidoctor-glossary`].
==== Usage
Use the glossterm
inline macro to reference a term within the text of the document:
It takes two parameters:
term:: The term to be defined.
definition (optional)::
The definition of the term. If the term is defined in the {url-playbook}[shared
component] or the local-terms
object of the antora.yml
file, you can omit the definition as it will always be replaced by those definitions.
==== Configuration options
glossary-log-terms (optional):: Whether to log a textual representation of a definition list item to the console.
glossary-term-role (optional)::
Role to assign each term. By default, glossary terms are assigned the glossary-term
role, which gives them the class glossary-term
in generated html.
glossary-links (optional)::
Whether to generate links to glossary entries.
By default, links to the glossary entries are generated from the glossary terms. To avoid this, set the attribute to false
as either asciidoctor configuration or a header attribute.
glossary-page (optional)::
Target page for glossary links. By default, links are generated to the same page as the glossary term. To specify the target page, set this attribute to the resource ID of a page where the glossary
block macro is used.
glossary-tooltip (optional):: Whether to enable tooltips for the defined terms. Valid values are:
title: This uses the browser built-in title
attribute to display the definition.
true: This inserts the definition as the value of the attribute data-glossary-tooltip
.
data-: This inserts the definition as the value of the supplied attribute name, which must start with data
.
The last two options are intended to support js/css tooltip solutions such as tippy.js.
==== Registration example
=== helm_ref
This is an inline macro to create links to a Helm values.yaml
file on ArtifactHub.
==== Usage
In an AsciiDoc document, use the helm_ref
macro as follows:
Where <helmRef>
is the Helm configuration value you want to reference in the values.yaml
file.
For example:
Given a Helm reference value of myConfigValue
, you would use the macro like this:
This will generate the following output:
If you do not specify a Helm reference value, the macro generates a link without specifying a path.
==== Registration example
== Development quickstart
This section provides information on how to develop this project.
=== Prerequisites
To build this project, you need the following software installed on your computer:
git
)node
, npm
, and npx
)==== git
Make sure you have git installed.
If not, {url-git-dl}[download and install] the git package for your system.
==== Node.js
Make sure that you have Node.js installed (which also provides npm and npx).
If this command fails with an error, you don't have Node.js installed.
Now that you have git and Node.js installed, you're ready to start developing on this project.
=== Clone the project
Clone the project using git:
Change into the project directory and stay in this directory when running all subsequent commands.
=== Install dependencies
Use npm to install the project's dependencies inside the project. In your terminal, run the following command:
This command installs the dependencies listed in package-lock.json
into the node_modules/
directory inside the project.
This directory should not be committed to the source control repository.
=== Use your local project
If you want to use the project locally before it is published, you can specify the path to the extensions in the local-antora-playbook.yml
file.
asciidoc: attributes: extensions:
FAQs
Antora extensions and macros developed for Redpanda documentation.
The npm package @redpanda-data/docs-extensions-and-macros receives a total of 39 weekly downloads. As such, @redpanda-data/docs-extensions-and-macros popularity was classified as not popular.
We found that @redpanda-data/docs-extensions-and-macros demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.