9 use POSIX qw
(locale_h
);
10 setlocale
(LC_ALL
, 'es_ES.UTF-8');
15 use Gruta
::Source
::FS
;
16 use Gruta
::Renderer
::Grutatxt
;
17 use Gruta
::Renderer
::HTML
;
18 use Gruta
::Renderer
::Text
;
19 use Gruta
::Template
::Art5
;
22 print "Usage: $0 {src} {folder} {base url}\n";
30 my $args = shift || {};
32 $args->{t
} = $template;
33 $g->template->_art5->{xh
} = $args;
35 $g->template->_art5->{abort
} = 0;
36 $g->template->{search_count
} = 0;
38 my $o = $g->template->process($template);
40 if ($g->template->_art5->{abort
}) {
41 print ("NOT Creating $file\n");
44 printf("Creating $file\n");
45 open F
, '>' . $g->{_folder
} . '/' . $file or die;
51 ############################################################
55 my $base = shift(@ARGV) or usage
();
56 my $folder = shift(@ARGV) or usage
();
57 my $url = shift(@ARGV) or usage
();
59 $Gruta::VERSION_CODENAME
.= " (+ gruta-snapshot $VERSION)";
63 source
=> Gruta
::Source
::FS
->new( path
=> "${base}/var"),
65 Gruta
::Renderer
::Grutatxt
->new(),
66 Gruta
::Renderer
::HTML
->new(),
67 Gruta
::Renderer
::HTML
->new( valid_tags
=> undef ),
68 Gruta
::Renderer
::Text
->new(),
70 template
=> Gruta
::Template
::Art5
->new(lang
=> 'en'),
71 cgi
=> Gruta
::CGI
->new(
85 mkdir $folder . '/tag/', 0755;
86 mkdir $folder . '/top/', 0755;
88 out
($g, 'INDEX', 'index.html');
89 out
($g, 'CSS', 'style.css');
90 out
($g, 'RSS', 'rss.xml');
91 out
($g, 'SITEMAP', 'sitemap.xml');
93 foreach my $t (sort $g->source->topics()) {
94 mkdir $folder . '/' . $t, 0755;
96 my @stories = $g->source->stories($t);
98 foreach my $s (sort @stories) {
99 out
($g, 'STORY', "$t/$s.html", {
105 my $story = $g->source->story($t, $s);
107 my $d = $story->date('%y%m%d');
109 mkdir $folder . '/' . $d;
111 out
($g, 'SEARCH_BY_DATE', "${d}/index.html", {
112 from
=> "${d}000000",
118 out
($g, 'TOPIC', "$t/index.html", { 'topic' => $t, 'num' => $step });
120 my $max = scalar(@stories) - $step;
124 out
($g, 'TOPIC', "$t/~${offset}.html", {
135 out
($g, 'TAGS', 'tag/index.html');
137 foreach my $t ($g->source->tags()) {
138 out
($g, 'SEARCH_BY_TAG', "tag/$t->[0].html", { tag
=> $t->[0] });
141 out
($g, 'TOP_TEN', 'top/index.html');