GithubHelp home page GithubHelp logo

bubblbu / zotnote Goto Github PK

View Code? Open in Web Editor NEW
19.0 5.0 0.0 3.46 MB

Automatize and manage your reading notes with Zotero & Better Bibtex Plugin (BBT)

License: MIT License

Python 100.00%
zotero literature-review reading-notes

zotnote's Introduction

ZotNote

Automatize and manage your reading notes with Zotero & Better Bibtex Plugin (BBT). Note: ZotNote is still in early development and not production ready

PyPI version

ZotNote demo


Current features

  • Simple installation via pipx/pip
  • Full command-line interface to create, edit, and remove notes
  • Graphical interface to select a Zotero item
  • Support for various reading note templates

Planned features

  • Annotation of reading notes and individual quotes using tags/keywords
    • Retrieval of relevant quotes based on these tags and keywords
    • Analytics based on these tags and keywords
  • Enrich reading notes with more metadata from Zotero
  • Simple reports about progress of literature review
  • (dreaming) Automatically export collection of notes as an annotated bibliography.

Long-term vision

A literature review suite that connects to Zotero & BBT. Management of reading notes, reading/writing analytics, and basic qualitative text analysis (export reports as HTML via Jupyter notebooks). Export of reading notes in different formats (e.g., annotated bibliography).

You can find a roadmap for ZotNote here.

Installation

Requirements

Recommended: Install via pipx

The recommended way to install ZotNote is using pipx. Pipx cleanly install the package in an isolated environment (clean uninstalls!) and automagically exposes the CLI-endpoints globally on your system.

pipx install zotnote

Option 2: Install via pip

However, you can also simply use pip. Please be aware of the Python version and environments you are using.

pip install zotnote

Option 3: Download from GitHub

Download the latest release from Github and unzip. Put the folder containing the scripts into your PATH.

Alternatively, run

[sudo] python3 setup.py install

or

python3 setup.py install --user

Option 4: Git clone (for developers)

git clone [email protected]:Bubblbu/zotnote.git

The project is being developed with Poetry as a dependency manager.

More instructions will follow soon!

Getting started

Usage: zotnote [OPTIONS] COMMAND [ARGS]...

  CLI for ZotNote.

Options:
  --help  Show this message and exit.

Commands:
  add        Create a new note.
  config     Configure Zotnote from the command line.
  edit       Open a note in your editor of choice.
  remove     Remove a note
  templates  List all available templates for notes.

Configuration

After installation you should be able to simply run zotnote and be prompted to a quick command-line configuration.

ZotNote currently asks you for:

  • A name which is used in all reading notes.
  • An email address
  • A folder to store your reading notes

Usage

Some basic use cases:

Create a note with the graphical interface (Zotero picker)

zotnote add

Create for specific citekey

zotnote add [citekey]

Edit a note (with graphical picker)

zotnote edit

or

zotnote edit [citekey]

You can explore each command in detail by adding --help.

Authors

Written by Asura Enkhbayar while he was quarantined.

zotnote's People

Contributors

bubblbu avatar

Stargazers

 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

zotnote's Issues

Import notes with extracted annotations from Zotero

With the recent update that annotations are extracted properly, this feature is becoming a lot more interesting. A possible Zotnote workflow:

  1. Import article into Zotero
  2. Read and annotate using compatible PDF reader
  3. Extract annotations into a Zotero internal note
  4. Use Zotnote to import that article and run some basic processing of the note to get to a nice literature note
  5. Use Zotnote to create reports, annotated bibliographies etc.

BBT (starting v5.2.22) is now also providing an option to directly import notes from Zotero. This could be interesting for anyone wanting to import notes and access advanced features with those notes.

Use ZotNote to open existing notes

Maybe existing notes should never be overwritten.

No existing note => create note => open note to edit.
Existing note => open note to edit.

Develop model for citekeys, items and notes

This is a major issue that affects various aspects of the software.

The underlying model of Zotero items, citekeys, and notes will change how certain functions (add, edit notes) should behave in case of name conflicts or changes.

  • We have to assume that citekeys can be duplicates as this will depend on the user settings of BBT
  • Should we assume that each item in Zotero can have multiple notes
  • Citekeys can change which would be an argument for note filenames based on Zotero item IDs, however, at the same time legible filenames are nice. Also, even though the citekey is a bad unique identifier it is the citekey which will serve as an anchor for users when referring to items.

Deal with multiple citekeys

Citekeys managed by BBT are per default only unique within a single collection. Accessing your library with a citekey might therefore lead to mutliple results.

Suggested solution:

  • Display individual retrieved items and let user confirm if the version is correct.

Add option to choose template

ZotNote is already managing multiple templates. Currently the template that is used for the notes is hardcoded.

Make this an option with default value.

Feature roadmap towards 1.0

This is the feature roadmap for ZotNote.

At this stage of the project, this roadmap will change quite a bit. However, each feature release will have a project page associated.

All previous changes are logged in the changelog.

0.4 | Testing

  • Testing
    • Implement tests with pytest
    • Use Coveralls
    • Setup Travis CI
  • Documentation
    • Choose framework
    • Write super basic documentation
  • Manage multiple results for citekey search
    • Find out if we can retrieve formatted citations through BBT
  • Fundamentally rethink and rewrite the model of Zotero items <-> Notes including the role of citekeys and Zotero IDs
    • Add Item class for objects retrieved from BBT
    • Rework Note class

0.5 | Collections & Tags

  • Development of collections
    • Manage multiple notes as one collection. e.g., zotnote create -c PhD creates a new PhD collection. zotnote add -c PhD [citekey] will create a new reading note for [citekey] in that collection
  • Development of the tags
    • Add possibility to tag reading notes. Import might be provided from Zotero, but also provided through a command line option (e.g., zotnote add -t important [citekey]

0.6 | Exports

  • Development of reading note export
    • Export individual papers to different formats using pandoc:
      • .pdf (priority)
      • .docx

0.7 | Reports

  • Development of reports
    • Create reports on collections or sets of reading notes (selected by tags)
    • Use Jupyter notebooks to export report as PDF or HTML
    • Basic analytics of progress, wordcounts, etc.

0.8 | Advanced exports and collections

  • Process collections/set of notes into note summaries such as annotated bibliographies

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.