Wikilinks enable bidirectional linking between notes using a simple [[Note Title]] syntax, similar to Obsidian, Roam Research, and other knowledge management tools.
Creating Wikilinks
There are three ways to create wikilinks:
Type [[
Format Bar
Slash Command
Start typing [[ anywhere in your note to trigger the autocomplete menu:
Type Opening Brackets
Type [[ to activate wikilink suggestion
Filter Notes
Start typing to filter notes by title
Select Note
Use arrow keys to navigate, press Enter to insert
Use the Brackets button in the formatting toolbar:
Click the brackets icon [[]] in the format bar
The autocomplete menu appears
Type to filter and select a note
Use the /wikilink slash command:
Type / at the start of a line
Select “Wikilink” from the menu
Type [[ is inserted automatically
Autocomplete Suggestions
The wikilink autocomplete provides intelligent note filtering:
Case-insensitive search - Matches titles regardless of capitalization
Substring matching - Finds notes containing your query anywhere in the title
Top 10 results - Shows the most relevant notes
Keyboard navigation - Use ↑ and ↓ arrow keys to select
Escape to dismiss - Press Esc to close the suggestions menu
# Project Ideas
See also: [[Meeting Notes]] and [[ Tasks ]]
For technical details, check [[Architecture Overview]].
Following Wikilinks
Click any wikilink to navigate to the linked note:
Single click - Opens the linked note immediately (no modifier key required)
Note not found - Shows a toast message if the note doesn’t exist yet
Case-insensitive matching - Links work regardless of title capitalization
Unlike regular links, wikilinks don’t require Cmd+Click - just click to navigate.
Implementation Details
Wikilinks are implemented as a custom TipTap extension:
Parsing and Rendering
export const Wikilink = Node . create < object , WikilinkStorage >({
name: "wikilink" ,
group: "inline" ,
inline: true ,
atom: true ,
markdownTokenizer: {
name: "wikilink" ,
level: "inline" as const ,
start: "[[" ,
tokenize ( src : string , _tokens : MarkdownToken []) {
const match = src . match ( / ^ \[\[ ( [ ^ \] ] +? ) \]\] / );
if ( ! match ) return undefined ;
return {
type: "wikilink" ,
raw: match [ 0 ],
text: match [ 1 ],
};
},
},
parseMarkdown ( token : MarkdownToken , helpers ) {
return helpers . createNode ( "wikilink" , { noteTitle: token . text });
},
renderMarkdown ( node : JSONContent ) {
return `[[ ${ node . attrs ?. noteTitle ?? "" } ]]` ;
},
});
Suggestion Logic
The autocomplete system uses TipTap’s Suggestion plugin:
WikilinkSuggestion.tsx (Excerpt)
export const WikilinkSuggestion = Extension . create ({
name: "wikilinkSuggestion" ,
addProseMirrorPlugins () {
return [
Suggestion < NoteMetadata >({
editor: this . editor ,
char: "[[" ,
pluginKey: wikilinkSuggestionPluginKey ,
allowSpaces: true ,
startOfLine: false ,
allow : ({ editor }) => {
return (
! editor . isActive ( "codeBlock" ) &&
! editor . isActive ( "frontmatter" ) &&
! editor . isActive ( "code" )
);
},
items : ({ query }) => {
const notes = ( this . editor . storage as any ). wikilink ?. notes ;
if ( ! notes ) return [];
const q = query . toLowerCase ();
return notes
. filter (( note ) => note . title . toLowerCase (). includes ( q ))
. slice ( 0 , 10 );
},
command : ({ editor , range , props : note }) => {
editor
. chain ()
. focus ()
. deleteRange ( range )
. insertContent ({
type: "wikilink" ,
attrs: { noteTitle: note . title },
})
. run ();
},
}),
];
},
});
Limitations
Wikilinks do not support titles containing ] characters (e.g., [[Note [v2]]] will not parse correctly).
Use Cases
Meeting Notes Link action items to project notes
Zettelkasten Build a network of interconnected ideas
Documentation Cross-reference related documentation pages
Research Connect research papers, citations, and insights
Future Enhancements
Potential future improvements to wikilinks:
Backlinks panel - See all notes linking to the current note
Graph view - Visualize note connections
Auto-create notes - Create linked notes that don’t exist yet
Alias support - Display different text than the note title ([[Note Title|Display Text]])
Combine wikilinks with Search (Cmd+Shift+F) to navigate your knowledge graph efficiently.