Educational Open Source Notes Project to practice with JavaScript, TypeScript, Node, oclif, Git, Web Components, PM
MIT License
Tools Overview - prompt
& Inquirer.js,
Commander.js
, Vorpal
, gluegun
Tool | Type | Goal | Features |
---|---|---|---|
prompt | utility | Command-line prompt | prompt |
inquirer.js | utility | A collection of common interactive command line user interfaces. | error feedback, asking questions, parsing input, validating answers, hierarchical prompts |
commander.js | toolkit | The complete solution for node.js command-line interfaces, inspired by Ruby's commander. | $1 |
gluegun | toolkit | Gluegun is a delightful toolkit for building Node-based command-line interfaces (CLIs) in TypeScript or modern JavaScript | parameters, patching, filesystem, system, http, prompt, print, semver, strings |
vorpal | framework | Vorpal is Node's framework for building interactive CLI applications. Based on commander.js and inquirer.js | required/optional args, prompts, generator, piped commands, persistent command history, auto-gen docs/help, autocomplete |
oclif | framework | Framework for building CLIs | Flag/Argument parsing, prompts, fast, generator, testing helpers, auto-gen docs/help, plugins, hooks, TS, auto-updating installers, autocomplete |
Educational Open Source Project to practice with JavaScript, TypeScript, Node, oclif, Git, Web Components, and Project Management
Write series of applications to create, edit, delete, and manage notes. Notes are structured in a user defined folders structure as a Git repo. Each note is saved with the git commit command. The tool is and easily extendable with plugins.
with mermaid syntax
graph TD
CLI --> CLI:G(GitHub)
CLI --> CLI:A(Architecture)
CLI:A --> CLI:Lang(TypeScript)
CLI:A --> CLI:Git(Git)
CLI:A --> CLI:MD(Markdown)
CLI:A --> CLI:Overview(Frameworks Overview)
CLI:Overview -->
CLI:Overview:Article1>Basic CLI in Node.js]
CLI:Overview:Article1 -->
CLI:Overview:Article2>CLI Tools Overview]
CLI:Overview:Article2 -->
CLI:Overview:Article3>CLI in TypeScrpipt]
note
- single commit with text data
notebook
- a collection of notes inside a folder
note notebook ideas "Store all ideas"
# add folder *ideas* with a file *README.md* title *Store all ideas*
# ideas
# ├── README.md
note ideas list "A list of ideas" idea
# add a list *idea* inside *ideas/README.md*
note ideas/idea "Write a CLI for notes"
# add an *idea* list item inside *ideas/README.md*
Where a content of a ideas/README.md file will be
# About
Store all ideas
# Table Of Contents
- [A list of ideas](#idea)
# <a href="#idea">Idea</a>
- Write a CLI for notes
Originally, a user can commit with an empty git repository modification
git commit --allow-empty -m "My Note"
Linux Command Line and Shell Scripting Bible, 3rd Edition by Richard Blum, Christine Bresnahan
The CLI Book: Writing Successful Command Line Interfaces with Node.js by Robert Kowalski