2005-06 / 2005-06-04

前のエントリ: Webサイトらくちん引っ越し [Apache]
次のエントリ: patch ファイルの作り方 [command]

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サイトらくちん引っ越し [Apache]
次のエントリ: patch ファイルの作り方 [command]

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

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