1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

[docs feat]vuepress 主题升级

This commit is contained in:
guide 2022-11-15 20:25:47 +08:00
parent e19fbf4efc
commit c967c44b8b
8 changed files with 86 additions and 131 deletions

View File

@ -1,59 +1,30 @@
const { defineHopeConfig } = require("vuepress-theme-hope"); import { defineUserConfig } from "vuepress";
import themeConfig from "./themeConfig"; import { themeConfig } from "./themeConfig";
import { searchPlugin } from "@vuepress/plugin-search";
module.exports = defineHopeConfig({ export default defineUserConfig({
port: "8080",
title: "JavaGuide",
description:
"「Java学习指北+Java面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,复习 Java 知识点,首选 JavaGuide ",
//指定 vuepress build 的输出目录
dest: "./dist", dest: "./dist",
head: [ theme: themeConfig,
// meta shouldPrefetch: false,
["meta", { name: "robots", content: "all" }],
["meta", { name: "author", content: "Guide" }],
[
"meta",
{
"http-equiv": "Cache-Control",
content: "no-cache, no-store, must-revalidate",
},
],
["meta", { "http-equiv": "Pragma", content: "no-cache" }],
["meta", { "http-equiv": "Expires", content: "0" }],
[
"meta",
{
name: "keywords",
content:
"Java基础, 多线程, JVM, 虚拟机, 数据库, MySQL, Spring, Redis, MyBatis, 系统设计, 分布式, RPC, 高可用, 高并发",
},
],
["meta", { name: "apple-mobile-web-app-capable", content: "yes" }],
// 添加百度统计
[
"script",
{},
`var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?5dd2e8c97962d57b7b8fea1737c01743";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();`,
],
[
"link",
{
rel: "stylesheet",
href: "/iconfont/iconfont.css",
},
],
],
locales: { locales: {
"/": { "/": {
lang: "zh-CN", lang: "zh-CN",
}, }
}, },
themeConfig, plugins: [
searchPlugin({
// https://v2.vuepress.vuejs.org/zh/reference/plugin/search.html
// 排除首页
isSearchable: (page) => page.path !== "/",
maxSuggestions: 10,
hotKeys: ["s", "/"],
// 用于在页面的搜索索引中添加额外字段
getExtraFields: () => [],
locales: {
"/": {
placeholder: "搜索",
},
},
}),
],
}); });

View File

