- Tree Structure Integrity: All nodes must have a parent, except for the root node, ensuring no orphan nodes exist within the tree.
- Node Manipulation: Nodes can be moved up and down within their current level or across different levels, respecting the hierarchical constraints of the tree.
- Node Indentation: Nodes can be indented (moved deeper into the tree) or outdented (moved towards the root), maintaining the parent-child relationship integrity.
- Node Deletion: Deleting a parent node will also delete its children, unless the children are reassigned to another parent before deletion.
- Adding New Nodes: New nodes can be added as children to the currently selected node.
- Renaming Nodes: Nodes can be renamed at any time.
- Node Icons: Nodes can be assigned an icon to represent either a folder or a file for visual distinction only. This does not affect the tree's structural rules.
- Moving Nodes: Use the designated button or hotkey to move the selected node up or down within its current level or to another level. When moving a node up or down, it will become a child of the node it is moved into. A node cannot be moved in a way that it becomes its own parent or child.
- Indenting and Outdenting Nodes: Indenting a node makes it a child of the node immediately above it. Outdenting a node moves it one level up in the hierarchy, making it a sibling of its former parent, provided it is not the root.
- Deleting Nodes: When a node is deleted, all its child nodes are also deleted unless they are explicitly moved to another parent prior to deletion.
- Adding and Renaming Nodes: To add a new node, select the intended parent node and use the add function. The new node will automatically become a child of the selected node. Renaming is straightforward: select the node and apply the rename function.
- Input Text Box: This box allows users to input the structure of the tree, showing all nodes. Users can manipulate the tree structure directly within this box according to the specified rules.
- Output Text Box: This box displays the output of the ASCII conversion, providing a visual representation of the tree structure as defined in the input text box.
- No Orphan Nodes: Every node must either be a root or have a parent.
- Maintaining Hierarchical Order: Nodes must maintain a logical hierarchical order, where child nodes cannot precede parent nodes in the structure.
- Consistent Parent-Child Relationship: Moving, adding, or deleting nodes must not violate the parent-child relationship within the tree.
Publish to Gitpages via "gh-pages" package using npm run deploy