mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 10:10:45 +08:00
docs: 添加目录自动跳转组件并使locale自动生成 (#14299)
* feat: 文档站添加重定向vue小组件
* revert: "docs: 将文档中指向部分文档目录的链接改为指向对应目录下的第一篇文档 (#14292)"
This reverts commit a24c772880.
* docs: zh-tw 目录自动跳转
* docs: zh-cn 目录自动跳转
* docs: ko-kr 目录自动跳转
* docs: ja-jp 目录自动跳转
* docs: en-us 目录自动跳转
* docs: 修复了多语言faq文章中的外链对应语言错误的问题
* refactor: 将matter模块改为default import
* feat: 将文档站的i18n和导航相关设置改为全自动生成
* fix: 去除了冗余的locale属性
文档站根据文件目录名称进行索引,linkName和dirName不可能不相同,故简化为单属性name
* refactor: 调整导航组件生成模块中的部分数据类型
* style: prettier fix
This commit is contained in:
@@ -4,6 +4,7 @@ import { getAsciiArt } from './plugins/asciiArt.mts'
|
||||
|
||||
import AsciiArt from './components/AsciiArt.vue'
|
||||
import ImageGrid from './components/ImageGrid.vue'
|
||||
import Redirect from './components/Redirect.vue'
|
||||
|
||||
import './styles/index.scss'
|
||||
|
||||
@@ -11,6 +12,7 @@ export default defineClientConfig({
|
||||
enhance: ({ app }) => {
|
||||
app.component('AsciiArt', AsciiArt)
|
||||
app.component('ImageGrid', ImageGrid)
|
||||
app.component('Redirect', Redirect)
|
||||
|
||||
// 输出一个随机的字符画
|
||||
const art = getAsciiArt(undefined, 'auto', 'console')
|
||||
|
||||
25
docs/.vuepress/components/Redirect.vue
Normal file
25
docs/.vuepress/components/Redirect.vue
Normal file
@@ -0,0 +1,25 @@
|
||||
<template />
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue'
|
||||
import { useRouter, useRoute } from 'vuepress/client'
|
||||
|
||||
interface Props {
|
||||
to?: string
|
||||
}
|
||||
const props = defineProps<Props>()
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
|
||||
function resolvePath(to: string) {
|
||||
const target = new URL(to, 'http://example.com' + route.path) // 使用一个虚拟的基础 URL
|
||||
return target.pathname
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
if (!props.to) return
|
||||
const targetPath = resolvePath(props.to)
|
||||
router.replace(targetPath)
|
||||
})
|
||||
</script>
|
||||
@@ -3,6 +3,8 @@ import { defineUserConfig } from 'vuepress'
|
||||
import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
import { genSiteLocales } from './navigation/genLocales'
|
||||
|
||||
import DocSearchConfig from './plugins/search'
|
||||
|
||||
const isProd = process.env.NODE_ENV === 'production'
|
||||
@@ -15,33 +17,7 @@ export default defineUserConfig({
|
||||
host: '0.0.0.0',
|
||||
port: 3001,
|
||||
|
||||
locales: {
|
||||
'/zh-cn/': {
|
||||
lang: 'zh-CN',
|
||||
title: 'MAA 文档站',
|
||||
description: '文档',
|
||||
},
|
||||
'/zh-tw/': {
|
||||
lang: 'zh-TW',
|
||||
title: 'MAA 文件站',
|
||||
description: '文件',
|
||||
},
|
||||
'/en-us/': {
|
||||
lang: 'en-US',
|
||||
title: 'MAA Documentation Site',
|
||||
description: 'Documentation',
|
||||
},
|
||||
'/ja-jp/': {
|
||||
lang: 'ja-JP',
|
||||
title: 'MAA ドキュメントサイト',
|
||||
description: 'ドキュメント',
|
||||
},
|
||||
'/ko-kr/': {
|
||||
lang: 'ko-KR',
|
||||
title: 'MAA 문서 사이트',
|
||||
description: '문서',
|
||||
},
|
||||
},
|
||||
locales: genSiteLocales(),
|
||||
|
||||
head: [
|
||||
['link', { rel: 'preconnect', href: 'https://fonts.googleapis.com' }],
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import { defineNavbarConfig } from 'vuepress-theme-plume'
|
||||
|
||||
export const enusNavbar = defineNavbarConfig([
|
||||
{
|
||||
text: 'User Manual',
|
||||
icon: 'mdi:user',
|
||||
link: '/en-us/manual/newbie.html',
|
||||
},
|
||||
{
|
||||
text: 'Development Docs',
|
||||
icon: 'ph:code-bold',
|
||||
link: '/en-us/develop/development.html',
|
||||
},
|
||||
{
|
||||
text: 'Protocol Docs',
|
||||
icon: 'basil:document-solid',
|
||||
link: '/en-us/protocol/integration.html',
|
||||
},
|
||||
])
|
||||
@@ -1,5 +0,0 @@
|
||||
export * from './zh-cn'
|
||||
export * from './zh-tw'
|
||||
export * from './en-us'
|
||||
export * from './ja-jp'
|
||||
export * from './ko-kr'
|
||||
@@ -1,19 +0,0 @@
|
||||
import { defineNavbarConfig } from 'vuepress-theme-plume'
|
||||
|
||||
export const jajpNavbar = defineNavbarConfig([
|
||||
{
|
||||
text: '使用説明',
|
||||
icon: 'mdi:user',
|
||||
link: '/ja-jp/manual/newbie.html',
|
||||
},
|
||||
{
|
||||
text: '開発関連',
|
||||
icon: 'ph:code-bold',
|
||||
link: '/ja-jp/develop/development.html',
|
||||
},
|
||||
{
|
||||
text: 'プロトコルドキュメント',
|
||||
icon: 'basil:document-solid',
|
||||
link: '/ja-jp/protocol/integration.html',
|
||||
},
|
||||
])
|
||||
@@ -1,19 +0,0 @@
|
||||
import { defineNavbarConfig } from 'vuepress-theme-plume'
|
||||
|
||||
export const kokrNavbar = defineNavbarConfig([
|
||||
{
|
||||
text: '사용자 설명서',
|
||||
icon: 'mdi:user',
|
||||
link: '/ko-kr/manual/newbie.html',
|
||||
},
|
||||
{
|
||||
text: '개발 문서',
|
||||
icon: 'ph:code-bold',
|
||||
link: '/ko-kr/develop/development.html',
|
||||
},
|
||||
{
|
||||
text: '프로토콜 문서',
|
||||
icon: 'basil:document-solid',
|
||||
link: '/ko-kr/protocol/integration.html',
|
||||
},
|
||||
])
|
||||
@@ -1,19 +0,0 @@
|
||||
import { defineNavbarConfig } from 'vuepress-theme-plume'
|
||||
|
||||
export const zhcnNavbar = defineNavbarConfig([
|
||||
{
|
||||
text: '用户手册',
|
||||
icon: 'mdi:user',
|
||||
link: '/zh-cn/manual/newbie.html',
|
||||
},
|
||||
{
|
||||
text: '开发文档',
|
||||
icon: 'ph:code-bold',
|
||||
link: '/zh-cn/develop/development.html',
|
||||
},
|
||||
{
|
||||
text: '协议文档',
|
||||
icon: 'basil:document-solid',
|
||||
link: '/zh-cn/protocol/integration.html',
|
||||
},
|
||||
])
|
||||
@@ -1,19 +0,0 @@
|
||||
import { defineNavbarConfig } from 'vuepress-theme-plume'
|
||||
|
||||
export const zhtwNavbar = defineNavbarConfig([
|
||||
{
|
||||
text: '用戶說明書',
|
||||
icon: 'mdi:user',
|
||||
link: '/zh-tw/manual/newbie.html',
|
||||
},
|
||||
{
|
||||
text: '開發文件',
|
||||
icon: 'ph:code-bold',
|
||||
link: '/zh-tw/develop/development.html',
|
||||
},
|
||||
{
|
||||
text: '協議文件',
|
||||
icon: 'basil:document-solid',
|
||||
link: '/zh-tw/protocol/integration.html',
|
||||
},
|
||||
])
|
||||
33
docs/.vuepress/navigation/genLocales.ts
Normal file
33
docs/.vuepress/navigation/genLocales.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { SiteLocaleConfig, LocaleConfig } from 'vuepress'
|
||||
import { ThemeLocaleData } from 'vuepress-theme-plume'
|
||||
|
||||
import { locales } from './i18n'
|
||||
import { genNavigationComponents } from './genNavigationComponents'
|
||||
|
||||
export function genSiteLocales(): SiteLocaleConfig {
|
||||
const siteLocales: SiteLocaleConfig = {}
|
||||
for (const locale of locales) {
|
||||
siteLocales[`/${locale.name}/`] = {
|
||||
lang: locale.htmlLang,
|
||||
title: locale.siteTitle,
|
||||
description: locale.siteDescription,
|
||||
}
|
||||
}
|
||||
return siteLocales
|
||||
}
|
||||
|
||||
export function genThemeLocales(): LocaleConfig<ThemeLocaleData> {
|
||||
const themeLocales: LocaleConfig<ThemeLocaleData> = {}
|
||||
for (const locale of locales) {
|
||||
const navigationComponents = genNavigationComponents(locale)
|
||||
themeLocales[`/${locale.name}/`] = {
|
||||
navbar: navigationComponents.navbar,
|
||||
notes: {
|
||||
dir: locale.name,
|
||||
link: `/${locale.name}/`,
|
||||
notes: navigationComponents.notes,
|
||||
},
|
||||
}
|
||||
}
|
||||
return themeLocales
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
import * as matterModule from 'gray-matter'
|
||||
import { defineNoteConfig, ThemeNote, ThemeSidebarItem } from 'vuepress-theme-plume'
|
||||
import { default as matter } from 'gray-matter'
|
||||
import { defineNoteConfig, ThemeNavItem, ThemeNote, ThemeSidebarItem } from 'vuepress-theme-plume'
|
||||
|
||||
const matter = (matterModule as any).default
|
||||
import { Locale } from './i18n'
|
||||
|
||||
interface MetaData {
|
||||
baseName: string
|
||||
@@ -13,6 +13,11 @@ interface MetaData {
|
||||
index: boolean
|
||||
}
|
||||
|
||||
interface NavigationComponents {
|
||||
navbar: ThemeNavItem[]
|
||||
notes: ThemeNote[]
|
||||
}
|
||||
|
||||
function getMetaData(dir: string, entry: fs.Dirent): MetaData | null {
|
||||
const currentPath = path.join(dir, entry.name)
|
||||
if (!fs.existsSync(currentPath)) {
|
||||
@@ -35,6 +40,7 @@ function getMetaData(dir: string, entry: fs.Dirent): MetaData | null {
|
||||
const fileContent = fs.readFileSync(mdFilePath, 'utf-8')
|
||||
const meta = matter(fileContent).data ?? {}
|
||||
|
||||
// 文件名,不含扩展名
|
||||
const baseName = path.parse(entry.name).name
|
||||
// 获取顺序,目录的order在meta.dir.order里,文件的order在meta.order里,默认值为一个大数
|
||||
const order = Number((entry.isDirectory() ? meta?.dir?.order : meta?.order) ?? Number.MAX_SAFE_INTEGER)
|
||||
@@ -42,7 +48,7 @@ function getMetaData(dir: string, entry: fs.Dirent): MetaData | null {
|
||||
const title = String(meta?.title ?? RegExp('# (.+)').exec(fileContent)?.[1] ?? baseName)
|
||||
// 获取图标
|
||||
const icon = String(meta?.icon ?? '')
|
||||
// 是否作为索引页,文件永远为true,目录则看meta.index,默认true
|
||||
// 是否添加到索引,文件永远为true,目录则看meta.index,默认true
|
||||
const index = entry.isDirectory() ? (Boolean(meta?.index) ?? true) : true
|
||||
|
||||
return {
|
||||
@@ -54,18 +60,36 @@ function getMetaData(dir: string, entry: fs.Dirent): MetaData | null {
|
||||
}
|
||||
}
|
||||
|
||||
export function genNotes(lang: string, baseDir = path.resolve(__dirname, '../../')): ThemeNote[] {
|
||||
export function genNavigationComponents(
|
||||
locale: Locale,
|
||||
baseDir = path.resolve(__dirname, '../../'),
|
||||
): NavigationComponents {
|
||||
// 将内容与对应顺序进行包装
|
||||
type NavbarItem = ThemeNavItem
|
||||
type SidebarItem = ThemeNote | ThemeSidebarItem | string
|
||||
|
||||
interface IntermediateNavigationComponents {
|
||||
navbar: NavbarItem[]
|
||||
notes: SidebarItem[]
|
||||
}
|
||||
|
||||
interface WrappedNavbarItem {
|
||||
content: NavbarItem
|
||||
order: number
|
||||
}
|
||||
|
||||
interface WrappedSidebarItem {
|
||||
content: SidebarItem
|
||||
order: number
|
||||
}
|
||||
|
||||
// 进入指定语言目录,即docs/<i18n>/
|
||||
const langDir = path.join(baseDir, lang)
|
||||
const langDir = path.join(baseDir, locale.name)
|
||||
|
||||
// 递归获取目录和文件
|
||||
function getItems(dir: string, isRoot: boolean): any[] {
|
||||
// 将内容与对应顺序进行包装
|
||||
interface Wrapped {
|
||||
content: ThemeNote | ThemeSidebarItem | string
|
||||
order: number
|
||||
}
|
||||
let itemsWithOrder: Wrapped[] = []
|
||||
function getItems(dir: string, isRoot: boolean): IntermediateNavigationComponents {
|
||||
const navbarItemsWithOrder: WrappedNavbarItem[] = []
|
||||
const sidebarItemsWithOrder: WrappedSidebarItem[] = []
|
||||
|
||||
// 获取所有非隐藏文件和目录
|
||||
const entries = fs.readdirSync(dir, { withFileTypes: true }).filter((e) => !e.name.startsWith('.'))
|
||||
@@ -75,45 +99,60 @@ export function genNotes(lang: string, baseDir = path.resolve(__dirname, '../../
|
||||
if (!metaData) {
|
||||
continue
|
||||
}
|
||||
let sidebarItem: SidebarItem
|
||||
let navbarItem: NavbarItem
|
||||
|
||||
if (entry.isDirectory()) {
|
||||
// 递归获取子目录内容
|
||||
const children = getItems(path.join(dir, entry.name), false)
|
||||
|
||||
if (isRoot) {
|
||||
// 一级目录,作为“专题”
|
||||
const item = defineNoteConfig({
|
||||
navbarItem = {
|
||||
text: metaData.title,
|
||||
icon: metaData.icon,
|
||||
link: `/${locale.name}/${metaData.baseName}/`,
|
||||
}
|
||||
// 只在当前条件下,才会有navbarItem
|
||||
navbarItemsWithOrder.push({ content: navbarItem, order: metaData.order })
|
||||
|
||||
sidebarItem = defineNoteConfig({
|
||||
dir: metaData.baseName,
|
||||
link: `/${metaData.baseName}/`,
|
||||
text: metaData.title,
|
||||
sidebar: children,
|
||||
sidebar: children.notes,
|
||||
})
|
||||
itemsWithOrder.push({ content: item, order: metaData.order })
|
||||
} else {
|
||||
// 非一级目录,作为可折叠的子目录
|
||||
const item: ThemeSidebarItem = {
|
||||
sidebarItem = {
|
||||
text: metaData.title,
|
||||
// 只有当目录设置了index: true时,才生成链接,否则点击时不跳转、只切换折叠状态
|
||||
link: metaData.index ? `${metaData.baseName}/` : undefined,
|
||||
link: metaData.index ? `${metaData.baseName}/` : null,
|
||||
icon: metaData.icon,
|
||||
// 目前没有文档使用了这个特性,故不处理
|
||||
// badge: undefined,
|
||||
collapsed: true,
|
||||
// 前面不能加斜杠,必须用相对路径
|
||||
prefix: `${metaData.baseName}/`,
|
||||
items: children,
|
||||
items: children.notes,
|
||||
}
|
||||
itemsWithOrder.push({ content: item, order: metaData.order })
|
||||
}
|
||||
} else if (entry.isFile() && entry.name.endsWith('.md') && entry.name.toLowerCase() !== 'readme.md') {
|
||||
// 普通文件,取完整文件名作为链接
|
||||
const item = entry.name
|
||||
itemsWithOrder.push({ content: item, order: metaData.order })
|
||||
sidebarItem = entry.name
|
||||
}
|
||||
sidebarItemsWithOrder.push({ content: sidebarItem, order: metaData.order })
|
||||
}
|
||||
// 当前dir的内容读取完毕,进行排序并返回,返回时丢弃order
|
||||
itemsWithOrder.sort((a, b) => a.order - b.order)
|
||||
return itemsWithOrder.map((i) => i.content)
|
||||
if (isRoot) {
|
||||
navbarItemsWithOrder.sort((a, b) => a.order - b.order)
|
||||
}
|
||||
sidebarItemsWithOrder.sort((a, b) => a.order - b.order)
|
||||
return {
|
||||
navbar: navbarItemsWithOrder.map((i) => i.content),
|
||||
notes: sidebarItemsWithOrder.map((i) => i.content),
|
||||
}
|
||||
}
|
||||
// 递归起点,只有这里是一级目录,isRoot传true
|
||||
return getItems(langDir, true)
|
||||
return getItems(langDir, true) as NavigationComponents
|
||||
}
|
||||
45
docs/.vuepress/navigation/i18n.ts
Normal file
45
docs/.vuepress/navigation/i18n.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
export interface Locale {
|
||||
name: string
|
||||
// displayName: string
|
||||
htmlLang: string
|
||||
siteTitle: string
|
||||
siteDescription: string
|
||||
}
|
||||
|
||||
export const locales: Locale[] = [
|
||||
{
|
||||
name: 'zh-cn',
|
||||
// displayName: '简体中文',
|
||||
htmlLang: 'zh-CN',
|
||||
siteTitle: 'MAA 文档站',
|
||||
siteDescription: '文档',
|
||||
},
|
||||
{
|
||||
name: 'zh-tw',
|
||||
// displayName: '繁體中文',
|
||||
htmlLang: 'zh-TW',
|
||||
siteTitle: 'MAA 文件站',
|
||||
siteDescription: '文件',
|
||||
},
|
||||
{
|
||||
name: 'en-us',
|
||||
// displayName: 'English',
|
||||
htmlLang: 'en-US',
|
||||
siteTitle: 'MAA Documentation Site',
|
||||
siteDescription: 'Documentation',
|
||||
},
|
||||
{
|
||||
name: 'ja-jp',
|
||||
// displayName: '日本語',
|
||||
htmlLang: 'ja-JP',
|
||||
siteTitle: 'MAA ドキュメントサイト',
|
||||
siteDescription: 'ドキュメント',
|
||||
},
|
||||
{
|
||||
name: 'ko-kr',
|
||||
// displayName: '한국어',
|
||||
htmlLang: 'ko-KR',
|
||||
siteTitle: 'MAA 문서 사이트',
|
||||
siteDescription: '문서',
|
||||
},
|
||||
]
|
||||
@@ -1,8 +0,0 @@
|
||||
import { defineNotesConfig } from 'vuepress-theme-plume'
|
||||
import { genNotes } from './genSidebar'
|
||||
|
||||
export const enusNotes = defineNotesConfig({
|
||||
dir: 'en-us',
|
||||
link: '/en-us/',
|
||||
notes: genNotes('en-us'),
|
||||
})
|
||||
@@ -1,5 +0,0 @@
|
||||
export * from './zh-cn'
|
||||
export * from './zh-tw'
|
||||
export * from './en-us'
|
||||
export * from './ja-jp'
|
||||
export * from './ko-kr'
|
||||
@@ -1,8 +0,0 @@
|
||||
import { defineNotesConfig } from 'vuepress-theme-plume'
|
||||
import { genNotes } from './genSidebar'
|
||||
|
||||
export const jajpNotes = defineNotesConfig({
|
||||
dir: 'ja-jp',
|
||||
link: '/ja-jp/',
|
||||
notes: genNotes('ja-jp'),
|
||||
})
|
||||
@@ -1,8 +0,0 @@
|
||||
import { defineNotesConfig } from 'vuepress-theme-plume'
|
||||
import { genNotes } from './genSidebar'
|
||||
|
||||
export const kokrNotes = defineNotesConfig({
|
||||
dir: 'ko-kr',
|
||||
link: '/ko-kr/',
|
||||
notes: genNotes('ko-kr'),
|
||||
})
|
||||
@@ -1,8 +0,0 @@
|
||||
import { defineNotesConfig } from 'vuepress-theme-plume'
|
||||
import { genNotes } from './genSidebar'
|
||||
|
||||
export const zhcnNotes = defineNotesConfig({
|
||||
dir: 'zh-cn',
|
||||
link: '/zh-cn/',
|
||||
notes: genNotes('zh-cn'),
|
||||
})
|
||||
@@ -1,8 +0,0 @@
|
||||
import { defineNotesConfig } from 'vuepress-theme-plume'
|
||||
import { genNotes } from './genSidebar'
|
||||
|
||||
export const zhtwNotes = defineNotesConfig({
|
||||
dir: 'zh-tw',
|
||||
link: '/zh-tw/',
|
||||
notes: genNotes('zh-tw'),
|
||||
})
|
||||
@@ -1,6 +1,5 @@
|
||||
import { defineThemeConfig } from 'vuepress-theme-plume'
|
||||
import { zhcnNavbar, zhtwNavbar, enusNavbar, jajpNavbar, kokrNavbar } from './navbar'
|
||||
import { zhcnNotes, zhtwNotes, enusNotes, jajpNotes, kokrNotes } from './notes'
|
||||
import { genThemeLocales } from './navigation/genLocales'
|
||||
|
||||
export default defineThemeConfig({
|
||||
logo: '/images/maa-logo_512x512.png',
|
||||
@@ -25,28 +24,7 @@ export default defineThemeConfig({
|
||||
|
||||
footer: false,
|
||||
|
||||
locales: {
|
||||
'/zh-cn/': {
|
||||
navbar: zhcnNavbar,
|
||||
notes: zhcnNotes,
|
||||
},
|
||||
'/zh-tw/': {
|
||||
navbar: zhtwNavbar,
|
||||
notes: zhtwNotes,
|
||||
},
|
||||
'/en-us/': {
|
||||
navbar: enusNavbar,
|
||||
notes: enusNotes,
|
||||
},
|
||||
'/ja-jp/': {
|
||||
navbar: jajpNavbar,
|
||||
notes: jajpNotes,
|
||||
},
|
||||
'/ko-kr/': {
|
||||
navbar: kokrNavbar,
|
||||
notes: kokrNotes,
|
||||
},
|
||||
},
|
||||
locales: genThemeLocales(),
|
||||
|
||||
autoFrontmatter: false,
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 2
|
||||
---
|
||||
|
||||
<Catalog base='/en-us/develop/' />
|
||||
<Redirect to="development" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 1
|
||||
---
|
||||
|
||||
<Catalog base='/en-us/manual/' />
|
||||
<Redirect to="newbie" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 5
|
||||
---
|
||||
|
||||
<Catalog base='/en-us/manual/device/' />
|
||||
<Redirect to="windows" />
|
||||
|
||||
@@ -47,7 +47,7 @@ We cannot provide repair solutions other than reinstalling your system. Please a
|
||||
|
||||
#### Windows N/KN
|
||||
|
||||
For Windows N/KN (European/Korean versions), you also need to install the [Media Feature Pack](https://support.microsoft.com/zh-cn/topic/c1c6fffa-d052-8338-7a79-a4bb980a700a).
|
||||
For Windows N/KN (European/Korean versions), you also need to install the [Media Feature Pack](https://support.microsoft.com/en-us/topic/c1c6fffa-d052-8338-7a79-a4bb980a700a).
|
||||
|
||||
#### Windows 7
|
||||
|
||||
@@ -55,7 +55,7 @@ For Windows N/KN (European/Korean versions), you also need to install the [Media
|
||||
|
||||
For Windows 7, before installing the two runtime libraries mentioned above, check if these patches are installed:
|
||||
|
||||
1. [Windows 7 Service Pack 1](https://support.microsoft.com/zh-cn/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
|
||||
1. [Windows 7 Service Pack 1](https://support.microsoft.com/en-us/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
|
||||
2. SHA-2 code signing patches:
|
||||
- KB4474419: [Download link 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu), [Download link 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
|
||||
- KB4490628: [Download link 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu), [Download link 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 4
|
||||
---
|
||||
|
||||
<Catalog base='/en-us/manual/introduction/' />
|
||||
<Redirect to="startup" />
|
||||
|
||||
@@ -13,7 +13,7 @@ Quick start guide!
|
||||
|
||||
MAA on Windows only supports Windows 10 and 11. For older Windows versions, please refer to the system issues section in [FAQ](./faq.md#system-issues).
|
||||
|
||||
Non-Windows users, please refer to [Emulator and Device Support](./device/windows.md).
|
||||
Non-Windows users, please refer to [Emulator and Device Support](./device/).
|
||||
|
||||
2. Download the correct version
|
||||
|
||||
@@ -31,7 +31,7 @@ Quick start guide!
|
||||
|
||||
5. Confirm emulator support
|
||||
|
||||
Check [Emulator and Device Support](./device/windows.md) to verify the compatibility of your emulator.
|
||||
Check [Emulator and Device Support](./device/) to verify the compatibility of your emulator.
|
||||
|
||||
6. Set the correct emulator resolution
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 3
|
||||
---
|
||||
|
||||
<Catalog base='/en-us/protocol/' />
|
||||
<Redirect to="integration" />
|
||||
|
||||
@@ -72,7 +72,7 @@ See it in action!
|
||||
|
||||
### Feature Introduction
|
||||
|
||||
Please refer to the [User Manual](./manual/newbie.md).
|
||||
Please refer to the [User Manual](./manual/).
|
||||
|
||||
### Support for Overseas Clients
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 2
|
||||
---
|
||||
|
||||
<Catalog base='/ja-jp/develop/' />
|
||||
<Redirect to="development" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 1
|
||||
---
|
||||
|
||||
<Catalog base='/ja-jp/manual/' />
|
||||
<Redirect to="newbie" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 5
|
||||
---
|
||||
|
||||
<Catalog base='/ja-jp/manual/device/' />
|
||||
<Redirect to="windows" />
|
||||
|
||||
@@ -106,7 +106,7 @@ Windows 7 で .NET 8 アプリケーションを実行すると、メモリ使
|
||||
|
||||
関連資料およびリファレンス adbポート:
|
||||
|
||||
- [Bluestacks 5](https://support.bluestacks.com/hc/zh-tw/articles/360061342631-%E5%A6%82%E4%BD%95%E5%B0%87%E6%82%A8%E7%9A%84%E6%87%89%E7%94%A8%E5%BE%9EBlueStacks-4%E8%BD%89%E7%A7%BB%E5%88%B0BlueStacks-5#%E2%80%9C2%E2%80%9D) `5555`
|
||||
- [Bluestacks 5](https://support.bluestacks.com/hc/ja/articles/360061342631-BlueStacks-5-BlueStacks-4%E3%81%8B%E3%82%89%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E7%A7%BB%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95) `5555`
|
||||
- [MuMu Pro](https://mumu.163.com/mac/function/20240126/40028_1134600.html) `16384`
|
||||
- [MuMu](https://mumu.163.com/help/20240807/40912_1073151.html?maa) `16384`
|
||||
- [Nemu](https://bbs.xyaz.cn/forum.php?mod=viewthread&tid=365537) `21503`
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 4
|
||||
---
|
||||
|
||||
<Catalog base='/ja-jp/manual/introduction/' />
|
||||
<Redirect to="startup" />
|
||||
|
||||
@@ -11,7 +11,7 @@ icon: ri:guide-fill
|
||||
|
||||
MAAはWindows 10 / 11 のみサポートしています。それ以前のバージョンのWIndowsについては[よくある質問](./faq.md#システムの問題)を確認してください。
|
||||
|
||||
Windows 以外のユーザーは[エミュレーターおよびデバイスのサポート](./device/windows.md)をご覧ください。
|
||||
Windows 以外のユーザーは[エミュレーターおよびデバイスのサポート](./device/)をご覧ください。
|
||||
|
||||
2. 環境にあったバージョンのダウンロード
|
||||
|
||||
@@ -27,7 +27,7 @@ icon: ri:guide-fill
|
||||
|
||||
5. エミュレータのサポートを確認
|
||||
|
||||
[エミュレータのサポート](./device/windows.md)をクリックして、使用しているエミュレータのサポートを確認してください。
|
||||
[エミュレータのサポート](./device)をクリックして、使用しているエミュレータのサポートを確認してください。
|
||||
|
||||
6. エミュレータの解像度を正しく設定する
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 3
|
||||
---
|
||||
|
||||
<Catalog base='/ja-jp/protocol/' />
|
||||
<Redirect to="integration" />
|
||||
|
||||
@@ -64,7 +64,7 @@ UIを見れば使い方もすぐ分かる!
|
||||
|
||||
### 機能紹介
|
||||
|
||||
[ユーザーマニュアル](./manual/newbie.md)をご参照ください。
|
||||
[ユーザーマニュアル](./manual/)をご参照ください。
|
||||
|
||||
### サーバーに応じてサポートされる機能
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 2
|
||||
---
|
||||
|
||||
<Catalog base='/ko-kr/develop/' />
|
||||
<Redirect to="development" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 1
|
||||
---
|
||||
|
||||
<Catalog base='/ko-kr/manual/' />
|
||||
<Redirect to="newbie" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 5
|
||||
---
|
||||
|
||||
<Catalog base='/ko-kr/manual/device/' />
|
||||
<Redirect to="windows" />
|
||||
|
||||
@@ -47,7 +47,7 @@ Windows 8/8.1/10/11 N/KN(유럽/한국) 버전을 사용하는 경우, [미디
|
||||
|
||||
Windows 7의 경우, 위에서 언급한 두 개의 런타임 라이브러리를 설치하기 전에 다음 패치가 설치되어 있는지 확인해야 합니다:
|
||||
|
||||
1. [Windows 7 Service Pack 1](https://support.microsoft.com/zh-cn/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
|
||||
1. [Windows 7 Service Pack 1](https://support.microsoft.com/ko-kr/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
|
||||
2. SHA-2 코드 서명 패치:
|
||||
- KB4474419:[다운로드 링크 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)、[다운로드 링크 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
|
||||
- KB4490628:[다운로드 링크 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)、[다운로드 링크 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 4
|
||||
---
|
||||
|
||||
<Catalog base='/ko-kr/manual/introduction/' />
|
||||
<Redirect to="startup" />
|
||||
|
||||
@@ -13,7 +13,7 @@ icon: ri:guide-fill
|
||||
|
||||
MAA 는 Windows 10/11만 지원합니다. 이전 버전의 Windows를 사용하는 경우 [FAQ](./faq.md#가능성2:런타임문제)를 참조하세요.
|
||||
|
||||
Windows 사용자가 아닌 경우 [에뮬레이터 및 장치 지원](./device/windows.md)을 참조하십시오.
|
||||
Windows 사용자가 아닌 경우 [에뮬레이터 및 장치 지원](./device/)을 참조하십시오.
|
||||
|
||||
2. 알맞는 버전 다운로드
|
||||
|
||||
@@ -31,7 +31,7 @@ icon: ri:guide-fill
|
||||
|
||||
5. 에뮬레이터 지원 확인
|
||||
|
||||
[에뮬레이터 및 지원 장치](./device/windows.md)를 참조하여 사용 중인 에뮬레이터가 지원되는지 확인하세요.
|
||||
[에뮬레이터 및 지원 장치](./device/)를 참조하여 사용 중인 에뮬레이터가 지원되는지 확인하세요.
|
||||
|
||||
6. 에뮬레이터 해상도 설정
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 3
|
||||
---
|
||||
|
||||
<Catalog base='/ko-kr/protocol/' />
|
||||
<Redirect to="integration" />
|
||||
|
||||
@@ -74,7 +74,7 @@ MAA는 MAA Assistant Arknights의 약자입니다
|
||||
|
||||
### 기능 소개
|
||||
|
||||
[사용자 매뉴얼](./manual/newbie.md)을 참조하세요.
|
||||
[사용자 매뉴얼](./manual/)을 참조하세요.
|
||||
|
||||
### 해외 서버 지원
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 2
|
||||
---
|
||||
|
||||
<Catalog base='/zh-cn/develop/' />
|
||||
<Redirect to="development" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 1
|
||||
---
|
||||
|
||||
<Catalog base='/zh-cn/manual/' />
|
||||
<Redirect to="newbie" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 5
|
||||
---
|
||||
|
||||
<Catalog base='/zh-cn/manual/device/' />
|
||||
<Redirect to="windows" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 4
|
||||
---
|
||||
|
||||
<Catalog base='/zh-cn/manual/introduction/' />
|
||||
<Redirect to="startup" />
|
||||
|
||||
@@ -13,7 +13,7 @@ icon: ri:guide-fill
|
||||
|
||||
MAA 在 Windows 下仅支持 10 和 11,旧版 Windows 请参阅[常见问题](./faq.md#系统问题)中的系统问题部分。
|
||||
|
||||
非 Windows 用户请参阅[模拟器及设备支持](./device/windows.md)。
|
||||
非 Windows 用户请参阅[模拟器及设备支持](./device/)。
|
||||
|
||||
2. 下载正确的版本
|
||||
|
||||
@@ -31,7 +31,7 @@ icon: ri:guide-fill
|
||||
|
||||
5. 确认模拟器支持
|
||||
|
||||
查阅[模拟器和设备支持](./device/windows.md),确认正在使用的模拟器支持情况。
|
||||
查阅[模拟器和设备支持](./device/),确认正在使用的模拟器支持情况。
|
||||
|
||||
6. 正确设置模拟器分辨率
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 3
|
||||
---
|
||||
|
||||
<Catalog base='/zh-cn/protocol/' />
|
||||
<Redirect to="integration" />
|
||||
|
||||
@@ -72,7 +72,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
### 功能介绍
|
||||
|
||||
请参阅 [用户手册](./manual/newbie.md)。
|
||||
请参阅 [用户手册](./manual/)。
|
||||
|
||||
### 外服支持
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 2
|
||||
---
|
||||
|
||||
<Catalog base='/zh-tw/develop/' />
|
||||
<Redirect to="development" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 1
|
||||
---
|
||||
|
||||
<Catalog base='/zh-tw/manual/' />
|
||||
<Redirect to="newbie" />
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 5
|
||||
---
|
||||
|
||||
<Catalog base='/zh-tw/manual/device/' />
|
||||
<Redirect to="windows" />
|
||||
|
||||
@@ -55,7 +55,7 @@ winget install "Microsoft.VCRedist.2015+.x64" --override "/repair /passive /nore
|
||||
|
||||
對於 Windows 7,在安裝上文提到的兩個運行庫之前,還需檢查以下補丁是否已安裝:
|
||||
|
||||
1. [Windows 7 Service Pack 1](https://support.microsoft.com/zh-cn/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
|
||||
1. [Windows 7 Service Pack 1](https://support.microsoft.com/zh-tw/windows/b3da2c0f-cdb6-0572-8596-bab972897f61)
|
||||
2. SHA-2 代碼簽名修補程式:
|
||||
- KB4474419:[下載連結 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)、[下載連結 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu)
|
||||
- KB4490628:[下載連結 1](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)、[下載連結 2](http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu)
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 4
|
||||
---
|
||||
|
||||
<Catalog base='/zh-tw/manual/introduction/' />
|
||||
<Redirect to="startup" />
|
||||
|
||||
@@ -13,7 +13,7 @@ icon: ri:guide-fill
|
||||
|
||||
MAA 僅支援 Windows 10 / 11,舊版 Windows 請參考[常見問題](./faq.md#系統問題)。
|
||||
|
||||
非 Windows 用戶請參閱[模擬器及設備支援](./device/windows.md)。
|
||||
非 Windows 用戶請參閱[模擬器及設備支援](./device/)。
|
||||
|
||||
2. 下載正確的版本
|
||||
|
||||
@@ -31,7 +31,7 @@ icon: ri:guide-fill
|
||||
|
||||
5. 確認模擬器支援
|
||||
|
||||
查閱[模擬器和設備支援](./device/windows.md),確認正在使用的模擬器支援情況。
|
||||
查閱[模擬器和設備支援](./device/),確認正在使用的模擬器支援情況。
|
||||
|
||||
6. 正確設置模擬器解析度
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ dir:
|
||||
order: 3
|
||||
---
|
||||
|
||||
<Catalog base='/zh-tw/protocol/' />
|
||||
<Redirect to="integration" />
|
||||
|
||||
@@ -73,7 +73,7 @@ MAA 的意思是 MAA Assistant Arknights
|
||||
|
||||
### 功能介紹
|
||||
|
||||
請參閱 [用戶手冊](./manual/newbie.md)。
|
||||
請參閱 [用戶手冊](./manual/)。
|
||||
|
||||
### 外服支援
|
||||
|
||||
|
||||
Reference in New Issue
Block a user