Home
Softono
v

vuejs

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
5

Software by vuejs

apollo
Open Source

apollo

<p align="center"> <img src="./packages/docs/src/public/hero.svg" width="256"> </p> # Apollo and GraphQL for Vue.js [![npm](https://img.shields.io/npm/v/@vue/apollo-composable.svg) ![npm](https://img.shields.io/npm/dm/@vue/apollo-composable.svg)](https://www.npmjs.com/package/@vue/apollo-composable) [![apollo3](https://img.shields.io/badge/apollo-3.x-blue.svg)](https://www.apollographql.com/) [![vue3](https://img.shields.io/badge/vue-3-brightgreen.svg)](https://vuejs.org/) ![GitHub branch check runs](https://img.shields.io/github/check-runs/vuejs/apollo/v4) :book: Documentation [**for Vue 3**](http://v4.apollo.vuejs.org) | [for Vue 2](https://apollo.vuejs.org/) [:pen: Contributing guide](./CONTRIBUTING.md) [:heart: Sponsor me!](https://github.com/sponsors/Akryum) ## Continuous Releases You can install builds from any commit on the main branch from [here](https://nightly.akryum.dev/vuejs/vue-apollo) or from any Pull Request. ## Monorepo In this monorepository: | Package | Description | |---------|-------------| |[@vue/apollo-composable](./packages/vue-apollo-composable) |Composition API| |[@vue/apollo-option](./packages/vue-apollo-option) |Options API| |[@vue/apollo-components](./packages/vue-apollo-components) |Components with slots| |[@vue/apollo-ssr](./packages/vue-apollo-ssr) |Server-Side Rendering Utils| |[@vue/apollo-util](./packages/vue-apollo-util) |Other Utils| ## Sponsors <p align="center"> <a href="https://guillaume-chau.info/sponsors/" target="_blank"> <img src='https://akryum.netlify.app/sponsors.svg'/> </a> </p>

Web Components & Widgets API Tools
6K Github Stars
create-vue
Open Source

create-vue

# create-vue <a href="https://npmx.dev/package/create-vue"><img src="https://npmx.dev/api/registry/badge/version/create-vue" alt="npm package"></a> <a href="https://npmx.dev/package/create-vue"><img src="https://npmx.dev/api/registry/badge/downloads-week/create-vue" alt="npm package"></a> <a href="https://nodejs.org/en/about/previous-releases"><img src="https://npmx.dev/api/registry/badge/engines/create-vue" alt="node compatibility"></a> The recommended way to start a Vite-powered Vue project <p align="center"> <img width="898" alt="Screencast from terminal" src="https://github.com/vuejs/create-vue/blob/main/media/screencast-cli.gif?raw=true"> </p> ## Usage To create a new Vue project using `create-vue`, simply run the following command in your terminal: ```sh npm create vue@latest ``` > [!IMPORTANT] > (`@latest` or `@legacy`) MUST NOT be omitted, otherwise `npm` may resolve to a cached and outdated version of the package. By default, the command runs in interactive mode with prompts. You can skip these prompts by providing feature flags as CLI arguments. To see all available feature flags and options: ```sh npm create vue@latest -- --help ``` This will show you various feature flags (like `--typescript`, `--router`) and options (like `--bare` for creating a project with minimal boilerplate). **PowerShell users:** You'll need to quote the double dashes: `npm create vue@latest '--' --help` ### Creating Vue 2 Projects If you need to support IE11, you can create a Vue 2 project with: ```sh npm create vue@legacy ``` > [!WARNING] > [Vue 2 Has Reached End of Life](https://v2.vuejs.org/eol/) ## Difference from Vue CLI - Vite-Powered: Vue CLI is based on webpack, while `create-vue` is based on [Vite](https://vite.dev/). Vite supports most of the configured conventions found in Vue CLI projects out of the box, and provides a significantly better development experience due to its extremely fast startup and hot-module replacement speed. Learn more about why we recommend Vite over webpack [here](https://vite.dev/guide/why.html). - Scaffolding Tool: Unlike Vue CLI, `create-vue` itself is just a scaffolding tool. It creates a pre-configured project based on the features you choose, and delegates the rest to Vite. Projects scaffolded this way can directly leverage the [Vite plugin ecosystem](https://vite.dev/plugins/) which is Rollup-compatible. ## Migrating from Vue CLI If you're transitioning from Vue CLI to Create Vue, we've got you covered. Here are some resources to help you with the migration: How to Migrate from Vue CLI to Vite - Vue CLI to Vite Migration Guide: A comprehensive guide on migrating from Vue CLI to Vite, available on [VueSchool.io](https://vueschool.io/articles/vuejs-tutorials/how-to-migrate-from-vue-cli-to-vite/) - Tools and Plugins for Migration: For a smoother transition, check out the list of tools and plugins designed to assist with the migration process on the [Awesome Vite GitHub page](https://github.com/vitejs/awesome-vite#vue-cli).

