DBGHTMLEntities
Usage
To run the example project; clone the repo, and run pod install
from the Example directory first.
Or, for the easiest, run pod try DBGHTMLEntities
To do a simple string decode:
NSString *encodedString = @"Texas A&M needs decoding.";
DBGHTMLEntityDecoder *decoder = [[DBGHTMLEntityDecoder alloc] init];
NSString *decodedString = [decoder decodeString:encodedString];
If you have an NSMutableString you can decode in place using:
NSMutableString *encodedString = @"OH: "Parse all the strings!"";
DBGHTMLEntityDecoder *decoder = [[DBGHTMLEntityDecoder alloc] init];
[decoder decodeStringInPlace:encodedString];
The second method, decodeStringInPlace:
was created explicitly for an issue I had while manipulating NSAttributedStrings to show Tweets with highlighted hashtags, user mentions, and proper URLs based on the Tweet entities. I ended up setting up highlighting attributes on parts of an NSMutableAttributedString
and then calling decodeStringInPlace:
NSMutableAttributedString *tweetString = ...
// highlight user_mentions
// highlight hashtags
// replace urls
DBGHTMLEntityDecoder *decoder = [[DBGHTMLEntityDecoder alloc] init];
[decoder decodeStringInPlace:tweetString.mutableString];
tweetLabel.attributedText = tweetString;
Installation
CocoaPods
DBGHTMLEntities is available through CocoaPods, to install it simply add the following line to your Podfile:
pod "DBGHTMLEntities"
SwiftPM
Add .package(url: "https://github.com/dbgrandi/DBGHTMLEntities.git", from: "1.2.0")
to your package.swift
Author
David Grandinetti, [email protected]
Inspiration
This was essentially a lazy port from the htmlentities RubyGem by Paul Battley. Paul did a better job of providing more granular options. I really just needed the decoder options, so the encoder is not as configurable as his, yet.
License
DBGHTMLEntities is available under the MIT license. See the LICENSE file for more info.