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
====
`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
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.
-
-### Translation status in links
-
-Quoting [[contrib/po]]: a given translation's status (currently:
-percent translated) could be displayed next to the link that leads to
-it; a color code could as well be used ("just" a matter of adding
-a CSS id or class to the links, depending on this variable).
-
-### 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.
+[[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.
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.
+Modifying a PO file via the CGI is already 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.
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.
-
Robustness tests
----------------
Maybe write separate documentation depending on the people it targets:
translators, wiki administrators, hackers. This plugin may be complex
enough to deserve this.
+
+Gettext-ize the plugin code.
+
+Misc
+----
+
+* Can the form validation system be used instead of creating the
+ `cansave` hook?