From: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
To: benoit.person@ensimag.fr
Cc: git@vger.kernel.org, Celestin Matte <celestin.matte@ensimag.fr>,
Jeff King <peff@peff.net>
Subject: Re: [PATCH/RFC 4/4] git-mw: Adding preview tool in git-mw.perl
Date: Thu, 13 Jun 2013 14:13:25 +0200 [thread overview]
Message-ID: <vpq61xiryxm.fsf@anie.imag.fr> (raw)
In-Reply-To: <1371118039-18925-5-git-send-email-benoit.person@ensimag.fr> (benoit person's message of "Thu, 13 Jun 2013 12:07:19 +0200")
benoit.person@ensimag.fr writes:
> From: Benoit Person <benoit.person@ensimag.fr>
>
> This final commit adds the preview subcommand to git mw. It works as such:
> 1- Find the remote name of the current branch's upstream and check if it's a
> mediawiki one.
> 1b- If it's not found or if it's not a mediawiki one. It will list all the
> mediawiki remotes configured and ask the user to replay the command with the
> --remote option set.
> 2- Parse the content of the local file (or blob) (given as argument) using
> the distant mediawiki's API
> 3- Retrieve the current page on the distant mediawiki
> 4- Replaces all content in that page with the newly parsed one
> 5- Convert relative links into absolute
> 6- Save the result on disk
>
> The command accepts those options:
> --autoload | -a tries to launch the newly generated file in the user's
> default browser (using git web--browse)
> --remote | -r provides a way to select the distant mediawiki in which
> the user wants to preview his file (or blob)
> --output | -o enables the user to choose the output filename. Default
> output filename is based on the input filename in which
> the extension '.mw' is replaced with '.html'
> --blob | -b tells the script that the last argument is a blob and not
> a filename
A commit messages that answers the "what?" and "how?" questions (as
opposed to "why?") is always suspicious: doesn't the message belong
elsewhere?
Here, you have a nice user documentation for command-line options, and
the actual user doc is much poorer:
> +sub preview_help {
> + print <<'END';
> +usage: git mw preview [--remote|-r <remote name>] [--autoload|-a]
> + [--output|-o <output filename>] <filename>
> +
> + -r, --remote Specify which mediawiki should be used
> + -o, --output Name of the output file
> + -a, --autoload Autoload the page in your default web browser
> +END
(shorter description, missing --blob)
> + } else { # file mode
> + if (! -e $file_name) {
> + die "File $file_name does not exists \n";
We're just setting a convention to use ${var} in string interpolation
(Celestin's perlcritic patch series), so better do it right now ;-).
Did you try "make perlcritic" on your code?
> + # Default preview_file_name is file_name with .html ext
> + if ($preview_file_name eq '') {
EMPTY ?
> + if ($remote_name eq '') {
EMPTY ?
> + # Load template page
> + $template = get("$remote_url/index.php?title=$wiki_page_name")
> + or die "You need to create $wiki_page_name before previewing it";
I got hit again by the HTTPS certificate validation failure. It would
make sense to have a more detailed error message, including the URL,
because having the same error:
You need to create Accueil before previewing it at /home/moy/local/usr-wheezy/libexec/git-core/git-mw line 182.
for any kind of HTTP failure is a painful. Doesn't "get" return an HTTP
code? If so, your message would make sense for 404 errors, but not for
the others.
> + $mw_content_text = $html_tree->look_down('id', 'mw-content-text');
Unfortunately, this doesn't seem standard. It doesn't work on
https://ensiwiki.ensimag.fr/index.php/Accueil at least (which is my main
use-case :-( ).
At least, you should check $mw_content_text and have a nice error
message here. As much as possible, you should allow a way to solve it
(make the lookup configurable in .git/config, or allow the user to
specify an arbitrary HTML template to plug onto, or display the raw,
incomplete, HTML).
I replaced 'mw-content-text' with 'bodyContent' and it worked.
Then I got
Wide character in print at /usr/lib/perl/5.14/IO/Handle.pm line 159.
but the file was generated. There are encoding problems: the title says
"Le Wiki des étudiants et enseignants" (it should be a É).
I guess you fed the API with an improper encoding (double UTF-8
encoding, or UTF-8 announced as latin-1 or so), and the API returned you
some hard-coded, badly encoded, rendered HTML.
> @@ -41,6 +241,7 @@ usage: git mw <command> <args>
>
> git mw commands are:
> Help Display help information about git mw
> + Preview Parse and render local file into HTML
> END
Lower-case help and preview.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
next prev parent reply other threads:[~2013-06-13 12:13 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-13 10:07 [PATCH/RFC V2 0/4] git-remote-mediawiki: new tool to preview local changes without pushing benoit.person
2013-06-13 10:07 ` [PATCH/RFC 1/4] git-mw: Introduction of GitMediawiki.pm benoit.person
2013-06-13 11:44 ` Matthieu Moy
2013-06-13 10:07 ` [PATCH/RFC 2/4] git-mw: Moving some functions from git-remote-mediawiki.perl to GitMediawiki.pm benoit.person
2013-06-13 10:07 ` [PATCH/RFC 3/4] git-mw: Adding git-mw.perl script benoit.person
2013-06-13 13:01 ` Matthieu Moy
2013-06-15 13:22 ` Benoît Person
2013-06-16 19:59 ` Matthieu Moy
2013-06-24 14:26 ` Matthieu Moy
2013-06-24 16:38 ` Junio C Hamano
2013-06-24 16:56 ` Matthieu Moy
2013-06-24 17:00 ` Jeff King
2013-06-24 17:05 ` Benoit Person
2013-06-24 17:23 ` Junio C Hamano
2013-06-13 10:07 ` [PATCH/RFC 4/4] git-mw: Adding preview tool in git-mw.perl benoit.person
2013-06-13 12:13 ` Matthieu Moy [this message]
2013-06-13 11:23 ` [PATCH/RFC V2 0/4] git-remote-mediawiki: new tool to preview local changes without pushing Matthieu Moy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=vpq61xiryxm.fsf@anie.imag.fr \
--to=matthieu.moy@grenoble-inp.fr \
--cc=benoit.person@ensimag.fr \
--cc=celestin.matte@ensimag.fr \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.