@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,409 @@
1
+ "use strict";
2
+ /**
3
+ * @baiyibai-antora/docs-extensions - vale-integration
4
+ *
5
+ * Integrates Vale linting into the Antora build pipeline for AsciiDoc files.
6
+ *
7
+ * Configuration in antora-playbook.yml:
8
+ *
9
+ * antora:
10
+ * extensions:
11
+ * - require: '@baiyibai-antora/docs-extensions/extensions/vale-integration'
12
+ * vale:
13
+ * enabled: true
14
+ * quiet: false
15
+ * output_dir: 'vale-output'
16
+ * config_file: './vale-rules/.vale.ini'
17
+ * ignore_files: []
18
+ * toolchain_config_path: './toolchain-config.ini'
19
+ * max_logs: 10
20
+ * list_limit: 20
21
+ */
22
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ var desc = Object.getOwnPropertyDescriptor(m, k);
25
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
26
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
+ }
28
+ Object.defineProperty(o, k2, desc);
29
+ }) : (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ o[k2] = m[k];
32
+ }));
33
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
35
+ }) : function(o, v) {
36
+ o["default"] = v;
37
+ });
38
+ var __importStar = (this && this.__importStar) || (function () {
39
+ var ownKeys = function(o) {
40
+ ownKeys = Object.getOwnPropertyNames || function (o) {
41
+ var ar = [];
42
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
43
+ return ar;
44
+ };
45
+ return ownKeys(o);
46
+ };
47
+ return function (mod) {
48
+ if (mod && mod.__esModule) return mod;
49
+ var result = {};
50
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
51
+ __setModuleDefault(result, mod);
52
+ return result;
53
+ };
54
+ })();
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.register = register;
57
+ const fsp = __importStar(require("node:fs/promises"));
58
+ const fs = __importStar(require("node:fs"));
59
+ const path = __importStar(require("node:path"));
60
+ const child_process_1 = require("child_process");
61
+ const isWindows = process.platform === 'win32';
62
+ function normalizeGlyphsWindows(s) {
63
+ if (!isWindows)
64
+ return s;
65
+ return String(s || '')
66
+ .replace(/✔/g, 'OK')
67
+ .replace(/✖/g, 'X')
68
+ .replace(/⚠/g, '!');
69
+ }
70
+ let quietMode = true;
71
+ function nowISO() {
72
+ return new Date().toISOString().split('T')[1].replace('Z', '');
73
+ }
74
+ function event(m) {
75
+ console.log(`[${nowISO()}] \x1b[94mEVENT\x1b[0m (antora-vale): \x1b[94m${m}\x1b[0m`);
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
+ info: (m) => {
85
+ if (!quietMode)
86
+ (log.info ? log.info(m) : console.log(m));
87
+ },
88
+ warn: (m) => {
89
+ (log.warn ? log.warn(m) : console.warn(m));
90
+ },
91
+ error: (m) => {
92
+ (log.error ? log.error(m) : console.error(m));
93
+ },
94
+ event: (m) => event(m),
95
+ };
96
+ }
97
+ function stripAnsi(s) {
98
+ return String(s || '').replace(/[\u001b\u009b][[()#;?]*(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '');
99
+ }
100
+ function toBool(v) {
101
+ if (v === true)
102
+ return true;
103
+ if (v === false)
104
+ return false;
105
+ if (typeof v === 'string') {
106
+ const s = v.trim().toLowerCase();
107
+ if (['true', '1', 'yes', 'on'].includes(s))
108
+ return true;
109
+ if (['false', '0', 'no', 'off'].includes(s))
110
+ return false;
111
+ }
112
+ return Boolean(v);
113
+ }
114
+ function toInt(v, def) {
115
+ const n = Number(v);
116
+ return Number.isFinite(n) && n > 0 ? n : def;
117
+ }
118
+ function pick(obj, keys, def) {
119
+ for (const k of keys) {
120
+ if (obj && obj[k] !== undefined)
121
+ return obj[k];
122
+ }
123
+ return def;
124
+ }
125
+ function ensureArray(v) {
126
+ return Array.isArray(v) ? v : v ? [v] : [];
127
+ }
128
+ function escapeReg(s) {
129
+ return String(s).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
130
+ }
131
+ function parseIni(content) {
132
+ const result = {};
133
+ let currentSection = null;
134
+ for (const line of String(content || '').split('\n')) {
135
+ const t = line.trim();
136
+ if (!t || t.startsWith('#') || t.startsWith(';'))
137
+ continue;
138
+ const sec = t.match(/^\[(.+)\]$/);
139
+ if (sec) {
140
+ currentSection = sec[1];
141
+ result[currentSection] = {};
142
+ continue;
143
+ }
144
+ if (currentSection) {
145
+ const kv = t.match(/^([^=]+)\s*=\s*(.*)$/);
146
+ if (kv)
147
+ result[currentSection][kv[1].trim()] = kv[2].trim();
148
+ }
149
+ }
150
+ return result;
151
+ }
152
+ function loadToolchainIgnores(playbookDir, configPath, logger) {
153
+ const toolchainConfigPath = configPath
154
+ ? path.resolve(playbookDir, configPath)
155
+ : path.resolve(playbookDir, './toolchain-config.ini');
156
+ try {
157
+ const content = fs.readFileSync(toolchainConfigPath, 'utf8');
158
+ const ini = parseIni(content);
159
+ if (ini.vale_ignore && ini.vale_ignore.patterns) {
160
+ const patterns = ini.vale_ignore.patterns
161
+ .split(',')
162
+ .map((p) => p.trim())
163
+ .filter(Boolean);
164
+ logger.debug(`Loaded ${patterns.length} ignore patterns from ${path.basename(toolchainConfigPath)}`);
165
+ return { patterns, configPath: toolchainConfigPath };
166
+ }
167
+ }
168
+ catch (error) {
169
+ if (error.code !== 'ENOENT') {
170
+ logger.warn(`Could not read ${toolchainConfigPath}: ${error.message}`);
171
+ }
172
+ }
173
+ return { patterns: [], configPath: toolchainConfigPath };
174
+ }
175
+ function register(context) {
176
+ const logger = makeLogger(context.getLogger ? context.getLogger('antora-vale') : undefined);
177
+ let playbookDir;
178
+ let cfg = {
179
+ enabled: true,
180
+ quiet: true,
181
+ output_dir: 'vale-output',
182
+ config_file: './.vale.ini',
183
+ ignore_files: [],
184
+ predefined_ignore_files: [],
185
+ toolchain_config_path: './toolchain-config.ini',
186
+ max_logs: 10,
187
+ list_limit: 20,
188
+ };
189
+ context.once('contextStarted', async ({ playbook }) => {
190
+ playbookDir = playbook.dir;
191
+ const extEntry = (playbook?.antora?.extensions || []).find((ext) => {
192
+ const req = String(ext.require || '');
193
+ return req.includes('vale-integration') || req.includes('antora-vale');
194
+ }) || {};
195
+ const extConf = extEntry.vale && typeof extEntry.vale === 'object'
196
+ ? extEntry.vale
197
+ : extEntry.Vale && typeof extEntry.Vale === 'object'
198
+ ? extEntry.Vale
199
+ : extEntry.valewrapper && typeof extEntry.valewrapper === 'object'
200
+ ? extEntry.valewrapper
201
+ : {};
202
+ const predefinedIgnores = ensureArray(pick(extConf, ['predefined_ignore_files', 'predefinedIgnoreFiles', 'predefinedignorefiles'], cfg.predefined_ignore_files));
203
+ cfg = {
204
+ enabled: toBool(pick(extConf, ['enabled'], cfg.enabled)),
205
+ quiet: toBool(pick(extConf, ['quiet'], cfg.quiet)),
206
+ output_dir: String(pick(extConf, ['output_dir', 'outputDir', 'outputdir'], cfg.output_dir)),
207
+ config_file: String(pick(extConf, ['config_file', 'configFile', 'configfile'], cfg.config_file)),
208
+ ignore_files: ensureArray(pick(extConf, ['ignore_files', 'ignoreFiles', 'ignorefiles'], cfg.ignore_files)),
209
+ predefined_ignore_files: predefinedIgnores,
210
+ toolchain_config_path: String(pick(extConf, ['toolchain_config_path', 'toolchainConfigPath', 'toolchainconfigpath'], cfg.toolchain_config_path)),
211
+ max_logs: toInt(pick(extConf, ['max_logs', 'maxLogs', 'maxlogs'], cfg.max_logs), cfg.max_logs),
212
+ list_limit: toInt(pick(extConf, ['list_limit', 'listLimit', 'listlimit'], cfg.list_limit), cfg.list_limit),
213
+ };
214
+ quietMode = !!cfg.quiet;
215
+ const toolchain = loadToolchainIgnores(playbookDir, cfg.toolchain_config_path, logger);
216
+ cfg.ignore_files = [...new Set([...(cfg.ignore_files || []), ...(cfg.predefined_ignore_files || []), ...(toolchain.patterns || [])])];
217
+ logger.debug('=== vale-integration configuration ===');
218
+ logger.debug(JSON.stringify(cfg, null, 2));
219
+ const outDir = path.join(playbookDir, cfg.output_dir);
220
+ try {
221
+ await fsp.mkdir(outDir, { recursive: true });
222
+ const files = await fsp.readdir(outDir);
223
+ const toDelete = files
224
+ .filter((f) => f.startsWith('vale-') && f.endsWith('.log'))
225
+ .sort()
226
+ .slice(0, -cfg.max_logs);
227
+ await Promise.all(toDelete.map((f) => fsp.rm(path.join(outDir, f))));
228
+ logger.debug(`log pruning: deleted ${toDelete.length} old vale logs`);
229
+ }
230
+ catch (err) {
231
+ logger.warn(`Could not manage vale logs: ${err.message}`);
232
+ }
233
+ });
234
+ context.once('contentClassified', async ({ contentCatalog }) => {
235
+ if (!playbookDir) {
236
+ logger.error('Playbook directory not set');
237
+ return;
238
+ }
239
+ if (!cfg.enabled) {
240
+ logger.debug('Vale disabled (skipped)');
241
+ return;
242
+ }
243
+ if (!contentCatalog) {
244
+ logger.error('contentCatalog is missing');
245
+ return;
246
+ }
247
+ const candidates = contentCatalog.getFiles().filter((file) => {
248
+ const src = file.src;
249
+ if (!src || !src.path)
250
+ return false;
251
+ if (src.family !== 'page' && src.family !== 'partial')
252
+ return false;
253
+ const relPath = src.path;
254
+ const ignored = (cfg.ignore_files || []).some((pat) => {
255
+ const p = pat.startsWith('/') ? pat.slice(1) : pat;
256
+ return relPath.includes(p);
257
+ });
258
+ return !ignored;
259
+ });
260
+ logger.debug(`catalog candidates: ${candidates.length}`);
261
+ if (!quietMode && candidates.length) {
262
+ const preview = candidates.slice(0, cfg.list_limit).map((f) => f.src?.path || '(no path)');
263
+ logger.debug(`first ${preview.length} candidates:\n - ${preview.join('\n - ')}`);
264
+ }
265
+ if (candidates.length === 0) {
266
+ logger.warn('No files found in content catalog');
267
+ event('Vale finished');
268
+ return;
269
+ }
270
+ const tempDir = path.join(playbookDir, '.vale-temp');
271
+ await fsp.mkdir(tempDir, { recursive: true });
272
+ const allFiles = [];
273
+ const pathMap = new Map();
274
+ try {
275
+ for (const file of candidates) {
276
+ const origin = (file.src.origin?.url || 'local').replace(/[^a-zA-Z0-9]/g, '_');
277
+ const component = file.src.component;
278
+ const module = file.src.module || 'ROOT';
279
+ const family = file.src.family;
280
+ const rel = file.src.relative;
281
+ const tmpPath = path.join(tempDir, origin, component || '', module, family || '', rel || '');
282
+ await fsp.mkdir(path.dirname(tmpPath), { recursive: true });
283
+ await fsp.writeFile(tmpPath, file.contents, 'utf8');
284
+ allFiles.push(tmpPath);
285
+ let display;
286
+ const originUrl = file.src.origin?.url || '';
287
+ if (originUrl.startsWith('http') && originUrl.endsWith('.git')) {
288
+ const base = originUrl.replace(/\.git$/, '');
289
+ const branch = file.src.origin?.branch || 'main';
290
+ const repoRel = `modules/${module}/${family}s/${rel}`;
291
+ display = `${base}/-/blob/${branch}/${repoRel}?ref_type=heads`;
292
+ }
293
+ else {
294
+ display = `${originUrl}/${component}/${module}/${family}/${rel}`;
295
+ }
296
+ pathMap.set(tmpPath, display);
297
+ }
298
+ logger.debug(`temp writeout: ${allFiles.length} files -> ${tempDir}`);
299
+ const outDir = path.join(playbookDir, cfg.output_dir);
300
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
301
+ const outputFile = path.join(outDir, `${timestamp}-vale-document.log`);
302
+ const MAX_CMD = isWindows ? 7000 : 60000;
303
+ const baseArgs = ['--config=' + cfg.config_file, '--output=CLI', '--no-wrap'];
304
+ const baseCmd = 'vale ' + baseArgs.map((a) => `"${a}"`).join(' ') + ' ';
305
+ const batches = [];
306
+ let cur = [];
307
+ let len = baseCmd.length;
308
+ for (const f of allFiles) {
309
+ const arg = `"${f}" `;
310
+ if (len + arg.length > MAX_CMD && cur.length > 0) {
311
+ batches.push(cur);
312
+ cur = [f];
313
+ len = baseCmd.length + arg.length;
314
+ }
315
+ else {
316
+ cur.push(f);
317
+ len += arg.length;
318
+ }
319
+ }
320
+ if (cur.length)
321
+ batches.push(cur);
322
+ logger.debug(`vale batches: ${batches.length}`);
323
+ if (!quietMode) {
324
+ batches.forEach((b, i) => logger.debug(` batch ${i + 1}: ${b.length} files`));
325
+ logger.debug(`vale config: ${cfg.config_file}`);
326
+ }
327
+ let combined = '';
328
+ let hasErrors = false;
329
+ for (let i = 0; i < batches.length; i++) {
330
+ const batch = batches[i];
331
+ try {
332
+ const args = [...baseArgs, ...batch];
333
+ const cmd = 'vale ' + args.map((a) => `"${a}"`).join(' ');
334
+ logger.debug(`CMD: ${cmd}`);
335
+ const out = (0, child_process_1.execSync)(cmd, {
336
+ cwd: playbookDir,
337
+ encoding: 'utf8',
338
+ maxBuffer: 32 * 1024 * 1024,
339
+ });
340
+ let text = out;
341
+ for (const [tempPath, displayPath] of pathMap) {
342
+ const relTemp = path.relative(playbookDir, tempPath);
343
+ text = text.replace(new RegExp(escapeReg(relTemp), 'g'), displayPath);
344
+ }
345
+ text = normalizeGlyphsWindows(text);
346
+ combined += text + '\n';
347
+ let summary = text.trim().split('\n').pop() || '';
348
+ if (isWindows)
349
+ summary = summary.replace(/✔/g, 'OK').replace(/✖/g, 'X').replace(/⚠/g, '!');
350
+ if (summary) {
351
+ logger.info(`vale results${batches.length > 1 ? ` (batch ${i + 1}/${batches.length})` : ''}: ${summary}`);
352
+ }
353
+ }
354
+ catch (e) {
355
+ hasErrors = true;
356
+ const err = e;
357
+ let errMsg = (err.stderr?.toString() || err.stdout?.toString() || err.message || '')
358
+ .replace(/\/antora\//g, '')
359
+ .trim();
360
+ for (const [tempPath, displayPath] of pathMap) {
361
+ const relTemp = path.relative(playbookDir, tempPath);
362
+ errMsg = errMsg.replace(new RegExp(escapeReg(relTemp), 'g'), displayPath);
363
+ }
364
+ errMsg = normalizeGlyphsWindows(errMsg);
365
+ if (errMsg.toLowerCase().includes('command line is too long') ||
366
+ errMsg.toLowerCase().includes('argument list too long') ||
367
+ err.code === 'E2BIG') {
368
+ logger.error('Command line too long even after batching');
369
+ logger.warn('Add more patterns to ignore_files in antora-playbook.yml or toolchain-config.ini [vale_ignore]');
370
+ }
371
+ else if (errMsg) {
372
+ combined += errMsg + '\n';
373
+ logger.warn(errMsg);
374
+ }
375
+ }
376
+ }
377
+ if (combined.trim()) {
378
+ let normalized = stripAnsi(combined);
379
+ normalized = normalizeGlyphsWindows(normalized);
380
+ await fsp.writeFile(outputFile, normalized, 'utf8');
381
+ }
382
+ try {
383
+ const files = await fsp.readdir(outDir);
384
+ const toDelete = files
385
+ .filter((f) => f.startsWith('vale-') && f.endsWith('.log'))
386
+ .sort()
387
+ .slice(0, -cfg.max_logs);
388
+ await Promise.all(toDelete.map((f) => fsp.rm(path.join(outDir, f))));
389
+ logger.debug(`log pruning: deleted ${toDelete.length} old vale logs`);
390
+ }
391
+ catch (err) {
392
+ logger.warn(`Could not prune logs: ${err.message}`);
393
+ }
394
+ if (hasErrors)
395
+ logger.warn(`Vale reported issues. Consult ${outputFile}`);
396
+ logger.event('Vale finished');
397
+ }
398
+ finally {
399
+ try {
400
+ await fsp.rm(path.join(playbookDir, '.vale-temp'), { recursive: true, force: true });
401
+ logger.debug('cleaned .vale-temp');
402
+ }
403
+ catch (err) {
404
+ logger.warn(`Could not clean temp dir: ${err.message}`);
405
+ }
406
+ }
407
+ });
408
+ }
409
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extensions/vale-integration/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@baiyibai-antora/extensions",
3
+ "version": "1.0.0",
4
+ "description": "Antora extensions and AsciiDoc macros for Baiyibai documentation",
5
+ "keywords": [
6
+ "antora",
7
+ "extension",
8
+ "asciidoc",
9
+ "documentation",
10
+ "pdf",
11
+ "vale"
12
+ ],
13
+ "author": {
14
+ "name": "Baiyibai Docs Team"
15
+ },
16
+ "license": "MIT",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://gitlab.com/baiyibai-antora/baiyibai-extensions"
20
+ },
21
+ "type": "commonjs",
22
+ "engines": {
23
+ "node": ">=18"
24
+ },
25
+ "exports": {
26
+ "./collector-writer": {
27
+ "require": "./dist/extensions/collector-writer/index.js",
28
+ "types": "./dist/extensions/collector-writer/index.d.ts"
29
+ },
30
+ "./assembler-ruby-preflight": {
31
+ "require": "./dist/extensions/assembler-ruby-preflight/index.js",
32
+ "types": "./dist/extensions/assembler-ruby-preflight/index.d.ts"
33
+ },
34
+ "./assembler-rename-pdf": {
35
+ "require": "./dist/extensions/assembler-rename-pdf/index.js",
36
+ "types": "./dist/extensions/assembler-rename-pdf/index.d.ts"
37
+ },
38
+ "./external-asset-downloader": {
39
+ "require": "./dist/extensions/external-asset-downloader/index.js",
40
+ "types": "./dist/extensions/external-asset-downloader/index.d.ts"
41
+ },
42
+ "./vale-integration": {
43
+ "require": "./dist/extensions/vale-integration/index.js",
44
+ "types": "./dist/extensions/vale-integration/index.d.ts"
45
+ },
46
+ "./asciidoctorconfig": {
47
+ "require": "./dist/extensions/asciidoctorconfig/index.js",
48
+ "types": "./dist/extensions/asciidoctorconfig/index.d.ts"
49
+ }
50
+ },
51
+ "files": [
52
+ "dist",
53
+ "README.adoc",
54
+ "CHANGELOG.adoc",
55
+ "LICENSE"
56
+ ],
57
+ "scripts": {
58
+ "build": "tsc",
59
+ "clean": "rm -rf dist",
60
+ "prepublishOnly": "npm run build"
61
+ },
62
+ "peerDependencies": {
63
+ "antora": ">=3.2.0-alpha.11"
64
+ },
65
+ "devDependencies": {
66
+ "typescript": "^5.3.0",
67
+ "@types/node": "^20.0.0"
68
+ },
69
+ "publishConfig": {
70
+ "access": "public"
71
+ }
72
+ }