softcover 0.0.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +9 -0
- data/.pull_requests/1371777843 +0 -0
- data/.pull_requests/1371928784 +0 -0
- data/.pull_requests/1372807241 +0 -0
- data/.pull_requests/1374784202 +0 -0
- data/.pull_requests/1375325174 +0 -0
- data/.pull_requests/1375410822 +0 -0
- data/.pull_requests/1375469799 +0 -0
- data/.pull_requests/1375490251 +0 -0
- data/.pull_requests/1375493726 +0 -0
- data/.pull_requests/1375496302 +0 -0
- data/.pull_requests/1375496370 +0 -0
- data/.pull_requests/1375576640 +0 -0
- data/.pull_requests/1375841865 +0 -0
- data/.pull_requests/1376353301 +0 -0
- data/.pull_requests/1376358293 +0 -0
- data/.pull_requests/1376358392 +0 -0
- data/.pull_requests/1376451118 +0 -0
- data/.pull_requests/1376508357 +0 -0
- data/.pull_requests/1376513848 +0 -0
- data/.pull_requests/1376626000 +0 -0
- data/.pull_requests/1376626358 +0 -0
- data/.pull_requests/1376694273 +0 -0
- data/.pull_requests/1376696608 +0 -0
- data/.pull_requests/1376701133 +0 -0
- data/.pull_requests/1376705147 +0 -0
- data/.pull_requests/1377192571 +0 -0
- data/.pull_requests/1377195255 +0 -0
- data/.pull_requests/1377227817 +0 -0
- data/.pull_requests/1378780517 +0 -0
- data/.pull_requests/1379022091 +0 -0
- data/.pull_requests/1379023124 +0 -0
- data/.pull_requests/1379355960 +0 -0
- data/.pull_requests/1379457178 +0 -0
- data/.pull_requests/1379471050 +0 -0
- data/.pull_requests/1379630778 +0 -0
- data/.pull_requests/1380079375 +0 -0
- data/.pull_requests/1380081971 +0 -0
- data/.pull_requests/1380222458 +0 -0
- data/.pull_requests/1380229616 +0 -0
- data/.pull_requests/1380321946 +0 -0
- data/.pull_requests/1380587638 +0 -0
- data/.pull_requests/1380673383 +0 -0
- data/.pull_requests/1380675541 +0 -0
- data/.pull_requests/1380676529 +0 -0
- data/.pull_requests/1380944160 +0 -0
- data/.pull_requests/1381001404 +0 -0
- data/.pull_requests/1381001955 +0 -0
- data/.pull_requests/1381005206 +0 -0
- data/.pull_requests/1381103407 +0 -0
- data/.pull_requests/1381265319 +0 -0
- data/.pull_requests/1381276823 +0 -0
- data/.pull_requests/1381344368 +0 -0
- data/.pull_requests/1381385299 +0 -0
- data/.pull_requests/1381429963 +0 -0
- data/.pull_requests/1381532321 +0 -0
- data/.pull_requests/1381635684 +0 -0
- data/.pull_requests/1381875886 +0 -0
- data/.pull_requests/1382040914 +0 -0
- data/.pull_requests/1382056382 +0 -0
- data/.pull_requests/1382229425 +0 -0
- data/.pull_requests/1382501299 +0 -0
- data/.pull_requests/1382559045 +0 -0
- data/.pull_requests/1382569908 +0 -0
- data/.pull_requests/1382643470 +0 -0
- data/.pull_requests/1382660994 +0 -0
- data/.pull_requests/1382815660 +0 -0
- data/.pull_requests/1383162273 +0 -0
- data/.pull_requests/1383274302 +0 -0
- data/.pull_requests/1383274901 +0 -0
- data/.pull_requests/1383336387 +0 -0
- data/.pull_requests/1383420874 +0 -0
- data/.pull_requests/1383707748 +0 -0
- data/.pull_requests/1384207054 +0 -0
- data/.pull_requests/1384304643 +0 -0
- data/.rspec +1 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +12 -1
- data/LICENSE.txt +2 -2
- data/README.md +25 -8
- data/Rakefile +1 -0
- data/bin/sc +4 -0
- data/bin/softcover +4 -0
- data/lib/softcover.rb +59 -2
- data/lib/softcover/book.rb +190 -0
- data/lib/softcover/book_manifest.rb +237 -0
- data/lib/softcover/builder.rb +51 -0
- data/lib/softcover/builders/epub.rb +436 -0
- data/lib/softcover/builders/html.rb +214 -0
- data/lib/softcover/builders/mobi.rb +30 -0
- data/lib/softcover/builders/pdf.rb +110 -0
- data/lib/softcover/builders/preview.rb +34 -0
- data/lib/softcover/builders/utils/page.js +62 -0
- data/lib/softcover/cli.rb +236 -0
- data/lib/softcover/client.rb +113 -0
- data/lib/softcover/commands/auth.rb +18 -0
- data/lib/softcover/commands/build.rb +51 -0
- data/lib/softcover/commands/deployment.rb +42 -0
- data/lib/softcover/commands/deployment_spec.rb +21 -0
- data/lib/softcover/commands/epub_validator.rb +32 -0
- data/lib/softcover/commands/generator.rb +148 -0
- data/lib/softcover/commands/opener.rb +13 -0
- data/lib/softcover/commands/publisher.rb +106 -0
- data/lib/softcover/commands/server.rb +46 -0
- data/lib/softcover/config.rb +58 -0
- data/lib/softcover/formats.rb +5 -0
- data/lib/softcover/mathjax.rb +75 -0
- data/lib/softcover/output.rb +39 -0
- data/lib/softcover/rails/railtie.rb +9 -0
- data/lib/softcover/sanitizer.rb +41 -0
- data/lib/softcover/server/app.rb +101 -0
- data/lib/softcover/server/assets/bg.gif +0 -0
- data/lib/softcover/server/assets/icons.png +0 -0
- data/lib/softcover/server/assets/main.css +189 -0
- data/lib/softcover/server/assets/underscore-min.js +6 -0
- data/lib/softcover/server/assets/underscore-min.map +1 -0
- data/lib/softcover/server/views/book.html.erb +54 -0
- data/lib/softcover/server/views/main.js.erb +58 -0
- data/lib/softcover/template/.softcover-deploy +6 -0
- data/lib/softcover/template/Book.txt +9 -0
- data/lib/softcover/template/book.tex +21 -0
- data/lib/softcover/template/book.yml.erb +11 -0
- data/lib/softcover/template/chapters/a_chapter.md +118 -0
- data/lib/softcover/template/chapters/a_chapter.tex +191 -0
- data/lib/softcover/template/chapters/another_chapter.md +5 -0
- data/lib/softcover/template/chapters/another_chapter.tex +4 -0
- data/lib/softcover/template/chapters/preface.md +3 -0
- data/lib/softcover/template/chapters/preface.tex +3 -0
- data/lib/softcover/template/chapters/yet_another_chapter.md +3 -0
- data/lib/softcover/template/chapters/yet_another_chapter.tex +6 -0
- data/lib/softcover/template/custom.sty +16 -0
- data/lib/softcover/template/epub/OEBPS/styles/.gitkeep +0 -0
- data/lib/softcover/template/epub/OEBPS/styles/epub.css +10 -0
- data/lib/softcover/template/epub/OEBPS/styles/page-template.xpgt +49 -0
- data/lib/softcover/template/framed.sty +548 -0
- data/lib/softcover/template/generated_polytex/.gitkeep +0 -0
- data/lib/softcover/template/gitignore +32 -0
- data/lib/softcover/template/html/.gitkeep +0 -0
- data/lib/softcover/template/html/MathJax/MathJax.js +30 -0
- data/lib/softcover/template/html/MathJax/config/TeX-AMS-MML_SVG.js +68 -0
- data/lib/softcover/template/html/MathJax/config/TeX-AMS_HTML.js +59 -0
- data/lib/softcover/template/html/MathJax/extensions/FontWarnings.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/HTML-CSS/handle-floats.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/HelpDialog.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/MathEvents.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/MathML/content-mathml.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/MathMenu.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/MathZoom.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/Safe.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/AMScd.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/AMSmath.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/AMSsymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/HTML.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/action.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/autobold.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/autoload-all.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/bbox.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/begingroup.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/boldsymbol.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/cancel.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/color.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/enclose.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/extpfeil.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/mathchoice.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/mhchem.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/newcommand.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/noErrors.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/noUndefined.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/unicode.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/TeX/verb.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/asciimath2jax.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/jsMath2jax.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/mml2jax.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/tex2jax.js +16 -0
- data/lib/softcover/template/html/MathJax/extensions/toMathML.js +16 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff +0 -0
- data/lib/softcover/template/html/MathJax/images/CloseX-31.png +0 -0
- data/lib/softcover/template/html/MathJax/images/MenuArrow-15.png +0 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/jax.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/Arrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/CombDiactForSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/Dingbats.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/MiscMathSymbolsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/MiscMathSymbolsB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/MiscSymbolsAndArrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/MiscTechnical.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/SupplementalArrowsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/element/mml/optable/SupplementalArrowsB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/AsciiMath/config.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/AsciiMath/jax.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/config.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/a.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/b.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/c.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/d.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/e.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/f.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/fr.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/g.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/h.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/i.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/j.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/k.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/l.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/m.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/n.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/o.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/opf.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/p.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/q.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/r.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/s.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/scr.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/t.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/u.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/v.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/w.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/x.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/y.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/entities/z.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/MathML/jax.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/TeX/config.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/input/TeX/jax.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/annotation-xml.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/maction.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/menclose.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/mglyph.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/mmultiscripts.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/ms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/mtable.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/autoload/multiline.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/config.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/AlphaPresentForms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/Arrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/BBBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/BoldFraktur.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/BoxDrawing.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/CombDiactForSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/ControlPictures.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/CurrencySymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/Cyrillic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/EnclosedAlphanum.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/GreekBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/GreekSSBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/IPAExtensions.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/LatinExtendedAdditional.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/LatinExtendedD.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/MathBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/MathSSBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/MiscMathSymbolsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/MiscMathSymbolsB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/MiscTechnical.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/NumberForms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/PhoneticExtensions.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/SuperAndSubscripts.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Bold/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/AlphaPresentForms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/BoxDrawing.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/CombDiactForSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/ControlPictures.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/CurrencySymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/Cyrillic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/EnclosedAlphanum.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/GreekBoldItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/GreekSSBoldItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/IPAExtensions.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/LatinExtendedAdditional.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/MathBoldItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/MathBoldScript.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/MathSSItalicBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/BoldItalic/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/AlphaPresentForms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/BoxDrawing.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/CombDiactForSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/ControlPictures.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/CurrencySymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/Cyrillic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/EnclosedAlphanum.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/GreekItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/IPAExtensions.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/LatinExtendedAdditional.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/MathItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/MathSSItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/MathScript.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Italic/ij.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/AlphaPresentForms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Arrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/BBBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/BlockElements.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/BoldFraktur.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/BoxDrawing.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/CJK.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/CombDiactForSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/ControlPictures.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/CurrencySymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Cyrillic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Dingbats.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/EnclosedAlphanum.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Fraktur.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GreekBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GreekBoldItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GreekItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GreekSSBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/GreekSSBoldItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Hiragana.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/IPAExtensions.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/LatinExtendedAdditional.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/LatinExtendedD.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathBoldItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathBoldScript.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathSS.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathSSBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathSSItalic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathSSItalicBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathScript.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MathTT.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MiscMathSymbolsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MiscMathSymbolsB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MiscSymbolsAndArrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/MiscTechnical.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/NumberForms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/PhoneticExtensions.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/Specials.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/SuperAndSubscripts.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/SupplementalArrowsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/SupplementalArrowsB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/General/Regular/ij.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsD/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsD/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsD/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsSm/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsSm/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsSm/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUp/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUp/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUp/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUpD/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUpD/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUpD/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUpSm/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUpSm/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/IntegralsUpSm/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Bold/PrivateUse.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/BoldItalic/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/BoldItalic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/BoldItalic/PrivateUse.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Italic/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Italic/PrivateUse.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/NonUnicode/Regular/PrivateUse.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeFiveSym/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeFiveSym/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeFourSym/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeFourSym/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeFourSym/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeOneSym/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeOneSym/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeOneSym/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeOneSym/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeThreeSym/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeThreeSym/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeThreeSym/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeTwoSym/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeTwoSym/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/SizeTwoSym/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/Variants/Bold/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/Variants/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/Variants/Regular/All.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/Variants/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/fontdata-1.0.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/fontdata-beta.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/fontdata-extra.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/STIX/fontdata.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/BoldItalic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Arrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Math/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Size1/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Size2/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Size3/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Size4/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/fontdata-extra.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/fonts/TeX/fontdata.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/imageFonts.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/HTML-CSS/jax.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/NativeMML/config.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/NativeMML/jax.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/annotation-xml.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/maction.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/menclose.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/mglyph.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/mmultiscripts.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/ms.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/mtable.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/autoload/multiline.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/config.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Arrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/BoxDrawing.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Dingbats.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/EnclosedAlphanum.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/MiscTechnical.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/PUA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/AMS/Regular/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Caligraphic/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Caligraphic/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Bold/PUA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Fraktur/Regular/PUA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/Arrows.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/CombDiactForSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/Latin1Supplement.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MiscMathSymbolsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/MiscTechnical.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Bold/SupplementalArrowsA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/GeneralPunctuation.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Italic/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/GeometricShapes.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/LatinExtendedA.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/LatinExtendedB.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/MathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/MiscSymbols.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/SpacingModLetters.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Main/Regular/SuppMathOperators.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Math/BoldItalic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Math/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Bold/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Italic/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/SansSerif/Regular/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Script/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Script/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Size1/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Size3/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Size4/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/BasicLatin.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/Main.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/Typewriter/Regular/Other.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/fontdata-extra.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/fonts/TeX/fontdata.js +16 -0
- data/lib/softcover/template/html/MathJax/jax/output/SVG/jax.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/de/FontWarnings.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/de/HTML-CSS.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/de/HelpDialog.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/de/MathML.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/de/MathMenu.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/de/TeX.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/de/de.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/en/FontWarnings.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/en/HTML-CSS.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/en/HelpDialog.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/en/MathML.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/en/MathMenu.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/en/TeX.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/en/en.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/fr/FontWarnings.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/fr/HTML-CSS.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/fr/HelpDialog.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/fr/MathML.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/fr/MathMenu.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/fr/TeX.js +16 -0
- data/lib/softcover/template/html/MathJax/localization/fr/fr.js +16 -0
- data/lib/softcover/template/html/jquery/1.10.2/jquery-1.10.2.js +9789 -0
- data/lib/softcover/template/html/jquery/1.10.2/jquery-1.10.2.min.map +1 -0
- data/lib/softcover/template/html/stylesheets/.gitkeep +0 -0
- data/lib/softcover/template/html/stylesheets/softcover.css +417 -0
- data/lib/softcover/template/images/.gitkeep +0 -0
- data/lib/softcover/template/images/2011_michael_hartl.png +0 -0
- data/lib/softcover/template/images/cover.pdf +0 -0
- data/lib/softcover/template/images/cover.png +0 -0
- data/lib/softcover/template/images/figures/.gitkeep +0 -0
- data/lib/softcover/template/polytexnic_commands.sty +1 -0
- data/lib/softcover/template/simple_book.tex +14 -0
- data/lib/softcover/template/softcover.sty +130 -0
- data/lib/softcover/template/upquote.sty +76 -0
- data/lib/softcover/uploader.rb +81 -0
- data/lib/softcover/utils.rb +131 -0
- data/lib/softcover/version.rb +1 -1
- data/softcover.gemspec +34 -16
- data/spec/app_spec.rb +100 -0
- data/spec/auth_spec.rb +44 -0
- data/spec/book_manifest_spec.rb +58 -0
- data/spec/book_spec.rb +33 -0
- data/spec/builder_spec.rb +10 -0
- data/spec/builders/epub_spec.rb +203 -0
- data/spec/builders/html_spec.rb +136 -0
- data/spec/builders/mobi_spec.rb +47 -0
- data/spec/builders/pdf_spec.rb +80 -0
- data/spec/builders/preview_spec.rb +60 -0
- data/spec/cli_spec.rb +130 -0
- data/spec/commands/build_spec.rb +50 -0
- data/spec/commands/generator_spec.rb +260 -0
- data/spec/commands/opener_spec.rb +17 -0
- data/spec/commands/publisher_spec.rb +108 -0
- data/spec/commands/server_spec.rb +21 -0
- data/spec/mathjax_spec.rb +61 -0
- data/spec/output_spec.rb +41 -0
- data/spec/sanitizer_spec.rb +35 -0
- data/spec/spec_helper.rb +52 -0
- data/spec/support/exist_matcher.rb +7 -0
- data/spec/webmock_helpers.rb +183 -0
- data/tasks/run_specs.rake +5 -0
- metadata +982 -12
@@ -0,0 +1,237 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
class Softcover::BookManifest < OpenStruct
|
4
|
+
class NotFound < StandardError
|
5
|
+
def message
|
6
|
+
"Invalid book directory, no manifest file found!"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class Chapter < OpenStruct
|
11
|
+
def path
|
12
|
+
File.join('chapters', slug + '.tex')
|
13
|
+
end
|
14
|
+
|
15
|
+
def fragment_name
|
16
|
+
"#{slug}_fragment.html"
|
17
|
+
end
|
18
|
+
|
19
|
+
def fragment_path
|
20
|
+
File.join('html', fragment_name)
|
21
|
+
end
|
22
|
+
|
23
|
+
def nodes
|
24
|
+
@nodes ||= []
|
25
|
+
end
|
26
|
+
|
27
|
+
# Returns a chapter heading for use in the navigation menu.
|
28
|
+
def menu_heading
|
29
|
+
raw_html = Polytexnic::Pipeline.new(title).to_html
|
30
|
+
html = Nokogiri::HTML(raw_html).at_css('p').inner_html
|
31
|
+
chapter_number.zero? ? html : "Chapter #{chapter_number}: #{html}"
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_hash
|
35
|
+
marshal_dump.merge({ menu_heading: menu_heading })
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class Section < OpenStruct
|
40
|
+
end
|
41
|
+
|
42
|
+
MD_PATH = 'Book.txt'
|
43
|
+
YAML_PATH = "book.yml"
|
44
|
+
|
45
|
+
def initialize(options = {})
|
46
|
+
@source = options[:source] || :polytex
|
47
|
+
yaml_attrs = read_from_yml
|
48
|
+
attrs = case
|
49
|
+
when polytex? then yaml_attrs
|
50
|
+
when markdown? then yaml_attrs.merge(read_from_md)
|
51
|
+
else
|
52
|
+
self.class.not_found!
|
53
|
+
end.symbolize_keys!
|
54
|
+
|
55
|
+
marshal_load attrs
|
56
|
+
|
57
|
+
if polytex?
|
58
|
+
tex_filename = filename + '.tex'
|
59
|
+
self.chapters = []
|
60
|
+
self.frontmatter = []
|
61
|
+
base_contents = File.read(tex_filename)
|
62
|
+
if base_contents.match(/frontmatter/)
|
63
|
+
@frontmatter = true
|
64
|
+
chapters.push Chapter.new(slug: 'frontmatter',
|
65
|
+
title: 'Frontmatter',
|
66
|
+
sections: nil,
|
67
|
+
chapter_number: 0)
|
68
|
+
end
|
69
|
+
raw_frontmatter = remove_frontmatter(base_contents, frontmatter)
|
70
|
+
if frontmatter?
|
71
|
+
self.frontmatter = chapter_includes(raw_frontmatter)
|
72
|
+
else
|
73
|
+
self.frontmatter = []
|
74
|
+
end
|
75
|
+
self.author = base_contents.scan(/^\s*\\author\{(.*?)\}/).flatten.first
|
76
|
+
chapter_includes(base_contents).each_with_index do |name, i|
|
77
|
+
slug = File.basename(name, '.*')
|
78
|
+
title_regex = /^\s*\\chapter{(.*)}/
|
79
|
+
content = File.read(File.join('chapters', slug + '.tex'))
|
80
|
+
title = content[title_regex, 1]
|
81
|
+
j = 0
|
82
|
+
sections = content.scan(/^\s*\\section{(.*)}/).flatten.map do |name|
|
83
|
+
Section.new(name: name, section_number: j += 1)
|
84
|
+
end
|
85
|
+
chapters.push Chapter.new(slug: slug,
|
86
|
+
title: title,
|
87
|
+
sections: sections,
|
88
|
+
chapter_number: i + 1)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
verify_paths! if options[:verify_paths]
|
92
|
+
end
|
93
|
+
|
94
|
+
# Returns an array of the chapters to include.
|
95
|
+
def chapter_includes(string)
|
96
|
+
chapter_regex = /^\s*\\include\{chapters\/(.*?)\}/
|
97
|
+
string.scan(chapter_regex).flatten
|
98
|
+
end
|
99
|
+
|
100
|
+
# Removes frontmatter.
|
101
|
+
# The frontmatter shouldn't be included in the chapter slugs, so we remove
|
102
|
+
# it. For example, in
|
103
|
+
# \frontmatter
|
104
|
+
# \maketitle
|
105
|
+
# \tableofcontents
|
106
|
+
# % List frontmatter sections here (preface, foreword, etc.).
|
107
|
+
# \include{chapters/preface}
|
108
|
+
# \mainmatter
|
109
|
+
# % List chapters here in the order they should appear in the book.
|
110
|
+
# \include{chapters/a_chapter}
|
111
|
+
# we don't want to include the preface.
|
112
|
+
def remove_frontmatter(base_contents, frontmatter)
|
113
|
+
base_contents.gsub!(/\\frontmatter(.*)\\mainmatter/m, '')
|
114
|
+
$1
|
115
|
+
end
|
116
|
+
|
117
|
+
# Returns true if the book has frontmatter.
|
118
|
+
def frontmatter?
|
119
|
+
@frontmatter
|
120
|
+
end
|
121
|
+
|
122
|
+
# Returns the first full chapter.
|
123
|
+
# This arranges to skip the frontmatter, if any.
|
124
|
+
def first_chapter
|
125
|
+
frontmatter? ? chapters[1] : chapters[0]
|
126
|
+
end
|
127
|
+
|
128
|
+
# Returns true if converting Markdown source.
|
129
|
+
def markdown?
|
130
|
+
@source == :markdown || @source == :md
|
131
|
+
end
|
132
|
+
alias :md? :markdown?
|
133
|
+
|
134
|
+
# Returns true if converting PolyTeX source.
|
135
|
+
def polytex?
|
136
|
+
@source == :polytex
|
137
|
+
end
|
138
|
+
|
139
|
+
# Returns an iterator the chapter file paths.
|
140
|
+
def chapter_file_paths
|
141
|
+
pdf_chapter_names.map do |name|
|
142
|
+
file_path = case
|
143
|
+
when markdown? then File.join("chapters", "#{name}.md")
|
144
|
+
when polytex? then File.join("chapters", "#{name}.tex")
|
145
|
+
end
|
146
|
+
|
147
|
+
yield file_path if block_given?
|
148
|
+
|
149
|
+
file_path
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
# Return chapters for the PDF.
|
154
|
+
# The frontmatter pseudo-chapter exists for the sake of HTML/EPUB/MOBI, so
|
155
|
+
# it's not returned as part of the chapters.
|
156
|
+
def pdf_chapter_names
|
157
|
+
chaps = chapters.reject { |chapter| chapter.slug.match(/frontmatter/) }.
|
158
|
+
collect(&:slug)
|
159
|
+
frontmatter? ? frontmatter + chaps : chaps
|
160
|
+
end
|
161
|
+
|
162
|
+
def find_chapter_by_slug(slug)
|
163
|
+
chapters.find { |chapter| chapter.slug == slug }
|
164
|
+
end
|
165
|
+
|
166
|
+
def find_chapter_by_number(number)
|
167
|
+
chapters.find { |chapter| chapter.chapter_number == number }
|
168
|
+
end
|
169
|
+
|
170
|
+
# Returns a URL for the chapter with the given number.
|
171
|
+
def url(chapter_number)
|
172
|
+
if (chapter = find_chapter_by_number(chapter_number))
|
173
|
+
chapter.slug
|
174
|
+
else
|
175
|
+
'#'
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
# Returns the chapter range for book previews.
|
180
|
+
# We could `eval` the range, but that would allow users to execute arbitrary
|
181
|
+
# code (maybe not a big problem on their system, but it would be a Bad Thing
|
182
|
+
# on a server).
|
183
|
+
def preview_chapter_range
|
184
|
+
first, last = epub_mobi_preview_chapter_range.split('..').map(&:to_i)
|
185
|
+
first..last
|
186
|
+
end
|
187
|
+
|
188
|
+
# Returns the chapters to use in the preview as a range.
|
189
|
+
def preview_chapters
|
190
|
+
chapters[preview_chapter_range]
|
191
|
+
end
|
192
|
+
|
193
|
+
def self.valid_directory?
|
194
|
+
[YAML_PATH, MD_PATH].any? { |f| File.exist?(f) }
|
195
|
+
end
|
196
|
+
|
197
|
+
# Changes the directory until in the book's root directory.
|
198
|
+
def self.find_book_root!
|
199
|
+
loop do
|
200
|
+
return true if valid_directory?
|
201
|
+
return not_found! if Dir.pwd == '/'
|
202
|
+
Dir.chdir '..'
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
def self.not_found!
|
207
|
+
raise NotFound
|
208
|
+
end
|
209
|
+
|
210
|
+
private
|
211
|
+
|
212
|
+
def read_from_yml
|
213
|
+
require 'softcover/config'
|
214
|
+
require 'yaml/store'
|
215
|
+
self.class.find_book_root!
|
216
|
+
YAML.load_file(YAML_PATH)
|
217
|
+
end
|
218
|
+
|
219
|
+
def read_from_md
|
220
|
+
self.class.find_book_root!
|
221
|
+
chapters = File.readlines(MD_PATH).select do |path|
|
222
|
+
path =~ /(.*)\.md/
|
223
|
+
end.map do |file|
|
224
|
+
Chapter.new(slug: File.basename(file.strip, '.md'))
|
225
|
+
end
|
226
|
+
{ chapters: chapters, filename: MD_PATH }
|
227
|
+
end
|
228
|
+
|
229
|
+
def verify_paths!
|
230
|
+
chapter_file_paths do |chapter_path, i|
|
231
|
+
next if chapter_path =~ /frontmatter/
|
232
|
+
unless File.exist?(chapter_path)
|
233
|
+
raise "Chapter file in manifest not found in #{chapter_path}"
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Softcover
|
2
|
+
class Builder
|
3
|
+
include Softcover::Utils
|
4
|
+
|
5
|
+
attr_accessor :manifest, :built_files
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@manifest = Softcover::BookManifest.new(verify_paths: true,
|
9
|
+
source: source)
|
10
|
+
@built_files = []
|
11
|
+
write_polytexnic_commands_file
|
12
|
+
end
|
13
|
+
|
14
|
+
def build!(options={})
|
15
|
+
setup
|
16
|
+
build(options)
|
17
|
+
verify
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns true if we should remove the generated PolyTeX.
|
22
|
+
# This is true of Markdown books, but we can't just use `markdown?` because
|
23
|
+
# we're re-using the PolyTeX production pipeline.
|
24
|
+
def remove_polytex?
|
25
|
+
@remove_tex
|
26
|
+
end
|
27
|
+
|
28
|
+
# Removes the generated PolyTeX.
|
29
|
+
# The 'removal' actually just involves moving it to an ignored storage
|
30
|
+
# directory. This gives users the ability to inspect it if desired.
|
31
|
+
def remove_polytex!
|
32
|
+
mkdir 'generated_polytex'
|
33
|
+
FileUtils.mv(Dir.glob(path('chapters/*.tex')), 'generated_polytex')
|
34
|
+
end
|
35
|
+
|
36
|
+
def clean!; end
|
37
|
+
|
38
|
+
private
|
39
|
+
def setup; end
|
40
|
+
def verify; end
|
41
|
+
|
42
|
+
def source
|
43
|
+
Dir.glob(path('chapters/*.md')).empty? ? :polytex : :markdown
|
44
|
+
end
|
45
|
+
|
46
|
+
# Writes out the PolyTeXnic commands from polytexnic.
|
47
|
+
def write_polytexnic_commands_file
|
48
|
+
Polytexnic.write_polytexnic_style_file(Dir.pwd)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,436 @@
|
|
1
|
+
module Softcover
|
2
|
+
module Builders
|
3
|
+
class Epub < Builder
|
4
|
+
include Softcover::Output
|
5
|
+
|
6
|
+
def build!(options={})
|
7
|
+
@preview = options[:preview]
|
8
|
+
Softcover::Builders::Html.new.build!(preserve_tex: true)
|
9
|
+
if manifest.markdown?
|
10
|
+
self.manifest = Softcover::BookManifest.new(source: :polytex)
|
11
|
+
@remove_tex = true
|
12
|
+
end
|
13
|
+
remove_html
|
14
|
+
create_directories
|
15
|
+
write_mimetype
|
16
|
+
write_container_xml
|
17
|
+
write_toc
|
18
|
+
write_nav
|
19
|
+
copy_image_files
|
20
|
+
write_html(options)
|
21
|
+
write_contents
|
22
|
+
create_style_files
|
23
|
+
make_epub(options)
|
24
|
+
move_epub
|
25
|
+
remove_polytex! if remove_polytex?
|
26
|
+
end
|
27
|
+
|
28
|
+
# Returns true if generating a book preview.
|
29
|
+
def preview?
|
30
|
+
!!@preview
|
31
|
+
end
|
32
|
+
|
33
|
+
# Removes HTML.
|
34
|
+
# All the HTML is generated, so this clears out any unused files.
|
35
|
+
def remove_html
|
36
|
+
FileUtils.rm(Dir.glob(path('epub/OEBPS/html/*.html')))
|
37
|
+
end
|
38
|
+
|
39
|
+
def create_directories
|
40
|
+
mkdir('epub')
|
41
|
+
mkdir(path('epub/OEBPS'))
|
42
|
+
mkdir(path('epub/OEBPS/styles'))
|
43
|
+
mkdir(path('epub/META-INF'))
|
44
|
+
mkdir('ebooks')
|
45
|
+
end
|
46
|
+
|
47
|
+
# Writes the mimetype file.
|
48
|
+
# This is required by the EPUB standard.
|
49
|
+
def write_mimetype
|
50
|
+
File.write(path('epub/mimetype'), 'application/epub+zip')
|
51
|
+
end
|
52
|
+
|
53
|
+
# Writes the container XML file.
|
54
|
+
# This is required by the EPUB standard.
|
55
|
+
def write_container_xml
|
56
|
+
File.write(path('epub/META-INF/container.xml'), container_xml)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Writes the content.opf file.
|
60
|
+
# This is required by the EPUB standard.
|
61
|
+
def write_contents
|
62
|
+
File.write(path('epub/OEBPS/content.opf'), content_opf)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Returns the chapters to write (accounting for previews).
|
66
|
+
def chapters
|
67
|
+
preview? ? manifest.preview_chapters : manifest.chapters
|
68
|
+
end
|
69
|
+
|
70
|
+
# Writes the HTML for the EPUB.
|
71
|
+
# Included is a math detector that processes the page with MathJax
|
72
|
+
# (via page.js) so that math can be included in EPUB (and thence MOBI).
|
73
|
+
def write_html(options={})
|
74
|
+
images_dir = File.join('epub', 'OEBPS', 'images')
|
75
|
+
texmath_dir = File.join(images_dir, 'texmath')
|
76
|
+
mkdir images_dir
|
77
|
+
mkdir texmath_dir
|
78
|
+
|
79
|
+
File.write(path('epub/OEBPS/cover.html'), cover_page)
|
80
|
+
|
81
|
+
pngs = []
|
82
|
+
chapters.each_with_index do |chapter, i|
|
83
|
+
target_filename = path("epub/OEBPS/#{chapter.fragment_name}")
|
84
|
+
File.open(target_filename, 'w') do |f|
|
85
|
+
content = File.read(path("html/#{chapter.fragment_name}"))
|
86
|
+
doc = strip_attributes(Nokogiri::HTML(content))
|
87
|
+
inner_html = doc.at_css('body').children.to_xhtml
|
88
|
+
if math?(inner_html)
|
89
|
+
html = html_with_math(chapter, images_dir, texmath_dir, pngs,
|
90
|
+
options)
|
91
|
+
next if html.nil?
|
92
|
+
else
|
93
|
+
html = inner_html
|
94
|
+
end
|
95
|
+
f.write(chapter_template("Chapter #{i}", html))
|
96
|
+
end
|
97
|
+
end
|
98
|
+
# Clean up unused PNGs.
|
99
|
+
png_files = Dir[path("#{texmath_dir}/*.png")]
|
100
|
+
(png_files - pngs).each do |f|
|
101
|
+
if File.exist?(f)
|
102
|
+
puts "Removing unused PNG #{f}" unless options[:silent]
|
103
|
+
FileUtils.rm(f)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# Returns HTML for HTML source that includes math.
|
109
|
+
# As a side-effect, html_with_math creates PNGs corresponding to any
|
110
|
+
# math in the given source. The technique involves using PhantomJS to
|
111
|
+
# hit the HTML source for each page containing math to create SVGs
|
112
|
+
# for every math element. Since ereader support for SVGs is spotty,
|
113
|
+
# they are then converted to PNGs using Inkscape. The filenames are
|
114
|
+
# SHAs of their contents, which arranges both for unique filenames
|
115
|
+
# and for automatic disk caching.
|
116
|
+
def html_with_math(chapter, images_dir, texmath_dir, pngs, options={})
|
117
|
+
content = File.read(File.join("html", "#{chapter.slug}.html"))
|
118
|
+
pagejs = "#{File.dirname(__FILE__)}/utils/page.js"
|
119
|
+
url = "file://#{Dir.pwd}/html/#{chapter.slug}.html"
|
120
|
+
cmd = "#{phantomjs} #{pagejs} #{url}"
|
121
|
+
silence { silence_stream(STDERR) { system cmd } }
|
122
|
+
# Sometimes in tests the phantomjs_source.html file is missing.
|
123
|
+
# It shouldn't ever happen, but it does no harm to skip it.
|
124
|
+
return nil unless File.exist?('phantomjs_source.html')
|
125
|
+
raw_source = File.read('phantomjs_source.html')
|
126
|
+
source = strip_attributes(Nokogiri::HTML(raw_source))
|
127
|
+
rm 'phantomjs_source.html'
|
128
|
+
# Remove the first body div, which is the hidden MathJax SVGs
|
129
|
+
source.at_css('body div').remove
|
130
|
+
# Remove all the unneeded raw TeX displays.
|
131
|
+
source.css('script').each(&:remove)
|
132
|
+
# Remove all the MathJax preview spans.
|
133
|
+
source.css('MathJax_Preview').each(&:remove)
|
134
|
+
|
135
|
+
# Suck out all the SVGs
|
136
|
+
svgs = source.css('div#book svg')
|
137
|
+
frames = source.css('span.MathJax_SVG')
|
138
|
+
svgs.zip(frames).each do |svg, frame|
|
139
|
+
# Save the SVG file.
|
140
|
+
svg['viewBox'] = svg['viewbox']
|
141
|
+
svg.remove_attribute('viewbox')
|
142
|
+
first_child = frame.children.first
|
143
|
+
first_child.replace(svg) unless svg == first_child
|
144
|
+
output = svg.to_xhtml
|
145
|
+
svg_filename = File.join(texmath_dir, "#{digest(output)}.svg")
|
146
|
+
File.write(svg_filename, output)
|
147
|
+
# Convert to PNG.
|
148
|
+
png_filename = svg_filename.sub('.svg', '.png')
|
149
|
+
pngs << png_filename
|
150
|
+
unless File.exist?(png_filename)
|
151
|
+
unless options[:silent] || options[:quiet]
|
152
|
+
puts "Creating #{png_filename}"
|
153
|
+
end
|
154
|
+
svg_height = svg['style'].scan(/height: (.*?);/).flatten.first
|
155
|
+
scale_factor = 9 # This scale factor turns out to look good.
|
156
|
+
h = scale_factor * svg_height.to_f
|
157
|
+
cmd = "#{inkscape} -f #{svg_filename} -e #{png_filename} -h #{h}pt"
|
158
|
+
if options[:silent]
|
159
|
+
silence { silence_stream(STDERR) { system cmd } }
|
160
|
+
else
|
161
|
+
silence_stream(STDERR) { system cmd }
|
162
|
+
end
|
163
|
+
end
|
164
|
+
rm svg_filename
|
165
|
+
png = Nokogiri::XML::Node.new('img', source)
|
166
|
+
png['src'] = File.join('images', 'texmath',
|
167
|
+
File.basename(png_filename))
|
168
|
+
png['alt'] = png_filename.sub('.png', '')
|
169
|
+
svg.replace(png)
|
170
|
+
end
|
171
|
+
source.at_css('div#book').children.to_xhtml
|
172
|
+
end
|
173
|
+
|
174
|
+
# Returns the PhantomJS executable (if available).
|
175
|
+
def phantomjs
|
176
|
+
filename = `which phantomjs`.chomp
|
177
|
+
message = "Install PhantomJS (http://phantomjs.org/)"
|
178
|
+
@phantomjs ||= executable(filename, message)
|
179
|
+
end
|
180
|
+
|
181
|
+
# Returns the Inkscape executable (if available).
|
182
|
+
def inkscape
|
183
|
+
filename = '/Applications/Inkscape.app/Contents/Resources/bin/inkscape'
|
184
|
+
message = "Install Inkscape (http://inkscape.org/)"
|
185
|
+
@inkscape ||= executable(filename, message)
|
186
|
+
end
|
187
|
+
|
188
|
+
# Strip attributes that are invalid in EPUB documents.
|
189
|
+
def strip_attributes(doc)
|
190
|
+
attrs = %w[data-tralics-id data-label data-number data-chapter
|
191
|
+
role aria-readonly]
|
192
|
+
doc.tap do
|
193
|
+
attrs.each do |attr|
|
194
|
+
doc.xpath("//@#{attr}").remove
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
# Returns true if a string appears to have LaTeX math.
|
200
|
+
# We detect math via opening math commands: \(, \[, and \begin{equation}
|
201
|
+
# This gives a false positive when math is included in verbatim
|
202
|
+
# environments and nowhere else, but it does little harm (requiring only
|
203
|
+
# an unnecessary call to page.js).
|
204
|
+
def math?(string)
|
205
|
+
!!string.match(/(?:\\\(|\\\[|\\begin{equation})/)
|
206
|
+
end
|
207
|
+
|
208
|
+
def create_style_files
|
209
|
+
html_styles = File.join('html', 'stylesheets')
|
210
|
+
epub_styles = File.join('epub', 'OEBPS', 'styles')
|
211
|
+
|
212
|
+
FileUtils.cp(File.join(html_styles, 'pygments.css'), epub_styles)
|
213
|
+
|
214
|
+
# Copy over the EPUB-specific CSS.
|
215
|
+
template_dir = File.join(File.dirname(__FILE__), '..', 'template')
|
216
|
+
epub_css = File.join(template_dir, epub_styles, 'epub.css')
|
217
|
+
FileUtils.cp(epub_css, epub_styles)
|
218
|
+
|
219
|
+
# For some reason, EPUB books hate the #book ids in the stylesheet
|
220
|
+
# (i.e., such books fail to validate), so remove them.
|
221
|
+
polytexnic_css = File.read(File.join(html_styles, 'softcover.css'))
|
222
|
+
polytexnic_css.gsub!(/\s*#book\s+/, '')
|
223
|
+
File.write(File.join(epub_styles, 'softcover.css'), polytexnic_css)
|
224
|
+
end
|
225
|
+
|
226
|
+
# Copies the image files from the HTML version of the document.
|
227
|
+
# We remove PDF images, which are valid in PDF documents but not in EPUB.
|
228
|
+
def copy_image_files
|
229
|
+
FileUtils.cp_r(File.join('html', 'images'),
|
230
|
+
File.join('epub', 'OEBPS'))
|
231
|
+
File.delete(*Dir['epub/OEBPS/images/**/*.pdf'])
|
232
|
+
end
|
233
|
+
|
234
|
+
# Make the EPUB, which is basically just a zipped HTML file.
|
235
|
+
def make_epub(options={})
|
236
|
+
filename = manifest.filename
|
237
|
+
zip_filename = filename + '.zip'
|
238
|
+
base_file = "zip -X0 #{zip_filename} mimetype"
|
239
|
+
zip = "zip -rDXg9"
|
240
|
+
meta_info = "#{zip} #{zip_filename} META-INF -x \*.DS_Store -x mimetype"
|
241
|
+
main_info = "#{zip} #{zip_filename} OEBPS -x \*.DS_Store \*.gitkeep"
|
242
|
+
rename = "mv #{zip_filename} #{filename}.epub"
|
243
|
+
commands = [base_file, meta_info, main_info, rename]
|
244
|
+
command = commands.join(' && ')
|
245
|
+
Dir.chdir('epub') do
|
246
|
+
if Softcover.test? || options[:quiet] || options[:silent]
|
247
|
+
silence { system(command) }
|
248
|
+
else
|
249
|
+
system(command)
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
# Move the completed EPUB book to the `ebooks` directory.
|
255
|
+
# Note that we handle the case of a preview book as well.
|
256
|
+
def move_epub
|
257
|
+
origin = manifest.filename
|
258
|
+
target = preview? ? origin + '-preview' : origin
|
259
|
+
FileUtils.mv(File.join('epub', "#{origin}.epub"),
|
260
|
+
File.join('ebooks', "#{target}.epub"))
|
261
|
+
end
|
262
|
+
|
263
|
+
# Writes the Table of Contents.
|
264
|
+
# This is required by the EPUB standard.
|
265
|
+
def write_toc
|
266
|
+
File.write('epub/OEBPS/toc.ncx', toc_ncx)
|
267
|
+
end
|
268
|
+
|
269
|
+
# Writes the navigation file.
|
270
|
+
# This is required by the EPUB standard.
|
271
|
+
def write_nav
|
272
|
+
File.write('epub/OEBPS/nav.html', nav_html)
|
273
|
+
end
|
274
|
+
|
275
|
+
def container_xml
|
276
|
+
%(<?xml version="1.0"?>
|
277
|
+
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
|
278
|
+
<rootfiles>
|
279
|
+
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
|
280
|
+
</rootfiles>
|
281
|
+
</container>)
|
282
|
+
end
|
283
|
+
|
284
|
+
# Returns the content configuration file.
|
285
|
+
def content_opf
|
286
|
+
title = manifest.title
|
287
|
+
author = manifest.author
|
288
|
+
copyright = manifest.copyright
|
289
|
+
uuid = manifest.uuid
|
290
|
+
man_ch = chapters.map do |chapter|
|
291
|
+
%(<item id="#{chapter.slug}" href="#{chapter.fragment_name}" media-type="application/xhtml+xml"/>)
|
292
|
+
end
|
293
|
+
toc_ch = chapters.map do |chapter|
|
294
|
+
%(<itemref idref="#{chapter.slug}"/>)
|
295
|
+
end
|
296
|
+
image_files = Dir['epub/OEBPS/images/**/*'].select { |f| File.file?(f) }
|
297
|
+
images = image_files.map do |image|
|
298
|
+
ext = File.extname(image).sub('.', '') # e.g., 'png'
|
299
|
+
# Strip off the leading 'epub/OEBPS'.
|
300
|
+
sep = File::SEPARATOR
|
301
|
+
href = image.split(sep)[2..-1].join(sep)
|
302
|
+
# Define an id based on the filename.
|
303
|
+
# Prefix with 'img-' in case the filname starts with an
|
304
|
+
# invalid character such as a number.
|
305
|
+
label = File.basename(image).gsub('.', '-')
|
306
|
+
id = "img-#{label}"
|
307
|
+
%(<item id="#{id}" href="#{href}" media-type="image/#{ext}"/>)
|
308
|
+
end
|
309
|
+
%(<?xml version="1.0" encoding="UTF-8"?>
|
310
|
+
<package unique-identifier="BookID" version="3.0" xmlns="http://www.idpf.org/2007/opf">
|
311
|
+
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"
|
312
|
+
xmlns:opf="http://www.idpf.org/2007/opf">
|
313
|
+
<dc:title>#{title}</dc:title>
|
314
|
+
<dc:language>en</dc:language>
|
315
|
+
<dc:rights>Copyright (c) #{copyright} #{author}</dc:rights>
|
316
|
+
<dc:creator>#{author}</dc:creator>
|
317
|
+
<dc:publisher>Softcover</dc:publisher>
|
318
|
+
<dc:identifier id="BookID">urn:uuid:#{uuid}</dc:identifier>
|
319
|
+
<meta property="dcterms:modified">#{Time.now.strftime('%Y-%m-%dT%H:%M:%S')}Z</meta>
|
320
|
+
<meta name="cover" content="img-cover-png"/>
|
321
|
+
</metadata>
|
322
|
+
<manifest>
|
323
|
+
<item href="nav.html" id="nav" media-type="application/xhtml+xml" properties="nav"/>
|
324
|
+
<item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
|
325
|
+
<item id="page-template.xpgt" href="styles/page-template.xpgt" media-type="application/vnd.adobe-page-template+xml"/>
|
326
|
+
<item id="pygments.css" href="styles/pygments.css" media-type="text/css"/>
|
327
|
+
<item id="softcover.css" href="styles/softcover.css" media-type="text/css"/>
|
328
|
+
<item id="epub.css" href="styles/epub.css" media-type="text/css"/>
|
329
|
+
<item id="cover" href="cover.html" media-type="application/xhtml+xml"/>
|
330
|
+
#{man_ch.join("\n")}
|
331
|
+
#{images.join("\n")}
|
332
|
+
</manifest>
|
333
|
+
<spine toc="ncx">
|
334
|
+
<itemref idref="cover" linear="no" />
|
335
|
+
#{toc_ch.join("\n")}
|
336
|
+
</spine>
|
337
|
+
</package>
|
338
|
+
)
|
339
|
+
end
|
340
|
+
|
341
|
+
def cover_page
|
342
|
+
%(<?xml version="1.0" encoding="utf-8"?>
|
343
|
+
<!DOCTYPE html>
|
344
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
345
|
+
<head>
|
346
|
+
<title>Cover</title>
|
347
|
+
</head>
|
348
|
+
<body>
|
349
|
+
<div id="cover">
|
350
|
+
<img width="573" height="800" src="images/cover.png" alt="cover image" />
|
351
|
+
</div>
|
352
|
+
</body>
|
353
|
+
</html>
|
354
|
+
)
|
355
|
+
end
|
356
|
+
|
357
|
+
# Returns the Table of Contents for the spine.
|
358
|
+
def toc_ncx
|
359
|
+
title = manifest.title
|
360
|
+
chapter_nav = []
|
361
|
+
offset = preview? ? manifest.preview_chapter_range.first : 0
|
362
|
+
chapters.each_with_index do |chapter, i|
|
363
|
+
n = i + offset
|
364
|
+
chapter_nav << %(<navPoint id="#{chapter.slug}" playOrder="#{n+1}">)
|
365
|
+
chapter_nav << %( <navLabel><text>#{chapter_name(n)}</text></navLabel>)
|
366
|
+
chapter_nav << %( <content src="#{chapter.fragment_name}"/>)
|
367
|
+
chapter_nav << %(</navPoint>)
|
368
|
+
end
|
369
|
+
%(<?xml version="1.0" encoding="UTF-8"?>
|
370
|
+
<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">
|
371
|
+
<head>
|
372
|
+
<meta name="dtb:uid" content="d430b920-e684-11e1-aff1-0800200c9a66"/>
|
373
|
+
<meta name="dtb:depth" content="2"/>
|
374
|
+
<meta name="dtb:totalPageCount" content="0"/>
|
375
|
+
<meta name="dtb:maxPageNumber" content="0"/>
|
376
|
+
</head>
|
377
|
+
<docTitle>
|
378
|
+
<text>#{title}</text>
|
379
|
+
</docTitle>
|
380
|
+
<navMap>
|
381
|
+
#{chapter_nav.join("\n")}
|
382
|
+
</navMap>
|
383
|
+
</ncx>
|
384
|
+
)
|
385
|
+
end
|
386
|
+
|
387
|
+
def chapter_name(n)
|
388
|
+
n == 0 ? "Frontmatter" : "Chapter #{n}"
|
389
|
+
end
|
390
|
+
|
391
|
+
# Returns the nav HTML content.
|
392
|
+
def nav_html
|
393
|
+
title = manifest.title
|
394
|
+
nav_list = manifest.chapters.map do |chapter|
|
395
|
+
%(<li><a href="#{chapter.fragment_name}">#{chapter.title}</a></li>)
|
396
|
+
end
|
397
|
+
%(<?xml version="1.0" encoding="utf-8"?>
|
398
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
|
399
|
+
<head>
|
400
|
+
<meta charset="UTF-8" />
|
401
|
+
<title>#{title}</title>
|
402
|
+
</head>
|
403
|
+
<body>
|
404
|
+
<nav epub:type="toc">
|
405
|
+
<h1>#{title}</h1>
|
406
|
+
<ol>
|
407
|
+
#{nav_list.join("\n")}
|
408
|
+
</ol>
|
409
|
+
</nav>
|
410
|
+
</body>
|
411
|
+
</html>
|
412
|
+
)
|
413
|
+
end
|
414
|
+
|
415
|
+
# Returns the HTML template for a chapter.
|
416
|
+
def chapter_template(title, content)
|
417
|
+
%(<?xml version="1.0" encoding="utf-8"?>
|
418
|
+
<!DOCTYPE html>
|
419
|
+
|
420
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
421
|
+
<head>
|
422
|
+
<title>#{title}</title>
|
423
|
+
<link rel="stylesheet" href="styles/pygments.css" type="text/css" />
|
424
|
+
<link rel="stylesheet" href="styles/softcover.css" type="text/css" />
|
425
|
+
<link rel="stylesheet" href="styles/epub.css" type="text/css" />
|
426
|
+
<link rel="stylesheet" type="application/vnd.adobe-page-template+xml" href="styles/page-template.xpgt" />
|
427
|
+
</head>
|
428
|
+
|
429
|
+
<body>
|
430
|
+
#{content}
|
431
|
+
</body>
|
432
|
+
</html>)
|
433
|
+
end
|
434
|
+
end
|
435
|
+
end
|
436
|
+
end
|