Fix Parent relative links not working

Fixes #256
This commit is contained in:
Vishesh Handa
2020-09-24 16:46:24 +02:00
parent f3715bd3c8
commit 289182b12e
3 changed files with 17 additions and 12 deletions

View File

@ -2,6 +2,7 @@
draft: true
bugs:
- text: "Dark Theme: Render checkboxes in a lighter color"
- text: "Fix Relative Parent links not working - #256"
- version: "1.70"
date: 2020-09-16

View File

@ -28,18 +28,7 @@ class LinkResolver {
return resolveWikiLink(wikiLinkTerm);
}
var folder = inputNote.parent;
var spec = link;
if (link.startsWith('./')) {
spec = link.substring(2);
}
if (spec.contains(p.separator)) {
spec = p.normalize(spec);
}
return _getNoteWithSpec(folder, spec);
return _getNoteWithSpec(inputNote.parent, link);
}
Note resolveWikiLink(String term) {
@ -88,6 +77,13 @@ class LinkResolver {
}
Note _getNoteWithSpec(NotesFolderFS folder, String spec) {
var fullPath = p.normalize(p.join(folder.folderPath, spec));
if (!fullPath.startsWith(folder.folderPath)) {
folder = folder.rootFolder;
}
spec = fullPath.substring(folder.folderPath.length + 1);
var linkedNote = folder.getNoteWithSpec(spec);
if (linkedNote != null) {
return linkedNote;

View File

@ -154,6 +154,14 @@ void main() {
expect(resolvedNote.filePath, p.join(tempDir.path, 'Goat Sim.md'));
});
test('Resolve Parent file', () {
var note = rootFolder.getNoteWithSpec('Folder/Water.md');
var linkResolver = LinkResolver(note);
var resolvedNote = linkResolver.resolve('../Hello.md');
expect(resolvedNote.filePath, p.join(tempDir.path, 'Hello.md'));
});
test('Should resolve Link object', () {
var note = rootFolder.getNoteWithSpec('Folder/Water.md');
var linkResolver = LinkResolver(note);