Added new documentations files

This commit is contained in:
2022-09-17 14:46:07 +08:00
parent dbd5a74a5c
commit 237d5cbed0
99 changed files with 20686 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
import { defaultTheme } from 'vuepress';
import { shikiPlugin } from '@vuepress/plugin-shiki';
import { searchPlugin } from '@vuepress/plugin-search';
import { navBarItems, sideBarItems, configs } from './configs/template';
export default {
dest: configs.dev.dest,
port: configs.dev.port,
base: configs.website.base,
head: [['link', { rel: 'icon', href: configs.website.icon }]],
title: configs.website.title,
description: configs.website.locales['/en/'].description,
locales: configs.website.locales,
theme: defaultTheme({
logo: configs.website.icon,
repo: configs.github.repo,
docsRepo: configs.github.repo,
docsBranch: configs.github.branch,
docsDir: configs.github.dir,
editLinkPattern: ':repo/edit/:branch/:path',
sidebar: sideBarItems,
sidebarDepth: 2,
locales: {
'/en/': {
navbar: navBarItems['/en/'],
selectLanguageText: 'English (US)',
selectLanguageName: 'English',
editLinkText: 'Edit this page on Github',
tip: 'Tips',
warning: 'Notice',
danger: 'Pay Attention',
},
'/zh-cn/': {
navbar: navBarItems['/zh-cn/'],
selectLanguageText: '简体中文 (CN)',
selectLanguageName: '简体中文',
editLinkText: '在 Github 上编辑此页',
notFound: ['这里什么都没有', '我们怎么到这来了?', '这是一个 404 页面', '看起来我们进入了错误的链接'],
backToHome: '回到首页',
contributorsText: '贡献者',
lastUpdatedText: '上次更新',
tip: '小提示',
warning: '注意',
danger: '特别注意',
openInNewWindow: '在新窗口中打开',
toggleColorMode: '切换颜色模式'
}
},
}),
plugins: [
shikiPlugin({ theme: 'github-dark-dimmed' }),
searchPlugin({
isSearchable: (page) => page.path !== '/',
locales: {
'/en/': { placeholder: 'Search' },
'/zh-cn/': { placeholder: '搜索' }
}
})
]
};

View File

