diff --git a/packages/remark-wiki-link/src/utils/getPermalinks.ts b/packages/remark-wiki-link/src/utils/getPermalinks.ts index c3f6a6c91..b2b73149c 100644 --- a/packages/remark-wiki-link/src/utils/getPermalinks.ts +++ b/packages/remark-wiki-link/src/utils/getPermalinks.ts @@ -38,6 +38,5 @@ const defaultPathToPermalinkFunc = ( .replace(markdownFolder, "") // make the permalink relative to the markdown folder .replace(/\.(mdx|md)/, "") .replace(/\\/g, "/") // replace windows backslash with forward slash - .replace(/\/index$/, ""); // remove index from the end of the permalink return permalink.length > 0 ? permalink : "/"; // for home page }; diff --git a/packages/remark-wiki-link/test/fixtures/content/blog/index.md b/packages/remark-wiki-link/test/fixtures/content/README.md similarity index 100% rename from packages/remark-wiki-link/test/fixtures/content/blog/index.md rename to packages/remark-wiki-link/test/fixtures/content/README.md diff --git a/packages/remark-wiki-link/test/fixtures/content/index.md b/packages/remark-wiki-link/test/fixtures/content/blog/README.md similarity index 100% rename from packages/remark-wiki-link/test/fixtures/content/index.md rename to packages/remark-wiki-link/test/fixtures/content/blog/README.md diff --git a/packages/remark-wiki-link/test/getPermalinks.spec.ts b/packages/remark-wiki-link/test/getPermalinks.spec.ts index de916171a..ddd2e9796 100644 --- a/packages/remark-wiki-link/test/getPermalinks.spec.ts +++ b/packages/remark-wiki-link/test/getPermalinks.spec.ts @@ -1,9 +1,6 @@ import * as path from "path"; -// import * as url from "url"; import { getPermalinks } from "../src/utils"; -// const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); -// const markdownFolder = path.join(__dirname, "/fixtures/content"); const markdownFolder = path.join( ".", "test/fixtures/content" @@ -12,12 +9,12 @@ const markdownFolder = path.join( describe("getPermalinks", () => { test("should return an array of permalinks", () => { const expectedPermalinks = [ - "/", // /index.md + "/README", "/abc", "/blog/first-post", "/blog/Second Post", "/blog/third-post", - "/blog", // /blog/index.md + "/blog/README", "/blog/tutorials/first-tutorial", "/assets/Pasted Image 123.png", ]; @@ -28,35 +25,4 @@ describe("getPermalinks", () => { expect(expectedPermalinks).toContain(permalink); }); }); - - test("should return an array of permalinks with custom path -> permalink converter function", () => { - const expectedPermalinks = [ - "/", // /index.md - "/abc", - "/blog/first-post", - "/blog/second-post", - "/blog/third-post", - "/blog", // /blog/index.md - "/blog/tutorials/first-tutorial", - "/assets/pasted-image-123.png", - ]; - - const func = (filePath: string, markdownFolder: string) => { - const permalink = filePath - .replace(markdownFolder, "") // make the permalink relative to the markdown folder - .replace(/\.(mdx|md)/, "") - .replace(/\\/g, "/") // replace windows backslash with forward slash - .replace(/\/index$/, "") // remove index from the end of the permalink - .replace(/ /g, "-") // replace spaces with hyphens - .toLowerCase(); // convert to lowercase - - return permalink.length > 0 ? permalink : "/"; // for home page - }; - - const permalinks = getPermalinks(markdownFolder, [/\.DS_Store/], func); - expect(permalinks).toHaveLength(expectedPermalinks.length); - permalinks.forEach((permalink) => { - expect(expectedPermalinks).toContain(permalink); - }); - }); }); diff --git a/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts b/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts index 5f2f9e8e7..da010cdc0 100644 --- a/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts +++ b/packages/remark-wiki-link/test/micromarkExtensionWikiLink.spec.ts @@ -159,11 +159,11 @@ describe("micromark-extension-wiki-link", () => { }); expect(serialized).toBe( '

My Image.jpg

' - ); - }); - + ); + }); + // TODO: Fix alt attribute - test("Can identify the dimensions of the image if exists", () => { + test("Can identify the dimensions of the image if exists", () => { const serialized = micromark("![[My Image.jpg|200x200]]", "ascii", { extensions: [syntax()], htmlExtensions: [html({ permalinks: ["My Image.jpg"] }) as any], // TODO type fix @@ -286,56 +286,6 @@ describe("micromark-extension-wiki-link", () => { }); }); - test("parses wiki links to index files", () => { - const serialized = micromark("[[/some/folder/index]]", "ascii", { - extensions: [syntax()], - htmlExtensions: [html() as any], // TODO type fix - }); - expect(serialized).toBe( - '

/some/folder/index

' - ); - }); - - describe("other", () => { - test("parses a wiki link to some index page in a folder with no matching permalink", () => { - const serialized = micromark("[[/some/folder/index]]", "ascii", { - extensions: [syntax()], - htmlExtensions: [html() as any], // TODO type fix - }); - expect(serialized).toBe( - '

/some/folder/index

' - ); - }); - - test("parses a wiki link to some index page in a folder with a matching permalink", () => { - const serialized = micromark("[[/some/folder/index]]", "ascii", { - extensions: [syntax()], - htmlExtensions: [html({ permalinks: ["/some/folder"] }) as any], // TODO type fix - }); - expect(serialized).toBe( - '

/some/folder/index

' - ); - }); - - test("parses a wiki link to home index page with no matching permalink", () => { - const serialized = micromark("[[/index]]", "ascii", { - extensions: [syntax()], - htmlExtensions: [html() as any], // TODO type fix - }); - expect(serialized).toBe( - '

/index

' - ); - }); - - test("parses a wiki link to home index page with a matching permalink", () => { - const serialized = micromark("[[/index]]", "ascii", { - extensions: [syntax()], - htmlExtensions: [html({ permalinks: ["/"] }) as any], // TODO type fix - }); - expect(serialized).toBe('

/index

'); - }); - }); - describe("transclusions", () => { test("parsers a transclusion as a regular wiki link", () => { const serialized = micromark("![[Some Page]]", "ascii", { diff --git a/packages/remark-wiki-link/test/remarkWikiLink.spec.ts b/packages/remark-wiki-link/test/remarkWikiLink.spec.ts index 051cc42c3..72975df09 100644 --- a/packages/remark-wiki-link/test/remarkWikiLink.spec.ts +++ b/packages/remark-wiki-link/test/remarkWikiLink.spec.ts @@ -485,109 +485,6 @@ describe("remark-wiki-link", () => { }); }); - test("parses wiki links to index files", () => { - const processor = unified().use(markdown).use(wikiLinkPlugin); - - let ast = processor.parse("[[/some/folder/index]]"); - ast = processor.runSync(ast); - - expect(select("wikiLink", ast)).not.toEqual(null); - - visit(ast, "wikiLink", (node: Node) => { - expect(node.data?.exists).toEqual(false); - expect(node.data?.permalink).toEqual("/some/folder"); - expect(node.data?.alias).toEqual(null); - expect(node.data?.hName).toEqual("a"); - expect((node.data?.hProperties as any).className).toEqual("internal new"); - expect((node.data?.hProperties as any).href).toEqual("/some/folder"); - expect((node.data?.hChildren as any)[0].value).toEqual( - "/some/folder/index" - ); - }); - }); - - describe("other", () => { - test("parses a wiki link to some index page in a folder with no matching permalink", () => { - const processor = unified().use(markdown).use(wikiLinkPlugin); - - let ast = processor.parse("[[/some/folder/index]]"); - ast = processor.runSync(ast); - - visit(ast, "wikiLink", (node: Node) => { - expect(node.data?.exists).toEqual(false); - expect(node.data?.permalink).toEqual("/some/folder"); - expect(node.data?.alias).toEqual(null); - expect(node.data?.hName).toEqual("a"); - expect((node.data?.hProperties as any).className).toEqual( - "internal new" - ); - expect((node.data?.hProperties as any).href).toEqual("/some/folder"); - expect((node.data?.hChildren as any)[0].value).toEqual( - "/some/folder/index" - ); - }); - }); - - test("parses a wiki link to some index page in a folder with a matching permalink", () => { - const processor = unified() - .use(markdown) - .use(wikiLinkPlugin, { permalinks: ["/some/folder"] }); - - let ast = processor.parse("[[/some/folder/index]]"); - ast = processor.runSync(ast); - - visit(ast, "wikiLink", (node: Node) => { - expect(node.data?.exists).toEqual(true); - expect(node.data?.permalink).toEqual("/some/folder"); - expect(node.data?.alias).toEqual(null); - expect(node.data?.hName).toEqual("a"); - expect((node.data?.hProperties as any).className).toEqual("internal"); - expect((node.data?.hProperties as any).href).toEqual("/some/folder"); - expect((node.data?.hChildren as any)[0].value).toEqual( - "/some/folder/index" - ); - }); - }); - - test("parses a wiki link to home index page with no matching permalink", () => { - const processor = unified().use(markdown).use(wikiLinkPlugin); - - let ast = processor.parse("[[/index]]"); - ast = processor.runSync(ast); - - visit(ast, "wikiLink", (node: Node) => { - expect(node.data?.exists).toEqual(false); - expect(node.data?.permalink).toEqual("/"); - expect(node.data?.alias).toEqual(null); - expect(node.data?.hName).toEqual("a"); - expect((node.data?.hProperties as any).className).toEqual( - "internal new" - ); - expect((node.data?.hProperties as any).href).toEqual("/"); - expect((node.data?.hChildren as any)[0].value).toEqual("/index"); - }); - }); - - test("parses a wiki link to home index page with a matching permalink", () => { - const processor = unified() - .use(markdown) - .use(wikiLinkPlugin, { permalinks: ["/"] }); - - let ast = processor.parse("[[/index]]"); - ast = processor.runSync(ast); - - visit(ast, "wikiLink", (node: Node) => { - expect(node.data?.exists).toEqual(true); - expect(node.data?.permalink).toEqual("/"); - expect(node.data?.alias).toEqual(null); - expect(node.data?.hName).toEqual("a"); - expect((node.data?.hProperties as any).className).toEqual("internal"); - expect((node.data?.hProperties as any).href).toEqual("/"); - expect((node.data?.hChildren as any)[0].value).toEqual("/index"); - }); - }); - }); - describe("transclusions", () => { test("replaces a transclusion with a regular wiki link", () => { const processor = unified().use(markdown).use(wikiLinkPlugin);