JavaScript Libraries & Components Code Editors & IDEs
4.4K Github Stars
babel-plugin-jsx
Open Source

babel-plugin-jsx

# Babel Plugin JSX for Vue 3 [![npm package](https://img.shields.io/npm/v/@vue/babel-plugin-jsx.svg?style=flat-square)](https://www.npmjs.com/package/@vue/babel-plugin-jsx) [![issues-helper](https://img.shields.io/badge/Issues%20Manage%20By-issues--helper-blueviolet?style=flat-square)](https://github.com/actions-cool/issues-helper) To add Vue JSX support. English | [简体中文](/packages/babel-plugin-jsx/README-zh_CN.md) ## Installation Install the plugin with: ```bash npm install @vue/babel-plugin-jsx -D ``` Then add the plugin to your babel config: ```json { "plugins": ["@vue/babel-plugin-jsx"] } ``` ## Usage ### options #### transformOn Type: `boolean` Default: `false` transform `on: { click: xx }` to `onClick: xxx` #### optimize Type: `boolean` Default: `false` When enabled, this plugin generates optimized runtime code using [`PatchFlags`](https://vuejs.org/guide/extras/rendering-mechanism#patch-flags) and [`SlotFlags`](https://github.com/vuejs/core/blob/v3.5.13/packages/runtime-core/src/componentSlots.ts#L69-L77) to improve rendering performance. However, due to JSX's dynamic nature, the optimizations are not as comprehensive as those in Vue's official template compiler. Since the optimized code may skip certain re-renders to improve performance, we strongly recommend thorough testing of your application after enabling this option to ensure everything works as expected. #### isCustomElement Type: `(tag: string) => boolean` Default: `undefined` configuring custom elements #### mergeProps Type: `boolean` Default: `true` merge static and dynamic class / style attributes / onXXX handlers #### enableObjectSlots Type: `boolean` Default: `true` Whether to enable `object slots` (mentioned below the document) syntax". It might be useful in JSX, but it will add a lot of `_isSlot` condition expressions which increase your bundle size. And `v-slots` is still available even if `enableObjectSlots` is turned off. #### pragma Type: `string` Default: `createVNode` Replace the function used when compiling JSX expressions. #### resolveType Type: `boolean` Default: `false` (**Experimental**) Infer component metadata from types (e.g. `props`, `emits`, `name`). This is an experimental feature and may not work in all cases. ## Syntax ### Content functional component ```jsx const App = () => <div>Vue 3.0</div> ``` with render ```jsx const App = { render() { return <div>Vue 3.0</div> }, } ``` ```jsx import { defineComponent, withModifiers } from 'vue' const App = defineComponent({ setup() { const count = ref(0) const inc = () => { count.value++ } return () => <div onClick={withModifiers(inc, ['self'])}>{count.value}</div> }, }) ``` Fragment ```jsx const App = () => ( <> <span>I'm</span> <span>Fragment</span> </> ) ``` ### Attributes / Props ```jsx const App = () => <input type="email" /> ``` with a dynamic binding: ```jsx const placeholderText = 'email' const App = () => <input type="email" placeholder={placeholderText} /> ``` ### Directives #### v-show ```jsx const App = { data() { return { visible: true } }, render() { return <input v-show={this.visible} /> }, } ``` #### v-model > Note: You should pass the second param as string for using `arg`. ```jsx <input v-model={val} /> ``` ```jsx <input v-model:argument={val} /> ``` ```jsx ;<input v-model={[val, ['modifier']]} /> // Or ;<input v-model_modifier={val} /> ``` ```jsx ;<A v-model={[val, 'argument', ['modifier']]} /> // Or ;<input v-model:argument_modifier={val} /> ``` Will compile to: ```js h(A, { argument: val, argumentModifiers: { modifier: true, }, 'onUpdate:argument': ($event) => (val = $event), }) ``` #### v-models (Not recommended since v1.1.0) > Note: You should pass a Two-dimensional Arrays to v-models. ```jsx <A v-models={[[foo], [bar, 'bar']]} /> ``` ```jsx <A v-models={[ [foo, 'foo'], [bar, 'bar'], ]} /> ``` ```jsx <A v-models={[ [foo, ['modifier']], [bar, 'bar', ['modifier']], ]} /> ``` Will compile to: ```js h(A, { modelValue: foo, modelModifiers: { modifier: true, }, 'onUpdate:modelValue': ($event) => (foo = $event), bar, barModifiers: { modifier: true, }, 'onUpdate:bar': ($event) => (bar = $event), }) ``` #### custom directive Recommended when using string arguments ```jsx const App = { directives: { custom: customDirective }, setup() { return () => <a v-custom:arg={val} /> }, } ``` ```jsx const App = { directives: { custom: customDirective }, setup() { return () => <a v-custom={[val, 'arg', ['a', 'b']]} /> }, } ``` ### Slot > Note: In `jsx`, _`v-slot`_ should be replaced with **`v-slots`** ```jsx const A = (props, { slots }) => ( <> <h1>{slots.default ? slots.default() : 'foo'}</h1> <h2>{slots.bar?.()}</h2> </> ) const App = { setup() { const slots = { bar: () => <span>B</span>, } return () => ( <A v-slots={slots}> <div>A</div> </A> ) }, } // or const App2 = { setup() { const slots = { default: () => <div>A</div>, bar: () => <span>B</span>, } return () => <A v-slots={slots} /> }, } // or you can use object slots when `enableObjectSlots` is not false. const App3 = { setup() { return () => ( <> <A> {{ default: () => <div>A</div>, bar: () => <span>B</span>, }} </A> <B>{() => 'foo'}</B> </> ) }, } ``` ### In TypeScript `tsconfig.json`: ```json { "compilerOptions": { "jsx": "preserve" } } ``` ## Who is using <table> <tbody> <tr> <td align="center"> <a target="_blank" href="https://www.antdv.com/"> <img width="32" src="https://github.com/vuejs/babel-plugin-jsx/assets/6481596/8d604d42-fe5f-4450-af87-97999537cd21" /> <br> <strong>Ant Design Vue</strong> </a> </td> <td align="center"> <a target="_blank" href="https://youzan.github.io/vant/#/zh-CN/"> <img width="32" style="vertical-align: -0.32em; margin-right: 8px;" src="https://img.yzcdn.cn/vant/logo.png" /> <br> <strong>Vant</strong> </a> </td> <td align="center"> <a target="_blank" href="https://github.com/element-plus/element-plus"> <img height="32" style="vertical-align: -0.32em; margin-right: 8px;" src="https://user-images.githubusercontent.com/10731096/91267529-259f3680-e7a6-11ea-9a60-3286f750de01.png" /> <br> <strong>Element Plus</strong> </a> </td> <td align="center"> <a target="_blank" href="https://github.com/leezng/vue-json-pretty"> <img height="32" style="vertical-align: -0.32em; margin-right: 8px;" src="https://raw.githubusercontent.com/leezng/vue-json-pretty/master/static/logo.svg" /> <br> <strong>Vue Json Pretty</strong> </a> </td> </tr> </tbody> </table> ## Compatibility This repo is only compatible with: - **Babel 7+** - **Vue 3+**

