============== ColDoc Project ============== There are two main frameworks currently used to present information (in particular, related to scientific fields). - A document redacted with the standard `LaTeX` / `PDF` toolbox. - *Pros:* these documents are state-of-the-art quality. - *Cons:* the final user has no way of interacting with a PDF document (other than sending an e-mail to the original authors) - The *Web 2.0* way (think of: `Wikipedia `_ or `Stack Exchange `_ ). - *Pros:* in those frameworks, content is continuously developed and augmented by users. - *Cons:* the end result, though, is fragmented, and cannot (in general) be presented as an unified document. A ColDoc tries to get the best of two publishing frameworks. Code ==== The code is open source, it is available at https://github.com/mennucc/ColDoc_project The code uses Django, that is implemented using the Python language; it also uses some JavaScript snippets for interactive features. The current version of the code is `1.0`. Authors ------- This software is Copyright 2019-23 `Andrea C. G. Mennucci `_ License ------- See file `LICENSE.txt` in the code distribution Features ======== Code, portal, document ---------------------- This project is structured to keep separation between the *code*, the *portal*, and the *data*. Foremost, we install the *code* following the instructions in the :doc:`install section`. Then, we *deploy* the structure for a *portal* following the instructions in the :doc:`deploy section`. Eventually, we add one or more *documents* in the *portal*. See :doc:`section ` on how to prepare a document for its splitting and uploading into a *portal*. (You may also deploy multiple *portals* using the same *code*). Access management ----------------- Access to the whole document, or parts whereof, can be tuned. See the :doc:`section on permissions ` for details. UUID and blobs -------------- When a `LaTeX` document is inserted into a *portal*, it is *blobified*: it is divided in many small files, called *blobs*, each identified by an `UUID` (an unique identifier). The purpose is twofold: - each blob can be viewed conveniently by itself: the portal will compile an HTML representation of it, that is easily accessible (it also well adapts to mobile viewers), as well as a compact PDF representation (using the *standalone* class). - The UUID is a permanent identifier for that content: even if other material is added before that part of LaTeX, the UUID associated to it will not change (contrary to ordinary references in LaTeX); UUIDs can also be used to reference from *outside* of the document, using appropriate web URLs. Note that an UUID can reference to different versions of the same object: - for images, there may be different formats available; - for text, different languages may be available. Moreover, the portal will compile the whole document, as PDF and as HTML. The whole document contains UUID markers, of the form `[XXX]`, that can be used to jump to the web page of that UUID; vice-versa in the web page of the UUID there are links to view that UUID in the context of the whole document. Documentation ============= All documentation is in the "``docs``" directory. The documentation is in RST format, so it is mostly standard text: you can read it in the files inside `docs/source`. By using `sphinx` toolset, the documentation can be compiled to other formats; an HTML version is already available, for your convenience: browse it by .. code:: shell firefox docs/build/html/index.html Compile ------- To compile the documentation, you will need the `sphinx` toolset. To install it: .. code:: shell pip3 install sphinx sphinx-copybuttons or, if you prefer, in Debian-based systems (like Ubuntu): .. code:: shell sudo apt install python3-sphinx python3-sphinx-copybutton Then .. code:: shell cd docs make html or any other format that you wish. Quick start =========== If just want to see the code in action: install the code and the prerequisite libraries as explained in the :doc:`install section`; then follow commands in the :doc:`test section` to create a test portal. EDB portal ========== This software is used to run the portal https://coldoc.sns.it that serves a document containing math exercises (nicknamed *EDB*) Getting help ============ To get more help: coldoc.staff@sns.it