Skip to content

IDE-grade Markdown editing/refactoring in VSCode

License

Notifications You must be signed in to change notification settings

kevgo/vscode-markdown-ide

Repository files navigation

This extension for VSCode and compatible editors provides IDE-grade editing and refactoring support for Markdown files. This is most useful for large collections of Markdown documents containing lots of links between them.

This extension works best with Markdown files formatted via Prettier or dprint. It ignores files in the .git, node_modules, and vendor folders. If you have any feedback or requests, please open a ticket.

CI badge

autocomplete links to Markdown documents

Typing [ triggers autocompletion for links to Markdown files. The link title is the first heading in the linked file. If present, Markdown IDE uses the titleRegEx setting in tikibase.json to abbreviate the titles of auto-completed links.

demo of the "autocomplete links" feature

autocomplete image tags

Typing ![ triggers autocompletion for image tags.

demo of the "autocomplete image tag" feature

autocomplete headings

Typing # triggers autocompletion with the existing headings in all Markdown files of the current workspace.

demo of the "autocomplete headings" feature

rename file ⇒ update links to this file

When you rename a file, all links to this file in other Markdown files would be broken. Markdown IDE fixes this by changing the target of these links to the new filename.

demo of the "rename file" feature

delete file ⇒ remove links to this file

When you delete a file, all links to this file in other Markdown files would be broken. Markdown IDE fixes this by removing these links.

demo of the "delete file" feature

rename Markdown file title ⇒ update links containing this title

Run the "Markdown IDE: Rename document title" command to change the primary heading of a document. Markdown IDE updates the title of matching links to that document.

demo of the "rename document title" feature

"go to definition" for links

Markdown IDE supports the go to definition movements (ctrl+mouseclick orF12) for links in Markdown files. If bi-directional links are activated, following a link to another Markdown document always moves the cursor to the first backreference to the file you came from. If bi-directional links are not activated, it jumps to the linked heading within the target document.

demo of the "go to definition" feature

extract new file with selected title

When the selection highlights a single line, Markdown IDE provides an "extract file with this title" refactor. It creates a new file with the selected text as its title and replaces the selection with a link to this new file.

extract new file with selected content

When the selection highlights multiple lines, Markdown IDE provides an "extract file with this content" refactor. It asks the user for a title, creates a new file with the given title and the selected text as its content, and replaces the selection with a link to this new file.

"link to note" refactor

When selecting text that is also the title of an existing note, Markdown IDE offers a code action that replaces the selection with a link to the respective note.

Tikibase support

Tikibase is a linter for Markdown-based wikis and knowledge bases. If you have a tikibase.json file in your document repo and the Tikibase linter installed, Markdown IDE runs it for you, highlights the identified issues in VSCode, and applies auto-fixes via code actions or the command palette.

configuration

If present, Markdown IDE uses the titleRegEx setting in tikibase.json to abbreviate auto-completed links.