asc2svg

asc2svg was intended to be an ASCII diagrams to SVG, like `ditaa` and Svgbob
Log | Files | Refs

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