Swiftpack.co - dbgrandi/DBGHTMLEntities as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by dbgrandi.
dbgrandi/DBGHTMLEntities 1.1.1
Tools to decode HTML Entity strings (e.g. "&") easily with NSStrings and NSAttributedStrings
⭐️ 21
🕓 3 weeks ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/dbgrandi/DBGHTMLEntities.git", from: "1.1.1")

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.

GitHub

link
Stars: 21
Last commit: 1 hour ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics