Home> 産物: 2005年2月アーカイブ

産物: 2005年2月アーカイブ

リンク文字列相対パス表記 プラグイン

  • 2005年2月22日 16:35
  • 産物

sb 管理者のみをターゲットとした記事 第 2 弾.

管理用ページのアクセス解析表示に関するプラグインを作成した.下記リンク先のスクリーンショットを参照のこと.
プラグイン適用前プラグイン適用後
適用前の表示のされ方が気に食わなかったため,さくっと修正したわけだ.

show_relurl000.zip (v0.00, 1.31KB)
アクセス解析ページの ページ別集計・リンク元集計 において,指定された URL の下位階層に存在するページへのリンク文字列を 相対パス表記するプラグイン.

  • Comments (Close): 2
  • TrackBack (Close): 0

カレンダー CSS 適用プラグイン

  • 2005年2月 9日 06:46
  • 産物

もう少しマシなネーミングはないものか…>タイトル & プラグイン名

このサイトにも表示されているカレンダー.土日祝日をはっきりさせようと思っても,sb のデフォルトでは テンプレートの修正だけで済ませることができない.だからプラグインを作った.

calendar_css000.zip (v0.00, 2.37KB)
sb で表示されるカレンダーの 土日祝日に CSS を適用できるようにするプラグイン.つっても sb が吐き出す XHTML を修正しただけ.

同様の機能を持つ "他者製" プラグインはある.ただ,「些細な点が個人的に気に入らなかった」 & 「sb プラグインを作ってみたかった」 ということだ.

  • Comments (Close): 0
  • TrackBack (Close): 0

自動署名マクロ for EmEditor

  • 2005年2月 9日 00:24
  • 産物

職業柄 (!?),日々 多くのテキストファイルを書いている.TeX とか C とか JavaScript とか Perl とかその他諸々.こーいうファイルには常に,ファイルの概要・著作権表示・作成日・最終更新日 などといった情報を記しておきたい.「最終更新日 - 作成日」 が大きいと少し嬉しくなるのは俺だけ ?これまで手書きでやってきたわけだが,面倒だし,書き忘れてしまう場合が割とあった.

ということで,マクロを使って自動的に挿入・修正することにした.以下のコードをコピペして 拡張子 .jsee で保存して使う.WinXP + EmEditor v4.09 で正常動作を確認.


//
//  signature.jsee
//      自動署名マクロ
//      (C) 2005 Yoshinori IIHOSHI.
//      Created :       2005/02/08 (Tue)
//      Last Modified : 2005/02/08 (Tue)
//

// デフォルトのファイル作成者名
var g_strWriterName = "Yoshinori IIHOSHI";

/*
    getDateString()
        機能:  現在の日付を取得する
        引数:  なし
        戻り値:現在の日付を示す文字列 (書式:yyyy/mm/dd (Www) )
 */
function getDateString()
{
    var date = new Date();
    var year  = date.getFullYear();
    var month = date.getMonth() + 1;
    var day   = date.getDate();
    if (month < 10) {  month = "0" + month;  }
    if (day   < 10) {  day   = "0" + day;    }
    var wday = date.getDay();
    var aWeekday = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

    return year + "/" + month + "/" + day + " (" + aWeekday[wday] + ")";
}

/*
    insertSignature()
        機能:  署名をファイルの先頭に挿入する
                 (ファイル名・概要・著作権表示・作成日・最終更新日)
        引数:  strDate - 現在の日付を示す文字列
        戻り値:なし
 */
function insertSignature(strDate)
{
    var sel     = document.selection;

    sel.StartOfDocument();
    sel.NewLine(3);
    sel.LineUp(false, 2);

    // ファイル名
    sel.StartOfLine();
    sel.Text = "\t" + document.Name;
    sel.NewLine();

    // 概要
    var strDescription = prompt("このファイルの概要を入力してください。", "");
    if (strDescription != "") {
        sel.StartOfLine();
        sel.Text = "\t\t" + strDescription;
        sel.NewLine();
    }

    // 著作権表示
    var date          = new Date();
    var strYear       = date.getFullYear();
    var strWriterName = prompt("このファイルの作成者名を入力してください。",
                               g_strWriterName);
    sel.StartOfLine();
    sel.Text = "\t\t(C) " + strYear + " " + strWriterName + ".";
    sel.NewLine();

    // 作成日時
    sel.StartOfLine();
    sel.Text = "\t\tCreated :       " + strDate;
    sel.NewLine();

    // 最終更新日時
    sel.StartOfLine();
    sel.Text = "\t\tLast Modified : " + strDate;
    sel.NewLine();

    // 改行時のゴミ (インデント) を削除
    sel.StartOfLine();
    sel.NewLine();
    sel.SelectLine();
    sel.Delete();

    sel.StartOfDocument();
    sel.LineDown(true, 7);
    editor.ExecuteCommandByID(4371);    // コメントを挿入
    editor.ExecuteCommandByID(4253);    // タブを空白に変換
    sel.Collapse();

    document.HighlightFind = false;
}

{
    var strDate = getDateString();
    var sel     = document.selection;
    sel.StartOfDocument();
    if (sel.Find("Last Modified : ", eeFindNext | eeFindReplaceCase)) {
        // 最終更新日を現在の日付で置き換える
        sel.Replace("\\d{4}/\\d{2}/\\d{2} \\(\\u\\l{2}\\)", strDate,
                    eeFindReplaceCase | eeFindReplaceRegExp);
        sel.Collapse();
        document.HighlightFind = false;
    }
    else {
        // 署名を新規に挿入する
        insertSignature(strDate);
    }
}

EmEditor のマクロ,と言うよりテキストエディタのマクロを書いたのは恐らく今回が初.今後は積極的に使おうかな.

  • Comments (Close): 3
  • TrackBack (Close): 0

Home> 産物: 2005年2月アーカイブ

カテゴリ
アーカイブ
購読
Powerd By

Return to page top