Skip to content

Features

Logan edited this page Dec 6, 2018 · 9 revisions

Current

These features currently have been implemented but may need improvements due to bugs, oversights, etc. as they have not been accurately tested yet:

  • Character, foreground colour, background colour, bold, italic and underline cell properties.
  • Pencil, text, eraser, line, rectangle, flood fill, picker and select tools.
  • Apply character, foreground colour and background colour cell properties independently of each other.
  • Export as plain text, JSON, shell script and image.
  • Import as plain text and JSON.
  • Zoom in, out and reset the raster level.
  • Pan around raster using scrollbars, middle click, arrows keys and automatically follow the cursor when moved.
  • Raw text and cell copy, cut and paste.
  • Visual grid that can be toggled on and off.
  • Switch between themes.
  • Undo and redo.
  • Keyboard shortcuts.
  • Resize and auto-crop raster.

Future

These features should be straightforward to implement:

  • 256 colours.
  • Strike-through cell property.
  • Export with option to remove unneeded empty cells (i.e. an extension of auto-cropping).
  • Apply other cell properties independently of each other.
  • Palette of characters to select from (useful for non-ASCII characters).

Research

These features are expected to be harder to implement and would therefore require research into doing so:

  • Support web browsers other than the latest version of Google Chrome, such as Firefox and Edge.
  • Drawing mode that translates mouse movements into individual cell characters to achieve "smarter" drawing. Could use angles between points and/or OCR.
  • Import shell script, some features may be able to be read easily such as colours but it could be hard to interpret other syntax that is not as relevant.
  • Allow changing the font to other monospace fonts on the client, JavaScript does not seem to have permissions to know the fonts supported in the browser though.
  • Handle larger raster sizes as the HTML canvas is quite limited in size and there is also very noticeable performance degradation when the amount of cells increases. A possible way to address this is for the canvas to behave as a window that only renders what can be seen by the client. This means that extra work is required to handle non-native panning of the raster shown in the canvas.
Clone this wiki locally