ChangeLog 最新ページ / カテゴリ最新ページ / 1 2 次ページ / page 1 (2)

chalow - あかぴのChangeLog by rchalow

rchalow-0.0.2が公開されたのでテスト [rchalow][chalow][chalow-rb]

「rchalow - chalow の Ruby 実装」:http://www.ftnk.jp/~fumi/cl/2009-02-12-1.html


youtubeプラグイン

amazon_imgプラグイン


<inside ref>
item への ref [2005-11-08-2]
[2005-11-08]


<readmore>
foo bar


<Hiki 記法のテスト table>
abc
123


<長い url のテスト>
http://ja.wikipedia.org/wiki/0.999...%E3%81%8C1%E3%81%AB%E7%AD%89%E3
%81%97%E3%81%84%E3%81%93%E3%81%A8%E3%81%AE%E8%A8%BC%E6%98%8E


<hiki url>
cl


<引用のテスト>
">>" と "<<" による引用
ここから
1
2
ここまで

">" による引用
ここも引用(>)

">" による複数行の引用
ここから
1
2
ここまで

"|" による引用
引用 (|)


<文字修飾のテスト>
取り消し ABC
強調 ABC
さらに強調 ABC


<rchalow の test 5>
./rchalow ChangeLog


<rchalow の test 4>
entry 数を増やす


<rchalow の test 3>:item header の行から始まる場合.


<rchalow の test 2>
[2005-11-05-1] のつづき
http://ftnk.no-ip.com/~fumi/cl/


<rchalow の test>
test
「__DATA__」で始まる行があると、それ以降の記述は無視される。タブで始まっても無視される。


kuttuki-rss.rbみたいなもの [chalow][修行]

なんか kuttuki-rss.pl が動いてくれないので、
RSS Parserのsampleを切り貼り。オイにはこの程度で充分だ。
ありがとうございました>kouさま

#!/usr/bin/env ruby

$LOAD_PATH.unshift("/home/akapy/lib/ruby/rss/lib")
require 'rss'
require 'open-uri'

require "nkf"
class String
  # From tdiary.rb
  def shorten( len = 120 )
    lines = NKF::nkf( "-e -m0 -f#{len}", self.gsub( /\n/, ' ' ) ).split( /\n/ )
    lines[0].concat( '...' ) if lines[0] and lines[1]
    lines[0]
  end
end

def print_items(feed)
  puts "document.writeln('<h3>つっこみ一覧</h3><div class=\"stdbox\"><p>recent entries</p><ul class=\"stdbox\">')"
  feed.items.each do |item|
# puts "document.writeln('<li class=\"RSSitems\"> #{item.title.shorten(50)} : #{item.description.shorten(50)}</li>')"
    puts "document.writeln('<li class=\"stdbox\"> #{item.description.shorten(20)}</li>')"
  end
  puts "document.writeln('</ul></div>')"
end

#ARGV.each do |fname|
# feed = nil
# begin
# feed = RSS::Parser.parse(File.read(fname), false)
    rss = RSS::Parser.parse(open("http://pub.cozmixng.org/~akapy/ChangeLogMemo/kblog/bbs.rdf").read, false)
    rss.output_encoding = "euc-jp"

# rescue RSS::Error
# end

  if rss.nil?
    puts "#{fname}はRSS 0.9x/1.0/2.0, Atom 1.0のいずれでもありません。"
  else
    print_items(rss)
  end
#end


kuttuki-rss [chalow]

つっこみのRSSを、サイドバーに表示できるかためしてみた。
kuttuki-rss と miharing を使わせていただきます。
サーバー管理者に XML::RSS、LWP::Simpleをインストールして頂きまして
コマンドラインから試しましたが

[akapy@pub ~]$./kuttuki-rss.pl -n 5 'http://www.linux.or.jp/index.rdf' -o test.js
Can't locate object method "items" via package "XML::RSS" at ./kuttuki-rss.pl line 62, <DATA> line 855.
ということで動いてくれません。
う〜ん…。

cpan> install HTML::Template [Plamo][chalow]

昨日のことだが。
ローカルマシンでchalowしようとしたらHTML::Templateが無いと怒られた。

$ sudo perl -MCPAN -e shell
cpan> install Bundle::CPAN
cpan> install HTML::Template
cpan> install Jcode
これでchalowできた。

nais.toが休み? [ひとりごと][chalow]

http://nais.to/ にアクセスできないな。
kuttuki-rssについて調べたいのだが。

レンタルサーバーのトラブルでしたか。
http://chalow.net/2008-02-11-1.html

