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
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).
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.