From 3d23d2b343dde74a8e4265f36b65739e3f6fb2e4 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Tue, 11 Aug 2020 00:07:38 +0200 Subject: [PATCH] LinkResolver: Resolve links with extra spaces --- lib/utils/link_resolver.dart | 2 +- test/link_resolver_test.dart | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/utils/link_resolver.dart b/lib/utils/link_resolver.dart index f6ce63c6..5e0c6236 100644 --- a/lib/utils/link_resolver.dart +++ b/lib/utils/link_resolver.dart @@ -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('./')) { diff --git a/test/link_resolver_test.dart b/test/link_resolver_test.dart index 061cc533..a32e2691 100644 --- a/test/link_resolver_test.dart +++ b/test/link_resolver_test.dart @@ -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 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