Code Monkey home page Code Monkey logo

liszt's Introduction

Liszt

Liszt makes it easy to jot down thoughts in the command line, and keep ideas clear in separate notes.

View Liszt documentation here

Documentation Status Build Status Language grade: C/C++ liszt license liszt release Open Source Love

Table of Contents

Installation

Please note that at the moment, Liszt is only tested on macOS, but it will build on linux.

Please also note that v1.1.8 does change some existing functionality that will cause incompatibility with the existing Liszt file system on your computer. If you already have Liszt installed, before updating to v1.1.8, please go to your ~/.liszt directory and rename the directory called 'notes' to 'main'.

Homebrew

In your terminal

$ brew tap liszt-music/liszt
$ brew install lst

These commands will install the tap of Liszt on your system and then install the executable 'lst' in /usr/local/bin.

Git Clone

In your terminal

$ git clone https://github.com/scamacho23/liszt.git
$ cd liszt 
$ cmake .
$ make
$ make install

Liszt relies on cmake for compilation and linking so we recommend having cmake installed on your system. Alternatively, the following should do the trick (we use clang but any c compiler should work):

$ git clone https://github.com/scamacho23/liszt.git
$ cd liszt 
$ clang src/main.c -o lst -g
$ ln -s lst /usr/local/bin/lst

Pkg Installer

Click on this to be redirected to the local liszt-1.1.8.pkg file. Click 'download' on the right side of the page to download the package installer.

Any issues with installation should be emailed to [email protected]

Usage

Commands

Please note that all functions listed below require lst before the command.

Command Function
-a <note title> Add a new note
-r <memory index> Remove memory at specified index
<memory content> Add a new memory in current note
-ch Change to a different note
-rn Rename note
-rm Remove note
-ar Archive note
-unar Unarchive note
-in Import note
-ex Export note
-dp Duplicate note
-mg Merge notes
-c Copy memory
-h <function handle> Get help for a specific function

Example

Add a note and a few memories

$ lst -a school
Added new note 'school'
$ lst Complete assignment one
Remembered 'Complete assignment one'
$ lst Study for quiz
Remembered 'Study for quiz'

Add another note and memories

$ lst -a work
Added new note 'work'
$ lst Check emails
Remembered 'Check emails'
$ lst Complete code review
Remembered 'Complete code review'
$ lst Submit PTO request
Remembered 'Submit PTO request'

Review memories on the current note

$ lst -l
Found 3 memories on 'work'
1. Check emails
2. Complete code review
3. Submit PTO request

Remove a memory by line number, i.e. complete a task

$ lst -r 2
Removed memory 'Complete code review'
$ lst -l
Found 2 memories on 'work'
1. Check emails
2. Submit PTO request
$ lst -r 1
Removed memory 'Check emails'
$ lst -l
Found 1 memories on 'work'
1. Submit PTO request

List all notes and change to a specified note

$ lst -ln
Found 2 notes
1. work
2. school
$ lst -ch school
Changed current note to 'school'

List memories on this note and remove one after completion

$ lst -l
Found 2 memories on 'school'
1. Complete assignment one
2. Study for quiz
$ lst -r 1
Removed memory 'Complete assignment one'
$ lst -l
Found 1 memories on 'school'
1. Study for quiz

Contributing to the Project

For more information, see the CONTRIBUTING.md file. This project is fully open-source. We appreciate all the help we can get and are very open to beginners and anyone interested in helping.

Community Information

There is a Slack channel for contributors. If you would like to join the channel, make a pull request and include in the comment that you would like to be added (and the email to be used for the invite).

liszt's People

Contributors

adelfranco avatar amildahl avatar ashishjayamohan avatar bwoltz avatar ebatelaan avatar flinkflonk avatar guyeternal avatar jcustin avatar jmprathab avatar juliannogueira avatar matthewc avatar pointbazaar avatar scamacho23 avatar supremestdoggo 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  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

liszt's Issues

Import_note usage unclear

What kinds of files can be imported? Just .txt files? Or, what should be allowed as importable files?

Update the VERSIONS.md file

Add documentation for the VERSIONS.md file, just detailing what work is being done and what has been done, from version to version

Remember add bug

When I tried to add a memory, I put single quotes around it (as suggested by the picture) but then the text wouldn't save.

Seg Fault on note create or list

🐛 Describe the bug

I attempted to install and use lst, but it seg faults immediately on the -l or -a options. I've reproduced this on a mac running Catalina and one running Mojave, and when installed via brew and when installed via downloaded package.

⚠️ Current behavior

$ lst
Liszt is an open-source note-taking software designed for personal use.

If you need help in general, type 'lst -help' or 'lst -h'
If you need help with a specific command, type 'lst -h <name_of_command>', such as for help with adding memories ('lst -h -') or removing a note ('lst -h -rm')
To view your version of Liszt, type 'lst -version' or 'lst -v'

Liszt uses the GNU General Public License v3, so you can edit, distribute, and otherwise meddle with any of the source code.
The only thing you can't do is take this software and make it closed-source and try to sell it. Liszt was designed to be free for everyone, forever.

Checkout Transcendental Etudes by Franz Liszt!
$ lst -l
Segmentation fault: 11
$ lst -a
lst error: command '-a' not recognized. Please try again.
(hint: did you include the necessary arguments for this command? Run 'lst -h' to find out)
$ lst -a foo
Segmentation fault: 11

