Skip to content

Commit

Permalink
fix build errors/warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
kevboh committed Oct 5, 2023
1 parent 2c75f25 commit 8fe5f6d
Show file tree
Hide file tree
Showing 9 changed files with 120 additions and 66 deletions.
2 changes: 1 addition & 1 deletion src/commands/navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ export const jumpToScene: CommandBuilder = (plugin) => ({
},
});

export const revealProjectFolder: CommandBuilder = (plugin) => ({
export const revealProjectFolder: CommandBuilder = (_plugin) => ({
id: "longform-reveal-project-folder",
name: "Reveal current project in navigation",
checkCallback(checking) {
Expand Down
1 change: 1 addition & 0 deletions src/commands/templates.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ const callbackForFormat = (
scenes: [],
ignoredFiles: [],
unknownFiles: [],
sceneTemplate: null,
};
return multi;
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/compile/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ export function calculateWorkflow(
}

let currentKind = null;
let calculatedKinds: CompileStepKind[] = [];
const calculatedKinds: CompileStepKind[] = [];
for (
let stepPosition = 0;
stepPosition < workflow.steps.length;
Expand Down
34 changes: 19 additions & 15 deletions src/compile/steps/remove-links.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ export const RemoveLinksStep = makeBuiltinStep({

const replaceLinks = (contents: string) => {
if (removeWikilinks) {
contents = replaceWikiLinks(contents)
contents = replaceWikiLinks(contents);
}
if (removeExternalLinks) {
contents = replaceExternalLinks(contents)
contents = replaceExternalLinks(contents);
}

return contents;
Expand Down Expand Up @@ -105,20 +105,23 @@ export function replaceWikiLinks(contents: string): string {
if (startOfAlias >= 0) {
if (additionalAlias) {
// remove all instances of "|"
replacement = contents.slice(startOfAlias, end - 1).replace(/\|/gm, "");
replacement = contents
.slice(startOfAlias, end - 1)
.replace(/\|/gm, "");
} else {
replacement = contents.slice(startOfAlias, end - 1)
replacement = contents.slice(startOfAlias, end - 1);
}
} else {
replacement = contents.slice(i + 1, end - 1)
replacement = contents.slice(i + 1, end - 1);
}
contents = contents.slice(0, i - 1) + replacement + contents.slice(end + 1)
contents =
contents.slice(0, i - 1) + replacement + contents.slice(end + 1);
// can skip the next character
i = i - 1;
}
end = -1
additionalAlias = false;;
startOfAlias = -1
end = -1;
additionalAlias = false;
startOfAlias = -1;
continue;
}
}
Expand Down Expand Up @@ -147,8 +150,8 @@ export function replaceExternalLinks(contents: string): string {
aliasEnd = i - 1;
} else {
// invalid link
end = -1
aliasEnd = -1
end = -1;
aliasEnd = -1;
}
// can skip the next character
i = i - 1;
Expand All @@ -161,15 +164,16 @@ export function replaceExternalLinks(contents: string): string {
i = i - 1;
} else {
const replacement = contents.slice(i + 1, aliasEnd);
contents = contents.slice(0, i) + replacement + contents.slice(end + 1)
contents =
contents.slice(0, i) + replacement + contents.slice(end + 1);
}
end = -1
aliasEnd = -1
end = -1;
aliasEnd = -1;
continue;
}
}
}
}

return contents;
}
}
2 changes: 2 additions & 0 deletions src/model/migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ export async function migrate(settings: LongformPluginSettings, app: App) {
})),
ignoredFiles: [project.indexFile],
unknownFiles: [],
sceneTemplate: null,
};

await insertDraftIntoFrontmatter(vaultPath, draft);
Expand Down Expand Up @@ -130,6 +131,7 @@ export async function migrate(settings: LongformPluginSettings, app: App) {
})),
ignoredFiles: [],
unknownFiles: [],
sceneTemplate: null,
};

