Currently, the linking system is very naive. Given a wikilink [[Index]] or a link [to index](Index), it will simply search how to link it every render following a three step process:
- Does this path match a page in the database exactly? eg:
/~/Index/
- If there are no exact matches, does the title of this link match to a page exactly? eg:
/~/Other/Index
- If neither of those are satisfied, just insert the link as-is. eg:
/~/Index/
However, wikis are constantly evolving, which introduces some side effects to linking to other pages. If a page links to [[Index]], and the pages /~/Index and /~/Other/Index exist, if the page /~/Index gets deleted, the other page's link to [[Index]] gets changed, even though the content of the page hasn't changed! This violates a core immutability principle of inferno that I think is bad and sucks.
Here are a couple goals to meet:
Currently, the linking system is very naive. Given a wikilink
[[Index]]or a link[to index](Index), it will simply search how to link it every render following a three step process:/~/Index//~/Other/Index/~/Index/However, wikis are constantly evolving, which introduces some side effects to linking to other pages. If a page links to
[[Index]], and the pages/~/Indexand/~/Other/Indexexist, if the page/~/Indexgets deleted, the other page's link to[[Index]]gets changed, even though the content of the page hasn't changed! This violates a core immutability principle of inferno that I think is bad and sucks.Here are a couple goals to meet:
[[WikiLink#Heading]]incorrectly renders to<a href="/Wikilink#Heading/">WikiLink#Heading</a>.