LinkResolver: Resolve links with extra spaces

This commit is contained in:
Vishesh Handa
2020-08-11 00:07:38 +02:00
parent 5779fd380e
commit 3d23d2b343
2 changed files with 18 additions and 3 deletions

View File

@ -11,7 +11,7 @@ class LinkResolver {
if (link.startsWith('[[') && link.endsWith(']]') && link.length > 4) {
// FIXME: What if the case is different?
spec = link.substring(2, link.length - 2);
spec = link.substring(2, link.length - 2).trim();
}
if (link.startsWith('./')) {

View File

@ -19,6 +19,7 @@ void main() {
await generateNote(tempDir.path, "Fire.md");
await generateNote(tempDir.path, "Folder/Water.md");
await generateNote(tempDir.path, "Air Bender.md");
await generateNote(tempDir.path, "zeplin.txt");
await rootFolder.loadRecursively();
});
@ -58,6 +59,22 @@ void main() {
var resolvedNote = linkResolver.resolve('[[Air Bender]]');
expect(resolvedNote.filePath, p.join(tempDir.path, 'Air Bender.md'));
});
test('WikiLinks with extra spaces resolves correctly', () {
var note = rootFolder.notes[0];
var linkResolver = LinkResolver(note);
var resolvedNote = linkResolver.resolve('[[Hello ]]');
expect(resolvedNote.filePath, p.join(tempDir.path, 'Hello.md'));
});
test('Resolves to txt files as well', () {
var note = rootFolder.notes[0];
var linkResolver = LinkResolver(note);
var resolvedNote = linkResolver.resolve('[[zeplin]]');
expect(resolvedNote.filePath, p.join(tempDir.path, 'zeplin.txt'));
});
}
Future<void> generateNote(String basePath, String path) async {
@ -78,8 +95,6 @@ Hello""";
}
// Test to write
// 6. [[Hello Dear ]] check how it works in Obsidian (ignored extra spaces)
// 7. Should resolve to 'txt' files as well
// 8. Non base path [[Fire]] should resolve to [[Fire.md]]
// Normal Links