From 184a58d466c6941874aaee1ff2f2e97c9429b93f Mon Sep 17 00:00:00 2001 From: Tim Vink Date: Fri, 28 Jan 2022 14:01:42 +0100 Subject: [PATCH] Add enumerate_heading_depth option, see #65 --- docs/options.md | 5 +- .../css/print-site-enum-headings1.css | 75 ++++++++ .../css/print-site-enum-headings2.css | 46 +++++ .../css/print-site-enum-headings3.css | 52 ++++++ .../css/print-site-enum-headings4.css | 49 ++++++ .../css/print-site-enum-headings5.css | 49 ++++++ .../css/print-site-enum-headings6.css | 49 ++++++ mkdocs_print_site_plugin/css/print-site.css | 161 ------------------ mkdocs_print_site_plugin/plugin.py | 30 ++++ setup.py | 2 +- .../projects/basic/mkdocs_with_enum.yml | 1 + 11 files changed, 356 insertions(+), 163 deletions(-) create mode 100644 mkdocs_print_site_plugin/css/print-site-enum-headings1.css create mode 100644 mkdocs_print_site_plugin/css/print-site-enum-headings2.css create mode 100644 mkdocs_print_site_plugin/css/print-site-enum-headings3.css create mode 100644 mkdocs_print_site_plugin/css/print-site-enum-headings4.css create mode 100644 mkdocs_print_site_plugin/css/print-site-enum-headings5.css create mode 100644 mkdocs_print_site_plugin/css/print-site-enum-headings6.css diff --git a/docs/options.md b/docs/options.md index 8f7290f..985c4d0 100644 --- a/docs/options.md +++ b/docs/options.md @@ -45,10 +45,13 @@ plugins: For example "[google.com](https://www.google.com)" will be replaced by "[google.com](https://www.google.com) (https://www.google.com)" `enumerate_headings` -: Default `true`. This will add numbering (enumeration) to all headings as well as the table of contents. Note this will only enumerate the print site page; if you want to enumerate the entire site, you can use [mkdocs-enumerate-headings-plugin](https://github.com/timvink/mkdocs-enumerate-headings-plugin). +: Default `true`. This will add numbering (enumeration) to all headings and sections, as well as the table of contents. Note this will only enumerate the print site page; if you want to enumerate the entire site, you can use [mkdocs-enumerate-headings-plugin](https://github.com/timvink/mkdocs-enumerate-headings-plugin). Example "1.2 A chapter subsection". +`enumerate_headings_depth` +: Default `6`. If `enumerate_headings`, the depth until which headings and sections are enumerated. + `enumerate_figures` : Default `true`. This will add numbering to all figure captions (for example "Figure 1: "). Works especially well with [mkdocs-img2fig-plugin](https://github.com/stuebersystems/mkdocs-img2fig-plugin). diff --git a/mkdocs_print_site_plugin/css/print-site-enum-headings1.css b/mkdocs_print_site_plugin/css/print-site-enum-headings1.css new file mode 100644 index 0000000..f767fbb --- /dev/null +++ b/mkdocs_print_site_plugin/css/print-site-enum-headings1.css @@ -0,0 +1,75 @@ +/* +Enumerate headings + +Only displayed when set in mkdocs.yml + +print-site: + - print-site-enumerate_headings: true +*/ + +/* Reset all enumeration at start of page */ +body {counter-reset: chapter sec-top toc-chapter toc-sec-chapter figurecounter;} + +/* Enumerate headings of CHAPTERS, +that are part of an original included page */ +.print-site-enumerate-headings .print-page h1 {counter-reset: section sub-section composite detail last; } +.print-site-enumerate-headings .print-page h2 {counter-reset: sub-section composite detail last; } +.print-site-enumerate-headings .print-page h3 {counter-reset: composite detail last; } +.print-site-enumerate-headings .print-page h4 {counter-reset: detail last; } +.print-site-enumerate-headings .print-page h5 {counter-reset: last; } +.print-site-enumerate-headings .print-page h1:before { + counter-increment: chapter; + content: counter(chapter) " " !important; +} +.print-site-enumerate-headings h1.print-page-toc-title:before, +#print-site-cover-page h1:before, +#print-site-cover-page h2:before, +#print-site-cover-page h3:before, +#print-site-cover-page h4:before, +#print-site-cover-page h5:before, +#print-site-cover-page h6:before { + content: none !important; + counter-increment: none; +} + + +/* Enumerate headings of SECTIONS, +that are part of an original included page */ +.print-site-enumerate-headings h1 {counter-reset: sec-section sec-sub-section sec-composite sec-detail sec-last; } +.print-site-enumerate-headings h2.nav-section-title {counter-reset: sec-sub-section sec-composite sec-detail sec-last; } +.print-site-enumerate-headings h3.nav-section-title {counter-reset: sec-composite sec-detail sec-last; } +.print-site-enumerate-headings h4.nav-section-title {counter-reset: sec-detail sec-last; } +.print-site-enumerate-headings h5.nav-section-title {counter-reset: sec-last; } +.print-site-enumerate-headings h1.nav-section-title:before { + counter-increment: sec-top; + content: counter(sec-top, upper-roman) ". " !important; +} + + +/* Enumerate CHAPTERS in table of contents also */ +.print-site-enumerate-headings .print-site-toc-level-1 > ul { counter-reset: toc-section; } +.print-site-enumerate-headings .print-site-toc-level-2 > ul { counter-reset: toc-sub-section; } +.print-site-enumerate-headings .print-site-toc-level-3 > ul { counter-reset: toc-composite; } +.print-site-enumerate-headings .print-site-toc-level-4 > ul { counter-reset: toc-detail; } +.print-site-enumerate-headings .print-site-toc-level-5 > ul { counter-reset: toc-last; } +.print-site-enumerate-headings .print-site-toc-level-1 > li a:before { + counter-increment: toc-chapter; + content: counter(toc-chapter) " "; +} + +/* Enumerate SECTIONS in table of contents also */ +.print-site-enumerate-headings li.toc-nav-section-title-level-1 { counter-reset: toc-sec-section; } +.print-site-enumerate-headings li.toc-nav-section-title-level-2 { counter-reset: toc-sec-sub-section; } +.print-site-enumerate-headings li.toc-nav-section-title-level-3 { counter-reset: toc-sec-composite; } +.print-site-enumerate-headings li.toc-nav-section-title-level-4 { counter-reset: toc-sec-detail; } +.print-site-enumerate-headings li.toc-nav-section-title-level-5 { counter-reset: toc-sec-last; } +.print-site-enumerate-headings li.toc-nav-section-title-level-1:before { + counter-increment: toc-sec-chapter; + content: counter(toc-sec-chapter, upper-roman) " "; +} + + +#print-page-toc li a.headerlink:before { + content: none !important; + counter-increment: none; +} diff --git a/mkdocs_print_site_plugin/css/print-site-enum-headings2.css b/mkdocs_print_site_plugin/css/print-site-enum-headings2.css new file mode 100644 index 0000000..24b44e0 --- /dev/null +++ b/mkdocs_print_site_plugin/css/print-site-enum-headings2.css @@ -0,0 +1,46 @@ + +/* +Enumerate level 2 headings of CHAPTERS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + +.print-site-enumerate-headings .print-page h2:before { + counter-increment: section; + content: counter(chapter) "." counter(section) " " !important; +} + +/* +Enumerate level 2 headings of SECTIONS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ +.print-site-enumerate-headings h2.nav-section-title:before { + counter-increment: sec-section; + content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) " " !important; + } + + +/* Enumerate CHAPTERS in table of contents also */ + +.print-site-enumerate-headings .print-site-toc-level-2 > li a:before { + counter-increment: toc-section; + content: counter(toc-chapter) "." counter(toc-section) " "; +} + +/* Enumerate SECTIONS in table of contents also */ + +.print-site-enumerate-headings li.toc-nav-section-title-level-2:before { + counter-increment: toc-sec-section; + content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) " "; +} diff --git a/mkdocs_print_site_plugin/css/print-site-enum-headings3.css b/mkdocs_print_site_plugin/css/print-site-enum-headings3.css new file mode 100644 index 0000000..c5059e6 --- /dev/null +++ b/mkdocs_print_site_plugin/css/print-site-enum-headings3.css @@ -0,0 +1,52 @@ + +/* +Enumerate level 2 headings of CHAPTERS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + + +.print-site-enumerate-headings .print-page h3:before { +counter-increment: sub-section; +content: counter(chapter) "." counter(section) "." counter(sub-section) " " !important; +} + + +/* +Enumerate level 2 headings of SECTIONS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + +.print-site-enumerate-headings h3.nav-section-title:before { + counter-increment: sec-sub-section; + content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) " " !important; +} + + +/* Enumerate CHAPTERS in table of contents also */ + + +.print-site-enumerate-headings .print-site-toc-level-3 > li a:before { + counter-increment: toc-sub-section; + content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) " "; +} + + +/* Enumerate SECTIONS in table of contents also */ + + +.print-site-enumerate-headings li.toc-nav-section-title-level-3:before { + counter-increment: toc-sec-sub-section; + content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) " "; +} diff --git a/mkdocs_print_site_plugin/css/print-site-enum-headings4.css b/mkdocs_print_site_plugin/css/print-site-enum-headings4.css new file mode 100644 index 0000000..5c08e21 --- /dev/null +++ b/mkdocs_print_site_plugin/css/print-site-enum-headings4.css @@ -0,0 +1,49 @@ + +/* +Enumerate level 2 headings of CHAPTERS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + +.print-site-enumerate-headings .print-page h4:before { +counter-increment: composite; +content: counter(chapter) "." counter(section) "." counter(sub-section) "." counter(composite) " " !important; +} + +/* +Enumerate level 2 headings of SECTIONS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + + +.print-site-enumerate-headings h4.nav-section-title:before { + counter-increment: sec-composite; + content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) "." counter(sec-composite, upper-roman) " " !important; +} + +/* Enumerate CHAPTERS in table of contents also */ + +.print-site-enumerate-headings .print-site-toc-level-4 > li a:before { + counter-increment: toc-composite; + content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) "." counter(toc-composite) " "; +} + + +/* Enumerate SECTIONS in table of contents also */ + + +.print-site-enumerate-headings li.toc-nav-section-title-level-4before { + counter-increment: toc-sec-composite; + content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) "." counter(toc-sec-composite, upper-roman) " "; +} diff --git a/mkdocs_print_site_plugin/css/print-site-enum-headings5.css b/mkdocs_print_site_plugin/css/print-site-enum-headings5.css new file mode 100644 index 0000000..4f11f36 --- /dev/null +++ b/mkdocs_print_site_plugin/css/print-site-enum-headings5.css @@ -0,0 +1,49 @@ + +/* +Enumerate level 2 headings of CHAPTERS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + +.print-site-enumerate-headings .print-page h5:before { +counter-increment: detail; +content: counter(chapter) "." counter(section) "." counter(sub-section) "." counter(composite) "." counter(detail) " " !important; +} + +/* +Enumerate level 2 headings of SECTIONS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + + +.print-site-enumerate-headings h5.nav-section-title:before { + counter-increment: sec-detail; + content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) "." counter(sec-composite, upper-roman) "." counter(sec-detail, upper-roman) " " !important; +} + + +/* Enumerate CHAPTERS in table of contents also */ + +.print-site-enumerate-headings .print-site-toc-level-5 > li a:before { + counter-increment: toc-detail; + content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) "." counter(toc-composite) "." counter(toc-detail) " "; +} + + +/* Enumerate SECTIONS in table of contents also */ + +.print-site-enumerate-headings li.toc-nav-section-title-level-5:before { + counter-increment: toc-detail; + content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) "." counter(toc-sec-composite, upper-roman) "." counter(toc-sec-detail, upper-roman) " "; +} diff --git a/mkdocs_print_site_plugin/css/print-site-enum-headings6.css b/mkdocs_print_site_plugin/css/print-site-enum-headings6.css new file mode 100644 index 0000000..0bcf682 --- /dev/null +++ b/mkdocs_print_site_plugin/css/print-site-enum-headings6.css @@ -0,0 +1,49 @@ + +/* +Enumerate level 2 headings of CHAPTERS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + + +.print-site-enumerate-headings .print-page h6:before { + counter-increment: last; + content: counter(chapter) "." counter(section) "." counter(sub-section) "." counter(composite) "." counter(detail) "." counter(last) " " !important; +} + +/* +Enumerate level 2 headings of SECTIONS, +that are part of an original included page + +Only displayed when set in mkdocs.yml: + +print-site: + - enumerate_headings: true + - enumerate_headings_depth: 2 # or more +*/ + +.print-site-enumerate-headings h6.nav-section-title:before { + counter-increment: sec-last; + content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) "." counter(sec-composite, upper-roman) "." counter(sec-detail, upper-roman) "." counter(sec-last, upper-roman) " " !important; +} + + +/* Enumerate CHAPTERS in table of contents also */ + +.print-site-enumerate-headings .print-site-toc-level-6 > li a:before { + counter-increment: toc-last; + content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) "." counter(toc-composite) "." counter(toc-detail) "." counter(toc-last) " "; +} + +/* Enumerate SECTIONS in table of contents also */ + +.print-site-enumerate-headings li.toc-nav-section-title-level-6:before { + counter-increment: toc-sec-last; + content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) "." counter(toc-sec-composite, upper-roman) "." counter(toc-sec-detail, upper-roman) "." counter(toc-last, upper-roman) " "; +} + diff --git a/mkdocs_print_site_plugin/css/print-site.css b/mkdocs_print_site_plugin/css/print-site.css index 11d1d4c..52f477f 100644 --- a/mkdocs_print_site_plugin/css/print-site.css +++ b/mkdocs_print_site_plugin/css/print-site.css @@ -13,162 +13,6 @@ The print-site banner margin-top: 1rem; } - -/* -Enumerate headings - -Only displayed when set in mkdocs.yml - -print-site: - - print-site-enumerate_headings: true -*/ - -/* Reset all enumeration at start of page */ -body {counter-reset: chapter sec-top toc-chapter toc-sec-chapter figurecounter;} - -/* Enumerate headings of CHAPTERS, -that are part of an original included page */ -.print-site-enumerate-headings .print-page h1 {counter-reset: section sub-section composite detail last; } -.print-site-enumerate-headings .print-page h2 {counter-reset: sub-section composite detail last; } -.print-site-enumerate-headings .print-page h3 {counter-reset: composite detail last; } -.print-site-enumerate-headings .print-page h4 {counter-reset: detail last; } -.print-site-enumerate-headings .print-page h5 {counter-reset: last; } -.print-site-enumerate-headings .print-page h1:before { - counter-increment: chapter; - content: counter(chapter) " " !important; -} -.print-site-enumerate-headings h1.print-page-toc-title:before, -#print-site-cover-page h1:before, -#print-site-cover-page h2:before, -#print-site-cover-page h3:before, -#print-site-cover-page h4:before, -#print-site-cover-page h5:before, -#print-site-cover-page h6:before { - content: none !important; - counter-increment: none; -} -.print-site-enumerate-headings .print-page h2:before { - counter-increment: section; - content: counter(chapter) "." counter(section) " " !important; -} -.print-site-enumerate-headings .print-page h3:before { - counter-increment: sub-section; - content: counter(chapter) "." counter(section) "." counter(sub-section) " " !important; -} -.print-site-enumerate-headings .print-page h4:before { - counter-increment: composite; - content: counter(chapter) "." counter(section) "." counter(sub-section) "." counter(composite) " " !important; -} -.print-site-enumerate-headings .print-page h5:before { - counter-increment: detail; - content: counter(chapter) "." counter(section) "." counter(sub-section) "." counter(composite) "." counter(detail) " " !important; -} -.print-site-enumerate-headings .print-page h6:before { - counter-increment: last; - content: counter(chapter) "." counter(section) "." counter(sub-section) "." counter(composite) "." counter(detail) "." counter(last) " " !important; -} - -/* Enumerate headings of SECTIONS, -that are part of an original included page */ -.print-site-enumerate-headings h1 {counter-reset: sec-section sec-sub-section sec-composite sec-detail sec-last; } -.print-site-enumerate-headings h2.nav-section-title {counter-reset: sec-sub-section sec-composite sec-detail sec-last; } -.print-site-enumerate-headings h3.nav-section-title {counter-reset: sec-composite sec-detail sec-last; } -.print-site-enumerate-headings h4.nav-section-title {counter-reset: sec-detail sec-last; } -.print-site-enumerate-headings h5.nav-section-title {counter-reset: sec-last; } -.print-site-enumerate-headings h1.nav-section-title:before { - counter-increment: sec-top; - content: counter(sec-top, upper-roman) ". " !important; -} -.print-site-enumerate-headings h2.nav-section-title:before { - counter-increment: sec-section; - content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) " " !important; -} -.print-site-enumerate-headings h3.nav-section-title:before { - counter-increment: sec-sub-section; - content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) " " !important; -} -.print-site-enumerate-headings h4.nav-section-title:before { - counter-increment: sec-composite; - content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) "." counter(sec-composite, upper-roman) " " !important; -} -.print-site-enumerate-headings h5.nav-section-title:before { - counter-increment: sec-detail; - content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) "." counter(sec-composite, upper-roman) "." counter(sec-detail, upper-roman) " " !important; -} -.print-site-enumerate-headings h6.nav-section-title:before { - counter-increment: sec-last; - content: counter(sec-top, upper-roman) "." counter(sec-section, upper-roman) "." counter(sec-sub-section, upper-roman) "." counter(sec-composite, upper-roman) "." counter(sec-detail, upper-roman) "." counter(sec-last, upper-roman) " " !important; -} - - -/* Enumerate CHAPTERS in table of contents also */ -.print-site-enumerate-headings .print-site-toc-level-1 > ul { counter-reset: toc-section; } -.print-site-enumerate-headings .print-site-toc-level-2 > ul { counter-reset: toc-sub-section; } -.print-site-enumerate-headings .print-site-toc-level-3 > ul { counter-reset: toc-composite; } -.print-site-enumerate-headings .print-site-toc-level-4 > ul { counter-reset: toc-detail; } -.print-site-enumerate-headings .print-site-toc-level-5 > ul { counter-reset: toc-last; } -.print-site-enumerate-headings .print-site-toc-level-1 > li a:before { - counter-increment: toc-chapter; - content: counter(toc-chapter) " "; -} -.print-site-enumerate-headings .print-site-toc-level-2 > li a:before { - counter-increment: toc-section; - content: counter(toc-chapter) "." counter(toc-section) " "; -} -.print-site-enumerate-headings .print-site-toc-level-3 > li a:before { - counter-increment: toc-sub-section; - content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) " "; -} -.print-site-enumerate-headings .print-site-toc-level-4 > li a:before { - counter-increment: toc-composite; - content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) "." counter(toc-composite) " "; -} -.print-site-enumerate-headings .print-site-toc-level-5 > li a:before { - counter-increment: toc-detail; - content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) "." counter(toc-composite) "." counter(toc-detail) " "; -} -.print-site-enumerate-headings .print-site-toc-level-6 > li a:before { - counter-increment: toc-last; - content: counter(toc-chapter) "." counter(toc-section) "." counter(toc-sub-section) "." counter(toc-composite) "." counter(toc-detail) "." counter(toc-last) " "; -} - -/* Enumerate SECTIONS in table of contents also */ -.print-site-enumerate-headings li.toc-nav-section-title-level-1 { counter-reset: toc-sec-section; } -.print-site-enumerate-headings li.toc-nav-section-title-level-2 { counter-reset: toc-sec-sub-section; } -.print-site-enumerate-headings li.toc-nav-section-title-level-3 { counter-reset: toc-sec-composite; } -.print-site-enumerate-headings li.toc-nav-section-title-level-4 { counter-reset: toc-sec-detail; } -.print-site-enumerate-headings li.toc-nav-section-title-level-5 { counter-reset: toc-sec-last; } -.print-site-enumerate-headings li.toc-nav-section-title-level-1:before { - counter-increment: toc-sec-chapter; - content: counter(toc-sec-chapter, upper-roman) " "; -} -.print-site-enumerate-headings li.toc-nav-section-title-level-2:before { - counter-increment: toc-sec-section; - content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) " "; -} -.print-site-enumerate-headings li.toc-nav-section-title-level-3:before { - counter-increment: toc-sec-sub-section; - content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) " "; -} -.print-site-enumerate-headings li.toc-nav-section-title-level-4before { - counter-increment: toc-sec-composite; - content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) "." counter(toc-sec-composite, upper-roman) " "; -} -.print-site-enumerate-headings li.toc-nav-section-title-level-5:before { - counter-increment: toc-detail; - content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) "." counter(toc-sec-composite, upper-roman) "." counter(toc-sec-detail, upper-roman) " "; -} -.print-site-enumerate-headings li.toc-nav-section-title-level-6:before { - counter-increment: toc-sec-last; - content: counter(toc-sec-chapter, upper-roman) "." counter(toc-sec-section, upper-roman) "." counter(toc-sec-sub-section, upper-roman) "." counter(toc-sec-composite, upper-roman) "." counter(toc-sec-detail, upper-roman) "." counter(toc-last, upper-roman) " "; -} - -#print-page-toc li a.headerlink:before { - content: none !important; - counter-increment: none; -} - - /* Enumerate figures */ .print-site-enumerate-figures figcaption:before { counter-increment: figurecounter; @@ -321,11 +165,6 @@ For now, we added them for use only in the table of contents */ /* display the table of contents in print version */ #print-page-toc { display: block } - - /* Ensure all tabbed content is displayed and printed - https://squidfunk.github.io/mkdocs-material/reference/content-tabs/ */ - /* #print-site-page div.tabbed-content { display: block !important; } */ - /* PDF page breaks on each MkDocs page, except the first one */ #print-site-page section.print-page { page-break-before: always; diff --git a/mkdocs_print_site_plugin/plugin.py b/mkdocs_print_site_plugin/plugin.py index 55e1dce..0d0ff49 100644 --- a/mkdocs_print_site_plugin/plugin.py +++ b/mkdocs_print_site_plugin/plugin.py @@ -32,6 +32,7 @@ class PrintSitePlugin(BasePlugin): ("toc_depth", config_options.Type(int, default=3)), ("add_full_urls", config_options.Type(bool, default=False)), ("enumerate_headings", config_options.Type(bool, default=True)), + ("enumerate_headings_depth", config_options.Type(int, default=6)), ("enumerate_figures", config_options.Type(bool, default=True)), ("add_cover_page", config_options.Type(bool, default=False)), ("cover_page_template", config_options.Type(str, default="")), @@ -54,6 +55,8 @@ def on_config(self, config, **kwargs): # Check valid table of contents depth assert self.config.get("toc_depth") >= 1 assert self.config.get("toc_depth") <= 6 + assert self.config.get("enumerate_headings_depth") >= 1 + assert self.config.get("enumerate_headings_depth") <= 6 # Because other plugins can alter the navigation # (and thus which pages should be in the print page) @@ -129,6 +132,25 @@ def on_config(self, config, **kwargs): # Add pointer to print-site css files config["extra_css"] = ["css/print-site.css"] + config["extra_css"] + # Enumeration CSS files + self.enum_css_files = [] + + if self.config.get('enumerate_headings'): + self.enum_css_files += ["css/print-site-enum-headings1.css"] + if self.config.get('enumerate_headings_depth') >= 2: + self.enum_css_files += ["css/print-site-enum-headings2.css"] + if self.config.get('enumerate_headings_depth') >= 3: + self.enum_css_files += ["css/print-site-enum-headings3.css"] + if self.config.get('enumerate_headings_depth') >= 4: + self.enum_css_files += ["css/print-site-enum-headings4.css"] + if self.config.get('enumerate_headings_depth') >= 5: + self.enum_css_files += ["css/print-site-enum-headings5.css"] + if self.config.get('enumerate_headings_depth') >= 6: + self.enum_css_files += ["css/print-site-enum-headings6.css"] + + config["extra_css"] = self.enum_css_files + config["extra_css"] + + # Create MkDocs Page and File instances self.print_file = File( path="print_page.md", @@ -288,6 +310,14 @@ def on_post_build(self, config, **kwargs): os.path.join(os.path.join(HERE, "css"), "print-site.css"), css_file_path ) + # Add enumeration css + for f in self.enum_css_files: + f = f.replace("/", os.sep) + css_file_path = os.path.join(config["site_dir"], f) + copy_file( + os.path.join(HERE, f), css_file_path + ) + # Add theme CSS file css_file = "print-site-%s.css" % get_theme_name(config) if css_file in os.listdir(os.path.join(HERE, "css")): diff --git a/setup.py b/setup.py index bc7f4fb..f098946 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name="mkdocs-print-site-plugin", - version="2.2.5", + version="2.3", description="MkDocs plugin that combines all pages into one, allowing for easy export to PDF and standalone HTML.", long_description=long_description, long_description_content_type="text/markdown", diff --git a/tests/fixtures/projects/basic/mkdocs_with_enum.yml b/tests/fixtures/projects/basic/mkdocs_with_enum.yml index 4f9c289..aa1d465 100644 --- a/tests/fixtures/projects/basic/mkdocs_with_enum.yml +++ b/tests/fixtures/projects/basic/mkdocs_with_enum.yml @@ -3,4 +3,5 @@ site_name: Test plugins: - print-site: enumerate_headings: true + enumerate_headings_depth: 6 \ No newline at end of file