mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 18:03:14 +08:00
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user