@redpanda-data/docs-extensions-and-macros 4.12.6 → 4.13.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/README.adoc +33 -1064
- package/bin/doc-tools-mcp.js +720 -0
- package/bin/doc-tools.js +1050 -50
- package/bin/mcp-tools/antora.js +153 -0
- package/bin/mcp-tools/cache.js +89 -0
- package/bin/mcp-tools/cloud-regions.js +127 -0
- package/bin/mcp-tools/content-review.js +196 -0
- package/bin/mcp-tools/crd-docs.js +153 -0
- package/bin/mcp-tools/frontmatter.js +138 -0
- package/bin/mcp-tools/generated-docs-review.js +887 -0
- package/bin/mcp-tools/helm-docs.js +152 -0
- package/bin/mcp-tools/index.js +245 -0
- package/bin/mcp-tools/job-queue.js +468 -0
- package/bin/mcp-tools/mcp-validation.js +266 -0
- package/bin/mcp-tools/metrics-docs.js +146 -0
- package/bin/mcp-tools/openapi.js +174 -0
- package/bin/mcp-tools/prompt-discovery.js +283 -0
- package/bin/mcp-tools/property-docs.js +157 -0
- package/bin/mcp-tools/rpcn-docs.js +113 -0
- package/bin/mcp-tools/rpk-docs.js +141 -0
- package/bin/mcp-tools/telemetry.js +211 -0
- package/bin/mcp-tools/utils.js +131 -0
- package/bin/mcp-tools/versions.js +168 -0
- package/cli-utils/convert-doc-links.js +1 -1
- package/cli-utils/github-token.js +58 -0
- package/cli-utils/self-managed-docs-branch.js +2 -2
- package/cli-utils/setup-mcp.js +313 -0
- package/docker-compose/25.1/transactions.md +1 -1
- package/docker-compose/transactions.md +1 -1
- package/extensions/DEVELOPMENT.adoc +464 -0
- package/extensions/README.adoc +124 -0
- package/extensions/REFERENCE.adoc +768 -0
- package/extensions/USER_GUIDE.adoc +339 -0
- package/extensions/generate-rp-connect-info.js +3 -4
- package/extensions/version-fetcher/get-latest-console-version.js +38 -27
- package/extensions/version-fetcher/get-latest-redpanda-version.js +65 -54
- package/extensions/version-fetcher/retry-util.js +88 -0
- package/extensions/version-fetcher/set-latest-version.js +6 -3
- package/macros/DEVELOPMENT.adoc +377 -0
- package/macros/README.adoc +105 -0
- package/macros/REFERENCE.adoc +222 -0
- package/macros/USER_GUIDE.adoc +220 -0
- package/macros/rp-connect-components.js +6 -6
- package/mcp/CLI_INTERFACE.adoc +384 -0
- package/mcp/COSTS.adoc +167 -0
- package/mcp/DEVELOPMENT.adoc +726 -0
- package/mcp/README.adoc +172 -0
- package/mcp/USER_GUIDE.adoc +1392 -0
- package/mcp/WRITER_EXTENSION_GUIDE.adoc +814 -0
- package/mcp/prompts/README.adoc +183 -0
- package/mcp/prompts/property-docs-guide.md +283 -0
- package/mcp/prompts/review-for-style.md +128 -0
- package/mcp/prompts/rpcn-connector-docs-guide.md +126 -0
- package/mcp/prompts/write-new-guide.md +222 -0
- package/mcp/team-standards/style-guide.md +321 -0
- package/mcp/templates/README.adoc +212 -0
- package/mcp/templates/prompt-review-template.md +80 -0
- package/mcp/templates/prompt-write-template.md +110 -0
- package/mcp/templates/resource-template.md +76 -0
- package/package.json +16 -5
- package/tools/bundle-openapi.js +20 -10
- package/tools/cloud-regions/generate-cloud-regions.js +1 -1
- package/tools/fetch-from-github.js +18 -4
- package/tools/gen-rpk-ascii.py +3 -1
- package/tools/generate-cli-docs.js +325 -0
- package/tools/get-console-version.js +4 -2
- package/tools/get-redpanda-version.js +4 -2
- package/tools/metrics/metrics.py +19 -7
- package/tools/property-extractor/Makefile +7 -1
- package/tools/property-extractor/cloud_config.py +4 -4
- package/tools/property-extractor/constant_resolver.py +11 -11
- package/tools/property-extractor/property_extractor.py +18 -16
- package/tools/property-extractor/topic_property_extractor.py +2 -2
- package/tools/property-extractor/transformers.py +7 -7
- package/tools/property-extractor/type_definition_extractor.py +4 -4
- package/tools/redpanda-connect/README.adoc +1 -1
- package/tools/redpanda-connect/generate-rpcn-connector-docs.js +5 -3
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
= AsciiDoc Macros Development Guide
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 3
|
|
4
|
+
|
|
5
|
+
Guide for developing new AsciiDoc macros.
|
|
6
|
+
|
|
7
|
+
AsciiDoc macros extend AsciiDoc syntax with custom inline and block elements. Macros are Asciidoctor.js extensions that process custom syntax and generate HTML output.
|
|
8
|
+
|
|
9
|
+
== Macro types
|
|
10
|
+
|
|
11
|
+
=== Inline macros
|
|
12
|
+
|
|
13
|
+
Inline macros appear within text and generate inline HTML:
|
|
14
|
+
|
|
15
|
+
[,asciidoc]
|
|
16
|
+
----
|
|
17
|
+
Text with glossterm:term[] inline.
|
|
18
|
+
----
|
|
19
|
+
|
|
20
|
+
=== Block macros
|
|
21
|
+
|
|
22
|
+
Block macros appear on their own lines and generate block-level HTML:
|
|
23
|
+
|
|
24
|
+
[,asciidoc]
|
|
25
|
+
----
|
|
26
|
+
component_table::[]
|
|
27
|
+
----
|
|
28
|
+
|
|
29
|
+
== Creating an inline macro
|
|
30
|
+
|
|
31
|
+
=== Create the file
|
|
32
|
+
|
|
33
|
+
[,bash]
|
|
34
|
+
----
|
|
35
|
+
touch macros/my-macro.js
|
|
36
|
+
----
|
|
37
|
+
|
|
38
|
+
=== Implement the macro
|
|
39
|
+
|
|
40
|
+
[,javascript]
|
|
41
|
+
----
|
|
42
|
+
module.exports.register = function register (registry, context) {
|
|
43
|
+
// Register inline macro
|
|
44
|
+
registry.inlineMacro('mymacro', function () {
|
|
45
|
+
const self = this
|
|
46
|
+
|
|
47
|
+
// Define macro processing
|
|
48
|
+
self.process(function (parent, target, attrs) {
|
|
49
|
+
// target: the value after the colon
|
|
50
|
+
// attrs: positional and named attributes
|
|
51
|
+
|
|
52
|
+
// Generate HTML
|
|
53
|
+
const html = `<span class="my-macro">${target}</span>`
|
|
54
|
+
|
|
55
|
+
// Return as passthrough
|
|
56
|
+
return self.createInline(parent, 'quoted', html, { type: 'unquoted' })
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
}
|
|
60
|
+
----
|
|
61
|
+
|
|
62
|
+
=== Register in playbook
|
|
63
|
+
|
|
64
|
+
[,yaml]
|
|
65
|
+
----
|
|
66
|
+
asciidoc:
|
|
67
|
+
extensions:
|
|
68
|
+
- './macros/my-macro.js'
|
|
69
|
+
----
|
|
70
|
+
|
|
71
|
+
=== Use in AsciiDoc
|
|
72
|
+
|
|
73
|
+
[,asciidoc]
|
|
74
|
+
----
|
|
75
|
+
This is my mymacro:example[] macro.
|
|
76
|
+
----
|
|
77
|
+
|
|
78
|
+
== Creating a block macro
|
|
79
|
+
|
|
80
|
+
[,javascript]
|
|
81
|
+
----
|
|
82
|
+
module.exports.register = function register (registry, context) {
|
|
83
|
+
registry.blockMacro('myblock', function () {
|
|
84
|
+
const self = this
|
|
85
|
+
|
|
86
|
+
self.process(function (parent, target, attrs) {
|
|
87
|
+
// Generate block HTML
|
|
88
|
+
const html = `
|
|
89
|
+
<div class="my-block">
|
|
90
|
+
<h3>${target}</h3>
|
|
91
|
+
<p>${attrs.content || 'No content'}</p>
|
|
92
|
+
</div>
|
|
93
|
+
`
|
|
94
|
+
|
|
95
|
+
// Return as passthrough block
|
|
96
|
+
return self.createBlock(parent, 'pass', html)
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
----
|
|
101
|
+
|
|
102
|
+
Use in AsciiDoc:
|
|
103
|
+
|
|
104
|
+
[,asciidoc]
|
|
105
|
+
----
|
|
106
|
+
myblock::title[content=Some content here]
|
|
107
|
+
----
|
|
108
|
+
|
|
109
|
+
== Common patterns
|
|
110
|
+
|
|
111
|
+
=== Accessing attributes
|
|
112
|
+
|
|
113
|
+
[,javascript]
|
|
114
|
+
----
|
|
115
|
+
self.process(function (parent, target, attrs) {
|
|
116
|
+
// Positional attributes
|
|
117
|
+
const first = attrs.$positional[0]
|
|
118
|
+
const second = attrs.$positional[1]
|
|
119
|
+
|
|
120
|
+
// Named attributes
|
|
121
|
+
const name = attrs.name
|
|
122
|
+
const value = attrs.value || 'default'
|
|
123
|
+
|
|
124
|
+
// Document attributes
|
|
125
|
+
const docAttr = parent.getDocument().getAttribute('my-attr')
|
|
126
|
+
|
|
127
|
+
return self.createInline(parent, 'quoted', html, { type: 'unquoted' })
|
|
128
|
+
})
|
|
129
|
+
----
|
|
130
|
+
|
|
131
|
+
=== Generating links
|
|
132
|
+
|
|
133
|
+
[,javascript]
|
|
134
|
+
----
|
|
135
|
+
self.process(function (parent, target, attrs) {
|
|
136
|
+
const url = `https://example.com/${target}`
|
|
137
|
+
const text = attrs.text || target
|
|
138
|
+
|
|
139
|
+
const html = `<a href="${url}" class="external">${text}</a>`
|
|
140
|
+
|
|
141
|
+
return self.createInline(parent, 'quoted', html, { type: 'unquoted' })
|
|
142
|
+
})
|
|
143
|
+
----
|
|
144
|
+
|
|
145
|
+
=== Accessing page context
|
|
146
|
+
|
|
147
|
+
[,javascript]
|
|
148
|
+
----
|
|
149
|
+
module.exports.register = function register (registry, context) {
|
|
150
|
+
// Access Antora context
|
|
151
|
+
const { contentCatalog, file } = context
|
|
152
|
+
|
|
153
|
+
registry.inlineMacro('pagemacro', function () {
|
|
154
|
+
const self = this
|
|
155
|
+
|
|
156
|
+
self.process(function (parent, target, attrs) {
|
|
157
|
+
// Access current page
|
|
158
|
+
const doc = parent.getDocument()
|
|
159
|
+
const component = doc.getAttribute('page-component-name')
|
|
160
|
+
const version = doc.getAttribute('page-component-version')
|
|
161
|
+
|
|
162
|
+
// Access content catalog
|
|
163
|
+
const page = contentCatalog.getById({
|
|
164
|
+
component,
|
|
165
|
+
version,
|
|
166
|
+
module: 'ROOT',
|
|
167
|
+
family: 'page',
|
|
168
|
+
relative: `${target}.adoc`
|
|
169
|
+
})
|
|
170
|
+
|
|
171
|
+
if (page) {
|
|
172
|
+
const html = `<a href="${page.pub.url}">${page.asciidoc.doctitle}</a>`
|
|
173
|
+
return self.createInline(parent, 'quoted', html, { type: 'unquoted' })
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return self.createInline(parent, 'quoted', target, { type: 'unquoted' })
|
|
177
|
+
})
|
|
178
|
+
})
|
|
179
|
+
}
|
|
180
|
+
----
|
|
181
|
+
|
|
182
|
+
=== Creating complex HTML
|
|
183
|
+
|
|
184
|
+
[,javascript]
|
|
185
|
+
----
|
|
186
|
+
self.process(function (parent, target, attrs) {
|
|
187
|
+
const items = attrs.items ? attrs.items.split(',') : []
|
|
188
|
+
|
|
189
|
+
const html = `
|
|
190
|
+
<div class="custom-list">
|
|
191
|
+
<ul>
|
|
192
|
+
${items.map(item => `<li>${item.trim()}</li>`).join('\n')}
|
|
193
|
+
</ul>
|
|
194
|
+
</div>
|
|
195
|
+
`
|
|
196
|
+
|
|
197
|
+
return self.createBlock(parent, 'pass', html)
|
|
198
|
+
})
|
|
199
|
+
----
|
|
200
|
+
|
|
201
|
+
=== Error handling
|
|
202
|
+
|
|
203
|
+
[,javascript]
|
|
204
|
+
----
|
|
205
|
+
self.process(function (parent, target, attrs) {
|
|
206
|
+
try {
|
|
207
|
+
if (!target) {
|
|
208
|
+
console.warn('mymacro: target is required')
|
|
209
|
+
return self.createInline(parent, 'quoted', '[Missing target]', { type: 'unquoted' })
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Process macro
|
|
213
|
+
const html = `<span>${target}</span>`
|
|
214
|
+
return self.createInline(parent, 'quoted', html, { type: 'unquoted' })
|
|
215
|
+
|
|
216
|
+
} catch (err) {
|
|
217
|
+
console.error(`mymacro error: ${err.message}`)
|
|
218
|
+
return self.createInline(parent, 'quoted', '[Macro error]', { type: 'unquoted' })
|
|
219
|
+
}
|
|
220
|
+
})
|
|
221
|
+
----
|
|
222
|
+
|
|
223
|
+
== Testing
|
|
224
|
+
|
|
225
|
+
=== Unit tests
|
|
226
|
+
|
|
227
|
+
[,javascript]
|
|
228
|
+
----
|
|
229
|
+
// macros/__tests__/my-macro.test.js
|
|
230
|
+
const asciidoctor = require('@asciidoctor/core')()
|
|
231
|
+
const myMacro = require('../my-macro')
|
|
232
|
+
|
|
233
|
+
describe('my-macro', () => {
|
|
234
|
+
let registry
|
|
235
|
+
|
|
236
|
+
beforeEach(() => {
|
|
237
|
+
registry = asciidoctor.Extensions.create()
|
|
238
|
+
myMacro.register(registry)
|
|
239
|
+
})
|
|
240
|
+
|
|
241
|
+
test('processes inline macro', () => {
|
|
242
|
+
const html = asciidoctor.convert(
|
|
243
|
+
'Text with mymacro:value[] inline.',
|
|
244
|
+
{ extension_registry: registry }
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
expect(html).toContain('class="my-macro"')
|
|
248
|
+
expect(html).toContain('value')
|
|
249
|
+
})
|
|
250
|
+
})
|
|
251
|
+
----
|
|
252
|
+
|
|
253
|
+
=== Integration tests
|
|
254
|
+
|
|
255
|
+
Test with Antora:
|
|
256
|
+
|
|
257
|
+
[,bash]
|
|
258
|
+
----
|
|
259
|
+
npx antora --fetch local-antora-playbook.yml
|
|
260
|
+
----
|
|
261
|
+
|
|
262
|
+
== Best practices
|
|
263
|
+
|
|
264
|
+
=== Validate input
|
|
265
|
+
|
|
266
|
+
[,javascript]
|
|
267
|
+
----
|
|
268
|
+
if (!target) {
|
|
269
|
+
console.warn('Macro requires a target')
|
|
270
|
+
return self.createInline(parent, 'quoted', '', { type: 'unquoted' })
|
|
271
|
+
}
|
|
272
|
+
----
|
|
273
|
+
|
|
274
|
+
=== Escape HTML
|
|
275
|
+
|
|
276
|
+
[,javascript]
|
|
277
|
+
----
|
|
278
|
+
function escapeHtml(text) {
|
|
279
|
+
return text
|
|
280
|
+
.replace(/&/g, '&')
|
|
281
|
+
.replace(/</g, '<')
|
|
282
|
+
.replace(/>/g, '>')
|
|
283
|
+
.replace(/"/g, '"')
|
|
284
|
+
.replace(/'/g, ''')
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
const safeTarget = escapeHtml(target)
|
|
288
|
+
const html = `<span>${safeTarget}</span>`
|
|
289
|
+
----
|
|
290
|
+
|
|
291
|
+
=== Provide defaults
|
|
292
|
+
|
|
293
|
+
[,javascript]
|
|
294
|
+
----
|
|
295
|
+
const cssClass = attrs.class || 'default-class'
|
|
296
|
+
const text = attrs.text || target || 'Default text'
|
|
297
|
+
----
|
|
298
|
+
|
|
299
|
+
=== Use semantic HTML
|
|
300
|
+
|
|
301
|
+
[,javascript]
|
|
302
|
+
----
|
|
303
|
+
// Good
|
|
304
|
+
const html = `<code class="property">${target}</code>`
|
|
305
|
+
|
|
306
|
+
// Avoid
|
|
307
|
+
const html = `<span class="code-like property">${target}</span>`
|
|
308
|
+
----
|
|
309
|
+
|
|
310
|
+
=== Document your macro
|
|
311
|
+
|
|
312
|
+
[,javascript]
|
|
313
|
+
----
|
|
314
|
+
/**
|
|
315
|
+
* My Macro - Short description
|
|
316
|
+
*
|
|
317
|
+
* Syntax: mymacro:target[attr1,attr2]
|
|
318
|
+
*
|
|
319
|
+
* Parameters:
|
|
320
|
+
* - target: The target value (required)
|
|
321
|
+
* - attr1: First attribute (optional)
|
|
322
|
+
* - attr2: Second attribute (optional)
|
|
323
|
+
*
|
|
324
|
+
* Example:
|
|
325
|
+
* mymacro:example[foo,bar]
|
|
326
|
+
*/
|
|
327
|
+
module.exports.register = function register (registry, context) {
|
|
328
|
+
// Implementation
|
|
329
|
+
}
|
|
330
|
+
----
|
|
331
|
+
|
|
332
|
+
== Debugging
|
|
333
|
+
|
|
334
|
+
=== Enable logging
|
|
335
|
+
|
|
336
|
+
[,javascript]
|
|
337
|
+
----
|
|
338
|
+
console.log('Macro target:', target)
|
|
339
|
+
console.log('Macro attrs:', JSON.stringify(attrs, null, 2))
|
|
340
|
+
console.log('Document attrs:', parent.getDocument().getAttributes())
|
|
341
|
+
----
|
|
342
|
+
|
|
343
|
+
=== Test locally
|
|
344
|
+
|
|
345
|
+
Create a test AsciiDoc file:
|
|
346
|
+
|
|
347
|
+
[,asciidoc]
|
|
348
|
+
----
|
|
349
|
+
= Test Page
|
|
350
|
+
|
|
351
|
+
Testing mymacro:value[attr1,attr2] inline.
|
|
352
|
+
----
|
|
353
|
+
|
|
354
|
+
Convert directly:
|
|
355
|
+
|
|
356
|
+
[,bash]
|
|
357
|
+
----
|
|
358
|
+
node -e "
|
|
359
|
+
const asciidoctor = require('@asciidoctor/core')()
|
|
360
|
+
const macro = require('./macros/my-macro')
|
|
361
|
+
const registry = asciidoctor.Extensions.create()
|
|
362
|
+
macro.register(registry)
|
|
363
|
+
const html = asciidoctor.convertFile('test.adoc', {
|
|
364
|
+
extension_registry: registry,
|
|
365
|
+
to_file: false
|
|
366
|
+
})
|
|
367
|
+
console.log(html)
|
|
368
|
+
"
|
|
369
|
+
----
|
|
370
|
+
|
|
371
|
+
== Related documentation
|
|
372
|
+
|
|
373
|
+
* link:USER_GUIDE.adoc[User guide] - How to use macros
|
|
374
|
+
* link:REFERENCE.adoc[Reference] - Complete macro documentation
|
|
375
|
+
* https://docs.asciidoctor.org/asciidoctor.js/latest/extend/extensions/[Asciidoctor.js Extensions]
|
|
376
|
+
* https://docs.asciidoctor.org/asciidoctor.js/latest/extend/extensions/inline-macro-processor/[Inline Macro Processor]
|
|
377
|
+
* https://docs.asciidoctor.org/asciidoctor.js/latest/extend/extensions/block-macro-processor/[Block Macro Processor]
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
= AsciiDoc Macros
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 2
|
|
4
|
+
|
|
5
|
+
Documentation for AsciiDoc macros and extensions for Redpanda documentation.
|
|
6
|
+
|
|
7
|
+
== What are AsciiDoc macros?
|
|
8
|
+
|
|
9
|
+
AsciiDoc macros are custom inline and block elements that extend AsciiDoc syntax. These macros provide specialized formatting, references, and dynamic content generation within documentation pages.
|
|
10
|
+
|
|
11
|
+
== Documentation
|
|
12
|
+
|
|
13
|
+
link:USER_GUIDE.adoc[**User guide**]:: How to use AsciiDoc macros in your documentation
|
|
14
|
+
+
|
|
15
|
+
* Installation and setup
|
|
16
|
+
* Using macros in AsciiDoc
|
|
17
|
+
* Common usage patterns
|
|
18
|
+
* Troubleshooting
|
|
19
|
+
|
|
20
|
+
link:REFERENCE.adoc[**Reference**]:: Complete reference for all available macros
|
|
21
|
+
+
|
|
22
|
+
* Macro descriptions
|
|
23
|
+
* Syntax and parameters
|
|
24
|
+
* Configuration options
|
|
25
|
+
* Examples for each macro
|
|
26
|
+
|
|
27
|
+
link:DEVELOPMENT.adoc[**Development guide**]:: How to develop new AsciiDoc macros
|
|
28
|
+
+
|
|
29
|
+
* Macro architecture
|
|
30
|
+
* Creating inline and block macros
|
|
31
|
+
* Testing and debugging
|
|
32
|
+
* Best practices
|
|
33
|
+
|
|
34
|
+
== Quickstart
|
|
35
|
+
|
|
36
|
+
=== Install the package
|
|
37
|
+
|
|
38
|
+
[,bash]
|
|
39
|
+
----
|
|
40
|
+
npm i @redpanda-data/docs-extensions-and-macros
|
|
41
|
+
----
|
|
42
|
+
|
|
43
|
+
=== Configure in your playbook
|
|
44
|
+
|
|
45
|
+
[,yaml]
|
|
46
|
+
----
|
|
47
|
+
asciidoc:
|
|
48
|
+
extensions:
|
|
49
|
+
- '@redpanda-data/docs-extensions-and-macros/macros/glossary'
|
|
50
|
+
----
|
|
51
|
+
|
|
52
|
+
IMPORTANT: Macros must be registered under the `asciidoc.extensions` key in your playbook, not `antora.extensions`.
|
|
53
|
+
|
|
54
|
+
== Available macros
|
|
55
|
+
|
|
56
|
+
=== Inline macros
|
|
57
|
+
|
|
58
|
+
* **glossterm** - Reference glossary terms with tooltips
|
|
59
|
+
* **config_ref** - Link to configuration properties
|
|
60
|
+
* **helm_ref** - Link to Helm chart values
|
|
61
|
+
* **badge** - Display status badges
|
|
62
|
+
|
|
63
|
+
=== Block macros
|
|
64
|
+
|
|
65
|
+
* **components_by_category** - Display Redpanda Connect components grouped by category
|
|
66
|
+
* **component_table** - Generate searchable component tables
|
|
67
|
+
* **component_type_dropdown** - Create dropdown for component types
|
|
68
|
+
|
|
69
|
+
See link:REFERENCE.adoc[Reference documentation] for complete details on each macro.
|
|
70
|
+
|
|
71
|
+
== Common use cases
|
|
72
|
+
|
|
73
|
+
=== Reference glossary terms
|
|
74
|
+
|
|
75
|
+
[,asciidoc]
|
|
76
|
+
----
|
|
77
|
+
The glossterm:partition[partition] contains the data.
|
|
78
|
+
----
|
|
79
|
+
|
|
80
|
+
=== Link to configuration
|
|
81
|
+
|
|
82
|
+
[,asciidoc]
|
|
83
|
+
----
|
|
84
|
+
Configure the config_ref:retention.ms,true,topic-properties[] property.
|
|
85
|
+
----
|
|
86
|
+
|
|
87
|
+
=== Link to Helm values
|
|
88
|
+
|
|
89
|
+
[,asciidoc]
|
|
90
|
+
----
|
|
91
|
+
For configuration options, see the helm_ref:storage.tieredConfig.cloud_storage_enabled[] value.
|
|
92
|
+
----
|
|
93
|
+
|
|
94
|
+
=== Display Redpanda Connect components
|
|
95
|
+
|
|
96
|
+
[,asciidoc]
|
|
97
|
+
----
|
|
98
|
+
components_by_category::inputs[]
|
|
99
|
+
----
|
|
100
|
+
|
|
101
|
+
== Support
|
|
102
|
+
|
|
103
|
+
* link:USER_GUIDE.adoc#troubleshooting[Troubleshooting guide]
|
|
104
|
+
* https://github.com/redpanda-data/docs-extensions-and-macros/issues[Report issues]
|
|
105
|
+
* https://docs.asciidoctor.org/asciidoctor.js/latest/extend/extensions/[Asciidoctor.js Extensions]
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
= AsciiDoc macros reference
|
|
2
|
+
:toc:
|
|
3
|
+
:toclevels: 3
|
|
4
|
+
|
|
5
|
+
Reference documentation for all AsciiDoc macros and extensions provided by this library.
|
|
6
|
+
|
|
7
|
+
IMPORTANT: Be sure to register each extension under the `asciidoc.extensions` key in the playbook, not the `antora.extensions` key.
|
|
8
|
+
|
|
9
|
+
== Add line numbers and highlights
|
|
10
|
+
|
|
11
|
+
This extension adds the necessary classes to make line numbers and line highlighting work with Prism.js.
|
|
12
|
+
|
|
13
|
+
=== Registration
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
antora:
|
|
17
|
+
extensions:
|
|
18
|
+
- '@redpanda-data/docs-extensions-and-macros/asciidoc-extensions/add-line-numbers-highlights'
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
== config_ref
|
|
22
|
+
|
|
23
|
+
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.
|
|
24
|
+
|
|
25
|
+
=== Usage
|
|
26
|
+
|
|
27
|
+
The `config_ref` macro is used in an AsciiDoc document as follows:
|
|
28
|
+
|
|
29
|
+
[,asciidoc]
|
|
30
|
+
----
|
|
31
|
+
config_ref:configRef,isLink,path[]
|
|
32
|
+
----
|
|
33
|
+
|
|
34
|
+
The `config_ref` macro takes three parameters:
|
|
35
|
+
|
|
36
|
+
configRef::
|
|
37
|
+
This is the configuration reference, which is also used to generate the anchor link if `isLink` is `true`.
|
|
38
|
+
|
|
39
|
+
isLink::
|
|
40
|
+
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.
|
|
41
|
+
|
|
42
|
+
path::
|
|
43
|
+
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`.
|
|
44
|
+
|
|
45
|
+
IMPORTANT: The path must be the name of a document at the root of the `reference` module.
|
|
46
|
+
|
|
47
|
+
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.
|
|
48
|
+
|
|
49
|
+
For example:
|
|
50
|
+
|
|
51
|
+
[,asciidoc]
|
|
52
|
+
----
|
|
53
|
+
config_ref:example_config,true,tunable-properties[]
|
|
54
|
+
----
|
|
55
|
+
|
|
56
|
+
=== Registration
|
|
57
|
+
|
|
58
|
+
[,yaml]
|
|
59
|
+
----
|
|
60
|
+
asciidoc:
|
|
61
|
+
extensions:
|
|
62
|
+
- '@redpanda-data/docs-extensions-and-macros/macros/config-ref'
|
|
63
|
+
----
|
|
64
|
+
|
|
65
|
+
== glossterm
|
|
66
|
+
|
|
67
|
+
The `glossterm` inline macro provides a way to define and reference glossary terms in your AsciiDoc documents.
|
|
68
|
+
|
|
69
|
+
NOTE: This macro is a customized version of https://gitlab.com/djencks/asciidoctor-glossary[`asciidoctor-glossary`].
|
|
70
|
+
|
|
71
|
+
=== Usage
|
|
72
|
+
|
|
73
|
+
Use the `glossterm` inline macro to reference a term within the text of the document:
|
|
74
|
+
|
|
75
|
+
[,asciidoc]
|
|
76
|
+
----
|
|
77
|
+
glossterm:my term[myDefinition]
|
|
78
|
+
----
|
|
79
|
+
|
|
80
|
+
It takes two parameters:
|
|
81
|
+
|
|
82
|
+
term::
|
|
83
|
+
The term to be defined.
|
|
84
|
+
|
|
85
|
+
definition (optional)::
|
|
86
|
+
The definition of the term. If the term is defined in the https://github.com/redpanda-data/docs-site[`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.
|
|
87
|
+
|
|
88
|
+
=== Configuration options
|
|
89
|
+
|
|
90
|
+
glossary-log-terms (optional)::
|
|
91
|
+
Whether to log a textual representation of a definition list item to the console.
|
|
92
|
+
|
|
93
|
+
glossary-term-role (optional)::
|
|
94
|
+
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.
|
|
95
|
+
|
|
96
|
+
glossary-links (optional)::
|
|
97
|
+
Whether to generate links to glossary entries.
|
|
98
|
+
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.
|
|
99
|
+
|
|
100
|
+
glossary-page (optional)::
|
|
101
|
+
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.
|
|
102
|
+
|
|
103
|
+
glossary-tooltip (optional)::
|
|
104
|
+
Whether to enable tooltips for the defined terms. Valid values are:
|
|
105
|
+
- title: This uses the browser built-in `title` attribute to display the definition.
|
|
106
|
+
|
|
107
|
+
- true: This inserts the definition as the value of the attribute `data-glossary-tooltip`.
|
|
108
|
+
|
|
109
|
+
- data-<attribute-name>: This inserts the definition as the value of the supplied attribute name, which must start with `data`.
|
|
110
|
+
|
|
111
|
+
The last two options are intended to support js/css tooltip solutions such as tippy.js.
|
|
112
|
+
|
|
113
|
+
=== Registration
|
|
114
|
+
|
|
115
|
+
[,yaml]
|
|
116
|
+
----
|
|
117
|
+
asciidoc:
|
|
118
|
+
extensions:
|
|
119
|
+
- '@redpanda-data/docs-extensions-and-macros/macros/glossary'
|
|
120
|
+
----
|
|
121
|
+
|
|
122
|
+
== helm_ref
|
|
123
|
+
|
|
124
|
+
This is an inline macro to create links to a Helm `values.yaml` file on ArtifactHub.
|
|
125
|
+
|
|
126
|
+
=== Usage
|
|
127
|
+
|
|
128
|
+
In an AsciiDoc document, use the `helm_ref` macro as follows:
|
|
129
|
+
|
|
130
|
+
[,asciidoc]
|
|
131
|
+
----
|
|
132
|
+
helm_ref:<helmRef>[]
|
|
133
|
+
----
|
|
134
|
+
|
|
135
|
+
Where `<helmRef>` is the Helm configuration value you want to reference in the `values.yaml` file.
|
|
136
|
+
|
|
137
|
+
For example:
|
|
138
|
+
|
|
139
|
+
Given a Helm reference value of `myConfigValue`, you would use the macro like this:
|
|
140
|
+
|
|
141
|
+
[,asciidoc]
|
|
142
|
+
----
|
|
143
|
+
helm_ref:myConfigValue[]
|
|
144
|
+
----
|
|
145
|
+
|
|
146
|
+
This will generate the following output:
|
|
147
|
+
|
|
148
|
+
[,asciidoc]
|
|
149
|
+
----
|
|
150
|
+
For default values and documentation for configuration options, see the https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=myConfigValue[values.yaml] file.
|
|
151
|
+
----
|
|
152
|
+
|
|
153
|
+
If you do not specify a Helm reference value, the macro generates a link without specifying a path.
|
|
154
|
+
|
|
155
|
+
=== Registration
|
|
156
|
+
|
|
157
|
+
[,yaml]
|
|
158
|
+
----
|
|
159
|
+
asciidoc:
|
|
160
|
+
extensions:
|
|
161
|
+
- '@redpanda-data/docs-extensions-and-macros/macros/helm-ref'
|
|
162
|
+
----
|
|
163
|
+
|
|
164
|
+
== components_by_category
|
|
165
|
+
|
|
166
|
+
This macro generates a tabbed interface to display Redpanda Connect components by category.
|
|
167
|
+
|
|
168
|
+
The categories are fetched from the `connectCategoriesData` that's generated in the Component category aggregator extension.
|
|
169
|
+
|
|
170
|
+
=== Usage
|
|
171
|
+
|
|
172
|
+
```asciidoc
|
|
173
|
+
components_by_category::[<type>]
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
=== Registration
|
|
177
|
+
|
|
178
|
+
```yaml
|
|
179
|
+
asciidoc:
|
|
180
|
+
extensions:
|
|
181
|
+
- '@redpanda-data/docs-extensions-and-macros/macros/rp-connect-components'
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
== component_table
|
|
185
|
+
|
|
186
|
+
This macro generates a searchable table of all Redpanda Connect components with filters for support and type.
|
|
187
|
+
|
|
188
|
+
The types are fetched from the `flatComponentsData` that's generated in the Component category aggregator extension.
|
|
189
|
+
|
|
190
|
+
=== Usage
|
|
191
|
+
|
|
192
|
+
```asciidoc
|
|
193
|
+
component_table::[]
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
=== Registration
|
|
197
|
+
|
|
198
|
+
```yaml
|
|
199
|
+
asciidoc:
|
|
200
|
+
extensions:
|
|
201
|
+
- '@redpanda-data/docs-extensions-and-macros/macros/rp-connect-components'
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
== component_type_dropdown
|
|
205
|
+
|
|
206
|
+
This macro generates a dropdown of other supported types for a particular component, allowing users to switch between different types.
|
|
207
|
+
|
|
208
|
+
The types are fetched from the `flatComponentsData` that's generated in the Component category aggregator extension.
|
|
209
|
+
|
|
210
|
+
=== Usage
|
|
211
|
+
|
|
212
|
+
```asciidoc
|
|
213
|
+
component_type_dropdown::[]
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
=== Registration
|
|
217
|
+
|
|
218
|
+
```yaml
|
|
219
|
+
asciidoc:
|
|
220
|
+
extensions:
|
|
221
|
+
- '@redpanda-data/docs-extensions-and-macros/macros/rp-connect-components'
|
|
222
|
+
```
|