This is a lay summary of the formal language specification!
Rosewood is a structured table language that creates universal, text-based, versatile table representations. Rosewood tables are an intermediate, human-readable, pre-publication form, although their content could easily be imported into a publication-ready table, and contain additional information relating to table styling. The separation between table content and table style elements makes it easier for users to focus on content, before worrying about table formatting. It simplifies cross-platform development, as tables from different sources can be generated in Rosewood, before being combined for publication or dissemination.
The elements of the language for each table are:
Each of these sections is separated by +++
(including start and end).
Each cell ends with a |
, each new row starts on a new line
Rule section commands for contents cells are either merge
or style
:
merge row row_range col col_range
style row row_range col col_range style_name
row
and col
can be switched.row
or col
is missing the command applies to all rows or columns.row_range
and col_range
take the form 1:7,9,11: as combinations of either single numbers, comma-separated lists of numbers or ranges, closed ranges, or open ranges (11: means 11 through last; :11 means 1:11).merge row 1:3 col 5,7
leads to an error).style_name
refers to a CSS style for the cells.+++
.//
is a comment and is ignored in parsing the table