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;
DBGHTMLEntities is available through CocoaPods, to install it simply add the following line to your Podfile:
pod "DBGHTMLEntities"
Add .package(url: "https://github.com/dbgrandi/DBGHTMLEntities.git", from: "1.2.0")
to your package.swift
David Grandinetti, dbgrandi@gmail.com
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.
DBGHTMLEntities is available under the MIT license. See the LICENSE file for more info.