# Spiral Plan ## Main Functions Are ran by the user. - `main new (--no-frontmatter (-n)) (title: )` - `main open (--by-title (-t)) (--by-contents (-c)) (title: )` - `main tags (tag: )` - `main remove (--by-title (-t)) (--by-contents (-c)) (title: )` - `main list` - `main restore (--by-title (-t)) (--by-contents (-c)) (title: )` - `main journal (date: )` ## Action Functions Accept parameters and perform an action. - `create_note (--no-frontmatter) --title ` - `create_journal_entry --title ` - `open_file_in_editor --dir ` ## Interface Functions Accept a prompt and other data and return a value from the user. - `get_confirmation --prompt -> bool` - `get_string_input --prompt -> string` - `get_choice_from_list --list -> string` - `get_choice_from_dir --dir -> path` - `get_choice_from_dir_file_contents --dir -> path: line number` - `get_choice_from_note_titles --dir -> path` ## String Manipulation Functions Accept, modify, and return strings. - `title_to_path title: -> path` - `strip_line_number string: -> string` - `generate_note_text (--no-frontmatter) --title -> string` ## File Manipulation Functions Read, write, or otherwise manipulate files. - `parse_note_frontmatter path: -> record` - `list_notes -> table`