starlight-cannoli-plugins 2.1.5 → 2.1.7
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.
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
rm,
|
|
13
13
|
stat
|
|
14
14
|
} from "fs/promises";
|
|
15
|
-
import { resolve, relative,
|
|
15
|
+
import { resolve, relative, dirname } from "path";
|
|
16
16
|
import { minimatch } from "minimatch";
|
|
17
17
|
var DEFAULT_SRC_DIR = "src/content/docs";
|
|
18
18
|
var DEFAULT_PUBLIC_DIR = "public";
|
|
@@ -48,18 +48,8 @@ async function fullSync(srcDir, publicDir, preserveDirs, ignorePatterns) {
|
|
|
48
48
|
function isMdFile(filePath) {
|
|
49
49
|
return filePath.endsWith(".md") || filePath.endsWith(".mdx");
|
|
50
50
|
}
|
|
51
|
-
function isIndexMd(filePath) {
|
|
52
|
-
const base = basename(filePath);
|
|
53
|
-
return base === "index.md" || base === "index.mdx";
|
|
54
|
-
}
|
|
55
51
|
function getDestPath(srcFilePath, srcDir, publicDir) {
|
|
56
|
-
|
|
57
|
-
if (!isMdFile(srcFilePath) || isIndexMd(srcFilePath)) {
|
|
58
|
-
return resolve(publicDir, rel);
|
|
59
|
-
}
|
|
60
|
-
const ext = extname(srcFilePath);
|
|
61
|
-
const stem = basename(srcFilePath, ext);
|
|
62
|
-
return resolve(publicDir, dirname(rel), stem, `index${ext}`);
|
|
52
|
+
return resolve(publicDir, relative(srcDir, srcFilePath));
|
|
63
53
|
}
|
|
64
54
|
async function copyMdFile(srcFilePath, srcDir, publicDir) {
|
|
65
55
|
const destPath = getDestPath(srcFilePath, srcDir, publicDir);
|
|
@@ -154,10 +144,14 @@ function syncDocsToPublic(options) {
|
|
|
154
144
|
"astro:config:setup": ({ injectScript }) => {
|
|
155
145
|
validateOptions(options);
|
|
156
146
|
if (exposePageSrcButton) {
|
|
147
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
157
148
|
const scriptPath = fileURLToPath(
|
|
158
|
-
|
|
149
|
+
currentFile.endsWith(".ts") ? new URL("./page-script.ts", import.meta.url) : currentFile.endsWith("astro-sync-docs-to-public.js") ? new URL(
|
|
159
150
|
"./astro-sync-docs-to-public/page-script.js",
|
|
160
151
|
import.meta.url
|
|
152
|
+
) : new URL(
|
|
153
|
+
"./plugins/astro-sync-docs-to-public/page-script.js",
|
|
154
|
+
import.meta.url
|
|
161
155
|
)
|
|
162
156
|
);
|
|
163
157
|
injectScript("page", `import ${JSON.stringify(scriptPath)};`);
|
package/dist/index.js
CHANGED
|
@@ -16,10 +16,17 @@ function showSuccessBanner(message) {
|
|
|
16
16
|
}
|
|
17
17
|
async function getRawMdUrl() {
|
|
18
18
|
const base = window.location.href.replace(/\/?$/, "/");
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
for (const ext of [".md", ".mdx"]) {
|
|
20
|
+
const url = new URL(`index${ext}`, base).toString();
|
|
21
|
+
if ((await fetch(url, { method: "HEAD" })).ok) return url;
|
|
22
|
+
}
|
|
23
|
+
const segment = new URL(base).pathname.replace(/\/$/, "").split("/").pop();
|
|
24
|
+
const parentBase = new URL("../", base).toString();
|
|
25
|
+
for (const ext of [".md", ".mdx"]) {
|
|
26
|
+
const url = new URL(`${segment}${ext}`, parentBase).toString();
|
|
27
|
+
if ((await fetch(url, { method: "HEAD" })).ok) return url;
|
|
28
|
+
}
|
|
29
|
+
return new URL("index.md", base).toString();
|
|
23
30
|
}
|
|
24
31
|
function createActionBar() {
|
|
25
32
|
const bar = document.createElement("div");
|
package/package.json
CHANGED