Add library and support for partials

This commit is contained in:
Adam Fowler
2021-03-12 08:41:13 +00:00
parent 7f61c8dd72
commit fc53f09dfb
6 changed files with 109 additions and 41 deletions

View File

@@ -53,6 +53,11 @@ extension HBMustacheTemplate {
parser.unsafeAdvance()
_ = try parseSection(&parser)
case ">":
parser.unsafeAdvance()
let name = try parseSectionName(&parser)
tokens.append(.partial(name))
default:
let name = try parseSectionName(&parser)
tokens.append(.variable(name))
@@ -66,7 +71,9 @@ extension HBMustacheTemplate {
}
static func parseSectionName(_ parser: inout HBParser) throws -> String {
parser.read(while: \.isWhitespace)
let text = parser.read(while: sectionNameChars )
parser.read(while: \.isWhitespace)
guard try parser.read("}"), try parser.read("}") else { throw HBMustacheError.unfinishedSectionName }
return text.string
}