obsidian-dev-utils 4.8.2 → 4.9.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.md
CHANGED
@@ -25,30 +25,48 @@ var __copyProps = (to, from, except, desc) => {
|
|
25
25
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
26
26
|
var MarkdownCodeBlockProcessor_exports = {};
|
27
27
|
__export(MarkdownCodeBlockProcessor_exports, {
|
28
|
-
|
28
|
+
getCodeBlockArguments: () => getCodeBlockArguments,
|
29
|
+
replaceCodeBlock: () => replaceCodeBlock
|
29
30
|
});
|
30
31
|
module.exports = __toCommonJS(MarkdownCodeBlockProcessor_exports);
|
32
|
+
var import_shell_quote = require('shell-quote');
|
31
33
|
var import_Error = require('../Error.cjs');
|
34
|
+
var import_ValueProvider = require('../ValueProvider.cjs');
|
35
|
+
var import_Vault = require('./Vault.cjs');
|
32
36
|
var __process = globalThis["process"] ?? {
|
33
37
|
"cwd": () => "/",
|
34
38
|
"env": {},
|
35
39
|
"platform": "android"
|
36
40
|
};
|
37
|
-
function
|
41
|
+
function getCodeBlockArguments(ctx, el) {
|
38
42
|
const sectionInfo = ctx.getSectionInfo(el);
|
39
43
|
if (!sectionInfo) {
|
40
|
-
return
|
44
|
+
return [];
|
41
45
|
}
|
42
46
|
const lines = sectionInfo.text.split("\n");
|
43
47
|
const codeBlockHeader = lines[sectionInfo.lineStart] ?? (0, import_Error.throwExpression)(new Error("Code block header not found"));
|
44
48
|
const match = /^`{3,}\S+\s+(.*)$/.exec(codeBlockHeader);
|
45
49
|
if (!match) {
|
46
|
-
return
|
50
|
+
return [];
|
47
51
|
}
|
48
|
-
return match[1]
|
52
|
+
return (0, import_shell_quote.parse)(match[1] ?? "").map(String);
|
53
|
+
}
|
54
|
+
async function replaceCodeBlock(app, ctx, el, codeBlockProvider) {
|
55
|
+
const sectionInfo = ctx.getSectionInfo(el);
|
56
|
+
if (!sectionInfo) {
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
const lines = sectionInfo.text.split("\n");
|
60
|
+
const prefix = lines.slice(0, sectionInfo.lineStart).join("\n");
|
61
|
+
const oldCodeBlock = lines.slice(sectionInfo.lineStart, sectionInfo.lineEnd + 1).join("\n");
|
62
|
+
const suffix = lines.slice(sectionInfo.lineEnd + 1).join("\n");
|
63
|
+
const newCodeBlock = await (0, import_ValueProvider.resolveValue)(codeBlockProvider, oldCodeBlock);
|
64
|
+
const newSectionText = prefix + "\n" + newCodeBlock + (newCodeBlock ? "\n" : "") + suffix;
|
65
|
+
await (0, import_Vault.process)(app, ctx.sourcePath, (content) => content.replace(sectionInfo.text, newSectionText));
|
49
66
|
}
|
50
67
|
// Annotate the CommonJS export names for ESM import in node:
|
51
68
|
0 && (module.exports = {
|
52
|
-
|
69
|
+
getCodeBlockArguments,
|
70
|
+
replaceCodeBlock
|
53
71
|
});
|
54
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIE1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyBjb2RlIGJsb2NrcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnc2hlbGwtcXVvdGUnO1xuXG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICcuLi9WYWx1ZVByb3ZpZGVyLnRzJztcblxuaW1wb3J0IHsgdGhyb3dFeHByZXNzaW9uIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi4vVmFsdWVQcm92aWRlci50cyc7XG5pbXBvcnQgeyBwcm9jZXNzIH0gZnJvbSAnLi9WYXVsdC50cyc7XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBhcmd1bWVudCBvZiBhIGNvZGUgYmxvY2sgZnJvbSB0aGUgZ2l2ZW4gTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCBhbmQgSFRNTEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGN0eCAtIFRoZSBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0IG9iamVjdC5cbiAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MRWxlbWVudCByZXByZXNlbnRpbmcgdGhlIGNvZGUgYmxvY2suXG4gKiBAcmV0dXJucyBUaGUgYXJndW1lbnQgb2YgdGhlIGNvZGUgYmxvY2sgYXMgYSBzdHJpbmcsIG9yIG51bGwgaWYgbm8gYXJndW1lbnQgaXMgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2RlQmxvY2tBcmd1bWVudHMoY3R4OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBlbDogSFRNTEVsZW1lbnQpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHNlY3Rpb25JbmZvID0gY3R4LmdldFNlY3Rpb25JbmZvKGVsKTtcbiAgaWYgKCFzZWN0aW9uSW5mbykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCBsaW5lcyA9IHNlY3Rpb25JbmZvLnRleHQuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBjb2RlQmxvY2tIZWFkZXIgPSBsaW5lc1tzZWN0aW9uSW5mby5saW5lU3RhcnRdID8/IHRocm93RXhwcmVzc2lvbihuZXcgRXJyb3IoJ0NvZGUgYmxvY2sgaGVhZGVyIG5vdCBmb3VuZCcpKTtcbiAgY29uc3QgbWF0Y2ggPSAvXmB7Myx9XFxTK1xccysoLiopJC8uZXhlYyhjb2RlQmxvY2tIZWFkZXIpO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBwYXJzZShtYXRjaFsxXSA/PyAnJykubWFwKFN0cmluZyk7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBBcHAgb2JqZWN0LlxuICogQHBhcmFtIGN0eCAtIFRoZSBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0IG9iamVjdC5cbiAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MRWxlbWVudCByZXByZXNlbnRpbmcgdGhlIGNvZGUgYmxvY2suXG4gKiBAcGFyYW0gY29kZUJsb2NrUHJvdmlkZXIgLSBUaGUgVmFsdWVQcm92aWRlciB0aGF0IHByb3ZpZGVzIHRoZSBuZXcgY29kZSBibG9jay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VDb2RlQmxvY2soYXBwOiBBcHAsIGN0eDogTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCwgZWw6IEhUTUxFbGVtZW50LCBjb2RlQmxvY2tQcm92aWRlcjogVmFsdWVQcm92aWRlcjxzdHJpbmcsIFtzdHJpbmddPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBzZWN0aW9uSW5mbyA9IGN0eC5nZXRTZWN0aW9uSW5mbyhlbCk7XG4gIGlmICghc2VjdGlvbkluZm8pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgbGluZXMgPSBzZWN0aW9uSW5mby50ZXh0LnNwbGl0KCdcXG4nKTtcbiAgY29uc3QgcHJlZml4ID0gbGluZXMuc2xpY2UoMCwgc2VjdGlvbkluZm8ubGluZVN0YXJ0KS5qb2luKCdcXG4nKTtcbiAgY29uc3Qgb2xkQ29kZUJsb2NrID0gbGluZXMuc2xpY2Uoc2VjdGlvbkluZm8ubGluZVN0YXJ0LCBzZWN0aW9uSW5mby5saW5lRW5kICsgMSkuam9pbignXFxuJyk7XG4gIGNvbnN0IHN1ZmZpeCA9IGxpbmVzLnNsaWNlKHNlY3Rpb25JbmZvLmxpbmVFbmQgKyAxKS5qb2luKCdcXG4nKTtcbiAgY29uc3QgbmV3Q29kZUJsb2NrID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNvZGVCbG9ja1Byb3ZpZGVyLCBvbGRDb2RlQmxvY2spO1xuICBjb25zdCBuZXdTZWN0aW9uVGV4dCA9IHByZWZpeCArICdcXG4nICsgbmV3Q29kZUJsb2NrICsgKG5ld0NvZGVCbG9jayA/ICdcXG4nIDogJycpICsgc3VmZml4O1xuICBhd2FpdCBwcm9jZXNzKGFwcCwgY3R4LnNvdXJjZVBhdGgsIChjb250ZW50KSA9PiBjb250ZW50LnJlcGxhY2Uoc2VjdGlvbkluZm8udGV4dCwgbmV3U2VjdGlvblRleHQpKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQSx5QkFBc0I7QUFJdEIsbUJBQWdDO0FBQ2hDLDJCQUE2QjtBQUM3QixtQkFBd0I7QUFyQnhCLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUEwQk8sU0FBUyxzQkFBc0IsS0FBbUMsSUFBMkI7QUFDbEcsUUFBTSxjQUFjLElBQUksZUFBZSxFQUFFO0FBQ3pDLE1BQUksQ0FBQyxhQUFhO0FBQ2hCLFdBQU8sQ0FBQztBQUFBLEVBQ1Y7QUFDQSxRQUFNLFFBQVEsWUFBWSxLQUFLLE1BQU0sSUFBSTtBQUN6QyxRQUFNLGtCQUFrQixNQUFNLFlBQVksU0FBUyxTQUFLLDhCQUFnQixJQUFJLE1BQU0sNkJBQTZCLENBQUM7QUFDaEgsUUFBTSxRQUFRLG9CQUFvQixLQUFLLGVBQWU7QUFDdEQsTUFBSSxDQUFDLE9BQU87QUFDVixXQUFPLENBQUM7QUFBQSxFQUNWO0FBQ0EsYUFBTywwQkFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxNQUFNO0FBQ3pDO0FBVUEsZUFBc0IsaUJBQWlCLEtBQVUsS0FBbUMsSUFBaUIsbUJBQW1FO0FBQ3RLLFFBQU0sY0FBYyxJQUFJLGVBQWUsRUFBRTtBQUN6QyxNQUFJLENBQUMsYUFBYTtBQUNoQjtBQUFBLEVBQ0Y7QUFDQSxRQUFNLFFBQVEsWUFBWSxLQUFLLE1BQU0sSUFBSTtBQUN6QyxRQUFNLFNBQVMsTUFBTSxNQUFNLEdBQUcsWUFBWSxTQUFTLEVBQUUsS0FBSyxJQUFJO0FBQzlELFFBQU0sZUFBZSxNQUFNLE1BQU0sWUFBWSxXQUFXLFlBQVksVUFBVSxDQUFDLEVBQUUsS0FBSyxJQUFJO0FBQzFGLFFBQU0sU0FBUyxNQUFNLE1BQU0sWUFBWSxVQUFVLENBQUMsRUFBRSxLQUFLLElBQUk7QUFDN0QsUUFBTSxlQUFlLFVBQU0sbUNBQWEsbUJBQW1CLFlBQVk7QUFDdkUsUUFBTSxpQkFBaUIsU0FBUyxPQUFPLGdCQUFnQixlQUFlLE9BQU8sTUFBTTtBQUNuRixZQUFNLHNCQUFRLEtBQUssSUFBSSxZQUFZLENBQUMsWUFBWSxRQUFRLFFBQVEsWUFBWSxNQUFNLGNBQWMsQ0FBQztBQUNuRzsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -2,7 +2,8 @@
|
|
2
2
|
* @packageDocumentation MarkdownCodeBlockProcessor
|
3
3
|
* This module provides utility functions for processing code blocks in Obsidian.
|
4
4
|
*/
|
5
|
-
import type { MarkdownPostProcessorContext } from 'obsidian';
|
5
|
+
import type { App, MarkdownPostProcessorContext } from 'obsidian';
|
6
|
+
import type { ValueProvider } from '../ValueProvider.ts';
|
6
7
|
/**
|
7
8
|
* Retrieves the argument of a code block from the given MarkdownPostProcessorContext and HTMLElement.
|
8
9
|
*
|
@@ -10,4 +11,13 @@ import type { MarkdownPostProcessorContext } from 'obsidian';
|
|
10
11
|
* @param el - The HTMLElement representing the code block.
|
11
12
|
* @returns The argument of the code block as a string, or null if no argument is found.
|
12
13
|
*/
|
13
|
-
export declare function
|
14
|
+
export declare function getCodeBlockArguments(ctx: MarkdownPostProcessorContext, el: HTMLElement): string[];
|
15
|
+
/**
|
16
|
+
* Replaces the code block.
|
17
|
+
*
|
18
|
+
* @param app - The Obsidian App object.
|
19
|
+
* @param ctx - The MarkdownPostProcessorContext object.
|
20
|
+
* @param el - The HTMLElement representing the code block.
|
21
|
+
* @param codeBlockProvider - The ValueProvider that provides the new code block.
|
22
|
+
*/
|
23
|
+
export declare function replaceCodeBlock(app: App, ctx: MarkdownPostProcessorContext, el: HTMLElement, codeBlockProvider: ValueProvider<string, [string]>): Promise<void>;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "obsidian-dev-utils",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.9.0",
|
4
4
|
"description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
|
5
5
|
"main": "./dist/lib/index.cjs",
|
6
6
|
"types": "./dist/lib/index.d.ts",
|
@@ -45,6 +45,7 @@
|
|
45
45
|
"@types/node": "^22.9.0",
|
46
46
|
"@types/parsimmon": "^1.10.9",
|
47
47
|
"@types/path-browserify": "^1.0.3",
|
48
|
+
"@types/shell-quote": "^1.7.5",
|
48
49
|
"@typescript-eslint/eslint-plugin": "^8.14.0",
|
49
50
|
"@typescript-eslint/parser": "^8.14.0",
|
50
51
|
"adm-zip": "^0.5.16",
|
@@ -70,6 +71,7 @@
|
|
70
71
|
"obsidian-typings": "^2.3.3",
|
71
72
|
"path-browserify": "^1.0.1",
|
72
73
|
"preact": "^10.24.3",
|
74
|
+
"shell-quote": "^1.8.1",
|
73
75
|
"tsx": "^4.19.2",
|
74
76
|
"type-fest": "^4.26.1",
|
75
77
|
"typescript": "^5.6.3",
|