Files
Zakk 3364953513 feat(gui): documentation inside the app
The documentation site's domain has expired and its pages described a
2021 v2rayA. The page now carries its own docs, written against the
current code and shipped with the build, so what a user reads matches the
binary they run: quick start, transparent proxy, routing rules, inbounds
and sharing, flags and environment, troubleshooting. English and
Simplified Chinese; the other locales read the English text and say so.

The sections are Markdown under gui/src/docs/<locale>/, compiled to HTML
at build time by a small vite plugin around marked (a devDependency; the
bundle carries no parser) and loaded on demand, so the first load does not
grow. Headings get ids from their text. The flag table is not written by
hand: GET /api/params reads conf.Params' struct tags (id, short, default,
desc) through reflection, the same tags gonfig parses, and the page renders
it, so a new flag documents itself.

"#docs" and "#docs/<section>" open the page; the RoutingA dialog's help
button, the About page and small book icons in the settings sections and
the inbound dialogs point there instead of at the dead site or the wiki.
The navigation gains a fifth destination.
2026-09-20 14:45:55 +10:00

56 lines
1.5 KiB
JSON

{
"name": "v2raya",
"version": "0.1.0",
"private": true,
"license": "GPL-3.0",
"scripts": {
"serve": "vite",
"build": "vite build",
"preview": "vite preview",
"lint": "eslint src",
"typecheck": "vue-tsc --noEmit",
"test": "vitest run --passWithNoTests",
"i18n-check": "node scripts/i18n-check.mjs",
"size-gate": "node scripts/size-gate.mjs"
},
"dependencies": {
"@material/material-color-utilities": "0.4.0",
"@mdi/js": "^7.4.47",
"@nuintun/qrcode": "^3.3.0",
"axios": "^0.33.0",
"dayjs": "^1.10.6",
"js-base64": "^2.5.1",
"nanoid": "^3.3.18",
"pinia": "^4.0.3",
"qrcode": "^1.4.2",
"vue": "^3.5.0",
"vue-i18n": "^11.4.12",
"vuetify": "^4.2.1"
},
"devDependencies": {
"@types/node": "^24.0.0",
"@vitejs/plugin-vue": "^5.2.1",
"@vue/devtools-api": "^8.1.5",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.9.0",
"@vue/test-utils": "2",
"autoprefixer": "^10.4.20",
"eslint": "^10.11.0",
"eslint-plugin-prettier": "^5.5.0",
"eslint-plugin-vue": "^10.11.0",
"happy-dom": "^20",
"highlight.js": "^11.4.0",
"marked": "^17",
"prettier": "^3.6.0",
"sass": "^1.86.0",
"typescript": "~5.9.3",
"urijs": "^1.19.11",
"vite": "^6.4.3",
"vite-plugin-pwa": "^1.3.0",
"vite-plugin-vuetify": "^2.1.3",
"vitest": "^5.0.1",
"vue-eslint-parser": "^10.3.0",
"vue-tsc": "^3.3.11"
}
}