Roadmap for version 0.4
## Current Development Branch

https://github.com/idrawjs/idraw/tree/dev-0.4

## Big Refactor
* [x] Refactor: Use middleware mechanism to realize all functions
* [x] Refactor: add scale method of @idraw/renderer 
* [x] Refactor: refactor the scale method and scroll action of  @idraw/board
* [x] Refactor controll event through the proxy event based on HTML root node  https://github.com/idrawjs/idraw/issues/59
* ~~Refactor @idraw/core and make it easier to extend new type elements.~~

## Feature 
* [x] Middleware features that support Plugin extensions.
* [x] The scaling state should be adjusted when rotating elements 
* [x] Internal optional middleware
    * [x] Rules
    * [x] Auxiliary line
* [x] Custom drawing background content, such as a transparent background similar to PS.
* [ ] Support  environment rendering results in Node.js   https://github.com/idrawjs/idraw/issues/169
* [ ] https://github.com/idrawjs/idraw/issues/130
* [ ] Add `on('dataResourceLoaded')` in order to listen, all resources are loaded 
* [ ] Add canvas size limit
*  ~~Scaled elements support pixel art rendering.~~
*  ~~Add Shadow to context for distinguishing between content and background  ~~
 
 
## Test 
* [ ] E2E Test for `@idraw/core` all methods 
* [ ] E2E Test for `idraw` all methods


## Documents 
* [ ] Add API usage of function `getElement(uuid: string)` and `getElementByIndex(i: number)`
* [ ] Add Events there are `screenClickElement`, `mouseOverElement` and `mouseLeaveElement`
* [ ] To be improved English document