Skip to content

Commit 5847bf0

Browse files
committed
added an option to set the depth of the table of contents freely for every note
Signed-off-by: Gereon Dusella <[email protected]>
1 parent 89a0de4 commit 5847bf0

File tree

3 files changed

+86
-2
lines changed

3 files changed

+86
-2
lines changed

public/css/extra.css

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,32 @@
253253
padding-right: 40px;
254254
}
255255

256+
.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>a {
257+
padding-top: 1px;
258+
padding-bottom: 1px;
259+
padding-left: 50px;
260+
font-size: 12px;
261+
font-weight: 400;
262+
}
263+
264+
.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>ul>li>a {
265+
padding-right: 50px;
266+
}
267+
268+
.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>ul>li>a {
269+
padding-top: 1px;
270+
padding-bottom: 1px;
271+
padding-left: 60px;
272+
font-size: 12px;
273+
font-weight: 400;
274+
}
275+
276+
.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>ul>li>ul>li>a {
277+
padding-right: 60px;
278+
}
279+
280+
281+
256282
.ui-toc-dropdown .nav .nav>li>a:focus,.ui-toc-dropdown .nav .nav>li>a:hover {
257283
padding-left: 29px;
258284
}
@@ -269,6 +295,22 @@
269295
padding-right: 39px;
270296
}
271297

298+
.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>a:hover {
299+
padding-left: 49px;
300+
}
301+
302+
.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>ul>li>a:focus,.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>ul>li>a:hover {
303+
padding-right: 49px;
304+
}
305+
306+
.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>ul>li>ul>li>a:hover {
307+
padding-left: 59px;
308+
}
309+
310+
.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>ul>li>ul>li>a:focus,.ui-toc-dropdown[dir='rtl'] .nav .nav>li>ul>li>ul>li>ul>li>a:hover {
311+
padding-right: 59px;
312+
}
313+
272314
.ui-toc-dropdown .nav .nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>a {
273315
padding-left: 28px;
274316
font-weight: 500;
@@ -287,6 +329,24 @@
287329
padding-right: 38px;
288330
}
289331

332+
.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>a {
333+
padding-left: 48px;
334+
font-weight: 500;
335+
}
336+
337+
.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.nav>.active>.nav>.active:hover>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.active>.nav>.nav>.active>a {
338+
padding-right: 48px;
339+
}
340+
341+
.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active>a {
342+
padding-left: 58px;
343+
font-weight: 500;
344+
}
345+
346+
.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.nav>.active>.nav>.active>.nav>.active:hover>a,.ui-toc-dropdown[dir='rtl'] .nav .nav>.active>.active>.nav>.nav>.active>.nav>.active>a {
347+
padding-right: 58px;
348+
}
349+
290350
/* support japanese font */
291351
.markdown-body[lang^="ja"] {
292352
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Osaka, Meiryo, "メイリオ", "MS Gothic", "MS ゴシック", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";

public/docs/yaml-metadata.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,22 @@ This option allows you to enable Disqus with your shortname.
128128
disqus: codimd
129129
```
130130

131+
toc
132+
---
133+
134+
This option allows you to set options regarding the table of contents (toc). Currently, its only option is to set the maxDepth.
135+
136+
**Notice: always use two spaces as indention in YAML metadata!**
137+
138+
139+
> **maxDepth:**
140+
> default: not set (whioch will show everything until level 3 (h1 -- h3))
141+
> max: 5 (as defined by doctoc)
142+
143+
144+
**Example**
145+
146+
131147
type
132148
---
133149
This option allows you to switch the document view to the slide preview, to simplify live editing of presentations.

public/js/extra.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -811,8 +811,12 @@ export function generateToc (id) {
811811
const target = $(`#${id}`)
812812
target.html('')
813813
/* eslint-disable no-unused-vars */
814+
815+
var tocOptions = md.meta.toc || {}
816+
var maxLevel = (typeof tocOptions.maxLevel === 'number' && tocOptions.maxLevel > 0) ? tocOptions.maxLevel : 3
817+
814818
var toc = new window.Toc('doc', {
815-
level: 3,
819+
level: maxLevel,
816820
top: -1,
817821
class: 'toc',
818822
ulClass: 'nav',
@@ -1010,8 +1014,12 @@ export function renderTOC (view) {
10101014
const target = $(`#${id}`)
10111015
target.html('')
10121016
/* eslint-disable no-unused-vars */
1017+
1018+
var tocOptions = md.meta.toc || {}
1019+
var maxLevel = (typeof tocOptions.maxLevel === 'number' && tocOptions.maxLevel > 0) ? tocOptions.maxLevel : 3
1020+
10131021
const TOC = new window.Toc('doc', {
1014-
level: 3,
1022+
level: maxLevel,
10151023
top: -1,
10161024
class: 'toc',
10171025
targetId: id,

0 commit comments

Comments
 (0)