specification.md (1841B)
1 Specification for 'v1.0' 2 ======================== 3 4 Valid symbols 5 ------------- 6 - Joints and corners: `+` 7 - Lines: `-`, `|` 8 - Arrows `v`, `^`, `<`, `>` 9 - All symbols are allowed within a rectangle 10 11 Use 12 --- 13 - Rectangles are defined by four corners connected by lines or joints 14 - Rectangles can have as many joints as fits, but these should be connected to 15 lines 16 - Text is only supported inside rectangles 17 - Only text is supported inside rectangles 18 (everything within the rectangle boundaries is read as the rectangle label). 19 - Lines *must* start / end with a joint or an arrow 20 - Lines can have as many joints as it can fit 21 - Arrows *must* point away from the line that they end 22 23 v2.0 (proposal) 24 =============== 25 26 Valid symbols 27 ------------- 28 - Dotted lines: `:` `.` 29 These don't really mix well with the rest of the symbols, so they might not 30 be useful. 31 32 New features 33 ------------ 34 - Text should be allowed wherever in the figure. 35 It should simply be read from the first to the last letter. 36 - Rectangles can contain everything that is allowed in the figure itself. 37 (See issue about recursive Figures / rectangles or something ) \* 38 39 v3.0 (proposal) 40 --------------- 41 - Diagonal lines `/`, `\`, for instance for diamond shapes... 42 43 44 Functionality 45 ============= 46 47 - Symbols that can be found unprocessed: ` `, `+`, `<`, `^` 48 + Nothing to do: ` ` 49 + Rectangle detection: `+` 50 + Line detection: `+`, `<`, `^` 51 - Symbols that can [only] \* be found during line processing: 52 + [`>`, `v`] 53 + `+`, `|`, `-` 54 55 \* These are up for discussion. It might be desirable to be able to draw 56 *through* / *over* boxes, in which case lines must be allowed to cross the 57 box borders. This will in turn make it hard to implement "recursive 58 rectangles", as the rectangle contents are not necessarily isolated. 59 60