Giter VIP home page Giter VIP logo

notetaker's Introduction

๐Ÿ“ Notetaker

reviewdog Static: Active Development

Note taker for notes, blog posts, todo lists from the command line.

The notetaker project aims to help people manage their notes as easily as writing Markdown in their favourite editor.

Main ideas behind notetaker:

  • Edit your own files with your favourite program. You can use vim, VS Code, Sublime Text, Caret, Notable as long as you save them in Markdown files with the .md extension.
  • Organise your notes in folders to your liking, you can have notes for projects, journals, essays in folders and files based on your own preference.
  • Do not depend on a central server to browse and edit your notes.
  • Do not depend on a proprietary desktop program to browse and edit your notes.
  • You do your own version control of notes, but if you use Git notetaker would leverage that to extract useful information.
  • Write action items in your notes using GitHub-Flavoured Markdown checklists and notetaker would find them all for you.
  • Publish your markdown files with notes and todos to GitHub and you would have easy access from your browser or mobile phone with ability to mark todo items as done.
  • Tags, blog posts and encryption are coming in the future.

Install

In the future, notetaker could be submitted to package managers for easy install. For now, clone the repo and point your PATH to the folder where you've cloned it or symlink the binaries where you'd like:

git clone [email protected]:hkdobrev/notetaker.git

Create a folder for your notes. By default it is ~/notes, but it could be configured via NOTES_PATH environment variable.

mkdir ~/notes

or

mkdir ~/Documents/my_notes
echo "export NOTES_PATH=~/Documents/my_notes" >> ~/.bash_profile

Usage

Run notes --help for command-line usage:

$ notes --help
Usage: notes [--help | -h | -?] <command> [<args>]

Subcommands:
    new                Create a new note with your EDITOR
    list               List all found notes
    todos              List todo items from all of your notes
    find               Find notes with matching title
    search             Search notes for text

Options:
    -h, -?, --help     Output usage for notes or a subcommand

Create a note

Just save a new Markdown file with the `.md` extension in your notes directory (~/notes by default):

cat > ~/notes/journal-log.md <<EOF
# My first journal log
Here are some action items:
- [ ] Install notetaker
- [ ] Check out notes todos
EOF

TODOs

Running notes todos would find and show you the todos not marked as done from all of your notes.

$ notes todos

journal-log.md:

  - [ ] Check out notes todos

notes todos --done would list only the checked todo items notes todos --all would give you both done and not done todos

Run notes todos --help for all usage details.

Contributing

Browse current issues first and open an issue for a question, suggestions or to discuss a bigger change. For any concrete suggestions, open a pull requesst.

Public list of potential features would be coming soon on GitHub as issues, milestones and projects.

License

The notetaker project is licensed under the Unlicense license which is equivalent to the public domain.

notetaker's People

Contributors

hkdobrev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

notetaker's Issues

Sync all todos with a file

Currently, exporting todos from all to a markdown file is as easy as:

notes todos > todos.md

It will group them based on the files they were found in.

However, there are few considerations:

  • It is useful to export all of your current todos in the same notes folder. This helps if you want to commit them in version control so you can have a single list of todos on mobile after pushing to GitHub.
  • When exporting to your notes folder, then future runs of notes todos would give you duplicate todos. You'd need to always put notes in folders and filter by them.
  • It'd be better if we have a notes todos --export flag which exports to a specific file like $NOTES_PATH/todos.md and then this file is excluded when running notes todos.
  • This would help with future syncing. E.g. notes todos --sync could sync todos from $NOTES_PATH/todos.md back to every individual file it came from. This would be really nice to run after checking off todos from the common list. E.g. checking off on GitHub or from your mobile and then syncing back on your computer.
  • Even better would be to run notes todos --sync in automatic action when changing $NOTES_PATH/todos.md. Could use run-if-changed locally in a git hook or even GitHub Action in your private notes repo so it works when checking checklist items from github.com.

Checklist:

  • notes todos --export
  • notes todos --sync
  • Git hook for exporting/syncing
  • GitHub action for exporting/syncing

Add use cases to readme/wiki

It would be good to mention some uses cases like:

  • how to use with Git VCS + GtiHub for easy access on the go
  • checking off todo items from the common todos and syncing them back
  • folders for personal, projects, work and easy filtering

They could be added in the readme, docs or in the GitHub wiki. I guess adding them to the repo itself could help showing them on the GitHub Pages website, so let's start with the readme first.

List notes

Listing notes in a tree-like form or in tables with dates and tags could be useful and give you a better feel for your notes.

Add integration tests

It would be great to have integration tests in the repo running in CI with example notes files and expected results.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.