Converts NSAttributedStrings between AppKit, CoreText, UIKit and HTML.
Not crazy at all: AttributedStringHTMLTransformation.
Ashton has two parts
a) It can convert the attributes of a AppKit, CoreText or UIKit NSAttributedString to and from an intermediate cross-platform Ashton-specific representation. This allows us to convert e.g. AppKit -> Ashton intermediate -> CoreText.
b) It can convert between a NSAttributedString with intermediate attributes and HTML. This allows us to transfer a NSAttributedString between Mac and iOS.
AppKit Input | Intermediate | AppKit Output |
---|---|---|
NSParagraphStyleAttributeName with textAlign |
@"paragraph": @{ @"textAlignment":@"left|right|center" } |
NSParagraphStyleAttributeName with textAlign |
NSFontAttributeName |
@"font": @{ @"traitBold":@YES, @"traitItalic":@NO, @"features":@[@[@5, @1], @[@14, @1]], @"pointSize":@12, @"familyName":@"Helvetica" } |
NSFontAttributeName |
NSSuperscriptAttributeName with values 1 or -1 |
@"verticalAlign": @"super|sub" |
NSSuperscriptAttributeName |
NSUnderlineColorAttributeName |
@"underlineColor": @[@255, @0, @0, @1.0] |
NSUnderlineColorAttributeName |
NSStrikethroughStyleAttributeName |
@"strikethrough": @"single|thick|double" |
NSStrikethroughStyleAttributeName |
NSStrikethroughColorAttributeName |
@"strikethroughColor": @[@255, @0, @0, @1.0] |
NSStrikethroughColorAttributeName |
NSForegroundColorAttributeName |
@"color": @[@255, @0, @0, @1.0] |
NSForegroundColorAttributeName |
NSStrokeColorAttributeName |
@"color": @[@255, @0, @0, @1.0] |
NSForegroundColorAttributeName |
NSLinkAttributeName |
@"link": @"http://google.com/" |
NSLinkAttributeName |