無料ブログ「rentafree.net」の管理人ブログ

エディターを改良しました

エディターの表組みまわりを改良しました。

マウス操作で<td>←→<th>変換できないのと、
マウス位置に列や行を挿入できないと不便な場合があると思ったんで、
そこらの機能をつけました。

あと、マウス操作で
colspan、rowspan
いじれるようにしました。(セル統合だけ)
ただ、
rowspanつきのセルをcolspanで横統合とか、
行削除とか絡んでくる複雑な表組み操作をすると崩れちゃう場合があります。

一応アクセス解析つけた

一応アクセス解析出来上がったんで、
ブログ管理ツールにつけといた。
自作アクセス解析ツールのMultiSiteAnalyzerMultiSiteAnalyzer Serverのコードかなり流用できたんですぐできた。

アクセス解析機能はまだテスト中です。
Firefox以外でのテストもしてません。
ログ記録の方もちょいと怪しい・・・
古いログの削除機能もまだ作ってない。

MultiSiteAnalyzerと同じで、
対象ログ全部送ってクライアント側で解析する仕様なんで、
転送量が多くなると困るんで1日1万件を上限とさせていただきました。
上限オーバーの場合は時間ソートで古いの1万件となります。
今機能ついてないけど、上限の場合はメッセージだすようにした方がいいな。


ScribeFireのバグに対応しました

ScribeFireから投稿してみたら、
mt.setPostCategories
が正常に行えなかったので対応しました。

これは、カテゴリIDが「0」のときに、
ScribeFireが「0」ではなく空要素を送ってくるみたいなんでカテゴリIDの取得ができずにエラーになってました。
どう考えてもScribeFire側のバグですが、対応しておきました。


この投稿はScribeFireからの投稿です。

アクセス解析実装できそう

ユーザーページのアクセス解析の実装を考えて、
ユーザーサイトのログ記録システム作った。

ってわけで、次の機能追加はアクセス解析機能になりそうな感じです。
たぶん1日1万件を上限にすると思います。

でも、先にテストサーバー用意しないとダメな感じ。

記事の書き方

記事編集のエディタ説明です。

右上にある「ソース」ってのクリックすると通常の<textarea>モードとなります。
「ソース」だった部分が「プレビュー」に変わりますんで、それクリックすると通常モードに戻ります。
<textarea>モードだとHTMLタグなどが有効になります。(ただし、モード切り替え時に変換処理があるのでモード切り替えすると内容変わっちゃうこともあります。)
通常モードだとタグなどの特殊文字はエスケープされます。

上部の<B>ってのクリックすると、選択範囲の文字列が太字になります。
上部の<I>ってのクリックすると、選択範囲の文字列が斜体になります。
上部の<S>ってのクリックすると、選択範囲の文字列が打ち消し線になります。
上部の<U>ってのクリックすると、選択範囲の文字列が下線つきになります。
これらは、選択範囲にタグが含まれると、そのタグは消えます。

<B><I><S><U>
で修飾した文章にマウスカーソルを合わせて右クリックすると、
「<タグ>解除」って項目がでます。
選択するとタグが解除されます。

複数行選択して、
<UL>ってのクリックすると、選択範囲がリスト(番号なし)になります。
<OL>ってのクリックすると、選択範囲がリスト(番号あり)になります。
これらは、選択範囲にタグが含まれると、場合によっては機能しません。
選択範囲+1行がリストになることが多いと思いますが、
文字を入力せずに改行すると消えると思います。

<SPAN>は、
主に文字に色をつけたい場合に使います。
クリックすると選択範囲が、「<span>選択範囲</span>」の様になりますが、
この時点では見た目に変化はありません。
適用した範囲で右クリックすると設定画面がでますので、CSS設定とかできます。
選択範囲にタグが含まれている場合はタグは消えます。

<DIV>は、
主に枠をつけたりするのに使います。
クリックすると選択範囲が、「<div>選択範囲</div>」になります。
こちらもこの時点ではあまり変化がありませんが、
適用範囲を右クリックで設定画面をだしてCSS設定できます。
選択範囲にタグが含まれていると、場合によっては変換できません。