Developer Tools JavaScript Libraries & Components
1.8K Github Stars
vue-eslint-parser
Open Source

vue-eslint-parser

# vue-eslint-parser [![npm version](https://img.shields.io/npm/v/vue-eslint-parser.svg)](https://www.npmjs.com/package/vue-eslint-parser) [![Downloads/month](https://img.shields.io/npm/dm/vue-eslint-parser.svg)](http://www.npmtrends.com/vue-eslint-parser) [![Build Status](https://github.com/vuejs/vue-eslint-parser/workflows/CI/badge.svg)](https://github.com/vuejs/vue-eslint-parser/actions) The ESLint custom parser for `.vue` files. ## ⤴️ Motivation This parser allows us to lint the `<template>` of `.vue` files. We can make mistakes easily on `<template>` if we use complex directives and expressions in the template. This parser and the rules of [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) would catch some of the mistakes. ## 💿 Installation ```bash npm install --save-dev eslint vue-eslint-parser ``` ## 📖 Usage Write `parser` option into your `eslint.config.*` file. ```js import vueParser from "vue-eslint-parser" export default [ js.configs.recommended, { files: ["*.vue", "**/*.vue"], languageOptions: { parser: vueParser, }, } ] ``` ## 🔧 Options `parserOptions` has the same properties as what [espree](https://github.com/eslint/espree#usage), the default parser of ESLint, is supporting. For example: ```js import vueParser from "vue-eslint-parser" export default [ { files: ["*.vue", "**/*.vue"], languageOptions: { parser: vueParser, sourceType: "module", ecmaVersion: "latest", parserOptions: { ecmaFeatures: { globalReturn: false, impliedStrict: false, jsx: false } } }, } ] ``` ### parserOptions.parser You can use `parserOptions.parser` property to specify a custom parser to parse `<script>` tags. Other properties than parser would be given to the specified parser. For example: ```js import vueParser from "vue-eslint-parser" import babelParser from "@babel/eslint-parser" export default [ { files: ["*.vue", "**/*.vue"], languageOptions: { parser: vueParser, parserOptions: { parser: babelParser, } }, } ] ``` ```js import vueParser from "vue-eslint-parser" import tsParser from "@typescript-eslint/parser" export default [ { files: ["*.vue", "**/*.vue"], languageOptions: { parser: vueParser, parserOptions: { parser: tsParser, } }, } ] ``` You can also specify an object and change the parser separately for `<script lang="...">`. ```js import vueParser from "vue-eslint-parser" import tsParser from "@typescript-eslint/parser" export default [ { files: ["*.vue", "**/*.vue"], languageOptions: { parser: vueParser, parserOptions: { "parser": { // Script parser for `<script>` "js": "espree", // Script parser for `<script lang="ts">` "ts": tsParser, // Script parser for vue directives (e.g. `v-if=` or `:attribute=`) // and vue interpolations (e.g. `{{variable}}`). // If not specified, the parser determined by `<script lang ="...">` is used. "<template>": "espree", } } }, } ] ``` If the `parserOptions.parser` is `false`, the `vue-eslint-parser` skips parsing `<script>` tags completely. This is useful for people who use the language ESLint community doesn't provide custom parser implementation. ### parserOptions.vueFeatures You can use `parserOptions.vueFeatures` property to specify how to parse related to Vue features. For example: ```js import vueParser from "vue-eslint-parser" export default [ { files: ["*.vue", "**/*.vue"], languageOptions: { parser: vueParser, parserOptions: { vueFeatures: { filter: true, interpolationAsNonHTML: true, styleCSSVariableInjection: true, customMacros: [] } } }, } ] ``` ### parserOptions.vueFeatures.filter You can use `parserOptions.vueFeatures.filter` property to specify whether to parse the Vue2 filter. If you specify `false`, the parser does not parse `|` as a filter. For example: ```json { "parserOptions": { "vueFeatures": { "filter": false } } } ``` If you specify `false`, it can be parsed in the same way as Vue 3. The following template parses as a bitwise operation. ```vue <template> <div>{{ a | b }}</div> </template> ``` However, the following template that are valid in Vue 2 cannot be parsed. ```vue <template> <div>{{ a | valid:filter }}</div> </template> ``` ### parserOptions.vueFeatures.interpolationAsNonHTML You can use `parserOptions.vueFeatures.interpolationAsNonHTML` property to specify whether to parse the interpolation as HTML. If you specify `true`, the parser handles the interpolation as non-HTML (However, you can use HTML escaping in the interpolation). Default is `true`. For example: ```json { "parserOptions": { "vueFeatures": { "interpolationAsNonHTML": true } } } ``` If you specify `true`, it can be parsed in the same way as Vue 3. The following template can be parsed well. ```vue <template> <div>{{a<b}}</div> </template> ``` But, it cannot be parsed with Vue 2. ### parserOptions.vueFeatures.styleCSSVariableInjection If set to `true`, to parse expressions in `v-bind` CSS functions inside `<style>` tags. `v-bind()` is parsed into the `VExpressionContainer` AST node and held in the `VElement` of `<style>`. Default is `true`. See also to [here](https://github.com/vuejs/rfcs/blob/master/active-rfcs/0043-sfc-style-variables.md). ### parserOptions.vueFeatures.customMacros Specifies an array of names of custom macros other than Vue standard macros. For example, if you have a custom macro `defineFoo()` and you want it processed by the parser, specify `["defineFoo"]`. Note that this option only works in `<script setup>`. ### parserOptions.templateTokenizer **This is an experimental feature. It may be changed or deleted without notice in the minor version.** You can use `parserOptions.templateTokenizer` property to specify custom tokenizers to parse `<template lang="...">` tags. For example to enable parsing of pug templates: ```jsonc { "parserOptions": { "templateTokenizer": { // template tokenizer for `<template lang="pug">` "pug": "vue-eslint-parser-template-tokenizer-pug", } } } ``` This option is only intended for plugin developers. **Be careful** when using this option directly, as it may change behaviour of rules you might have enabled. If you just want **pug** support, use [eslint-plugin-vue-pug](https://github.com/rashfael/eslint-plugin-vue-pug) instead, which uses this option internally. See [implementing-custom-template-tokenizers.md](./docs/implementing-custom-template-tokenizers.md) for information on creating your own template tokenizer. ## 🎇 Usage for custom rules / plugins - This parser provides `parserServices` to traverse `<template>`. - `defineTemplateBodyVisitor(templateVisitor, scriptVisitor, options)` ... returns ESLint visitor to traverse `<template>`. - `getTemplateBodyTokenStore()` ... returns ESLint `TokenStore` to get the tokens of `<template>`. - `getDocumentFragment()` ... returns the root `VDocumentFragment`. - `defineCustomBlocksVisitor(context, customParser, rule, scriptVisitor)` ... returns ESLint visitor that parses and traverses the contents of the custom block. - `defineDocumentVisitor(documentVisitor, options)` ... returns ESLint visitor to traverses the document. - [ast.md](./docs/ast.md) is `<template>` AST specification. - [mustache-interpolation-spacing.js](https://github.com/vuejs/eslint-plugin-vue/blob/b434ff99d37f35570fa351681e43ba2cf5746db3/lib/rules/mustache-interpolation-spacing.js) is an example. - Check your version of ESLint as the location of `defineTemplateBodyVisitor` was moved from `context` to `context.sourceCode` after major version `9.x` ### `defineTemplateBodyVisitor(templateBodyVisitor, scriptVisitor, options)` *Arguments* - `templateBodyVisitor` ... Event handlers for `<template>`. - `scriptVisitor` ... Event handlers for `<script>` or scripts. (optional) - `options` ... Options. (optional) - `templateBodyTriggerSelector` ... Script AST node selector that triggers the templateBodyVisitor. Default is `"Program:exit"`. (optional) ```ts import { AST } from "vue-eslint-parser" export function create(context) { return context.sourceCode.parserServices.defineTemplateBodyVisitor( // Event handlers for <template>. { VElement(node: AST.VElement): void { //... } }, // Event handlers for <script> or scripts. (optional) { Program(node: AST.ESLintProgram): void { //... } }, // Options. (optional) { templateBodyTriggerSelector: "Program:exit" } ) } ``` ## ⚠️ Known Limitations Some rules make warnings due to the outside of `<script>` tags. Please disable those rules for `.vue` files as necessary. - [eol-last](http://eslint.org/docs/rules/eol-last) - [linebreak-style](http://eslint.org/docs/rules/linebreak-style) - [max-len](http://eslint.org/docs/rules/max-len) - [max-lines](http://eslint.org/docs/rules/max-lines) - [no-trailing-spaces](http://eslint.org/docs/rules/no-trailing-spaces) - [unicode-bom](http://eslint.org/docs/rules/unicode-bom) - Other rules which are using the source code text instead of AST might be confused as well. ## 📰 Changelog - [GitHub Releases](https://github.com/vuejs/vue-eslint-parser/releases) ## 🍻 Contributing Welcome contributing! Please use GitHub's Issues/PRs. If you want to write code, please execute `npm install` after you cloned this repository. The `npm install` command installs dependencies. ### Development Tools - `npm test` runs tests and measures coverage. - `npm run build` compiles TypeScript source code to `index.js`, `index.js.map`, and `index.d.ts` in `dist`. - `npm run coverage` shows the coverage result of `npm test` command with the default browser. - `npm run lint` runs ESLint. - `npm run update-fixtures` updates files in `test/fixtures/ast` directory based on `test/fixtures/ast/*/source.vue` files. - `npm run watch` runs `build`, `update-fixtures`, and tests with `--watch` option.

