Allow brackets in download buttons
This commit is contained in:
parent
89245f2553
commit
87d54788db
@ -67,10 +67,21 @@ extension String {
|
||||
|
||||
extension Substring {
|
||||
|
||||
func dropBeforeFirst(_ separator: String) -> String {
|
||||
guard contains(separator) else {
|
||||
return String(self)
|
||||
}
|
||||
return components(separatedBy: separator).dropFirst().joined(separator: separator)
|
||||
}
|
||||
|
||||
func between(_ start: String, and end: String) -> String {
|
||||
components(separatedBy: start).last!
|
||||
.components(separatedBy: end).first!
|
||||
}
|
||||
|
||||
func between(first: String, andLast last: String) -> String {
|
||||
dropBeforeFirst(first).dropAfterLast(last)
|
||||
}
|
||||
}
|
||||
|
||||
extension String {
|
||||
|
@ -87,7 +87,7 @@ struct PageContentGenerator {
|
||||
// For a simple boxes: ![box](title;body)
|
||||
// A fancy page link: ![page](page_id)
|
||||
// External pages: ![external](url1, text1; url2, text2, ...)
|
||||
let fileAndTitle = markdown.between("(", and: ")")
|
||||
let fileAndTitle = markdown.between(first: "](", andLast: ")")
|
||||
let alt = markdown.between("[", and: "]").nonEmpty
|
||||
if let alt = alt, let command = ShorthandMarkdownKey(rawValue: alt) {
|
||||
return handleShortHandCommand(command, page: page, language: language, content: fileAndTitle)
|
||||
@ -250,7 +250,7 @@ struct PageContentGenerator {
|
||||
.compactMap { button -> (file: String, text: String, downloadName: String?)? in
|
||||
let parts = button.components(separatedBy: ",")
|
||||
guard parts.count == 2 || parts.count == 3 else {
|
||||
results.warning("Invalid button definition", source: page.path)
|
||||
results.warning("Invalid download definition with \(parts)", source: page.path)
|
||||
return nil
|
||||
}
|
||||
let file = parts[0].trimmed
|
||||
|
Loading…
Reference in New Issue
Block a user