Index: /websites/perl-users.jp/news/cl.conf
===================================================================
--- /websites/perl-users.jp/news/cl.conf (revision 12055)
+++ /websites/perl-users.jp/news/cl.conf (revision 12055)
@@ -0,0 +1,530 @@
+# -*- perl -*-
+### ユーザ設定項目 ###
+
+# --------------------------------------------------------------------
+# 日記の名前
+$changelog_name = "Perl News - らくだニュース";
+
+# --------------------------------------------------------------------
+# ChangeLog を公開する URL (絶対 URL を強く推奨) - RSS に必要
+# 例: $clog_url = "http://chalow.net/";
+$clog_url = "http://perl-users.jp/news/";		# 必ず URL を設定して下さい
+
+# --------------------------------------------------------------------
+# インデックスページ (index.html) で最近何日分を表示するか
+# (コマンドラインオプション "-n" でも指定できます)
+$opt_topn = 7;
+
+# --------------------------------------------------------------------
+# 日ごとにページを作るか (0:NO, 1:YES) --- obsolete
+#$day_page_mode = 1;
+
+# --------------------------------------------------------------------
+# 作成するページの単位 (0:月, 1:日, 2:アイテム)
+$page_mode = 2;
+
+# --------------------------------------------------------------------
+# 自動文字列置換
+$auto_replace = '
+s!(<blockquote>)!</p>$1!g;
+s!(</blockquote>)!$1<p>!g;
+';
+
+# --------------------------------------------------------------------
+# ファイルの最初に出てくる「<!-- ReplaceOnce -->」を置き換える文字列
+$replace_once = << "__REPLACE_ONCE"
+<!-- 広告とか -->
+        <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
+        <script type="text/javascript">
+            _uacct = "UA-4463402-1";
+            urchinTracker();
+        </script>
+
+        <script type="text/javascript" src="/js/codepress/codepress.js"></script>
+__REPLACE_ONCE
+    ;
+
+# --------------------------------------------------------------------
+# CSS ファイル
+$css_file = "/css/news.css";
+#$css_file = "clover/clover.css";
+
+# --------------------------------------------------------------------
+# RSSファイル名
+$rss_filename = "cl.rdf";
+
+# --------------------------------------------------------------------
+# RSSに最近何日分表示するか(0の場合は $opt_topn と同じ)
+$rss_topn = 0;
+
+# --------------------------------------------------------------------
+# 日付の後に曜日(Mon, Tue, ...)を表示するか (1:yes or 0:no)
+$show_day_of_week = 1;
+
+# --------------------------------------------------------------------
+# 月ページで、日付を降順 (新しい日付が上) で表示するか (1:yes or 0:no)
+$reverse_order_days = 1;
+
+# --------------------------------------------------------------------
+# アイテムヘッダーのフォーマットをどうするか
+# (0:"* HOGE:", 1:"* HOGE", 2:"HOGE:",3:"HOGE")
+$item_header_style = 1;
+
+# --------------------------------------------------------------------
+# 表示するとき引用記号 ('>' or '|') を消すか (1:YES, 0:NO)
+$remove_quote_mark = 1;
+
+# --------------------------------------------------------------------
+# item header で h3 タグを使うか (1:YES, 0:NO) - tDiary との互換性のため
+$use_h3_for_item_header = 1;
+
+# --------------------------------------------------------------------
+# item header の先頭の記号にアンカーをつけるか (1:YES, 0:NO)
+$use_item_anchor = 1;
+
+# --------------------------------------------------------------------
+# item header の先頭の記号の指定
+# 『日記のセクションの先頭(サブタイトルの行頭)に挿入される、リンク用の
+# アンカー文字列を指定します。なお「<span class="panchor">_</span>」を
+# 指定すると、テーマによっては自動的に画像アンカーがつくようになりま
+# す。』(tDiary の skel/conf.rhtml より)
+$item_header_mark = qq(<span class="sanchor">■</span>);
+
+# --------------------------------------------------------------------
+# RSS を出力するか (1:YES, 0:NO)
+$output_rss = 1;
+
+# --------------------------------------------------------------------
+# 日記の説明 for RSS : 例: "日々のあれこれ。"
+$changelog_description = "Perl界隈の人たちがPerlのニュースをPOSTしていきます";
+
+# --------------------------------------------------------------------
+# 他の年の同じ日付 (月日) へのリンクを張るか (1:YES, 0:NO)
+$same_date_jump = 1;
+
+# --------------------------------------------------------------------
+# 日付一覧をカレンダー表示にするか (1:YES, 0:NO)
+$calendar_style = 0;
+
+# --------------------------------------------------------------------
+# 検索用ファイル (cl.itemlist) を作るか (1:YES, 0:NO)
+$output_itemlist = 1;
+
+# --------------------------------------------------------------------
+# 見出し一覧 (JavaScript ファイル) で出力する日数
+$latest_titles_num = 10;
+
+# --------------------------------------------------------------------
+# カテゴリページを作るか (0:NO, 1:YES)
+$output_cat_pages = 0;
+
+# --------------------------------------------------------------------
+# カテゴリページ中のエントリ数の上限
+# ($output_cat_pages = 1 のときのみ有効)
+$cat_page_entry_max = 20;
+
+# --------------------------------------------------------------------
+# カテゴリ別item表示のためのCGIを指定する（カテゴリ名は %%CAT%% で置き換え）
+# ($output_cat_pages = 0 のときのみ有効)
+$cat_page_cgi = "clsearch.cgi?cat=%%CAT%%";
+#$cat_page_cgi = "";
+
+
+######################################################################
+## テンプレート
+
+# (サイドメニュー、サイドバー)
+my $side_menu = << "___SIDE_MENU"
+<div class="funcbox" title="検索キーワードは複数指定できます">
+<FORM METHOD="GET" ACTION="clsearch.cgi" style="margin:0;padding:0">
+ChangeLogを検索<br>
+<INPUT TYPE="text" NAME="key" size="10">
+<input type="checkbox" name="mode" value="1" checked>
+<INPUT TYPE="submit" NAME=".submit" VALUE="ok">
+</FORM>
+</div>
+<div class="funcbox">
+<a href="clkeitai.cgi">携帯電話からアクセス！</a>
+</div>
+<p/>
+
+<div class="stdbox">
+<table>
+<tr><td>カテゴリ</td></tr>
+<tr><td><TMPL_VAR name=category_list></td></tr>
+<!--<tr><td><script language="JavaScript" src="cl-cat.js"></script></td></tr>-->
+</table>
+</div>
+<p/>
+
+<div class="stdbox">
+<table>
+<tr><td>最近の話題</td></tr>
+<tr><td><TMPL_VAR name=latest_item_list></script></td></tr>
+<!--<tr><td><script language="JavaScript" src="cl.js"></script></td></tr>-->
+</table>
+</div>
+<p/>
+
+<div class="stdbox">
+<table><tr><td>リンク</td></tr><tr><td>
+- <a href="http://chalow.org/">chalow</a><br>
+- <a href="http://chalow.net/">たつをの ChangeLog</a><br>
+</td></tr></table>
+</div>
+<p/>
+
+<div class="stdbox">
+<table>
+<tr><td>過去ログ</td></tr>
+<tr><td style="font-size:11px;text-align:center">
+<TMPL_VAR name=month_page_list>
+</td></tr>
+</table>
+</div>
+<p/>
+___SIDE_MENU
+    ;
+
+
+# インデックスページのテンプレート
+$index_page_template = << "___INDEX_PAGE_TEMPLATE"
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<TMPL_IF name=css_file>
+<link rel=stylesheet href="<TMPL_VAR name=css_file>" media=all>
+</TMPL_IF>
+<link rel="alternate" type="application/rss+xml" title="RSS"
+ href="<TMPL_VAR name=rss_file>">
+<title><TMPL_VAR name=cl_name></title>
+</head>
+<body>
+<p class="adminmenu"><a href="index.html">最新</a> / <a href="<TMPL_VAR name=rss_file>">RSS</a></p>
+<h1><a href="index.html"><TMPL_VAR name=cl_name></a></h1>
+
+<div id="content">
+<p class="calendar"><TMPL_VAR name=ym> / <TMPL_VAR name=day_list></p>
+
+<p>最近 <TMPL_VAR name=ndays> 日分 / <a href="<TMPL_VAR name=ym>.html">今月の一覧</a>
+</p>
+<TMPL_LOOP name=entries> 
+<TMPL_VAR name=content> 
+</TMPL_LOOP>
+<p class="calendar"><TMPL_VAR name=month_page_list></p>
+<p>最終更新時間: <TMPL_VAR name=lastupdate></p>
+</div>
+
+<div id="links">$side_menu</div>
+<div id="footer"><TMPL_VAR name=signature></div>
+</body></html>
+___INDEX_PAGE_TEMPLATE
+    ;
+
+# 月ページのテンプレート
+$month_page_template = << "___MONTH_PAGE_TEMPLATE"
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<TMPL_IF name=css_file>
+<link rel=stylesheet href="<TMPL_VAR name=css_file>" media=all>
+</TMPL_IF>
+<link rel="alternate" type="application/rss+xml" title="RSS"
+ href="<TMPL_VAR name=rss_file>">
+<title><TMPL_VAR name=cl_name> / <TMPL_VAR name=ym></title>
+</head>
+<body>
+<div style="width:750px">
+<p class="adminmenu">
+<TMPL_IF name=back><a href="<TMPL_VAR name=back>.html">前の月</a> / </TMPL_IF>
+<TMPL_IF name=next><a href="<TMPL_VAR name=next>.html">次の月</a> / </TMPL_IF>
+<a href="index.html">最新</a></p>
+<h1><a href="index.html"><TMPL_VAR name=cl_name></a> / <TMPL_VAR name=ym></h1>
+<p class="calendar"><TMPL_VAR name=day_list></p>
+<p class="calendar"><TMPL_VAR name=month_page_list></p>
+<TMPL_LOOP name=entries><TMPL_VAR name=content></TMPL_LOOP>
+<p class="calendar"><TMPL_VAR name=month_page_list></p>
+<p>最終更新時間: <TMPL_VAR name=lastupdate></p>
+<TMPL_VAR name=signature>
+</div>
+</body></html>
+___MONTH_PAGE_TEMPLATE
+    ;
+
+# 日ページのテンプレート
+$day_page_template = << "___DAY_PAGE_TEMPLATE"
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<TMPL_IF name=css_file>
+<link rel=stylesheet href="<TMPL_VAR name=css_file>" media=all>
+</TMPL_IF>
+<link rel="alternate" type="application/rss+xml" title="RSS"
+ href="<TMPL_VAR name=rss_file>">
+<title><TMPL_VAR name=cl_name> / <TMPL_VAR name=ymd></title>
+</head>
+<body>
+<div style="width:750px">
+<p class="adminmenu">
+<TMPL_IF name=back><a href="<TMPL_VAR name=back>.html">前の日</a> / </TMPL_IF>
+<TMPL_IF name=next><a href="<TMPL_VAR name=next>.html">次の日</a> / </TMPL_IF>
+<a href="index.html">最新</a> / <a href="<TMPL_VAR name=ym>.html"><TMPL_VAR name=ym></a></p>
+<h1><a href="index.html"><TMPL_VAR name=cl_name></a> / <TMPL_VAR name=ymd></h1>
+<p class="calendar"><TMPL_VAR name=day_list></p>
+<TMPL_VAR name=content> 
+<p class="calendar"><TMPL_VAR name=month_page_list></p>
+<p>最終更新時間: <TMPL_VAR name=lastupdate></p>
+<TMPL_VAR name=signature>
+</div>
+</body></html>
+___DAY_PAGE_TEMPLATE
+    ;
+
+# アイテムページのテンプレート
+#$item_page_template = << "___PAGE_TEMPLATE"
+$item_page_template = << "___PAGE_TEMPLATE"
+<html lang="ja"><head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<TMPL_IF name=css_file>
+ <link rel=stylesheet href="<TMPL_VAR name=css_file>" media=all>
+</TMPL_IF>
+<link rel="alternate" type="application/rss+xml" title="RSS"
+ href="<TMPL_VAR name=rss_file>">
+<title><TMPL_VAR name=header_text></title>
+</head><body>
+<TMPL_IF name=back><a href="<TMPL_VAR name=back>.html">Prev</a></TMPL_IF>
+<TMPL_IF name=next> / <a href="<TMPL_VAR name=next>.html">Next</a></TMPL_IF>
+/ <a href="index.html"><TMPL_VAR name=cl_name></a>
+<h1><TMPL_VAR name=header><TMPL_VAR name=cat></h1>
+<div class="day">
+<a href="<TMPL_VAR name=ymd>.html"><TMPL_VAR name=ymd></a>
+<div class="body">
+<!-- start:<TMPL_VAR name=ymdi> -->
+<div class="section">
+<p><TMPL_VAR name=content></p>
+<TMPL_IF name=referrer>
+ <div class="referer"><span>Referrer (Inside): 
+ <TMPL_VAR name=referrer></span></div>
+</TMPL_IF>
+<p><a href="<TMPL_VAR name=ymdi>.html">permlink</a></p>
+</div>
+<!-- end:<TMPL_VAR name=ymdi> -->
+</div></div>
+<!--<p>last update: <TMPL_VAR name=lastupdate></p>-->
+<TMPL_VAR name=signature>
+</div></body></html>
+___PAGE_TEMPLATE
+    ;
+
+
+# カテゴリページのテンプレート
+$cat_page_template = << "TMPL"
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<TMPL_IF name=css_file>
+<link rel=stylesheet href="<TMPL_VAR name=css_file>" media=all>
+</TMPL_IF>
+<link rel="alternate" type="application/rss+xml" title="RSS"
+ href="<TMPL_VAR name=rss_file>">
+<title><TMPL_VAR name=cat_name> / <TMPL_VAR name=cl_name></title>
+</head>
+<body>
+<a href="index.html">ChangeLog 最新ページ</a>
+<TMPL_IF name=page_list>
+ / <a href="<TMPL_VAR name=first_page>">カテゴリ最新ページ</a> / 
+<TMPL_IF name=back><a href="<TMPL_VAR name=back>">前ページ</a></TMPL_IF>
+<TMPL_VAR name=page_list>
+<TMPL_IF name=next><a href="<TMPL_VAR name=next>">次ページ</a></TMPL_IF>
+/ page <TMPL_VAR name=page_id> (<TMPL_VAR name=page_num>)
+</TMPL_IF>
+<h1><TMPL_VAR name=cat_name> - <a href="index.html"><TMPL_VAR name=cl_name></a></h1>
+<div>
+最終更新時間: <TMPL_VAR name=lastupdate>
+<TMPL_LOOP name=entries>
+<div class="day"><h2><span class="date"><TMPL_VAR name=eh></span></h2>
+<div class="body"><TMPL_VAR name=cont></div></div>
+</TMPL_LOOP>
+<!--<TMPL_VAR name=ym><TMPL_VAR name=day_list>-->
+<TMPL_VAR name=signature>
+</div></body></html>
+TMPL
+    ;
+
+# item のテンプレート
+$item_template = << "EACHITEM"
+<!-- start:<TMPL_VAR name=ymdi> -->
+<div class="section">
+<h3 class="subtitle"><TMPL_VAR name=header> <TMPL_VAR name=cat></h3>
+<p><TMPL_VAR name=content></p>
+<TMPL_IF name=readmore>
+<p>《<a href="<TMPL_VAR name=url>">続きを読む</a>》</p>
+</TMPL_IF>
+<!--<div class="posted"><span><TMPL_VAR name=author></span></div>-->
+<TMPL_IF name=referrer>
+<div class="referer"><span>Referrer (Inside): 
+<TMPL_VAR name=referrer></span></div>
+</TMPL_IF>
+<div class="referer"><span>
+[ <a href="<TMPL_VAR name=url>">固定リンク</a> ]
+</span></div>
+<!--<TMPL_VAR name=id>-->
+</div>
+<!-- end:<TMPL_VAR name=ymdi> -->
+<!-- ReplaceOnce -->
+EACHITEM
+    ;
+
+# entry (date) のテンプレート
+$entry_template = << "DAYENTRY"
+<div class="day">
+<h2><span class="date"><TMPL_VAR name=header></span></h2>
+
+<div class="body">
+
+<TMPL_IF name=message_top><TMPL_VAR name=message_top></TMPL_IF>
+
+<TMPL_IF name=same_date>
+<div class="calendar"><TMPL_VAR name=same_date></div>
+</TMPL_IF>
+
+<TMPL_VAR name=content>
+
+<TMPL_IF name=referrer><div class="referer"><span>Referrer (Inside): 
+<TMPL_VAR name=referrer></span></div></TMPL_IF>
+
+<TMPL_IF name=message_bottom><TMPL_VAR name=message_bottom></TMPL_IF>
+<!--
+<div class="comment">
+<div class="caption">[
+<a href='./kuttukibbs.cgi?id=<TMPL_VAR name=ymd>'>コメント</a> | 
+<a href="tb/tb.cgi?__mode=list&tb_id=<TMPL_VAR name=id>">トラックバック
+(<script language="JavaScript" src="tb/tb_data/<TMPL_VAR name=id>.js">
+</script>)</a> ]</div>
+<script language="JavaScript" type="text/javascript" 
+ src="kblog/<TMPL_VAR name=ymd>.js"></script>
+</div>
+-->
+</div>
+</div>
+DAYENTRY
+    ;
+
+
+######################################################################
+## プラグイン
+
+### コメントアウト
+# usage: {{com('これは HTML 変換時に削られます')}}
+sub com { }
+
+### clsearch キーワード検索 URL 作成
+# usage: {{clsearch('海老名 映画館')}}
+# usage: {{clsearch('海老名 映画館', 1)}}
+sub clsearch {
+    my ($k, $mode) = @_;
+    my $o = $k;
+    $k =~ s/([^0-9a-z_ ])/'%'.unpack('H2', $1)/gei;
+    $k =~ s/\s/+/g;
+    $mode = "&mode=$mode" if (defined $mode);
+    return qq(<a href="clsearch.cgi?key=$k$mode">$o</a>);
+}
+
+### google キーワード検索 URL 作成
+# usage: {{google_search('海老名 映画館')}}
+sub google_search {
+    my ($k) = @_;
+    my $o = $k;
+    $k =~ s/([^0-9a-z_ ])/'%'.unpack('H2', $1)/gei;
+    $k =~ s/\s/+/g;
+    my $c = "ie=EUC-JP&oe=EUC-JP&";
+    return qq(<a href="http://www.google.co.jp/search?${c}q=$k">$o</a>);
+}
+
+### Bulkfeeds キーワード検索
+# usage: {{bulkfeeds('海老名 映画')}}
+sub bulkfeeds {
+    my ($k) = @_;
+    my $o = $k;
+    $k = Jcode->new($k)->utf8;
+    $k =~ s/([^0-9a-z_ ])/'%'.unpack('H2', $1)/gei;
+    $k =~ s/\s/+/g;
+    return qq(<a href="http://bulkfeeds.net/app/search2?q=$k">$o</a>);
+}
+
+### amazon リンクの作成
+# usage: {{amazon('ASIN', 'STR')}}
+sub amazon {
+    my ($asin, $str) = @_;
+    my $prefix = "http://www.amazon.co.jp/exec/obidos/ASIN";
+#    my $suffix = "";
+    my $suffix = "ytoshomepage-22/ref=nosim"; # アソシID使用時
+    $str =~ s/(\s|^)(\S+\.(jpg|jpeg|png|gif))/$1<img src="$2">/gi;
+    $str =~ s/$/<br>/gm;
+    $str =~ s/<br>\Z//m;
+    return qq(<a href="$prefix/$asin/$suffix">$str</a>);
+}
+
+sub az {amazon(@_)}
+sub azs {amazon_search(@_)}
+sub bf {bulkfeeds(@_)}
+sub cls {clsearch(@_)}
+sub gs {google_search(@_)}
+
+### amazon サーチ結果リンクの作成
+# usage: {{amazon_search('STR' [,'MODE'])}}
+sub amazon_search {
+    my ($str, $mode) = @_;
+    my $k = Jcode->new($str)->utf8;
+    $k =~ s/([^0-9a-z_ ])/'%'.unpack('H2', $1)/gei;
+    $k =~ s/\s/+/g;
+    my $aid = "ytoshomepage-22";
+    $mode = "blended" if not defined $mode;
+    return '<a href="http://www.amazon.co.jp/exec/obidos/external-search'.
+        "?tag=$aid&keyword=$k&mode=$mode\">$str</a>";
+}
+
+### 普通の amazon アソシエイトリンクの作成
+# usage: {{amazon_link('ASIN', 'ID', 'STR')}}
+sub amazon_link {
+    my ($asin, $id, $str) = @_;
+    my $prefix = "http://www.amazon.co.jp/exec/obidos/ASIN";
+    $str =~ s/(\s|^)(\S+\.(jpg|jpeg|png|gif))/$1<img src="$2">/gi;
+    $str =~ s/$/<br>/gm;
+    $str =~ s/<br>\Z//m;
+    return qq(<a href="$prefix/$asin/$id/ref=nosim">$str</a>);
+}
+
+### 後ろめたい amazon アソシエイトリンクの作成
+# ref. http://chalow.net/2003-11-06-2.html
+# usage: {{qualmish_amazon_link('ASIN', 'ID', 'STR')}}
+sub qualmish_amazon_link {
+    my ($asin, $id, $str) = @_;
+    my $prefix = "http://www.amazon.co.jp/exec/obidos/ASIN";
+    $str =~ s/(\s|^)(\S+\.(jpg|jpeg|png|gif))/$1<img src="$2">/gi;
+    $str =~ s/$/<br>/gm;
+    $str =~ s/<br>\Z//m;
+    return qq(<a href="$prefix/$asin/$id/ref=nosim" 
+	      onMouseOver="window.status='$prefix/$asin'; return true;"
+	      onMouseOut="window.status=''; return true;">$str</a>);
+}
+
+### URL を短く表示
+# usage: {{shorten_url('http://example.com/abc/def/00101033/
+# 0123456/aaaaaaaaaaaa/aaaaaaaaaaaa/index.html')}}
+sub shorten_url {
+    my ($url, $max) = @_;
+    $max = 60 if not defined $max;
+    $url =~ s/\s+//gsm;
+    my $urlstr = $url;
+    $urlstr =~ s/^(.{$max}).+$/$1 .../;
+    return qq(<a href="$url">$urlstr</a>);
+}
+
+### カテゴリページへのリンク
+# usage: {{cat('プログラミング')}}
+sub cat {
+    my ($cn) = @_;
+    my $url = get_category_filename($cn);
+    return qq(<a href="$url">$cn</a>);
+}
Index: /websites/perl-users.jp/news/ChangeLog
===================================================================
--- /websites/perl-users.jp/news/ChangeLog (revision 12055)
+++ /websites/perl-users.jp/news/ChangeLog (revision 12055)
@@ -0,0 +1,13 @@
+2008-05-20  perlnews
+
+	* CodePressてすと:
+	CodePressできる記法をchalowに無理やりぶち込んだ
+	>|perl|
+	use dan	the => test;
+	Dan the chalow
+	||<
+	できてる！ついてる！
+
+	* らくだニュースはじめました:
+	perl hacker達がお届けする Perl News はじめるよ
+	
