Vuepress: Create a plugin system and a guide on how to create plugins

Created on 16 Apr 2018  路  5Comments  路  Source: vuejs/vuepress

I think Plugins are one of the most essential things in static site generators as they do a lot of functionalities that can not be implemented otherwise so I think there should be a guide explaining how to create a plugin and future plans on the plugin system

question or discussion

Most helpful comment

Unlike other static site generators, almost anything can be done either in a custom theme (which is a full Vue app) or tweaking the markdown/postcss/webpack config via the markdown options or build pipeline options.

Do you have any specific use case that cannot be solved with these?

As for the default theme, it is intended to focus on documentation only for now.

All 5 comments

Unlike other static site generators, almost anything can be done either in a custom theme (which is a full Vue app) or tweaking the markdown/postcss/webpack config via the markdown options or build pipeline options.

Do you have any specific use case that cannot be solved with these?

As for the default theme, it is intended to focus on documentation only for now.

It would be nice to have documented how e.g. custom containers can be added.
Right now, they are hardcoded here: https://github.com/vuejs/vuepress/tree/master/lib/markdown

I think you can add additional markdown related functions as documented here: https://vuepress.vuejs.org/config/#markdown-config
But this is not really that clear, how e.g. the existing containers can be altered, disabled or overwritten.

@MartinMuzatko built-in containers cannot be changed, at least I don't see a particular reason why you'd want to do that instead of adding a new container type. Containers are added with https://github.com/markdown-it/markdown-it-container

One problem I have had is the inability to generate flat files based on site data (redirect links, sitemap, rss feeds, other hosting provider configs). I have attempted to solve this problem in #196 which gives themes and the site a possibility to hook into the options value just before the prepare.js ends. It is not a general purpose plugin system, just gives themes and sites the ability to add a low-level hook that runs on the server side rather then client side.

Let's continue discussion at the roadmap "channel" (#198).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gaomd picture gaomd  路  3Comments

higuoxing picture higuoxing  路  3Comments

herrbischoff picture herrbischoff  路  3Comments

lileiseven picture lileiseven  路  3Comments

ynnelson picture ynnelson  路  3Comments