スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ソースコードをblogに貼る

このブログではよくソースコードを貼りますが、そのためのツールとしてソースコード HTML化 コンバーター「唐辛子」を利用していました。
ところが、最近flashのバージョンを上げたせいか、改行がうまく反映されなくなっちゃいました。
しょうがないので、自前でおんなじようなツールをXcodeで作ってみました。
Code2Html.png
おんなじようなと言いつつ、実はかなり劣化してまして、予約語やコメント等に色を付けることができません。HTMLのエスケープくらいしかしてません。
ちなみに、HTMLのエスケープはgoogle-toolbox-for-macを利用しています。
あれ? ってことは、InterfeceBuilderでGUI作っただけとか?
まあ、ほとんどそんなもんですが、一応変換ボタンがクリックされた時のソースを載せます。これだけでも、慣れないもので色々調べながら作ったので、時間はかかりました。
#import "AppController.h"
#import "GTMNSString+HTML.h"

@implementation AppController

- (IBAction) convertAction:(id)sender
{
// ソースコード変換
NSString* convertedText = @"<pre><code>";
convertedText = [convertedText stringByAppendingString:[[[codeTextView textStorage] string] gtm_stringByEscapingForHTML]];
convertedText = [convertedText stringByAppendingString:@"</code></pre>"];

// 変換後コードを設定
NSTextStorage* htmlStorage = [htmlTextView textStorage];
NSString* htmlText = [htmlStorage string];
[htmlStorage replaceCharactersInRange:NSMakeRange(0, [htmlText length]) withString:convertedText];

// ペーストボードにコピー
NSPasteboard* pasteBoard = [NSPasteboard generalPasteboard];
[pasteBoard declareTypes:[NSArray arrayWithObjects:NSStringPboardType, nil] owner:self];
[pasteBoard setString:convertedText forType:NSStringPboardType];

// プレビューに表示
[[webView mainFrame] loadHTMLString:htmlText baseURL:nil];
[tabView selectLastTabViewItem:nil];

}
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。