diff --git a/GeminiRenderer/GeminiHTMLRenderer.swift b/GeminiRenderer/GeminiHTMLRenderer.swift index 58a9136..9892179 100644 --- a/GeminiRenderer/GeminiHTMLRenderer.swift +++ b/GeminiRenderer/GeminiHTMLRenderer.swift @@ -12,6 +12,8 @@ import HTMLEntities public class GeminiHTMLRenderer { public var linkPrefix: ((URL) -> String?)? + public var addHeadingLineIDs = true + public var addLinkClass = true public init() { } @@ -33,7 +35,11 @@ public class GeminiHTMLRenderer { case let .link(url, text: maybeText): let text = maybeText ?? url.absoluteString let linkPrefix = self.linkPrefix?(url) ?? "" - str += "

\(linkPrefix)\(text.htmlEscape())

" + str += "\(text.htmlEscape())

" case .preformattedToggle(alt: _): inPreformatting = !inPreformatting if inPreformatting { @@ -46,7 +52,11 @@ public class GeminiHTMLRenderer { str += "\n" case let .heading(text, level: level): let tag = "h\(level.rawValue)" - str += "<\(tag) id=\"l\(index)\">\(text.htmlEscape())" + str += "<\(tag)" + if addHeadingLineIDs { + str += " id=\"l\(index)\"" + } + str += ">\(text.htmlEscape())" case let .unorderedListItem(text): if !inList { inList = true