Giter Site home page Giter Site logo

bookish's People

Contributors

aarepuu avatar amyjko avatar brianzelip avatar bxie avatar laras126 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bookish's Issues

Quotes

Need a syntax for quotes. Perhaps mirror the code block:

"
This is my quote
" credit

This is needed in the first chapter of the Design Methods book.

Show progress on chapter

This is actually two features:

  • Place a progress bar somewhere to motivate finishing. This can just be a simple visualization anchored to the footer. It can be based on the percent stored in local storage.
  • Place a percent read in the table of contents.

Improved error handling for book specifications

Check all possible errors and include appropriate warnings. We currently fail to check for any and provide no errors to the user.

  • JSON syntax errors
  • Peruse syntax errors in various fields
  • Missing content in the book specification.
  • Missing images, captions, alt, credit for chapters and covers.

Perhaps embed AJV and verify against a schema with custom error messages.

Executable code

Python3 in particular would be most helpful, since that's mostly what I'm using in the book.

Use superscript numbers for citations

The dot grabs a little too much attention. The tricky thing about this is actually counting. We have to get through the document to find all the citations, figure out what order they're going to appear so we can number them, then use those numbers in rendering. We probably need a first pass.

Reading: Allow commenting

On the sentence level. Click or tap on a sentence and highlight to comment. These will be stored in localStorage, with a warning that they'll only be saved on the device. The table of contents would show comments for easy navigation. Need to ensure that all text is wrapped in a span so that it's highlightable.

Content: Tables

I despise the complexity of the Markdown syntax. Let's do something simpler.

Search the whole book

It should be possible to search the book on the front page. There can be a simple text box, minimalist styling, which will replace the chapters with linked search results to the occurrences. To do this, we'll need an index of the chapter content that's computed after all the chapters are done loading.

Reading: Bookmark sentences

In addition to comments, allow bookmarks, and create a page in table of contents that shows bookmarks for easy navigation.

Reading: Linkable paragraphs and headers

This we, we can easily share or quote specific sections. This shouldn't be too difficulty with the routing functionality in place. I just need to actually scroll to the appropriate paragraph or section.

Reduce bundle size

It's currently about 1 MB, which seems outrageously large for such a tiny React app. There are tons of tips out there for how to reduce its size.

Track read status locally

This will allow one to keep track of where one is in the book. Probably do this per chapter, with a percentage, and upon app load, scroll to that percent instead of the top, or the top if undefined. Then, on scroll, update local storage.

Navigation bar on chapter pages

Table of contents, previous chapter, headers in chapter, next chapter, index. Not sure what this should look like or where it should be on mobile, if at all.

Add citation format

Perhaps a way of referring to something in a central citation list embedded in a specification.

Search chapter content

It should be possible to easily find keywords on the page. Highlight them. Just start typing to search. We'll need a per chapter index to compute this, but we can reuse the book-wide search to implement and highlight this.

Scroll on route link

When clicking on a Link that follows a route, the page needs to scroll to an appropriate place.

Content: Footnotes

Cite them in the text, put them before references. I was thinking of a syntax like this:

This is my sentence {and this is my footnote}

Where all content in curly braces gets automatically pulled out, numbered, and linked.

Convention for footnotes is superscript numbers, so we might need to change the reference format, which currently uses superscript numbers.

Content: Callouts

These would be content that that have formatting around them, to distinguish them from the body text, like a code block, but not pre-formatted.

Single-page mode

For those that want to convert the whole book to a PDF or read it cover to cover.

Reading: Controls to influence font size

Not all browsers do this well. Add some app controls that allow easy adjustment. Perhaps a fixed position settings control floating in the corner that, when clicked, shows font size controls. I could put this in the margin of the navigation bar and toggle between different sizes.

Generate index section

Shows all keywords and phrases with links to occurrences, and occurrences are highlighted on the page.

  • From a chapter parse, need to index all words by the chapter in which they occur
  • Across all chapters, need to aggregate all words and the chapters in which they occur
  • In the chapters, need to highlight the words everywhere they occur within the chapter. Split text nodes into word spans with a class corresponding to the word they are for easy CSS highlighting.

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.