Skip to content

Tools to decode HTML Entity strings (e.g. "&") easily with NSStrings and NSAttributedStrings

License

Notifications You must be signed in to change notification settings

dbgrandi/DBGHTMLEntities

Repository files navigation

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, dbgrandi@gmail.com

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.

About

Tools to decode HTML Entity strings (e.g. "&") easily with NSStrings and NSAttributedStrings

Resources

License

Stars

Watchers

Forks

Packages

No packages published