-
-
-
- - - - -- el.focus()" - @blur="doneEdit(todo)" - @keyup.enter="doneEdit(todo)" - @keyup.escape="cancelEdit(todo)" - > -
-
diff --git a/.github/contributing/writing-guide.md b/.github/contributing/writing-guide.md
index be69caad5f..a686f0924e 100644
--- a/.github/contributing/writing-guide.md
+++ b/.github/contributing/writing-guide.md
@@ -85,7 +85,7 @@ Writing documentation is an exercise in empathy. We're not describing an objecti
### Tips, Callouts, Alerts, and Line Highlights
-We have some dedicated styles to denote something that's worth highlighting in a particular way. These are captured [on this page](https://vitepress.vuejs.org/guide/markdown.html#custom-containers). **They are to be used sparingly.**
+We have some dedicated styles to denote something that's worth highlighting in a particular way. These are captured [on this page](https://vitepress.dev/guide/markdown#custom-containers). **They are to be used sparingly.**
There is a certain temptation to abuse these styles, as one can simply add a change inside a callout. However, this breaks up the flow of reading for the user and should only be used in special circumstances. Wherever possible, we should attempt to create a narrative and flow within the page to respect the reader's cognitive load.
diff --git a/.gitignore b/.gitignore
index 4f548e6b75..e52da2f480 100644
--- a/.gitignore
+++ b/.gitignore
@@ -98,6 +98,7 @@ dist/
# vitepress build output
.vitepress/dist
.vitepress/cache
+.vitepress/.temp
# Serverless directories
.serverless/
@@ -110,3 +111,6 @@ src/api/index.json
src/examples/data.json
src/tutorial/data.json
draft.md
+
+# folders created by IDE
+.idea
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000000..e941d13c20
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+package-manager-strict=false
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000000..65a7d0588f
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+*.vue
diff --git a/.vitepress/config.ts b/.vitepress/config.ts
index a97b6f7139..80c74de089 100644
--- a/.vitepress/config.ts
+++ b/.vitepress/config.ts
@@ -1,7 +1,8 @@
import fs from 'fs'
import path from 'path'
-import { defineConfigWithTheme } from 'vitepress'
+import { defineConfigWithTheme, type HeadConfig, type Plugin } from 'vitepress'
import type { Config as ThemeConfig } from '@vue/theme'
+import llmstxt from 'vitepress-plugin-llms'
import baseConfig from '@vue/theme/config'
import { headerPlugin } from './headerMdPlugin'
// import { textAdPlugin } from './textAdMdPlugin'
@@ -17,6 +18,7 @@ const nav: ThemeConfig['nav'] = [
{ text: 'Quick Start', link: '/guide/quick-start' },
// { text: 'Style Guide', link: '/style-guide/' },
{ text: 'Glossary', link: '/glossary/' },
+ { text: 'Error Reference', link: '/error-reference/' },
{
text: 'Vue 2 Docs',
link: 'https://v2.vuejs.org/'
@@ -44,10 +46,12 @@ const nav: ThemeConfig['nav'] = [
text: 'Resources',
items: [
{ text: 'Partners', link: '/partners/' },
+ { text: 'Developers', link: '/developers/' },
{ text: 'Themes', link: '/ecosystem/themes' },
+ { text: 'UI Components', link: 'https://ui-libs.vercel.app/' },
{
text: 'Certification',
- link: 'https://certification.vuejs.org/?ref=vuejs-nav'
+ link: 'https://certificates.dev/vuejs/?ref=vuejs-nav'
},
{ text: 'Jobs', link: 'https://vuejobs.com/?ref=vuejs' },
{ text: 'T-Shirt Shop', link: 'https://vue.threadless.com/' }
@@ -111,6 +115,7 @@ const nav: ThemeConfig['nav'] = [
link: '/about/community-guide'
},
{ text: 'Code of Conduct', link: '/about/coc' },
+ { text: 'Privacy Policy', link: '/about/privacy' },
{
text: 'The Documentary',
link: 'https://www.youtube.com/watch?v=OrxmtDw4pVI'
@@ -122,9 +127,13 @@ const nav: ThemeConfig['nav'] = [
link: '/sponsor/'
},
{
- text: 'Partners',
- link: '/partners/',
- activeMatch: `^/partners/`
+ text: 'Experts',
+ badge: { text: 'NEW' },
+ activeMatch: `^/(partners|developers)/`,
+ items: [
+ { text: 'Partners', link: '/partners/' },
+ { text: 'Developers', link: '/developers/', badge: { text: 'NEW' } }
+ ]
}
]
@@ -173,15 +182,15 @@ export const sidebar: ThemeConfig['sidebar'] = {
link: '/guide/essentials/event-handling'
},
{ text: 'Form Input Bindings', link: '/guide/essentials/forms' },
- {
- text: 'Lifecycle Hooks',
- link: '/guide/essentials/lifecycle'
- },
{ text: 'Watchers', link: '/guide/essentials/watchers' },
{ text: 'Template Refs', link: '/guide/essentials/template-refs' },
{
text: 'Components Basics',
link: '/guide/essentials/component-basics'
+ },
+ {
+ text: 'Lifecycle Hooks',
+ link: '/guide/essentials/lifecycle'
}
]
},
@@ -365,6 +374,10 @@ export const sidebar: ThemeConfig['sidebar'] = {
{
text: 'Dependency Injection',
link: '/api/composition-api-dependency-injection'
+ },
+ {
+ text: 'Helpers',
+ link: '/api/composition-api-helpers'
}
]
},
@@ -414,10 +427,12 @@ export const sidebar: ThemeConfig['sidebar'] = {
{
text: 'Advanced APIs',
items: [
+ { text: 'Custom Elements', link: '/api/custom-elements' },
{ text: 'Render Function', link: '/api/render-function' },
{ text: 'Server-Side Rendering', link: '/api/ssr' },
{ text: 'TypeScript Utility Types', link: '/api/utility-types' },
- { text: 'Custom Renderer', link: '/api/custom-renderer' }
+ { text: 'Custom Renderer', link: '/api/custom-renderer' },
+ { text: 'Compile-Time Flags', link: '/api/compile-time-flags' }
]
}
],
@@ -482,10 +497,6 @@ export const sidebar: ThemeConfig['sidebar'] = {
text: 'List with Transitions',
link: '/examples/#list-transition'
},
- {
- text: 'TodoMVC',
- link: '/examples/#todomvc'
- }
]
},
{
@@ -556,9 +567,24 @@ export const sidebar: ThemeConfig['sidebar'] = {
// const i18n: ThemeConfig['i18n'] = {
// }
+function inlineScript(file: string): HeadConfig {
+ return [
+ 'script',
+ {},
+ fs.readFileSync(
+ path.resolve(__dirname, `./inlined-scripts/${file}`),
+ 'utf-8'
+ )
+ ]
+}
+
export default defineConfigWithTheme
The
Progressive
@@ -39,33 +38,50 @@ onMounted(async () => {
Install
+
+ Get Security Updates for Vue 2
+
+
No other costs.
+One month trial period, thereafter, one month notice period.
+{{ desc.content }}
+ +
+ {{ partnerConfig.pageHeroBanner.description1 }}
+
+ {{ partnerConfig.pageHeroBanner.description2 }}
+
+
{{ partnerConfig.pageHeroBanner.footer }}
+ +{{ prependText }}
+ +{{ appendText }}
+Code | +Message | +
---|---|
+ | + |
vuejs/vue@{{ currentBranch }}
-vuejs/core@{{ currentBranch }}
+$ npm init vue@latest
- Vue Partners are Vue-team endorsed agencies that provide first-class - Vue consulting and development services. If your company is - interested in being listed as a partner, please - register your interest here. -
-+ Vue Partners are Vue-team endorsed agencies that provide first-class + Vue consulting and development services. If your company is + interested in being listed as a partner, please + register your interest here. +
+ +- Generate leads for new projects, boost your credibility to your - clients, and support the long term sustainability of Vue.js and its - ecosystem. -
- Become a partner -