OSDN Git Service

書籍執筆用のプラグインをsandboxにコミットしておきます。
[fswiki/sandbox.git] / takezoe / plugin / book / Pagecount.pm
1 ################################################################################
2 #
3 # <p>¸½ºßɽ¼¨¤·¤Æ¤¤¤ë¥Ú¡¼¥¸¤Î³µ»»¥Ú¡¼¥¸¿ô¤òɽ¼¨¤¹¤ë¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£</p>
4 # <p>1¥Ú¡¼¥¸=1600ʸ»ú¤Ç·×»»¤·¤Æ¤¤¤Þ¤¹¡£</p>
5 # <pre>
6 # Ê¸»ú¿ô¡§{{pagecount}}
7 # </pre>
8 # <p>°ú¿ô¤Ç¥«¥¦¥ó¥ÈÂоݤΥڡ¼¥¸¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£</p>
9 # <pre>
10 # Ê¸»ú¿ô¡§{{pagecount ¥Ú¡¼¥¸Ì¾}}
11 # </pre>
12 #
13 ################################################################################
14 package plugin::book::Pagecount;
15 use Encode qw(decode);
16 #==============================================================================
17 # ¥³¥ó¥¹¥È¥é¥¯¥¿
18 #==============================================================================
19 sub new {
20         my $class = shift;
21         my $self = {};
22         return bless $self,$class;
23 }
24
25 #==============================================================================
26 # ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É
27 #==============================================================================
28 sub inline {
29         my $self = shift;
30         my $wiki = shift;
31         my $page = shift;
32         
33         $page = $wiki->get_CGI->param('page') unless $page;
34         my $source = Jcode::convert($wiki->get_page($page), 'utf8', 'euc');
35         
36         return int(length(decode('utf-8', $source)) / 1600 + 1);
37 }
38
39 1;