Here's a suggestion for how the new markup should be.
I tried to make it as similar to HTML/CSS as possible, but avoid naming things that would be confusing (because we do something similar but allowed values are very different).
First of all, the new markup will always require having a tag, so <font_size=12>hi</> is no longer allowed, you now need <span font_size=12>hi</span>. This will make it more familiar/HTML like and makes parsing and validation much easier.
You have a few basic tags:
- span: any sort of a span of text - used for applying styles
- a: essentially a span, but also supports "href" for a link indicator
- item: an embedded item in the text (replaced with an object)
- ps / br: paragraph separator and line separator respectively.
We will have some default aliases (with styling applied), such as b, u, i, em and s. They are all essentially spans with some styling.
People, both in theme and code will be able to add aliases so one could add: danger -> span with color=red. This will inherit the styling of the span and let you override it.
You can also do: visited_link -> a color=grey which will inherit the styling of a and change only the color.
Tags can have attributes assigned to them. My suggestion is mostly based on what's already there so assume the allowed values are the same (documented in efl_canvas_text.c and will be documented in the wiki too).
The names are that are just the same remained this way. The arrow (->) indicates a rename. FIXME means something I extra want comments on.
font -> font_family font_fallbacks font_size font_source font_weight font_style font_width -> font_stretch lang color background FIXME: it was previously split to on/off and color. I guess it should be the same property. underline underline_height underline_color underline2_color underline_dash_color underline_dash_width underline_dash_gap strikethrough strikethrough_color style -> effect FIXME yeah? outline_color shadow_color glow_color glow2_color left_margin -> margin_left FIXME: remove/only allow on items? right_margin -> margin_right FIXME: remove/only allow on items? align valign -> vertical_align tabstops -> tab_width linesize -> line_height linerelsize -> line_height with % linegap -> line_gap FIXME: how does this one and line_height actually interact? linerelgap -> line_gap with % linefill -> Not sure what this even means
Ones to remove (because are implemented elsewhere: text_valign, wrap, repch and password.
Looking forward to hearing your thoughts.