日毎のファイルで「続きを読む」(タイトル修正)
2006-07-31-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]
(タイトル間違えた… デフォルトの「アイテム毎で続きを読む」を改造、だ)
できた^^;
というか、かなり無理矢理;
できた^^;
というか、かなり無理矢理;
《続きを読む》
rdfには最後のカテゴリ名だけ表示
2005-07-06-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]
[2005-06-14-2]でカテゴリ名を RSS フィードに表示するようにしたけど、カテゴリの数が多いと(こんな使い方余りいない??)、Firefox のライブブックマークでの非表示部分が多くなってしまう。
ので、記述しているカテゴリ名のうち、最後の1個だけを表示するように修正
前回の状態からは
スゲー見にくいけど、要は
先頭がよければ、0 で良い(未確認)
ので、記述しているカテゴリ名のうち、最後の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 にタイトル名を突っ込む箇所に、同じように、カテゴリ名も含ませる
って、まだ www.jp-z.jp のには反映してないんだけど。
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} に、カテゴリ文字列の入った配列のリファレンスがあるんで、これをくっつければいい。
$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)をテキトーに作成
で、ChangeLog をさくらへ up し、chalow を実行するシェルスクリプト(exec.sh)を作成
CGI を呼ぶ HTML もテキトーに。
さくらのサーバ上の ~/local/chalow 以下に chalow があるのが前提。
あとは、https でアクセスできるサーバにおいて、BASIC認証なりなんなりで制限すればいい(httpsなんでBASIC認証で十分でしょ)
まず、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 のフォーマットとあってなかった。私が書いてたフォーマット
で、ChangeLogReader.pm を修正
ChangeLogReader.pm と同じディレクトリで上のファイルを置いて
ちなみに、個人的な事情により、p と work の2つのカテゴリを非表示にしてます。p はプライベートなメモ、work は仕事な話をメモってるんで公開できない:p
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 や仕事的な内容を外に一瞬でも置かなくて済む)
会社のインターネットへの接続は 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]
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とか)
今度からこれで行きまっしょい。
こっからアーカイブをDL
site-lisp へ展開し、xyzzy にて M-x byte-compile-file[Enter] で
changelogmemo.l を指定。
.xyzzy へ~/site-lisp/changelogmemo/readme.txt を参考に設定追加
いくつかのショートカットキーが機能しない…(F8とか)
今度からこれで行きまっしょい。
最終更新時間: 2013-05-02 16:12