struct LabelsCommand: CommandProcessor { static let commandType: CommandType = .labels let content: Content let results: PageGenerationResults init(content: Content, results: PageGenerationResults, language: ContentLanguage) { self.content = content self.results = results } func process(_ arguments: [String], markdown: Substring) -> String { let labels: [ContentLabel] = arguments.compactMap { arg in let parts = arg.components(separatedBy: "=") guard parts.count == 2 else { invalid(markdown) return nil } guard let icon = PageIcon(rawValue: parts[0].trimmed) else { invalid(markdown) return nil } results.require(icon: icon) return .init(icon: icon, value: parts[1]) } return ContentLabels(labels: labels).content } }