await insertDraftIntoFrontmatter(vaultPath, draft);
Expand Down
17 changes: 10 additions & 7 deletions src/model/note-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,31 +40,34 @@ export async function createNoteWithPotentialTemplate(

/**
* Creates a note at `path` with the given `initialContent`.
* @param path
* @param initialContent
* @param path
* @param initialContent
* @returns `null` if it fails to create the note. `TFile` for the new note, if successful.
*/
export async function createNote(path: string, initialContent: string = ""): Promise<TFile | null> {
export async function createNote(
path: string,
initialContent = ""
): Promise<TFile | null> {
const pathComponents = path.split("/");
pathComponents.pop();

if (!(await app.vault.adapter.exists(pathComponents.join("/")))) {
try {
await app.vault.createFolder(pathComponents.join("/"));
} catch (e) {
console.error(`[Longform] Failed to create new note at "${path}"`, e)
console.error(`[Longform] Failed to create new note at "${path}"`, e);
return null;
}
}

try {
// as of obsidian 1.4.4, vault.create will successfully create a file, and
// its parent folder, but will throw an error anyway, if the parent folder
// didn't initially exist. By creating the parent folder above, we avoid
// didn't initially exist. By creating the parent folder above, we avoid
// that situation. This may change in later versions of obsidian.
return await app.vault.create(path, initialContent);
} catch(e: unknown) {
console.error(`[Longform] Failed to create new note at "${path}"`, e)
} catch (e: unknown) {
console.error(`[Longform] Failed to create new note at "${path}"`, e);
return null;
}
}
Expand Down
1 change: 1 addition & 0 deletions src/view/project-lifecycle/new-project-modal/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ export default class NewProjectModalContainer extends Modal {
scenes: [],
ignoredFiles: [],
unknownFiles: [],
sceneTemplate: null,
};
return multi;
} else {
Expand Down
115 changes: 79 additions & 36 deletions test/compile/steps/remove-links.test.ts
Original file line number Diff line number Diff line change
@@ -1,41 +1,84 @@
import { describe, expect, it } from 'vitest'
import { replaceWikiLinks, replaceExternalLinks } from 'src/compile/steps/remove-links'
import { describe, expect, it } from "vitest";
import {
replaceWikiLinks,
replaceExternalLinks,
} from "src/compile/steps/remove-links";

describe("Removing Links", () => {
it("removes wiki links", () => {
expect(replaceWikiLinks("[[Filename]]")).toEqual("Filename");
expect(replaceWikiLinks("[[Filename]] and [[other filename]]")).toEqual(
"Filename and other filename"
);
expect(replaceWikiLinks("[[Filename]]\n[[Other filename]]")).toEqual(
"Filename\nOther filename"
);
expect(replaceWikiLinks("[[Filename|Alias]]")).toEqual("Alias");
expect(replaceWikiLinks("[[Filename#^blockId|Alias]]")).toEqual("Alias");
expect(replaceWikiLinks("[[Filename#^blockId]]")).toEqual(
"Filename#^blockId"
);
expect(replaceWikiLinks("[[Some/Path/To/Filename|Filename]]")).toEqual(
"Filename"
);
expect(replaceWikiLinks("[[]]")).toEqual("[[]]");
expect(
replaceWikiLinks("[[link]] followed by a single end bracket]")
).toEqual("link followed by a single end bracket]");
expect(
replaceWikiLinks("[[Filename|Alias|OtherAlias|Another Alias]]")
).toEqual("AliasOtherAliasAnother Alias");
});

it("removes wiki links", () => {
expect(replaceWikiLinks("[[Filename]]")).toEqual("Filename")
expect(replaceWikiLinks("[[Filename]] and [[other filename]]")).toEqual("Filename and other filename")
expect(replaceWikiLinks("[[Filename]]\n[[Other filename]]")).toEqual("Filename\nOther filename")
expect(replaceWikiLinks("[[Filename|Alias]]")).toEqual("Alias")
expect(replaceWikiLinks("[[Filename#^blockId|Alias]]")).toEqual("Alias")
expect(replaceWikiLinks("[[Filename#^blockId]]")).toEqual("Filename#^blockId")
expect(replaceWikiLinks("[[Some/Path/To/Filename|Filename]]")).toEqual("Filename")
expect(replaceWikiLinks("[[]]")).toEqual("[[]]")
expect(replaceWikiLinks("[[link]] followed by a single end bracket]")).toEqual("link followed by a single end bracket]")
expect(replaceWikiLinks("[[Filename|Alias|OtherAlias|Another Alias]]")).toEqual("AliasOtherAliasAnother Alias")
})
it("removes external links", () => {
expect(
replaceExternalLinks("[Filename](Some/Path/To/Filename.md)")
).toEqual("Filename");
expect(
replaceExternalLinks(
"[Filename](Some/Path/To/Filename.md) and [Other Filename](Some/Path/To/Other%20Filename.md)"
)
).toEqual("Filename and Other Filename");
expect(
replaceExternalLinks(
"[Filename](Some/Path/To/Filename.md)\n[Other Filename](Some/Path/To/Other%20Filename.md)"
)
).toEqual("Filename\nOther Filename");
expect(replaceExternalLinks("[Alias](Some/Path/To/Filename.md)")).toEqual(
"Alias"
);
expect(
replaceExternalLinks("[Alias](Some/Path/To/Filename.md#^blockId)")
).toEqual("Alias");
expect(
replaceExternalLinks("[Filename] (Some/Path/To/Filename.md)")
).toEqual("[Filename] (Some/Path/To/Filename.md)");
expect(replaceExternalLinks("[Filename Some/Path/To/Filename.md)")).toEqual(
"[Filename Some/Path/To/Filename.md)"
);
});

it("removes external links", () => {
expect(replaceExternalLinks("[Filename](Some/Path/To/Filename.md)")).toEqual("Filename")
expect(replaceExternalLinks("[Filename](Some/Path/To/Filename.md) and [Other Filename](Some/Path/To/Other%20Filename.md)"))
.toEqual("Filename and Other Filename")
expect(replaceExternalLinks("[Filename](Some/Path/To/Filename.md)\n[Other Filename](Some/Path/To/Other%20Filename.md)"))
.toEqual("Filename\nOther Filename")
expect(replaceExternalLinks("[Alias](Some/Path/To/Filename.md)")).toEqual("Alias")
expect(replaceExternalLinks("[Alias](Some/Path/To/Filename.md#^blockId)")).toEqual("Alias")
expect(replaceExternalLinks("[Filename] (Some/Path/To/Filename.md)")).toEqual("[Filename] (Some/Path/To/Filename.md)")
expect(replaceExternalLinks("[Filename Some/Path/To/Filename.md)")).toEqual("[Filename Some/Path/To/Filename.md)")
})
it("does not remove embeds", () => {
expect(replaceWikiLinks("![[Filename]]")).toEqual("![[Filename]]");
expect(replaceWikiLinks("![[Filename]][[Other filename]]")).toEqual(
"![[Filename]]Other filename"
);
expect(replaceWikiLinks("[[Filename]]![[Other filename]]")).toEqual(
"Filename![[Other filename]]"
);

it("does not remove embeds", () => {
expect(replaceWikiLinks("![[Filename]]")).toEqual("![[Filename]]")
expect(replaceWikiLinks("![[Filename]][[Other filename]]")).toEqual("![[Filename]]Other filename")
expect(replaceWikiLinks("[[Filename]]![[Other filename]]")).toEqual("Filename![[Other filename]]")

expect(replaceExternalLinks("![Filename](Some/Path/To/Filename.md)")).toEqual("![Filename](Some/Path/To/Filename.md)")
expect(replaceExternalLinks("![Filename](Some/Path/To/Filename.md)[Filename](Some/Path/To/Filename.md)")).toEqual("![Filename](Some/Path/To/Filename.md)Filename")
expect(replaceExternalLinks("[Filename](Some/Path/To/Filename.md)![Filename](Some/Path/To/Filename.md)")).toEqual("Filename![Filename](Some/Path/To/Filename.md)")
})

})
expect(
replaceExternalLinks("![Filename](Some/Path/To/Filename.md)")
).toEqual("![Filename](Some/Path/To/Filename.md)");
expect(
replaceExternalLinks(
"![Filename](Some/Path/To/Filename.md)[Filename](Some/Path/To/Filename.md)"
)
).toEqual("![Filename](Some/Path/To/Filename.md)Filename");
expect(
replaceExternalLinks(
"[Filename](Some/Path/To/Filename.md)![Filename](Some/Path/To/Filename.md)"
)
).toEqual("Filename![Filename](Some/Path/To/Filename.md)");
});
});
12 changes: 6 additions & 6 deletions vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { defineConfig } from "vitest/config";

export default defineConfig({
test: {
coverage: {
reporter: ['text', 'html']
}
}
})
test: {
coverage: {
reporter: ["text", "html"],
},
},
});

0 comments on commit 8fe5f6d

Please sign in to comment.