- Goal: Should be able to display documents - Specific types to be able to display - [[PDF|doc/development/feature/file-format/pdf]] - HTML - EPUB - XPS - PostScript - [[DjVu|doc/development/feature/file-format/djvu]] - RTF - OpenDocument - OneNote - Comic book archive (.cbr) - Videos
- Goal: Should be able to annotate documents - Types of annotation targets - Document text (e.g., highlight text linearly or as a block) - Document images (e.g., highlight a region of an image) - Other annotations - Link to annotations from other documents or annotations - Each annotation should have a unique identifier - Linking can either be - a reference (e.g., "see figure 2 in [42]") or - a direct inclusion (e.g., inline display of the figure with a link to original document)
- Goal: Should be able to extract information from the document - Extraction of document structure - Create a table of contents automatically - Extraction of bibliographic metadata - Extract the authors and title of the current document - Extract the metadata from the References section - Allow for linking citation in the text (e.g., "in [42]" or "in Smith et al, 1999b") to the appropriate reference. - Extraction of text using optical character recognition (OCR) - Mathematical text should be extracted just as well as prose - Extraction of text in RTL writing systems should be supported (bidi support)
- Goal: Should be able to search and organise documents - Full-text search - Mark document as "To read", "Read", or "Do not read" - Tagging and folders - Projects and subprojects - Faceted search over the bibliographic metadata - Detect duplicates (sometimes from different sources) - Note that sometimes what appears to the same document by the title are two versions of the same document (e.g., preprint versus journal article)
- Goal: should be able to share data - Data to share - Documents - Annotations - Share across all of a users devices - Who to share with - People on the same LAN - Inside of groups (e.g., with everyone in a journal club)
- Goal: Should be able to read text out loud - Should be able to read mathematical text
- Goal: Notetaking - Pen-based notetaking - Handwriting recognition - Draw notes on top of existing document - Add space between lines or edges to draw more
- Goal: Security and privacy - Easily use Tor for all network access - Public and private data can live side-by-side - Fine-grained control (e.g., each annotation can be set to be public or private)
- Goal: Retrieve documents from online - Specs - Open Publication Distribution System - SWORD - OpenSearch - OAI-PMH - Download papers from sites that host papers (e.g., arXiv, PLOS) - Search papers from Google Scholar, PubMed
- Goal: Flexible document layout (reflowable) - Turn a two-column document into single column document - Trim extra margins - Look into readibility research
- Goal: Should be able to present from viewer - Many tools output PDFs that can be used to view slides. - Presentations can show different things on each screen: - Slides on the projector - Speaker notes on the monitor
- Goal: Retrieve data that is related to the document being read - For example, look up articles in Wikipedia/Scholarpedia or look up words in the dictionary. - Data such as properties of chemicals, 3D models of proteins, or gene pathways.
- Goal: Accessibility - Should be able to use by people with visual impairment (perhaps look at DAISY format, liblouis)
- Goal: Keep data on how the user is using the software - This can be used to give suggestions if it comes across a similar usage. For example, if I implemented splitting a document window into panes to follow, say code on one page and description of the code on another, when I come back to that part, it can show a little tooltip to bring back that same view so the user does not have to configure it again. - Be able to store the current view state and restore on another device.
- Goal: Have multiple user profiles that can be used simultaneously. - This allows for using the application for different purposes and keeping the data segregated.
- The document viewer should have typical document viewer features.
- Navigation
- DONE Move one page at a time.
- DONE Move to start and end of document.
- DONE Move to a specific page number.
- Zooming
- DONE Zoom to preset zoom levels.
- TODO Zoom to a specific zoom multiplier
- Be able to see an overview of document
- DONE Display table of contents
- TODO Display pages as thumbnail images
- Be able to store the current view
- TODO Store the current view page
- TODO Define a spec for view settings
- TODO Store the current view settings
- Be able to follow URLs
- TODO Click on URL should open:
- Another location in the same document.
- Another document.
- A web page.
- TODO A history stack to go backwards and forwards.
- TODO Click on URL should open:
- Navigation
- The document viewer should allow for viewing multiple documents at once.
- Side-by-side view
- TODO Place one document next to another using a dockable split-screen.
- Portals: Arbitarily shaped and placeable views into other documents
- Side-by-side view
- Files
- Watch directory for new files.
- Resources
- Bibliography database
- Bookmarks database