From c153e8ed5afcebaa828d0ac1f0d148b529a7acc5 Mon Sep 17 00:00:00 2001 From: Franck Date: Tue, 8 Oct 2019 16:28:00 +0200 Subject: [PATCH] feat($plugin): Create basic config for vue-cli vuepress plugin --- .gitignore | 1 + .../vue-cli-plugin-vuepress/README.md | 1 + .../generator/index.js | 13 ++++++++++ .../generator/template/docs/README.md | 1 + .../template/docs/_vuepress/config.js | 4 +++ .../vue-cli-plugin-vuepress/index.js | 1 + .../vue-cli-plugin-vuepress/package.json | 26 +++++++++++++++++++ .../vue-cli-plugin-vuepress/prompts.js | 14 ++++++++++ .../vue-cli-plugin-vuepress/ui/index.js | 20 ++++++++++++++ .../vue-cli-plugin-vuepress/ui/onRead.js | 16 ++++++++++++ .../vue-cli-plugin-vuepress/ui/onWrite.js | 8 ++++++ 11 files changed, 105 insertions(+) create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/README.md create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/generator/index.js create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/README.md create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/_vuepress/config.js create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/index.js create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/package.json create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/prompts.js create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/ui/index.js create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/ui/onRead.js create mode 100644 packages/@vuepress/vue-cli-plugin-vuepress/ui/onWrite.js diff --git a/.gitignore b/.gitignore index e31dfe57..8065e608 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ node_modules TODOs.md packages/@vuepress/shared-utils/lib/ types +.vscode \ No newline at end of file diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/README.md b/packages/@vuepress/vue-cli-plugin-vuepress/README.md new file mode 100644 index 00000000..29a78c40 --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/README.md @@ -0,0 +1 @@ +# vue-cli-plugin-vuepress \ No newline at end of file diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/generator/index.js b/packages/@vuepress/vue-cli-plugin-vuepress/generator/index.js new file mode 100644 index 00000000..116ecdc0 --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/generator/index.js @@ -0,0 +1,13 @@ +module.exports = async (api, projectOptions) => { + api.extendPackage({ + scripts: { + 'docs:dev': 'vuepress dev docs', + 'docs:build': 'vuepress build docs' + }, + devDependencies: { + vuepress: '^1.1.0' + } + }) + + api.render('./template', projectOptions) +} diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/README.md b/packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/README.md new file mode 100644 index 00000000..bf357b1e --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/README.md @@ -0,0 +1 @@ +# <%= title %> \ No newline at end of file diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/_vuepress/config.js b/packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/_vuepress/config.js new file mode 100644 index 00000000..4191381e --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/generator/template/docs/_vuepress/config.js @@ -0,0 +1,4 @@ +module.exports = { + title: '<%= title %>', + description: '<%= description %>' +} diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/index.js b/packages/@vuepress/vue-cli-plugin-vuepress/index.js new file mode 100644 index 00000000..0c0c42d5 --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/index.js @@ -0,0 +1 @@ +module.exports = () => {} diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/package.json b/packages/@vuepress/vue-cli-plugin-vuepress/package.json new file mode 100644 index 00000000..611266ad --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/package.json @@ -0,0 +1,26 @@ +{ + "name": "@vuepress/vue-cli-plugin-vuepress", + "version": "1.1.0", + "description": "vue-cli plugin for VuePress", + "main": "index.js", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vuepress.git", + "directory": "packages/@vuepress/vue-cli-plugin-vuepress" + }, + "keywords": [ + "vuepress", + "vue", + "vue-cli", + "bootstrap" + ], + "author": "Franck Abgrall", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/vuepress/issues" + }, + "homepage": "https://github.com/vuejs/vuepress#readme" +} diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/prompts.js b/packages/@vuepress/vue-cli-plugin-vuepress/prompts.js new file mode 100644 index 00000000..f732f1a9 --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/prompts.js @@ -0,0 +1,14 @@ +module.exports = [ + { + type: 'input', + name: 'title', + message: 'Title', + validate: input => !!input + }, + { + type: 'input', + name: 'description', + message: 'Description', + validate: input => !!input + } +] diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/ui/index.js b/packages/@vuepress/vue-cli-plugin-vuepress/ui/index.js new file mode 100644 index 00000000..efd96017 --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/ui/index.js @@ -0,0 +1,20 @@ +const onRead = require('./onRead') +const onWrite = require('./onWrite') + +const ID = 'org.vuepress.config' + +module.exports = api => { + api.describeConfig({ + id: ID, + name: 'VuePress', + description: 'VuePress configuration', + link: 'https://vuepress.vuejs.org', + files: { + config: { + js: ['docs/.vuepress/config.js'] + } + }, + onRead, + onWrite + }) +} diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/ui/onRead.js b/packages/@vuepress/vue-cli-plugin-vuepress/ui/onRead.js new file mode 100644 index 00000000..4a0cca61 --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/ui/onRead.js @@ -0,0 +1,16 @@ +module.exports = ({ data }) => ({ + prompts: [ + { + name: 'title', + type: 'input', + message: 'Title', + value: data.config.title + }, + { + name: 'description', + type: 'input', + message: 'Description', + value: data.config.description + } + ] +}) diff --git a/packages/@vuepress/vue-cli-plugin-vuepress/ui/onWrite.js b/packages/@vuepress/vue-cli-plugin-vuepress/ui/onWrite.js new file mode 100644 index 00000000..360e04c8 --- /dev/null +++ b/packages/@vuepress/vue-cli-plugin-vuepress/ui/onWrite.js @@ -0,0 +1,8 @@ +module.exports = async ({ api, prompts }) => { + const result = {} + for (const prompt of prompts) { + result[`${prompt.id}`] = await api.getAnswer(prompt.id) + } + + api.setData('config', result) +}