feat: support filters in if/unless/case, see #287

This commit is contained in:
harttle
2021-02-12 22:22:41 +08:00
parent 4e82da689e
commit 2f059f6a25
18 changed files with 164 additions and 176 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ export default class Parser {
return new Tag(token, remainTokens, this.liquid)
}
if (isOutputToken(token)) {
return new Output(token as OutputToken, this.liquid.filters, this.liquid)
return new Output(token as OutputToken, this.liquid)
}
return new HTML(token)
} catch (e) {
+6 -1
View File
@@ -23,6 +23,7 @@ import { NormalizedFullOptions, defaultOptions } from '../liquid-options'
import { TYPES, QUOTE, BLANK, IDENTIFIER } from '../util/character'
import { matchOperator } from './match-operator'
import { Trie } from '../util/operator-trie'
import { Expression } from '../render/expression'
export class Tokenizer {
p = 0
@@ -37,7 +38,11 @@ export class Tokenizer {
this.N = input.length
}
* readExpression (): IterableIterator<Token> {
readExpression () {
return new Expression(this.readExpressionTokens())
}
* readExpressionTokens (): IterableIterator<Token> {
const operand = this.readValue()
if (!operand) return