X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/149a3e65a75d3d6e1b2106be00c7ec675c26406a..c8e3136d0091bd024e6dc1f3c21a10a92f2017d4:/doc/plugins/po.mdwn diff --git a/doc/plugins/po.mdwn b/doc/plugins/po.mdwn index da8a13074..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,66 +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). - -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]]. - -Renaming pages --------------- - -- 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** @@ -581,26 +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: **OK** -- removing a translation via RCS: **OK** -- removing a master page via CGI: **OK** -- removing a translation via CGI: **OK** - -### Renaming pages +### Creating/deleting/renaming pages -- renaming a master page via RCS: **OK** (but the old translations - are lost, because not all RCS track file renaming) -- renaming a master page and its translations via RCS: **OK** -- renaming a master page via CGI: **OK** -- 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