Skip to content
This repository has been archived by the owner on May 27, 2024. It is now read-only.

Roadmap #1

Closed
34 of 43 tasks
yongrenjie opened this issue Jan 5, 2021 · 0 comments
Closed
34 of 43 tasks

Roadmap #1

yongrenjie opened this issue Jan 5, 2021 · 0 comments

Comments

@yongrenjie
Copy link
Owner

yongrenjie commented Jan 5, 2021

Roadmap

Major features already in cygnet

  • Directory navigation with cd
    • "Normal" behaviour with directories
    • cd - to return to previous directory
    • Error handling for directories which don't exist
  • A command parser for the programme itself
  • The quit command
  • The help command
  • Switch to (strict?) Data.Text
  • A representation of the article datatype
  • The read and write commands: interaction with YAML
    • Parsing cygnet.yaml (or abbotsbury.yaml) into a list of articles
    • Making sure that this is done every time the directory is changed
    • Saving upon exiting the directory / the programme. I think cygnet's backup system has generally been unnecessary.
  • The list command: pretty-printing articles
  • The open command: file system management
  • The sort command
  • The cite command
  • The add command
    • Fetching data from Crossref
    • Implementing asynchronous HTTP for multiple requests
  • The delete command
  • The edit command
    • Tempfile creation
    • Calling vim (or $EDITOR) from inside the program
  • The fetch command
  • The search command

Less important features

  • The import command. Quite rare, my usual workflow is to add the DOI, then fetch and open, rather than to download a PDF from the web. Still, this is helpful with (for example) emailed papers.
  • The update command. I don't remember the last time I manually did this.
  • Manual PDF management
    • addpdf
    • deletepdf

Other stuff

  • abbot cite subcommand (right now cygnet uses a cygnet-cite entry point which is clunky)
  • Other datatypes, particularly...
    • Books
    • Theses
  • Pipes, allowing search results to be piped into cite (for example). We should plan this ahead of time, and have commands like search or list return two things: (1) a list of references, (2) text that can be printed to stdout. If it is part of a pipe, then we can pass (1) to the next function, and if not, then we can just print the text.
  • Better megaparsec usage, including better command identification and better error reporting.
  • A new command. This would let us enter metadata manually, and is important for books which have not very good metadata in Crossref.
  • A command for "quick" tagging (technically can be done using edit, but we would usually like to tag something without going into vim).
  • A search_tag command (abbreviated to s_tag, st, or similar), which only searches in tags.
  • Let search work with acronyms. We can do this crudely by "abbreviating" the title (taking the first letter of each word) and adding it to the haystack.
  • Don't destroy user input from new if the parsing fails :-(
  • Modify book to use subtitles as well
@yongrenjie yongrenjie pinned this issue May 12, 2021
@yongrenjie yongrenjie closed this as not planned Won't fix, can't repro, duplicate, stale May 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant