npm.io
1.0.5 • Published 7 years ago

vuepress-plugin-blog-multidir

Licence
MIT
Version
1.0.5
Deps
1
Size
15 kB
Vulns
0
Weekly
0
Stars
7

vuepress-plugin-blog-multidir

A VuePress blog plugin which Support multiple folders

README | CHANGELOG

Build your blog through multiple folders

Installation

yarn add vuepress-plugin-blog-multidir
// or
npm i vuepress-plugin-blog-multidir

Usage

module.exports = {
  plugins: [
    'blog-multidir'
  ]
}

Vuepress documentation

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 { dir: permalink }
  postsDir: {
    posts1: ':year',
    posts2: ':month',
    posts3: ':slug'
  }
}
  • 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

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

MIT

Keywords

vue vuepress plugin blog blog-multidir

Keywords