summaryrefslogtreecommitdiffstats
path: root/TODO.md
blob: ee132054734648568cbcbb6c54c842fc257964bb (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
## TODO
- [x] detect rectangles
- [x] detect whether used as text or used as graphs (if any of the 8 has no get character then it is used as text)
- [ ] complete the specs
- [ ] ~~Make the string literal escape work multiline~~ Impractical
- [x] Make a swap out interface.
      - useful for detecting broken lines such as - - - and replace it with ~~~~~. This way
        it will be easier to process by the fragment emitter
     - [ ] Fix broken line implementation
- [ ] Group traced elements together, then reduce as needed
- [x] Add `#` as square start marker for lines
- [x] Support for geometric shapes https://en.wikipedia.org/wiki/Geometric_Shapes
- [x] Add enhance circle, detect circles then enhance it.
- [ ] Add test cases
- [X] Re-implement the escape string with double quotes.
- [ ] Use perfect hashmap [phf](https://crates.io/crates/phf) to efficiently build the maps(unicode_map, circle_map, ascii_map) at compile time.
- [ ] Fix the double arrow issue
        When there is 2 arrows in the middle of a line `---->>-------` or `----<<----`
- [X] Clean the project enforce deny warnings.
- [~] Fix a bug where an escaped text has whitespaces, the whitespaces are gone.
    - ~~This is a rendering bug in the browser where spaces are compressed into narrow widths~~
- [X] Revise calculation of Circle and Arc center by basing on the number of chars/width
- [ ] Add more circle art, dynamically created
    - use `ito-canvas`
- [~] Enhance quarter arc to be able to merge 2 or 3 quarters to form bigger arcs
    - [X] Quarter circle arcs
    - [X] Half circle arcs
    - [ ] 3/4 circle arcs
- [ ] Support for pills, elongated ovals
- [X] Update to library to latest version
    - nalgebra
    - ncollide2d -> parry2d
- [X] Make the top-level directory a workspace and put svgbob and cli into packages/
- [X] Make a trait for the merging algorithms
    - [X] merge_recursive
    - [X] first_pass_merge
    - [X] second_pass_merge
- [ ] Try again to endorse the span of the grouped fragments that are in the same span
    but not reduces into a single shape
- [ ] Move the modules into flat structure as possible rather than deep
- [ ] Make use of dot canvas for circles that are larger than radius 10.
- [ ] Use `jss` and json syntax for the legen to allow more flexibility with layered class names.