@redpanda-data/docs-extensions-and-macros 4.17.3 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/extension-utils/llms-utils.js +2 -5
- package/extensions/algolia-indexer/generate-index.js +99 -54
- package/extensions/collect-bloblang-samples.js +6 -6
- package/extensions/compute-end-of-life.js +8 -4
- package/extensions/conditional-home-redirect.js +90 -0
- package/extensions/convert-to-markdown.js +23 -1
- package/extensions/find-related-docs.js +3 -3
- package/extensions/find-related-labs.js +1 -1
- package/extensions/generate-fields-only-pages.js +7 -7
- package/extensions/generate-rp-connect-categories.js +5 -5
- package/extensions/generate-rp-connect-info.js +6 -6
- package/extensions/modify-connect-tag-playbook.js +1 -1
- package/extensions/unified-navigation.js +669 -0
- package/extensions/unlisted-pages.js +5 -1
- package/extensions/unpublish-pages.js +12 -0
- package/extensions/version-fetcher/fetch-latest-docker-tag.js +7 -2
- package/extensions/version-fetcher/get-latest-connect.js +6 -2
- package/extensions/version-fetcher/get-latest-console-version.js +13 -4
- package/extensions/version-fetcher/get-latest-redpanda-helm-version-from-operator.js +31 -5
- package/extensions/version-fetcher/get-latest-redpanda-version.js +8 -3
- package/extensions/version-fetcher/retry-util.js +10 -3
- package/extensions/version-fetcher/set-latest-version.js +9 -8
- package/macros/rp-connect-components.js +63 -1
- package/package.json +3 -1
- package/tools/redpanda-connect/AUTOMATION.md +5 -5
- package/tools/redpanda-connect/helpers/renderConnectFields.js +1 -1
- package/tools/redpanda-connect/pr-summary-formatter.js +4 -4
- package/tools/redpanda-connect/rpcn-connector-docs-handler.js +133 -83
- package/tools/redpanda-connect/templates/bloblang-functions-overview.hbs +1 -1
- package/tools/redpanda-connect/templates/bloblang-methods-overview.hbs +1 -1
- package/tools/redpanda-connect/templates/connector.hbs +2 -2
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
module.exports.register = function () {
|
|
4
|
+
const logger = this.getLogger('unpublish-pages-extension');
|
|
5
|
+
|
|
4
6
|
this.on('documentsConverted', ({ siteCatalog, contentCatalog }) => {
|
|
5
7
|
// Get all pages that have an `out` property
|
|
6
8
|
const pages = contentCatalog.getPages((page) => page.out);
|
|
@@ -14,6 +16,15 @@ module.exports.register = function () {
|
|
|
14
16
|
pageVersion = page.asciidoc?.attributes['page-component-version'];
|
|
15
17
|
const component = contentCatalog.getComponent(componentName);
|
|
16
18
|
|
|
19
|
+
// Debug logging for ANY page with publish-only-during-beta attribute
|
|
20
|
+
if (page.asciidoc?.attributes['publish-only-during-beta']) {
|
|
21
|
+
logger.debug(`Found page with publish-only-during-beta: ${page.src?.relative || page.pub?.url}`);
|
|
22
|
+
logger.debug(` - publish-only-during-beta: ${page.asciidoc?.attributes['publish-only-during-beta']}`);
|
|
23
|
+
logger.debug(` - page-component-version-is-prerelease: ${page.asciidoc?.attributes['page-component-version-is-prerelease']}`);
|
|
24
|
+
logger.debug(` - page-unpublish: ${page.asciidoc?.attributes['page-unpublish']}`);
|
|
25
|
+
logger.debug(` - component: ${componentName}, version: ${pageVersion}`);
|
|
26
|
+
}
|
|
27
|
+
|
|
17
28
|
// Check the conditions for unpublishing the page
|
|
18
29
|
const shouldUnpublish = (
|
|
19
30
|
page.asciidoc?.attributes['page-unpublish'] ||
|
|
@@ -24,6 +35,7 @@ module.exports.register = function () {
|
|
|
24
35
|
|
|
25
36
|
// Unpublish the shouldUnpublish pages
|
|
26
37
|
if (shouldUnpublish) {
|
|
38
|
+
logger.info(`Unpublishing page: ${page.src?.relative || page.pub?.url}`);
|
|
27
39
|
siteCatalog.unpublishedPages.push(page.pub.url)
|
|
28
40
|
delete page.out;
|
|
29
41
|
}
|
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @param {string} dockerNamespace - The Docker Hub namespace (organization or username)
|
|
8
8
|
* @param {string} dockerRepo - The repository name on Docker Hub
|
|
9
|
+
* @param {Object} logger - Optional Antora logger instance for logging
|
|
9
10
|
* @returns {Promise<{ latestStableRelease: string|null, latestBetaRelease: string|null }>}
|
|
10
11
|
*/
|
|
11
|
-
module.exports = async (dockerNamespace, dockerRepo) => {
|
|
12
|
+
module.exports = async (dockerNamespace, dockerRepo, logger = null) => {
|
|
12
13
|
const { default: fetch } = await import('node-fetch');
|
|
13
14
|
|
|
14
15
|
try {
|
|
@@ -64,7 +65,11 @@ module.exports = async (dockerNamespace, dockerRepo) => {
|
|
|
64
65
|
};
|
|
65
66
|
|
|
66
67
|
} catch (error) {
|
|
67
|
-
|
|
68
|
+
if (logger) {
|
|
69
|
+
logger.error('Error fetching Docker tags:', error);
|
|
70
|
+
} else {
|
|
71
|
+
console.error('Error fetching Docker tags:', error);
|
|
72
|
+
}
|
|
68
73
|
return {
|
|
69
74
|
latestStableRelease: null,
|
|
70
75
|
latestBetaRelease: null
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
module.exports = async (github, owner, repo) => {
|
|
1
|
+
module.exports = async (github, owner, repo, logger = null) => {
|
|
2
2
|
|
|
3
3
|
try {
|
|
4
4
|
const release = await github.rest.repos.getLatestRelease({ owner, repo });
|
|
5
5
|
return release.data.tag_name
|
|
6
6
|
} catch (error) {
|
|
7
|
-
|
|
7
|
+
if (logger) {
|
|
8
|
+
logger.error(error);
|
|
9
|
+
} else {
|
|
10
|
+
console.error(error);
|
|
11
|
+
}
|
|
8
12
|
return null;
|
|
9
13
|
}
|
|
10
14
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { retryWithBackoff, isRetryableGitHubError } = require('./retry-util');
|
|
2
2
|
|
|
3
|
-
module.exports = async (github, owner, repo) => {
|
|
3
|
+
module.exports = async (github, owner, repo, logger = null) => {
|
|
4
4
|
const semver = require('semver');
|
|
5
5
|
|
|
6
6
|
return retryWithBackoff(
|
|
@@ -29,7 +29,11 @@ module.exports = async (github, owner, repo) => {
|
|
|
29
29
|
latestBetaRelease: latestBetaReleaseVersion || null
|
|
30
30
|
};
|
|
31
31
|
} else {
|
|
32
|
-
|
|
32
|
+
if (logger) {
|
|
33
|
+
logger.warn("No valid semver releases found.");
|
|
34
|
+
} else {
|
|
35
|
+
console.log("No valid semver releases found.");
|
|
36
|
+
}
|
|
33
37
|
return { latestStableRelease: null, latestBetaRelease: null };
|
|
34
38
|
}
|
|
35
39
|
},
|
|
@@ -38,9 +42,14 @@ module.exports = async (github, owner, repo) => {
|
|
|
38
42
|
initialDelay: 1000,
|
|
39
43
|
shouldRetry: isRetryableGitHubError,
|
|
40
44
|
operationName: `Fetch Console version from ${owner}/${repo}`
|
|
41
|
-
}
|
|
45
|
+
},
|
|
46
|
+
logger
|
|
42
47
|
).catch(error => {
|
|
43
|
-
|
|
48
|
+
if (logger) {
|
|
49
|
+
logger.error('Failed to fetch release information after retries:', error);
|
|
50
|
+
} else {
|
|
51
|
+
console.error('Failed to fetch release information after retries:', error);
|
|
52
|
+
}
|
|
44
53
|
return { latestStableRelease: null, latestBetaRelease: null };
|
|
45
54
|
});
|
|
46
55
|
};
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
* @param {string} repo - The repository name (redpanda-operator).
|
|
9
9
|
* @param {string} stableDockerTag - The stable docker tag in format v<major>.<minor>.<patch>.
|
|
10
10
|
* @param {string} betaDockerTag - Optional beta docker tag in format v<major>.<minor>.<patch>-beta.
|
|
11
|
+
* @param {Object} logger - Optional Antora logger instance for logging
|
|
11
12
|
* @returns {Promise<{ latestStableRelease: string|null, latestBetaRelease: string|null }>}
|
|
12
13
|
*/
|
|
13
|
-
module.exports = async (github, owner, repo, stableDockerTag, betaDockerTag) => {
|
|
14
|
+
module.exports = async (github, owner, repo, stableDockerTag, betaDockerTag, logger = null) => {
|
|
14
15
|
const yaml = require('js-yaml');
|
|
15
16
|
const path = 'charts/redpanda/chart/Chart.yaml';
|
|
16
17
|
|
|
@@ -29,7 +30,11 @@ module.exports = async (github, owner, repo, stableDockerTag, betaDockerTag) =>
|
|
|
29
30
|
const versionMatch = dockerTag.match(/^v(\d+)\.(\d+)(?:\.(\d+))?(?:-beta.*)?$/);
|
|
30
31
|
|
|
31
32
|
if (!versionMatch) {
|
|
32
|
-
|
|
33
|
+
if (logger) {
|
|
34
|
+
logger.error(`Invalid docker tag format: ${dockerTag}`);
|
|
35
|
+
} else {
|
|
36
|
+
console.error(`Invalid docker tag format: ${dockerTag}`);
|
|
37
|
+
}
|
|
33
38
|
return null;
|
|
34
39
|
}
|
|
35
40
|
|
|
@@ -55,11 +60,28 @@ module.exports = async (github, owner, repo, stableDockerTag, betaDockerTag) =>
|
|
|
55
60
|
const version = chartYaml.version || null;
|
|
56
61
|
return version;
|
|
57
62
|
} catch (error) {
|
|
58
|
-
|
|
63
|
+
if (error.status === 404) {
|
|
64
|
+
// Branch doesn't exist yet - this is expected for unreleased versions
|
|
65
|
+
if (logger) {
|
|
66
|
+
logger.warn(`Fetched operator ${dockerTag} from Docker Hub but branch ${branchName} not found in GitHub (source may not be released yet)`);
|
|
67
|
+
} else {
|
|
68
|
+
console.warn(`Fetched operator ${dockerTag} from Docker Hub but branch ${branchName} not found in GitHub (source may not be released yet)`);
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
if (logger) {
|
|
72
|
+
logger.error(`Failed to fetch Chart.yaml for branch ${branchName}:`, error.message);
|
|
73
|
+
} else {
|
|
74
|
+
console.error(`Failed to fetch Chart.yaml for branch ${branchName}:`, error.message);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
59
77
|
return null;
|
|
60
78
|
}
|
|
61
79
|
} catch (error) {
|
|
62
|
-
|
|
80
|
+
if (logger) {
|
|
81
|
+
logger.error(`Error processing docker tag ${dockerTag}:`, error.message);
|
|
82
|
+
} else {
|
|
83
|
+
console.error(`Error processing docker tag ${dockerTag}:`, error.message);
|
|
84
|
+
}
|
|
63
85
|
return null;
|
|
64
86
|
}
|
|
65
87
|
};
|
|
@@ -75,7 +97,11 @@ module.exports = async (github, owner, repo, stableDockerTag, betaDockerTag) =>
|
|
|
75
97
|
latestBetaRelease: betaChartVersion
|
|
76
98
|
};
|
|
77
99
|
} catch (error) {
|
|
78
|
-
|
|
100
|
+
if (logger) {
|
|
101
|
+
logger.error('Failed to fetch chart versions:', error.message);
|
|
102
|
+
} else {
|
|
103
|
+
console.error('Failed to fetch chart versions:', error.message);
|
|
104
|
+
}
|
|
79
105
|
return {
|
|
80
106
|
latestStableRelease: null,
|
|
81
107
|
latestBetaRelease: null
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { retryWithBackoff, isRetryableGitHubError } = require('./retry-util');
|
|
2
2
|
|
|
3
|
-
module.exports = async (github, owner, repo) => {
|
|
3
|
+
module.exports = async (github, owner, repo, logger = null) => {
|
|
4
4
|
const semver = require('semver');
|
|
5
5
|
|
|
6
6
|
return retryWithBackoff(
|
|
@@ -67,9 +67,14 @@ module.exports = async (github, owner, repo) => {
|
|
|
67
67
|
initialDelay: 1000,
|
|
68
68
|
shouldRetry: isRetryableGitHubError,
|
|
69
69
|
operationName: `Fetch Redpanda version from ${owner}/${repo}`
|
|
70
|
-
}
|
|
70
|
+
},
|
|
71
|
+
logger
|
|
71
72
|
).catch(error => {
|
|
72
|
-
|
|
73
|
+
if (logger) {
|
|
74
|
+
logger.error('Failed to fetch Redpanda release information after retries:', error);
|
|
75
|
+
} else {
|
|
76
|
+
console.error('Failed to fetch Redpanda release information after retries:', error);
|
|
77
|
+
}
|
|
73
78
|
return { latestRedpandaRelease: null, latestRcRelease: null };
|
|
74
79
|
});
|
|
75
80
|
};
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
* @param {number} options.maxDelay - Maximum delay in ms (default: 10000)
|
|
9
9
|
* @param {Function} options.shouldRetry - Function to determine if error is retryable (default: all errors)
|
|
10
10
|
* @param {string} options.operationName - Name for logging
|
|
11
|
+
* @param {Object} logger - Optional Antora logger instance for logging
|
|
11
12
|
* @returns {Promise<*>} Result of the function
|
|
12
13
|
*/
|
|
13
|
-
async function retryWithBackoff(fn, options = {}) {
|
|
14
|
+
async function retryWithBackoff(fn, options = {}, logger = null) {
|
|
14
15
|
const {
|
|
15
16
|
maxRetries = 3,
|
|
16
17
|
initialDelay = 1000,
|
|
@@ -37,8 +38,14 @@ async function retryWithBackoff(fn, options = {}) {
|
|
|
37
38
|
const jitter = Math.random() * 0.3 * baseDelay; // Add up to 30% jitter
|
|
38
39
|
const delay = Math.floor(baseDelay + jitter);
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
// Log retry attempt using logger if available, otherwise fall back to console
|
|
42
|
+
if (logger) {
|
|
43
|
+
logger.warn(`${operationName} failed (attempt ${attempt + 1}/${maxRetries + 1}): ${error.message}`);
|
|
44
|
+
logger.warn(`Retrying in ${delay}ms...`);
|
|
45
|
+
} else {
|
|
46
|
+
console.error(`⚠️ ${operationName} failed (attempt ${attempt + 1}/${maxRetries + 1}): ${error.message}`);
|
|
47
|
+
console.error(` Retrying in ${delay}ms...`);
|
|
48
|
+
}
|
|
42
49
|
|
|
43
50
|
// Wait before retrying
|
|
44
51
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
@@ -37,10 +37,10 @@ module.exports.register = function ({ config }) {
|
|
|
37
37
|
latestOperatorResult,
|
|
38
38
|
latestConnectResult,
|
|
39
39
|
] = await Promise.allSettled([
|
|
40
|
-
GetLatestRedpandaVersion(github, owner, 'redpanda'),
|
|
41
|
-
GetLatestDockerTag(dockerNamespace, 'console'),
|
|
42
|
-
GetLatestDockerTag(dockerNamespace, 'redpanda-operator'),
|
|
43
|
-
GetLatestConnectVersion(github, owner, 'connect'),
|
|
40
|
+
GetLatestRedpandaVersion(github, owner, 'redpanda', logger),
|
|
41
|
+
GetLatestDockerTag(dockerNamespace, 'console', logger),
|
|
42
|
+
GetLatestDockerTag(dockerNamespace, 'redpanda-operator', logger),
|
|
43
|
+
GetLatestConnectVersion(github, owner, 'connect', logger),
|
|
44
44
|
]);
|
|
45
45
|
|
|
46
46
|
// Get the Helm chart version after we have the operator version (for both stable and beta)
|
|
@@ -49,11 +49,12 @@ module.exports.register = function ({ config }) {
|
|
|
49
49
|
if (latestOperatorResult.status === 'fulfilled') {
|
|
50
50
|
try {
|
|
51
51
|
const helmChartVersions = await GetLatestHelmChartVersionFromOperator(
|
|
52
|
-
github,
|
|
53
|
-
owner,
|
|
54
|
-
'redpanda-operator',
|
|
52
|
+
github,
|
|
53
|
+
owner,
|
|
54
|
+
'redpanda-operator',
|
|
55
55
|
latestOperatorResult.value?.latestStableRelease,
|
|
56
|
-
latestOperatorResult.value?.latestBetaRelease
|
|
56
|
+
latestOperatorResult.value?.latestBetaRelease,
|
|
57
|
+
logger
|
|
57
58
|
);
|
|
58
59
|
|
|
59
60
|
latestHelmChartResult = {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
const { posix: path } = require('path')
|
|
3
|
+
|
|
2
4
|
/**
|
|
3
5
|
* Registers macros for use in Redpanda Connect contexts in the Redpanda documentation.
|
|
4
6
|
* @param {Registry} registry - The Antora registry where this block macro is registered.
|
|
@@ -1024,7 +1026,32 @@ module.exports.register = function (registry, context) {
|
|
|
1024
1026
|
// Filter for the specific connector by name
|
|
1025
1027
|
const componentRows = csvData.data.filter(row => row.connector.trim().toLowerCase() === name.trim().toLowerCase());
|
|
1026
1028
|
if (componentRows.length === 0) {
|
|
1027
|
-
console.
|
|
1029
|
+
console.warn(`No CSV data found for connector: ${name}. The connector may have been removed or renamed.`);
|
|
1030
|
+
// Build link to release notes using content catalog for proper URL resolution
|
|
1031
|
+
const isCloud = attributes['env-cloud'] !== undefined;
|
|
1032
|
+
let whatsNewUrl = isCloud
|
|
1033
|
+
? '/cloud-data-platform/get-started/whats-new-cloud/'
|
|
1034
|
+
: '/connect/get-started/whats-new/';
|
|
1035
|
+
|
|
1036
|
+
// Try to resolve the page from the content catalog for accurate URLs
|
|
1037
|
+
if (context.contentCatalog && context.file) {
|
|
1038
|
+
const pageSpec = isCloud
|
|
1039
|
+
? 'cloud-data-platform:get-started:whats-new-cloud.adoc'
|
|
1040
|
+
: 'connect:get-started:whats-new.adoc';
|
|
1041
|
+
const page = context.contentCatalog.resolvePage(pageSpec, context.file.src);
|
|
1042
|
+
if (page) {
|
|
1043
|
+
// For directory-style URLs like /a/b/c/, use the URL directly as the base
|
|
1044
|
+
whatsNewUrl = path.relative(context.file.pub.url, page.pub.url);
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
// Return a notice for removed/unknown connectors
|
|
1049
|
+
return self.createBlock(parent, 'pass', `
|
|
1050
|
+
<div class="metadata-block">
|
|
1051
|
+
<div class="metadata-content">
|
|
1052
|
+
<p><strong>Available in:</strong> <em>This connector is no longer available. Check the <a href="${whatsNewUrl}">release notes</a> for migration guidance.</em></p>
|
|
1053
|
+
</div>
|
|
1054
|
+
</div>`);
|
|
1028
1055
|
}
|
|
1029
1056
|
// Process types and metadata from CSV
|
|
1030
1057
|
const types = componentRows.map(row => ({
|
|
@@ -1041,6 +1068,21 @@ module.exports.register = function (registry, context) {
|
|
|
1041
1068
|
const [currentType] = sortedTypes.splice(currentTypeIndex, 1);
|
|
1042
1069
|
sortedTypes.unshift(currentType);
|
|
1043
1070
|
}
|
|
1071
|
+
|
|
1072
|
+
// Set context-switcher attribute for UI template to render compact dropdown in sticky bar
|
|
1073
|
+
if (sortedTypes.length > 1) {
|
|
1074
|
+
const contextSwitcherData = {};
|
|
1075
|
+
sortedTypes.forEach(typeObj => {
|
|
1076
|
+
const link = (component === 'Cloud' && typeObj.redpandaCloudUrl) || typeObj.redpandaConnectUrl;
|
|
1077
|
+
contextSwitcherData[typeObj.type.toLowerCase()] = {
|
|
1078
|
+
name: capitalize(typeObj.type),
|
|
1079
|
+
to: link
|
|
1080
|
+
};
|
|
1081
|
+
});
|
|
1082
|
+
// Set as page attribute (not document attribute) so it's accessible in UI template
|
|
1083
|
+
attributes['page-context-switcher'] = JSON.stringify(contextSwitcherData);
|
|
1084
|
+
parent.getDocument().setAttribute('page-context-switcher', JSON.stringify(contextSwitcherData));
|
|
1085
|
+
}
|
|
1044
1086
|
// Check if the component requires an Enterprise license (based on support level)
|
|
1045
1087
|
let enterpriseLicenseInfo = '';
|
|
1046
1088
|
if (component !== 'Cloud') {
|
|
@@ -1051,6 +1093,26 @@ module.exports.register = function (registry, context) {
|
|
|
1051
1093
|
}
|
|
1052
1094
|
}
|
|
1053
1095
|
const isCloudSupported = componentRows.some(row => row.is_cloud_supported === 'y');
|
|
1096
|
+
|
|
1097
|
+
// Set availability attributes for UI template badges with URLs
|
|
1098
|
+
if (isCloudSupported) {
|
|
1099
|
+
const cloudUrl = sortedTypes[0].redpandaCloudUrl;
|
|
1100
|
+
const connectUrl = sortedTypes[0].redpandaConnectUrl;
|
|
1101
|
+
|
|
1102
|
+
if (component === 'Connect' && cloudUrl) {
|
|
1103
|
+
// Viewing Self-Managed, but also available in Cloud - show Cloud badge with link
|
|
1104
|
+
parent.getDocument().setAttribute('cloud-available', 'true');
|
|
1105
|
+
parent.getDocument().setAttribute('cloud-available-url', cloudUrl);
|
|
1106
|
+
} else if (component === 'Cloud' && connectUrl) {
|
|
1107
|
+
// Viewing Cloud, but also available in Self-Managed - show Self-Managed badge with link
|
|
1108
|
+
parent.getDocument().setAttribute('self-managed-available', 'true');
|
|
1109
|
+
parent.getDocument().setAttribute('self-managed-available-url', connectUrl);
|
|
1110
|
+
}
|
|
1111
|
+
} else if (!isCloudSupported && component === 'Connect') {
|
|
1112
|
+
// Only available in Self-Managed - show "Self-Managed Only" badge (no link)
|
|
1113
|
+
parent.getDocument().setAttribute('self-managed-only', 'true');
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1054
1116
|
let availableInInfo = '';
|
|
1055
1117
|
|
|
1056
1118
|
if (isCloudSupported) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redpanda-data/docs-extensions-and-macros",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "Antora extensions and macros developed for Redpanda documentation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"antora",
|
|
@@ -77,6 +77,8 @@
|
|
|
77
77
|
"./extensions/algolia-indexer/index": "./extensions/algolia-indexer/index.js",
|
|
78
78
|
"./extensions/aggregate-terms": "./extensions/aggregate-terms.js",
|
|
79
79
|
"./extensions/resolve-xrefs-in-attachments": "./extensions/resolve-xrefs-in-attachments.js",
|
|
80
|
+
"./extensions/unified-navigation": "./extensions/unified-navigation.js",
|
|
81
|
+
"./extensions/conditional-home-redirect": "./extensions/conditional-home-redirect.js",
|
|
80
82
|
"./macros/glossary": "./macros/glossary.js",
|
|
81
83
|
"./macros/rp-connect-components": "./macros/rp-connect-components.js",
|
|
82
84
|
"./macros/config-ref": "./macros/config-ref.js",
|
|
@@ -306,14 +306,14 @@ Brief summary of what this connector does.
|
|
|
306
306
|
====
|
|
307
307
|
Common config::
|
|
308
308
|
+
|
|
309
|
-
include::
|
|
309
|
+
include::connect:components:partial$examples/inputs/connector_name.adoc[tag=common]
|
|
310
310
|
|
|
311
311
|
Advanced config::
|
|
312
312
|
+
|
|
313
|
-
include::
|
|
313
|
+
include::connect:components:partial$examples/inputs/connector_name.adoc[tag=advanced]
|
|
314
314
|
====
|
|
315
315
|
|
|
316
|
-
include::
|
|
316
|
+
include::connect:components:partial$fields/inputs/connector_name.adoc[]
|
|
317
317
|
|
|
318
318
|
// end::single-source[]
|
|
319
319
|
```
|
|
@@ -517,12 +517,12 @@ _No changes in this release_
|
|
|
517
517
|
|
|
518
518
|
**For connectors in pages:**
|
|
519
519
|
\```asciidoc
|
|
520
|
-
include::
|
|
520
|
+
include::connect:components:page$type/name.adoc[tag=single-source]
|
|
521
521
|
\```
|
|
522
522
|
|
|
523
523
|
**For cloud-only connectors (in partials):**
|
|
524
524
|
\```asciidoc
|
|
525
|
-
include::
|
|
525
|
+
include::connect:components:partial$components/cloud-only/type/name.adoc[tag=single-source]
|
|
526
526
|
\```
|
|
527
527
|
|
|
528
528
|
### 🔧 Cgo Requirements
|
|
@@ -79,7 +79,7 @@ module.exports = function renderConnectFields(children, prefix = '') {
|
|
|
79
79
|
block += `${desc}\n\n`;
|
|
80
80
|
}
|
|
81
81
|
if (child.is_secret) {
|
|
82
|
-
block += `include::
|
|
82
|
+
block += `include::connect:components:partial$secret_warning.adoc[]\n\n`;
|
|
83
83
|
}
|
|
84
84
|
if (child.version) {
|
|
85
85
|
block += `ifndef::env-cloud[]\nRequires version ${child.version} or later.\nendif::[]\n\n`;
|
|
@@ -101,12 +101,12 @@ function renderBloblangChanges(data, includeVersion = false) {
|
|
|
101
101
|
lines.push('');
|
|
102
102
|
lines.push('For methods, find the appropriate category section in `methods.adoc` and add:');
|
|
103
103
|
lines.push('```asciidoc');
|
|
104
|
-
lines.push('include::
|
|
104
|
+
lines.push('include::connect:partial$bloblang-methods/method_name.adoc[leveloffset=+2]');
|
|
105
105
|
lines.push('```');
|
|
106
106
|
lines.push('');
|
|
107
107
|
lines.push('For functions, add to the Functions section in `functions.adoc`:');
|
|
108
108
|
lines.push('```asciidoc');
|
|
109
|
-
lines.push('include::
|
|
109
|
+
lines.push('include::connect:partial$bloblang-functions/function_name.adoc[leveloffset=+2]');
|
|
110
110
|
lines.push('```');
|
|
111
111
|
lines.push('');
|
|
112
112
|
lines.push('**Note:** Partials are auto-generated. Includes must be added manually in alphabetical order within their section.');
|
|
@@ -700,7 +700,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
|
|
|
700
700
|
lines.push('```asciidoc');
|
|
701
701
|
lines.push('= Connector Name');
|
|
702
702
|
lines.push('');
|
|
703
|
-
lines.push('include::
|
|
703
|
+
lines.push('include::connect:components:page$type/connector-name.adoc[tag=single-source]');
|
|
704
704
|
lines.push('```');
|
|
705
705
|
lines.push('');
|
|
706
706
|
}
|
|
@@ -710,7 +710,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
|
|
|
710
710
|
lines.push('```asciidoc');
|
|
711
711
|
lines.push('= Connector Name');
|
|
712
712
|
lines.push('');
|
|
713
|
-
lines.push('include::
|
|
713
|
+
lines.push('include::connect:components:partial$components/cloud-only/type/connector-name.adoc[tag=single-source]');
|
|
714
714
|
lines.push('```');
|
|
715
715
|
lines.push('');
|
|
716
716
|
}
|