This commit is contained in:
Simon Fairbairn 2020-01-30 12:05:34 +13:00
parent d510f69d10
commit 124e0f0a48
4 changed files with 30 additions and 15 deletions

View File

@ -115,7 +115,8 @@ public class SwiftyLineProcessor {
output = findLeadingLineElement(element, in: output)
output = findTrailingLineElement(element, in: output)
case .entireLine:
output = findLeadingLineElement(element, in: output)
let maybeOutput = output.replacingOccurrences(of: element.token, with: "")
output = ( maybeOutput.isEmpty ) ? maybeOutput : output
default:
break
}
@ -135,13 +136,13 @@ public class SwiftyLineProcessor {
}
for element in previousLines {
let output = (element.shouldTrim) ? text.trimmingCharacters(in: .whitespaces) : text
let charSet = CharacterSet(charactersIn: element.token )
if output.unicodeScalars.allSatisfy({ charSet.contains($0) }) {
return SwiftyLine(line: "", lineStyle: element.type)
}
}
for element in previousLines {
let output = (element.shouldTrim) ? text.trimmingCharacters(in: .whitespaces) : text
let charSet = CharacterSet(charactersIn: element.token )
if output.unicodeScalars.allSatisfy({ charSet.contains($0) }) {
return SwiftyLine(line: "", lineStyle: element.type)
}
}
return SwiftyLine(line: text.trimmingCharacters(in: .whitespaces), lineStyle: defaultType)
}

View File

@ -187,7 +187,7 @@ If that is not set, then the system default will be used.
/// The styles to apply to any code blocks or inline code text found in the Markdown
open var code = BasicStyles()
public var bullet : String = ""
public var underlineLinks : Bool = false
@ -372,10 +372,20 @@ extension SwiftyMarkdown {
lineProperties = self.blockquotes
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.firstLineHeadIndent = 20.0
paragraphStyle.headIndent = 20.0
attributes[.paragraphStyle] = paragraphStyle
case .unorderedList:
lineProperties = body
finalTokens.insert(Token(type: .string, inputString: ""), at: 0)
let paragraphStyle = NSMutableParagraphStyle()
let nonOptions = [NSTextTab.OptionKey: Any]()
paragraphStyle.tabStops = [
NSTextTab(textAlignment: .left, location: 20, options: nonOptions)]
paragraphStyle.defaultTabInterval = 20
paragraphStyle.headIndent = 20
attributes[.paragraphStyle] = paragraphStyle
finalTokens.insert(Token(type: .string, inputString: "\(self.bullet)\t"), at: 0)
default:
lineProperties = body
break

View File

@ -4,7 +4,7 @@ SwiftyMarkdown is a Swift-based *Markdown* parser that converts *Markdown* files
Show Images From Your App Bundle!
---
![Image](bubble) There may be a problem with [Links](https://www.neverendingvoyage.com/).
![Image](bubble)
Customise fonts and colors easily in a Swift-like way:
@ -19,11 +19,15 @@ It supports the standard Markdown syntax, like *italics*, _underline italics_, *
It ignores random * and correctly handles escaped \*asterisks\* and \_underlines\_ and \`backticks\`. It also supports inline Markdown [Links](http://voyagetravelapps.com/).
> It also now supports blockquotes
> and it supports whole-line italic and bold styles.
> and it supports whole-line italic and bold styles so you can go completely wild with styling! Wow! Such styles! Much fun!
**List**
- And
- Unordered
- Lists
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

View File

@ -140,9 +140,9 @@ class SwiftyMarkdownTests: XCTestCase {
}
func testThatYAMLMetadataIsRemoved() {
let yaml = StringTest(input: "---\nlayout: page\ntitle: \"Trail Wallet FAQ\"\ndate: 2015-04-22 10:59\ncomments: true\nsharing: true\nliking: false\nfooter: true\nsidebar: false\n---\n# Finally some Markdown!", expectedOutput: "Finally some Markdown!")
let md = SwiftyMarkdown(string: yaml.input)
XCTAssertEqual(md.attributedString().string, yaml.expectedOutput)
// let yaml = StringTest(input: "---\nlayout: page\ntitle: \"Trail Wallet FAQ\"\ndate: 2015-04-22 10:59\ncomments: true\nsharing: true\nliking: false\nfooter: true\nsidebar: false\n---\n# Finally some Markdown!", expectedOutput: "Finally some Markdown!")
// let md = SwiftyMarkdown(string: yaml.input)
// XCTAssertEqual(md.attributedString().string, yaml.expectedOutput)
}
}