$ lldb lst -- -a foo
(lldb) target create "lst"
Current executable set to 'lst' (x86_64).
(lldb) settings set -- target.run-args "-a" "foo"
(lldb) r
Process 76140 launched: '/usr/local/bin/lst' (x86_64)
Process 76140 stopped

  • thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00007fff6e1bee52 libsystem_platform.dylib_platform_strlen + 18 libsystem_platform.dylib_platform_strlen:
    -> 0x7fff6e1bee52 <+18>: pcmpeqb (%rdi), %xmm0
    0x7fff6e1bee56 <+22>: pmovmskb %xmm0, %esi
    0x7fff6e1bee5a <+26>: andq $0xf, %rcx
    0x7fff6e1bee5e <+30>: orq $-0x1, %rax
    Target 0: (lst) stopped.

✅ Expected behavior

I expected when I run lst -l, it will show an empty list of notes. And then when I run lst -a foo, it will add a note called foo.

💣 Steps to reproduce

$ brew tap liszt-music/liszt
$ brew install lst
$ lst -a

or alternatively:
select pkg file in github, download pkg, open pkg
$ /Library/Liszt/1.1.8/lst -a foo

📷 Screenshots

📱 Tech info

Darwin kathleen 19.6.0 Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020; root:xnu-6153.141.1~1/RELEASE_X86_64 x86_64

and

$ uname -a
Darwin mudita 18.7.0 Darwin Kernel Version 18.7.0: Thu Jun 18 20:50:10 PDT 2020; root:xnu-4903.278.43~1/RELEASE_X86_64 x86_64

Add file not working properly

When you add a file, it adds it in your current working directory, as opposed to the .quicknote directory where it should be added. The path.isfile() function maybe is working, but it's not entirely clear.

Shorten length of commands

The commands for Quick Note are very long and can be hard to type repeatedly. Think about shortening them

Develop testing harness

Right now, the only way to test Quick Note is by using it. It would be highly beneficial to develop some sort of testing harness (probably written in shell) in order to test the functionality of the software

Add version history

Add the ability to write 'remember --version' and the current version of Quick Note will be returned

Integration with readthedocs.org

⚠️ Is your feature request related to a problem? Please describe

  • Integrate with readthedocs.org for hosting the documentation.

💡 Describe the solution you'd like

  • This can be implemented with the help of sphinx

🤚 Do you want to develop this feature yourself?

  • Yes
  • No

Expand README.md

Add more information to the README.md file. It's pretty lacking as of now

Command-line arguments faulty

The program currently assumes that the user has a bash alias remember='python3 /path/to/program/location'

This is not portable. Make it so.

Export note minimal value

Export note only allows users to export notes as .txt files. Maybe this should be the case, but it requires some thought

Refactor to PEP-8 style

⚠️ Is your feature request related to a problem? Please describe

  • It is better to have a standard coding convention for the entire project.

💡 Describe the solution you'd like

  • PEP-8 is the official Python library coding style. It makes sense to stick to this as most IDEs and tools can enforce this standard.

🤚 Do you want to develop this feature yourself?

  • Yes
  • No

Documentation Lacking

Overall documentation is pretty lacking. Also, updating the readme would be a good idea (just generally include more information about the project, etc.

Lots of memory leaks

🐛 Describe the bug

Liszt has some memleak issues:

  • whenever scanf is used, valgrind reports that Liszt leaks some memory (this one may be a stdio issue)
  • whenever wordfree is used, valgrind reports two memory leaks
  • the commands -clar and -cln have a number of memleak errors, notably invalid read sizes and invalid frees
  • the commands -ln and -lar have a number of memory leaks

💣 Steps to reproduce

Use the commands with valgrind to see what happens.

Default note functionality

Hide default note.

When user changes note away from default note, prompt user to "add a name to your note before leaving."

Copy all memories from default into a new note with their new name, and then clear memories from default.
OR
Rename default note with that name, make it unhidden, and create a new hidden default note.

Accidental memory additions annoying to remove

If you add a bad memory (i.e. enter in the wrong info), it's slow to remove what you entered. Maybe remove_memory with no row_number should just remove the last memory saved to the current note?

Improve the install.py file

Add anything else that needs to be set up when the install.py file is run. Also, the user will have to run

python3 /path/to/install.py $USER

in order for this to run

EDIT: The install.py will need to add a default memory file, which can be called default.
The command for that could be as simple as

open('/Users/$USER/.quicknote/.default', 'w+')

EDIT #.2: There should also be some kind of message associated with the installation

One word memories not saving

Whenever I add one word memories such as:

"remembre hello",

it does not log hello as a memory.

PLEASE HELP THIS IS OF THE UTMOST IMPORTANTS

pls help

Only works for OS X

Nothing too complex. Just make this program portable to other operating systems (Linux shouldn't be hard).

Make more projects

Make more projects on the 'projects' tab. The 'Remember Software' one doesn't need to encompass everything.

Add note issue

I tried to add a note and then change that note, but it gave me this error:

Traceback (most recent call last):
  File "/usr/local/Homebrew/Library/Taps/scamacho23/homebrew-quicknote/main.py", line 128, in <module>
    main()	
  File "/usr/local/Homebrew/Library/Taps/scamacho23/homebrew-quicknote/main.py", line 117, in main
    ff.change_note(args[1:], quicknote_cache) 
  File "/usr/local/Homebrew/Library/Taps/scamacho23/homebrew-quicknote/filefunc.py", line 95, in change_note
    cache_info[0] = name
IndexError: list assignment index out of range

Clean up .gitignore ?

I'm really impressed by this Project, how well it follows best practises, has CI and template PRs/ template Issues setup.

However i noticed that your .gitignore is full of stuff which is totally unrelated to this project and only
serves to confuse people and/or slow git down.

Example:

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

Django is a Python web framework and this is a C Project.

If you want, i can try to clean it up for Hacktoberfest 🥳 . Just assign me the Issue.

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.