X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/3190e5cea75a43d38f58b8a45fbc87d5527d18f0..c8e3136d0091bd024e6dc1f3c21a10a92f2017d4:/doc/plugins/po.mdwn diff --git a/doc/plugins/po.mdwn b/doc/plugins/po.mdwn index ea1e89278..9298b3d37 100644 --- a/doc/plugins/po.mdwn +++ b/doc/plugins/po.mdwn @@ -219,6 +219,22 @@ interface could also be implemented at some point). If [[tips/untrusted_git_push]] is setup, one can edit the PO files in one's preferred `$EDITOR`, without needing to be online. +Markup languages support +------------------------ + +Markdown is well supported. Some other markup languages supported by +ikiwiki mostly work, but some pieces of syntax are not rendered +correctly on the slave pages: + +* [[reStructuredText|rst]]: anonymous hyperlinks and internal + cross-references +* [[wikitext]]: conversion of newlines to paragraphs +* [[creole]]: verbatim text is wrapped, tables are broken +* [[html]] and LaTeX: not supported yet; the dedicated po4a modules + could be used to support them, but they would need a security audit +* other markup languages have not been tested. + + TODO ==== @@ -383,6 +399,10 @@ use in our case, I suggest we define `ENV{COLUMNS}` before loading `refreshpofiles()` runs this external program. A po4a developer answered he does "not expect any security issues from it". +### msgfmt + +`isvalidpo()` runs this external program. Its security should be checked. + ### Fuzzing input I was not able to find any public information about gettext or po4a @@ -505,74 +525,16 @@ Better links ### Page title in links -To use the page titles set with the [[meta|plugins/meta]] plugin when -rendering links would be very much nicer, than the current -"filename.LL" format. This is actually a duplicate for -[[bugs/pagetitle_function_does_not_respect_meta_titles]]. - -Going to work on this in my `meta` branch. - -### Translation status in links - -See [[contrib/po]]. - -### Backlinks - -They are not updated when the source page changes (e.g. meta title). - -### Redirect after edit - -After editing master page, when using `po_link_to=negotiated`, one is -redirected to the page in her preferred language. Would be slightly -better to be redirected, in any case, to the just saved page. - -Page formats ------------- - -Markdown is well supported, great, but what about others? - -The [[po|plugins/po]] uses `Locale::Po4a::Text` for every page format; -this can be expected to work out of the box with most other wiki-like -formats supported by ikiwiki. Some of their ad-hoc syntax might be -parsed in a strange way, but the worst problems I can imagine would be -wrapping issues; e.g. there is code in po4a dedicated to prevent -re-wrapping the underlined Markdown headers. - -While it would be easy to better support formats such as [[html]] or -LaTeX, by using for each one the dedicated po4a module, this can be -problematic from a security point of view. - -**TODO**: test the more popular formats and write proper documentation -about it. - -Translation quality assurance ------------------------------ - -Modifying a PO file via the CGI must be forbidden if the new version -is not a valid PO file. As a bonus, check that it provides a more -complete translation than the existing one. - -A new `cansave` type of hook would be needed to implement this. - -Note: committing to the underlying repository is a way to bypass -this check. - -Creating new pages on the web ------------------------------ - -See [[contrib/po|contrib/po]]. - -Deleting/renaming pages ------------------------ - -- When a master page is renamed or deleted, its translations (and the - pot file?) must be renamed or deleted accordingly. -- Renaming a translation should be forbidden. +Using the fix to +[[bugs/pagetitle_function_does_not_respect_meta_titles]] from +[[intrigeri]]'s `meta` branch, the generated links' text is based on +the page titles set with the [[meta|plugins/meta]] plugin. This has to +be merged upstream, though. Robustness tests ---------------- -### Disabling the plugin +### Enabling/disabling the plugin - enabling the plugin with `po_translatable_pages` set - enabling the plugin without `po_translatable_pages` set: **OK** @@ -589,25 +551,10 @@ Robustness tests `po_slave_languages`: needs two rebuilds, but **OK** (this is quite a perverse test actually) -### Creating pages - -- creating a master page via RCS: **OK** -- creating a master page via CGI: **OK** - -### Deleting pages - -- removing a master page via RCS -- removing a translation via RCS: **OK** -- removing a master page via CGI -- removing a translation via CGI: **OK** - -### Renaming pages +### Creating/deleting/renaming pages -- renaming a master page via RCS -- renaming a master page and its translations via RCS -- renaming a master page via CGI -- renaming a translation via RCS -- renaming a translation via CGI +All cases of master/slave page creation/deletion/rename, both via RCS +and via CGI, have been tested. ### Misc