Skip to content

Latest commit

 

History

History
72 lines (45 loc) · 2.77 KB

README.md

File metadata and controls

72 lines (45 loc) · 2.77 KB

DBGHTMLEntities

Build Status Swift Package Manager compatible Version Platform

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.