Build your blog through multiple folders
This plugin is for Vuepress 1.0
Installation
yarn add vuepress-plugin-blog-multidir
# or
npm i vuepress-plugin-blog-multidir
Usage
module.exports = {
plugins: [
'blog-multidir'
]
}
Options
aliasesRoot
Type:
string
default:
:root
Can't have the same name as your folder (For internal use only).
categoryIndexPageUrl
- Type:
string
- Default:
/category/
tagIndexPageUrl
- Type:
string
- Default:
/tag/
categoryLayout
- Type:
string
- Default:
Tag
tagLayout
- Type:
string
- Default:
Tag
postLayout
- Type:
string
- Default:
Page
postsDir
Type:
string
,array
,Object
Default:
posts
Configures the permalink generated for you folder.
example
postsDir = 'posts'
// or
postsDir = ['posts1', 'posts2', 'posts3']
// or { path: permalink }
postsDir = {
posts1: ':year',
posts2: ':month'
}
permalink
Type:
string
,boolean(false)
Default:
false
See Permalinks for a list of valid variables.
postsSorter
- Type:
function
- Default:
((prev, next) => {
const prevTime = new Date(prev.frontmatter.date).getTime()
const nextTime = new Date(next.frontmatter.date).getTime()
return prevTime - nextTime > 0 ? -1 : 1
})
paginationDir
- Type:
boolean
,string
,array
- Default:
true
example
{
paginationDir: true // Enable all paging
// or
paginationDir: false // Cancel all pages
// or
paginationDir: 'posts' // Enable single paging for `posts` folder
// or
paginationDir: ['posts1', 'posts2'] // Enable multiple paging
}
paginationLimit
- Type:
number
- Default:
12
paginatioPath
- Type:
string
- Default:
page/
computed
$pluginConfig
Plugin config information
$tags
Page information sorted by tags
$categories
Page information sorted by categories
$lists
Page information sorted by folders
$list
If you are in the pagination page. you can get
{
pageKeys,
pagination,
path,
posts
}
or If you are in the post page. you can get
{
index,
total,
dir,
lastPost,
nextPost
}
from this.$list
attention
TIP
You don't need to create a index.md(or README.md)
file in a folder that needs Pagination
+- blog
+- posts
+- test.md
...
...
+- about
+- index.md
or set layout
// about -> index.md
---
layout: Page
---
You need to use display
to control where the current article is displayed
// posts -> test.md
---
display: home
---
A list of home pages will displayed.
// posts -> test.md
---
display: none
---
It will not be displayed.
However, you can still access it through the right path.
If you are in the pagination page. you can get the current page by this.$route.meta.current
.
License
Keywords
vue vuepress plugin blog blog-multidir