@mralfarrakhan/svork 0.5.0 → 0.6.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/README.md CHANGED
@@ -7,7 +7,7 @@ It is intended for blog/content pages where Markdown should stay ergonomic while
7
7
  ## Install
8
8
 
9
9
  ```sh
10
- bun add svork
10
+ bun add -D @mralfarrakhan/svork
11
11
  ```
12
12
 
13
13
  Svork has a peer dependency on Svelte 5.
@@ -21,7 +21,7 @@ import { svelteMarkdown } from "svork";
21
21
 
22
22
  export default {
23
23
  preprocess: [svelteMarkdown()],
24
- extensions: [".svelte", ".md"],
24
+ extensions: [".svx", ".md"],
25
25
  };
26
26
  ```
27
27
 
package/dist/index.mjs CHANGED
@@ -2354,11 +2354,25 @@ const svelteMarkdown = (options) => {
2354
2354
  workingString = workingString.slice(fmMatch[0].length);
2355
2355
  }
2356
2356
  const finalize = async (markdownSource, placeholderMap = /* @__PURE__ */ new Map()) => {
2357
- let compiled = String(await mdCompiler.process(markdownSource));
2357
+ const vfile = await mdCompiler.process(markdownSource);
2358
+ let compiled = String(vfile);
2358
2359
  compiled = compiled.replace(/({|{)/g, "{").replace(/(}|})/g, "}");
2359
2360
  let restored = compiled;
2361
+ if (vfile.data?.fm && typeof vfile.data.fm === "object") metadata = {
2362
+ ...metadata,
2363
+ ...vfile.data.fm
2364
+ };
2360
2365
  const metadataString = `\nexport const metadata = ${JSON.stringify(metadata)};\n`;
2366
+ let hasModuleScript = false;
2361
2367
  for (const [placeholder, info] of placeholderMap.entries()) {
2368
+ if (info.type === "ModuleScript") {
2369
+ const scriptTagMatch = info.original.match(/^<script[^>]*>/);
2370
+ if (scriptTagMatch) {
2371
+ const injectIndex = scriptTagMatch[0].length;
2372
+ info.original = info.original.slice(0, injectIndex) + metadataString + info.original.slice(injectIndex);
2373
+ }
2374
+ hasModuleScript = true;
2375
+ }
2362
2376
  const escPlaceholder = escapeRegExp(placeholder);
2363
2377
  const markerPattern = `<svork-placeholder\\s+data-svork-id=(["'])${escPlaceholder}\\1[^>]*>[\\s\\S]*?<\\/svork-placeholder>`;
2364
2378
  const markerRegex = new RegExp(markerPattern, "g");
@@ -2395,7 +2409,7 @@ const svelteMarkdown = (options) => {
2395
2409
  }
2396
2410
  restored = restored.replace(new RegExp(placeholder, "g"), () => info.original);
2397
2411
  }
2398
- restored = `<script module lang="ts">${metadataString}<\/script>\n` + restored;
2412
+ if (!hasModuleScript) restored = `<script module lang="ts">${metadataString}<\/script>\n` + restored;
2399
2413
  return restored;
2400
2414
  };
2401
2415
  let root;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mralfarrakhan/svork",
3
3
  "type": "module",
4
- "version": "0.5.0",
4
+ "version": "0.6.0",
5
5
  "description": "Svelte utilities for writing blog",
6
6
  "author": "mralfarrakhan <alfarrakhan@gmail.com",
7
7
  "license": "AGPL-3.0-or-later",
@@ -77,5 +77,8 @@
77
77
  "unist-util-stringify-position": "4.0.0",
78
78
  "vfile": "6.0.3",
79
79
  "vfile-message": "4.0.3"
80
+ },
81
+ "publishConfig": {
82
+ "access": "public"
80
83
  }
81
84
  }