chalow 1.0リリース [chalow]

http://chalow.net/2007-10-19-2.html
さっそく使ってみる。

たつおさんとこと表示の違いを調査
sample内のファイルをpublic_htmlにコピー
diary.cssを改造
まだ格好悪い表示だけど、こんなもんでいいや。

このファイルの分割 [chalow]

このChangeLogメモのファイルが1.2Mを越えたようで、
エディタでの編集が重くなってきたので分割してみた。
5/31までを旧ファイルとしたけど chalowする前に連結処理しているので
HTML的には今までと変わりないはず。たぶん。

http://chalow.org/ [chalow]

chalowのサイトが変更になったそうでございます。

ここの表示 [ひとりごと][chalow]

[を]さんちみたいにコメントを各アイテムのところに表示させようかとも
思ったが、これでいいか。シンプルで。

chalow1.0rc6 [chalow][修行]

カレントディレクトリに移動すれば ChangeLogReader.pmも使えるのね。
パス通せばいいんだろうな。
というわけでアップグレード。
ついでにkuttukibbsの bbs.rdfを調整。

cl2moneycsv.rb [chalow][修行]

ありがとさんです>kou

#!/usr/bin/env ruby
$KCODE="EUC"

def usage
  STDERR.print <<EOF
usage: #{$0} [-m] [files...]
  m: monthly
EOF
  exit 1
end

Opt = {
  'monthly' => false    # 月毎に計算
}      # Optはハッシュ

while ARGV[0] =~ /^-/
  $_ = ARGV.shift
  Opt['monthly'] = true if ~/m/
  usage if ~/[^-m]/
end

usage if ARGV.size < 1


# 費目 an item of expendidure
#lioe = ['外', '食', '交', '遊', '本', '音', '雑', '衣', '他']  # 配列
lioe = []

date =""
inside_flag = 0
entry = Hash.new
while line = gets
  if /^((\d{4}-\d\d)-\d\d)/ =~ line then  # 日付をキープ
    if Opt['monthly'] == true then
    date = $2      # = year-month
    else
    date = $1
    date = date.tr("-",".")
    end
  elsif /買物ログ.*:/ =~ line then  # 家計簿データ記述ブロックの始まり
    inside_flag = 1
  elsif inside_flag == 1
    if /^\s*$/ =~ line and inside_flag == 1 then
      inside_flag = 0
    elsif (/^\t(.+?)(\s|\xa1\xa1).*(\s|\xa1\xa1)(\d+)$/) =~ line then
yo = line.split(nil)
  kamoku = yo[0]
  naiyou = yo[1]
  kingaku = yo[2]
  sonota = yo[3]

          lioe.push(yo[0])
          lioe.uniq!

      entry[date] ||= Hash.new(0)
      entry[date][$1] += $4.to_i
    end
  end
end

print " " * 10, ",  ", lioe.join(',  '), "\n"

entry.keys.sort.each do |date|
  print "#{date},"
  puts lioe.collect {|item| "%4d" % entry[date][item]}.join(",")
end

あっしは lioe を任意にしたいので
#!/usr/bin/env ruby
$KCODE="EUC"

def usage
  STDERR.print <<EOF
usage: #{$0} [-m] [files...]
  m: monthly
EOF
  exit 1
end

Opt = {
  'monthly' => false    # 月毎に計算
}      # Optはハッシュ

while ARGV[0] =~ /^-/
  $_ = ARGV.shift
  Opt['monthly'] = true if ~/m/
  usage if ~/[^-m]/
end

usage if ARGV.size < 1


# 費目 an item of expendidure
#lioe = ['外', '食', '交', '遊', '本', '音', '雑', '衣', '他']  # 配列
lioe = []

date =""
inside_flag = 0
entry = Hash.new
while line = gets
  if /^((\d{4}-\d\d)-\d\d)/ =~ line then  # 日付をキープ
    if Opt['monthly'] == true then
    date = $2      # = year-month
    else
    date = $1
    date = date.tr("-",".")
    end
  elsif /買物ログ.*:/ =~ line then  # 家計簿データ記述ブロックの始まり
    inside_flag = 1
  elsif inside_flag == 1
    if /^\s*$/ =~ line and inside_flag == 1 then
      inside_flag = 0
    elsif (/^\t(.+?)(\s|\xa1\xa1).*(\s|\xa1\xa1)(\d+)$/) =~ line then
yo = line.split(nil)
  kamoku = yo[0]
  naiyou = yo[1]
  kingaku = yo[2]
  sonota = yo[3]

          lioe.push(yo[0])
          lioe.uniq!

      entry[date] ||= Hash.new(0)
      entry[date][$1] += $4.to_i
    end
  end
