LoginSignup
2
2

More than 5 years have passed since last update.

NSRegularExpression を使って GitHub Flavored Markdown の改行に対応させる

Last updated at Posted at 2012-04-17

Sundown などのパーサに送る前に「改行」を「スペース2個+改行」に置き換えるとBRタグにしてくれるようになる。

- (NSString*)preProcess:(NSData*)data{

    NSMutableString* string=[[NSMutableString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSRegularExpression *regex;
    NSError *error = NULL;

    // ref github.github.com/github-flavored-markdown
    // NSRegularExpression は OS X 10.7 and later
    regex = [NSRegularExpression regularExpressionWithPattern:@"^[\\w\\<>][^\\n]*(\\n+)"
      options:NSRegularExpressionCaseInsensitive|NSRegularExpressionAnchorsMatchLines error:&error];

    if (!error) {
        NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, [string length])];
        NSEnumerator* e = [matches reverseObjectEnumerator];
        NSTextCheckingResult *match;
        while (match = [e nextObject]) {
            NSRange firstHalfRange = [match rangeAtIndex:1];
            if (firstHalfRange.length==1) {
                [string replaceCharactersInRange:firstHalfRange withString:@"  \n"];
            }
        }
    }

    #if !__has_feature(objc_arc)
    [string autorelease];   
    #endif

    return string;
}
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2