JavaScript Libraries & Components Code Quality & Linting
488 Github Stars
vuepress
Open Source

vuepress

<p align="center"> <a href="https://vuepress.vuejs.org/" target="_blank"> <img width="180" src="https://raw.githubusercontent.com/vuejs/vuepress/master/packages/docs/docs/.vuepress/public/hero.png" alt="logo"> </a> </p> <p align="center"> <a href="#"><img src="https://img.shields.io/npm/dm/vuepress.svg" alt="Downloads"></a> <a href="https://www.npmjs.com/package/vuepress"><img src="https://img.shields.io/npm/v/vuepress.svg" alt="Version"></a> <a href="https://github.com/vuejs/vuepress/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/vuepress.svg" alt="License"></a> <a href="https://discordapp.com/invite/HBherRA"><img src="https://img.shields.io/badge/Discord-join%20chat-738bd7.svg" alt="VuePress channel on Discord"></a> </p> ## Status VuePress v1 is now in maintenance mode. For a next-gen Vue-based SSG: - [VitePress](https://vitepress.vuejs.org/): Vue.js official team supported. Built on top of Vue 3 + Vite. - [VuePress v2+](https://github.com/vuepress/core): Community supported. Built on top of Vue 3 + Vite / Webpack / Other bundlers. ## Documentation Check out our docs at https://vuepress.vuejs.org/. ## Showcase - [Awesome VuePress](https://github.com/vuepressjs/awesome-vuepress) - [vuepress.tools](https://z3by.github.io/vuepress-tools/) (By [Ahmad Mostafa](https://ahmadmostafa.com)) ## Contribution Want to contribute? Check our [Contributing Guide](.github/CONTRIBUTING.md) and [issues for beginners](https://github.com/vuejs/vuepress/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)! ```bash yarn install # install all dependencies yarn dev # serves VuePress' own docs with itself yarn test # make sure your code change pass the test ``` If you don't have a local checkout, you can also open [VuePress in Gitpod](https://gitpod.io/#https://github.com/vuejs/vuepress/blob/master/packages/docs/docs/README.md), a free online IDE for GitHub. If you intend to make `"substantial"` changes to VuePress or its documentation, please checkout [VuePress RFCs](./rfcs/README.md). If you have a VuePress-related project/component/tool, add it with a pull request to [this curated list](https://github.com/vuepressjs/awesome-vuepress)! ## Contributors ### Creator / Lead <table> <td align="center"><a href="http://evanyou.me"><img src="https://avatars1.githubusercontent.com/u/499550?v=4" width="100px;" alt="Evan You"/><br /><sub><b>Evan You</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=yyx990803" title="Code">💻</a></td> <td align="center"><a href="https://github.com/ulivz"><img src="https://avatars1.githubusercontent.com/u/23133919?v=4" width="100px;" alt="ULIVZ"/><br /><sub><b>ULIVZ</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=ulivz" title="Code">💻</a> <a href="https://github.com/vuejs/vuepress/commits?author=ulivz" title="Documentation">📖</a></td> </table> ### Active Core Team <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tr> <td align="center"><a href="https://billychin.netlify.com/"><img src="https://avatars0.githubusercontent.com/u/38957202?v=4" width="100px;" alt="Billyyyyy3320"/><br /><sub><b>Billyyyyy3320</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=newsbielt703" title="Code">💻</a></td> <td align="center"><a href="https://github.com/meteorlxy"><img src="https://avatars0.githubusercontent.com/u/18205362?s=400&v=4" width="100px;" alt="meteorlxy"/><br /><sub><b>meteorlxy</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=meteorlxy" title="Code">💻</a></td> <td align="center"><a href="https://twitter.com/CodesOfRa"><img src="https://avatars0.githubusercontent.com/u/945186?v=4" width="100px;" alt="Ramona"/><br /><sub><b>Ramona</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=CodesOfRa" title="Code">💻</a> <a href="https://github.com/vuejs/vuepress/commits?author=CodesOfRa" title="Documentation">📖</a></td> <td align="center"><a href="https://www.franck-abgrall.me/"><img src="https://avatars3.githubusercontent.com/u/9840435?v=4" width="100px;" alt="Franck Abgrall"/><br /><sub><b>Franck Abgrall</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=kefranabg" title="Code">💻</a> <a href="#question-kefranabg" title="Answering Questions">💬</a></td> </tr> </table> <!-- markdownlint-enable --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END --> ### Core Team Emeriti Here we honor some no-longer-active core team members who have made valuable contributions in the past. <table> <tr> <td align="center"><a href="http://www.bencodezen.io"><img src="https://avatars0.githubusercontent.com/u/4836334?v=4" width="100px;" alt="Ben Hong"/><br /><sub><b>Ben Hong</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=bencodezen" title="Code">💻</a> <a href="https://github.com/vuejs/vuepress/commits?author=bencodezen" title="Documentation">📖</a> <a href="#question-bencodezen" title="Answering Questions">💬</a></td> <td align="center"><a href="https://github.com/f3ltron"><img src="https://avatars1.githubusercontent.com/u/11556276?v=4" width="100px;" alt="Giraud Florent"/><br /><sub><b>Giraud Florent</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=f3ltron" title="Code">💻</a></td> <td align="center"><a href="https://frontstuff.io/"><img src="https://avatars0.githubusercontent.com/u/5370675?v=4" width="100px;" alt="Sarah Dayan"/><br /><sub><b>Sarah Dayan</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=sarahdayan" title="Code">💻</a> <a href="https://github.com/vuejs/vuepress/commits?author=sarahdayan" title="Documentation">📖</a></td> <td align="center"><a href="https://twitter.com/_vinayak_k"><img src="https://avatars2.githubusercontent.com/u/19776877?v=4" width="100px;" alt="Vinayak Kulkarni"/><br /><sub><b>Vinayak Kulkarni</b></sub></a><br /><a href="#plugin-vinayakkulkarni" title="Plugin/utility libraries">🔌</a> <a href="https://github.com/vuejs/vuepress/commits?author=vinayakkulkarni" title="Code">💻</a> <a href="#blog-vinayakkulkarni" title="Blogposts">📝</a></td> <td align="center"><a href="https://twitter.com/vicbergquist"><img src="https://avatars0.githubusercontent.com/u/25737281?v=4" width="100px;" alt="Victoria Bergquist"/><br /><sub><b>Victoria Bergquist</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=vicbergquist" title="Code">💻</a> <a href="#design-vicbergquist" title="Design">🎨</a></td> <td align="center"><a href="https://sobolevn.me"><img src="https://avatars1.githubusercontent.com/u/4660275?v=4" width="100px;" alt="Nikita Sobolev"/><br /><sub><b>Nikita Sobolev</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=sobolevn" title="Code">💻</a> <a href="https://github.com/vuejs/vuepress/commits?author=sobolevn" title="Documentation">📖</a></td> <td align="center"><a href="https://fatihacet.com"><img src="https://avatars3.githubusercontent.com/u/712419?v=4" width="100px;" alt="Fatih Acet"/><br /><sub><b>Fatih Acet</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=fatihacet" title="Code">💻</a></td> <td align="center"><a href="http://farcaller.net/"><img src="https://avatars2.githubusercontent.com/u/693?v=4" width="100px;" alt="Vladimir Pouzanov"/><br /><sub><b>Vladimir Pouzanov</b></sub></a><br /><a href="https://github.com/vuejs/vuepress/commits?author=farcaller" title="Code">💻</a></td> </tr> </table> ### Code Contributors This project exists thanks to all the people who contribute. [[Contribute](.github/CONTRIBUTING.md)]. <a href="https://github.com/vuejs/vuepress/graphs/contributors"><img src="https://opencollective.com/vuepress/contributors.svg?width=890&button=false" /></a> ## License [MIT](https://github.com/vuejs/vuepress/blob/master/LICENSE)

SEO Tools Static Site Generators
22.8K Github Stars