// // Section.swift // // // Created by Thibaut Schmitt on 04/01/2022. // import Foundation extension Strings { class Section { let name: String // OnBoarding var definitions = [Definition]() init(name: String) { self.name = name } static func match(_ line: String) -> Section? { guard line.range(of: "\\[\\[(.*?)]]", options: .regularExpression, range: nil, locale: nil) != nil else { return nil } let sectionName = line .replacingOccurrences(of: ["[", "]"], with: "") .removeLeadingTrailingWhitespace() return Section(name: sectionName) } func hasOneOrMoreMatchingTags(tags: [String]) -> Bool { let allTags = definitions.flatMap { $0.tags } for tag in tags { if allTags.contains(tag) { return true } } return false } } }