mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
[skipci] Fix document site build fail
[skipci] Fix document site build fail
This commit is contained in:
commit
5aa1816621
3 changed files with 78 additions and 10 deletions
|
|
@ -32,5 +32,9 @@
|
|||
{
|
||||
"source": "/docs/guide/*.md",
|
||||
"translation": "/docs/l10n/%osx_code%/guide/%original_file_name%"
|
||||
},
|
||||
{
|
||||
"source": "/docs/guide/websocket/*.md",
|
||||
"translation": "/docs/l10n/%osx_code%/guide/websocket/%original_file_name%"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -9,11 +9,70 @@ import { shikiPlugin } from '@vuepress/plugin-shiki'
|
|||
import { defaultTheme } from '@vuepress/theme-default'
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
|
||||
import type { Plugin } from 'vite'
|
||||
|
||||
import { headConfig } from './configs/head.js'
|
||||
import { mainConfig, defaultThemeConfig } from './configs/locales_config.js'
|
||||
|
||||
const isProd = process.env.NODE_ENV === 'production'
|
||||
|
||||
function vueTemplateTolerantPlugin(): Plugin {
|
||||
let compilerSfc: typeof import('@vue/compiler-sfc') | undefined
|
||||
return {
|
||||
name: 'vue-template-tolerant',
|
||||
enforce: 'pre',
|
||||
async transform(code, id) {
|
||||
if (!id.endsWith('.html.vue') || !id.includes('/l10n/')) return
|
||||
compilerSfc ??= await import('@vue/compiler-sfc')
|
||||
const { errors } = compilerSfc.parse(code, { filename: id })
|
||||
if (errors.length === 0) return
|
||||
|
||||
const lines = code.split('\n')
|
||||
const mdPath = id
|
||||
.replace(/\.vuepress\/\.temp\/pages\//, '')
|
||||
.replace(/\.html\.vue$/, '.md')
|
||||
|
||||
const yellow = '\x1b[33m'
|
||||
const red = '\x1b[31m'
|
||||
const dim = '\x1b[2m'
|
||||
const cyan = '\x1b[36m'
|
||||
const reset = '\x1b[0m'
|
||||
|
||||
let output = `${yellow}[vue-template-tolerant]${reset} ${errors.length} error(s) in translation page (replaced with placeholder)\n`
|
||||
output += ` ${dim}source:${reset} ${cyan}${mdPath}${reset}\n`
|
||||
|
||||
for (const err of errors as any[]) {
|
||||
const msg = err.message ?? String(err)
|
||||
const loc = err.loc as { start: { line: number; column: number }; end: { line: number; column: number }; source?: string } | undefined
|
||||
if (loc) {
|
||||
output += `\n ${red}error${reset} ${msg}\n`
|
||||
output += ` ${dim}at ${id}:${loc.start.line}:${loc.start.column}${reset}\n`
|
||||
const startLine = Math.max(0, loc.start.line - 3)
|
||||
const endLine = Math.min(lines.length, loc.start.line + 2)
|
||||
for (let i = startLine; i < endLine; i++) {
|
||||
const lineNum = String(i + 1).padStart(5)
|
||||
const marker = i + 1 === loc.start.line ? `${red}>${reset}` : ' '
|
||||
const lineContent = lines[i].length > 200 ? lines[i].slice(0, 200) + '...' : lines[i]
|
||||
output += ` ${marker} ${dim}${lineNum}${reset} | ${lineContent}\n`
|
||||
if (i + 1 === loc.start.line) {
|
||||
const col = loc.start.column
|
||||
output += ` ${' '.repeat(5)} | ${' '.repeat(col)}${red}^${reset}\n`
|
||||
}
|
||||
}
|
||||
} else {
|
||||
output += `\n ${red}error${reset} ${msg}\n`
|
||||
}
|
||||
}
|
||||
|
||||
console.warn(output)
|
||||
return {
|
||||
code: '<template><div><p>This page has HTML errors in its translation source and could not be rendered.</p></div></template>',
|
||||
map: null,
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
export default defineUserConfig({
|
||||
// set site base to default value
|
||||
base: '/',
|
||||
|
|
@ -25,7 +84,14 @@ export default defineUserConfig({
|
|||
locales: mainConfig,
|
||||
|
||||
// specify bundler via environment variable
|
||||
bundler: process.env.DOCS_BUNDLER === 'webpack' ? webpackBundler() : viteBundler(),
|
||||
bundler:
|
||||
process.env.DOCS_BUNDLER === 'webpack'
|
||||
? webpackBundler()
|
||||
: viteBundler({
|
||||
viteOptions: {
|
||||
plugins: [vueTemplateTolerantPlugin()],
|
||||
},
|
||||
}),
|
||||
|
||||
// configure default theme
|
||||
theme: defaultTheme({
|
||||
|
|
|
|||
|
|
@ -570,7 +570,7 @@ In scripts and remote control, no slash is needed to perform the command, eg. `q
|
|||
|
||||
The condition is always returned as a boolean, so only comparison can be done, if needed cast the expression result to bool.
|
||||
|
||||
Also the instance of MCC is available with `MCC.`.
|
||||
Also the instance of MCC is available with `MCC`.
|
||||
|
||||
<div class="custom-container note"><p class="custom-container-title">Note</p>
|
||||
|
||||
|
|
@ -591,14 +591,6 @@ In scripts and remote control, no slash is needed to perform the command, eg. `q
|
|||
/execif 'test == "Something"' "send Success!"
|
||||
```
|
||||
|
||||
<div class="custom-container note"><p class="custom-container-title">Note</p>
|
||||
|
||||
**You can use single quote (`'`) to wrap your expression if the expression contains double quote (`"`)**
|
||||
|
||||
**Adding back-slash (`\`) before the double quote will also work (`/execif "test == \"Something\"" "send Success!"`)**
|
||||
|
||||
</div>
|
||||
|
||||
```
|
||||
/set test2=1
|
||||
/execif 'test2 == "1"' "send Success 2!"
|
||||
|
|
@ -622,6 +614,12 @@ In scripts and remote control, no slash is needed to perform the command, eg. `q
|
|||
/execif "1 == 1" "execmulti send 1 -> send 2 -> send 3"
|
||||
```
|
||||
|
||||
- **Note**
|
||||
|
||||
**You can use single quote (`'`) to wrap your expression if the expression contains double quote (`"`)**
|
||||
|
||||
**Adding back-slash (`\`) before the double quote will also work (`/execif "test == \"Something\"" "send Success!"`)**
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue