# Header Anchors
Headers automatically get anchor links applied. Rendering of anchors can be configured using the markdown.anchor
option.
Roll up a Vue markdown loader yourself. Recently, when I upgraded the Vue loader to V15, I found that one of the Vue markdown loaders used in my project couldn’t be used because of the compatibility problem. When I was at a loss, I saw that the Vue loader, which was still in v15.0.0 RC version at that time, was used in vuepress. Vue-markdown is a powerful and highspeed markdown parser for Vue. Supported Markdown Syntax:. automatic table of contents. table & class customize. SyntaxHighlighter. definition list. strikethrough. GFM task list. abbreviation. superscript. subscript. footnote. insert. katex. emoji. mark - Read more https://github.com.
# Links
- A simple Markdown editor. See the Pen Vue 3 Markdown Editor by Vue on CodePen. Deployed on Netlify. Last updated: 2021-04-02, 15:19:13 UTC.
- Vue-SimpleMDE Markdown Editor component for Vue.js. Support both vue1.0 & vue2.0.
- A Vue 3 markdown-it wrapper plugin. Installation npm install vue3-markdown-it Supported Plugins. Markdown-it - The one that started it all; markdown-it-abbr - Add abbreviations.
# Internal Links
Internal links are converted to <router-link>
for SPA navigation. Also, every README.md
or index.md
contained in each sub-directory will automatically be converted to index.html
, with corresponding URL /
.
For example, given the following directory structure:
And providing you are in foo/one.md
:
# Redirection for URLs
VuePress supports redirecting to clean links. If a link /foo
is not found, VuePress will look for a existing /foo/
or /foo.html
. Conversely, when one of /foo/
or /foo.html
is not found, VuePress will try the other. With this feature, we can customize your website’s URLs with the official plugin vuepress-plugin-clean-urls(opens new window).
TIP
Regardless of whether the permalink and clean-urls plugins are used, your relative path should be defined by the current file structure. In the above example, even though you set the path of /foo/one.md
to /foo/one/
, you should still access /foo/two.md
via ./two.md
.
# Page Suffix
Pages and internal links get generated with the .html
suffix by default.
You can customize this by setting config.markdown.pageSuffix.
# External Links
Outbound links automatically get target='_blank'
:
You can customize the attributes added to external links by setting config.markdown.externalLinks.
# Frontmatter
YAML frontmatter(opens new window) is supported out of the box:
This data will be available to the rest of the page, along with all custom and theming components.
For more details, see Frontmatter.
# GitHub-Style Tables
Input
Output
Tables | Are | Cool |
---|---|---|
col 3 is | right-aligned | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
# Emoji 🎉
Input
Output
🎉 💯
A list of all emojis(opens new window) is available.
# Table of Contents
Input
Output
- Links
- Custom Containers default theme
Rendering of the TOC can be configured using the markdown.toc
option.
# Custom Containers default theme
Custom containers can be defined by their types, titles, and contents.
# Default Title
Input
Output
TIP
This is a tip
WARNING
This is a dangerous warning
This is a details block, which does not work in Internet Explorer or Edge.
# Custom Title
Input
Output
STOP
Danger zone, do not proceed
Click me to view the code
Also see:
# Syntax Highlighting in Code Blocks
VuePress uses Prism(opens new window) to highlight language syntax in Markdown code blocks, using coloured text. Prism supports a wide variety of programming languages. All you need to do is append a valid language alias to the beginning backticks for the code block:
Vue Markdown File
Input
Output
Input
Output
A list of valid languages(opens new window) is available on Prism’s site.
# Line Highlighting in Code Blocks
Input
Output
In addition to a single line, you can also specify multiple single lines, ranges, or both:
- Line ranges: for example
{5-8}
,{3-10}
,{10-17}
- Multiple single lines: for example
{4,7,9}
- Line ranges and single lines: for example
{4,7-13,16,23-27,40}
Input
Output
# Line Numbers
You can enable line numbers for each code blocks via config:
- Demo:
# Import Code Snippets beta
You can import code snippets from existing files via following syntax:
It also supports line highlighting:
Input
Output
TIP
Since the import of the code snippets will be executed before webpack compilation, you can’t use the path alias in webpack. The default value of @
is process.cwd()
.
You can also use a VS Code region(opens new window) to only include the corresponding part of the code file. You can provide a custom region name after a #
following the filepath (snippet
by default):
Vue Markdown Editor
Input
Code file
Output
Vue Render Markdown
# Advanced Configuration
Vue Markdown Parser
VuePress uses markdown-it(opens new window) as the Markdown renderer. A lot of the extensions above are implemented via custom plugins. You can further customize the markdown-it
instance using the markdown
option in .vuepress/config.js
: