はてなダイアリー用マクロ マニュアル(d.hatena.mac.html)

 これは、はてなダイアリー用マクロ(以下「本マクロ」) のマニュアル(d.hatena.mac.html)です。

 マクロの概要は、配布ファイルに同梱のREADME.txtをごらんください。秀丸の「マクロ登録」コマンドではメインマクロ(d.hatena.mac)を登録してください。

 凡例ファイルやフォルダの名前出力やファイルの内容入力内容押下するキー


目次

準備

 本マクロを初めて起動する前にいくつかするべき準備があります。

必須の準備

 ここに記載の内容は新規インストール後に必ず行ってください。

 なお、README.txtの<5. インストールとバージョンアップ、アンインストール>と重複して記載しています。すでに実施済みの場合やアップデートの場合は読み飛ばしてください。

IDパスワード設定ファイルの作成

 配布ファイルに同梱されたd.hatena.mac.Settings.cs.sampleについて、コピーした上でファイル名を変更(下記のようにファイル名末尾の".sample"を削除)してください。

変更前 変更後
d.hatena.mac.Seemings.cs.sample d.hatena.mac.Seemings.cs

 初めて起動する際にIDパスワード設定ファイルがメインマクロ(d.hatena.mac)と同じフォルダに存在しないとマクロの実行は中断されます。なので、ファイル名変更はマクロ実行前に必ず行ってください。

おすすめする準備

 この項目はしてもしなくてもいいけど、した方が断然便利になる準備です。というか、することを前提にマクロを作っています。

 なお、これらの操作は事後(一回以上マクロ実行後)に行ってもいいです。また、バージョンアップの際には(すでにファイルが存在するなら)再度する必要はありません。

 カテゴリ補完用辞書ファイルの作成はてな記法入力マクロの準備も参照してください。

はてダID・パスワードの設定

 通常、はてダに接続するたびにIDとパスワードを問い合わせます。それが面倒くさい場合は準備をした方がちょっと幸せになります。

 ここで指定してある場合でも、記事ごとに都度指定されたIDが優先されます。投稿者(日記のID)を指定する例を参照してください。また一度投稿などを行った秀丸(同じファイル・同じタブ)では同じIDを使い回します。その他、ID決定についての詳細ははてダIDの決定順序で説明しています。

ファイル名の変更

 配布ファイルに同梱されたファイルのうち、ファイル名末尾が".sample"となっているファイルについて、コピーした上でファイル名を変更(下記のようにファイル名末尾の".sample"を削除)しておくといいです。

変更前 変更後 用途
d.hatena.mac.insnotations.mac.sample d.hatena.mac.insnotations.mac はてな記法入力マクロ
d.hatena.mac.YourID.tags.list.sample d.hatena.mac.YourID.tags.list カテゴリ補完用辞書ファイル
d.hatena.mac.ini.sample d.hatena.mac.ini 動作設定を記載したファイル

使い方

 本マクロの大まかな流れを説明します。メニューの各項目については個別の説明(後述)を参照してください。

  1. 準備をする。終わっていたら次へ。

    初回起動時、IDパスワード設定ファイル(d.hatena.mac.Settings.cs)が存在しないとマクロの実行は中断されます

  2. 投稿または編集する場合はあらかじめ文章を用意しておきます(下記のような感じ。詳細はデータ形式についてをご覧ください)。それ以外の場合は次へ。

  3. 本マクロを起動してください。このマクロで使う実行ファイルetcの有無・新旧を確認し最新のファイルがなければ自動的にコンパイル(作成)します。コンパイル中はアウトプット枠に経過を表示します。

     最新のファイルがあったりコンパイルが成功したら次の処理に進みます。うまくいかなかったりした場合はコンパイルについてを参照。
     なおコンパイルに成功したら、IDパスワード設定ファイルを削除してもかまいません。

  4. 続いてメニューを表示します。以下の7項目よりいずれかを選択してください(アクセスキーの押下、たとえば「取得」であればGキーの押下でもいけます)。

投稿

 秀丸で編集中の内容(範囲選択していたらその範囲)を、はてダの日記に投稿したり下書きとして保存します。
(下書きとして保存されていた記事を日記として公開するのは修正でできます。)

 データの形式についてはデータ形式についてをご覧ください。

取得

 記事の一覧をメニューで表示します。選択された記事を取得します。

 編集中の文章に挿入するかダイアログに表示するか尋ねますので、適切な方を選択してください。

修正

 秀丸で編集中の内容(範囲選択していたらその範囲)を、既存の日記や下書きに上書きします。あるいは、下書きを日記として公開するときもここで行います。
(記事のエントリーIDなどを指定する(手入力する)のは現実的じゃないので、事前に取得しておくといいです。)

 データの形式についてはデータ形式についてをご覧ください。

既存の記事を修正

 blog:http://d.hatena.ne.jp/<あなたのID>/atom/blog/<日付>/<エントリーID>またはdraft:http://d.hatena.ne.jp/<あなたのID>/atom/draft/<エントリーID>という行がデータ(範囲選択していたらその範囲)にあればその指定の記事を、なければ記事を選択するメニューを表示しますのでそこで選んだ記事を上書きします。