<A>は、リンクです。
クリックすると設定画面が開きます。
文章を選択している状態でクリックだと文字列挿入状態となります。
選択範囲が置換されます。
なにも選択指定ない状態だと文章の末尾に追加となります。
画像を選択した状態でクリックすると、画像をリンクにできます。
リンク設定済みの位置で右クリックすると変更できます。

<IMG>は、選択位置(又は末尾)に画像を埋め込みます。
クリックすると設定画面がでます。
設置済みの画像右クリックで変更できます。

<TABLE>は表組みを作成します。
選択位置又は末尾。
初期状態で2x2で枠線つきの設定となっています。
設置済みの表を右クリックで変更できます。


右クリックメニューから、又はCtrl+Z、Ctrl+Shift+Zでアンドゥ、リドゥできますが、
独自実装なので、ブラウザ実装の<textarea>モードのアンドゥ、リドゥと内容が違うので注意です。


テンプレートの作り方

個人テンプレートのみ編集が可能です。
共有テンプレートに登録すると編集不可になりますので、
未完成のテンプレートは共有登録しないように。

「テンプレート設定」の一覧に表示されるテンプレートから「複製」すると、
まったく同じ内容の個人テンプレートができあがります。
複製で個人テンプレートを作成し、個人テンプレートを編集して新しいテンプレートを作ります。

編集画面では、
「テンプレート名」「HTML」「CSS」「テンプレート説明」
の4項目が編集できます。
テンプレート名はわかりやすい名前で適当につけてください。重複不可です。
テンプレートの説明は共有テンプレートにしない場合はどうでもいいと思います。255byteまで。

CSSとHTMLは広めの<textarea>ですが、
全部コピーしてクライアントのテキストエディタで編集して貼り付けた方が楽だと思います。

CSSは通常のCSSです。

HTMLの方は、基本はHTMLですが、
「&$変数名;」
「&&特殊構文名; 処理内容 &/特殊構文名;」
といった感じで、変数と特殊構文が有効になり、
ブログの内容が埋め込まれます。

テンプレート構文はテンプレート以外にフリーエリアプラグインでも有効です。

公式テンプレートがXHTML仕様のブログサービスなどもありますが、
ブログの記事を自作でないブログエディターで記事を編集する場合は、XHTML準拠の記事が生成されるとは限りませんので、
XHTMLやXMLテンプレートはおすすめしません。HTMLテンプレートを推薦します。


トラックバックループ

&&TrackbackLoop;
&/TrackbackLoop;
の間の部分に、記事ループ中のその記事に対するトラックバックが繰り返し埋め込まれます。
&&EntryLoop;
&/EntryLoop;
の間で使います。


以下の変数が有効です。
&$TrackbackLoopCount;
トラックバックループのループカウント。0から。
&$TrackbackLoopId;
トラックバックID。
&$TrackbackLoopBlogName;
トラックバック送信元のブログ名。
&$TrackbackLoopUrl;
トラックバックURL。
&$TrackbackLoopExcerpt;
トラックバック要約。
&$TrackbackLoopTitle;
トラックバックのタイトル
&$TrackbackLoopDateSecond;
秒。
&$TrackbackLoopDateMinute;
分。
&$TrackbackLoopDateHour;
時。
&$TrackbackLoopDateDay;
日。
&$TrackbackLoopDateMonth;
月。
&$TrackbackLoopDateYear;
年。

コメントループ

&&CommentLoop;
&/CommentLoop;
の間の部分に、記事ループ中のその記事に対するコメントを繰り返し埋め込まれます。
&&EntryLoop;
&/EntryLoop;
の間で使います。


以下の変数が有効です。
&$CommentLoopCount;
コメントループ中のループカウント。0から。
&$CommentLoopId;
コメントループ中のそのコメントのコメントID。
&$CommentLoopName;
コメントループ中のそのコメントの投稿者名。
&$CommentLoopUrl;
コメントループ中のそのコメントのURL。
&$CommentLoopBody;
コメントループ中のそのコメントの本文。
&$CommentLoopDateSecond;
秒。
&$CommentLoopDateMinute;
分。
&$CommentLoopDateHour;
時。
&$CommentLoopDateDay;
日。
&$CommentLoopDateMonth;
月。
&$CommentLoopDateYear;
年。