[ome] / OMEMailViewer / HTMLString.m Repository:
ViewVC logotype

View of /OMEMailViewer/HTMLString.m

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (download) (annotate)
Sun Apr 6 08:17:50 2008 UTC (2 years, 4 months ago) by msyk
File size: 3611 byte(s)
First Import
//
//  NSMutableString.m
//  OMEMailViewer
//
//  Created by 新居雅行 on 07/02/11.
//  Copyright 2007 __MyCompanyName__. All rights reserved.
//

#import "OMECategory.h"

@implementation NSMutableString ( OME )

- (void)linkedHTML
{
	[self replaceOccurrencesOfRegularExpressionString: 
				@"(s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)"
			withString:@"<a href=\"\\0\">\\0</a>"
			options:NSCaseInsensitiveSearch
			range:NSMakeRange(0, [self length])];
	[self replaceOccurrencesOfRegularExpressionString: 
				@"([a-zA-Z0-9!$&*.=^`|~#%'+\\/?_{}-]+@[a-zA-Z0-9_\\.\\-]+)"
			withString:@"<a href=\"mailto:\\0\">\\0</a>"
			options:NSCaseInsensitiveSearch
			range:NSMakeRange(0, [self length])];
}

- (void) convertHTMLSource
{
	[self replaceOccurrencesOfString:@"&" withString:@"&amp;" 
		options:NSCaseInsensitiveSearch range:NSMakeRange(0, [self length])];
	[self replaceOccurrencesOfString:@"<" withString:@"&lt;" 
		options:NSCaseInsensitiveSearch range:NSMakeRange(0, [self length])];
	[self replaceOccurrencesOfString:@">" withString:@"&gt;" 
		options:NSCaseInsensitiveSearch range:NSMakeRange(0, [self length])];
	[self replaceOccurrencesOfString:[NSString stringWithCString:"\r\n"] withString:@"<br>" 
		options:NSCaseInsensitiveSearch range:NSMakeRange(0, [self length])];
	[self replaceOccurrencesOfString:[NSString stringWithCString:"\n"] withString:@"<br>" 
		options:NSCaseInsensitiveSearch range:NSMakeRange(0, [self length])];
	[self replaceOccurrencesOfString:[NSString stringWithCString:"\r"] withString:@"<br>" 
		options:NSCaseInsensitiveSearch range:NSMakeRange(0, [self length])];
}

- (void) appendAsHTMLSource:(NSString *)aString
{
	[self appendAsHTMLSource:aString tag:nil attributes:nil];
}

- (void) appendAsHTMLSource:(NSString *)aString tag:(NSString *)aTag
{
	[self appendAsHTMLSource:aString tag:aTag attributes:nil];
}

- (void) appendAsHTMLSource:(NSString *)aString tag:(NSString *)aTag attributes:(NSDictionary *)Attributes
{
	if ( aString == nil )	aString = @"";
	NSMutableString* converted =[NSMutableString stringWithCapacity: 100];
	[converted setString: aString];
	[converted convertHTMLSource];
	[converted encloseByTag:aTag attributes:Attributes];
	[self appendString:converted];
}

- (void)PreAppendAsHTMLSource:(NSString *)aString;
{
	[self PreAppendAsHTMLSource:aString tag:nil attributes:nil];
}
- (void)PreAppendAsHTMLSource:(NSString *)aString tag:(NSString *)aTag;
{
	[self PreAppendAsHTMLSource:aString tag:aTag attributes:nil];
}
- (void)PreAppendAsHTMLSource:(NSString *)aString tag:(NSString *)aTag attributes:(NSDictionary *)Attributes
{
	if ( aString == nil )	aString = @"";
	NSMutableString* converted =[NSMutableString stringWithCapacity: 100];
	[converted setString:aString];
	[converted convertHTMLSource];
	[converted encloseByTag:aTag attributes:Attributes];
	[self PreAppendString:converted];
}

- (void)PreAppendString:(NSString *)aString
{
	[self insertString:aString atIndex:0];
}


- (void)encloseByTag:(NSString *)aTag
{
	[self encloseByTag:aTag attributes:nil];
}

- (void)encloseByTag:(NSString *)aTag attributes:(NSDictionary *)Attributes
{
	if ( aTag != nil )	{
		NSMutableString* expandAttrs =[NSMutableString stringWithCapacity: 100];
		[expandAttrs setString:@""];
		if ( Attributes != nil )	{
			NSEnumerator* enumerator = [Attributes keyEnumerator];
			id key;
			while (( key = [enumerator nextObject] ))
				[expandAttrs appendFormat:@" %@=\"%@\"", key, [Attributes objectForKey: key]];
		}
		[self insertString:[NSString stringWithFormat:@"<%@%@>",aTag,expandAttrs] atIndex:0];
		[self appendFormat:@"</%@>",aTag];
	}
}
@end

This site is managed by Masayuki Nii.
ViewVC Help
Powered by ViewVC 1.0.5