Skip to content

Commit dd9d03e

Browse files
committed
feat(template): make headings counter for prepending headings texts
1 parent 4ef79c1 commit dd9d03e

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
@def-area-name: count-from-h;
2+
@def-counter-from: 2; // Initialize Counter from h2
3+
@max-counter-level: 6; // Only h1~h6 are considered
4+
5+
.header-counter(
6+
@name-area: ~"@{def-area-name}@{def-counter-from}";
7+
@counter-from: @def-counter-from;
8+
) {
9+
.@{name-area} {
10+
counter-reset: ~"h@{counter-from}counter";
11+
.header-counter-internal(@counter-from, @counter-from);
12+
}
13+
}
14+
15+
.header-counter-css-rule ( @property, @level ) {
16+
@{property}: ~"h@{level}counter";
17+
}
18+
19+
.header-counter-internal(
20+
@counter-header-level;
21+
@counter-beginning: @def-counter-from;
22+
) when (@counter-header-level =< @max-counter-level) {
23+
.make-counter-string(@index, @curr-level, @curr) when (@index =< @curr-level) {
24+
.make-counter-string((@index + 1), @curr-level, "@{curr} '.' counter(h@{index}counter)");
25+
}
26+
.make-counter-string(@index, @curr-level, @curr) when (@index > @counter-header-level) {
27+
.make-counter-string-fin(@curr);
28+
}
29+
.make-counter-string-fin(@str) {
30+
content: ~"@{str}'.\0000a0\0000a0'";
31+
}
32+
h@{counter-header-level} {
33+
.header-counter-css-rule(counter-reset, @counter-header-level + 1);
34+
&:before{
35+
.header-counter-css-rule(counter-increment, @counter-header-level);
36+
.make-counter-string(
37+
@counter-beginning + 1,
38+
@counter-header-level,
39+
"counter(h@{counter-beginning}counter)");
40+
}
41+
&.no-count:before {
42+
content: none;
43+
counter-increment: none;
44+
}
45+
}
46+
.header-counter-internal((@counter-header-level + 1), @counter-beginning);
47+
}
48+
49+
body {
50+
.header-counter(count-from-h1, 1);
51+
.header-counter(count-from-h2, 2);
52+
}

templates/default/source/style.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@import "font.less";
2+
@import "counter.less";
23
/** For screen preview **/
34
@media screen {
45
article {

0 commit comments

Comments
 (0)