@ -1,6 +1,6 @@
import { defineNavbarConfig } from "vuepress-theme-hope"; import { navbar } from "vuepress-theme-hope";
export const navbarConfig = defineNavbarConfig([ export const navbarConfig = navbar([
{ text: "面试指南", icon: "java", link: "/home.md" }, { text: "面试指南", icon: "java", link: "/home.md" },
{ text: "开源项目", icon: "github", link: "/open-source-project/" }, { text: "开源项目", icon: "github", link: "/open-source-project/" },
{ text: "技术书籍", icon: "book", link: "/books/" }, { text: "技术书籍", icon: "book", link: "/books/" },

View File

@ -1,10 +1,10 @@
import { defineSidebarConfig } from "vuepress-theme-hope"; import { sidebar } from "vuepress-theme-hope";
import { highQualityTechnicalArticles } from "./sidebar/high-quality-technical-articles"; import { highQualityTechnicalArticles } from "./sidebar/high-quality-technical-articles";
import { aboutTheAuthor } from "./sidebar/about-the-author"; import { aboutTheAuthor } from "./sidebar/about-the-author";
import { books } from "./sidebar/books"; import { books } from "./sidebar/books";
import { openSourceProject } from "./sidebar/open-source-project"; import { openSourceProject } from "./sidebar/open-source-project";
export const sidebarConfig = defineSidebarConfig({ export const sidebarConfig = sidebar({
// 应该把更精确的路径放置在前边 // 应该把更精确的路径放置在前边
"/open-source-project/": openSourceProject, "/open-source-project/": openSourceProject,
"/books/": books, "/books/": books,
@ -21,8 +21,8 @@ export const sidebarConfig = defineSidebarConfig({
{ {
text: "面试准备", text: "面试准备",
icon: "interview", icon: "interview",
collapsible: true,
prefix: "interview-preparation/", prefix: "interview-preparation/",
collapsable: true,
children: [ children: [
"teach-you-how-to-prepare-for-the-interview-hand-in-hand", "teach-you-how-to-prepare-for-the-interview-hand-in-hand",
"project-experience-guide", "project-experience-guide",
@ -33,14 +33,13 @@ export const sidebarConfig = defineSidebarConfig({
{ {
text: "Java", text: "Java",
icon: "java", icon: "java",
collapsible: true,
prefix: "java/", prefix: "java/",
collapsable: true,
children: [ children: [
{ {
text: "基础", text: "基础",
prefix: "basis/", prefix: "basis/",
icon: "basic", icon: "basic",
collapsable: true,
children: [ children: [
"java-basic-questions-01", "java-basic-questions-01",
"java-basic-questions-02", "java-basic-questions-02",
@ -48,7 +47,7 @@ export const sidebarConfig = defineSidebarConfig({
{ {
text: "重要知识点", text: "重要知识点",
icon: "star", icon: "star",
collapsable: true, collapsible: true,
children: [ children: [
"why-there-only-value-passing-in-java", "why-there-only-value-passing-in-java",
"serialization", "serialization",
@ -67,15 +66,14 @@ export const sidebarConfig = defineSidebarConfig({
text: "集合", text: "集合",
prefix: "collection/", prefix: "collection/",
icon: "container", icon: "container",
collapsable: true,
children: [ children: [
"java-collection-questions-01", "java-collection-questions-01",
"java-collection-questions-02", "java-collection-questions-02",
"java-collection-precautions-for-use", "java-collection-precautions-for-use",
{ {
text: "源码分析", text: "源码分析",
collapsable: true,
icon: "star", icon: "star",
collapsible: true,
children: [ children: [
"arraylist-source-code", "arraylist-source-code",
"hashmap-source-code", "hashmap-source-code",
@ -89,14 +87,12 @@ export const sidebarConfig = defineSidebarConfig({
text: "IO", text: "IO",
prefix: "io/", prefix: "io/",
icon: "code", icon: "code",
collapsable: true,
children: ["io-basis", "io-design-patterns", "io-model"], children: ["io-basis", "io-design-patterns", "io-model"],
}, },
{ {
text: "并发编程", text: "并发编程",
prefix: "concurrent/", prefix: "concurrent/",
icon: "et-performance", icon: "et-performance",
collapsable: true,
children: [ children: [
"java-concurrent-questions-01", "java-concurrent-questions-01",
"java-concurrent-questions-02", "java-concurrent-questions-02",
@ -104,7 +100,7 @@ export const sidebarConfig = defineSidebarConfig({
{ {
text: "重要知识点", text: "重要知识点",
icon: "star", icon: "star",
collapsable: true, collapsible: true,
children: [ children: [
"jmm", "jmm",
"java-thread-pool-summary", "java-thread-pool-summary",
@ -122,7 +118,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "JVM", text: "JVM",
prefix: "jvm/", prefix: "jvm/",
icon: "virtual_machine", icon: "virtual_machine",
collapsable: true, collapsible: true,
children: [ children: [
"memory-area", "memory-area",
"jvm-garbage-collection", "jvm-garbage-collection",
@ -138,7 +134,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "新特性", text: "新特性",
prefix: "new-features/", prefix: "new-features/",
icon: "featured", icon: "featured",
collapsable: true, collapsible: true,
children: [ children: [
"java8-common-new-features", "java8-common-new-features",
"java8-tutorial-translate", "java8-tutorial-translate",
@ -160,20 +156,20 @@ export const sidebarConfig = defineSidebarConfig({
text: "计算机基础", text: "计算机基础",
icon: "computer", icon: "computer",
prefix: "cs-basics/", prefix: "cs-basics/",
collapsable: true, collapsible: true,
children: [ children: [
{ {
text: "网络", text: "网络",
prefix: "network/", prefix: "network/",
icon: "network", icon: "network",
collapsable: true, collapsible: true,
children: [ children: [
"other-network-questions", "other-network-questions",
"computer-network-xiexiren-summary", "computer-network-xiexiren-summary",
{ {
text: "重要知识点", text: "重要知识点",
icon: "star", icon: "star",
collapsable: true, collapsible: true,
children: [ children: [
"osi&tcp-ip-model", "osi&tcp-ip-model",
"application-layer-protocol", "application-layer-protocol",
@ -191,7 +187,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "操作系统", text: "操作系统",
prefix: "operating-system/", prefix: "operating-system/",
icon: "caozuoxitong", icon: "caozuoxitong",
collapsable: true, collapsible: true,
children: [ children: [
"operating-system-basic-questions-01", "operating-system-basic-questions-01",
"linux-intro", "linux-intro",
@ -202,7 +198,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "数据结构", text: "数据结构",
prefix: "data-structure/", prefix: "data-structure/",
icon: "people-network-full", icon: "people-network-full",
collapsable: true, collapsible: true,
children: [ children: [
"linear-data-structure", "linear-data-structure",
"graph", "graph",
@ -216,7 +212,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "算法", text: "算法",
prefix: "algorithms/", prefix: "algorithms/",
icon: "suanfaku", icon: "suanfaku",
collapsable: true, collapsible: true,
children: [ children: [
"string-algorithm-problems", "string-algorithm-problems",
"linkedlist-algorithm-problems", "linkedlist-algorithm-problems",
@ -230,26 +226,26 @@ export const sidebarConfig = defineSidebarConfig({
text: "数据库", text: "数据库",
icon: "database", icon: "database",
prefix: "database/", prefix: "database/",
collapsable: true, collapsible: true,
children: [ children: [
{ {
text: "基础", text: "基础",
icon: "basic", icon: "basic",
collapsable: true, collapsible: true,
children: ["basis", "character-set"], children: ["basis", "character-set"],
}, },
{ {
text: "MySQL", text: "MySQL",
prefix: "mysql/", prefix: "mysql/",
icon: "mysql", icon: "mysql",
collapsable: true, collapsible: true,
children: [ children: [
"mysql-questions-01", "mysql-questions-01",
"mysql-high-performance-optimization-specification-recommendations", "mysql-high-performance-optimization-specification-recommendations",
{ {
text: "重要知识点", text: "重要知识点",
icon: "star", icon: "star",
collapsable: true, collapsible: true,
children: [ children: [
"mysql-index", "mysql-index",
"mysql-logs", "mysql-logs",
@ -266,7 +262,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "Redis", text: "Redis",
prefix: "redis/", prefix: "redis/",
icon: "redis", icon: "redis",
collapsable: true, collapsible: true,
children: [ children: [
"cache-basics", "cache-basics",
"redis-questions-01", "redis-questions-01",
@ -274,7 +270,7 @@ export const sidebarConfig = defineSidebarConfig({
{ {
text: "重要知识点", text: "重要知识点",
icon: "star", icon: "star",
collapsable: true, collapsible: true,
children: [ children: [
"3-commonly-used-cache-read-and-write-strategies", "3-commonly-used-cache-read-and-write-strategies",
"redis-data-structures-01", "redis-data-structures-01",
@ -291,20 +287,18 @@ export const sidebarConfig = defineSidebarConfig({
text: "开发工具", text: "开发工具",
icon: "tool", icon: "tool",
prefix: "tools/", prefix: "tools/",
collapsable: true, collapsible: true,
children: [ children: [
{ {
text: "Git", text: "Git",
icon: "git", icon: "git",
prefix: "git/", prefix: "git/",
collapsable: true,
children: ["git-intro", "github-tips"], children: ["git-intro", "github-tips"],
}, },
{ {
text: "Docker", text: "Docker",
icon: "docker1", icon: "docker1",
prefix: "docker/", prefix: "docker/",
collapsable: true,
children: ["docker-intro", "docker-in-action"], children: ["docker-intro", "docker-in-action"],
}, },
{ {
@ -318,12 +312,11 @@ export const sidebarConfig = defineSidebarConfig({
text: "常用框架", text: "常用框架",
prefix: "system-design/framework/", prefix: "system-design/framework/",
icon: "framework", icon: "framework",
collapsable: true, collapsible: true,
children: [ children: [
{ {
text: "Spring&Spring Boot", text: "Spring&Spring Boot",
prefix: "spring/", prefix: "spring/",
collapsable: true,
children: [ children: [
"spring-knowledge-and-questions-summary", "spring-knowledge-and-questions-summary",
"springboot-knowledge-and-questions-summary", "springboot-knowledge-and-questions-summary",
@ -331,7 +324,7 @@ export const sidebarConfig = defineSidebarConfig({
{ {
text: "重要知识点", text: "重要知识点",
icon: "star", icon: "star",
collapsable: true, collapsible: true,
children: [ children: [
"spring-transaction", "spring-transaction",
"spring-design-patterns-summary", "spring-design-patterns-summary",
@ -348,7 +341,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "系统设计", text: "系统设计",
icon: "xitongsheji", icon: "xitongsheji",
prefix: "system-design/", prefix: "system-design/",
collapsable: true, collapsible: true,
children: [ children: [
"system-design-questions", "system-design-questions",
"design-pattern", "design-pattern",
@ -356,7 +349,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "基础", text: "基础",
prefix: "basis/", prefix: "basis/",
icon: "basic", icon: "basic",
collapsable: true, collapsible: true,
children: [ children: [
"RESTfulAPI", "RESTfulAPI",
"naming", "naming",
@ -371,7 +364,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "安全", text: "安全",
prefix: "security/", prefix: "security/",
icon: "security-fill", icon: "security-fill",
collapsable: true, collapsible: true,
children: [ children: [
"basis-of-authority-certification", "basis-of-authority-certification",
"jwt-intro", "jwt-intro",
@ -390,12 +383,12 @@ export const sidebarConfig = defineSidebarConfig({
text: "分布式", text: "分布式",
icon: "distributed-network", icon: "distributed-network",
prefix: "distributed-system/", prefix: "distributed-system/",
collapsable: true, collapsible: true,
children: [ children: [
{ {
text: "理论&算法&协议", text: "理论&算法&协议",
prefix: "theorem&algorithm&protocol/", prefix: "theorem&algorithm&protocol/",
collapsable: true, collapsible: true,
children: ["cap&base-theorem", "paxos-algorithm", "raft-algorithm"], children: ["cap&base-theorem", "paxos-algorithm", "raft-algorithm"],
}, },
"api-gateway", "api-gateway",
@ -406,13 +399,13 @@ export const sidebarConfig = defineSidebarConfig({
{ {
text: "RPC远程调用详解", text: "RPC远程调用详解",
prefix: "rpc/", prefix: "rpc/",
collapsable: true, collapsible: true,
children: ["rpc-intro", "dubbo"], children: ["rpc-intro", "dubbo"],
}, },
{ {
text: "ZooKeeper 详解", text: "ZooKeeper 详解",
prefix: "distributed-process-coordination/", prefix: "distributed-process-coordination/",
collapsable: true, collapsible: true,
children: [ children: [
"zookeeper/zookeeper-intro", "zookeeper/zookeeper-intro",
"zookeeper/zookeeper-plus", "zookeeper/zookeeper-plus",
@ -425,7 +418,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "高性能", text: "高性能",
icon: "et-performance", icon: "et-performance",
prefix: "high-performance/", prefix: "high-performance/",
collapsable: true, collapsible: true,
children: [ children: [
"read-and-write-separation-and-library-subtable", "read-and-write-separation-and-library-subtable",
"load-balancing", "load-balancing",
@ -435,7 +428,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "消息队列", text: "消息队列",
prefix: "message-queue/", prefix: "message-queue/",
icon: "MQ", icon: "MQ",
collapsable: true, collapsible: true,
children: [ children: [
"message-queue", "message-queue",
"kafka-questions-01", "kafka-questions-01",
@ -451,7 +444,7 @@ export const sidebarConfig = defineSidebarConfig({
text: "高可用", text: "高可用",
icon: "highavailable", icon: "highavailable",
prefix: "high-availability/", prefix: "high-availability/",
collapsable: true, collapsible: true,
children: [ children: [
"high-availability-system-design", "high-availability-system-design",
"redundancy", "redundancy",

View File

@ -1,8 +1,10 @@
import { defineThemeConfig } from "vuepress-theme-hope"; import { hopeTheme } from "vuepress-theme-hope";
import { searchPlugin } from "@vuepress/plugin-search";
import { navbarConfig } from "./navbar"; import { navbarConfig } from "./navbar";
import { sidebarConfig } from "./sidebar"; import { sidebarConfig } from "./sidebar";
export default defineThemeConfig({ export const themeConfig = hopeTheme({
logo: "/logo.png", logo: "/logo.png",
hostname: "https://javaguide.cn/", hostname: "https://javaguide.cn/",
author: { author: {
@ -11,11 +13,19 @@ export default defineThemeConfig({
}, },
repo: "https://github.com/Snailclimb/JavaGuide", repo: "https://github.com/Snailclimb/JavaGuide",
docsDir: "docs", docsDir: "docs",
iconPrefix: "iconfont icon-", iconAssets: "//at.alicdn.com/t/c/font_2922463_bcn6tjuoz8b.css",
pure: true,
navbar: navbarConfig, navbar: navbarConfig,
sidebar: sidebarConfig, sidebar: sidebarConfig,
pageInfo: ["Author", "Category", "Tag", "Date", "Original", "Word"], pageInfo: [
"Author",
"Category",
"Tag",
"Date",
"Original",
"Word",
"ReadingTime",
],
blog: { blog: {
intro: "/about-the-author/", intro: "/about-the-author/",
sidebarDisplay: "mobile", sidebarDisplay: "mobile",
@ -29,35 +39,15 @@ export default defineThemeConfig({
'<a href="https://beian.miit.gov.cn/" target="_blank">鄂ICP备2020015769号-1</a>', '<a href="https://beian.miit.gov.cn/" target="_blank">鄂ICP备2020015769号-1</a>',
displayFooter: true, displayFooter: true,
plugins: { plugins: {
blog: { blog: true,
autoExcerpt: true, copyright: true,
},
mdEnhance: { mdEnhance: {
codetabs: true,
container: true,
tasklist: true, tasklist: true,
}, },
feed: { feed: {
json: true, json: true,
}, },
// comment: {
// type: "giscus",
// repo: "Snailclimb/JavaGuide",
// repoId: "MDEwOlJlcG9zaXRvcnkxMzI0NjQzOTU=",
// category: "Announcements",
// categoryId: "DIC_kwDOB-U_C84COYQF",
// },
search: {
// https://v2.vuepress.vuejs.org/zh/reference/plugin/search.html
// 排除首页
isSearchable: (page) => page.path !== "/",
maxSuggestions: 10,
hotKeys: ["s", "/"],
// 用于在页面的搜索索引中添加额外字段
getExtraFields: () => [],
locales: {
"/": {
placeholder: "搜索",
},
},
},
}, },
}); });

View File

@ -60,7 +60,7 @@ icon: "distributed-network"
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/books/f5bec14d3b404ac4b041d723153658b5.png) ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/books/f5bec14d3b404ac4b041d723153658b5.png)
**[《凤凰架构》](https://book.douban.com/subject/35492898/)**这本书是周志明老师多年架构和研发经验的总结,内容非常干货,深度与广度并存,理论结合实践! **[《凤凰架构》](https://book.douban.com/subject/35492898/)** 这本书是周志明老师多年架构和研发经验的总结,内容非常干货,深度与广度并存,理论结合实践!
正如书名的副标题“构建可靠的大型分布式系统”所说的那样,这本书的主要内容就是讲:“如何构建一套可靠的分布式大型软件系统” ,涵盖了下面这些方面的内容: 正如书名的副标题“构建可靠的大型分布式系统”所说的那样,这本书的主要内容就是讲:“如何构建一套可靠的分布式大型软件系统” ,涵盖了下面这些方面的内容:

View File

@ -179,7 +179,7 @@ InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM
## MySQL 索引 ## MySQL 索引
MySQL 索引相关的问题比较多,对于面试和工作都比较重要,于是,我单独抽了一篇文章专门来总结 MySQL 索引相关的知识点和问题: [MySQL索引详解](./mysql-index) 。 MySQL 索引相关的问题比较多,对于面试和工作都比较重要,于是,我单独抽了一篇文章专门来总结 MySQL 索引相关的知识点和问题: [MySQL索引详解](./mysql-index.md) 。
## MySQL 查询缓存 ## MySQL 查询缓存

View File

@ -13,10 +13,11 @@
"webpack-clean-serve": "vuepress-webpack dev docs --clean-cache", "webpack-clean-serve": "vuepress-webpack dev docs --clean-cache",
"webpack-serve": "vuepress-webpack dev docs" "webpack-serve": "vuepress-webpack dev docs"
}, },
"devDependencies": { "dependencies": {
"@vuepress/plugin-search": "^2.0.0-beta.38", "vuepress": "^2.0.0-beta.53",
"vuepress-theme-hope": "^2.0.0-beta.36", "vuepress-theme-hope": "^2.0.0-beta.122",
"vuepress-vite": "2.0.0-beta.38", "vuepress-vite": "2.0.0-beta.53",
"vuepress-webpack": "2.0.0-beta.38" "vuepress-webpack": "2.0.0-beta.53",
"@vuepress/plugin-search": "^2.0.0-beta.53"
} }
} }