@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.
- package/CHANGELOG.adoc +130 -0
- package/LICENSE +21 -0
- package/README.adoc +645 -0
- package/dist/extensions/asciidoctorconfig/index.d.ts +71 -0
- package/dist/extensions/asciidoctorconfig/index.d.ts.map +1 -0
- package/dist/extensions/asciidoctorconfig/index.js +207 -0
- package/dist/extensions/asciidoctorconfig/index.js.map +1 -0
- package/dist/extensions/assembler-rename-pdf/index.d.ts +79 -0
- package/dist/extensions/assembler-rename-pdf/index.d.ts.map +1 -0
- package/dist/extensions/assembler-rename-pdf/index.js +267 -0
- package/dist/extensions/assembler-rename-pdf/index.js.map +1 -0
- package/dist/extensions/assembler-ruby-preflight/index.d.ts +76 -0
- package/dist/extensions/assembler-ruby-preflight/index.d.ts.map +1 -0
- package/dist/extensions/assembler-ruby-preflight/index.js +458 -0
- package/dist/extensions/assembler-ruby-preflight/index.js.map +1 -0
- package/dist/extensions/collector-writer/index.d.ts +79 -0
- package/dist/extensions/collector-writer/index.d.ts.map +1 -0
- package/dist/extensions/collector-writer/index.js +248 -0
- package/dist/extensions/collector-writer/index.js.map +1 -0
- package/dist/extensions/external-asset-downloader/index.d.ts +73 -0
- package/dist/extensions/external-asset-downloader/index.d.ts.map +1 -0
- package/dist/extensions/external-asset-downloader/index.js +387 -0
- package/dist/extensions/external-asset-downloader/index.js.map +1 -0
- package/dist/extensions/vale-integration/index.d.ts +76 -0
- package/dist/extensions/vale-integration/index.d.ts.map +1 -0
- package/dist/extensions/vale-integration/index.js +409 -0
- package/dist/extensions/vale-integration/index.js.map +1 -0
- 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
|