an experiment in making a cocoa webkit browser manageable under X11
at master 67 lines 2.9 kB view raw
1// 2// NSString+HTML.h 3// MWFeedParser 4// 5// Copyright (c) 2010 Michael Waterfall 6// 7// Permission is hereby granted, free of charge, to any person obtaining a copy 8// of this software and associated documentation files (the "Software"), to deal 9// in the Software without restriction, including without limitation the rights 10// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11// copies of the Software, and to permit persons to whom the Software is 12// furnished to do so, subject to the following conditions: 13// 14// 1. The above copyright notice and this permission notice shall be included 15// in all copies or substantial portions of the Software. 16// 17// 2. This Software cannot be used to archive or collect data such as (but not 18// limited to) that of events, news, experiences and activities, for the 19// purpose of any concept relating to diary/journal keeping. 20// 21// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27// THE SOFTWARE. 28// 29 30#import <Foundation/Foundation.h> 31 32// Dependant upon GTMNSString+HTML 33 34@interface NSString (HTML) 35 36// Strips HTML tags & comments, removes extra whitespace and decodes HTML character entities. 37- (NSString *)stringByConvertingHTMLToPlainText; 38 39// Decode all HTML entities using GTM. 40- (NSString *)stringByDecodingHTMLEntities; 41 42// Encode all HTML entities using GTM. 43- (NSString *)stringByEncodingHTMLEntities; 44 45// Minimal unicode encoding will only cover characters from table 46// A.2.2 of http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters 47// which is what you want for a unicode encoded webpage. 48- (NSString *)stringByEncodingHTMLEntities:(BOOL)isUnicode; 49 50// Replace newlines with <br /> tags. 51- (NSString *)stringWithNewLinesAsBRs; 52 53// Remove newlines and white space from string. 54- (NSString *)stringByRemovingNewLinesAndWhitespace; 55 56// Wrap plain URLs in <a href="..." class="linkified">...</a> 57// - Ignores URLs inside tags (any URL beginning with =") 58// - HTTP & HTTPS schemes only 59// - Only works in iOS 4+ as we use NSRegularExpression (returns self if not supported so be careful with NSMutableStrings) 60// - Expression: (?<!=")\b((http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?) 61// - Adapted from http://regexlib.com/REDetails.aspx?regexp_id=96 62- (NSString *)stringByLinkifyingURLs; 63 64// DEPRECIATED - Please use NSString stringByConvertingHTMLToPlainText 65- (NSString *)stringByStrippingTags __attribute__((deprecated)); 66 67@end