2022年11月27日日曜日

moeをgithub pagesに移転しました

moeをgithub pagesに移行しました。


それにあわせて色々と内容を見直してます。以前よりも導入が容易になっているので、メモの方法論に興味がある方はどうぞ!なにかあれば、ここのコメント欄に書くか、twitter、Mail等で連絡して下さい。

私が運営している他のgithub pagesについてもよろしく! 

2022年11月18日金曜日

howmのタイトル表示方法変更

最近、moeのHPをgoogleSiteからGitHub Pagesに移行しようと画策しており、その過程でスクリプトを見直している。 今までは、howmファイルのファイル名と一行目を対応させたコメントファイルを作成していたが、これを各エントリのコメントを変更するだけにする。コメントファイルは、XC_cwrtで自動作成すればいい。これなら、スクリプトをLOADEVENTに登録しても、以前のように無限ループに陥る心配をする必要がなくなるわけだ(多分)。

やり方

以下を編集して取込み。

XC_cwrt    = 2    ; コメントファイル作成は    0:手動 1:確認有 2:自動

以下をScriptフォルダに保存。

title2comment.js

//!*script

// コメントのないhowmファイルの一行目をコメントに

for (var a = PPx.Entry.AllEntry; !a.atEnd(); a.moveNext() ){
  // フォルダを除外
  if (a.Attributes & 16){
    continue;
  // .howmかつコメントがないファイルへの処理
  } else if (a.Name.match(/.howm$/i) && a.Comment.match(/^$/i)){
    var dir = PPx.Extract('%1');
    var entryName = a.Name;
    var f = dir + "\\" + entryName;
    // 一行目を読み込む。文字化けする場合は"sjis"を"utf-8"に
    var s = readFile(f, "sjis");
    // 2~40字を切り取ったものをコメントに
    a.Comment = s.slice( 2,40 );
  }
}

// ファイルの一行目を読み込む関数
function readFile(fname, charset) {
  if (charset == undefined) {
    charset = "_autodetect_all";
  }
  var adTypeBinary = 1, adTypeText = 2;
  var adReadAll = -1,   adReadLine = -2;
  var s = new ActiveXObject("ADODB.Stream");
  s.Type = adTypeText;
  s.charset = charset;
  s.Open();
  s.LoadFromFile(fname);
  var text = s.ReadText(adReadLine);
  s.Close();
  return text;
}

howmファイルを入れているフォルダで以下を実行。

*diroption -thisbranch cmd:"*script %0\Script\title2comment.js"