@@ -0,0 +1,271 @@
import { i18n } from './utils';
const baseApiPath = '/api/public/com/highcapable/yukihookapi/';
const navigationLinks = {
start: [
'/guide/home',
'/guide/knowledge',
'/guide/quick-start',
'/guide/example',
'/guide/move-to-new-api'
],
config: [
'/config/api-example',
'/config/api-exception',
'/config/xposed-using',
'/config/api-using',
'/config/r8-proguard'
],
tools: '/tools/yukihookapi-projectbuilder',
apiDocs: [
'/api/home',
'/api/public/',
'/api/special-features/'
],
publicApi: [
baseApiPath + 'YukiHookAPI',
baseApiPath + 'hook/param/PackageParam',
baseApiPath + 'hook/param/HookParam',
baseApiPath + 'annotation/xposed/InjectYukiHookWithXposed',
baseApiPath + 'hook/xposed/proxy/IYukiHookXposedInit',
baseApiPath + 'hook/xposed/prefs/YukiHookModulePrefs',
baseApiPath + 'hook/xposed/prefs/ui/ModulePreferenceFragment',
baseApiPath + 'hook/xposed/prefs/data/PrefsData',
baseApiPath + 'hook/xposed/channel/YukiHookDataChannel',
baseApiPath + 'hook/xposed/channel/data/ChannelData',
baseApiPath + 'hook/xposed/application/ModuleApplication',
baseApiPath + 'hook/xposed/parasitic/activity/base/ModuleAppActivity',
baseApiPath + 'hook/xposed/parasitic/activity/base/ModuleAppCompatActivity',
baseApiPath + 'hook/xposed/parasitic/context/wrapper/ModuleContextThemeWrapper',
baseApiPath + 'hook/xposed/bridge/dummy/YukiModuleResources',
baseApiPath + 'hook/xposed/bridge/dummy/YukiResources',
baseApiPath + 'hook/xposed/bridge/dummy/YukiResForwarder',
baseApiPath + 'hook/xposed/bridge/event/YukiXposedEvent',
baseApiPath + 'hook/type/android/ComponentTypeFactory',
baseApiPath + 'hook/type/android/GraphicsTypeFactory',
baseApiPath + 'hook/type/android/ViewTypeFactory',
baseApiPath + 'hook/type/java/VariableTypeFactory',
baseApiPath + 'hook/type/defined/DefinedTypeFactory',
baseApiPath + 'hook/log/LoggerFactory',
baseApiPath + 'hook/factory/ReflectionFactory',
baseApiPath + 'hook/factory/YukiHookFactory',
baseApiPath + 'hook/entity/YukiBaseHooker',
baseApiPath + 'hook/core/YukiMemberHookCreator',
baseApiPath + 'hook/core/YukiResourcesHookCreator',
baseApiPath + 'hook/core/finder/members/MethodFinder',
baseApiPath + 'hook/core/finder/members/ConstructorFinder',
baseApiPath + 'hook/core/finder/members/FieldFinder',
baseApiPath + 'hook/core/finder/base/BaseFinder',
baseApiPath + 'hook/core/finder/base/rules/CountRules',
baseApiPath + 'hook/core/finder/base/rules/ModifierRules',
baseApiPath + 'hook/core/finder/base/rules/NameRules',
baseApiPath + 'hook/bean/HookClass',
baseApiPath + 'hook/bean/VariousClass',
baseApiPath + 'hook/bean/CurrentClass',
baseApiPath + 'hook/bean/HookResources'
],
specialFeature: [
'/api/special-features/reflection',
'/api/special-features/logger',
'/api/special-features/xposed-prefs',
'/api/special-features/xposed-channel',
'/api/special-features/host-lifecycle',
'/api/special-features/host-inject'
],
about: [
'/about/changelog',
'/about/future',
'/about/contacts',
'/about/about'
]
};
export const configs = {
dev: {
dest: '../docs/',
port: 9000
},
website: {
base: '/YukiHookAPI/',
icon: '/images/logo.png',
title: 'Yuki Hook API',
locales: {
'/en/': {
lang: 'en-US',
description: 'An efficient Kotlin version of the Xposed Hook API'
},
'/zh-cn/': {
lang: 'zh-CN',
description: '一个使用 Kotlin 重构的轻量、高效、稳定的 Xposed Hook API'
}
}
},
github: {
repo: 'https://github.com/fankes/YukiHookAPI',
branch: 'master',
dir: 'docs/src'
}
};
export const navBarItems = {
'/en/': [{
text: 'Navigation',
children: [{
text: 'Get Started',
children: [
{ text: 'Introduce', link: i18n.string(navigationLinks.start[0], 'en') },
{ text: 'Basic Knowledge', link: i18n.string(navigationLinks.start[1], 'en') },
{ text: 'Quick Start', link: i18n.string(navigationLinks.start[2], 'en') },
{ text: 'Usage Example', link: i18n.string(navigationLinks.start[3], 'en') },
{ text: 'Migrate from Xposed API', link: i18n.string(navigationLinks.start[4], 'en') }
]
}, {
text: 'Configs',
children: [
{ text: 'API Basic Configs', link: i18n.string(navigationLinks.config[0], 'en') },
{ text: 'API Exception Handling', link: i18n.string(navigationLinks.config[1], 'en') },
{ text: 'Use as Xposed Module Configs', link: i18n.string(navigationLinks.config[2], 'en') },
{ text: 'Use as Hook API Configs', link: i18n.string(navigationLinks.config[3], 'en') },
{ text: 'R8 & Proguard Obfuscate', link: i18n.string(navigationLinks.config[4], 'en') }
]
}, {
text: 'Tools',
children: [
{ text: 'YukiHookAPI Project Builder', link: i18n.string(navigationLinks.tools, 'en') }
]
}, {
text: 'API Document',
children: [{ text: 'Document Introduction', link: i18n.string(navigationLinks.apiDocs[0], 'en') }, {
text: 'Public API',
link: i18n.string(navigationLinks.publicApi[0], 'en'),
activeMatch: i18n.string(navigationLinks.apiDocs[1], 'en')
}, {
text: 'Special Features',
link: i18n.string(navigationLinks.specialFeature[0], 'en'),
activeMatch: i18n.string(navigationLinks.apiDocs[2], 'en')
}]
}, {
text: 'About',
children: [
{ text: 'Changelog', link: i18n.string(navigationLinks.about[0], 'en') },
{ text: 'Looking for future', link: i18n.string(navigationLinks.about[1], 'en') },
{ text: 'Contact Us', link: i18n.string(navigationLinks.about[2], 'en') },
{ text: 'About this document', link: i18n.string(navigationLinks.about[3], 'en') }
]
}]
}, {
text: 'Contact Us',
link: i18n.string(navigationLinks.about[2], 'en')
}],
'/zh-cn/': [{
text: '导航',
children: [{
text: '入门',
children: [
{ text: '介绍', link: i18n.string(navigationLinks.start[0], 'zh-cn') },
{ text: '基础知识', link: i18n.string(navigationLinks.start[1], 'zh-cn') },
{ text: '快速开始', link: i18n.string(navigationLinks.start[2], 'zh-cn') },
{ text: '用法示例', link: i18n.string(navigationLinks.start[3], 'zh-cn') },
{ text: '从 Xposed API 迁移', link: i18n.string(navigationLinks.start[4], 'zh-cn') }
]
}, {
text: '配置',
children: [
{ text: 'API 基本配置', link: i18n.string(navigationLinks.config[0], 'zh-cn') },
{ text: 'API 异常处理', link: i18n.string(navigationLinks.config[1], 'zh-cn') },
{ text: '作为 Xposed 模块使用的相关配置', link: i18n.string(navigationLinks.config[2], 'zh-cn') },
{ text: '作为 Hook API 使用的相关配置', link: i18n.string(navigationLinks.config[3], 'zh-cn') },
{ text: 'R8 与 Proguard 混淆', link: i18n.string(navigationLinks.config[4], 'zh-cn') }
]
}, {
text: '工具',
children: [
{ text: 'YukiHookAPI 构建工具', link: i18n.string(navigationLinks.tools, 'zh-cn') }
]
}, {
text: 'API 文档',
children: [{ text: '文档介绍', link: i18n.string(navigationLinks.apiDocs[0], 'zh-cn') }, {
text: 'Public API',
link: i18n.string(navigationLinks.publicApi[0], 'zh-cn'),
activeMatch: i18n.string(navigationLinks.apiDocs[1], 'zh-cn')
}, {
text: '特色功能',
link: i18n.string(navigationLinks.specialFeature[0], 'zh-cn'),
activeMatch: i18n.string(navigationLinks.apiDocs[2], 'zh-cn')
}]
}, {
text: '关于',
children: [
{ text: '更新日志', link: i18n.string(navigationLinks.about[0], 'zh-cn') },
{ text: '展望未来', link: i18n.string(navigationLinks.about[1], 'zh-cn') },
{ text: '联系我们', link: i18n.string(navigationLinks.about[2], 'zh-cn') },
{ text: '关于此文档', link: i18n.string(navigationLinks.about[3], 'zh-cn') }
]
}]
}, {
text: '联系我们',
link: i18n.string(navigationLinks.about[2], 'zh-cn')
}]
};
export const sideBarItems = {
'/en/': [{
text: 'Get Started',
collapsible: true,
children: i18n.array(navigationLinks.start, 'en')
}, {
text: 'Configs',
collapsible: true,
children: i18n.array(navigationLinks.config, 'en')
}, {
text: 'Tools',
collapsible: true,
children: [i18n.string(navigationLinks.tools, 'en')]
}, {
text: 'API Document',
collapsible: true,
children: [i18n.string(navigationLinks.apiDocs[0], 'en'), {
text: 'Public API' + i18n.space,
collapsible: true,
children: i18n.array(navigationLinks.publicApi, 'en')
}, {
text: 'Special Features' + i18n.space,
collapsible: true,
children: i18n.array(navigationLinks.specialFeature, 'en')
}]
}, {
text: 'About',
collapsible: true,
children: i18n.array(navigationLinks.about, 'en')
}],
'/zh-cn/': [{
text: '入门',
collapsible: true,
children: i18n.array(navigationLinks.start, 'zh-cn')
}, {
text: '配置',
collapsible: true,
children: i18n.array(navigationLinks.config, 'zh-cn')
}, {
text: '工具',
collapsible: true,
children: [i18n.string(navigationLinks.tools, 'zh-cn')]
}, {
text: 'API 文档',
collapsible: true,
children: [i18n.string(navigationLinks.apiDocs[0], 'zh-cn'), {
text: 'Public API' + i18n.space,
collapsible: true,
children: i18n.array(navigationLinks.publicApi, 'zh-cn')
}, {
text: '特色功能' + i18n.space,
collapsible: true,
children: i18n.array(navigationLinks.specialFeature, 'zh-cn')
}]
}, {
text: '关于',
collapsible: true,
children: i18n.array(navigationLinks.about, 'zh-cn')
}]
};

