-
Notifications
You must be signed in to change notification settings - Fork 11
/
docusaurus.config.js
127 lines (122 loc) · 3.52 KB
/
docusaurus.config.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
/** @type {import('@docusaurus/types').DocusaurusConfig} */
const math = require("remark-math");
const katex = require("rehype-katex");
module.exports = {
title: "cheminfo ELN documentation",
tagline: "Making chemical data reusable",
url: "https://docs.c6h6.org",
baseUrl: "/docs/",
onBrokenLinks: "warn", //Todo: Fix broken links
onBrokenMarkdownLinks: "warn",
favicon: "img/favicon.png",
organizationName: "cheminfo", // Usually your GitHub org/user name.
projectName: "Cheminfo ELN", // Usually your repo name.
plugins: [
[
require.resolve("@easyops-cn/docusaurus-search-local"),
{
// ... Your options.
// `hashed` is recommended as long-term-cache of index file is possible.
hashed: true,
docsRouteBasePath: "/eln",
indexPages: true, //because of bug: https://github.com/easyops-cn/docusaurus-search-local/issues/42
},
],
],
themeConfig: {
navbar: {
logo: {
alt: "Cheminfo logo",
src: "img/logo.png",
},
items: [
{
type: "doc",
docId: "intro",
position: "left",
label: "Documentation",
},
{
href: "https://github.com/cheminfo",
label: "GitHub",
position: "right",
},
],
},
footer: {
style: "dark",
copyright: `Copyright © ${new Date().getFullYear()} Cheminfo contributors. Built with Docusaurus.`,
},
docs: {
sidebar: {
hideable: true,
},
},
},
stylesheets: [
{
href: "https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css",
integrity:
"sha384-Um5gpz1odJg5Z4HAmzPtgZKdTBHZdw8S29IecapCSB31ligYPhHQZMIlWLYQGVoc",
crossorigin: "anonymous",
},
],
presets: [
[
"@docusaurus/preset-classic",
{
docs: {
sidebarPath: require.resolve("./sidebars.js"),
routeBasePath: "/eln",
sidebarItemsGenerator: async function ({
defaultSidebarItemsGenerator,
...args
}) {
let sidebarItems = await defaultSidebarItemsGenerator(args);
sidebarItems = filterItems(sidebarItems);
return raisingSingleNodes(sidebarItems);
},
// Please change this to your repo.
editUrl: "https://github.com/cheminfo/eln-docs/edit/main/",
remarkPlugins: [math],
rehypePlugins: [katex],
},
blog: {
showReadingTime: true,
// Please change this to your repo.
editUrl: "https://github.com/cheminfo/eln-docs/edit/main/blog/",
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
},
],
],
};
const ignoredLabels = ["includes"];
function filterItems(items) {
items = items.filter((item) => !ignoredLabels.includes(item.label));
items.forEach((item) => {
if (Array.isArray(item.items)) {
item.items = filterItems(item.items);
}
});
return items;
}
function raisingSingleNodes(items) {
// we need to traverse the full hierarhy and if there is only one child items we raise it one level
for (let parentItem of items) {
if (parentItem && parentItem.items && parentItem.items.length) {
for (let j = 0; j < parentItem.items.length; j++) {
if (
parentItem.items[j].items &&
parentItem.items[j].items.length === 1
) {
parentItem.items[j] = parentItem.items[j].items[0];
}
}
raisingSingleNodes(parentItem.items);
}
}
return items;
}