下書きを公開

 blog:http://d.hatena.ne.jp/<あなたのID>/atom/draft/<エントリーID>という行がデータ(範囲選択していたらその範囲)にあればその指定の下書きを公開します。

 当該の下書きを事前に取得しておき、その行頭のdraftblogに変更してから修正すると簡単にできます。

削除

 はてダの記事を削除します。

 ほかと同様、blog:http://d.hatena.ne.jp/<あなたのID>/atom/blog/<日付>/<エントリーID>またはdraft:http://d.hatena.ne.jp/<あなたのID>/atom/draft/<エントリーID>という行があればその記事を、なければ記事を選択するメニューを表示しますのでそこで選んだ記事を削除します。

はてな記法を挿入

 はてな記法の一覧をメニューで表示します。ユーザが選択した記法を入力します。

 下記のはてな記法の挿入準備が終わっている状態でこの項目を選択すると、はてな記法の一覧をメニューを表示しますので、その中から適切な項目を選択してください。カーソル位置にその書式を挿入し、さらにマクロがよきに計らいます(具体的には以下)。

はてな記法の挿入 - 準備

 この機能を使うには準備をしないといけないです。

  1. 配布ファイルに同梱のd.hatena.mac.insnotations.mac.sampleをメインマクロ(d.hatena.mac)と同じフォルダに置いておく。

    通常すでにあると思います。d.hatena.mac.insnotations.macというファイルでもOK。

  2. ネットにつながる環境でメインマクロを起動する。
  3. [はてな記法]→[データ取得してメニュー再構築]の順で選択する。

だけでいいです。あとはマクロが勝手に処理を進めます。

具体的に何をしているかというと、メインマクロと同じフォルダにd.hatena.mac.insnotations.macという名前のファイルを作り(既にある場合はスキップ)、そのマクロがはてな記法一覧ページにアクセスしデータを取得し加工、自分自身を開き、加工したデータで置き換え...という感じです。

 処理が終われば一覧を表示します。

insnotations.macの改造(秀丸マクロに詳しい方へ)

 はてな記法入力マクロ(d.hatena.mac.insnotations.mac。特にmake_menu関数)を編集するといくらでも便利になります。

 特に、通常文章が挿入される記法((スーパー)pre記法や脚注記法など)中の~~。。にしておくと、上述の "記法中の「。。」部分を選択範囲全体で置換" という機能を利用できてちょっと編集が楽になると思います。

 なお、「データ取得してメニュー再構築」を選択すると、この部分(はてな記法入力マクロのmake_menu関数全体)が再編集されますのでお気をつけください。

うまくいかなかった場合

 メインマクロ(d.hatena.mac)があるフォルダにはてな記法入力マクロ(d.hatena.mac.insnotations.mac)があり実行できているかか確認してください。なお、実行できている場合はタイトルバーが「入力したいはてな記法を選択してください。」となっています。また表示されるメニューが「データ取得してメニュー再構築」旨という項目しかない場合はその項目を選んでください。その際何か失敗していないかご確認ください。その他、管理者権限を確認してください。

カテゴリ(タグ)を挿入

 各タイトルに記載するカテゴリーを挿入します。

 厳密に言うと、カーソル位置のカテゴリ(タグ)を補完します。カーソルが行頭にある場合や ] の後ろにある場合のみ挿入します。

 なお、はてダIDが設定されていない(まだ投稿などを行っていない)秀丸では、IDを決定する処理を先に行うので数秒程度時間がかかります。

準備

 この機能を使うには準備をした方がいいです。はてダのIDごとに「カテゴリ補完用辞書ファイル」を、メインマクロと同じディレクトリに作り適切に編集するだけです。

  1. 配布ファイルに同梱のd.hatena.mac.YourID.tags.list.sampled.hatena.mac.<あなたのID>.tags.listという風に(コピーして)改名する。これを「カテゴリ補完用辞書ファイル」とする。
  2. カテゴリ補完用辞書ファイルを開きカテゴリを記載して閉じる。
辞書ファイルの書式

 以下の例を元に説明します。

    [秀丸]
    [秀丸][マクロ]
    [自作]          ソフトもハードも工作もプログラミングも
    [秀丸][マクロ][自作][d.hatena.mac]   はてなダイアリー用マクロの話題

うまくいかなかった場合

 メインマクロ(d.hatena.mac)があるフォルダにカテゴリ補完用辞書ファイル(d.hatena.mac.<あなたのID>.tags.list)があるか確認してください。このファイルの内容が適切か確認してください。その他、管理者権限を確認してください。

データ形式について

 日記として用いられる文章の形式について説明します。

 なお、範囲選択している場合はその範囲のみを利用します。この場合「編集中の秀丸の一番最初」とあれば「選択範囲の一番最初」という風に適宜読み替えてください。

