日毎のファイルで「続きを読む」(タイトル修正)
2006-07-31-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]

(タイトル間違えた… デフォルトの「アイテム毎で続きを読む」を改造、だ)
できた^^;
というか、かなり無理矢理;
続きを読む

復帰
2006-07-23-4 / カテゴリ: [changelog][diary] / [permlink]

よかった、更新できた(^^;

死の行進中にPCが(2台)ふっ飛んで行進終了後に時間外手当てでPCを2台購入したは良いが、なかなかセットアップが終わらず(というか次のプロジェクトに突っ込んだ)

ま、いいや。

「抜け」分はボチボチ(古い日付でこっそり)更新予定。
たぶん。

rdfには最後のカテゴリ名だけ表示
2005-07-06-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]

[2005-06-14-2]でカテゴリ名を RSS フィードに表示するようにしたけど、カテゴリの数が多いと(こんな使い方余りいない??)、Firefox のライブブックマークでの非表示部分が多くなってしまう。
ので、記述しているカテゴリ名のうち、最後の1個だけを表示するように修正

前回の状態からは
--- chalow.20050706     2005-06-29 19:40:01.000000000 +0900
+++ chalow      2005-07-06 17:55:49.000000000 +0900
@@ -1102,7 +1102,7 @@

            push @items, {
                permlink => $permlink,
-               itemheader => html2xmlstr("[".join("][", @{$all_entries{$ymd}{$i}{cat}})."]".$all_entries{$ymd}{$i}{h}),
+               itemheader => html2xmlstr("[" . $all_entries{$ymd}{$i}{cat}[$#{$all_entries{$ymd}{$i}{cat}}] . "]" . $all_entries{$ymd}{$i}{h}),
                itemauthor => $all_entries{$ymd}{$i}{a},
                itemcontent => $cont,
                itemcontentencoded => $coen,
てな感じで。

スゲー見にくいけど、要は
$array[$#array]
で、配列最後の要素をとってるだけ。
先頭がよければ、0 で良い(未確認)
Referrer (Inside): [2006-07-30-1]

カテゴリ一覧を大文字小文字無視でソート
2005-06-30-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]

ま、これは簡単か
--- chalow.20050030     Fri Jun 24 23:51:11 2005
+++ chalow      Thu Jun 30 00:04:47 2005
@@ -1185,7 +1185,7 @@
     return if ($output_cat_pages == 0 and $cat_page_cgi eq "");

     my @lines = ();
-    foreach my $cat (sort keys %category_count) {
+    foreach my $cat (sort { lc $a cmp lc $b } keys %category_count) {
        my $n = $category_count{$cat};
 #    foreach my $cat (sort keys %category_item) {
 #      my $n = scalar(@{$category_item{$cat}});

rdfファイルにもカテゴリ表示
2005-06-14-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]

[2005-06-13-2]の続き。
sub write_rss_file の itemheader にタイトル名を突っ込む箇所に、同じように、カテゴリ名も含ませる
--- chalow.org     2005-06-13 18:00:26.000000000 +0900
+++ chalow      2005-06-14 12:55:53.000000000 +0900
@@ -1102,7 +1102,7 @@

            push @items, {
                permlink => $permlink,
-               itemheader => html2xmlstr($all_entries{$ymd}{$i}{h}),
+               itemheader => html2xmlstr("[".join("][", @{$all_entries{$ymd}{$i}{cat}})."]".$all_entries{$ymd}{$i}{h}),
                itemauthor => $all_entries{$ymd}{$i}{a},
                itemcontent => $cont,
                itemcontentencoded => $coen,

って、まだ www.jp-z.jp のには反映してないんだけど。
Referrer (Inside): [2006-07-30-1]

chalow の「最近の話題」で、タイトルにカテゴリ表示
2005-06-13-2 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]

sub write_latest_item_list_file の部分。
$all_entries{$ymd}{$i}{cat} に、カテゴリ文字列の入った配列のリファレンスがあるんで、これをくっつければいい。
foreach my $i (sort {$b <=> $a} keys %{$all_entries{$ymd}}) {
  next if ($i !~ /^\d/);
    my ($ym) = ($ymd =~ /^(\d{4}-\d\d)-\d\d/);
    my $c = $all_entries{$ymd}{$i}{h};
    $c =~ s/[\t\n]//g;
    $c =~ s/\s\s+/ /g;
    [...]
    $c = $c . "[" . join("][", @{$all_entries{$ymd}{$i}{cat}}) . "]";    # <= ココ
Referrer (Inside): [2005-06-14-1]

chalow ラッパー CGI (ChangeLog to HTML)
2005-06-06-1 / カテゴリ: [perl][programming][changelog][CGI][chalow] / [permlink]

[2005-06-03-1] のやつ。
まず、CGI でファイルアップローダ(chlogup.cgi)をテキトーに作成
#!/usr/bin/perl
use CGI;
my $cgi = new CGI;
my $updata = $cgi->param('file');
my $chfile = "ChangeLog";

print $cgi->header('text/plain');

unless (open F, "> $chfile") {
  print "open error $chfile: $!\n";
  exit 1;
}
while (<$updata>) {
  print F;
}
close F;

print "exec chalow start\n";
print `/foo/bar/exec.sh 2>&1`;
print "exec chalow done\n";

で、ChangeLog をさくらへ up し、chalow を実行するシェルスクリプト(exec.sh)を作成
#!/bin/sh

/bin/cat ChangeLog | /usr/bin/ssh -i sshの鍵 username@sakura 'cat | env PERL5LIB=local/chalow/ local/chalow/chalow -c local/chalow/cl.conf -o www/changelog -'

CGI を呼ぶ HTML もテキトーに。
<html>
<body>
<form action="chlogup.cgi" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit">
</form>
</body>
</html>

さくらのサーバ上の ~/local/chalow 以下に chalow があるのが前提。

あとは、https でアクセスできるサーバにおいて、BASIC認証なりなんなりで制限すればいい(httpsなんでBASIC認証で十分でしょ)

chalow で使う ChangeLog のフォーマットを修正
2005-06-04-1 / カテゴリ: [perl][changelog][chalow] / [permlink]

[2005-04-18-1] から chalow を使い始めたけど、ジツは使っていた ChangeLog のフォーマットとあってなかった。私が書いてたフォーマット
YYYY-mm-dd  name <mailaddr>

	* category1 category2...: title1
	内容...
	
	* category1 ...: title2
	内容...
を html にしたかったけど、設定修正のみだと対応できなかった。

で、ChangeLogReader.pm を修正
--- ChangeLogReader.pm.org	2005-06-04 23:41:10.578203100 +0900
+++ ChangeLogReader.pm	2005-06-04 23:42:36.772143900 +0900
@@ -91,28 +91,24 @@
     # item header - case 2: "* AAA:\n"
     # item header - case 3: "* AAA: BBB\n"
     # item header - case 4: "* AAA\n"
-    my ($rest) = ($ih =~ s/:(\s.*)$/:/s) ? $1 : ""; # for case 1,2,3
-    $rest =~ s/^ +//;
-    my $cont = $rest.join("", @$linesp);
-    if ($ih =~ /^p:/) { # Ignoring private items
-	return;
-    } elsif ($ih =~ /^(message-top|message-bottom):/) {	# pragma items
-	$entp->{$1} = $rest.$cont;
-	return;
-    }
 
-    # item ID : Y in XXXX-XX-XX-Y
-    $entp->{curid}++;
+    my $cont = join "", @$linesp;
 
     # Processing item header
     # # If 1st line doesn't have ": ", it will become item header.
     my @cat;
-#    $ih =~ s/(:|\s+)$//g;
-    $ih =~ s/(:|\s*)$//sg;	# Triming trailing spaces and ":"
-#    print "[[[[$ih]]]\n";
-    if ($ih =~ s/\s*\[(.+)\]$//) { # category
-	@cat = split(/\s*\]\s*\[\s*/, $1);
+
+    if ($ih =~ s/^([^:]+):\s*//) { # category
+      @cat = split(/\s+/, $1);
     }
+    $ih =~ s/\x0D?\x0A?$//;
+
+    if (grep /^(p|work)$/, @cat) {
+      return;
+    }
+
+    # item ID : Y in XXXX-XX-XX-Y
+    $entp->{curid}++;
 
     # Processing item content
     $cont =~ s/^( {8}| {0,7}\t)//gsm; 

ChangeLogReader.pm と同じディレクトリで上のファイルを置いて
% patch < ChangeLogReader.pm.patch

ちなみに、個人的な事情により、p と work の2つのカテゴリを非表示にしてます。p はプライベートなメモ、work は仕事な話をメモってるんで公開できない:p
+    if (grep /^(p|work)$/, @cat) {
+      return;
この部分ね

Webしかアクセスできない環境からの chalow 更新方法の考察
2005-06-03-1 / カテゴリ: [diary][changelog][CGI][chalow] / [permlink]

平たく言うと、会社から update できないかな〜、と。
会社のインターネットへの接続は Web のみで http proxy は 80 と 443 しか空いてなく、さくらのサーバは https は利用不可。Digest 認証も使用できない[2005-05-29-1]ので「Webアップローダから ChangeLog をアップして、CGI 使って chalow 実行」もできない。Basic 認証じゃパスがつつぬけだから、js と CGI でワンタイムパスワード認証するプログラムでも作って…面白そうではあるが、さすがにメンドイぞ。

あ、自宅サーバという手(抜け道)があった。自宅なら https 上がってるから、そっちに Web アップローダ置いて、バックグラウンドで ssh でさくらへ接続・chalow 実行ってやればクリアできそう。

つか、自宅で chalow 実行して、生成 html だけさくらへ転送すれば、ChangeLog を置かなくて良いじゃん…(private や仕事的な内容を外に一瞬でも置かなくて済む)
Referrer (Inside): [2005-06-06-1]

ChangeLogをhtmlに
2005-04-18-1 / カテゴリ: [linux][emacs][xyzzy][changelog][chalow] / [permlink]

http://nais.to/~yto/tools/chalow/
まんま。
入れて実行
css はコピること。

今後はフツーの日記っぽいメモも残そうかな…
Referrer (Inside): [2005-06-04-1]

changelogmemo 導入 (xyzzy)
2004-03-05-1 / カテゴリ: [win][xyzzy][changelog] / [permlink]

site: http://www5e.biglobe.ne.jp/~fukafuka/xyzzy/script/scripts.html#changelogmemo
こっからアーカイブをDL
site-lisp へ展開し、xyzzy にて M-x byte-compile-file[Enter] で
changelogmemo.l を指定。
.xyzzy へ~/site-lisp/changelogmemo/readme.txt を参考に設定追加
いくつかのショートカットキーが機能しない…(F8とか)

今度からこれで行きまっしょい。
カテゴリ: changelog

最終更新時間: 2013-05-02 16:12