diff --git a/Sources/Mustache/Template+Parser.swift b/Sources/Mustache/Template+Parser.swift index 3aaed19..af992b2 100644 --- a/Sources/Mustache/Template+Parser.swift +++ b/Sources/Mustache/Template+Parser.swift @@ -441,7 +441,7 @@ extension MustacheTemplate { /// parse partial name static func parsePartialName(_ parser: inout Parser, state: ParserState) throws -> String { parser.read(while: \.isWhitespace) - let text = String(parser.read(while: self.sectionNameChars)) + let text = String(parser.read(while: self.partialNameChars)) parser.read(while: \.isWhitespace) guard try parser.read(string: state.endDelimiter) else { throw Error.unfinishedName } return text @@ -518,5 +518,5 @@ extension MustacheTemplate { private static let sectionNameCharsWithoutBrackets = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_?*") private static let sectionNameChars = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_?()*") - private static let partialNameChars = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_()") + private static let partialNameChars = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_?()*/") } diff --git a/Tests/MustacheTests/PartialTests.swift b/Tests/MustacheTests/PartialTests.swift index 4d33abf..5b82c96 100644 --- a/Tests/MustacheTests/PartialTests.swift +++ b/Tests/MustacheTests/PartialTests.swift @@ -23,7 +23,7 @@ final class PartialTests: XCTestCase { string: """

Names

{{#names}} - {{> user}} + {{> us/er}} {{/names}} """ ) @@ -33,7 +33,7 @@ final class PartialTests: XCTestCase { """ ) - let library = MustacheLibrary(templates: ["base": template, "user": template2]) + let library = MustacheLibrary(templates: ["base": template, "us/er": template2]) let object: [String: Any] = ["names": ["john", "adam", "claire"]] XCTAssertEqual(