77 lines
No EOL
1.5 KiB
SCSS
77 lines
No EOL
1.5 KiB
SCSS
body {counter-reset: h2 figure table}
|
|
h2 {counter-reset: h3}
|
|
h3 {counter-reset: h4}
|
|
h4 {counter-reset: h5}
|
|
h5 {counter-reset: h6}
|
|
|
|
article[autonumbering] {
|
|
h2:before {
|
|
counter-increment: h2;
|
|
content: counter(h2) " ";
|
|
}
|
|
h3:before {
|
|
counter-increment: h3;
|
|
content: counter(h2) "." counter(h3) " ";
|
|
}
|
|
h4:before {
|
|
counter-increment: h4;
|
|
content: counter(h2) "." counter(h3) "." counter(h4) " ";
|
|
}
|
|
h5:before {
|
|
counter-increment: h5;
|
|
content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) " ";
|
|
}
|
|
h6:before {
|
|
counter-increment: h6;
|
|
content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) " ";
|
|
}
|
|
h2:before,
|
|
h3:before,
|
|
h4:before,
|
|
h5:before,
|
|
h6:before
|
|
{
|
|
font-family: monospace;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.table-of-contents :is(ol, ul) {
|
|
/*
|
|
each list gets a new counter
|
|
*/
|
|
counter-reset: item;
|
|
margin-inline-start: 0;
|
|
}
|
|
.table-of-contents li:before {
|
|
/*
|
|
the counter is added as a pseudo-element,
|
|
and nested counters are joined by a dot
|
|
*/
|
|
content: counters(item, ".") " ";
|
|
counter-increment: item;
|
|
/* ensure the counters align visually */
|
|
font-family: monospace;
|
|
font-weight: bold;
|
|
margin-inline-end: 1em;
|
|
}
|
|
/* tables and figures */
|
|
caption {
|
|
counter-increment: table;
|
|
&:before {
|
|
content: "Table " counter(table) ": ";
|
|
}
|
|
}
|
|
figcaption {
|
|
counter-increment: figure;
|
|
&:before {
|
|
content: "Figure " counter(figure) ": ";
|
|
}
|
|
}
|
|
/* footnotes */
|
|
#footnotes h2 {
|
|
counter-reset: h2;
|
|
&:before {
|
|
content: ''
|
|
}
|
|
}
|
|
} |