Merge commit 'upstream/master' into prv/po

master
intrigeri 2009-03-09 00:32:10 +01:00
commit f4a1732b0e
17 changed files with 189 additions and 125 deletions

View File

@ -87,10 +87,10 @@ MATCH: while (m{(?:^|(?<=\s|>))(\\?)$smiley_regexp(?:(?=\s|<)|$)}g) {
}
else {
# Replace the smiley with its expanded value.
substr($_, $spos, length($smiley))=
htmllink($params{page}, $params{destpage},
my $link=htmllink($params{page}, $params{destpage},
$smileys{$smiley}, linktext => $smiley);
pos=$epos+1;
substr($_, $spos, length($smiley))=$link;
pos=$epos+length($link);
}
}

View File

@ -69,9 +69,13 @@ sub preprocess (@) {
}
}
# This needs to run even in scan mode, in order to process
# links and other metadata includes via the template.
my $scan=! defined wantarray;
return IkiWiki::preprocess($params{page}, $params{destpage},
IkiWiki::filter($params{page}, $params{destpage},
$template->output));
$template->output), $scan);
}
1

View File

@ -26,8 +26,9 @@ sub formbuilder_setup (@) {
return if ! defined $form->field("do");
return unless (($form->field("do") eq "edit") ||
($form->field("do") eq "create"));
return unless $form->field("do") eq "edit" ||
$form->field("do") eq "create" ||
$form->field("do") eq "comment";
$form->tmpl_param("wmd_preview", "<div class=\"wmd-preview\"></div>\n".
include_javascript(undef, 1));
@ -36,9 +37,16 @@ sub formbuilder_setup (@) {
sub include_javascript ($;$) {
my $page=shift;
my $absolute=shift;
return '<script src="'.urlto("wmd.js", $page, $absolute).
'" type="text/javascript"></script>'."\n";
my $wmdjs=urlto("wmd/wmd.js", $page, $absolute);
return <<"EOF"
<script type="text/javascript">
wmd_options = {
output: "Markdown"
};
</script>
<script src="$wmdjs" type="text/javascript"></script>
EOF
}
1

10
debian/changelog vendored
View File

@ -1,9 +1,15 @@
ikiwiki (3.07) UNRELEASED; urgency=low
ikiwiki (3.07) unstable; urgency=low
* Updated German translation (Kai Wasserbäch). Closes: #518377
* Updated French translation (Jean-Luc Coulon). Closes: #518510
* wmd: New plugin contributed by William Uther to support the WMD
Wysiwym markdown editor.
* smiley: Avoid infinite loop in smiley expansion triggered
by the template scan mode change in version 3.05. Closes: #518805
* template: When loading a template in scan mode, let preprocess
know it only needs to scan.
-- Joey Hess <joeyh@debian.org> Thu, 05 Mar 2009 15:43:02 -0500
-- Joey Hess <joeyh@debian.org> Sun, 08 Mar 2009 19:00:46 -0400
ikiwiki (3.06) unstable; urgency=low

4
debian/copyright vendored
View File

@ -126,6 +126,10 @@ Files: 404.pm
Copyright: © 2009 Simon McVittie <http://smcv.pseudorandom.co.uk/>
License: GPL-2+
Files: wmd.pm
Copyright: © 2009 William Uther
License: GPL-2+
Files: doc/logo/*
Copyright: © 2006 Recai Oktaş <roktas@debian.org>
License: GPL-2+

View File

@ -1,3 +0,0 @@
ikiwiki 3.06 released with [[!toggle text="these changes"]]
[[!toggleable text="""
* Setup automator: Fix bug in password comparison. Closes: #[517654](http://bugs.debian.org/517654)"""]]

View File

@ -0,0 +1,10 @@
ikiwiki 3.07 released with [[!toggle text="these changes"]]
[[!toggleable text="""
* Updated German translation (Kai Wasserbäch). Closes: #[518377](http://bugs.debian.org/518377)
* Updated French translation (Jean-Luc Coulon). Closes: #[518510](http://bugs.debian.org/518510)
* wmd: New plugin contributed by William Uther to support the WMD
Wysiwym markdown editor.
* smiley: Avoid infinite loop in smiley expansion triggered
by the template scan mode change in version 3.05. Closes: #[518805](http://bugs.debian.org/518805)
* template: When loading a template in scan mode, let preprocess
know it only needs to scan."""]]

View File

@ -320,3 +320,11 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]]
>> --[[intrigeri]]
>
> --[[Joey]]
I reverted the `%backlinks` and `$backlinks_calculated` exposing.
The issue they were solving probably will arise again when I'll work
on my meta branch again (i.e. when the simplified po one is merged),
but the po thing is supposed to work without these ugly `our`.
Seems like it was the last unaddressed item from Joey's review, so I'm
daring a timid "please pull"... or rather, please review again :)
--[[intrigeri]]

View File

@ -0,0 +1,16 @@
[[!template id=plugin name=wmd author="[[Will]]"]]
[[!tag type/chrome]]
[WMD](http://wmd-editor.com/) is a What You See Is What You Mean editor for
[[mdwn]]. This plugin makes WMD be used for editing pages in the wiki.
To use the plugin, you will need to install WMD. Download the [WMD
source](http://wmd-editor.com/downloads/wmd-1.0.1.zip). In that zip file
you'll find a few example html files, a readme and `wmd` directory. Create
a 'wmd' subdirectory in the ikiwiki `underlaydir` directory (ie `sudo mkdir
/usr/share/ikiwiki/wmd`). Move the `wmd` directory into the directory you
made. You should now have a `wmd/wmd/wmd.js` file as well as some other
javascript files and an images directory in the same place.
Note that the WMD plugin does **not** handle ikiwiki directives. For this
reason the normal `preview` button remains.

View File

@ -18,32 +18,44 @@ add to ikiwiki.
[[!tag wishlist]]
>>> Below is a simple plugin/[[patch]] to make use of the WMD editor. Turns out it isn't hard at all to
>>> Below is a simple plugin/[[patch]] to make use of the WMD editor.
>>>> Now added to ikiwiki, thanks! --[[Joey]]
>>> Turns out it isn't hard at all to
>>> get a basic version going (which doesn't handle directives at all, nor does it swtich itself off when you're
>>> editing something other than Markdown source). I've
>>> removed the done tag so this is visible as a patch. -- [[Will]]
>>> Hmm, it would be good if it turned off for !mdwn. Although this could
>>> be difficult for a new page, since there is a dropdown selector to
>>> choose the markup language then. But it should be doable for editing an
>>> existing page.
>>>
>>> Can I get a license statement (ie, GPL-2+) ffrom you for the plugin?
>>> --[[Joey]]
>>>> Hmm, it would be good if it turned off for !mdwn. Although this could
>>>> be difficult for a new page, since there is a dropdown selector to
>>>> choose the markup language then. But it should be doable for editing an
>>>> existing page.
------
>>>>> I agree. I'm working on this for for both new pages and existing pages.
>>>>> It shouldn't be hard once I get WMD going through the javascript API.
>>>>> At the moment that is inexplicably failing, and I haven't had time to have a good look at why.
>>>>> I may not get a chance to look at this again for a few weeks.
### Instructions:
>>>> Can I get a license statement (ie, GPL-2+) ffrom you for the plugin?
>>>> --[[Joey]]
>>>>> Certainly. You're free to use the code I posted below under the GPL-2+ license. You'll note
>>>>> however that I haven't said anything about the WMD code itself. The WMD web page says:
Download the [WMD source](http://wmd-editor.com/downloads/wmd-1.0.1.zip). In that zip file you'll
find a few example html files, a readme and `wmd` directory. Move the `wmd` directory into the
ikiwiki `underlays` directory. You should now have an `underlays/wmd/wmd.js` file as well as
some other javascript files and an images directory in the same place.
>>>>>> "I'm refactoring the code, and will be releasing WMD under the MIT license soon. For now you can download the most recent release (wmd-1.0.1.zip) and use it freely."
>>>>> It might be best to contact <support@attacklab.net> to for an explicit license on that if you want to include it.
>>>>> -- [[Will]]
> So, I wonder if I should add a copy of the WMD source to ikiwiki, or rely
> on the user or distribution providing it. It does not seem to be packaged
> for Debian yet. --[[Joey]]
> for Debian yet. Hmm, I also can't find any copyright or license info in
> the zip file. --[[Joey]]
>> This is a good question. My thought is that it will probably not be packaged any time soon,
>> so you're better off adding it to IkiWiki. I'd contact the author of WMD and ask them. They
>> may have more insight. -- [[Will]]
Note that the WMD plugin does **not** handle directives. For this reason the normal `preview` button
remains. Some CSS to clean up the display of the live WMD preview would be good.
@ -51,66 +63,27 @@ remains. Some CSS to clean up the display of the live WMD preview would be good
> Can you elucidate the CSS comment -- or will it be obvious what you mean
> when I try it? Is it what's needed for the live preview? --[[Joey]]
Install the following patch and plugin file. Then enable the 'wmd' plugin.
>> In the version of the plugin below, a new `div` is added just below the form. WMD
>> populates this div with the HTML it generates from the Markdown source. This is not very
>> pretty at the moment - it appears in the same place as the preview used to, but with no
>> header or anything. Any standard IkiWiki preview will appear below the WMD live preview.
>> I recommend having a look at <http://wmd-editor.com/examples/splitscreen>
>> for what a little CSS could achieve. -- [[Will]]
> Hmm, now that I've tried it, I notice that it does live preview by
> default, below the edit window. Which is nice, but then if I hit the
> preview button, I get two previews.. which is confusing. (Also, minor,
> but: the live preview is missing the "Page Preview:" header.) --[[Joey]]
diff --git a/templates/editpage.tmpl b/templates/editpage.tmpl
index 4b54db2..b1cf015 100644
--- a/templates/editpage.tmpl
+++ b/templates/editpage.tmpl
@@ -37,6 +37,7 @@ Optional comment about this change:<br />
</div>
</TMPL_IF>
<TMPL_VAR FORM-END>
+<TMPL_VAR WMD_PREVIEW>
<TMPL_IF NAME="PAGE_PREVIEW">
<hr />
-----
#!/usr/bin/perl
package IkiWiki::Plugin::wmd;
use warnings;
use strict;
use IkiWiki 3.00;
use POSIX;
use Encode;
sub import {
add_underlay("wmd");
hook(type => "getsetup", id => "wmd", call => \&getsetup);
hook(type => "formbuilder_setup", id => "wmd", call => \&formbuilder_setup);
}
sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 1,
},
}
sub formbuilder_setup (@) {
my %params=@_;
my $form=$params{form};
return if ! defined $form->field("do");
return unless (($form->field("do") eq "edit") ||
($form->field("do") eq "create"));
$form->tmpl_param("wmd_preview", "<div class=\"wmd-preview\"></div>\n".include_javascript(undef, 1));
}
sub include_javascript ($;$) {
my $page=shift;
my $absolute=shift;
return '<script src="'.urlto("wmd.js", $page, $absolute).
'" type="text/javascript"></script>'."\n";
}
1
> I wonder how annoying it would be to add some kind of simplistic wikilink
> support to wmd's preview? And/or a wikilink button? While not supporting
> directies is fine, not supporting wikilinks in a wiki seems a bit
> lacking. It may also entice novide users to not use wikilinks and instead
> use the hyperlinks that wmd does support. --[[Joey]]
> Bug: When I preview, all the text in the edit field seems to be
> converted from mdwn to html. I think that wmd is converting the mdwn
> into html when the form is posted, so it would also save like that.
> I assume that is designed for websites that do not use markdown
> internally. Doesn't it have a setting to leave it as markdown?
>> Found setting, fixed. --[[Joey]]

View File

@ -103,3 +103,7 @@ hashes is desired, it could return the full set of hashes.
>> plugins use the hook; plugin A would see when plugin B adds a new file
>> to be renamed. And the subpage renaming stuff could probably be moved
>> into the rename hook too. --[[Joey]]
>>>
>>> I've implemented this nice solution in my po branch, please review.
>>> I'm slowly coming back to do the last bits needed to get my po and
>>> meta branch merged. --[[intrigeri]]

View File

@ -6,7 +6,7 @@ ikiwiki - a wiki compiler
ikiwiki [options] source destination
ikiwiki --setup configfile
ikiwiki --setup setupfile
# DESCRIPTION
@ -30,19 +30,19 @@ These options control the mode that ikiwiki operates in.
Force a rebuild of all pages.
* --setup configfile
* --setup setupfile
In setup mode, ikiwiki reads the config file, which is really a perl
program that can call ikiwiki internal functions.
The default action when --setup is specified is to automatically generate
wrappers for a wiki based on data in a config file, and rebuild the wiki.
wrappers for a wiki based on data in a setup file, and rebuild the wiki.
If you only want to build any changed pages, you can use --refresh with
--setup.
* --dumpsetup configfile
* --dumpsetup setupfile
Causes ikiwiki to write to the specified config file, dumping out
Causes ikiwiki to write to the specified setup file, dumping out
its current configuration.
* --wrappers
@ -103,7 +103,8 @@ These options control the mode that ikiwiki operates in.
# CONFIG OPTIONS
These options configure the wiki. Note that [[plugins]] can add additional
configuration options of their own.
configuration options of their own. All of these options and more besides can
also be configured using a setup file.
* --wikiname
@ -292,7 +293,7 @@ configuration options of their own.
* --prefix-directives, --no-prefix-directives
Toggle new '!'-prefixed syntax for preprocessor directives. ikiwiki currently
defaults to --no-prefix-directives.
defaults to --prefix-directives.
* --w3mmode, --no-w3mmode
@ -316,10 +317,28 @@ configuration options of their own.
* --set var=value
This allows setting an arbitrary configuration variable, the same as if it
were set via a configuration file. Since most options can be configured
were set via a setup file. Since most options can be configured
using command-line switches, you will rarely need to use this, but it can be
useful for the odd option that lacks a command-line switch.
# EXAMPLES
* ikiwiki --setup my.setup
Completly (re)build the wiki using the specified setup file.
* ikiwiki --setup my.setup --refresh
Refresh the wiki, using settings from my.setup, and avoid
rebuilding any pages that have not changed. This is faster.
* ikiwiki --setup my.setup --refresh --wrappers
Refresh the wiki, including regnerating all wrapper programs,
but do not rebuild all pages. Useful if you have changed something
in the setup file that does not need a full wiki rebuild to update
all pages, but that you want to immediatly take effect.
# ENVIRONMENT
* CC

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"POT-Creation-Date: 2009-03-08 19:02-0400\n"
"PO-Revision-Date: 2009-03-03 10:48+0100\n"
"Last-Translator: Víctor Moral <victor@taquiones.net>\n"
"Language-Team: spanish <es@li.org>\n"
@ -27,11 +27,15 @@ msgstr "Antes es necesario identificarse."
msgid ""
"probable misconfiguration: sslcookie is set, but you are attepting to login "
"via http, not https"
msgstr "probablemente algo está mal configurado: la característica 'sslcookie' está activa, pero está intentando registrarse en el sistema vía el protocolo 'http' y no 'https'"
msgstr ""
"probablemente algo está mal configurado: la característica 'sslcookie' está "
"activa, pero está intentando registrarse en el sistema vía el protocolo "
"'http' y no 'https'"
#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
msgstr ""
"registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
@ -67,7 +71,8 @@ msgstr "Contenido añadido activado vía web."
#: ../IkiWiki/Plugin/aggregate.pm:93
msgid "Nothing to do right now, all feeds are up-to-date!"
msgstr "¡ No hay nada que hacer, todas las fuentes de noticias están actualizadas !"
msgstr ""
"¡ No hay nada que hacer, todas las fuentes de noticias están actualizadas !"
#: ../IkiWiki/Plugin/aggregate.pm:220
#, perl-format
@ -356,7 +361,8 @@ msgstr ""
#: ../IkiWiki/Plugin/google.pm:31
msgid "Failed to parse url, cannot determine domain name"
msgstr "Error en el análisis del URL, no puedo determinar el nombre del dominio"
msgstr ""
"Error en el análisis del URL, no puedo determinar el nombre del dominio"
#: ../IkiWiki/Plugin/goto.pm:49
msgid "missing page"
@ -447,7 +453,8 @@ msgstr "La página %s está bloqueada y no puede modificarse"
#: ../IkiWiki/Plugin/mdwn.pm:44
msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed"
msgstr "el modo multimarkdown está activo, pero no está instalado Text::MultiMarkdown"
msgstr ""
"el modo multimarkdown está activo, pero no está instalado Text::MultiMarkdown"
#: ../IkiWiki/Plugin/mdwn.pm:67
#, perl-format
@ -869,7 +876,8 @@ msgid "plugins"
msgstr "complementos"
#: ../IkiWiki/Plugin/websetup.pm:395
msgid "The configuration changes shown below require a wiki rebuild to take effect."
msgid ""
"The configuration changes shown below require a wiki rebuild to take effect."
msgstr ""
"Los cambios en la configuración que se muestran más abajo precisan una "
"reconstrucción del wiki para tener efecto."
@ -985,7 +993,8 @@ msgstr "el programa %s no parece ser ejecutable"
#: ../IkiWiki/Wrapper.pm:20
msgid "cannot create a wrapper that uses a setup file"
msgstr "no puedo crear un programa envoltorio que utiliza un archivo de configuración"
msgstr ""
"no puedo crear un programa envoltorio que utiliza un archivo de configuración"
#: ../IkiWiki/Wrapper.pm:24
msgid "wrapper filename not specified"
@ -1074,4 +1083,3 @@ msgstr ""
#: ../auto.setup:23
msgid "What is the domain name of the web server?"
msgstr "¿ Cuál es el dominio para el servidor web ?"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 3.04\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-14 03:04-0500\n"
"POT-Creation-Date: 2009-03-08 19:02-0400\n"
"PO-Revision-Date: 2009-02-26 21:28+0100\n"
"Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@ -21,35 +21,41 @@ msgstr ""
msgid "You need to log in first."
msgstr "Vous devez d'abord vous identifier."
#: ../IkiWiki/CGI.pm:145
#: ../IkiWiki/CGI.pm:146
msgid ""
"probable misconfiguration: sslcookie is set, but you are attepting to login "
"via http, not https"
msgstr ""
#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "Échec de l'identification, vous devez autoriser les cookies."
#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:294
#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr "Session d'authentification expirée."
#: ../IkiWiki/CGI.pm:184
#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr "Sidentifier"
#: ../IkiWiki/CGI.pm:185
#: ../IkiWiki/CGI.pm:190
msgid "Preferences"
msgstr "Préférences"
#: ../IkiWiki/CGI.pm:186
#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr "Administrateur"
#: ../IkiWiki/CGI.pm:226
#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Les préférences ont été enregistrées."
#: ../IkiWiki/CGI.pm:257
#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Vous avez été banni."
#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Erreur"
@ -177,8 +183,8 @@ msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
"Désolé, mais ceci ressemble à un spam à destination de <a href=\"http:"
"//blogspam.net/\">blogspam</a>: "
"Désolé, mais ceci ressemble à un spam à destination de <a href=\"http://"
"blogspam.net/\">blogspam</a>: "
#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
@ -257,7 +263,7 @@ msgstr "Modération du commentaire"
msgid "comment moderation"
msgstr "modération du commentaire"
#: ../IkiWiki/Plugin/comments.pm:750
#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr "Commentaires"
@ -813,16 +819,16 @@ msgstr "Téléchargement direct des données"
msgid "parse fail at line %d: %s"
msgstr "Erreur d'analyse à la ligne %d : %s"
#: ../IkiWiki/Plugin/template.pm:28
#: ../IkiWiki/Plugin/template.pm:29
msgid "missing id parameter"
msgstr "Paramètre d'identification manquant"
#: ../IkiWiki/Plugin/template.pm:35
#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "Modèle de page %s introuvable"
#: ../IkiWiki/Plugin/template.pm:54
#: ../IkiWiki/Plugin/template.pm:55
msgid "failed to process:"
msgstr "Échec du traitement :"
@ -1036,12 +1042,12 @@ msgstr "Impossible d'utiliser plusieurs systèmes de contrôle des versions"
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr "Impossible de charger le greffon externe nécessaire au greffon %s : %s"
#: ../IkiWiki.pm:1187
#: ../IkiWiki.pm:1192
#, perl-format
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:1725
#: ../IkiWiki.pm:1730
msgid "yes"
msgstr "oui"
@ -1064,4 +1070,3 @@ msgstr "Identifiant de l'administrateur (utilisateur du wiki ou openid) :"
#: ../auto.setup:23
msgid "What is the domain name of the web server?"
msgstr "Nom de domaine du serveur HTTP :"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"POT-Creation-Date: 2009-03-08 19:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -15,6 +15,7 @@ Subject: <TMPL_VAR FIELD-SUBJECT><br />
<TMPL_VAR FORM-SUBMIT> <TMPL_VAR FIELD-TYPE> <TMPL_VAR HELPONFORMATTINGLINK><br />
IkiWiki directives ([[!directive]]) are <TMPL_UNLESS NAME="ALLOWDIRECTIVES">not </TMPL_UNLESS>allowed in comments on this wiki.<br />
<TMPL_VAR NAME="FORM-END">
<TMPL_VAR WMD_PREVIEW>
<TMPL_IF NAME="PAGE_PREVIEW">
<hr />

View File

@ -37,6 +37,7 @@ Optional comment about this change:<br />
</div>
</TMPL_IF>
<TMPL_VAR FORM-END>
<TMPL_VAR WMD_PREVIEW>
<TMPL_IF NAME="PAGE_PREVIEW">
<hr />