astro-lilypond 0.6.0 → 0.8.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 (61) hide show
  1. package/components/LilyPond.astro +15 -20
  2. package/dist/execLilyPond.d.ts +1 -1
  3. package/dist/execLilyPond.d.ts.map +1 -1
  4. package/dist/execLilyPond.js +1 -1
  5. package/dist/execLilyPond.js.map +1 -1
  6. package/dist/index.d.ts +12 -16
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +27 -19
  9. package/dist/index.js.map +1 -1
  10. package/dist/plugins/rehype.d.ts.map +1 -1
  11. package/dist/plugins/rehype.js +16 -15
  12. package/dist/plugins/rehype.js.map +1 -1
  13. package/dist/plugins/remark.d.ts.map +1 -1
  14. package/dist/plugins/remark.js +16 -15
  15. package/dist/plugins/remark.js.map +1 -1
  16. package/dist/plugins/satteri.d.ts.map +1 -1
  17. package/dist/plugins/satteri.js +15 -17
  18. package/dist/plugins/satteri.js.map +1 -1
  19. package/dist/plugins/types.d.ts +2 -3
  20. package/dist/plugins/types.d.ts.map +1 -1
  21. package/dist/readOutputFile.d.ts +1 -1
  22. package/dist/readOutputFile.d.ts.map +1 -1
  23. package/dist/readOutputFile.js +33 -14
  24. package/dist/readOutputFile.js.map +1 -1
  25. package/dist/render.d.ts +72 -11
  26. package/dist/render.d.ts.map +1 -1
  27. package/dist/render.js +18 -4
  28. package/dist/render.js.map +1 -1
  29. package/dist/types/lilypondVersion.d.ts +6 -0
  30. package/dist/types/lilypondVersion.d.ts.map +1 -0
  31. package/dist/types/lilypondVersion.js +2 -0
  32. package/dist/types/lilypondVersion.js.map +1 -0
  33. package/dist/utils/assetsUrlBaseFor.d.ts +1 -2
  34. package/dist/utils/assetsUrlBaseFor.d.ts.map +1 -1
  35. package/dist/utils/assetsUrlBaseFor.js +3 -5
  36. package/dist/utils/assetsUrlBaseFor.js.map +1 -1
  37. package/dist/utils/index.d.ts +3 -1
  38. package/dist/utils/index.d.ts.map +1 -1
  39. package/dist/utils/index.js +3 -1
  40. package/dist/utils/index.js.map +1 -1
  41. package/dist/utils/lyImportQuery.d.ts +21 -0
  42. package/dist/utils/lyImportQuery.d.ts.map +1 -0
  43. package/dist/utils/lyImportQuery.js +26 -0
  44. package/dist/utils/lyImportQuery.js.map +1 -0
  45. package/dist/utils/renderedHtml.d.ts +7 -0
  46. package/dist/utils/renderedHtml.d.ts.map +1 -0
  47. package/dist/utils/renderedHtml.js +14 -0
  48. package/dist/utils/renderedHtml.js.map +1 -0
  49. package/dist/utils/resolveDefaults.d.ts +4 -0
  50. package/dist/utils/resolveDefaults.d.ts.map +1 -0
  51. package/dist/utils/resolveDefaults.js +11 -0
  52. package/dist/utils/resolveDefaults.js.map +1 -0
  53. package/dist/writeAsset.d.ts +15 -9
  54. package/dist/writeAsset.d.ts.map +1 -1
  55. package/dist/writeAsset.js +60 -20
  56. package/dist/writeAsset.js.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/utils/imgTag.d.ts +0 -5
  59. package/dist/utils/imgTag.d.ts.map +0 -1
  60. package/dist/utils/imgTag.js +0 -7
  61. package/dist/utils/imgTag.js.map +0 -1
@@ -1,29 +1,24 @@
1
1
  ---
