aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/allow_to_specify_text_direction_for_RTL_support.mdwn
blob: 711c896bfd602b800d60e1a9942bbf10e9593370 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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]]