# -*- coding: utf-8 -*- =begin = 連番生成プラグイン sn.rb == 概要 各日付の日記内で通し番号を表示します。 == 使い方 sn( number ) number - 内部カウンタを指定した値にセットします。 sn_anchorid sn()メソッドは日記の各日付ごとに、1から始まる通し番号を表示します。 sn_anchorid()メソッドは現在のアンカーidの番号を表示します。 sn_anchorid()を設定オプション内のセクション/ツッコミアンカー として指定することによって,そのセクション/ツッコミアンカーの URLと結び付いた数値を表示することができます。 == 参考 anchor()はzoe氏作のnumber_anchor.rbを参考に作成しました。 = Sequential number generator plugin == Abstract Display sequential numbers for every date. == Usage sn( number ) number - Set the value of the internal counter to 'number'. sn_anchorid The sn() method displays sequential numbers starting at 1 for every date. The sn_anchorid() method displays a current number of the anchorid. If you use sn_anchorid() as a section/comment anchor in the setup option, you can display the number relevant to URL of the section/comment anchor. == reference Original anchor() appeared in the number_anchor.rb by zoe-san. == 著作権について (Copyright notice) Copyright (c) 2003 SAKAMOTO Hideki Distributed under the GPL =end =begin Changelog 2003-09-23 SAKAMOTO Hideki * document corrected 2003-09-17 SAKAMOTO Hideki * add add_body_leave_proc 2003-09-13 SAKAMOTO Hideki * change @sn_section initialization: nil -> 0 * delete @sn_section clear line in sn() * add sn_anchorid method 2003-09-10 SAKAMOTO Hideki * write English document * force to use anchor-id in section anchor * delete 'sn.use_anchorid' option 2003-08-29 SAKAMOTO Hideki * first version =end add_body_enter_proc do |date| @sn_count = 1 @sn_idx = 0 "" end add_body_leave_proc do |date| @sn_count = 1 @sn_idx = 0 "" end alias :_orig_anchor_sn :anchor def anchor( s ) if /^(\d+)#?([pct])?(\d*)?$/ =~ s then if $2 then @sn_idx = $3.to_i end end _orig_anchor_sn(s) end def sn( number = nil ) if number then @sn_count = number.to_i else number = @sn_count end @sn_count += 1 %Q[#{'%d' % number}] end def sn_anchorid %Q[#{'%d' % @sn_idx}] end # Local Variables: # mode: ruby # indent-tabs-mode: t # tab-width: 3 # ruby-indent-level: 3 # End: