amyjko / bookish Goto Github PK
View Code? Open in Web Editor NEWA simple framework for publishing online books.
License: MIT License
A simple framework for publishing online books.
License: MIT License
In addition to comments, allow bookmarks, and create a page in table of contents that shows bookmarks for easy navigation.
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.
For those that want to convert the whole book to a PDF or read it cover to cover.
This will allow for better reading at night.
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.
Quick return to other chapters on mobile devices. The order would basically be table of contents, chapters, then index.
I despise the complexity of the Markdown syntax. Let's do something simpler.
MathML isn't fully supported (on Chrome or Edge), but there is partial support on WebKit and Firefox. There are some polyfills:
https://www.w3.org/wiki/Math_Tools
We'd need to add a syntax for including these, but it could be as simple as just segmenting it as a block escape format with embedded a MathML syntax.
https://www.w3.org/wiki/Math_Tools
Another option seems to be MathJAX, which seems pretty well supported:
Pros: single pages can feel disjoint from header and be linked to.
Cons: clutter.
To TOC, previous chapter, next chapter
When clicking on a Link
that follows a route, the page needs to scroll to an appropriate place.
For example
Speak loudly and carry a big stick should just be a paragraph, not a bulleted list. The space after the star matters.
This will require extracting the parser from chapter and making it a reusable component.
Probably just back to the table of contents.
It's too large on mobile.
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.
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.
`
Should be the same as
`
Blah
Blah
Blah
`
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.
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.
Just require the JSON file to be named book.json
Larger, floating, taking up two lines.
Currently just using text. Add some loading images instead.
For example, โ doesn't render correctly. See Chapter 2 of Design Methods.
This is actually two features:
Add them in the table of contents.
While there are some similarities to Markdown, there is a custom syntax here, and we should signal that. Perhaps just .txt
to signal that it should be opened by a plain text editor.
If we just have the author field be markup, then we won't have the author name for other purposes as a plan string without parsing it. Maybe ask for author link separately.
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.
This will be handy for lightweight segmentation of content.
Perhaps a way of referring to something in a central citation list embedded in a specification.
Show chapter title, all headers, table of contents, next and previous chapters. This could also be next and previous header links.
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.
This will simplify installation and make the paths a bit uglier.
See, for example, the link in rules in the Informatics teaching guide, to the prepare.
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.
The bullet is a little bold; perhaps a Unicode document symbol instead, or a small dot.
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.
Preface, introduction, appendices, etc.
Numbers are duplicated and don't correspond to the list in the references.
Check all possible errors and include appropriate warnings. We currently fail to check for any and provide no errors to the user.
Perhaps embed AJV and verify against a schema with custom error messages.
So I can track book reading.
Shows all keywords and phrases with links to occurrences, and occurrences are highlighted on the page.
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.
They currently just scroll down, but there needs to be some kind of highlight.
Python3
in particular would be most helpful, since that's mostly what I'm using in the book.
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.
This won't work for every web server, but there are options for many platforms. https://link.medium.com/Ng3zMVCYn9
Use highlight.js to syntax highlight preformatted text.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.