Suggest initial Right-To-Left page support implementation
authorfr33domlover <fr33domlover@web>
Fri, 11 Jul 2014 10:00:36 +0000 (06:00 -0400)
committeradmin <admin@branchable.com>
Fri, 11 Jul 2014 10:00:36 +0000 (06:00 -0400)
doc/todo/allow_to_specify_text_direction_for_RTL_support.mdwn [new file with mode: 0644]

diff --git a/doc/todo/allow_to_specify_text_direction_for_RTL_support.mdwn b/doc/todo/allow_to_specify_text_direction_for_RTL_support.mdwn
new file mode 100644 (file)
index 0000000..711c896
--- /dev/null
@@ -0,0 +1,46 @@
+Currently ikiwiki does not support left-to-right languages like Hebrew and Arabic,
+in the sense that page text is always aligned to the left. Unless you do some CSS
+hacking which doesn't scale well when you have many RTL pages.
+
+In the future it would be nice to make the while wiki UI go right-to-left if the user
+chooses, but right now what's really important to me as an RTL language user
+is that the body text can go right-to-left.
+
+This can be done with CSS easily:
+
+[[!format css """
+body {
+    text-align: right;
+}
+"""]]
+
+Currently there are two ways to make specific pages be RTL:
+
+1. Include a local.css file with the above code as an attachment of each RTL page
+2. Specify CSS with the [[ikiwiki/directive/meta]] directive
+
+The problem is that option 2 requires [[plugins/htmlscrubber]] to be off.
+
+My suggestion: Add a parameter to the meta directive, which allows adding
+an *rtl.css* file in addition to the exisiting ones. This file can be both at the top-level
+and per-page overriden, just like local.css. The page.tmpl file can then use the
+meta field to conditionally use the rtl.css, both the wiki-global one and the
+per-page one (just like it does with local.css, IIRC).
+
+And it won't require htmlscrubber off, just like local.css doesn't.
+
+In the future rtl.css can be extended to also RTLize the whole UI, e.g. including the
+location of the "buttons" at the top, the page name, code blocks and so on.
+
+What do you think? I can try this and send a patch. It just requires an additional
+meta field and a CSS file.
+
+For example, to make a page RTL include something like this inside it:
+
+    \[[!meta dir="rtl"]]
+
+Please tell me what you think.
+
+--[[fr33domlover]]
+
+[[!tag wishlist]]