@baiyibai-antora/extensions 1.0.0

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.
Files changed (28) hide show
  1. package/CHANGELOG.adoc +130 -0
  2. package/LICENSE +21 -0
  3. package/README.adoc +645 -0
  4. package/dist/extensions/asciidoctorconfig/index.d.ts +71 -0
  5. package/dist/extensions/asciidoctorconfig/index.d.ts.map +1 -0
  6. package/dist/extensions/asciidoctorconfig/index.js +207 -0
  7. package/dist/extensions/asciidoctorconfig/index.js.map +1 -0
  8. package/dist/extensions/assembler-rename-pdf/index.d.ts +79 -0
  9. package/dist/extensions/assembler-rename-pdf/index.d.ts.map +1 -0
  10. package/dist/extensions/assembler-rename-pdf/index.js +267 -0
  11. package/dist/extensions/assembler-rename-pdf/index.js.map +1 -0
  12. package/dist/extensions/assembler-ruby-preflight/index.d.ts +76 -0
  13. package/dist/extensions/assembler-ruby-preflight/index.d.ts.map +1 -0
  14. package/dist/extensions/assembler-ruby-preflight/index.js +458 -0
  15. package/dist/extensions/assembler-ruby-preflight/index.js.map +1 -0
  16. package/dist/extensions/collector-writer/index.d.ts +79 -0
  17. package/dist/extensions/collector-writer/index.d.ts.map +1 -0
  18. package/dist/extensions/collector-writer/index.js +248 -0
  19. package/dist/extensions/collector-writer/index.js.map +1 -0
  20. package/dist/extensions/external-asset-downloader/index.d.ts +73 -0
  21. package/dist/extensions/external-asset-downloader/index.d.ts.map +1 -0
  22. package/dist/extensions/external-asset-downloader/index.js +387 -0
  23. package/dist/extensions/external-asset-downloader/index.js.map +1 -0
  24. package/dist/extensions/vale-integration/index.d.ts +76 -0
  25. package/dist/extensions/vale-integration/index.d.ts.map +1 -0
  26. package/dist/extensions/vale-integration/index.js +409 -0
  27. package/dist/extensions/vale-integration/index.js.map +1 -0
  28. package/package.json +72 -0
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ /**
3
+ * @baiyibai-antora/docs-extensions - asciidoctorconfig
4
+ *
5
+ * Copies .asciidoctorconfig.adoc and .asciidoctorconfig files from the content
6
+ * catalog to the project root for AsciiDoctor tooling.
7
+ *
8
+ * Configuration in antora-playbook.yml:
9
+ *
10
+ * antora:
11
+ * extensions:
12
+ * - require: '@baiyibai-antora/docs-extensions/asciidoc-extensions/asciidoctorconfig'
13
+ * asciidoctorconfig:
14
+ * enabled: true
15
+ * quiet: false
16
+ * version: ''
17
+ * component: 'asciidoctorconfig'
18
+ * module: 'ROOT'
19
+ * location: 'partial$'
20
+ * asciidoctorconfig_adoc_filename: 'asciidoctorconfig.adoc'
21
+ * asciidoctorconfig_filename: 'asciidoctorconfig'
22
+ */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || (function () {
40
+ var ownKeys = function(o) {
41
+ ownKeys = Object.getOwnPropertyNames || function (o) {
42
+ var ar = [];
43
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
44
+ return ar;
45
+ };
46
+ return ownKeys(o);
47
+ };
48
+ return function (mod) {
49
+ if (mod && mod.__esModule) return mod;
50
+ var result = {};
51
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
52
+ __setModuleDefault(result, mod);
53
+ return result;
54
+ };
55
+ })();
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ exports.register = register;
58
+ const fs = __importStar(require("node:fs/promises"));
59
+ const path = __importStar(require("path"));
60
+ const colors = {
61
+ blue: (s) => `\x1b[94m${s}\x1b[0m`,
62
+ };
63
+ let quietMode = true;
64
+ function timestamp() {
65
+ return new Date().toISOString().split('T')[1].replace('Z', '');
66
+ }
67
+ function logEvent(message) {
68
+ console.log(`[${timestamp()}] ${colors.blue('EVENT')} (antora-asciidoctorconfig): ${colors.blue(message)}`);
69
+ }
70
+ function makeLogger(hostLogger) {
71
+ const log = hostLogger || console;
72
+ return {
73
+ debug: (m) => {
74
+ if (!quietMode)
75
+ (log.debug ? log.debug(m) : console.debug(m));
76
+ },
77
+ info: (m) => {
78
+ if (!quietMode)
79
+ (log.info ? log.info(m) : console.log(m));
80
+ },
81
+ warn: (m) => {
82
+ (log.warn ? log.warn(m) : console.warn(m));
83
+ },
84
+ error: (m) => {
85
+ (log.error ? log.error(m) : console.error(m));
86
+ },
87
+ event: (m) => logEvent(m),
88
+ };
89
+ }
90
+ function pick(obj, keys, def) {
91
+ for (const k of keys) {
92
+ if (obj && obj[k] !== undefined)
93
+ return obj[k];
94
+ }
95
+ return def;
96
+ }
97
+ function readConfig(playbook) {
98
+ const defaults = {
99
+ enabled: true,
100
+ quiet: true,
101
+ version: '',
102
+ component: 'asciidoctorconfig',
103
+ module: 'ROOT',
104
+ location: 'partial$',
105
+ asciidoctorconfig_adoc_filename: undefined,
106
+ asciidoctorconfig_filename: undefined,
107
+ };
108
+ const extEntries = playbook?.antora?.extensions || [];
109
+ const me = extEntries.find((e) => {
110
+ const req = e && e.require ? String(e.require) : '';
111
+ return req.includes('asciidoctorconfig');
112
+ }) || {};
113
+ const raw = (me.asciidoctorconfig && typeof me.asciidoctorconfig === 'object'
114
+ ? me.asciidoctorconfig
115
+ : {});
116
+ return {
117
+ enabled: pick(raw, ['enabled'], defaults.enabled),
118
+ quiet: pick(raw, ['quiet'], defaults.quiet),
119
+ version: pick(raw, ['version'], defaults.version),
120
+ component: pick(raw, ['component'], defaults.component),
121
+ module: pick(raw, ['module'], defaults.module),
122
+ location: pick(raw, ['location'], defaults.location),
123
+ asciidoctorconfig_adoc_filename: pick(raw, ['asciidoctorconfig_adoc_filename', 'asciidoctorconfigAdocFilename', 'asciidoctorconfigadocfilename'], defaults.asciidoctorconfig_adoc_filename),
124
+ asciidoctorconfig_filename: pick(raw, ['asciidoctorconfig_filename', 'asciidoctorconfigFilename', 'asciidoctorconfigfilename'], defaults.asciidoctorconfig_filename),
125
+ };
126
+ }
127
+ function buildResourceId(cfg, filename) {
128
+ const versionPrefix = cfg.version ? `${cfg.version}@` : '';
129
+ return `${versionPrefix}${cfg.component}:${cfg.module}:${cfg.location}${filename}`;
130
+ }
131
+ async function copyConfigFile(contentCatalog, cfg, filename, targetFilename, logger) {
132
+ const resourceId = buildResourceId(cfg, filename);
133
+ logger.debug(`Looking for resource: ${resourceId}`);
134
+ let file = contentCatalog.resolveResource(resourceId);
135
+ if (!file) {
136
+ const allFiles = contentCatalog.getFiles();
137
+ file = allFiles.find((f) => {
138
+ return f.src?.component === cfg.component &&
139
+ f.src?.module === cfg.module &&
140
+ (f.src?.basename === filename || f.src?.relative?.endsWith(filename));
141
+ });
142
+ }
143
+ if (!file) {
144
+ logger.debug(`Resource not found: ${resourceId}`);
145
+ return { success: false, targetFilename };
146
+ }
147
+ const targetPath = path.resolve(process.cwd(), targetFilename);
148
+ try {
149
+ await fs.writeFile(targetPath, file.contents);
150
+ logger.debug(`Copied ${filename} -> ${targetFilename}`);
151
+ return { success: true, targetFilename };
152
+ }
153
+ catch (err) {
154
+ logger.error(`Failed to write ${targetFilename}: ${err.message}`);
155
+ return { success: false, targetFilename };
156
+ }
157
+ }
158
+ function register(context) {
159
+ const antoraLogger = context.getLogger ? context.getLogger('antora-asciidoctorconfig') : undefined;
160
+ const logger = makeLogger(antoraLogger);
161
+ context.once('contentClassified', async ({ playbook, contentCatalog }) => {
162
+ const cfg = readConfig(playbook);
163
+ quietMode = cfg.quiet;
164
+ logger.debug('=== asciidoctorconfig configuration ===');
165
+ logger.debug(JSON.stringify(cfg, null, 2));
166
+ if (!cfg.enabled) {
167
+ logger.debug('AsciiDoctorConfig extension disabled');
168
+ return;
169
+ }
170
+ if (!contentCatalog) {
171
+ logger.warn('contentCatalog not available');
172
+ return;
173
+ }
174
+ let adocResult = { success: false, targetFilename: '.asciidoctorconfig.adoc' };
175
+ if (cfg.asciidoctorconfig_adoc_filename) {
176
+ adocResult = await copyConfigFile(contentCatalog, cfg, cfg.asciidoctorconfig_adoc_filename, '.asciidoctorconfig.adoc', logger);
177
+ }
178
+ else {
179
+ logger.debug('asciidoctorconfig_adoc_filename not configured, skipping .asciidoctorconfig.adoc');
180
+ }
181
+ let configResult = { success: false, targetFilename: '.asciidoctorconfig' };
182
+ if (cfg.asciidoctorconfig_filename) {
183
+ configResult = await copyConfigFile(contentCatalog, cfg, cfg.asciidoctorconfig_filename, '.asciidoctorconfig', logger);
184
+ }
185
+ else {
186
+ logger.debug('asciidoctorconfig_filename not configured, skipping .asciidoctorconfig');
187
+ }
188
+ const copiedFiles = [];
189
+ if (adocResult.success)
190
+ copiedFiles.push(adocResult.targetFilename);
191
+ if (configResult.success)
192
+ copiedFiles.push(configResult.targetFilename);
193
+ if (copiedFiles.length > 0) {
194
+ const filename = cfg.asciidoctorconfig_filename || cfg.asciidoctorconfig_adoc_filename || 'asciidoctorconfig';
195
+ const resourceId = buildResourceId(cfg, filename);
196
+ const filesStr = copiedFiles.join(' and ');
197
+ logger.event(`Copied ${filesStr} from ${resourceId}`);
198
+ }
199
+ else if (!cfg.asciidoctorconfig_adoc_filename && !cfg.asciidoctorconfig_filename) {
200
+ logger.debug('No filename keys configured, nothing to copy');
201
+ }
202
+ else {
203
+ logger.warn('No AsciiDoctor config files found to copy');
204
+ }
205
+ });
206
+ }
207
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extensions/asciidoctorconfig/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @baiyibai-antora/docs-extensions - assembler-rename-pdf
3
+ *
4
+ * Renames exported PDF files based on document attributes and copies to target directory.
5
+ *
6
+ * Configuration in antora-playbook.yml:
7
+ *
8
+ * antora:
9
+ * extensions:
10
+ * - require: '@baiyibai-antora/docs-extensions/extensions/assembler-rename-pdf'
11
+ * renamer:
12
+ * enabled: true
13
+ * quiet: false
14
+ * pdf_filename_attribute: 'pdf-filename'
15
+ * assembler_base_dir: 'build/assembler-pdf'
16
+ * site_base_dir: 'build/site'
17
+ * exports_subdir: '_exports'
18
+ * copy_target_dir: '.'
19
+ */
20
+ interface RenamerConfig {
21
+ enabled: boolean;
22
+ quiet: boolean;
23
+ pdf_filename_attribute: string;
24
+ assembler_base_dir: string;
25
+ site_base_dir: string | null;
26
+ exports_subdir: string;
27
+ copy_target_dir: string | null;
28
+ }
29
+ interface AntoraLogger {
30
+ debug?: (msg: string) => void;
31
+ warn?: (msg: string) => void;
32
+ error?: (msg: string) => void;
33
+ }
34
+ interface ExtensionEntry {
35
+ require?: string;
36
+ renamer?: Partial<RenamerConfig>;
37
+ }
38
+ interface Playbook {
39
+ dir?: string;
40
+ antora?: {
41
+ extensions?: ExtensionEntry[];
42
+ };
43
+ output?: {
44
+ dir?: string;
45
+ };
46
+ }
47
+ interface VirtualFile {
48
+ src?: {
49
+ component?: string;
50
+ version?: string;
51
+ };
52
+ pub?: {
53
+ url?: string;
54
+ };
55
+ out?: {
56
+ path?: string;
57
+ };
58
+ }
59
+ interface ComponentVersion {
60
+ asciidoc?: {
61
+ attributes?: Record<string, string>;
62
+ };
63
+ }
64
+ interface ContentCatalog {
65
+ findBy: (criteria: {
66
+ family: string;
67
+ }) => VirtualFile[];
68
+ getComponentVersion: (component?: string, version?: string) => ComponentVersion | undefined;
69
+ }
70
+ interface Registry {
71
+ getLogger?: (name: string) => AntoraLogger;
72
+ on: (event: string, callback: (context: {
73
+ contentCatalog: ContentCatalog;
74
+ playbook: Playbook;
75
+ }) => void) => void;
76
+ }
77
+ export declare function register(context: Registry): void;
78
+ export {};
79
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extensions/assembler-rename-pdf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAQD,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED,UAAU,QAAQ;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;CACH;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,WAAW,EAAE,CAAC;IACxD,mBAAmB,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;CAC7F;AAED,UAAU,QAAQ;IAChB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAC;IAC3C,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,KAAK,IAAI,KAAK,IAAI,CAAC;CAClH;AA0FD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CA2JhD"}
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ /**
3
+ * @baiyibai-antora/docs-extensions - assembler-rename-pdf
4
+ *
5
+ * Renames exported PDF files based on document attributes and copies to target directory.
6
+ *
7
+ * Configuration in antora-playbook.yml:
8
+ *
9
+ * antora:
10
+ * extensions:
11
+ * - require: '@baiyibai-antora/docs-extensions/extensions/assembler-rename-pdf'
12
+ * renamer:
13
+ * enabled: true
14
+ * quiet: false
15
+ * pdf_filename_attribute: 'pdf-filename'
16
+ * assembler_base_dir: 'build/assembler-pdf'
17
+ * site_base_dir: 'build/site'
18
+ * exports_subdir: '_exports'
19
+ * copy_target_dir: '.'
20
+ */
21
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ var desc = Object.getOwnPropertyDescriptor(m, k);
24
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
25
+ desc = { enumerable: true, get: function() { return m[k]; } };
26
+ }
27
+ Object.defineProperty(o, k2, desc);
28
+ }) : (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ o[k2] = m[k];
31
+ }));
32
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
33
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
34
+ }) : function(o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = (this && this.__importStar) || (function () {
38
+ var ownKeys = function(o) {
39
+ ownKeys = Object.getOwnPropertyNames || function (o) {
40
+ var ar = [];
41
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
42
+ return ar;
43
+ };
44
+ return ownKeys(o);
45
+ };
46
+ return function (mod) {
47
+ if (mod && mod.__esModule) return mod;
48
+ var result = {};
49
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
50
+ __setModuleDefault(result, mod);
51
+ return result;
52
+ };
53
+ })();
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.register = register;
56
+ const fs = __importStar(require("fs"));
57
+ const path = __importStar(require("path"));
58
+ const colors = {
59
+ green: (s) => `\x1b[0;32m${s}\x1b[0m`,
60
+ blue: (s) => `\x1b[94m${s}\x1b[0m`,
61
+ };
62
+ let quietMode = true;
63
+ function timestamp() {
64
+ return new Date().toISOString().split('T')[1].replace('Z', '');
65
+ }
66
+ function logFinished(newFilename, copyTargetDir) {
67
+ const level = colors.green('FINISHED');
68
+ let msg;
69
+ if (copyTargetDir) {
70
+ msg = colors.green(`Renamed PDF and copied to ${copyTargetDir}/${newFilename}`);
71
+ }
72
+ else {
73
+ msg = colors.green(`Renamed PDF to ${newFilename}`);
74
+ }
75
+ console.log(`[${timestamp()}] ${level} (antora-rename-pdf): ${msg}`);
76
+ }
77
+ function makeLogger(hostLogger) {
78
+ const log = hostLogger || console;
79
+ return {
80
+ debug: (m) => {
81
+ if (!quietMode) {
82
+ (log.debug ? log.debug(m) : console.debug(m));
83
+ }
84
+ },
85
+ warn: (m) => {
86
+ (log.warn ? log.warn(m) : console.warn(m));
87
+ },
88
+ error: (m) => {
89
+ (log.error ? log.error(m) : console.error(m));
90
+ },
91
+ };
92
+ }
93
+ function safeJoin(baseDir, relPath) {
94
+ const clean = String(relPath || '').replace(/^[/\\]+/, '');
95
+ return path.join(baseDir, clean);
96
+ }
97
+ function ensureDir(dirPath) {
98
+ try {
99
+ fs.mkdirSync(dirPath, { recursive: true });
100
+ return true;
101
+ }
102
+ catch {
103
+ return false;
104
+ }
105
+ }
106
+ function readRenamerConfig(playbook) {
107
+ const defaults = {
108
+ enabled: true,
109
+ quiet: true,
110
+ pdf_filename_attribute: 'pdf-filename',
111
+ assembler_base_dir: 'build/assembler-pdf',
112
+ site_base_dir: null,
113
+ exports_subdir: '_exports',
114
+ copy_target_dir: null,
115
+ };
116
+ const extEntries = playbook?.antora?.extensions || [];
117
+ const me = extEntries.find((e) => {
118
+ const req = e && e.require ? String(e.require) : '';
119
+ return req.includes('assembler-rename-pdf');
120
+ }) || {};
121
+ const raw = me.renamer && typeof me.renamer === 'object' ? me.renamer : {};
122
+ const renamerCfg = {
123
+ enabled: raw.enabled,
124
+ quiet: raw.quiet,
125
+ pdf_filename_attribute: (raw.pdf_filename_attribute ?? raw.pdfFilenameAttribute ?? raw.pdffilenameattribute),
126
+ assembler_base_dir: (raw.assembler_base_dir ?? raw.assemblerBaseDir ?? raw.assemblerbasedir),
127
+ site_base_dir: (raw.site_base_dir ?? raw.siteBaseDir ?? raw.sitebasedir),
128
+ exports_subdir: (raw.exports_subdir ?? raw.exportsSubdir ?? raw.exportssubdir),
129
+ copy_target_dir: (raw.copy_target_dir ?? raw.copyTargetDir ?? raw.copytargetdir),
130
+ };
131
+ Object.keys(renamerCfg).forEach((k) => {
132
+ if (renamerCfg[k] === undefined) {
133
+ delete renamerCfg[k];
134
+ }
135
+ });
136
+ return { ...defaults, ...renamerCfg };
137
+ }
138
+ function register(context) {
139
+ const antoraLogger = context.getLogger ? context.getLogger('antora-rename-pdf') : undefined;
140
+ const logger = makeLogger(antoraLogger);
141
+ context.on('sitePublished', ({ contentCatalog, playbook }) => {
142
+ try {
143
+ const cfg = readRenamerConfig(playbook);
144
+ quietMode = !!cfg.quiet;
145
+ if (!cfg.enabled) {
146
+ logger.debug('Rename PDF Extension Enabled: false (skipped)');
147
+ return;
148
+ }
149
+ logger.debug('=== assembler-rename-pdf configuration ===');
150
+ logger.debug(JSON.stringify(cfg, null, 2));
151
+ const siteBaseDir = cfg.site_base_dir
152
+ ? path.resolve(process.cwd(), cfg.site_base_dir)
153
+ : playbook?.output?.dir
154
+ ? path.resolve(process.cwd(), playbook.output.dir)
155
+ : path.resolve(process.cwd(), 'build', 'site');
156
+ const assemblerBaseDir = path.resolve(process.cwd(), cfg.assembler_base_dir);
157
+ const copyTargetDir = cfg.copy_target_dir ? path.resolve(process.cwd(), cfg.copy_target_dir) : null;
158
+ const exportsSubdir = String(cfg.exports_subdir);
159
+ const pdfFilenameAttribute = String(cfg.pdf_filename_attribute || 'pdf-filename');
160
+ if (!contentCatalog) {
161
+ logger.error('contentCatalog is missing');
162
+ return;
163
+ }
164
+ const exportFiles = contentCatalog.findBy({ family: 'export' }) || [];
165
+ logger.debug(`exportFiles count=${exportFiles.length}`);
166
+ const pdfExports = exportFiles.filter((vf) => {
167
+ const pubUrlLC = (vf?.pub?.url || '').toLowerCase();
168
+ const outPathLC = (vf?.out?.path || '').toLowerCase();
169
+ return pubUrlLC.endsWith('.pdf') || outPathLC.endsWith('.pdf');
170
+ });
171
+ if (pdfExports.length === 0) {
172
+ logger.warn('No PDF exports found.');
173
+ return;
174
+ }
175
+ pdfExports.forEach((pdfFile) => {
176
+ try {
177
+ const { component, version } = pdfFile.src || {};
178
+ const componentVersion = contentCatalog.getComponentVersion(component, version);
179
+ const attrs = componentVersion?.asciidoc?.attributes || {};
180
+ logger.debug(`found export: component=${component}, version=${version}, pub.url=${pdfFile?.pub?.url}, out.path=${pdfFile?.out?.path}`);
181
+ const docFilenameRaw = attrs[pdfFilenameAttribute];
182
+ if (!docFilenameRaw) {
183
+ logger.warn(`Missing ${pdfFilenameAttribute} attribute for ${component}@${version}`);
184
+ return;
185
+ }
186
+ const newFilename = docFilenameRaw.endsWith('.pdf') ? docFilenameRaw : `${docFilenameRaw}.pdf`;
187
+ const pubUrl = pdfFile?.pub?.url;
188
+ const outPathCurrent = pdfFile?.out?.path;
189
+ if (!pubUrl) {
190
+ logger.warn(`publish url missing for ${component}@${version} — skipping`);
191
+ return;
192
+ }
193
+ const pubParts = pubUrl.split('/');
194
+ const currentFilename = pubParts[pubParts.length - 1];
195
+ if (currentFilename !== newFilename) {
196
+ pubParts[pubParts.length - 1] = newFilename;
197
+ const newPubUrl = pubParts.join('/');
198
+ const newSiteOutPath = newPubUrl.startsWith('/') ? newPubUrl.slice(1) : newPubUrl;
199
+ if (pdfFile.pub)
200
+ pdfFile.pub.url = newPubUrl;
201
+ if (pdfFile.out)
202
+ pdfFile.out.path = newSiteOutPath;
203
+ const absOldSite = safeJoin(siteBaseDir, outPathCurrent || pubUrl.replace(/^[/\\]+/, ''));
204
+ const absNewSite = safeJoin(siteBaseDir, newSiteOutPath);
205
+ if (fs.existsSync(absOldSite) && !fs.existsSync(absNewSite)) {
206
+ ensureDir(path.dirname(absNewSite));
207
+ try {
208
+ fs.renameSync(absOldSite, absNewSite);
209
+ logger.debug(`rename site: ${absOldSite} -> ${absNewSite}`);
210
+ }
211
+ catch (e) {
212
+ logger.error(`SITE rename failed: ${e.message}`);
213
+ }
214
+ }
215
+ const absOldAsm = safeJoin(assemblerBaseDir, path.join(component || '', version || '', exportsSubdir, 'index.pdf'));
216
+ const absNewAsm = safeJoin(assemblerBaseDir, path.join(component || '', version || '', exportsSubdir, newFilename));
217
+ if (fs.existsSync(absOldAsm) && !fs.existsSync(absNewAsm)) {
218
+ ensureDir(path.dirname(absNewAsm));
219
+ try {
220
+ fs.renameSync(absOldAsm, absNewAsm);
221
+ logger.debug(`rename asm: ${absOldAsm} -> ${absNewAsm}`);
222
+ }
223
+ catch (e2) {
224
+ logger.error(`ASM rename failed: ${e2.message}`);
225
+ }
226
+ }
227
+ }
228
+ const absNewAsmFinal = safeJoin(assemblerBaseDir, path.join(component || '', version || '', exportsSubdir, newFilename));
229
+ const absNewSiteFinal = safeJoin(siteBaseDir, path.join(component || '', version || '', exportsSubdir, newFilename));
230
+ if (copyTargetDir) {
231
+ const copyTarget = path.join(copyTargetDir, newFilename);
232
+ try {
233
+ if (fs.existsSync(absNewAsmFinal)) {
234
+ ensureDir(path.dirname(copyTarget));
235
+ fs.copyFileSync(absNewAsmFinal, copyTarget);
236
+ logger.debug(`copyAsm->target: ${absNewAsmFinal} -> ${copyTarget}`);
237
+ logFinished(newFilename, copyTargetDir);
238
+ }
239
+ else if (fs.existsSync(absNewSiteFinal)) {
240
+ ensureDir(path.dirname(copyTarget));
241
+ fs.copyFileSync(absNewSiteFinal, copyTarget);
242
+ logger.debug(`copySite->target: ${absNewSiteFinal} -> ${copyTarget}`);
243
+ logFinished(newFilename, copyTargetDir);
244
+ }
245
+ else {
246
+ logger.warn(`COPY skipped: source not found for ${newFilename}`);
247
+ }
248
+ }
249
+ catch (eCp) {
250
+ logger.error(`COPY failed: ${eCp.message}`);
251
+ }
252
+ }
253
+ else {
254
+ logFinished(newFilename);
255
+ }
256
+ }
257
+ catch (ePdf) {
258
+ logger.error(`exception: ${ePdf?.message}`);
259
+ }
260
+ });
261
+ }
262
+ catch (e) {
263
+ logger.error(`top-level exception: ${e?.message}`);
264
+ }
265
+ });
266
+ }
267
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extensions/assembler-rename-pdf/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @baiyibai-antora/docs-extensions - assembler-ruby-preflight
3
+ *
4
+ * Coordinates Ruby/Ghostscript version checks and gem bundling for PDF generation.
5
+ * Supports per-platform configuration (Windows, Linux, macOS).
6
+ *
7
+ * Configuration in antora-playbook.yml:
8
+ *
9
+ * antora:
10
+ * extensions:
11
+ * - require: '@baiyibai-antora/docs-extensions/extensions/assembler-ruby-preflight'
12
+ * preflight:
13
+ * enabled: true
14
+ * quiet: true
15
+ * gemfile_path: './assembler-themes/Gemfile'
16
+ * use_system_gems: false
17
+ * platforms:
18
+ * win32:
19
+ * ruby_version: '3.3.8'
20
+ * gs_version: '10.05.1'
21
+ * check_ruby: true
22
+ * check_gs: true
23
+ * linux:
24
+ * ruby_version: '3.3.8'
25
+ * check_ruby: true
26
+ * darwin:
27
+ * ruby_version: '3.3.8'
28
+ * gs_version: '10.05.1'
29
+ * check_ruby: true
30
+ * check_gs: true
31
+ */
32
+ type Platform = 'win32' | 'linux' | 'darwin';
33
+ interface PlatformConfig {
34
+ ruby_version?: string;
35
+ ruby_revision?: string;
36
+ ruby_guidance?: string;
37
+ gs_version?: string;
38
+ gs_guidance?: string;
39
+ check_ruby: boolean;
40
+ check_gs: boolean;
41
+ }
42
+ interface PreflightConfig {
43
+ enabled: boolean;
44
+ quiet: boolean;
45
+ gemfile_path: string;
46
+ use_system_gems: boolean;
47
+ platforms: Record<Platform, PlatformConfig>;
48
+ }
49
+ interface AntoraLogger {
50
+ debug?: (msg: string) => void;
51
+ info?: (msg: string) => void;
52
+ warn?: (msg: string) => void;
53
+ error?: (msg: string) => void;
54
+ }
55
+ interface ExtensionEntry {
56
+ require?: string;
57
+ preflight?: Partial<PreflightConfig>;
58
+ }
59
+ interface Playbook {
60
+ dir?: string;
61
+ antora?: {
62
+ extensions?: ExtensionEntry[];
63
+ };
64
+ }
65
+ interface Registry {
66
+ getLogger?: (name: string) => AntoraLogger;
67
+ on: (event: string, callback: (context: {
68
+ playbook: Playbook;
69
+ }) => void) => void;
70
+ once: (event: string, callback: (context: {
71
+ playbook: Playbook;
72
+ }) => Promise<void>) => void;
73
+ }
74
+ export declare function register(context: Registry): void;
75
+ export {};
76
+ //# sourceMappingURL=index.d.ts.map