-
-
Notifications
You must be signed in to change notification settings - Fork 19.1k
/
main.js
139 lines (129 loc) · 5.4 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
const giscusTheme = () =>
localStorage.getItem('DARK_LIGHT_THEME') === 'dark' ? 'noborder_dark' : 'light';
window.$docsify = {
name: 'advanced-java',
repo: 'doocs/advanced-java',
maxLevel: 3,
auto2top: true,
coverpage: true,
coverpage: 'docs/extra-page/cover.md',
loadSidebar: 'summary.md',
alias: {
'/.*/.*/summary': 'summary.md',
'/.*/summary.md': 'summary.md',
},
lastModifiedText: '最近更新时间:',
pagination: {
previousText: '上一篇',
nextText: '下一篇',
crossChapter: true,
crossChapterText: true,
},
contributors: {
repo: 'doocs/advanced-java',
ignores: ['/README.md'],
image: {
margin: '0.2em',
isRound: true,
},
},
search: {
maxAge: 1800000,
paths: [
'/docs/high-concurrency/',
'/docs/distributed-system/',
'/docs/high-availability/',
'/docs/micro-services/',
'/docs/big-data/',
],
depth: 3,
},
darklightTheme: {
defaultTheme: 'light',
siteFont: 'Source Sans Pro,Helvetica Neue,Arial,sans-serif',
codeFontFamily: 'Roboto Mono, Monaco, courier, monospace',
bodyFontSize: '15px',
dark: {
background: 'rgb(28,32,34)',
highlightColor: '#e96900',
codeBackgroundColor: 'rgb(34,39,46)',
codeTextColor: '#b4b4b4',
},
light: {
highlightColor: '#e96900',
},
},
plugins: [
function (hook, vm) {
hook.beforeEach(function (content) {
const { file, path } = vm.route;
const en = file.indexOf('README_EN') > -1;
if (/githubusercontent\.com/.test(file)) {
url = file
.replace(
'raw.githubusercontent.com',
'github.com',
)
.replace(/\/main/, '/blob/main');
} else {
url = `https://github.com/doocs/advanced-java/blob/main/${file}`;
}
const github = `[GitHub](${url})`;
const gitee = `[Gitee](${url.replace('github', 'gitee')})`;
const editHtml = en
? `:memo: Edit on ${github} / ${gitee}\n`
: `:memo: 在 ${github} / ${gitee} 编辑\n`;
if (path === '/') {
return editHtml + content;
}
const subscription = `---
## 公众号
[Doocs](https://github.com/doocs) 技术社区旗下唯一公众号「**Doocs**」,欢迎扫码关注,**专注分享技术领域相关知识及业内最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
关注「**Doocs**」公众号,回复 **PDF**,即可获取本项目离线 PDF 文档,学习更加方便!
<table>
<tr>
<td align="center" style="width: 260px;">
<img src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/images/qrcode-for-doocs.png" style="width: 400px;"><br>
</td>
<td align="center" style="width: 260px;">
<img src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/gh/doocs/images/qrcode-for-yanglbme.png" style="width: 400px;"><br>
</td>
</tr>
</table>`;
return editHtml + content + `\n` + subscription;
});
hook.afterEach(function (html) {
const currentYear = new Date().getFullYear();
const footer = `<footer><span>Copyright © 2018-${currentYear} <a href="https://github.com/doocs" target="_blank">Doocs</a>. All Rights Reserved.</footer>`;
return html + footer;
});
hook.doneEach(() => {
const giscusScript = document.createElement('script');
giscusScript.type = 'text/javascript';
giscusScript.async = true;
giscusScript.setAttribute('src', 'https://giscus.app/client.js');
giscusScript.setAttribute('data-repo', 'doocs/advanced-java');
giscusScript.setAttribute('data-repo-id', 'MDEwOlJlcG9zaXRvcnkxNTE4MzQwNjI=');
giscusScript.setAttribute('data-mapping', 'number');
giscusScript.setAttribute('data-reactions-enabled', '1');
giscusScript.setAttribute('data-strict', '1');
giscusScript.setAttribute('data-emit-metadata', '0');
giscusScript.setAttribute('data-input-position', 'top');
giscusScript.setAttribute('crossorigin', 'anonymous');
giscusScript.setAttribute('data-term', '9');
giscusScript.setAttribute('data-lang', 'zh-CN');
giscusScript.setAttribute('data-theme', giscusTheme());
document
.getElementById('main')
.insertBefore(giscusScript, document.getElementById('main').lastChild);
document.getElementById('docsify-darklight-theme').addEventListener('click', () => {
const frame = document.querySelector('.giscus-frame');
frame.contentWindow.postMessage(
{ giscus: { setConfig: { theme: giscusTheme() } } },
'https://giscus.app',
);
});
})
},
],
};