end

print " " * 10, ",  ", lioe.join(',  '), "\n"

entry.keys.sort.each do |date|
  print "#{date},"
  puts lioe.collect {|item| "%4d" % entry[date][item]}.join(",")
end

だいぶ前の記述を書き直したら [chalow][修行]

./chlm-all.sh を実行すること。
そうしないと食い違いがでます。cronで一定間隔で実行するか。

くっつきBBSスパム対策 [chalow]

### 書き込み
if ($mode eq "write") {
    $name = $noname if ($name =~ /^\s*$/sm);

+ ##### スパム対策 2006/08/19
+ ##### http://www.pochi.cc/~sasaki/chalow/2006-01-25-2.html
+ # anti spam
+ if (($body ne "") && ($body !~ m/[\x80-\xff]/)) {die('error')};
+ #####
    
    if ($body !~ /\A\s*\Z/m) {
escape_string(\$name);
escape_string(\$mail_or_url);
escape_string(\$body);

$body =~ s/\r?\n/<br>/gsm;

my $name_tmp = $name;
if ($mail_or_url =~ /^http:\/\/$URLCHARS+$/) {
    $name_tmp = qq(<a href="$mail_or_url">$name</a>);
}

$latest_id++;
$com_hash{$latest_id}{n} = $name_tmp;
$com_hash{$latest_id}{m} = $body;
$com_hash{$latest_id}{d} = $what_time_is_it_now;

+ ##### スパム対策 2006/08/19
+ exit if (length($body) > 1000); # spam
+ #####

write_to_logfile(); # ログファイルへの書き込み
write_to_jsfile($fn_pref.".js"); # JavaScript Feed ファイルへの書き込み
write_to_rssfile(); # RSS ファイルへの書き込み
write_to_adminlogfile(); # 管理者用ログファイルへの書き込み
    }
}


kuttukibbsの表示変更 [chalow]