View File

@@ -0,0 +1,13 @@
export const i18n = {
space: ' ',
string: (content: string, locale: string) => {
return '/' + locale + content;
},
array: (contents: string[], locale: string) => {
const newContents: string[] = [];
contents.forEach((content) => {
newContents.push(i18n.string(content, locale));
});
return newContents;
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 667 KiB

View File

@@ -0,0 +1,171 @@
$primary-color: rgb(237, 150, 73);
$accent-color: rgb(244, 200, 161);
$content-width: 965px;
$scroll-bar-width: 8px;
$scroll-bar-height: 6.5px;
$scroll-bar-border-radius: 50px;
$scroll-bar-track-color-code: rgb(86, 96, 110);
$scroll-bar-thumb-hover-color-code: rgb(121, 135, 155);
:root {
--c-brand: #{$primary-color};
--c-brand-light: #{$accent-color};
--content-width: #{$content-width};
}
code {
padding: 3px 5px 3px 5px;
border-radius: 5px;
}
.badge {
margin-bottom: 5px;
}
.custom-container {
border-radius: 5px;
}
.sidebar-item {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.language-text {
::-webkit-scrollbar-track {
background: #{$scroll-bar-track-color-code};
border-radius: #{$scroll-bar-border-radius};
}
::-webkit-scrollbar-thumb:hover {
background: #{$scroll-bar-thumb-hover-color-code};
}
}
.language-kotlin {
::-webkit-scrollbar-track {
background: #{$scroll-bar-track-color-code};
border-radius: #{$scroll-bar-border-radius};
}
::-webkit-scrollbar-thumb:hover {
background: #{$scroll-bar-thumb-hover-color-code};
}
}
.language-java {
::-webkit-scrollbar-track {
background: #{$scroll-bar-track-color-code};
border-radius: #{$scroll-bar-border-radius};
}
::-webkit-scrollbar-thumb:hover {
background: #{$scroll-bar-thumb-hover-color-code};
}
}
.language-groovy {
::-webkit-scrollbar-track {
background: #{$scroll-bar-track-color-code};
border-radius: #{$scroll-bar-border-radius};
}
::-webkit-scrollbar-thumb:hover {
background: #{$scroll-bar-thumb-hover-color-code};
}
}
.language-xml {
::-webkit-scrollbar-track {
background: #{$scroll-bar-track-color-code};
border-radius: #{$scroll-bar-border-radius};
}
::-webkit-scrollbar-thumb:hover {
background: #{$scroll-bar-thumb-hover-color-code};
}
}
.code-page {
h1 {
font-size: 24pt;
}
h2 {
font-size: 18pt;
}
h3 {
font-size: 15pt;
}
h4 {
font-size: 12pt;
}
h5 {
font-size: 9.6pt;
}
h6 {
font-size: 8.4pt;
}
.symbol {
color: rgb(142, 155, 168);
}
.deprecated {
color: rgb(142, 155, 168);
text-decoration: line-through;
}
}
html {
scroll-behavior: smooth;
::-webkit-scrollbar {
width: #{$scroll-bar-width};
height: #{$scroll-bar-height};
}
::-webkit-scrollbar-track {
background: rgb(234, 236, 239);
}
::-webkit-scrollbar-thumb {
background: rgb(189, 189, 189);
border-radius: #{$scroll-bar-border-radius};
}
::-webkit-scrollbar-thumb:hover {
background: rgb(133, 133, 133);
border-radius: #{$scroll-bar-border-radius};
}
}
html.dark {
--c-brand: #{$primary-color};
--c-brand-light: #{$accent-color};
--content-width: #{$content-width};
::-webkit-scrollbar {
width: #{$scroll-bar-width};
height: #{$scroll-bar-height};
}
::-webkit-scrollbar-track {
background: rgb(41, 46, 53);
}
::-webkit-scrollbar-thumb {
background: rgb(65, 72, 83);
border-radius: #{$scroll-bar-border-radius};
}
::-webkit-scrollbar-thumb:hover {
background: rgb(56, 62, 72);
border-radius: #{$scroll-bar-border-radius};
}
}