シンプルな例

 記事のタイトルには編集中の秀丸の一番最初の論理行を、日記の本文には2行目以降を自動的に割り当てます。もちろんはてダの見出し記法を本文中に含めることで新たな別の記事にすることができます。なお、1つめのタイトル(一番最初の論理行)には見出し記法の「*」は不要です。

    [秀丸] 秀丸ではてダの日記を書く  
     今日、秀丸ではてダの日記を投稿できるマクロを見つけた早速使ってみよう。

    *[天気] 今日の天気  
    ところで今日の天気は雨だった。

日付を指定する例

 タイトルよりも前にdate:<日時>とあったら、そこで指定された日時付けの記事とします。

    date: 2010/12/24 19:55  
    [秀丸] 秀丸ではてダの日記を書く  
     今日は例年のように暇なので、秀丸ではてダの日記を投稿できるマクロを早速使ってみた。

という文章では、2010/12/24 19:55付けになります。

 date:24なら今月の24日付、date:19:なら本日の19時付けなどという風に簡単な記載で指定できますが、我ながらこの自動判定は信用してないので、date:12/24とかdate:19:00のようにちょっと丁寧に書くことをおすすめします。
(あ、時間だけの指定でもdate:です。またupdate:updated:も受け付けます。)

 何か記事を取得した時にupdated:~という行があると思いますが、その形式がたぶんもっとも間違えにくいので、面倒でなければその形式で記載されることをおすすめします。

投稿者(日記のID)を指定する例

 対象となるはてダユーザのID・日記の記事をあらかじめ指定しておくことができます。あらかじめIDを決めてしまえば、マクロはユーザ名を問い合わせないので少し処理が早くなります。

 なおデータ中で指定されたIDは他よりも優先されるので、いつもとは違うIDなんかを使う場合におすすめします。詳細ははてダIDの決定順序を参照してください。

複雑な例

 「blog:~」と「date:~」は共存できます。それぞれの後先は関係ありませんが、2つともほかの行(記事のタイトルや本文)よりも前でないといけません。同じ種類のものが複数ある場合はより後のものを対象にします。

    blog: foobar  
    date: 12/24  
    draft: baz  
    date: 2/14  
    [秀丸] 秀丸ではてダの日記を書く  
     今日は例年のように暇なので、秀丸ではてダの日記を投稿できるマクロを早速使ってみた。 

という文章では、id:baz名義のはてダの下書きに本年2月14日付で保存します。

設定

 マクロの動作を任意で変更できる各種の設定について説明します。ここに記載の設定は、特に何もしなくても不都合が起きないと思いますので、必要なときだけ設定してください。

 設定ファイルはd.hatena.mac.iniです。配布ファイルに同梱のd.hatena.mac.ini.sampleを(コピーして)改名してください。

d.hatena.macセクション

 マクロ全体の動作についての設定を記載するセクションです

Cache-Control キー

 本マクロがはてダに接続するときに用いるCOM(Msxml2.XMLHTTP.3.0)のキャッシュコントロールに用いるためのものです。

 なお、ほかのキャッシュ対策として"If-Modified-Since"ヘッダ(すべて"Thu, 01 Jun 1970 00:00:00 GMT"に設定)もあります。その他キャッシュ対策としては"Pragma"キーもあります。

 設定例:デフォルトは ""。

    Cache-Control = "no-cache, no-store, must-revalidate, post-check=0, pre-check=0"

Pragma キー

 本マクロがはてダに接続するときに用いるCOM(Msxml2.XMLHTTP.3.0)のキャッシュコントロールに用いるためのものです。

 この値を0以外にした場合は、"Pragma"ヘッダに"no-cache"という文字列を設定します。

 なお、ほかのキャッシュ対策として"If-Modified-Since"ヘッダ(すべて"Thu, 01 Jun 1970 00:00:00 GMT"に設定)もあります。その他キャッシュ対策としては"Cache-Control"キーもあります。

 設定例:デフォルトは 0。

    Pragma = 1

資料

 動作とかそういう内部的な話です。

はてダIDの決定順序

 通常、投稿などに用いるIDは以下の規則により決定されます。

  1. データ(秀丸で編集中の文章)中にblog:IDのような行があれば、そこで指定されたもの。

     投稿者(日記のID)を指定する例を参照してください。

  2. 静的変数中のID。

     同じ秀丸で何度も操作する場合は、特にユーザ側でIDを指定しなくてもいいようにしています。

     同じ秀丸(同一タブ・同一ファイル)で投稿・修正・削除・取得したことがあれば静的変数としてIDを保存しています。データ中で指定されていない限りこの変数を利用します。

  3. メインマクロ(d.hatena.mac)で指定されたID

     メインマクロにIDを指定(いわゆるハードコーディング)してあって、上記の条件を満たさない場合にこのIDを利用します。

  4. IDパスワード設定ファイル(d.hatena.mac.Settings.cs)に記載されたID

     上記の条件をすべて満たさない場合にダイアログを表示します。IDパスワード設定ファイルに記載のIDから択一できます。そこで選択されたIDを利用します。

  5. 都度入力。

     上記の条件をすべて満たさない場合にダイアログを表示します。そこで入力されたIDを利用します。

コンパイルについて