2
- const HTML_ENTITIES: Record<string, string> = {
3
- "&": "&amp;",
4
- "<": "&lt;",
5
- ">": "&gt;",
6
- '"': "&quot;",
7
- "'": "&#39;",
8
- };
9
-
10
- function escapeHtml(text: unknown): string {
11
- return String(text).replace(/[&<>"']/g, (c) => HTML_ENTITIES[c] ?? c);
12
- }
13
-
14
2
  interface Props {
15
- content: string;
3
+ content: { srcs: string[] };
16
4
  class?: string | undefined;
17
5
  style?: string | undefined;
18
6
  }
19
7
 
20
8
  const { content, class: className, style } = Astro.props;
21
-
22
- let html = content;
23
- if (className)
24
- html = html.replace('class="lilypond"', `class="lilypond ${className}"`);
25
- if (style)
26
- html = html.replace(/<(svg|img)\b/, `<$1 style="${escapeHtml(style)}"`);
9
+ const { srcs } = content;
27
10
  ---
28
11
 
29
- <Fragment set:html={html} />
12
+ {
13
+ srcs.length === 1 ? (
14
+ <img data-lilypond-image class={className} src={srcs[0]} alt="" style={style} />
15
+ ) : (
16
+ <ol data-lilypond-group class={className} style={style}>
17
+ {srcs.map((src) => (
18
+ <li>
19
+ <img data-lilypond-image src={src} alt="" />
20
+ </li>
21
+ ))}
22
+ </ol>
23
+ )
24
+ }
@@ -2,8 +2,8 @@ import type { Format } from "./render.js";
2
2
  export interface ExecLilypondOptions {
3
3
  binaryPath: string;
4
4
  format: Format;
5
- resolution: number;
6
5
  crop: boolean;
6
+ resolution: number;
7
7
  includePaths: string[];
8
8
  timeout: number;
9
9
  inputPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"execLilyPond.d.ts","sourceRoot":"","sources":["../src/execLilyPond.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgEf"}
1
+ {"version":3,"file":"execLilyPond.d.ts","sourceRoot":"","sources":["../src/execLilyPond.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgEf"}
@@ -8,7 +8,7 @@ const MAX_BUFFER = 16 * 1024 * 1024; // 16 MiB
8
8
  * build output); throws a normalized Error on a non-zero exit or timeout.
9
9
  */
10
10
  export async function execLilyPond(options) {
11
- const { binaryPath, format, resolution, crop, includePaths, timeout, inputPath, outputBase, } = options;
11
+ const { binaryPath, format, crop, resolution, includePaths, timeout, inputPath, outputBase, } = options;
12
12
  const args = [
13
13
  // Render the correct format
14
14
  `--format=${format}`,
@@ -1 +1 @@
1
- {"version":3,"file":"execLilyPond.js","sourceRoot":"","sources":["../src/execLilyPond.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,SAAS;AAa9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,OAA4B;IAE5B,MAAM,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,UAAU,GACV,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAI,GAAG;QACZ,4BAA4B;QAC5B,YAAY,MAAM,EAAE;QAEpB,uEAAuE;QACvE,iCAAiC;QAEjC,mEAAmE;QACnE,qCAAqC;QACrC,uFAAuF;QACvF,oGAAoG;QACpG,gCAAgC;QAChC,8CAA8C;QAC9C,+BAA+B,UAAU,EAAE;QAC3C,eAAe;QACf,yBAAyB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QAE7C,4FAA4F;QAC5F,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;QAE5C,UAAU;QACV,UAAU;QACV,SAAS;KACT,CAAC;IAEF,yEAAyE;IACzE,mEAAmE;IACnE,+DAA+D;IAC/D,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACJ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE;YACnD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;YACpC,SAAS,EAAE,UAAU;SACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IACC,GAAG;YACH,OAAO,GAAG,KAAK,QAAQ;YACtB,GAAyB,CAAC,IAAI,KAAK,YAAY,EAC/C,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,SAAS,GACd,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG;YAChD,CAAC,CAAC,MAAM,CAAE,GAA2B,CAAC,MAAM,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,SAAS;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,IAAI,KAAK,CACd,SAAS,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAC/D,CAAC;IACH,CAAC;IACD,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"execLilyPond.js","sourceRoot":"","sources":["../src/execLilyPond.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,SAAS;AAa9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,OAA4B;IAE5B,MAAM,EACL,UAAU,EACV,MAAM,EACN,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,OAAO,EACP,SAAS,EACT,UAAU,GACV,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAI,GAAG;QACZ,4BAA4B;QAC5B,YAAY,MAAM,EAAE;QAEpB,uEAAuE;QACvE,iCAAiC;QAEjC,mEAAmE;QACnE,qCAAqC;QACrC,uFAAuF;QACvF,oGAAoG;QACpG,gCAAgC;QAChC,8CAA8C;QAC9C,+BAA+B,UAAU,EAAE;QAC3C,eAAe;QACf,yBAAyB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QAE7C,4FAA4F;QAC5F,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;QAE5C,UAAU;QACV,UAAU;QACV,SAAS;KACT,CAAC;IAEF,yEAAyE;IACzE,mEAAmE;IACnE,+DAA+D;IAC/D,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACJ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE;YACnD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;YACpC,SAAS,EAAE,UAAU;SACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IACC,GAAG;YACH,OAAO,GAAG,KAAK,QAAQ;YACtB,GAAyB,CAAC,IAAI,KAAK,YAAY,EAC/C,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,SAAS,GACd,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG;YAChD,CAAC,CAAC,MAAM,CAAE,GAA2B,CAAC,MAAM,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,SAAS;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,IAAI,KAAK,CACd,SAAS,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAC/D,CAAC;IACH,CAAC;IACD,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,29 +1,25 @@
1
1
  import type { AstroIntegration } from "astro";
2
2
  import { type PluginOptions } from "./plugins/index.js";
3
- export type { PluginOptions as LilypondPluginOptions };
3
+ import { type LilypondDefaults } from "./render.js";
4
+ export type { LilypondDefaults, PluginOptions as LilypondPluginOptions };
5
+ /**
6
+ * The default export of a `.ly`/`.lilypond`/`.ily` import — one URL per
7
+ * rendered page, in order, for `<LilyPond>` to build markup from.
8
+ */
9
+ export interface LilypondContent {
10
+ srcs: string[];
11
+ }
4
12
  export interface LilypondOptions extends PluginOptions {
5
- /**
6
- * LilyPond version string to prepend automatically to every block that
7
- * doesn't already declare `\version`. Example: `"2.24.0"`.
8
- *
9
- * When omitted, blocks must include `\version` themselves.
10
- */
11
- version?: string;
12
13
  /**
13
14
  * Output format to be written to a file under `outputDir`.
14
15
  * @default "svg"
15
16
  */
16
17
  format?: "svg" | "png";
17
18
  /**
18
- * Resolution in DPI. Only applies when "format" is "png".
19
- * @default 144
20
- */
21
- resolution?: number;
22
- /**
23
- * Crop the output tightly to the content bounding box.
24
- * @default true
19
+ * Defaults passed to each score.
20
+ * Defaults can still be overridden by individual `.ly` files.
25
21
  */
26
- crop?: boolean;
22
+ defaults?: LilypondDefaults;
27
23
  /**
28
24
  * Milliseconds to wait for a single `lilypond` invocation before
29
25
  * aborting it.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,EACN,KAAK,aAAa,EAKlB,MAAM,oBAAoB,CAAC;AAiB5B,YAAY,EAAE,aAAa,IAAI,qBAAqB,EAAE,CAAC;AAEvD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACrD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AA4CD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,OAAO,GAAE,eAAoB,GAC3B,gBAAgB,CA2IlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,EACN,KAAK,aAAa,EAKlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEN,KAAK,gBAAgB,EAGrB,MAAM,aAAa,CAAC;AAiBrB,YAAY,EAAE,gBAAgB,EAAE,aAAa,IAAI,qBAAqB,EAAE,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACrD;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AA2DD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,OAAO,GAAE,eAAoB,GAC3B,gBAAgB,CA2IlB"}
package/dist/index.js CHANGED
@@ -4,9 +4,9 @@ import { fileURLToPath } from "node:url";
4
4
  import { promisify } from "node:util";
5
5
  import { pruneOrphanedAssets, pruneStaleAssets } from "./deleteAssets.js";
6
6
  import { rehypePlugin, remarkPlugin, satteriPlugin, } from "./plugins/index.js";
7
- import { defaultOptions, render } from "./render.js";
8
- import { assetsUrlBaseFor, contentHashFor, imgTag, includePathsFor, prependVersion, sourceNameFor, titleFor, } from "./utils/index.js";
9
- import { writeAsset } from "./writeAsset.js";
7
+ import { defaultOptions, render, resolveCrop, } from "./render.js";
8
+ import { assetsUrlBaseFor, contentHashFor, includePathsFor, parseLyImportQuery, prependVersion, resolveDefaults, sourceNameFor, titleFor, } from "./utils/index.js";
9
+ import { writeAssets } from "./writeAsset.js";
10
10
  const execFileAsync = promisify(execFile);
11
11
  const LY_EXTENSIONS = [".ly", ".lilypond", ".ily"];
12
12
  function lyFilePlugin(options) {
@@ -14,38 +14,46 @@ function lyFilePlugin(options) {
14
14
  name: "vite-plugin-astro-lilypond-ly",
15
15
  enforce: "pre",
16
16
  async transform(source, id) {
17
- if (!LY_EXTENSIONS.some((ext) => id.endsWith(ext)))
17
+ // undefined means an unrecognized query param (e.g. Vite's `?raw`,
18
+ // `?url`) — not ours to render, so let it fall through.
19
+ const query = parseLyImportQuery(id);
20
+ if (!query)
18
21
  return;
19
- const src = options.version
20
- ? prependVersion(source, options.version)
21
- : source;
22
+ const { pathname, cropOverride } = query;
23
+ if (!LY_EXTENSIONS.some((ext) => pathname.endsWith(ext)))
24
+ return;
25
+ const { version, resolution, crop: cropSetting, } = resolveDefaults(options.defaults);
26
+ const crop = cropOverride ?? resolveCrop(cropSetting, "component");
27
+ const src = version ? prependVersion(source, version) : source;
22
28
  const format = options.format ?? defaultOptions.format;
23
- const resolution = options.resolution ?? defaultOptions.resolution;
24
- const crop = options.crop ?? defaultOptions.crop;
25
- const includePaths = includePathsFor(id);
26
- const sourceName = sourceNameFor(id);
29
+ const includePaths = includePathsFor(pathname);
30
+ const sourceName = sourceNameFor(pathname);
27
31
  const title = titleFor(sourceName);
28
32
  const hash = contentHashFor({ source: src, format, resolution, crop });
29
- const fileName = `${hash}.${title}.${format}`;
30
- const url = await writeAsset({
33
+ const assets = await writeAssets({
31
34
  hash,
32
35
  title,
33
36
  format,
34
37
  outputDir: options.assetsDir,
35
38
  urlBase: options.assetsUrlBase,
36
39
  trackAsset: options.trackAsset,
37
- getBuffer: () => render(src, {
40
+ getBuffers: () => render(src, {
38
41
  format,
39
- resolution: options.resolution,
40
- crop: options.crop,
42
+ crop,
43
+ defaults: options.defaults,
41
44
  timeout: options.timeout,
42
45
  includePaths,
43
46
  sourceName,
44
47
  }),
45
48
  });
46
- await options.pruneStaleAssets(id, [fileName]);
49
+ // Keyed by the full id (including query) so `./score.ly` and
50
+ // `./score.ly?crop` are tracked as independent sources.
51
+ await options.pruneStaleAssets(id, assets.map((asset) => asset.fileName));
52
+ const content = {
53
+ srcs: assets.map((asset) => asset.url),
54
+ };
47
55
  return {
48
- code: `export default ${JSON.stringify(imgTag(url))}`,
56
+ code: `export default ${JSON.stringify(content)}`,
49
57
  };
50
58
  },
51
59
  };
@@ -138,7 +146,7 @@ export default function lilypond(options = {}) {
138
146
  "astro:config:done": ({ injectTypes }) => {
139
147
  injectTypes({
140
148
  filename: "ly-types.d.ts",
141
- content: LY_EXTENSIONS.map((ext) => `declare module "*${ext}" {\n const html: string;\n export default html;\n}`).join("\n"),
149
+ content: LY_EXTENSIONS.map((ext) => `declare module "*${ext}" {\n const content: import("astro-lilypond").LilypondContent;\n export default content;\n}`).join("\n"),
142
150
  });
143
151
  },
144
152
  "astro:build:done": async ({ logger }) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rehype.d.ts","sourceRoot":"","sources":["../../src/plugins/rehype.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQxD,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAIxD,wBAAgB,YAAY,CAC3B,OAAO,EAAE,mBAAmB,GAE1B,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAyExD"}
1
+ {"version":3,"file":"rehype.d.ts","sourceRoot":"","sources":["../../src/plugins/rehype.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQxD,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAIxD,wBAAgB,YAAY,CAC3B,OAAO,EAAE,mBAAmB,GAE1B,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CA8ExD"}
@@ -1,7 +1,7 @@
1
1
  import { visit } from "unist-util-visit";
2
- import { defaultOptions, render } from "../render.js";
3
- import { contentHashFor, imgTag, includePathsFor, isLilypondLang, prependVersion, sourceNameFor, titleFor, } from "../utils/index.js";
4
- import { writeAsset } from "../writeAsset.js";
2
+ import { defaultOptions, render, resolveCrop } from "../render.js";
3
+ import { contentHashFor, includePathsFor, isLilypondLang, prependVersion, renderedHtml, resolveDefaults, sourceNameFor, titleFor, } from "../utils/index.js";
4
+ import { writeAssets } from "../writeAsset.js";
5
5
  // Typed loosely so it's assignable to both RehypePlugin and the unified
6
6
  // Plugin generic regardless of which @types/hast version the host project pins.
7
7
  export function rehypePlugin(options) {
@@ -32,31 +32,32 @@ export function rehypePlugin(options) {
32
32
  .filter((c) => c.type === "text")
33
33
  .map((c) => c.value)
34
34
  .join("");
35
- const source = options.version
36
- ? prependVersion(raw, options.version)
37
- : raw;
35
+ const { version, resolution, crop: cropSetting, } = resolveDefaults(options.defaults);
36
+ const source = version ? prependVersion(raw, version) : raw;
38
37
  const format = options.format ?? defaultOptions.format;
39
- const resolution = options.resolution ?? defaultOptions.resolution;
40
- const crop = options.crop ?? defaultOptions.crop;
38
+ const crop = resolveCrop(cropSetting, "markdown");
41
39
  const hash = contentHashFor({ source, format, resolution, crop });
42
- fileNames.push(`${hash}.${title}.${format}`);
43
- const promise = writeAsset({
40
+ const promise = writeAssets({
44
41
  hash,
45
42
  title,
46
43
  format,
47
44
  outputDir: options.assetsDir,
48
45
  urlBase: options.assetsUrlBase,
49
46
  trackAsset: options.trackAsset,
50
- getBuffer: () => render(source, {
47
+ getBuffers: () => render(source, {
51
48
  format,
52
- resolution: options.resolution,
53
- crop: options.crop,
49
+ crop,
50
+ defaults: options.defaults,
54
51
  timeout: options.timeout,
55
52
  includePaths,
56
53
  sourceName,
57
54
  }),
58
- }).then((url) => {
59
- const rawNode = { type: "raw", value: imgTag(url) };
55
+ }).then((assets) => {
56
+ fileNames.push(...assets.map((asset) => asset.fileName));
57
+ const rawNode = {
58
+ type: "raw",
59
+ value: renderedHtml(assets.map((asset) => asset.url)),
60
+ };
60
61
  parent.children[index] = rawNode;
61
62
  });
62
63
  promises.push(promise);
@@ -1 +1 @@
1
- {"version":3,"file":"rehype.js","sourceRoot":"","sources":["../../src/plugins/rehype.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rehype.js","sourceRoot":"","sources":["../../src/plugins/rehype.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remark.d.ts","sourceRoot":"","sources":["../../src/plugins/remark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAatC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAkD5D,CAAC"}
1
+ {"version":3,"file":"remark.d.ts","sourceRoot":"","sources":["../../src/plugins/remark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AActC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAuD5D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { visit } from "unist-util-visit";
2
- import { defaultOptions, render } from "../render.js";
3
- import { contentHashFor, imgTag, includePathsFor, isLilypondLang, prependVersion, sourceNameFor, titleFor, } from "../utils/index.js";
4
- import { writeAsset } from "../writeAsset.js";
2
+ import { defaultOptions, render, resolveCrop } from "../render.js";
3
+ import { contentHashFor, includePathsFor, isLilypondLang, prependVersion, renderedHtml, resolveDefaults, sourceNameFor, titleFor, } from "../utils/index.js";
4
+ import { writeAssets } from "../writeAsset.js";
5
5
  export const remarkPlugin = (options) => {
6
6
  return async (tree, file) => {
7
7
  const promises = [];
@@ -12,31 +12,32 @@ export const remarkPlugin = (options) => {
12
12
  visit(tree, "code", (node, index, parent) => {
13
13
  if (!isLilypondLang(node.lang) || index === undefined || !parent)
14
14
  return;
15
- const source = options.version
16
- ? prependVersion(node.value, options.version)
17
- : node.value;
15
+ const { version, resolution, crop: cropSetting, } = resolveDefaults(options.defaults);
16
+ const source = version ? prependVersion(node.value, version) : node.value;
18
17
  const format = options.format ?? defaultOptions.format;
19
- const resolution = options.resolution ?? defaultOptions.resolution;
20
- const crop = options.crop ?? defaultOptions.crop;
18
+ const crop = resolveCrop(cropSetting, "markdown");
21
19
  const hash = contentHashFor({ source, format, resolution, crop });
22
- fileNames.push(`${hash}.${title}.${format}`);
23
- const promise = writeAsset({
20
+ const promise = writeAssets({
24
21
  hash,
25
22
  title,
26
23
  format,
27
24
  outputDir: options.assetsDir,
28
25
  urlBase: options.assetsUrlBase,
29
26
  trackAsset: options.trackAsset,
30
- getBuffer: () => render(source, {
27
+ getBuffers: () => render(source, {
31
28
  format,
32
- resolution: options.resolution,
33
- crop: options.crop,
29
+ crop,
30
+ defaults: options.defaults,
34
31
  timeout: options.timeout,
35
32
  includePaths,
36
33
  sourceName,
37
34
  }),
38
- }).then((url) => {
39
- const htmlNode = { type: "html", value: imgTag(url) };
35
+ }).then((assets) => {
36
+ fileNames.push(...assets.map((asset) => asset.fileName));
37
+ const htmlNode = {
38
+ type: "html",
39
+ value: renderedHtml(assets.map((asset) => asset.url)),
40
+ };
40
41
  parent.children[index] = htmlNode;
41
42
  });
42
43
  promises.push(promise);
@@ -1 +1 @@
1
- {"version":3,"file":"remark.js","sourceRoot":"","sources":["../../src/plugins/remark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remark.js","sourceRoot":"","sources":["../../src/plugins/remark.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACN,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,QAAQ,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C,MAAM,CAAC,MAAM,YAAY,GAAwC,CAAC,OAAO,EAAE,EAAE;IAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEnC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEzE,MAAM,EACL,OAAO,EACP,UAAU,EACV,IAAI,EAAE,WAAW,GACjB,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;YACvD,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAElE,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC3B,IAAI;gBACJ,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,aAAa;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,MAAM,EAAE;oBACd,MAAM;oBACN,IAAI;oBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,YAAY;oBACZ,UAAU;iBACV,CAAC;aACH,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAQ,EAAE;gBACxB,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAS;oBACtB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACrD,CAAC;gBACF,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YAChB,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"satteri.d.ts","sourceRoot":"","sources":["../../src/plugins/satteri.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,SAAS,CAAC;AAY1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD,wBAAgB,aAAa,CAC5B,OAAO,EAAE,oBAAoB,GAC3B,qBAAqB,CAmDvB"}
1
+ {"version":3,"file":"satteri.d.ts","sourceRoot":"","sources":["../../src/plugins/satteri.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,SAAS,CAAC;AAa1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD,wBAAgB,aAAa,CAC5B,OAAO,EAAE,oBAAoB,GAC3B,qBAAqB,CAwDvB"}
@@ -1,6 +1,6 @@
1
- import { defaultOptions, render } from "../render.js";
2
- import { contentHashFor, imgTag, includePathsFor, isLilypondLang, prependVersion, sourceNameFor, titleFor, } from "../utils/index.js";
3
- import { writeAsset } from "../writeAsset.js";
1
+ import { defaultOptions, render, resolveCrop } from "../render.js";
2
+ import { contentHashFor, includePathsFor, isLilypondLang, prependVersion, renderedHtml, resolveDefaults, sourceNameFor, titleFor, } from "../utils/index.js";
3
+ import { writeAssets } from "../writeAsset.js";
4
4
  export function satteriPlugin(options) {
5
5
  return {
6
6
  name: "astro-lilypond",
@@ -10,28 +10,25 @@ export function satteriPlugin(options) {
10
10
  async code(node, ctx) {
11
11
  if (!isLilypondLang(node.lang))
12
12
  return undefined;
13
- const source = options.version
14
- ? prependVersion(node.value, options.version)
15
- : node.value;
13
+ const { version, resolution, crop: cropSetting, } = resolveDefaults(options.defaults);
14
+ const source = version ? prependVersion(node.value, version) : node.value;
16
15
  const format = options.format ?? defaultOptions.format;
17
- const resolution = options.resolution ?? defaultOptions.resolution;
18
- const crop = options.crop ?? defaultOptions.crop;
19
16
  const includePaths = includePathsFor(ctx.fileURL);
20
17
  const sourceName = sourceNameFor(ctx.fileURL);
21
18
  const title = titleFor(sourceName);
19
+ const crop = resolveCrop(cropSetting, "markdown");
22
20
  const hash = contentHashFor({ source, format, resolution, crop });
23
- const fileName = `${hash}.${title}.${format}`;
24
- const url = await writeAsset({
21
+ const assets = await writeAssets({
25
22
  hash,
26
23
  title,
27
24
  format,
28
25
  outputDir: options.assetsDir,
29
26
  urlBase: options.assetsUrlBase,
30
27
  trackAsset: options.trackAsset,
31
- getBuffer: () => render(source, {
28
+ getBuffers: () => render(source, {
32
29
  format,
33
- resolution: options.resolution,
34
- crop: options.crop,
30
+ crop,
31
+ defaults: options.defaults,
35
32
  timeout: options.timeout,
36
33
  includePaths,
37
34
  sourceName,
@@ -40,11 +37,12 @@ export function satteriPlugin(options) {
40
37
  // Sätteri has no per-file "done" hook, so prune per block instead.
41
38
  if (ctx.fileURL) {
42
39
  const index = ctx.indexOf(node) ?? "root";
43
- await options.pruneStaleAssets(`${ctx.fileURL.href}#${index}`, [
44
- fileName,
45
- ]);
40
+ await options.pruneStaleAssets(`${ctx.fileURL.href}#${index}`, assets.map((asset) => asset.fileName));
46
41
  }
47
- return { type: "html", value: imgTag(url) };
42
+ return {
43
+ type: "html",
44
+ value: renderedHtml(assets.map((asset) => asset.url)),
45
+ };
48
46
  },
49
47
  };
50
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"satteri.js","sourceRoot":"","sources":["../../src/plugins/satteri.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACN,cAAc,EACd,MAAM,EACN,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACb,QAAQ,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,UAAU,aAAa,CAC5B,OAA6B;IAE7B,OAAO;QACN,IAAI,EAAE,gBAAgB;QACtB,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,KAAK,CAAC,IAAI,CACT,IAAoB,EACpB,GAAwB;YAExB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO;gBAC7B,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;YACvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC;YACnE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC;YACjD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;gBAC5B,IAAI;gBACJ,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,aAAa;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS,EAAE,GAAG,EAAE,CACf,MAAM,CAAC,MAAM,EAAE;oBACd,MAAM;oBACN,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,YAAY;oBACZ,UAAU;iBACV,CAAC;aACH,CAAC,CAAC;YAEH,mEAAmE;YACnE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;gBAC1C,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE;oBAC9D,QAAQ;iBACR,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"satteri.js","sourceRoot":"","sources":["../../src/plugins/satteri.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACN,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,QAAQ,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C,MAAM,UAAU,aAAa,CAC5B,OAA6B;IAE7B,OAAO;QACN,IAAI,EAAE,gBAAgB;QACtB,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,KAAK,CAAC,IAAI,CACT,IAAoB,EACpB,GAAwB;YAExB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjD,MAAM,EACL,OAAO,EACP,UAAU,EACV,IAAI,EAAE,WAAW,GACjB,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;YACvD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAChC,IAAI;gBACJ,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,aAAa;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,MAAM,EAAE;oBACd,MAAM;oBACN,IAAI;oBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,YAAY;oBACZ,UAAU;iBACV,CAAC;aACH,CAAC,CAAC;YAEH,mEAAmE;YACnE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;gBAC1C,MAAM,OAAO,CAAC,gBAAgB,CAC7B,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,EAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CACrC,CAAC;YACH,CAAC;YAED,OAAO;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrD,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,8 +1,7 @@
1
+ import type { LilypondDefaults } from "../render.js";
1
2
  export interface PluginOptions {
2
- version?: string;
3
3
  format?: "svg" | "png";
4
- resolution?: number;
5
- crop?: boolean;
4
+ defaults?: LilypondDefaults;
6
5
  timeout?: number;
7
6
  }
8
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAElB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IAEtB,6EAA6E;IAC7E,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,wEAAwE;IACxE,gBAAgB,EAAE,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,MAAM,EAAE,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAElB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IAEtB,6EAA6E;IAC7E,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,wEAAwE;IACxE,gBAAgB,EAAE,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,MAAM,EAAE,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB"}
@@ -6,5 +6,5 @@ import type { Format } from "./render.js";
6
6
  * the generic `"input.ly"`.
7
7
  */
8
8
  export declare function safeInputFileName(sourceName: string | undefined): string;
9
- export declare function readOutputFile(base: string, format: Format, crop: boolean): Promise<Buffer>;
9
+ export declare function readOutputFile(base: string, format: Format, crop: boolean): Promise<Buffer[]>;
10
10
  //# sourceMappingURL=readOutputFile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"readOutputFile.d.ts","sourceRoot":"","sources":["../src/readOutputFile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOxE;AAED,wBAAsB,cAAc,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACX,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
1
+ {"version":3,"file":"readOutputFile.d.ts","sourceRoot":"","sources":["../src/readOutputFile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOxE;AAkBD,wBAAsB,cAAc,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACX,OAAO,CAAC,MAAM,EAAE,CAAC,CAqCnB"}
@@ -1,5 +1,5 @@
1
- import { readFile } from "node:fs/promises";
2
- import { basename } from "node:path";
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { basename, dirname, join } from "node:path";
3
3
  /**
4
4
  * Resolves the base name to use for the temp input file. Strips any
5
5
  * directory components from `sourceName` (it may be a full path) and
@@ -15,28 +15,47 @@ export function safeInputFileName(sourceName) {
15
15
  }
16
16
  return base;
17
17
  }
18
+ /** Sorts by the numeric page captured in `match[1]`, ascending. */
19
+ function byPageNumber(a, b) {
20
+ return Number(a[1]) - Number(b[1]);
21
+ }
22
+ /**
23
+ * Multi-page naming convention per format: SVG (and PDF/PS/EPS, should they
24
+ * be added to `FORMATS`) uses `<base>-1.<ext>`; PNG uses `<base>-page1.<ext>`.
25
+ * Listed explicitly so adding a format means stating its convention here,
26
+ * not guessing among known patterns.
27
+ */
28
+ const PAGE_NUMBER_INFIX = {
29
+ svg: "-",
30
+ png: "-page",
31
+ };
18
32
  export async function readOutputFile(base, format, crop) {
19
33
  // --define-default crop writes <base>.cropped.<format> alongside <base>.<format>
20
34
  if (crop) {
21
35
  try {
22
- return await readFile(`${base}.cropped.${format}`);
36
+ return [await readFile(`${base}.cropped.${format}`)];
23
37
  }
24
38
  catch (err) {
25
39
  throw new Error(`expected cropped output at ${base}.cropped.${format} but it was not found: ${err instanceof Error ? err.message : String(err)}`);
26
40
  }
27
41
  }
28
- // Regular output: single page → <base>.<format>, multi-page →
29
- // <base>-1.<format> (svg) or <base>-page1.<format> (png).
30
- try {
31
- return await readFile(`${base}.${format}`);
42
+ // Regular output: single page → <base>.<format>; multi-page → numbered
43
+ // per `PAGE_NUMBER_INFIX`. List the directory once so the full page
44
+ // count is known up front, rather than probing paths one at a time.
45
+ const dir = dirname(base);
46
+ const prefix = basename(base);
47
+ const entries = await readdir(dir);
48
+ if (entries.includes(`${prefix}.${format}`)) {
49
+ return [await readFile(join(dir, `${prefix}.${format}`))];
32
50
  }
33
- catch {
34
- try {
35
- return await readFile(`${base}-1.${format}`);
36
- }
37
- catch {
38
- return await readFile(`${base}-page1.${format}`);
39
- }
51
+ const pagePattern = new RegExp(`^${prefix}${PAGE_NUMBER_INFIX[format]}(\\d+)\\.${format}$`);
52
+ const pages = entries
53
+ .map((name) => name.match(pagePattern))
54
+ .filter((match) => match !== null)
55
+ .sort(byPageNumber);
56
+ if (pages.length > 0) {
57
+ return Promise.all(pages.map((match) => readFile(join(dir, match[0]))));
40
58
  }
59
+ throw new Error(`no ${format} output found in ${dir}`);
41
60
  }
42
61
  //# sourceMappingURL=readOutputFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readOutputFile.js","sourceRoot":"","sources":["../src/readOutputFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B;IAC/D,IAAI,CAAC,UAAU;QAAE,OAAO,UAAU,CAAC;IACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,IAAY,EACZ,MAAc,EACd,IAAa;IAEb,iFAAiF;IACjF,IAAI,IAAI,EAAE,CAAC;QACV,IAAI,CAAC;YACJ,OAAO,MAAM,QAAQ,CAAC,GAAG,IAAI,YAAY,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACd,8BAA8B,IAAI,YAAY,MAAM,0BACnD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAChD,EAAE,CACF,CAAC;QACH,CAAC;IACF,CAAC;IAED,8DAA8D;IAC9D,0DAA0D;IAC1D,IAAI,CAAC;QACJ,OAAO,MAAM,QAAQ,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACR,IAAI,CAAC;YACJ,OAAO,MAAM,QAAQ,CAAC,GAAG,IAAI,MAAM,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,MAAM,QAAQ,CAAC,GAAG,IAAI,UAAU,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"readOutputFile.js","sourceRoot":"","sources":["../src/readOutputFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGpD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B;IAC/D,IAAI,CAAC,UAAU;QAAE,OAAO,UAAU,CAAC;IACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,mEAAmE;AACnE,SAAS,YAAY,CAAC,CAAmB,EAAE,CAAmB;IAC7D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAA2B;IACjD,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,OAAO;CACZ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,IAAY,EACZ,MAAc,EACd,IAAa;IAEb,iFAAiF;IACjF,IAAI,IAAI,EAAE,CAAC;QACV,IAAI,CAAC;YACJ,OAAO,CAAC,MAAM,QAAQ,CAAC,GAAG,IAAI,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACd,8BAA8B,IAAI,YAAY,MAAM,0BACnD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAChD,EAAE,CACF,CAAC;QACH,CAAC;IACF,CAAC;IAED,uEAAuE;IACvE,oEAAoE;IACpE,oEAAoE;IACpE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAEnC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,MAAM,CAC7B,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,MAAM,GAAG,CAC3D,CAAC;IACF,MAAM,KAAK,GAAG,OAAO;SACnB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;SAC5D,IAAI,CAAC,YAAY,CAAC,CAAC;IACrB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,MAAM,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC"}