The Thr0w Project is about building inexpensive and manageable interactive (or not) digital displays using commodity hardware, web technologies, and open source software. The key to this solution is having one computer behind each screen networked to a single computer acting as a server. With this design, the splitting and synchronization of content is accomplished through software. More information on the Thr0w Project:
https://github.com/larkintuckerllc/thr0w-server
This repository provides a Thr0w module to create interactive Portable Document Format (PDF) files.
Assuming that one has a functional Thr0w Server and Thr0w Client environment:
Download the PDF.js library:
http://mozilla.github.io/pdf.js/getting_started/#download
Download the latest version:
https://github.com/larkintuckerllc/thr0w-pdf/releases
or using Bower
bower install thr0w-pdf
To install this module:
Add the PDF.js JavaScript to the HTML body.
Add the module's CSS to the HTML head after the Thr0w Client entry, e.g.:
<link rel="stylesheet" type="text/css" href="ROOT/dist/thr0w-pdf.css">
and the module's JavaScript library to the HTML body after the PDF.js and Thr0w Client entries, e.g.,
<script src="ROOT/dist/thr0w-pdf.min.js"></script>
where ROOT is the URL path to the root folder of the download.
The examples provided in ROOT/examples provide inline documentation on using this module's API.
The module's API reference is available at:
http://rawgit.com/larkintuckerllc/thr0w-pdf/master/doc/index.html
Submit bug or enhancement requests using the Github Issues feature. Submit bug fixes or enhancements as pull requests. Specifically, follow GitHub's document Contributing to Open Source on GitHub.
https://guides.github.com/activities/contributing-to-open-source/
The CSS and JavaScript need only be tested against the latest version of Chrome Browser.
To compile, install the development dependencies using npm and compile with gulp.
Where possible, the CSS and JavaScript is not to require any additional third-party libraries.
CSS entries are prefixed with thr0w_pdf_.
The CSS is to follow the BEM naming convention.
https://css-tricks.com/bem-101/
The JavaScript is to pass JSHint with the default configuration. The JavaScript is to pass JSCS with the Google preset.
The JavaScript is to comply with the following style guide.
- Modules are to be wrapped in an Immediately Invoked Function Expression (IIFE); no globals.
- Modules' expose their functionality as an appropriately named property on the global thr0w object, e.g., thr0w.pdf for this module.
- Use named functions instead of passing an anonymous function in as a callback.
- Define functions in the scope where they are used.
- Place functions declarations at the end of the scope; rely on hoisting.
The exposed JavaScript classes (or objects) are to be documented using YUIDoc.
TODO
General questions and comments can be directed to mailto:john@larkintuckerllc.com.
This project is licensed under GNU General Public License.