fix: parsing counter content in pseudo element (#2640)

This commit is contained in:
Niklas von Hertzen 2021-08-09 18:43:42 +08:00 committed by GitHub
parent e429e0443a
commit 1941b9e0ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 5 deletions

View File

@ -4,10 +4,7 @@ import {contains} from '../../../core/bitwise';
import {CSSParsedCounterDeclaration} from '../../index'; import {CSSParsedCounterDeclaration} from '../../index';
export class CounterState { export class CounterState {
readonly counters: {[key: string]: number[]}; private readonly counters: {[key: string]: number[]} = {};
constructor() {
this.counters = {};
}
getCounterValue(name: string): number { getCounterValue(name: string): number {
const counter = this.counters[name]; const counter = this.counters[name];
@ -18,7 +15,7 @@ export class CounterState {
return 1; return 1;
} }
getCounterValues(name: string): number[] { getCounterValues(name: string): readonly number[] {
const counter = this.counters[name]; const counter = this.counters[name];
return counter ? counter : []; return counter ? counter : [];
} }
@ -37,6 +34,9 @@ export class CounterState {
const counter = this.counters[entry.counter]; const counter = this.counters[entry.counter];
if (counter && entry.increment !== 0) { if (counter && entry.increment !== 0) {
canReset = false; canReset = false;
if (!counter.length) {
counter.push(1);
}
counter[Math.max(0, counter.length - 1)] += entry.increment; counter[Math.max(0, counter.length - 1)] += entry.increment;
} }
}); });

View File

@ -86,6 +86,20 @@
of the section counter, separated of the section counter, separated
by a period */ by a period */
} }
.issue-2639 {
display: flex;
}
.issue-2639::before {
content: counter(ol0) '. ';
counter-increment: ol0;
}
.issue-2639:first-child {
counter-reset: ol0;
}
</style> </style>
</head> </head>
<body> <body>
@ -163,5 +177,10 @@
<li>item</li> <!-- 2 --> <li>item</li> <!-- 2 -->
</ol> </ol>
<ol>
<li class="issue-2639">one</li>
<li class="issue-2639">two</li>
</ol>
</body> </body>
</html> </html>