これは、はてなダイアリー用マクロ(以下「本マクロ」) のマニュアル(d.hatena.mac.html)です。
マクロの概要は、配布ファイルに同梱のREADME.txtをごらんください。秀丸の「マクロ登録」コマンドではメインマクロ(d.hatena.mac)を登録してください。
凡例:ファイルやフォルダの名前、出力やファイルの内容
、入力内容、押下するキー。
目次
本マクロを初めて起動する前にいくつかするべき準備があります。
ここに記載の内容は新規インストール後に必ず行ってください。
なお、README.txtの<5. インストールとバージョンアップ、アンインストール>と重複して記載しています。すでに実施済みの場合やアップデートの場合は読み飛ばしてください。
配布ファイルに同梱された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を一つしか使わない場合
メインマクロ(d.hatena.mac)で指定します。いわゆるハードコーディングです。
複数のIDを使い分けている場合にはこの設定はしないでください。
準備すること:以下の要領で。
メインマクロ(d.hatena.mac)を編集する。9行目あたりに
$id = "";
とあると思うので、(id:foobarの場合$id = "foobar";というように)IDを追記して保存する。
IDパスワード設定ファイル(d.hatena.mac.Settings.cs)に記載します。パスワードの指定もできます。
準備すること:以下の要領で。
IDパスワード設定ファイル(d.hatena.mac.Settings.cs)を編集する。15行目あたりに
hash[""] = ""; // IDとパスワード
とあると思うので、そこにID(と必要に応じてパスワード)を追記して保存する。
下記の例では、1行目はid:userAでそのパスワードを記載しておく場合、2行目はid:userBでそのパスワードを記載しない場合を想定。
hash["userA"] = "passwordA";
hash["userB"] = "";
下記の例では、1行目はid:userAでそのパスワードを記載しておく場合、2行目はid:userBでそのパスワードを記載しない場合を想定。
配布ファイルに同梱されたファイルのうち、ファイル名末尾が".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 | 動作設定を記載したファイル |
本マクロの大まかな流れを説明します。メニューの各項目については個別の説明(後述)を参照してください。
準備をする。終わっていたら次へ。
初回起動時、IDパスワード設定ファイル(d.hatena.mac.Settings.cs)が存在しないとマクロの実行は中断されます。
投稿または編集する場合はあらかじめ文章を用意しておきます(下記のような感じ。詳細はデータ形式についてをご覧ください)。それ以外の場合は次へ。
作成済みの文章の一部を日記として使いたい場合にはその部分を範囲選択してください。(この場合、説明文中の「編集中の秀丸の一番最初」を「選択範囲の一番最初」という風に適宜読み替えてください。)
[カテゴリA] 最初の記事のタイトル
最初の記事の内容。こういう感じで文章を書き連ねていく。
当然はてな記法も記載できる。
*2番目の記事のタイトル
2番目の記事の内容。もし本文を別の記事としていくつかに分けたいのなら、
上の行のように見出し記法で分ける。
最初の記事のタイトルは見出し記法で書かない。
本マクロを起動してください。このマクロで使う実行ファイルetcの有無・新旧を確認し最新のファイルがなければ自動的にコンパイル(作成)します。コンパイル中はアウトプット枠に経過を表示します。
最新のファイルがあったりコンパイルが成功したら次の処理に進みます。うまくいかなかったりした場合はコンパイルについてを参照。
なおコンパイルに成功したら、IDパスワード設定ファイルを削除してもかまいません。
続いてメニューを表示します。以下の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>
という行がデータ(範囲選択していたらその範囲)にあればその指定の下書きを公開します。
当該の下書きを事前に取得しておき、その行頭のdraftをblogに変更してから修正すると簡単にできます。
はてダの記事を削除します。
ほかと同様、blog:http://d.hatena.ne.jp/<あなたのID>/atom/blog/<日付>/<エントリーID>
またはdraft:http://d.hatena.ne.jp/<あなたのID>/atom/draft/<エントリーID>
という行があればその記事を、なければ記事を選択するメニューを表示しますのでそこで選んだ記事を削除します。
はてな記法の一覧をメニューで表示します。ユーザが選択した記法を入力します。
下記のはてな記法の挿入準備が終わっている状態でこの項目を選択すると、はてな記法の一覧をメニューを表示しますので、その中から適切な項目を選択してください。カーソル位置にその書式を挿入し、さらにマクロがよきに計らいます(具体的には以下)。
この機能を使うには準備をしないといけないです。
配布ファイルに同梱のd.hatena.mac.insnotations.mac.sampleをメインマクロ(d.hatena.mac)と同じフォルダに置いておく。
通常すでにあると思います。d.hatena.mac.insnotations.macというファイルでもOK。
だけでいいです。あとはマクロが勝手に処理を進めます。
具体的に何をしているかというと、メインマクロと同じフォルダにd.hatena.mac.insnotations.macという名前のファイルを作り(既にある場合はスキップ)、そのマクロがはてな記法一覧ページにアクセスしデータを取得し加工、自分自身を開き、加工したデータで置き換え...という感じです。
処理が終われば一覧を表示します。
はてな記法入力マクロ(d.hatena.mac.insnotations.mac。特にmake_menu関数)を編集するといくらでも便利になります。
特に、通常文章が挿入される記法((スーパー)pre記法や脚注記法など)中の~~を。。にしておくと、上述の "記法中の「。。」部分を選択範囲全体で置換" という機能を利用できてちょっと編集が楽になると思います。
なお、「データ取得してメニュー再構築」を選択すると、この部分(はてな記法入力マクロのmake_menu関数全体)が再編集されますのでお気をつけください。
メインマクロ(d.hatena.mac)があるフォルダにはてな記法入力マクロ(d.hatena.mac.insnotations.mac)があり実行できているかか確認してください。なお、実行できている場合はタイトルバーが「入力したいはてな記法を選択してください。」となっています。また表示されるメニューが「データ取得してメニュー再構築」旨という項目しかない場合はその項目を選んでください。その際何か失敗していないかご確認ください。その他、管理者権限を確認してください。
各タイトルに記載するカテゴリーを挿入します。
厳密に言うと、カーソル位置のカテゴリ(タグ)を補完します。カーソルが行頭にある場合や ] の後ろにある場合のみ挿入します。
なお、はてダIDが設定されていない(まだ投稿などを行っていない)秀丸では、IDを決定する処理を先に行うので数秒程度時間がかかります。
この機能を使うには準備をした方がいいです。はてダのIDごとに「カテゴリ補完用辞書ファイル」を、メインマクロと同じディレクトリに作り適切に編集するだけです。
以下の例を元に説明します。
[秀丸]
[秀丸][マクロ]
[自作] ソフトもハードも工作もプログラミングも
[秀丸][マクロ][自作][d.hatena.mac] はてなダイアリー用マクロの話題
[秀丸][マクロ]
と1行で記載しています。[自作] ソフトもハードも工作もプログラミングも
では「 ソフトもハードも工作もプログラミングも」という部分が該当します。メインマクロ(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の決定順序を参照してください。
blog:<ID>
とあったら、そこで指定されたIDのはてダに投稿します。draft:<ID>
なら下書きに保存します。修正・削除時、blog:http://d.hatena.ne.jp/<あなたのID>/atom/blog/<日付>/<エントリーID>
という行があればその記事を対象にします。下書きの場合はdraft:http://d.hatena.ne.jp/<あなたのID>/atom/draft/<エントリーID>
です。
なお記事のIDを指定する(手入力する)のは現実的じゃないので、当該の記事を本マクロで事前に取得しておくといいです。
blog: foobar
[秀丸] 秀丸ではてダの日記を書く
今日は例年のように暇なので、秀丸ではてダの日記を投稿できるマクロを早速使ってみた。
という文章で「投稿」したら、id:foobar名義のはてダへの記事になります。
「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を(コピーして)改名してください。
マクロ全体の動作についての設定を記載するセクションです
本マクロがはてダに接続するときに用いる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"
本マクロがはてダに接続するときに用いる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は以下の規則により決定されます。
データ(秀丸で編集中の文章)中にblog:ID
のような行があれば、そこで指定されたもの。
投稿者(日記のID)を指定する例を参照してください。
静的変数中のID。
同じ秀丸で何度も操作する場合は、特にユーザ側でIDを指定しなくてもいいようにしています。
同じ秀丸(同一タブ・同一ファイル)で投稿・修正・削除・取得したことがあれば静的変数としてIDを保存しています。データ中で指定されていない限りこの変数を利用します。
メインマクロ(d.hatena.mac)で指定されたID
メインマクロにIDを指定(いわゆるハードコーディング)してあって、上記の条件を満たさない場合にこのIDを利用します。
IDパスワード設定ファイル(d.hatena.mac.Settings.cs)に記載されたID
上記の条件をすべて満たさない場合にダイアログを表示します。IDパスワード設定ファイルに記載のIDから択一できます。そこで選択されたIDを利用します。
都度入力。
上記の条件をすべて満たさない場合にダイアログを表示します。そこで入力されたIDを利用します。
マクロが確認するのは2つのファイルです。
コンパイルにはcsc.exe(C#)を用います。
コンパイルに失敗したらアウトプット枠やダイアログにエラーを表示します。以下の項目を確認して対処してください。
コンパイルに成功したら、IDパスワード設定ファイルを削除してもかまいません。