Preface / Presenting Data in Web Books



What is this website?
This is an example of what I call a web book. It is a website, resulting from a method, architecture, and custom tools. Developping those is my on-going project. This example web book covers diverse topics, on purpose, to generalize the method. Overall, the topics are useful and interesting to me and the pages serves as my cheatsheets.

What is special about web books?
Dense and Responsive
The information is presented as dense as possible, while attempting to do so aesthetically. Reconfigures to fit screens/paper of any size.
No JavaScript
Using no external dependencies, avoiding execution of client-side code. Remains able to use any modern JS module if needed. Avoiding JS librairies that help the developper at the cost of the user, and especially avoiding librairies that provide no utility to the user (like analytics). This is a user-centric choice, to avoid pop-ups, serve statically built, final pages, inert and fast.
Modular and Printable
Individual pages, or chapters, or the entire site is easily concatenated into modular sequences that are immediately printable, akin modular PDFs. The metadata, linking, and content follows a strategy minimizing the processing for this.
Usable as Codebase
Some code files (here, Python) are rendered into pages, many pages also include visible and sometimes "live" CSS and Javascript snippets. The lines are blurred between documentation, code, and output HTML.
Usable as Database
Some pages serve as datasets, like No-SQL databases. This is fit for small datasets with a few hundred items. Items can be read as human-facing pages, but also be used as single-source-of-truth for processing.

How is the pipeline built?
Ideally any kind of data should be presentable as pages. Natural language prose, from multiple file formats, relational databases or semi-structured files / NoSQL, file-trees, binary media, SVG, diagrams, graphs, etc. In general I make ETL scripts for the sources on as-needed basis. I re-implemented wheels to work with minimum pre-made tools: whatever ships by default on POSIX systems, using commands, and Python limited to its stdlib. I also leverage binaries, VS Code, and sparsely external JS librairies, (secluded to pages clearly indicating their use). One reason was to learn about the web. Another is to make the whole process streamlined, fast, vertical, flexible to accomodate strange mechanisms.

What is the scope of web books?
Obviously this is not suited for some specialized tasks, e.g. big-data storage or SPA tools.

What is the status of this project?
This is an on-going exploration of methods to present any data on the web. It is also a living document that I update with what I learn. By nature, I do not expect to finish or stop working on it. It is a quest for perfection with no dependencies, thus forever WIP, partially incomplete, and to view as my artistic and technical experiments.