diff --git a/README.adoc b/README.adoc
index 17e824a..2959137 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,159 +1,25 @@
-= {company} {product} Docs
+= {company} {product} docs
// Variables:
:company: DataStax
:product: Astra CLI
-:repo-name: astra-cli-docs
-:github-org: datastax
-// Settings:
+// Document settings:
:toc: macro
+:toclevels: 2
+:idprefix:
+:idseparator: -
:!example-caption:
+:!figure-caption:
+:!table-caption:
:experimental:
:hide-uri-scheme:
ifdef::env-github[]
-:icons: font
-:toclevels: 1
-:toc-title: Contents
:tip-caption: :bulb:
-:note-caption: :information_source:
+:note-caption: :paperclip:
:important-caption: :heavy_exclamation_mark:
:caution-caption: :fire:
:warning-caption: :warning:
-:badges:
endif::[]
-// Project URLs:
-:url-github-org: https://github.com/{github-org}
-:url-project-repo: {url-github-org}/{repo-name}
-:url-ui-repo: https://github.com/riptano/docs-ui
-:url-playbook-repo: https://github.com/riptano/datastax-docs-site
-:url-contribute:
-:url-datastax: https://datastax.com
-:url-datastax-docs: https://docs.datastax.com
-:url-docs-preview: http://docs-preview.datastax.com
-// External URLs:
-:asciidoc-language: https://docs.asciidoctor.org/asciidoc/latest/
-This repository contains the source files for the {company} {product} documentation.
+This repository contains the https://docs.asciidoctor.org/asciidoc/latest/[AsciiDoc] source files for the {company} {product} documentation.
-toc::[]
-
-== Get started
-
-The documentation is written in {asciidoc-language}[AsciiDoc]-formatted source files located in the `modules` directory.
-
-=== Make a simple update
-
-For simple updates like fixing typos or modifying existing prose, it's easiest to edit the source files directly on GitHub.
-
-NOTE: You'll need Write privileges on the repository to edit files directly on GitHub.
-
-. Find the file you want to edit in the `modules` directory.
-
-. Click the *Edit* icon in the upper-right corner of the file view.
-
-. Make your changes in the editor.
-
-. Click *Commit changes...*
-
-. Enter a description for your commit and click *Propose changes*.
-
-. On the *Open a pull request* screen, enter a title and description for your change, assign reviewers, then click *Create pull request*.
-
-. Once the pull request is open, an automatic draft preview build is triggered.
-Once complete, the build system posts a comment on the pull request with a link to the draft site for you to preview your changes.
-
-=== Edit docs locally
-
-If you need to make substantial updates to the documentation, you'll want to clone the repository so you can work with the source files locally.
-
-. Clone this repository
-+
-[source,bash,subs="attributes"]
-----
-git clone {url-project-repo}.git
-----
-
-. https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic[Create a _classic_ personal access token] for your GitHub account.
-When configuring the token, set the *Expiration* to at least 90 days and select everything under the *Repo* https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes[scope].
-+
-[IMPORTANT]
-====
-Copy your personal access token to a temporary location -- you'll need it later.
-====
-
-. https://docs.github.com/en/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on[Authorize your personal access token] so that it can access repositories in the Riptano and DataStax organizations in GitHub.
-
-. https://docs.antora.org/antora/latest/playbook/private-repository-auth/#populate-credentials-directly[Populate the credential store] with your personal access token.
-For most people this means doing the following:
-+
-.. Create the file `$HOME/.git-credentials` and open it in your editor.
-.. Add the following line:
-+
-[source,subs="verbatim,quotes"]
-----
-https://**TOKEN**:@github.com
-----
-+
-Replace *`TOKEN`* with the personal access token you copied from GitHub.
-.. Save and close the file.
-
-. If you don't already have Node.js installed, do the following:
-
-.. Install https://github.com/nvm-sh/nvm[nvm].
-+
-If you're on macOS, you can install nvm using https://brew.sh/[Homebrew]:
-+
-[source,bash]
-----
-brew install nvm
-----
-
-.. Use nvm to install Node.js.
-+
-[source,bash]
-----
-nvm install --lts
-----
-+
-[source,bash]
-----
-nvm use --lts
-----
-+
-[source,bash]
-----
-nvm alias default node
-----
-
-. Install the project dependencies.
-+
-[source,bash,subs="attributes"]
-----
-cd {repo-name}
-----
-+
-[source,bash]
-----
-npm install
-----
-
-. Build the site.
-+
-[source,bash]
-----
-npm run build:local
-----
-+
-If the build was successful, you'll see the following output in your terminal:
-+
-[source,console,subs="attributes"]
-----
-Site generation complete!
-Open file:///Users/USERNAME/repos/{repo-name}/build/site/index.html in a browser to view your site.
-----
-+
-To view the site, paste the entire `\file:///` path into your browser's address bar and press kbd:[Return].
-
-[#publish-docs]
-== Publish docs
-
-To learn how to publish documentation to {url-datastax-docs}, see the {url-playbook-repo}#deploy-production[datastax-docs-site README].
+To learn how to update the documentation, see the https://datastax.jira.com/wiki/spaces/DOCS/overview[Docs team Confluence site].
diff --git a/lib/assets-processor.js b/lib/assets-processor.js
deleted file mode 100644
index 7d1e5e7..0000000
--- a/lib/assets-processor.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-module.exports.register = (context) => {
- const logger = context.getLogger("assets-processor-extension");
-
- context.once("uiLoaded", ({ uiCatalog }) => {
- const manifestContents = uiCatalog
- .findByType("asset")
- .find((file) => file.stem === "assets-manifest")
- .contents?.toString();
- if (!manifestContents) {
- logger.error("Could not find assets-manifest.json in the UI bundle.");
- return;
- }
- const manifest = JSON.parse(manifestContents);
- // Add manifest to node global context so it can be accessed by the handlebars helper during createPageComposer
- global.assetsManifest = manifest;
- });
-
- context.once("pagesComposed", () => {
- // Clean up the global context
- delete global.assetsManifest;
- });
-};
diff --git a/lib/icon-macro.js b/lib/icon-macro.js
deleted file mode 100644
index 7f40e6c..0000000
--- a/lib/icon-macro.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * This macro relies on the material-icons font and the lucide icons font being loaded in UI bundle.
- *
- * @example Material Icon
- * icon:material:menu-open[]
- *
- * @example Lucide Icon
- * icon:boom-box[]
- */
-function inlineIconMacro() {
- return function () {
- this.process((parent, target, attrs) => {
- if (target.startsWith("material:")) {
- iconTarget = target
- .replace("material:", "")
- .trim()
- .replace("-", "_");
- return this.createInlinePass(
- parent,
- `${iconTarget}` + renderName(attrs?.name)
- );
- } else {
- iconTarget = target
- .replace("lucide:", "")
- .trim()
- return this.createInlinePass(
- parent,
- `` + renderName(attrs?.name)
- );
- }
- });
- };
-}
-
-function renderName(name) {
- if (!name) return "";
- return ` ${name}`;
-}
-
-function htmlAttrs({ size, role, alt, title, ariaLabel, $positional = [] }, klass) {
- const [posSize] = $positional;
- return [
- (size || posSize) && `style="font-size: ${(size || posSize).replace("px", "").trim()}px;"`,
- (role || klass) && `class="${[klass, role].filter(Boolean).join(" ")}"`,
- title && `title="${title}"`,
- (alt || ariaLabel) && `aria-label="${alt || ariaLabel}" role="img"`,
- !(alt || ariaLabel) && "aria-hidden='true'",
- ]
- .filter(Boolean)
- .join(" ");
-}
-
-/**
- * @param { import("@asciidoctor/core/types").Asciidoctor.Extensions.Registry } registry
- * @param context
- */
-function register(registry) {
- registry.inlineMacro("icon", inlineIconMacro());
-}
-
-module.exports.register = register;
diff --git a/lib/remote-include-processor.js b/lib/remote-include-processor.js
deleted file mode 100644
index 731a0a0..0000000
--- a/lib/remote-include-processor.js
+++ /dev/null
@@ -1,199 +0,0 @@
-const CIRCUMFIX_COMMENT_SUFFIX_RX = / (?:\*[/)]|--%?>)$/
-const NEWLINE_RX = /\r\n?|\n/
-const TAG_DELIMITER_RX = /[,;]/
-const TAG_DIRECTIVE_RX = /\b(?:tag|(end))::(\S+)\[\]$/
-const LINES_DOTDOT_RX = /\.\./
-
-
-function getTags (attrs) {
- if ( 'tag' in attrs ) {
- const tag = attrs['tag']
- if (tag && tag !== '!') {
- return tag.charAt() === '!' ? new Map().set(tag.substr(1), false) : new Map().set(tag, true)
- }
- } else if ( 'tags' in attrs ) {
- const tags = attrs['tags']
- if (tags) {
- let result = new Map()
- let any = false
- tags.split(TAG_DELIMITER_RX).forEach((tag) => {
- if (tag && tag !== '!') {
- any = true
- tag.charAt() === '!' ? result.set(tag.substr(1), false) : result.set(tag, true)
- }
- })
- if (any) return result
- }
- }
-}
-
-
-function applyTagFiltering (contents, tags) {
- let selecting, selectingDefault, wildcard
- if (tags.has('**')) {
- if (tags.has('*')) {
- selectingDefault = selecting = tags.get('**')
- wildcard = tags.get('*')
- tags.delete('*')
- } else {
- selectingDefault = selecting = wildcard = tags.get('**')
- }
- tags.delete('**')
- } else {
- selectingDefault = selecting = !Array.from(tags.values()).includes(true)
- if (tags.has('*')) {
- wildcard = tags.get('*')
- tags.delete('*')
- }
- }
-
- const lines = []
- const tagStack = []
- const usedTags = []
- let activeTag
- let lineNum = 0
- let startLineNum
- contents.split(NEWLINE_RX).forEach((line) => {
- lineNum++
- let m
- let l = line
- if (
- (l.endsWith('[]') ||
- (~l.indexOf('[] ') &&
- (m = l.match(CIRCUMFIX_COMMENT_SUFFIX_RX)) &&
- (l = l.substr(0, m.index)).endsWith('[]'))) &&
- (m = l.match(TAG_DIRECTIVE_RX))
- ) {
- const thisTag = m[2]
- if (m[1]) {
- if (thisTag === activeTag) {
- tagStack.shift()
- ;[activeTag, selecting] = tagStack.length ? tagStack[0] : [undefined, selectingDefault]
- } else if (tags.has(thisTag)) {
- const idx = tagStack.findIndex(([name]) => name === thisTag)
- if (~idx) {
- tagStack.splice(idx, 1)
- //console.warn(`line ${lineNum}: mismatched end tag in include: expected ${activeTag}, found ${thisTag}`)
- }
- //} else {
- // //console.warn(`line ${lineNum}: unexpected end tag in include: ${thisTag}`)
- //}
- }
- } else if (tags.has(thisTag)) {
- usedTags.push(thisTag)
- tagStack.unshift([(activeTag = thisTag), (selecting = tags.get(thisTag))])
- } else if (wildcard !== undefined) {
- selecting = activeTag && !selecting ? false : wildcard
- tagStack.unshift([(activeTag = thisTag), selecting])
- }
- } else if (selecting) {
- if (!startLineNum) startLineNum = lineNum
- lines.push(line)
- }
- })
- // Q: use _.difference(Object.keys(tags), usedTags)?
- //const missingTags = Object.keys(tags).filter((e) => !usedTags.includes(e))
- //if (missingTags.length) {
- // console.warn(`tag${missingTags.length > 1 ? 's' : ''} '${missingTags.join(',')}' not found in include`)
- //}
- return [lines, startLineNum || 1]
-}
-
-function getLines (attrs) {
- if ( 'lines' in attrs ) {
- const lines = attrs['lines']
- if (lines) {
- // console.warn(`have lines` + lines)
- let result = [] // new Map()
- let any = false
- lines.split(TAG_DELIMITER_RX).forEach((line) => {
- if (line && line !== '!') {
- let tryMultipleLines = line.split(LINES_DOTDOT_RX)
- if ( tryMultipleLines.length === 1 ) {
- any = true
- result.push([tryMultipleLines[0], tryMultipleLines[0]])
- }
- else if ( tryMultipleLines.length === 2 ) {
- any = true
- result.push([tryMultipleLines[0], tryMultipleLines[1]])
- }
- }
- })
- if (any) return result
- }
- }
-}
-
-function filterChars(content){
- let myRegexp = new RegExp(/[^${\}]+(?=})/g);
- let matches = myRegexp.exec(content);
-
- if(matches == null)
- return content;
-
- let ret = content;
- // matches.forEach(x => {
- // let a = new RegExp("\\${"+x+"}",'gm');
- // ret = ret.replace(a,'asd');
- // })
-
- return ret;
-}
-
-function applyLineFiltering (contents, linesToInclude) {
- const lines = []
- let lineNum = 0
- let startLineNum
- let registerCurrentLine = false
-
- const nLinesPair = linesToInclude.length
- let currentLinePair = 0
- let startLine = linesToInclude[currentLinePair][0]
- let endLine = linesToInclude[currentLinePair][1]
- // console.warn(`applyLineFiltering ` + startLine + ' and ' + endLine )
-
- contents.split(NEWLINE_RX).forEach((line) => {
- lineNum++
-
- if ( !registerCurrentLine ) {
- if ( lineNum == startLine )
- registerCurrentLine = true
- }
-
- if ( registerCurrentLine )
- {
- if (!startLineNum) startLineNum = lineNum
- lines.push(line)
-
- if ( lineNum == endLine ) {
- registerCurrentLine = false
- currentLinePair++
- if ( currentLinePair >= nLinesPair )
- return [lines, startLineNum]
- else {
- startLine = linesToInclude[currentLinePair][0]
- endLine = linesToInclude[currentLinePair][1]
- }
- }
- }
- })
- return [lines, startLineNum || 1]
-}
-
-module.exports = function () {
- this.includeProcessor(function () {
- this.$option('position', '>>')
- this.handles((target) => target.startsWith('https://'))
- this.process((doc, reader, target, attrs) => {
- const contents = require('child_process').execFileSync('curl', ['--silent', '-L', target], { encoding: 'utf8' })
- let includeContents = filterChars(contents)
- let startLineNum = 1
- const tags = getTags(attrs)
- const lines = getLines(attrs)
- if (tags) [includeContents, startLineNum] = applyTagFiltering(includeContents, tags)
- else if (lines) [includeContents, startLineNum] = applyLineFiltering(includeContents, lines)
- reader.pushInclude(includeContents, target, target, startLineNum, attrs)
- // reader.pushInclude(contents, target, target, 1, attrs)
- })
- })
-}
diff --git a/lib/svg-macro.js b/lib/svg-macro.js
deleted file mode 100644
index cb6fbe2..0000000
--- a/lib/svg-macro.js
+++ /dev/null
@@ -1,109 +0,0 @@
-const logger = require("@antora/logger")("asciidoctor:svg-macro");
-
-/**
- * @example Inline Embedded SVG
- * svg:ROOT:ui/icons/vector.svg[]
- */
-function inlineSvgMacro({ contentCatalog, file }) {
- /**
- * @this { import("@asciidoctor/core/types").Asciidoctor.Extensions.InlineMacroProcessorInstance }
- */
- return function () {
- this.process((parent, target, attrs) => {
- const svgContent = getSvgContent(target, file, contentCatalog);
- if (!svgContent) return;
- const html = svgContent.replace("