--- /dev/null
+#!/usr/bin/perl
+package IkiWiki::Plugin::progress;
+
+use warnings;
+use strict;
+use IkiWiki 2.00;
+
+my $percentage_pattern = qr/[0-9]+\%/; # pattern to validate percentages
+
+sub import { #{{{
+ hook(type => "getsetup", id => "progress", call => \&getsetup);
+ hook(type => "preprocess", id => "progress", call => \&preprocess);
+ hook(type => "format", id => "progress", call => \&format);
+} # }}}
+
+sub getsetup () { #{{{
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ },
+} #}}}
+
+sub preprocess (@) { #{{{
+ my %params=@_;
+
+ my $fill;
+
+ if (defined $params{percent}) {
+ $fill = $params{percent};
+ ($fill) = $fill =~ m/($percentage_pattern)/; # fill is untainted now
+ }
+ elsif (defined $params{totalpages} and defined $params{donepages}) {
+ add_depends($params{page}, $params{totalpages});
+ add_depends($params{page}, $params{donepages});
+
+ my @pages=keys %pagesources;
+ my $totalcount=0;
+ my $donecount=0;
+ foreach my $page (@pages) {
+ $totalcount++ if pagespec_match($page, $params{totalpages}, location => $params{page});
+ $donecount++ if pagespec_match($page, $params{donepages}, location => $params{page});
+ }
+
+ if ($totalcount == 0) {
+ $fill = "100%";
+ }
+ else {
+ my $number = $donecount/$totalcount*100;
+ $fill = sprintf("%u%%", $number);
+ }
+ }
+ else {
+ error("need either `percent` or `totalpages` and `donepages` parameters");
+ }
+
+ return <<EODIV
+<div class="progress">
+ <div class="progress-done" style="width: $fill">$fill</div>
+</div>
+EODIV
+} # }}}
+
+sub format(@) { #{{{
+ my %params = @_;
+
+ # If HTMLScrubber has removed the style attribute, then bring it back
+
+ $params{content} =~ s!<div class="progress-done">($percentage_pattern)</div>!<div class="progress-done" style="width: $1">$1</div>!g;
+
+ return $params{content};
+} #}}}
+
+1
* Avoid uninitialised value when --dumpsetup is used and no srcdir/destdir
specified.
* ddate: Stop clobbering timeformat when not enabled.
+ * progress: New plugin to generate progress bars (willu)
-- Joey Hess <joeyh@debian.org> Mon, 08 Sep 2008 19:21:20 -0400
Copyright: © 2006 Emanuele Aina
License: GPL-2+
-Files: monotone.pm, listdirectives.pm
-Copyright: © 2007 William Uther
+Files: monotone.pm, listdirectives.pm, progress.pm
+Copyright: © 2007, 2008 William Uther
License: GPL-2+
Files: tla.pm
--- /dev/null
+[[!template id=plugin name=progress author="[[Will]]"]]
+[[!tag type/meta]]
+
+Provides a \\[[!progress ]] [[ikiwiki/directive]] that displays a
+progress bar.
+
+There are two possible parameter sets. The first is a single parameter
+`percent` which holds a percentage figure for how complete the progress bar is.
+
+The second possible set of parameters is a pair of [PageSpecs|[ikiwiki/PageSpec]],
+`totalpages` and `donepages`. The progress plugin counts the number of
+pages in each pagespec and shows the percentage of the total pages that are
+done.
+
+This plugin is included in ikiwiki, but is not enabled by default.
+
+If it is turned on it can show what percentage of pages have discussion pages:
+
+ \[[!progress totalpages="* and !*/Discussion" donepages="*/Discussion"]]
border: 1px solid #aaa;
}
+div.progress {
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+ border: 1px solid #888;
+ width: 400px;
+ background: #eee;
+ color: black !important;
+ padding: 1px;
+}
+div.progress-done {
+ background: #ea6 !important;
+ color: black !important;
+ text-align: center;
+ padding: 1px;
+}
+
input#openid_url {
background: url(wikiicons/openidlogin-bg.gif) no-repeat;
background-color: #fff;
>>>>> I like it, but I think that Joey should take a look at that patch too :)
>>>>> --[[Paweł|ptecza]]
- #!/usr/bin/perl
- package IkiWiki::Plugin::progress;
-
- use warnings;
- use strict;
- use IkiWiki 2.00;
-
- my $percentage_pattern = qr/[0-9]+\%/; # pattern to validate percentages
-
- sub import { #{{{
- hook(type => "getsetup", id => "progress", call => \&getsetup);
- hook(type => "preprocess", id => "progress", call => \&preprocess);
- hook(type => "format", id => "progress", call => \&format);
- } # }}}
-
- sub getsetup () { #{{{
- return
- plugin => {
- safe => 1,
- rebuild => undef,
- },
- } #}}}
-
- sub preprocess (@) { #{{{
- my %params=@_;
-
- my $fill;
-
- if (defined $params{percent}) {
- $fill = $params{percent};
- ($fill) = $fill =~ m/($percentage_pattern)/; # fill is untainted now
- }
- elsif (defined $params{totalpages} and defined $params{donepages}) {
- add_depends($params{page}, $params{totalpages});
- add_depends($params{page}, $params{donepages});
-
- my @pages=keys %pagesources;
- my $totalcount=0;
- my $donecount=0;
- foreach my $page (@pages) {
- $totalcount++ if pagespec_match($page, $params{totalpages}, location => $params{page});
- $donecount++ if pagespec_match($page, $params{donepages}, location => $params{page});
- }
-
- if ($totalcount == 0) {
- $fill = "100%";
- } else {
- my $number = $donecount/$totalcount*100;
- $fill = sprintf("%u%%", $number);
- }
- }
- else {
- error("Missing parameters to progress plugin. Need either `percent` or `totalpages` and `donepages` parameters.");
- }
-
- return <<EODIV
- <div class="progress">
- <div class="progress-done" style="width: $fill">$fill</div>
- </div>
- EODIV
-
- } # }}}
-
- sub format(@) { #{{{
- my %params = @_;
-
- # If HTMLScrubber has removed the style attribute, then bring it back
-
- $params{content} =~ s!<div class="progress-done">($percentage_pattern)</div>!<div class="progress-done" style="width: $1">$1</div>!g;
-
- return $params{content};
- } #}}}
-
- 1
-
-Here is a potential documentation page:
-
------
-
-[[!template id=plugin name=progress author="[[Will]]"]]
-[[!tag type/meta]]
-
-Provides a \\[[!progress ]] [[ikiwiki/Directive]] that is
-replaced with a progress bar.
-
-There are two possible parameter sets. The first is a single parameter
-`percent` which holds a percentage figure for how complete the progress bar is.
-
-The second possible set of parameters is a pair of [[ikiwiki/PageSpec]]s,
-`totalpages` and `donepages`. The progress plugin counts the number of
-pages in each pagespec and shows the percentage of the total pages that are
-done.
-
-This plugin is included in ikiwiki, but is not enabled by default.
-
-If it is turned on it can show what percentage of pages have discussion pages:
-
- \[[!progress totalpages="* and !*/Discussion" donepages="*/Discussion"]]
+>>>>>> Reviewed, looks excellent, added. [[done]] --[[Joey]]
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-05 13:41-0400\n"
+"POT-Creation-Date: 2008-09-09 14:40-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:192
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
msgid "done"
msgstr ""
msgid "There are no broken links!"
msgstr ""
-#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:31
-#: ../IkiWiki/Plugin/cutpaste.pm:46 ../IkiWiki/Plugin/cutpaste.pm:62
+#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
+#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
#, perl-format
msgid "%s parameter is required"
msgstr ""
-#: ../IkiWiki/Plugin/cutpaste.pm:67
+#: ../IkiWiki/Plugin/cutpaste.pm:66
msgid "no text was copied in this page"
msgstr ""
-#: ../IkiWiki/Plugin/cutpaste.pm:70
+#: ../IkiWiki/Plugin/cutpaste.pm:69
#, perl-format
msgid "no text was copied in this page with id %s"
msgstr ""
msgid "generating wrappers.."
msgstr ""
-#: ../ikiwiki.in:181
+#: ../ikiwiki.in:182
msgid "rebuilding wiki.."
msgstr ""
-#: ../ikiwiki.in:184
+#: ../ikiwiki.in:185
msgid "refreshing wiki.."
msgstr ""