From: Simon McVittie Date: Wed, 28 Feb 2018 10:44:46 +0000 (+0000) Subject: New upstream version 3.20180228 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/a65e21d2a14b5267d8a5a4fde01d53f3740fbc0a?hp=91478dbbe398a35bed9d12b90e48c23969f7b289 New upstream version 3.20180228 --- diff --git a/.gitignore b/.gitignore index d27140896..a8d5ae77f 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ pm_to_blib /MYMETA.json /MYMETA.yml *.man +/plugins/__pycache__/ /po/cover_db /po/html/ po/po2wiki_stamp diff --git a/CHANGELOG b/CHANGELOG index 1456810e0..b43c033dc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,26 @@ +ikiwiki (3.20180228) upstream; urgency=medium + + * core: Don't send relative redirect URLs when behind a reverse proxy + * core: Escape backticks etc. in directive error messages as HTML + entities so that the error message is not subsequently parsed as + Markdown + * mdwn: Enable fenced code blocks, PHP Markdown Extra-style definition + lists and GitHub-style extensions to HTML tag syntax when used with + Discount >= 2.2.0 (Closes: #888055) + * img: Fix auto-detection of image format (if enabled, which is + strongly discouraged) with ImageMagick >= 6.9.8-3 + * rst: Use Python 3 instead of Python 2 + * build: `set -e` before each `for` loop, so that errors are reliably + trapped + * build: Use if/then instead of `||` so that the `-e` flag works + * build: Ensure that pm_to_blib finishes before rewriting shebang lines + * t: Make the img test pass with ImageMagick >= 6.9.8-3 + (Closes: #891647) + * debian: Remove unused Lintian overrides for duplicate word false positives + * debian: Declare compliance with Debian Policy 4.1.3 + + -- Simon McVittie Wed, 28 Feb 2018 10:38:19 +0000 + ikiwiki (3.20180105) upstream; urgency=medium * emailauth: Fix cookie problem when user is on https and the cgiurl diff --git a/IkiWiki.pm b/IkiWiki.pm index 0d87242eb..7a38c8f89 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1668,6 +1668,10 @@ sub preprocess ($$$;$$) { chomp $error; eval q{use HTML::Entities}; $error = encode_entities($error); + # Also encode most ASCII punctuation + # as entities so that error messages + # are not interpreted as Markdown etc. + $error = encode_entities($error, '[](){}!#$%*?@^`|~'."\\"); $ret="[[!$command ". gettext("Error").": $error"."]]"; } diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 64f5c6b8c..2c5b4a84d 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -91,7 +91,7 @@ sub redirect ($$) { my $q=shift; eval q{use URI}; - my $topurl; + my $topurl = $config{cgiurl}; if (defined $q && ! $config{w3mmode} && ! $config{reverse_proxy}) { $topurl = $q->url; } diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm index 79cfba20f..b85824345 100644 --- a/IkiWiki/Plugin/img.pm +++ b/IkiWiki/Plugin/img.pm @@ -125,7 +125,14 @@ sub preprocess (@) { } else { # allow ImageMagick to auto-detect (potentially dangerous) - $format = ''; + my $im = Image::Magick->new(); + my $r = $im->Ping(file => $in); + if ($r) { + $format = lc $r; + } + else { + error sprintf(gettext("failed to determine format of %s"), $file); + } } error sprintf(gettext("%s image processing disabled in img_allowed_formats configuration"), $format ? $format : "\"$extension\"") unless allowed($format ? $format : "everything"); diff --git a/IkiWiki/Plugin/mdwn.pm b/IkiWiki/Plugin/mdwn.pm index 9f06c03f2..66116ae01 100644 --- a/IkiWiki/Plugin/mdwn.pm +++ b/IkiWiki/Plugin/mdwn.pm @@ -125,6 +125,31 @@ sub htmlize (@) { $flags |= 0x00400000; } + # Enable fenced code blocks in libmarkdown >= 2.2.0 + # https://bugs.debian.org/888055 + if (Text::Markdown::Discount->can("MKD_FENCEDCODE")) { + $flags |= Text::Markdown::Discount::MKD_FENCEDCODE(); + } + else { + $flags |= 0x02000000; + } + + # PHP Markdown Extra-style term\n: definition ->
+ if (Text::Markdown::Discount->can("MKD_DLEXTRA")) { + $flags |= Text::Markdown::Discount::MKD_DLEXTRA(); + } + else { + $flags |= 0x01000000; + } + + # Allow dashes and underscores in tag names + if (Text::Markdown::Discount->can("MKD_GITHUBTAGS")) { + $flags |= Text::Markdown::Discount::MKD_GITHUBTAGS(); + } + else { + $flags |= 0x08000000; + } + return Text::Markdown::Discount::markdown($t, $flags); } } diff --git a/Makefile.PL b/Makefile.PL index bee9dfa11..6f1724697 100755 --- a/Makefile.PL +++ b/Makefile.PL @@ -61,8 +61,9 @@ extra_build: perl_shebangs $(outprogs) ikiwiki.setup docwiki sysconfdir docwiki: $(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.in --setup docwiki.setup --refresh -perl_shebangs: +perl_shebangs: pm_to_blib ifneq "$(PERL)" "/usr/bin/perl" + set -e; \ for file in $(shebang_scripts); do \ $(PERL) -pe "s|^#!/usr/bin/perl\b|#!$(PERL)| if 1" < $$file > "$$file.new"; \ [ -x $$file ] && chmod +x "$$file.new"; \ @@ -72,6 +73,7 @@ endif perl_shebangs_clean: ifneq "$(PERL)" "/usr/bin/perl" + set -e; \ for file in $(shebang_scripts); do \ $(PERL) -pe "s|^#!$(PERL)\b|#!/usr/bin/perl| if 1" < $$file > "$$file.new"; \ [ -x $$file ] && chmod +x "$$file.new"; \ @@ -93,49 +95,59 @@ myclean: clean underlay_install: install -d $(DESTDIR)$(PREFIX)/share/ikiwiki + set -e; \ for dir in `cd underlays && $(FIND) . -follow -type d`; do \ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ for file in `$(FIND) underlays/$$dir -follow -maxdepth 1 -type f ! -name jquery.js ! -name jquery-ui.css ! -name jquery-ui.js ! -name jquery.tmpl.js`; do \ - cp -pRL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir 2>/dev/null || \ - install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ + if ! cp -pRL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir 2>/dev/null; then \ + install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ + fi; \ done; \ done # The directive docs become their own special underlay. install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/directives/ikiwiki/directive + set -e; \ for file in doc/ikiwiki/directive/*; do \ if [ -f "$$file" ]; then \ - cp -pRL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/directives/ikiwiki/directive 2>/dev/null || \ - install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/directives/ikiwiki/directive; \ + if ! cp -pRL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/directives/ikiwiki/directive 2>/dev/null; then \ + install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/directives/ikiwiki/directive; \ + fi; \ fi \ done # Themes have their base.css (if present) and then # style.css appended to the normal one. + set -e; \ for theme in themes/*; do \ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$theme; \ for file in $$theme/*; do \ if echo "$$file" | grep -q style.css; then \ - (cat doc/style.css; cat $$theme/base.css 2>/dev/null; cat $$file) > $(DESTDIR)$(PREFIX)/share/ikiwiki/$$theme/style.css; \ + (cat doc/style.css; cat $$theme/base.css 2>/dev/null || :; cat $$file) > $(DESTDIR)$(PREFIX)/share/ikiwiki/$$theme/style.css; \ elif echo "$$file" | grep -q base.css; then \ :; \ elif [ -f "$$file" ]; then \ - cp -pRL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$file 2>/dev/null || \ - install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$file; \ + if ! cp -pRL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$file 2>/dev/null; then \ + install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$file; \ + fi; \ fi \ done; \ done extra_install: underlay_install # Install example sites. + set -e; \ for dir in `cd doc/examples; $(FIND) . -type d ! -regex '.*discussion.*'`; do \ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$dir; \ done + set -e; \ for file in `cd doc/examples; $(FIND) . -type f ! -regex '.*discussion.*'`; do \ - cp -pRL doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file 2>/dev/null || \ - install -m 644 doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file; \ + if ! cp -pRL doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file 2>/dev/null; then \ + install -m 644 doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file; \ + fi; \ done + set -e; \ for dir in `$(FIND) templates -follow -type d`; do \ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ for file in `$(FIND) $$dir -follow -maxdepth 1 -type f`; do \ @@ -144,9 +156,11 @@ extra_install: underlay_install done install -d $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins + set -e; \ for file in `$(FIND) plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* -name \*.py`; do \ install -m 644 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \ done + set -e; \ for file in `$(FIND) plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* ! -name \*.py ! -name \*.pyc`; do \ install -m 755 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \ done @@ -169,6 +183,7 @@ extra_install: underlay_install install ikiwiki-w3m.cgi $(DESTDIR)$(W3M_CGI_BIN) install -d $(DESTDIR)$(PREFIX)/bin + set -e; \ for prog in $(outprogs) $(scripts); do \ install $$prog $(DESTDIR)$(PREFIX)/bin/$$(echo $$prog | $(SED) 's/\.out//'); \ done diff --git a/debian/control b/debian/control index ad57a126f..6af39bd83 100644 --- a/debian/control +++ b/debian/control @@ -33,7 +33,7 @@ Build-Depends-Indep: Maintainer: Simon McVittie Uploaders: Josh Triplett , -Standards-Version: 4.1.1 +Standards-Version: 4.1.3 Homepage: https://ikiwiki.info/ Vcs-Git: git://git.ikiwiki.info/ Vcs-Browser: http://source.ikiwiki.branchable.com/?p=source.git;a=summary @@ -96,8 +96,8 @@ Suggests: libxml-writer-perl, po4a (>= 0.35-1), polygen, - python, - python-docutils, + python3, + python3-docutils, texlive, tidy, viewvc | gitweb | viewcvs, diff --git a/debian/copyright b/debian/copyright index b140feaa1..a25660adf 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,12 +1,12 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Source: native package +Source: https://ikiwiki.info/git/ Files: * Copyright: © 2006-2011 Joey Hess License: GPL-2+ Files: templates/* underlays/basewiki/* doc/ikiwiki/directive/* - ikiwiki.setup po/underlays/* underlays/javascript/* + po/underlays/* underlays/javascript/* Copyright: © 2006-2010 Joey Hess License: permissive @@ -203,13 +203,6 @@ Comment: Based on https://code.google.com/archive/p/openid-selector/ License: BSD-2-clause -Files: underlays/login-selector/ikiwiki/login-selector/goa-* -Copyright: - © 2011 Red Hat, Inc. -License: LGPL-2.1+ -Comment: - taken from data/icons/16x16/ in gnome-online-accounts git - Files: underlays/jquery/* Copyright: © 2005-2011 by John Resig, Branden Aaron & Jörn Zaefferer © 2011 The Dojo Foundation @@ -314,23 +307,6 @@ License: Expat OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -License: LGPL-2.1+ - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - . - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - . - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . - . - On Debian systems, the complete text of the GNU Lesser General - Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. - License: public-domain Public Domain Dedication . diff --git a/debian/ikiwiki.lintian-overrides b/debian/ikiwiki.lintian-overrides index 5c101d2a4..08cb40edc 100644 --- a/debian/ikiwiki.lintian-overrides +++ b/debian/ikiwiki.lintian-overrides @@ -1,4 +1,2 @@ ikiwiki: script-not-executable etc/ikiwiki/auto-blog.setup ikiwiki: script-not-executable etc/ikiwiki/auto.setup -ikiwiki: spelling-error-in-changelog Moin Moin (duplicate word) Moin -ikiwiki: spelling-error-in-copyright Moin Moin (duplicate word) Moin diff --git a/doc/bugs/Login_should_redirect_to_secure_version_of_site.mdwn b/doc/bugs/Login_should_redirect_to_secure_version_of_site.mdwn index 7c2c501b7..ae53fc5b3 100644 --- a/doc/bugs/Login_should_redirect_to_secure_version_of_site.mdwn +++ b/doc/bugs/Login_should_redirect_to_secure_version_of_site.mdwn @@ -7,3 +7,26 @@ Steps to reproduce: Firefox gives all kinds of warnings for unencrypted login pages. The fix is for the login page to redirect to the https version of the wiki before showing the login form. + +> This is web server configuration for those sites, so not really a bug in the +> ikiwiki software. If you run an ikiwiki instance and you have a browser-trusted certificate, +> I would recommend: +> +> * setting the `url` and `cgiurl` options to `https://...` +> * configuring your web server (frontend web server if you are using a reverse-proxy) +> to redirect from `http://...` to `https://...` automatically, possibly excluding +> `/.well-known/acme-challenge/` to make it easier to bootstrap Let's Encrypt certificates +> +> In [ikiwiki-hosting](https://ikiwiki-hosting.branchable.com/) the latter can be achieved +> by setting the `redirect_to_https` option to `1`. +> +> When not using ikiwiki-hosting, the ikiwiki software does not control the web server +> configuration, so it can't do this for you. The CGI script could redirect from http +> to https if it knew you had a browser-trusted certificate, but it can't know that +> unless you tell it (by setting `url` and `cgiurl`), and there's the potential for +> infinite redirect loops in misconfigured reverse-proxy setups if it did that +> (see [[bugs/login problem redux]]), so I think this is better solved at the web +> server level. +> +> The operator of ikiwiki.info and branchable.com can change the web server +> configuration for those sites, but other ikiwiki developers can't. --[[smcv]] diff --git a/doc/bugs/cgi_redirecting_to_non-https_URL.mdwn b/doc/bugs/cgi_redirecting_to_non-https_URL.mdwn index abdc676a0..02c04900f 100644 --- a/doc/bugs/cgi_redirecting_to_non-https_URL.mdwn +++ b/doc/bugs/cgi_redirecting_to_non-https_URL.mdwn @@ -23,6 +23,10 @@ Response Headers Status: 302 Found Location: http://redacted/phd/blog/38th_Dec/?updated#comment-bd0549eb2464b5ca0544f68e6c32221e +> Your form submission was in fact done successfully. The failing redirection to http is +> when ikiwiki follows up the successful edit by redirecting you from the form submission +> URL to the updated page, which is done by `IkiWiki::redirect`. --[[smcv]] + The CGI is served by lighttpd, but the whole site is front-ended by nginx, which reverse-proxies to lighttpd. ---- @@ -31,3 +35,19 @@ I think this might be to do with nginx not rewriting POST URLs when reverse-prox they would be generated in an HTTP form in any case, except perhaps by lighttpd's CGI handler since the back end is HTTP. A workaround is for nginx to redirect any HTTP URI to the HTTPS equivalent. I initially disabled that so as to have the path for letsencrypt negotiation not redirected.-- [[Users/Jon]] + +> Do you have the `reverse_proxy` option set to 1? (It affects how ikiwiki generates +> self-referential URLs). +> +> Is the connection between nginx and lighttpd http or https? +> +> I think this is maybe a bug in `IkiWiki::redirect` when used in conjunction with +> `reverse_proxy: 1`: when marked as behind a reverse proxy, +> `IkiWiki::redirect` sent `Location: /phd/foo/bar/`, which your backend web +> server might be misinterpreting. ikiwiki git master now sends +> `Location: https://redacted/phd/foo/bar/` instead: does that resolve this +> for you? +> +> Assuming nginx has a reasonable level of configuration, you can redirect http to https +> for the entire server except `/.well-known/acme-challenge/` as a good way to bootstrap +> ACME negotiation. --[[smcv]] diff --git a/doc/bugs/imagemagick_6.9.8_test_suite_failure.mdwn b/doc/bugs/imagemagick_6.9.8_test_suite_failure.mdwn index c2ea4f26d..d6af77111 100644 --- a/doc/bugs/imagemagick_6.9.8_test_suite_failure.mdwn +++ b/doc/bugs/imagemagick_6.9.8_test_suite_failure.mdwn @@ -53,3 +53,19 @@ Is this is a known problem and is there maybe a fix for this issue? > Please try re-running the test with better diagnostics using > [commit 4ace7dbb7](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=4ace7dbb7) > and report what it says. --[[smcv]] + +>> I see the same issue on Fedora, with ImageMagic 6.9.9-19: +>> +>> # Failed test at t/img.t line 119. +>> # got: 'no image: Exception 435: unable to open image `:t/tmp/out/imgconversions/10x-redsquare.png': No such file or directory @ error/blob.c/OpenBlob/2701' +>> # expected: '10x10' +>> [...] +>> +>> So it seems, that an empty coder prefix is not accepted anymore. To me it seems that [this commit](https://github.com/ImageMagick/ImageMagick/commit/4bc9b6b) changed the behavior. Unfortunately, the commit message doens't tell us about the reasons behind. The commit is included from version 6.9.8-3 on. + +>>> This should now be [[fixed|done]] in git and in the next release. +>>> The test failure does not indicate a loss of functionality, unless +>>> you are using uncommon image formats enabled with +>>> `img_allowed_formats: [everything]`, which is a potential security +>>> vulnerability because it exposes the attack surface of all +>>> ImageMagick decoder modules. --[[smcv]] diff --git a/doc/bugs/login_problem_redux.mdwn b/doc/bugs/login_problem_redux.mdwn new file mode 100644 index 000000000..20a4d407a --- /dev/null +++ b/doc/bugs/login_problem_redux.mdwn @@ -0,0 +1,71 @@ +Following up on [[login_problem]], there's still some problems mixing https +and http logins on sites that allow both and don't redirect http to https. + +> I think the only good solution to this is to configure web servers to +> redirect http to https, which is outside the scope of the ikiwiki +> software (but would be a useful configuration change on sites like +> ikiwiki.info). Redirecting from CGI code is problematic because +> reverse-proxies are a thing; see below. --[[smcv]] + +If the user logs in on https first, their cookie is https-only. If they +then open the http site and do something that needs them logged in, it will +try to log them in again. But, the https-only cookie is apparently not +replaced by the http login cookie. The login will "succeed", but the cookie +is inaccessible over https and so they'll not be really logged in. + +> Mitigation: If you have a browser-trusted certificate (which lots of +> people do now, because Let's Encrypt exists), setting the `cgiurl` to +> `https://...` will result in the CGI (which is the only part that +> needs cookies) being accessed via https whenever the user follows +> links from static content. +> (`test_site4_cgi_is_secure_static_content_doesnt_have_to_be` in +> `t/relativity.t`.) +> +> In the past I've wondered whether to add a distinction between +> authenticating and unauthenticating CGI URLs, so that on sites that +> don't particularly care about eavesdropping, anonymous/read-only actions +> like `?do=goto` can go via `http`, but write actions and actions that +> are usually authenticated like `?do=edit` go via `https`. However, in +> 2018 with Let's Encrypt widely available, it seems reasonable to just +> use `https` for all CGI accesses. +> --[[smcv]] + +I think that the only fix for this is make the login page redirect from +http to https, and for it to return to the https version of the page that +prompted the login. --[[Joey]] + +> Redirecting the login page from http to https inside ikiwiki.cgi is +> problematic, because ikiwiki can't reliably know whether it was already +> accessed via https. If there is a reverse-proxy in use but the site admin +> has not set the `reverse_proxy` option (which is not *always* necessary +> even behind reverse proxies AIUI, and I suspect some reverse-proxied sites +> haven't set it correctly), then ikiwiki.cgi would infinitely redirect back +> to itself. +> +> For example, suppose your frontend web server is example.com and your +> ikiwiki backend is 127.0.0.1:8080. +> +> * frontend web server sees an access to http://example.com/ikiwiki.cgi +> * frontend web server reverse-proxies it to http://127.0.0.1:8080/ikiwiki.cgi +> * backend web server invokes ikiwiki.cgi with `HTTPS` environment variable +> undefined +> * ikiwiki.cgi thinks "I'm being accessed via plain http" (this time correctly, +> as it happens) +> * ikiwiki.cgi sends a redirect to https://example.com/ikiwiki.cgi +> * {1} web browser follows redirect +> * frontend web server sees an access to https://example.com/ikiwiki.cgi +> * frontend web server reverse-proxies it to http://127.0.0.1:8080/ikiwiki.cgi +> * backend web server invokes ikiwiki.cgi with `HTTPS` environment variable +> undefined +> * ikiwiki.cgi thinks "I'm being accessed via plain http" (this time incorrectly!) +> * ikiwiki.cgi sends a redirect to https://example.com/ikiwiki.cgi +> * goto {1} +> +> I think this redirection is better achieved via web server configuration, like +> the Apache configuration set up by `redirect_to_https: 1` in +> [ikiwiki-hosting](https://ikiwiki-hosting.branchable.com/). +> +> If you change ikiwiki's behaviour in this area, please add test-cases to +> `t/relativity.t` to cover the cases that changed. +> +> --[[smcv]] diff --git a/doc/forum/Most_TMPL__95__VAR_variables_are_empty_in_a_template/comment_2_7dba0f1345260aa27d89bcd3526d5c10._comment b/doc/forum/Most_TMPL__95__VAR_variables_are_empty_in_a_template/comment_2_7dba0f1345260aa27d89bcd3526d5c10._comment new file mode 100644 index 000000000..1c5590ecc --- /dev/null +++ b/doc/forum/Most_TMPL__95__VAR_variables_are_empty_in_a_template/comment_2_7dba0f1345260aa27d89bcd3526d5c10._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="vegardv@75ae889e836bda8ce69bc038d8335c398a2f6f40" + nickname="vegardv" + avatar="http://cdn.libravatar.org/avatar/b35da1da5c23c19063f73defc0431ab0" + subject="Todo already exists for `basename`" + date="2018-01-10T08:54:27Z" + content=""" +https://ikiwiki.info/todo/Add_basename_in_edittemplate/ +"""]] diff --git a/doc/forum/Some_thoughts_about_Ikiwiki.mdwn b/doc/forum/Some_thoughts_about_Ikiwiki.mdwn new file mode 100644 index 000000000..a204bf5d8 --- /dev/null +++ b/doc/forum/Some_thoughts_about_Ikiwiki.mdwn @@ -0,0 +1,20 @@ +*Note : In this post, I only consider Ikiwiki as a static site compiler, not a wiki engine.* + +I have been using Ikiwiki for some years, writing [[several packages|spalax]], making some small contributions, and I somehow have the feeling that IkiWiki is getting old (maybe it has some technological debt). Among the things I am missing is: + +* it is written in Perl, and I don't know Perl; +* I think it could benefit from using OOP (object oriented programming); +* the template system is very very limited (compared to some modern template engines, like [Jinja2](http://jinja.pocoo.org/) or [Django](https://docs.djangoproject.com/en/2.0/topics/templates/)). + +So I looked at other static site generators (only in Python, because it is the only programming language I master). My thought was: since Ikiwiki is old (as [Joeyh said](https://joeyh.name/blog/entry/twenty_years_of_free_software_--_part_1_ikiwiki/): *it was a static site generator before we knew what those were. It wasn't the first, but it broke plenty of new ground*), modern static site generators should be as good as Ikiwiki, with some design mistakes fixed, right? I was wrong. + +Here are a few things that Ikiwiki does well, that other tools miss (and I might be biaised, but do no think that my opinion about it is an aversion to change: I do think Ikiwiki does it better). + +* The other tools I tried use separate pages from images from data (each one is in its own tree directory structure). There are workarounds, but [they might have caveats](https://github.com/getnikola/nikola/issues/2266#issuecomment-365922299). This might be linked to the next point: +* [[Wikilinks|ikiwiki/wikilink]] are great! I did not like them at first (I feared that if a page `foo` was linked to `bar`, this link might be broken later if another page `bar` was created, with a higher precedence than the original one). But I ended up liking it. +* The way other tools can be extended seems not clean: I do not want to write complex stuff or have to use regexp to match my new directive (or wathever it is called). Ikiwiki [[directive|ikiwiki/directive]] are great: writing a new directive is both very simple and very effective. +* Ikiwiki documentation is great (for other tools I tried, it is acceptable for using the static site, but poor for extending it). + +Well, this post was meant to congratulate [[joey]] and every ikiwiki contributors: its design is great (I already used "great" a few times, sorry for my poor vocabulary). What next? I can hope that every single user and contributor of ikiwiki decide to rewrite it in Python3 (to keep the great ideas, integrate some more modern tools, and avoid a fork), or, to be more realistic, I could go back in time to convince/bribe/coerce Joey to write it in Python (which would not solve everything, but would make it easier for me to contribute). A more serious path would be to have a look at [staticsite](https://github.com/spanezz/staticsite/) which is written by Enrico Zini, who seems to want the same thing I want: a "more modern" ikiwiki. + +-- Louis diff --git a/doc/forum/Some_thoughts_about_Ikiwiki/comment_1_db32786dd1c1022cec983a12a30b2b17._comment b/doc/forum/Some_thoughts_about_Ikiwiki/comment_1_db32786dd1c1022cec983a12a30b2b17._comment new file mode 100644 index 000000000..524ca09c3 --- /dev/null +++ b/doc/forum/Some_thoughts_about_Ikiwiki/comment_1_db32786dd1c1022cec983a12a30b2b17._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="jon+ikiwiki@663db4cb26e845748f3e7e6d51eeb26c6014f1c3" + nickname="jon+ikiwiki" + avatar="http://cdn.libravatar.org/avatar/2a3bcb34947fceef61560bd8a2931957" + subject="comment 1" + date="2018-02-22T16:30:42Z" + content=""" +I have basically been on a similar journey recently. Honestly I would like to move on from IkiWiki myself, and I agree with most of your first points (except the OOP one, which I think is a red herring). I haven't done a deep evaluation of other static site generators, just a shallow one; but I haven't looked at only Python. But results across other languages are much the same. A few core concepts in IkiWiki are very *right*, IMHO: the pagespec/wikilink rules amongst them. -- [[Jon]] +"""]] diff --git a/doc/ikiwiki/directive/img/discussion.mdwn b/doc/ikiwiki/directive/img/discussion.mdwn index 6fc28e75e..03cd4e6b3 100644 --- a/doc/ikiwiki/directive/img/discussion.mdwn +++ b/doc/ikiwiki/directive/img/discussion.mdwn @@ -32,3 +32,7 @@ It does show a clickable question mark for ikiwiki.cgi?page=utah-2006-100-180.pn I have a local copy of the [[rcs/Git]] page. After installing the `imagemagick-perl` package some of the elements display and others are missing including the page outlines with turned corners and all of the yellow folders. Ideas? -- [[RonParker]] + +# Percentage size + +Would like an image to occupy 50% of the page width. Is this available? With what syntax? --[[svetlana]] diff --git a/doc/index.mdwn b/doc/index.mdwn index 0122e489c..e0e401656 100644 --- a/doc/index.mdwn +++ b/doc/index.mdwn @@ -1,3 +1,5 @@ +[[!template id=links]] + Ikiwiki is a **wiki compiler**. It converts wiki pages into HTML pages suitable for publishing on a website. Ikiwiki stores pages and history in a [[revision_control_system|rcs]] such as [[Subversion|rcs/svn]] or [[rcs/Git]]. diff --git a/doc/news/version_3.20161229.1.mdwn b/doc/news/version_3.20161229.1.mdwn deleted file mode 100644 index a09a3b2ac..000000000 --- a/doc/news/version_3.20161229.1.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -ikiwiki 3.20161229.1 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * git: Attribute reverts to the user doing the revert, not the wiki - itself. - * git: Do not disable the commit hook while preparing a revert."""]] \ No newline at end of file diff --git a/doc/news/version_3.20180105.mdwn b/doc/news/version_3.20180105.mdwn new file mode 100644 index 000000000..2082db897 --- /dev/null +++ b/doc/news/version_3.20180105.mdwn @@ -0,0 +1,12 @@ +ikiwiki 3.20180105 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * emailauth: Fix cookie problem when user is on https and the cgiurl + uses http, by making the emailed login link use https. + * passwordauth: Use https for emailed password reset link when user + is on https. + * Remove openid provider icons from login selector, since openid providers + are increasingly not working. Verisign retired theirs, and aol and + yahoo/flickr are not commonly used for openid. Any users who still + clicked those icons to login will need to instead enter their openid url. + * Updated German basewiki and directives translation from + Sebastian Kuhnert."""]] \ No newline at end of file diff --git a/doc/plugins/rename/discussion.mdwn b/doc/plugins/rename/discussion.mdwn new file mode 100644 index 000000000..8412f0561 --- /dev/null +++ b/doc/plugins/rename/discussion.mdwn @@ -0,0 +1,15 @@ +# Bug with attachments in parent directory + +1. Create page '/foo', attach file baz2.png (it will be 'foo/baz2.png') +1. Create '/foo/bar' page with '[[baz2.png]]' contents, this works and shows the image +1. Rename /foo/bar to /iliketrains/bar + +Expected result, updated link inside of the page from 'baz2.png' to a relative or absolute path that works. + +Actual result, the link inside of the page is not updated. It stays a broken link. + +--[[svetlana]] + +# Can not rename individual attachments files + +It looks like I can not rename/move individual attachments files (those that are not pages) using the web interface. I need to do this on the fs. Perhaps that's intended but I am not sure. --[[svetlana]] diff --git a/doc/plugins/tag/discussion.mdwn b/doc/plugins/tag/discussion.mdwn index dfd749252..ad6b8d6ff 100644 --- a/doc/plugins/tag/discussion.mdwn +++ b/doc/plugins/tag/discussion.mdwn @@ -29,3 +29,8 @@ See [[todo/auto-create tag pages according to a template]] -- Jeremy Schultz `tag_autocreate` can now enable this. --[[Joey]] + + +# Auto-remove tag pages? + +When zero pages are tagged with a particular tag, its page could be auto-removed. Would that make sense? Doesn't look like this is already implemented. --[[user/svetlana]] diff --git a/doc/plugins/wmd/discussion.mdwn b/doc/plugins/wmd/discussion.mdwn index 191004dc3..7b5b1d7d0 100644 --- a/doc/plugins/wmd/discussion.mdwn +++ b/doc/plugins/wmd/discussion.mdwn @@ -20,3 +20,5 @@ Other conversations: >> on line 247. --[[simonraven]] >>> Well, I re-figured out that I needed a TMPL_VAR FOO in the template(s). --[[simonraven]] + + is 404, claims to be its copy but it does not have 'wmd' directory inside. What are the current steps to follow here? --[[svetlana]] diff --git a/doc/tips/convert_moinmoin_to_ikiwiki.mdwn b/doc/tips/convert_moinmoin_to_ikiwiki.mdwn index 492418b5a..40f01aa51 100644 --- a/doc/tips/convert_moinmoin_to_ikiwiki.mdwn +++ b/doc/tips/convert_moinmoin_to_ikiwiki.mdwn @@ -6,105 +6,8 @@ The converter was originally written by [[JoshTriplett]] and included support fo The MoinMoin side of things was completely re-written by [[anarcat]] and is currently still in development. That version is available at: - git clone git://git.koumbit.net/moin2iki.git + git clone https://gitlab.com/anarcat/moin2iki/ It doesn't feature support to migrate from Tikiwiki anymore and focuses on MoinMoin support. -Issues can be filed in the redmine bugtracker: - -[[!toc levels=2]] - -## Usage - -Usage instructions are in the `README` file. - -## MoinMoin importer features - - * supports latest MoinMoin versions (tested with 1.9.x) - * uses `git fast-import` to improve performance (10 minutes and 200M of ram for a 7 years old 2GB Moinmoin wiki) - * multistep process allows bulk edit through git before markdown conversion, or staying with a - * imports attachments as subpages - * uses the per-page edit log - * consistent: multiple runs will generate the same repository - * re-entrant: can be run multiple times to import new changes - -## MoinMoin converter features - - * most of the inline markup - * links - * attachment links - * smileys - * images (not well tested), into [[ikiwiki/directive/img]] - * preformatted and code areas, including [[ikiwiki/directive/format]] - * ordered, unordered and definition lists - * tables (although only with HTML and no styles) - -### Supported macros - - * TableOfContents, through [[ikiwiki/directive/toc]] - * Navigation, through [[ikiwiki/directive/map]] (so as a nested - vertical list instead of an horizontal list) - * PageList, through [[ikiwiki/directive/map]] - * MonthCalendar, partially, through [[ikiwiki/directive/calendar]] - * FootNote, through multimarkdown (`[^foo]` → `[^foo]: this is the footnote`) - * Anchor, through markdown and plain HTML - * `<
>`, through the weird line ending thing - * AttachList, through a weird [[ikiwiki/directive/inline]] - * FullSearch, partially, only through [[ikiwiki/directive/inline]] (so no textual search) - * Include, partially through [[ikiwiki/directive/inline]] (so missing boundary extraction and heading level generation) - * PageCount, same name even :) - * OrphanedPages, through [[ikiwiki/directive/orphans]] - * Date and Datetime, should be through [[plugins/date]] instead of - current hack - -### Supported parsers - - * the main "moin wiki" markup - * highlight parser, through the [[plugins/format]] plugin - * other parsers may be supported if an equivalent plugin exists in Ikiwiki (example: [[plugins/rst]]) - -## Current blocker - -This script is being used to test the conversion of the venerable [Koumbit wiki](https://wiki.koumbit.net/) into Ikiwiki, and so far progress is steady but difficult. The current blocker is: - - * figuring out exactly which pages should exist and which should not, as there is ambiguity in the internal datastructures of MoinMoin, which become apparent when running the conversion script, as files a missing - -## Todos - -There are also significant pieces missing: - - * inline parsers and hackish styled tables - * turn categories into tags - * name converted page to the right name depending on the `#format` parameter on top of page - * finish a full converter run on the Koumbitwiki - * improve the output of the converter (too much debugging) - -## MoinMoin features missing from ikiwiki - -The importer is pretty much complete, but the converter can only go so far as what features ikiwiki supports. Here are the MoinMoin features that are known to be missing from ikiwiki. Note that some of those features are available in MoinMoin only through third-party extensions. - - * [[todo/do_not_make_links_backwards/]] - MoinMoin and Creole use `\[[link|text]]`, while ikiwiki uses `\[[text|link]]` - for now the converter generates [[markdown]] links so this is not so much an issue, but will freak out users - * [[todo/internal_definition_list_support/]] - includes tabling the results ([MoinMoin's DictColumns macro](http://moinmo.in/MacroMarket/DictColumns)) - * [[todo/per page ACLs]] - ([MoinMoin's ACLs](http://moinmo.in/HelpOnAccessControlLists)) - * [MailTo](http://moinmo.in/HelpOnMacros/MailTo) macro spam protection - * list pages based on full text page search - * extract part of other pages with the inline macro - * specifying a template when creating a page (as opposed to matching a pagespec) - * specifying a style for a sub-section (MoinMoin's inline parsers - allow the user to specify a CSS class - very useful see - [the documentation](http://moinmo.in/HelpOnMoinWikiSyntax#Using_the_wiki_parser_with_css_classes) - to get an idea) - * the above also keeps the SectionParser from being properly supported - * regex matching all over the place: pagespec, basically, but all - full text search (which is missing anyways, see above) - -### Missing macros - - * RandomPage(N) - lists N random pages, skipped - * Gallery() - skipped - * Gettext - translates the string accordign to internal translation - system, ignored - * AdvancedSearch - an elaborate search form provided by MoinMoin - * Goto - a simple "jump to page" macro - -Comments and feedback always welcome! --[[anarcat]] +Issues can be filed on the [project page](https://gitlab.com/anarcat/moin2iki/), where more information about features, installation and usage is available as well. -- [[anarcat]] diff --git a/doc/tips/optimising_ikiwiki.mdwn b/doc/tips/optimising_ikiwiki.mdwn index 0c67e606c..2999573ac 100644 --- a/doc/tips/optimising_ikiwiki.mdwn +++ b/doc/tips/optimising_ikiwiki.mdwn @@ -207,7 +207,7 @@ The best way to do it is: * Install [[!cpan Devel::NYTProf]] * `PERL5OPT=-d:NYTProf` -* `export PER5OPT` +* `export PERL5OPT` * Now run ikiwiki as usual, and it will generate a `nytprof.out` file. * Run `nytprofhtml` to generate html files. * Those can be examined to see what parts of ikiwiki are being slow. diff --git a/doc/tips/optimising_ikiwiki/discussion.mdwn b/doc/tips/optimising_ikiwiki/discussion.mdwn new file mode 100644 index 000000000..f8c01fe51 --- /dev/null +++ b/doc/tips/optimising_ikiwiki/discussion.mdwn @@ -0,0 +1,22 @@ +# Profile data incomplete + +Following the steps "Install Devel::NYTProf. PERL5OPT=-d:NYTProf. export PER5OPT. Now run ikiwiki as usual, and it will generate a nytprof.out file. Run nytprofhtml to generate html files.", get the following error message: + + [svetlana /home/private/wiki]$ PERL5OPT=-d:NYTProf + [svetlana /home/private/wiki]$ export PER5OPT + [svetlana /home/private/wiki]$ ikiwiki --setup ikiwiki.setup + skipping bad filename free/To-dos.mdwn~ + [svetlana /home/private/wiki]$ nytprofhtml + Reading nytprof.out + Profile data incomplete, inflate error -5 ((null)) at end of input file, perhaps the process didn't exit cleanly or the + file has been truncated (refer to TROUBLESHOOTING in the documentation) + [svetlana /home/private/wiki]$ + +Typing "export NYTPROF=sigexit=int,hup,pipe,bus,segv,term" and repeating ikiwiki and nytprofhtml commands has no effect. + +What do I do now? Where is the TROUBLESHOOTING file located? --[[users/svetlana]] + + +Found , however, "export NYTPROF=sigexit=1" does not help either. Running "unset PER5OPT" before running nytprofhtml does not help either as well. That leaves this problem unsolved still. --[[users/svetlana]] Fri Feb 2 08:03:13 2018 + +Fixed by exporting "PERL5OPT" rather than "PER5OPT"; fixing typo in documentation... --[[users/svetlana]] diff --git a/doc/todo/Restrict_page_viewing.mdwn b/doc/todo/Restrict_page_viewing.mdwn index 20b59cb13..69b15a187 100644 --- a/doc/todo/Restrict_page_viewing.mdwn +++ b/doc/todo/Restrict_page_viewing.mdwn @@ -40,3 +40,8 @@ much more maintainable htaccess file. >>>>> If you use the httpauth and the cgiauthurl method, you can restrict a path >>>>> like /private/* to be accessible only under the authenticated request uri. + +>>>>>> Note that if editing is enabled, then you should set the restriction in +>>>>>> [[plugins/lockedit]]'s locked_pages too +>>>>>> or they may be able to view pages by editing the page= value in the editor's +>>>>>> query string. --[mjr](http://mjr.towers.org.uk/) diff --git a/doc/todo/consider_using_python3_for_rst_plugin.mdwn b/doc/todo/consider_using_python3_for_rst_plugin.mdwn new file mode 100644 index 000000000..741c78d38 --- /dev/null +++ b/doc/todo/consider_using_python3_for_rst_plugin.mdwn @@ -0,0 +1,27 @@ +Python 2 is officially unsupported after 2020, which is before the expected end-of-life +date of the next round of long-term-stable distributions like Debian 10 and Ubuntu 18.04, +so those distributions are encouraging all software that can migrate to Python 3 to do so. + +The down side of this is that it would make it harder to use the `rst` plugin on +very old OS releases, or on OSs where Python 3 is available but doesn't have a `python3` +symbolic link (if such OSs exist - [PEP 394](https://www.python.org/dev/peps/pep-0394/) +says they shouldn't), or in shared hosting environments where Python 2 is installed but +Python 3 isn't. (Mitigation: switching it to `python` or `python2` is a 1-line change.) + +For today's upload to Debian, I switched the `#!` line in the [[plugins/rst]] plugin +to `#!/usr/bin/python3`. In upstream ikiwiki it would probably be more appropriate +to use `#!/usr/bin/env python3`, and it would certainly be more appropriate to do it +by changing the source rather than by using `sed` after installation. I didn't apply that +change upstream immediately to give other maintainers a chance to comment. Thoughts? + +--[[smcv]] + +> I can attest as a pkgsrc developer, where we try to build and package +> software on all sorts of platforms (some old and wacky), that as long +> as the relevant Pythons build on those platforms (and we tend to make +> sure they do), I don't foresee any negative impact of your suggested +> change to ikiwiki. Can't attest for other situations, but am generally +> biased toward biting future bullets as early as possible. +> --[[schmonz]] + +>> Nobody objected, so it's now python3 for the next release. [[done]] --[[smcv]] diff --git a/doc/todo/css_and_javascript_aggregation.mdwn b/doc/todo/css_and_javascript_aggregation.mdwn index 4b3e5f766..7e38f7600 100644 --- a/doc/todo/css_and_javascript_aggregation.mdwn +++ b/doc/todo/css_and_javascript_aggregation.mdwn @@ -1,5 +1,7 @@ One of the goals of using a static site generator like ikiwiki, for me, is not only future-proofing and portability, but also performance. By having a small set of HTML pages with a minimal theme, we can deliver raw content much faster than a traditional CMS. This does not, however, keep us from doing optimizations that those same CMS must do in order to deliver good page performance. +> For the CSS case, this was already proposed at [[todo/concatenating or compiling CSS]] --[[smcv]] + Take, for example, this [performance report of the main ikiwiki site](https://gtmetrix.com/reports/ikiwiki.info/rwUIfK6d). For a very minimal site, it is still making 8 requests and taking ~700ms to load. That's quite fast, but it could probably be cut down to 400ms if CSS and JS were aggregated. If you look at [my homepage](https://gtmetrix.com/reports/anarc.at/uAkMmZaT) the results are worse, because I have larger JS and CSS files: the impact is therefore much bigger and we're looking at 2000ms load times. (Obviously, part of the problem here is the slowness of the uplink here, but one could argue the same problem would occur for downstream users that have a slower connexion.) One of the recommendations "YSlow" is giving is "Make fewer HTTP requests": diff --git a/doc/users/svetlana.mdwn b/doc/users/svetlana.mdwn index 6fca6dc1d..9d309e0dd 100644 --- a/doc/users/svetlana.mdwn +++ b/doc/users/svetlana.mdwn @@ -1,7 +1,8 @@ I speak English and Russian. I use ikiwiki at [my personal site](http://svetlana.nfshost.com). -I also help a few software projects localize their documentation -- [vy](http://vy.branchable.com) and [guppy](http://guppy.branchable.com). +I also help a few software projects localize their documentation -- [guppy](http://guppy.branchable.com/index.en.html). I enjoy ikiwiki. I am testing the po and osm plugins. + diff --git a/ikiwiki.spec b/ikiwiki.spec index 43897ff14..db7f1693a 100644 --- a/ikiwiki.spec +++ b/ikiwiki.spec @@ -1,5 +1,5 @@ Name: ikiwiki -Version: 3.20171002 +Version: 3.20180228 Release: 1%{?dist} Summary: A wiki compiler diff --git a/plugins/proxy.py b/plugins/proxy.py index b61eb466c..2a6222aa0 100755 --- a/plugins/proxy.py +++ b/plugins/proxy.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # proxy.py — helper for Python-based external (xml-rpc) ikiwiki plugins diff --git a/plugins/pythondemo b/plugins/pythondemo index 5e031805b..213e9bb27 100755 --- a/plugins/pythondemo +++ b/plugins/pythondemo @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # pythondemo — demo Python ikiwiki plugin diff --git a/plugins/rst b/plugins/rst index ba0f543f9..08eb54f85 100755 --- a/plugins/rst +++ b/plugins/rst @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # rst — xml-rpc-based ikiwiki plugin to process RST files diff --git a/po/bg.po b/po/bg.po index dca3d1d7f..4d6ef0fb0 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki-bg\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2007-01-12 01:19+0200\n" "Last-Translator: Damyan Ivanov \n" "Language-Team: Bulgarian \n" @@ -55,7 +55,7 @@ msgstr "Предпочитанията са запазени." msgid "You are banned." msgstr "Достъпът ви е забранен." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Грешка" @@ -430,7 +430,7 @@ msgstr "грешка при четене на „%s”: %s" msgid "%s is an attachment, not a page." msgstr "" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "" @@ -492,43 +492,48 @@ msgstr "няма разпознати усмивки; изключване на msgid "Unable to detect image type from extension" msgstr "грешка при запис на файла „%s”: %s" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, fuzzy, perl-format msgid "failed to read %s: %s" msgstr "грешка при запис на файла „%s”: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "грешка при запис на файла „%s”: %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "„%s” не е изпълним файл" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 #, fuzzy msgid "Image::Magick is not installed" msgstr "не е инсталиран polygen" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "грешка при запис на файла „%s”: %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, fuzzy, perl-format msgid "failed to resize: %s" msgstr "грешка при запис на файла „%s”: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, fuzzy, perl-format msgid "failed to determine size of image %s" msgstr "грешка при запис на файла „%s”: %s" @@ -609,7 +614,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1409,31 +1414,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, fuzzy, perl-format msgid "bad file name %s" msgstr "пропускане на невалидното име на файл „%s”" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "шаблонът „%s” не е намерен" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "непознат вид сортиране „%s”" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "непознат вид сортиране „%s”" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, fuzzy, perl-format msgid "cannot match pages: %s" msgstr "грешка при четене на „%s”: %s" diff --git a/po/cs.po b/po/cs.po index e603e721a..8781061a2 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2009-09-11 20:23+0200\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" @@ -55,7 +55,7 @@ msgstr "Nastavení uloženo." msgid "You are banned." msgstr "Jste vyhoštěni." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Chyba" @@ -429,7 +429,7 @@ msgstr "není stránkou" msgid "%s is an attachment, not a page." msgstr "%s není ani příloha, ani stránka." -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "nejste oprávněni měnit %s" @@ -490,42 +490,47 @@ msgstr "htmltidy se nepodařilo zpracovat toto html" msgid "Unable to detect image type from extension" msgstr "z kódu se nepodařilo vygenerovat obrázek" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "nelze číst %s: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "nelze určit velikost obrázku %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "%s není spustitelný soubor" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "Image::Magick není nainstalován" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "nelze určit velikost obrázku %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "chybné rozměry „%s“ (formát má být ŠxV)" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "nelze změnit velikost: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "nelze určit velikost obrázku %s" @@ -600,7 +605,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "je povolen multimarkdown, ale Text::MultiMarkdown není nainstalován" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1401,31 +1406,31 @@ msgstr "nepodařilo se nahrát externí modul vyžadovaný modulem %s: %s" msgid "preprocessing loop detected on %s at depth %i" msgstr "Byla rozpoznána smyčka na %s v hloubce %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "chybné jméno souboru %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "šablona %s nebyla nalezena" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "ano" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "neznámý typ řazení %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "neznámý typ řazení %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "nelze vybrat stránky: %s" diff --git a/po/da.po b/po/da.po index dbe04f964..1e635b536 100644 --- a/po/da.po +++ b/po/da.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki 3.20110430\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2011-05-05 13:30+0200\n" "Last-Translator: Jonas Smedegaard \n" "Language-Team: None\n" @@ -59,7 +59,7 @@ msgstr "Indstillinger gemt" msgid "You are banned." msgstr "Du er banlyst." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Fejl" @@ -429,7 +429,7 @@ msgstr "ikke en side" msgid "%s is an attachment, not a page." msgstr "%s er en vedhæftning, ikke en side." -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "Du har ikke lov til at ændre %s" @@ -491,42 +491,47 @@ msgstr "htmltidy kunne ikke afkode dette html" msgid "Unable to detect image type from extension" msgstr "billedopbygning fra kode mislykkedes" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "læsning af %s mislykkedes: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "Vurdering af billedstørrelse mislykkedes: %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "%s ser ikke ud til at kunne afvikles" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "Image::Magick ikke installeret" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "Vurdering af billedstørrelse mislykkedes: %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "forkert størrelsesformat \"%s\" (burde være WxH)" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "Ændring af størrelse mislykkedes: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "Vurdering af billedstørrelse mislykkedes: %s" @@ -602,7 +607,7 @@ msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" "multimarkdown er aktiveret, men Text::MultiMarkdown er ikke installeret" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1403,31 +1408,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "forudberegningssløkke fundet på %s ved dybde %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "dårligt filnavn %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "skabelon %s ikke fundet" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "ja" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, perl-format msgid "invalid sort type %s" msgstr "forkert sorteringstype %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "ukendt sorteringsform %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "kan ikke få sider til at passe sammen: %s" diff --git a/po/de.po b/po/de.po index a023c52f9..8f94c6c85 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki 3.14159\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2010-03-14 16:09+0530\n" "Last-Translator: Sebastian Kuhnert \n" "Language-Team: German \n" @@ -55,7 +55,7 @@ msgstr "Einstellungen gespeichert." msgid "You are banned." msgstr "Sie sind ausgeschlossen worden." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Fehler" @@ -430,7 +430,7 @@ msgstr "Keine Seite" msgid "%s is an attachment, not a page." msgstr "Seite %s ist ein Anhang und keine Seite." -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "Sie dürfen %s nicht verändern" @@ -493,42 +493,47 @@ msgstr "htmltidy konnte dieses HTML nicht auswerten" msgid "Unable to detect image type from extension" msgstr "konnte kein Bild aus dem Code erzeugen" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "Lesen von %s fehlgeschlagen: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "Größe des Bildes %s konnte nicht festgestellt werden." + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "%s scheint nicht ausführbar zu sein" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "Image::Magick ist nicht installiert" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "Größe des Bildes %s konnte nicht festgestellt werden." -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "falsches Format in \"%s\" für size (sollte BxH sein)" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "Größenänderung fehlgeschlagen: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "Größe des Bildes %s konnte nicht festgestellt werden." @@ -607,7 +612,7 @@ msgstr "" "multimarkdown ist eingeschaltet, aber Text::MultiMarkdown ist nicht " "installiert" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1423,31 +1428,31 @@ msgstr "Laden der für %s benötigten externen Erweiterung fehlgeschlagen: %s" msgid "preprocessing loop detected on %s at depth %i" msgstr "Präprozessorschleife auf %s in Tiefe %i erkannt" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "fehlerhafter Dateiname %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "Vorlage %s nicht gefunden" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "ja" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "Unbekannter Sortierungstyp %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "Unbekannter Sortierungstyp %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "Kann die Seiten nicht zuordnen: %s" diff --git a/po/es.po b/po/es.po index 9c3cae03e..09493d947 100644 --- a/po/es.po +++ b/po/es.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2009-06-14 12:32+0200\n" "Last-Translator: Victor Moral \n" "Language-Team: \n" @@ -59,7 +59,7 @@ msgstr "Las preferencias se han guardado." msgid "You are banned." msgstr "Ha sido expulsado." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Error" @@ -438,7 +438,7 @@ msgstr "no encuentro páginas coincidentes: %s" msgid "%s is an attachment, not a page." msgstr "la página %s no es modificable" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "No puede cambiar %s" @@ -502,42 +502,47 @@ msgstr "Algunos emoticonos tienen errores" msgid "Unable to detect image type from extension" msgstr "no he podido crear la imagen desde el código" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "no puedo leer de %s: %s " -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "no he podido determinar el tamaño de la imagen %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "el programa %s no parece ser ejecutable" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "El complemento Image::Magick no ha sido instalado" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "no he podido determinar el tamaño de la imagen %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "dimensionamiento fallido: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "no he podido determinar el tamaño de la imagen %s" @@ -615,7 +620,7 @@ msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" "el modo multimarkdown está activo, pero no está instalado Text::MultiMarkdown" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1429,31 +1434,31 @@ msgstr "" "se ha detectado en la página %s un bucle de preprocesado en la iteración " "número %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "el nombre de archivo %s es erróneo" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "no he encontrado la plantilla %s" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "si" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "no conozco este tipo de ordenación %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "no conozco este tipo de ordenación %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "no encuentro páginas coincidentes: %s" diff --git a/po/fr.po b/po/fr.po index e9ebc219b..5fbd1505d 100644 --- a/po/fr.po +++ b/po/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki 3.141\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2010-10-03 10:42+0200\n" "Last-Translator: Philippe Batailler \n" "Language-Team: French \n" @@ -57,7 +57,7 @@ msgstr "Les préférences ont été enregistrées." msgid "You are banned." msgstr "Vous avez été banni." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Erreur" @@ -427,7 +427,7 @@ msgstr "Ce n'est pas une page." msgid "%s is an attachment, not a page." msgstr "%s est une pièce jointe, pas une page." -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "Vous n'êtes pas autorisé à modifier %s" @@ -490,42 +490,47 @@ msgstr "htmltidy n'a pas pu analyser cette page html" msgid "Unable to detect image type from extension" msgstr "Échec de la création de l'image à partir du code" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "Échec de la lecture de %s : %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "Échec de la détermination de la taille de l'image : %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "%s ne semble pas être exécutable" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "Image::Magick n'est pas installé" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "Échec de la détermination de la taille de l'image : %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "Format de la taille incorrect \"%s\", (devrait être LxH)" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "Échec du redimensionnement : %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "Échec de la détermination de la taille de l'image : %s" @@ -602,7 +607,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "mulitmarkdown est activé mais Text::Multimarkdown n'est pas installé" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1419,31 +1424,31 @@ msgstr "Impossible de charger le greffon externe nécessaire au greffon %s : %s msgid "preprocessing loop detected on %s at depth %i" msgstr "Une boucle de prétraitement a été détectée sur %s à hauteur de %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "Nom de fichier incorrect %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "Modèle de page %s introuvable" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "oui" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, perl-format msgid "invalid sort type %s" msgstr "Type de tri %s inconnu" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "Type de tri %s inconnu" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "Impossible de trouver les pages : %s" diff --git a/po/gu.po b/po/gu.po index 960c606fe..f02e783a4 100644 --- a/po/gu.po +++ b/po/gu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki-gu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2007-01-11 16:05+0530\n" "Last-Translator: Kartik Mistry \n" "Language-Team: Gujarati \n" @@ -54,7 +54,7 @@ msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ." msgid "You are banned." msgstr "તમારા પર પ્રતિબંધ છે." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "ક્ષતિ" @@ -429,7 +429,7 @@ msgstr "વાંચી શકાતી નથી %s: %s" msgid "%s is an attachment, not a page." msgstr "%s એ સુધારી શકાય તેવું પાનું નથી" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "" @@ -490,43 +490,48 @@ msgstr "કોઇપણ સ્માઇલીઓ ઉકેલવામાં ન msgid "Unable to detect image type from extension" msgstr "માપ બદલવામાં નિષ્ફળ: %s" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "%s વાંચવામાં નિષ્ફળ: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "માપ બદલવામાં નિષ્ફળ: %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "%s એ ચલાવી શકાય તેમ લાગતું નથી" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 #, fuzzy msgid "Image::Magick is not installed" msgstr "પોલિગોન સ્થાપિત નથી" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "માપ બદલવામાં નિષ્ફળ: %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "માપ બદલવામાં નિષ્ફળ: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, fuzzy, perl-format msgid "failed to determine size of image %s" msgstr "માપ બદલવામાં નિષ્ફળ: %s" @@ -603,7 +608,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "Markdown.pm પર્લ મોડ્યુલ (%s) અથવા /usr/bin/markdown (%s) લાવવામાં નિષ્ફળ" @@ -1395,31 +1400,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "%s પર શોધાયેલ લુપ %s પર ચલાવે છે %i ઉંડાણ પર" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, fuzzy, perl-format msgid "bad file name %s" msgstr "ખરાબ ફાઇલ નામ છોડી દે છે %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "ટેમ્પલેટ %s મળ્યું નહી" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "અજાણ્યો ગોઠવણી પ્રકાર %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "અજાણ્યો ગોઠવણી પ્રકાર %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, fuzzy, perl-format msgid "cannot match pages: %s" msgstr "વાંચી શકાતી નથી %s: %s" diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 7da7fad7c..c41df3041 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:26-0400\n" +"POT-Creation-Date: 2018-02-28 10:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,7 +55,7 @@ msgstr "" msgid "You are banned." msgstr "" -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "" @@ -421,7 +421,7 @@ msgstr "" msgid "%s is an attachment, not a page." msgstr "" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "" @@ -480,42 +480,47 @@ msgstr "" msgid "Unable to detect image type from extension" msgstr "" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 #, perl-format -msgid "%s image processing disabled in img_allowed_formats configuration" +msgid "failed to determine format of %s" msgstr "" #: ../IkiWiki/Plugin/img.pm:138 #, perl-format +msgid "%s image processing disabled in img_allowed_formats configuration" +msgstr "" + +#: ../IkiWiki/Plugin/img.pm:145 +#, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, perl-format msgid "failed to get dimensions of %s" msgstr "" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "" @@ -590,7 +595,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1366,31 +1371,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, perl-format msgid "invalid sort type %s" msgstr "" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "" diff --git a/po/it.po b/po/it.po index ae21d1a6c..83f80ebcd 100644 --- a/po/it.po +++ b/po/it.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2009-08-16 11:01+0100\n" "Last-Translator: Luca Bruno \n" "Language-Team: Italian TP \n" @@ -53,7 +53,7 @@ msgstr "Preferenze salvate." msgid "You are banned." msgstr "Avete ricevuto un ban." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Errore" @@ -428,7 +428,7 @@ msgstr "non è una pagina" msgid "%s is an attachment, not a page." msgstr "%s è un allegato, non una pagina." -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "non è permesso modificare %s" @@ -491,42 +491,47 @@ msgstr "impossibile interpretare gli smile" msgid "Unable to detect image type from extension" msgstr "impossibile generare l'immagine dal codice" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "impossibile leggere %s: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "impossibile determinare la dimensione dell'immagine %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "%s non sembra essere eseguibile" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "Image::Magick non è installato" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "impossibile determinare la dimensione dell'immagine %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "Formato dimensione «%s» non valido (dovrebbe essere LxA)" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "impossibile ridimensionare: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "impossibile determinare la dimensione dell'immagine %s" @@ -603,7 +608,7 @@ msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" "multimarkdown è stato abilitato, ma Text::MultiMarkdown non è aggiornato" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1413,31 +1418,31 @@ msgstr "impossibile caricare il plugin esterno per il plugin %s: %s" msgid "preprocessing loop detected on %s at depth %i" msgstr "ciclo del preprocessore individuato su %s alla profondità %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "nome file %s scorretto" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "modello %s non trovato" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "sì" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "ordinamento %s sconosciuto" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "ordinamento %s sconosciuto" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "impossibile trovare pagine corrispondenti: %s" diff --git a/po/pl.po b/po/pl.po index da67c7b49..b9b619ba7 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki 1.51\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2007-04-27 22:05+0200\n" "Last-Translator: Pawel Tecza \n" "Language-Team: Debian L10n Polish \n" @@ -55,7 +55,7 @@ msgstr "Preferencje zapisane." msgid "You are banned." msgstr "Twój dostęp został zabroniony przez administratora." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Błąd" @@ -431,7 +431,7 @@ msgstr "awaria w trakcie odczytu %s: %s" msgid "%s is an attachment, not a page." msgstr "Strona %s nie może być edytowana" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "" @@ -493,43 +493,48 @@ msgstr "awaria w trakcie przetwarzania emitoikonki" msgid "Unable to detect image type from extension" msgstr "awaria w trakcie zmiany rozmiaru: %s" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, fuzzy, perl-format msgid "failed to read %s: %s" msgstr "awaria w trakcie odczytu %s: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "awaria w trakcie zmiany rozmiaru: %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "osłona %s nie jest wykonywalna" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 #, fuzzy msgid "Image::Magick is not installed" msgstr "wtyczka polygen nie jest zainstalowana" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "awaria w trakcie zmiany rozmiaru: %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, fuzzy, perl-format msgid "failed to resize: %s" msgstr "awaria w trakcie zmiany rozmiaru: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, fuzzy, perl-format msgid "failed to determine size of image %s" msgstr "awaria w trakcie zmiany rozmiaru: %s" @@ -611,7 +616,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1416,31 +1421,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "polecenie preprocesora %s wykryte w %s na głębokości %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, fuzzy, perl-format msgid "bad file name %s" msgstr "pomijanie nieprawidłowej nazwy pliku %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "nieznaleziony szablon %s" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "nieznany sposób sortowania %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "nieznany sposób sortowania %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, fuzzy, perl-format msgid "cannot match pages: %s" msgstr "awaria w trakcie odczytu %s: %s" diff --git a/po/sv.po b/po/sv.po index 8bf85c52a..0aa6e994c 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2007-01-10 23:47+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -54,7 +54,7 @@ msgstr "Inställningar sparades." msgid "You are banned." msgstr "Du är bannlyst." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Fel" @@ -429,7 +429,7 @@ msgstr "kan inte läsa %s: %s" msgid "%s is an attachment, not a page." msgstr "" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "" @@ -491,43 +491,48 @@ msgstr "misslyckades med att tolka smilisar, inaktiverar instick" msgid "Unable to detect image type from extension" msgstr "misslyckades med att skriva %s: %s" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, fuzzy, perl-format msgid "failed to read %s: %s" msgstr "misslyckades med att skriva %s: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "misslyckades med att skriva %s: %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "%s verkar inte vara körbar" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 #, fuzzy msgid "Image::Magick is not installed" msgstr "polygen inte installerad" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "misslyckades med att skriva %s: %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, fuzzy, perl-format msgid "failed to resize: %s" msgstr "misslyckades med att skriva %s: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, fuzzy, perl-format msgid "failed to determine size of image %s" msgstr "misslyckades med att skriva %s: %s" @@ -605,7 +610,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1402,31 +1407,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "%s förbehandlingsslinga detekterades på %s, djup %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, fuzzy, perl-format msgid "bad file name %s" msgstr "hoppar över felaktigt filnamn %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "mallen %s hittades inte" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "okänd sorteringstyp %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "okänd sorteringstyp %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, fuzzy, perl-format msgid "cannot match pages: %s" msgstr "kan inte läsa %s: %s" diff --git a/po/tr.po b/po/tr.po index b2b09ab9c..59ff38732 100644 --- a/po/tr.po +++ b/po/tr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki 3.20091031\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2009-11-08 03:04+0200\n" "Last-Translator: Recai Oktaş \n" "Language-Team: Turkish \n" @@ -51,7 +51,7 @@ msgstr "Tercihler kaydedildi." msgid "You are banned." msgstr "" -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Hata" @@ -417,7 +417,7 @@ msgstr "" msgid "%s is an attachment, not a page." msgstr "" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "" @@ -476,42 +476,47 @@ msgstr "" msgid "Unable to detect image type from extension" msgstr "" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, perl-format msgid "failed to read %s: %s" msgstr "" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 #, perl-format -msgid "%s image processing disabled in img_allowed_formats configuration" +msgid "failed to determine format of %s" msgstr "" #: ../IkiWiki/Plugin/img.pm:138 #, perl-format +msgid "%s image processing disabled in img_allowed_formats configuration" +msgstr "" + +#: ../IkiWiki/Plugin/img.pm:145 +#, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 msgid "Image::Magick is not installed" msgstr "" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, perl-format msgid "failed to get dimensions of %s" msgstr "" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, perl-format msgid "failed to resize: %s" msgstr "" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, perl-format msgid "failed to determine size of image %s" msgstr "" @@ -586,7 +591,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" @@ -1365,31 +1370,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, perl-format msgid "bad file name %s" msgstr "" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, perl-format msgid "invalid sort type %s" msgstr "" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, perl-format msgid "cannot match pages: %s" msgstr "" diff --git a/po/vi.po b/po/vi.po index 0cc383893..c1fa09a33 100644 --- a/po/vi.po +++ b/po/vi.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-05 12:22-0400\n" +"POT-Creation-Date: 2018-02-28 10:39+0000\n" "PO-Revision-Date: 2007-01-13 15:31+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" @@ -55,7 +55,7 @@ msgstr "Tùy thích đã được lưu." msgid "You are banned." msgstr "Bạn bị cấm ra." -#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1672 +#: ../IkiWiki/CGI.pm:491 ../IkiWiki/CGI.pm:492 ../IkiWiki.pm:1676 msgid "Error" msgstr "Lỗi" @@ -429,7 +429,7 @@ msgstr "không thể đọc %s: %s" msgid "%s is an attachment, not a page." msgstr "" -#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1892 +#: ../IkiWiki/Plugin/git.pm:933 ../IkiWiki/Plugin/git.pm:997 ../IkiWiki.pm:1896 #, perl-format msgid "you are not allowed to change %s" msgstr "" @@ -491,43 +491,48 @@ msgstr "lỗi phân tách hình cười nào nên tắt bổ sung" msgid "Unable to detect image type from extension" msgstr "lỗi ghi %s: %s" -#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:136 -#: ../IkiWiki/Plugin/img.pm:175 ../IkiWiki/Plugin/img.pm:223 +#: ../IkiWiki/Plugin/img.pm:104 ../IkiWiki/Plugin/img.pm:143 +#: ../IkiWiki/Plugin/img.pm:182 ../IkiWiki/Plugin/img.pm:230 #, fuzzy, perl-format msgid "failed to read %s: %s" msgstr "lỗi ghi %s: %s" -#: ../IkiWiki/Plugin/img.pm:131 +#: ../IkiWiki/Plugin/img.pm:134 +#, fuzzy, perl-format +msgid "failed to determine format of %s" +msgstr "lỗi ghi %s: %s" + +#: ../IkiWiki/Plugin/img.pm:138 #, perl-format msgid "%s image processing disabled in img_allowed_formats configuration" msgstr "" -#: ../IkiWiki/Plugin/img.pm:138 +#: ../IkiWiki/Plugin/img.pm:145 #, fuzzy, perl-format msgid "\"%s\" does not seem to be a valid %s file" msgstr "có vẻ là %s không phải có khả năng thực hiện" -#: ../IkiWiki/Plugin/img.pm:172 +#: ../IkiWiki/Plugin/img.pm:179 #, fuzzy msgid "Image::Magick is not installed" msgstr "chưa cài đặt polygen" -#: ../IkiWiki/Plugin/img.pm:184 +#: ../IkiWiki/Plugin/img.pm:191 #, fuzzy, perl-format msgid "failed to get dimensions of %s" msgstr "lỗi ghi %s: %s" -#: ../IkiWiki/Plugin/img.pm:191 +#: ../IkiWiki/Plugin/img.pm:198 #, perl-format msgid "wrong size format \"%s\" (should be WxH)" msgstr "" -#: ../IkiWiki/Plugin/img.pm:227 +#: ../IkiWiki/Plugin/img.pm:234 #, fuzzy, perl-format msgid "failed to resize: %s" msgstr "lỗi ghi %s: %s" -#: ../IkiWiki/Plugin/img.pm:252 +#: ../IkiWiki/Plugin/img.pm:259 #, fuzzy, perl-format msgid "failed to determine size of image %s" msgstr "lỗi ghi %s: %s" @@ -607,7 +612,7 @@ msgstr "" msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed" msgstr "" -#: ../IkiWiki/Plugin/mdwn.pm:150 +#: ../IkiWiki/Plugin/mdwn.pm:175 #, perl-format msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "lỗi nạp mô-đun perl Markdown.pm (%s) hay « /usr/bin/markdown » (%s)" @@ -1403,31 +1408,31 @@ msgstr "" msgid "preprocessing loop detected on %s at depth %i" msgstr "vòng lặp tiền xử lý %s được phát hiện trên %s ở độ sâu %i" -#: ../IkiWiki.pm:1848 +#: ../IkiWiki.pm:1852 #, fuzzy, perl-format msgid "bad file name %s" msgstr "đang bỏ qua tên tập tin sai %s" -#: ../IkiWiki.pm:2161 +#: ../IkiWiki.pm:2165 #, perl-format msgid "template %s not found" msgstr "không tìm thấy mẫu %s" -#: ../IkiWiki.pm:2419 +#: ../IkiWiki.pm:2423 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2504 +#: ../IkiWiki.pm:2508 #, fuzzy, perl-format msgid "invalid sort type %s" msgstr "kiểu sắp xếp không rõ %s" -#: ../IkiWiki.pm:2525 +#: ../IkiWiki.pm:2529 #, perl-format msgid "unknown sort type %s" msgstr "kiểu sắp xếp không rõ %s" -#: ../IkiWiki.pm:2674 +#: ../IkiWiki.pm:2678 #, fuzzy, perl-format msgid "cannot match pages: %s" msgstr "không thể đọc %s: %s" diff --git a/t/img.t b/t/img.t index 6049042c2..92cd61e13 100755 --- a/t/img.t +++ b/t/img.t @@ -43,6 +43,7 @@ my $PDFS_WORK = defined $magick->Get("width"); ok(! system("rm -rf t/tmp; mkdir -p t/tmp/in")); +ok(! system("cp t/img/redsquare.bmp t/tmp/in/redsquare.bmp")); ok(! system("cp t/img/redsquare.png t/tmp/in/redsquare.png")); ok(! system("cp t/img/redsquare.jpg t/tmp/in/redsquare.jpg")); ok(! system("cp t/img/redsquare.jpg t/tmp/in/redsquare.jpeg")); @@ -97,6 +98,7 @@ $maybe_pdf_img [[!img really-pdf.jpg size=666x]] [[!img really-pdf.png size=666x]] [[!img really-pdf.svg size=666x]] +[[!img redsquare.bmp size=16x]] expecting 16x16 if bmp enabled EOF ); ok(utime(333333333, 333333333, "t/tmp/in/imgconversions.mdwn")); @@ -105,8 +107,21 @@ ok(! system(@command, '--set-yaml', 'img_allowed_formats=[JPEG, PNG, svg, pdf]') sub size($) { my $filename = shift; + my $decoder; + if ($filename =~ m/\.png$/i) { + $decoder = 'png'; + } + elsif ($filename =~ m/\.jpe?g$/i) { + $decoder = 'jpeg'; + } + elsif ($filename =~ m/\.bmp$/i) { + $decoder = 'bmp'; + } + else { + die "Unexpected extension in '$filename'"; + } my $im = Image::Magick->new(); - my $r = $im->Read(":$filename"); + my $r = $im->Read("$decoder:$filename"); return "no image: $r" if $r; my $w = $im->Get("width"); my $h = $im->Get("height"); @@ -155,6 +170,10 @@ ok(! -e "$outpath/666x-really-pdf.jpg"); like($outhtml, qr/${quot}really-pdf\.png${quot} does not seem to be a valid png file/); ok(! -e "$outpath/666x-really-pdf.png"); +# We do not auto-detect file content unless specifically asked to do so +ok(! -e "$outpath/16x-redsquare.bmp"); +like($outhtml, qr{${quot}?bmp${quot}? image processing disabled in img_allowed_formats configuration}); + # resize is deterministic when deterministic=1 ok(utime(333333333, 333333333, "t/tmp/in/redsquare.png")); ok(! system("rm $outpath/10x-redsquare.png")); @@ -173,6 +192,55 @@ ok(! system(@command, "--rebuild")); ok(! -e "$outpath/10x-bluesquare.png"); ok(! -e "$outpath/12x-twopages.png"); ok(! -e "$outpath/16x-p1-twopages.png"); +ok(! -e "$outpath/16x-redsquare.bmp"); +like($outhtml, qr{${quot}?bmp${quot}? image processing disabled in img_allowed_formats configuration}); + +# enable support for everything (this is a terrible idea if you have +# untrusted users) +ok(! system(@command, '--set-yaml', 'img_allowed_formats=[everything]', '--rebuild')); + +$outhtml = readfile("$outpath.html"); +is(size("$outpath/16x-redsquare.bmp"), "16x16"); +like($outhtml, qr{src="(\./)?imgconversions/16x-redsquare\.bmp" width="16" height="16"}); +unlike($outhtml, qr{${quot}bmp${quot} image processing disabled in img_allowed_formats configuration}); + +is(size("$outpath/10x-redsquare.png"), "10x10"); +ok(! -e "$outpath/30x-redsquare.png"); +ok($outhtml =~ /width="30" height="30".*expecting 30x30/); +ok($outhtml =~ /width="42".*expecting 42x/); +ok($outhtml =~ /height="43".*expecting x43/); +ok($outhtml =~ /width="42" height="43".*expecting 42x43/); + +SKIP: { + skip "PDF support not installed (try ghostscript)", 2 + unless $PDFS_WORK; + is(size("$outpath/12x-twopages.png"), "12x12"); + is(size("$outpath/16x-p1-twopages.png"), "16x2"); +} + +ok($outhtml =~ /width="8" height="8".*expecting 8x8/); +is(size("$outpath/x8-hello:world.png"), "8x8"); +is(size("$outpath/x4-a:b:c.png"), "4x4"); +is(size("$outpath/x6-a:b:c:d:e:f:g:h:i:j.png"), "6x6"); + +is(size("$outpath/11x-redsquare.jpg"), "11x11"); +is(size("$outpath/12x-redsquare.jpeg"), "12x12"); +is(size("$outpath/13x-SHOUTY.JPG"), "13x13"); +like($outhtml, qr{src="(\./)?imgconversions/11x-redsquare\.jpg" width="11" height="11"}); +like($outhtml, qr{src="(\./)?imgconversions/12x-redsquare\.jpeg" width="12" height="12"}); +like($outhtml, qr{src="(\./)?imgconversions/13x-SHOUTY\.JPG" width="13" height="13"}); + +# We still do not misinterpret images +like($outhtml, qr/${quot}really-svg\.png${quot} does not seem to be a valid png file/); +ok(! -e "$outpath/666x-really-svg.png"); +ok(! -e "$outpath/666x-really-svg.bmp"); +like($outhtml, qr/${quot}really-pdf\.JPEG${quot} does not seem to be a valid jpeg file/); +ok(! -e "$outpath/666x-really-pdf.jpeg"); +ok(! -e "$outpath/666x-really-pdf.JPEG"); +like($outhtml, qr/${quot}really-pdf\.jpg${quot} does not seem to be a valid jpeg file/); +ok(! -e "$outpath/666x-really-pdf.jpg"); +like($outhtml, qr/${quot}really-pdf\.png${quot} does not seem to be a valid png file/); +ok(! -e "$outpath/666x-really-pdf.png"); # now let's remove them again diff --git a/t/img/redsquare.bmp b/t/img/redsquare.bmp new file mode 100644 index 000000000..ce003b587 Binary files /dev/null and b/t/img/redsquare.bmp differ diff --git a/t/relativity.t b/t/relativity.t index 7e382eaa7..0b8b6eb4b 100755 --- a/t/relativity.t +++ b/t/relativity.t @@ -112,11 +112,16 @@ sub run_cgi { my ($in, $out); my $is_preview = delete $args{is_preview}; my $is_https = delete $args{is_https}; + my $goto = delete $args{goto}; my %defaults = ( SCRIPT_NAME => '/cgi-bin/ikiwiki.cgi', HTTP_HOST => 'example.com', ); - if (defined $is_preview) { + if (defined $goto) { + $defaults{REQUEST_METHOD} = 'GET'; + $defaults{QUERY_STRING} = 'do=goto&page=a/b/c'; + } + elsif (defined $is_preview) { $defaults{REQUEST_METHOD} = 'POST'; $in = 'do=edit&page=a/b/c&Preview'; $defaults{CONTENT_LENGTH} = length $in; @@ -143,6 +148,15 @@ sub run_cgi { return $out; } +sub check_goto { + my $expected = shift; + my $redirect = run_cgi(goto => 1, @_); + ok($redirect =~ m/^Status:\s*302\s+/m); + ok($redirect =~ m/^Location:\s*(\S*)\r?\n/m); + my $location = $1; + like($location, $expected); +} + sub test_startup { ok(! system("rm -rf t/tmp")); ok(! system("mkdir t/tmp")); @@ -158,6 +172,7 @@ sub test_startup { } sub test_site1_perfectly_ordinary_ikiwiki { + diag("test_site1_perfectly_ordinary_ikiwiki"); write_setup_file( url => "http://example.com/wiki/", cgiurl => "http://example.com/cgi-bin/ikiwiki.cgi", @@ -166,6 +181,7 @@ sub test_site1_perfectly_ordinary_ikiwiki { check_cgi_mode_bits(); # url and cgiurl are on the same host so the cgiurl is host-relative check_generated_content(qr{]+href="/cgi-bin/ikiwiki.cgi\?do=prefs"}); + check_goto(qr{^http://example\.com/wiki/a/b/c/$}); my %bits = parse_cgi_content(run_cgi()); like($bits{basehref}, qr{^(?:(?:http:)?//example\.com)?/wiki/$}); like($bits{stylehref}, qr{^(?:(?:http:)?//example.com)?/wiki/style.css$}); @@ -178,6 +194,7 @@ sub test_site1_perfectly_ordinary_ikiwiki { like($bits{stylehref}, qr{^(?:(?:https:)?//example.com)?/wiki/style.css$}); like($bits{tophref}, qr{^(?:/wiki|\.)/$}); like($bits{cgihref}, qr{^(?:(?:https:)?//example.com)?/cgi-bin/ikiwiki.cgi$}); + check_goto(qr{^https://example\.com/wiki/a/b/c/$}, is_https => 1); # when accessed via a different hostname, links stay on that host %bits = parse_cgi_content(run_cgi(HTTP_HOST => 'staging.example.net')); @@ -185,6 +202,10 @@ sub test_site1_perfectly_ordinary_ikiwiki { like($bits{stylehref}, qr{^(?:(?:http:)?//staging.example.net)?/wiki/style.css$}); like($bits{tophref}, qr{^(?:/wiki|\.)/$}); like($bits{cgihref}, qr{^(?:(?:http:)?//staging.example.net)?/cgi-bin/ikiwiki.cgi$}); + TODO: { + local $TODO = "hostname should be copied to redirects' Location"; + check_goto(qr{^https://staging\.example\.net/wiki/a/b/c/$}, is_https => 1); + } # previewing a page %bits = parse_cgi_content(run_cgi(is_preview => 1)); @@ -195,6 +216,7 @@ sub test_site1_perfectly_ordinary_ikiwiki { } sub test_site2_static_content_and_cgi_on_different_servers { + diag("test_site2_static_content_and_cgi_on_different_servers"); write_setup_file( url => "http://static.example.com/", cgiurl => "http://cgi.example.com/ikiwiki.cgi", @@ -204,6 +226,7 @@ sub test_site2_static_content_and_cgi_on_different_servers { # url and cgiurl are not on the same host so the cgiurl has to be # protocol-relative or absolute check_generated_content(qr{]+href="(?:http:)?//cgi.example.com/ikiwiki.cgi\?do=prefs"}); + check_goto(qr{^http://static\.example\.com/a/b/c/$}); my %bits = parse_cgi_content(run_cgi(SCRIPT_NAME => '/ikiwiki.cgi', HTTP_HOST => 'cgi.example.com')); like($bits{basehref}, qr{^(?:(?:http:)?//static.example.com)?/$}); @@ -217,6 +240,8 @@ sub test_site2_static_content_and_cgi_on_different_servers { like($bits{stylehref}, qr{^(?:(?:https:)?//static.example.com)?/style.css$}); like($bits{tophref}, qr{^(?:https:)?//static.example.com/$}); like($bits{cgihref}, qr{^(?:(?:https:)?//cgi.example.com)?/ikiwiki.cgi$}); + check_goto(qr{^https://static\.example\.com/a/b/c/$}, is_https => 1, + HTTP_HOST => 'cgi.example.com', SCRIPT_NAME => '/ikiwiki.cgi'); # when accessed via a different hostname, links to the CGI (only) should # stay on that host? @@ -229,9 +254,12 @@ sub test_site2_static_content_and_cgi_on_different_servers { local $TODO = "use self-referential CGI URL?"; like($bits{cgihref}, qr{^(?:(?:http:)?//staging.example.net)?/ikiwiki.cgi$}); } + check_goto(qr{^https://static\.example\.com/a/b/c/$}, is_https => 1, + HTTP_HOST => 'staging.example.net', SCRIPT_NAME => '/ikiwiki.cgi'); } sub test_site3_we_specifically_want_everything_to_be_secure { + diag("test_site3_we_specifically_want_everything_to_be_secure"); write_setup_file( url => "https://example.com/wiki/", cgiurl => "https://example.com/cgi-bin/ikiwiki.cgi", @@ -247,6 +275,7 @@ sub test_site3_we_specifically_want_everything_to_be_secure { like($bits{stylehref}, qr{^(?:(?:https:)?//example.com)?/wiki/style.css$}); like($bits{tophref}, qr{^(?:/wiki|\.)/$}); like($bits{cgihref}, qr{^(?:(?:https:)?//example.com)?/cgi-bin/ikiwiki.cgi$}); + check_goto(qr{^https://example\.com/wiki/a/b/c/$}, is_https => 1); # when not accessed via HTTPS, links should still be secure # (but if this happens, that's a sign of web server misconfiguration) @@ -258,6 +287,7 @@ sub test_site3_we_specifically_want_everything_to_be_secure { like($bits{stylehref}, qr{^(?:(?:https:)?//example.com)?/wiki/style.css$}); } like($bits{cgihref}, qr{^(?:(?:https:)?//example.com)?/cgi-bin/ikiwiki.cgi$}); + check_goto(qr{^https://example\.com/wiki/a/b/c/$}, is_https => 0); # when accessed via a different hostname, links stay on that host %bits = parse_cgi_content(run_cgi(is_https => 1, HTTP_HOST => 'staging.example.net')); @@ -265,6 +295,8 @@ sub test_site3_we_specifically_want_everything_to_be_secure { like($bits{stylehref}, qr{^(?:(?:https:)?//staging.example.net)?/wiki/style.css$}); like($bits{tophref}, qr{^(?:/wiki|\.)/$}); like($bits{cgihref}, qr{^(?:(?:https:)?//staging.example.net)?/cgi-bin/ikiwiki.cgi$}); + check_goto(qr{^https://staging\.example\.net/wiki/a/b/c/$}, is_https => 1, + HTTP_HOST => 'staging.example.net'); # previewing a page %bits = parse_cgi_content(run_cgi(is_preview => 1, is_https => 1)); @@ -275,6 +307,7 @@ sub test_site3_we_specifically_want_everything_to_be_secure { } sub test_site4_cgi_is_secure_static_content_doesnt_have_to_be { + diag("test_site4_cgi_is_secure_static_content_doesnt_have_to_be"); # (NetBSD wiki) write_setup_file( url => "http://example.com/wiki/", @@ -291,6 +324,7 @@ sub test_site4_cgi_is_secure_static_content_doesnt_have_to_be { like($bits{stylehref}, qr{^(?:(?:https:)?//example.com)?/wiki/style.css$}); like($bits{tophref}, qr{^(?:/wiki|\.)/$}); like($bits{cgihref}, qr{^(?:(?:https:)?//example.com)?/cgi-bin/ikiwiki.cgi$}); + check_goto(qr{^https://example\.com/wiki/a/b/c/$}, is_https => 1); # FIXME: when not accessed via HTTPS, should the static content be # forced to https anyway? For now we accept either @@ -299,6 +333,7 @@ sub test_site4_cgi_is_secure_static_content_doesnt_have_to_be { like($bits{stylehref}, qr{^(?:(?:https?:)?//example.com)?/wiki/style.css$}); like($bits{tophref}, qr{^(?:(?:https?://example.com)?/wiki|\.)/$}); like($bits{cgihref}, qr{^(?:(?:https:)?//example.com)?/cgi-bin/ikiwiki.cgi$}); + check_goto(qr{^https://example\.com/wiki/a/b/c/$}, is_https => 0); # when accessed via a different hostname, links stay on that host %bits = parse_cgi_content(run_cgi(is_https => 1, HTTP_HOST => 'staging.example.net')); @@ -312,6 +347,8 @@ sub test_site4_cgi_is_secure_static_content_doesnt_have_to_be { local $TODO = "this should really point back to itself but currently points to example.com"; like($bits{cgihref}, qr{^(?:(?:https:)?//staging.example.net)?/cgi-bin/ikiwiki.cgi$}); } + check_goto(qr{^https://staging\.example\.net/wiki/a/b/c/$}, is_https => 1, + HTTP_HOST => 'staging.example.net'); # previewing a page %bits = parse_cgi_content(run_cgi(is_preview => 1, is_https => 1)); @@ -322,6 +359,7 @@ sub test_site4_cgi_is_secure_static_content_doesnt_have_to_be { } sub test_site5_w3mmode { + diag("test_site5_w3mmode"); # as documented in [[w3mmode]] write_setup_file( url => undef, @@ -339,9 +377,15 @@ sub test_site5_w3mmode { like($bits{cgihref}, qr{^(?:file://)?/\$LIB/ikiwiki-w3m.cgi/ikiwiki.cgi$}); like($bits{basehref}, qr{^(?:(?:file:)?//)?\Q$pwd\E/t/tmp/out/$}); like($bits{stylehref}, qr{^(?:(?:(?:file:)?//)?\Q$pwd\E/t/tmp/out|\.)/style.css$}); + + my $redirect = run_cgi(goto => 1, PATH_INFO => '/ikiwiki.cgi', + SCRIPT_NAME => '/cgi-bin/ikiwiki-w3m.cgi'); + like($redirect, qr{^Content-type: text/plain\r?\n}m); + like($redirect, qr{^W3m-control: GOTO (?:file://)?\Q$pwd\E/t/tmp/out/a/b/c/\r?\n}m); } sub test_site6_behind_reverse_proxy { + diag("test_site6_behind_reverse_proxy"); write_setup_file( url => "https://example.com/wiki/", cgiurl => "https://example.com/cgi-bin/ikiwiki.cgi", @@ -359,6 +403,7 @@ sub test_site6_behind_reverse_proxy { like($bits{cgihref}, qr{^(?:(?:https:)?//example.com)?/cgi-bin/ikiwiki.cgi$}); like($bits{basehref}, qr{^(?:(?:https:)?//example\.com)?/wiki/$}); like($bits{stylehref}, qr{^(?:(?:https:)?//example.com)?/wiki/style.css$}); + check_goto(qr{^https://example\.com/wiki/a/b/c/$}, HTTP_HOST => 'localhost'); # previewing a page %bits = parse_cgi_content(run_cgi(is_preview => 1, HTTP_HOST => 'localhost')); diff --git a/t/wellformed.t b/t/wellformed.t index f57d3ca9c..56526de8a 100755 --- a/t/wellformed.t +++ b/t/wellformed.t @@ -12,7 +12,7 @@ plan(skip_all => "XML::Parser not available") use IkiWiki; -ok(system("make >/dev/null") == 0); +ok(system("make docwiki >/dev/null") == 0); chdir("html") || die "chdir: $!";