夜中にいろいろやってみた。
cl.conf の kuttukibbsという単語の付近を編集すると変わるみたい。
いじった形跡があるから設置した時も編集したんだな。全然覚えていない(泣

amazonプラグインを使ってみる [chalow][]

ASINとはアマゾン独自の商品管理IDらしい。

{{asin('4088646207')}}asinプラグイン
{{asin_heavy('4088646207')}}asin_heavyプラグイン
アルコール2/西村しのぶamazon_imgプラグイン
{{asin('4088646207')}}asinプラグイン
{{asin_heavy('4088646207')}}asin_heavyプラグイン

プラグイン紹介一覧が欲しいな。

cl2kaimono-itiran-csv.rb [rubyの勉強][chalow]

cl2moneycsv.plを改造して[買物ログ]部分だけをcsv化できた。
これで確定申告に間に合いそうだ。

svn add cl2kaimono-itiran-csv.rb しておいた(笑)
最後は表計算ソフトが必要なんだけどOpenOffice.orgは重過ぎるしな。印刷もしたいし。
Winの123かな。
Linuxな表計算ソフトと、印刷は今後の課題としよう。

cl2kaimonocsv.rb [修行][rubyの勉強][chalow]

[src]
#!/usr/bin/env ruby
$KCODE="EUC"
#
##!/usr/bin/env perl
# $Id: ChangeLog 1250 2007-06-05 14:58:37Z akapy $
# ChangeLog メモで家計簿!
# ref. <http://nais.to/~yto/doc/zb/0016.html#kakeibo>
#
# ■フォーマット
#買a物ログ:
# ^\t[費目][スペース][コメント][金額]$
# - スペースは半角でも全角でも良い。
# - 金額は半角数字。桁カンマは入れてはいけない。
#
# ■注意
# - 日本語コードは EUC を仮定
# - Excel に読み込ませる前に文字コードを Shift-JIS に変換する必要あり
#
# ■記述例&実行例
#
# $ cat ChangeLog
# 2003-08-02 YAMASHITA Tatsuo <yto@example.com>
#
# * できごと: だらだらしてた。
#
# * p:買a物ログ:
# 食 スーパー 1050
# 本 コンビニで雑誌 380
#
# 2003-08-01 YAMASHITA Tatsuo <yto@example.com>
#
# * できごと: 川崎で映画。
#
# * p:買a物ログ:
# 外 ファーストフード 525
# 遊 映画 2000
# 交 川崎往復 420
# 食 スーパー 780
#
# 2003-07-31 YAMASHITA Tatsuo <yto@example.com>
#
# * できごと: 渋谷に出掛けた。
#
# * p:買a物ログ:
# 外 レストラン 3000
# 交 渋谷往復 640
# 雑 ペンとメモ帳 550
#
# $ cl2moneycsv.pl ChangeLog
# , 外, 食, 交, 遊, 本, 音, 雑, 衣, 他
# 2003.07.31,3000, 0, 640, 0, 0, 0, 550, 0, 0
# 2003.08.01, 525, 780, 420,2000, 0, 0, 0, 0, 0
# 2003.08.02, 0,1050, 0, 0, 380, 0, 0, 0, 0
# $ cl2moneycsv.pl -m ChangeLog (←月毎に集計)
# , 外, 食, 交, 遊, 本, 音, 雑, 衣, 他
# 2003-07,3000, 0, 640, 0, 0, 0, 550, 0, 0
# 2003-08, 525,1830, 420,2000, 380, 0, 0, 0, 0
# $ cl2moneycsv.pl -m ChangeLog | nkf -s > kaimono.csv

# use strict;

# 費目 an item of expendidure
#my @lioe = ('外', '食', '交', '遊', '本', '音', '雑', '衣', '他')
lioe = ["外","食","交","遊","本","音","雑","衣","他"]
#lioe = %w(外 食 交 )

inside_flag = 0

entry = {}
p lioe

#while (<>) {
#while <>
while line = ARGF.gets
    if /^((\d{4}-\d\d)-\d\d)/ =~ line then # 日付をキープ
    date = $1 # = year-month-day
# $date =~ s|-|.|g # for Excel
# p date
    elsif /買a物ログ:/ =~ line then # 家計簿データ記述ブロックの始まり
inside_flag = 1
    elsif inside_flag == 1 then # ブロック内
if /^\s*$/ =~ line and inside_flag == 1 then # ブロックの終わり
    inside_flag = 0
else # /^\t(.+?)(\s|\xa1\xa1).*(\s|\xa1\xa1)(\d+)$/
  kamoku = $1
  naiyou = $2
  kingaku = $3
  p date,line.chomp.split(nil)
# p date,kamoku,naiyou,kingaku
  # $1,$2,$3,$4,$5
       end
    end
end

=begin
85,89,92
#print " " x 10, ", ", join(', ', @lioe), "\n"
p " " x 10, ", ", join(', ', lioe), "\n"

#foreach date (sort keys entry) {
# print "$date,"
# print join(',', map {sprintf "%4d", $entry{$date}{$_}} @lioe), "\n"
#}
date.times
   p date ;
end

=end
[src]


add chalow [chalow]

ちょっとだけchalowの改造をしてみようかと思い、リポジトリにaddしてみた。
RSSのところを変更したいんだけど、さて。。
  http://ukai.jp/Articles/2003/uu-svn/

練習 ChangeLogの特殊な記法 [chalow]



<日付で参照リンク>
「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
先日[2004-12-01]、どこかへ行った。



<任意のURLへのリンク>
単語|URL を 2 つの半角カギカッコで囲むとを任意の URL へのリンクになります。
例:
「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
Yahoo!へのリンク

  長い URL は、バックスラッシュ('\')で途中改行することができる。下記のように変換される。

「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}

http://example.com/123456789012345678901234567890
123456789012345678901234567890.html



<イメージへのリンク>
「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
と書けば、
画像


「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
と書けば、
画像


「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
と書けば、
画像


「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
と書けば、
画像


「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
と書けば、
画像



< 引用 (citation)>
タブの後に "|" か ">" が来る行は引用とみなし、blockquote で囲まれる。

   または、">>" と "<<" で囲まれた領域が blockquote で囲まれる。

引用
引用
引用



<文字修飾の記法>

  「'」2個ではさんだ部分は強調されます。「'」3個ではさんだ部分はさら
    に強調されます。「=」2個ではさんだ部分は取消線になります。

「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
例: ABC ABC ABC



<表(table)の記法>
項目a項目b項目c
項目d項目e項目f
>>
「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}



<プラグイン機能>
「{{」と「}}」で囲むとプラグイン (関数) を呼び出すことができます。
      例: {{google_seach('海老名 映画館')}}
プラグインは cl.conf に足して置けば使えます。



<エスケープ>
以下の記法でHTMLを じか書きすることができます。
[src]...[/src], [src]...[/src], [src]...[/src]



<ソース>
ソースの表示は [src]...[/src] を使います。
内部ではエンティティ置換とpre囲みを行います。


<日々のメッセージ埋め込み>なんてこともできます。

最終更新時間: 2012-09-27 06:03