jekyll-theme-hydejack 7.5.2 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (328) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +1 -4
  3. data/README.md +139 -86
  4. data/_includes/body/analytics.html +36 -0
  5. data/_includes/{comments.html → body/comments.html} +0 -0
  6. data/_includes/{footer.html → body/footer.html} +4 -2
  7. data/_includes/body/index.html +22 -0
  8. data/_includes/body/main.html +18 -0
  9. data/_includes/{menu.html → body/menu.html} +1 -0
  10. data/_includes/{nav.html → body/nav.html} +0 -0
  11. data/_includes/body/scripts.html +22 -0
  12. data/_includes/{sidebar.html → body/sidebar.html} +19 -6
  13. data/_includes/{about.html → components/about.html} +1 -1
  14. data/_includes/{author.html → components/author.html} +3 -3
  15. data/_includes/{avatar-tag.html → components/avatar-tag.html} +0 -0
  16. data/_includes/{srcset-img.html → components/hy-img.html} +24 -8
  17. data/_includes/{link.html → components/link.html} +0 -0
  18. data/_includes/{message.html → components/message.html} +0 -0
  19. data/_includes/{pagination.html → components/pagination.html} +2 -2
  20. data/_includes/{post-list-item.html → components/post-list-item.html} +0 -0
  21. data/_includes/{post.html → components/post.html} +21 -10
  22. data/_includes/{related-posts.html → components/related-posts.html} +1 -1
  23. data/_includes/components/social-list-item.html +40 -0
  24. data/_includes/components/social.html +23 -0
  25. data/_includes/{tag-list.html → components/tag-list.html} +0 -0
  26. data/_includes/head/index.html +9 -0
  27. data/_includes/head/links.html +7 -5
  28. data/_includes/head/meta.html +3 -3
  29. data/_includes/{page-style.html → head/page-style.html} +1 -1
  30. data/_includes/head/scripts.html +10 -39
  31. data/_includes/head/styles.html +42 -15
  32. data/_includes/header.txt +1 -1
  33. data/_includes/my-body.html +42 -0
  34. data/_includes/my-scripts.html +55 -0
  35. data/_includes/scripts/load-js.js +60 -0
  36. data/_includes/scripts/load-js.min.js +1 -0
  37. data/_includes/{smart-url → smart-url.txt} +0 -0
  38. data/_includes/styles/inline.scss +15 -19
  39. data/_includes/styles/style.scss +20 -17
  40. data/_includes/templates/animation.html +1 -1
  41. data/_includes/templates/back.html +1 -1
  42. data/_includes/templates/cookies-banner.html +1 -1
  43. data/_includes/templates/error.html +1 -1
  44. data/_includes/{templates.html → templates/index.html} +1 -2
  45. data/_includes/templates/loading.html +1 -1
  46. data/_includes/templates/permalink.html +1 -1
  47. data/_layouts/about.html +29 -30
  48. data/_layouts/base.html +20 -62
  49. data/_layouts/blog.html +20 -22
  50. data/_layouts/compress.html +1 -1
  51. data/_layouts/default.html +13 -18
  52. data/_layouts/home.html +11 -16
  53. data/_layouts/list.html +13 -18
  54. data/_layouts/not-found.html +11 -16
  55. data/_layouts/page.html +12 -17
  56. data/_layouts/post.html +15 -20
  57. data/_layouts/redirect.html +11 -16
  58. data/_sass/_mixins.scss +10 -15
  59. data/_sass/_spinner.scss +10 -15
  60. data/_sass/_variables.scss +35 -19
  61. data/_sass/hydejack/__inline/_avatar.scss +33 -32
  62. data/_sass/hydejack/__inline/_base.scss +30 -68
  63. data/_sass/hydejack/__inline/_break-layout.scss +19 -26
  64. data/_sass/hydejack/__inline/_content.scss +29 -34
  65. data/_sass/hydejack/__inline/_footer.scss +19 -26
  66. data/_sass/hydejack/__inline/_images.scss +38 -0
  67. data/_sass/hydejack/__inline/_katex.scss +19 -26
  68. data/_sass/hydejack/__inline/_links.scss +45 -0
  69. data/_sass/hydejack/__inline/_mark-external.scss +19 -26
  70. data/_sass/hydejack/__inline/_menu.scss +28 -35
  71. data/_sass/hydejack/__inline/_sidebar.scss +76 -76
  72. data/_sass/hydejack/__inline/_social.scss +25 -31
  73. data/_sass/hydejack/__inline/_utilities.scss +42 -0
  74. data/_sass/hydejack/__link/_avatar.scss +29 -28
  75. data/_sass/hydejack/__link/_base.scss +19 -83
  76. data/_sass/hydejack/__link/_break-layout.scss +35 -34
  77. data/_sass/hydejack/__link/_content.scss +19 -26
  78. data/_sass/hydejack/__link/_footer.scss +19 -26
  79. data/_sass/hydejack/__link/_images.scss +84 -0
  80. data/_sass/hydejack/__link/_katex.scss +19 -26
  81. data/_sass/hydejack/__link/_links.scss +53 -0
  82. data/_sass/hydejack/__link/_mark-external.scss +19 -26
  83. data/_sass/hydejack/__link/_menu.scss +29 -50
  84. data/_sass/hydejack/__link/_sidebar.scss +71 -118
  85. data/_sass/hydejack/__link/_social.scss +19 -26
  86. data/_sass/hydejack/__link/_utilities.scss +51 -0
  87. data/_sass/hydejack/_avatar.pre.scss +26 -20
  88. data/_sass/hydejack/_base.pre.scss +22 -88
  89. data/_sass/hydejack/_break-layout.pre.scss +26 -23
  90. data/_sass/hydejack/_content.pre.scss +20 -23
  91. data/_sass/hydejack/_footer.pre.scss +10 -15
  92. data/_sass/hydejack/_images.pre.scss +77 -0
  93. data/_sass/hydejack/_katex.pre.scss +10 -15
  94. data/_sass/hydejack/_links.pre.scss +47 -0
  95. data/_sass/hydejack/_mark-external.pre.scss +10 -15
  96. data/_sass/hydejack/_menu.pre.scss +31 -38
  97. data/_sass/hydejack/_sidebar.pre.scss +98 -116
  98. data/_sass/hydejack/_social.pre.scss +16 -20
  99. data/_sass/hydejack/_utilities.pre.scss +43 -0
  100. data/_sass/my-variables.scss +0 -8
  101. data/_sass/pooleparty/__inline/_base.scss +19 -28
  102. data/_sass/pooleparty/__inline/_code.scss +19 -26
  103. data/_sass/pooleparty/__inline/_footer.scss +19 -26
  104. data/_sass/pooleparty/__inline/_footnotes.scss +19 -26
  105. data/_sass/pooleparty/__inline/_message.scss +19 -26
  106. data/_sass/pooleparty/__inline/_pagination.scss +19 -26
  107. data/_sass/pooleparty/__inline/_posts.scss +19 -26
  108. data/_sass/pooleparty/__inline/_read-more.scss +25 -0
  109. data/_sass/pooleparty/__inline/_related.scss +19 -26
  110. data/_sass/pooleparty/__inline/_table.scss +19 -26
  111. data/_sass/pooleparty/__inline/_type.scss +25 -39
  112. data/_sass/pooleparty/__link/_base.scss +19 -26
  113. data/_sass/pooleparty/__link/_code.scss +19 -26
  114. data/_sass/pooleparty/__link/_footer.scss +19 -26
  115. data/_sass/pooleparty/__link/_footnotes.scss +30 -26
  116. data/_sass/pooleparty/__link/_message.scss +19 -26
  117. data/_sass/pooleparty/__link/_pagination.scss +19 -26
  118. data/_sass/pooleparty/__link/_posts.scss +20 -27
  119. data/_sass/pooleparty/__link/_read-more.scss +45 -0
  120. data/_sass/pooleparty/__link/_related.scss +19 -26
  121. data/_sass/pooleparty/__link/_table.scss +19 -26
  122. data/_sass/pooleparty/__link/_type.scss +27 -48
  123. data/_sass/pooleparty/_base.pre.scss +10 -17
  124. data/_sass/pooleparty/_code.pre.scss +10 -15
  125. data/_sass/pooleparty/_footer.pre.scss +10 -15
  126. data/_sass/pooleparty/_footnotes.pre.scss +21 -15
  127. data/_sass/pooleparty/_message.pre.scss +10 -15
  128. data/_sass/pooleparty/_pagination.pre.scss +10 -15
  129. data/_sass/pooleparty/_posts.pre.scss +11 -16
  130. data/_sass/pooleparty/_read-more.pre.scss +36 -0
  131. data/_sass/pooleparty/_related.pre.scss +10 -15
  132. data/_sass/pooleparty/_table.pre.scss +10 -15
  133. data/_sass/pooleparty/_type.pre.scss +24 -50
  134. data/assets/Resume.pdf +0 -0
  135. data/assets/bower.json +3 -3
  136. data/assets/bower_components/fontfaceobserver/.bower.json +33 -0
  137. data/assets/bower_components/fontfaceobserver/.gitignore +2 -0
  138. data/assets/bower_components/fontfaceobserver/.travis.yml +16 -0
  139. data/assets/bower_components/fontfaceobserver/Gruntfile.js +101 -0
  140. data/assets/bower_components/fontfaceobserver/LICENSE +23 -0
  141. data/assets/bower_components/fontfaceobserver/bower.json +22 -0
  142. data/assets/bower_components/fontfaceobserver/exports.js +8 -0
  143. data/assets/bower_components/fontfaceobserver/externs-commonjs.js +10 -0
  144. data/assets/bower_components/fontfaceobserver/externs.js +15 -0
  145. data/assets/bower_components/fontfaceobserver/fontfaceobserver.js +12 -0
  146. data/assets/bower_components/fontfaceobserver/fontfaceobserver.standalone.js +8 -0
  147. data/assets/bower_components/fontfaceobserver/package.json +57 -0
  148. data/assets/bower_components/fontfaceobserver/src/descriptors.js +10 -0
  149. data/assets/bower_components/fontfaceobserver/src/observer.js +349 -0
  150. data/assets/bower_components/fontfaceobserver/src/ruler.js +130 -0
  151. data/assets/bower_components/fontfaceobserver/test/assets/index.html +8 -0
  152. data/assets/bower_components/fontfaceobserver/test/assets/late.css +1 -0
  153. data/assets/bower_components/fontfaceobserver/test/assets/sourcesanspro-regular.eot +0 -0
  154. data/assets/bower_components/fontfaceobserver/test/assets/sourcesanspro-regular.ttf +0 -0
  155. data/assets/bower_components/fontfaceobserver/test/assets/sourcesanspro-regular.woff +0 -0
  156. data/assets/bower_components/fontfaceobserver/test/assets/subset.eot +0 -0
  157. data/assets/bower_components/fontfaceobserver/test/assets/subset.ttf +0 -0
  158. data/assets/bower_components/fontfaceobserver/test/assets/subset.woff +0 -0
  159. data/assets/bower_components/fontfaceobserver/test/deps.js +5 -0
  160. data/assets/bower_components/fontfaceobserver/test/index.html +97 -0
  161. data/assets/bower_components/fontfaceobserver/test/observer-test.js +465 -0
  162. data/assets/bower_components/fontfaceobserver/test/ruler-test.js +112 -0
  163. data/assets/bower_components/fontfaceobserver/vendor/google/base.js +1489 -0
  164. data/assets/bower_components/katex/.bower.json +7 -6
  165. data/assets/bower_components/katex/dist/contrib/auto-render.js +790 -0
  166. data/assets/bower_components/katex/dist/contrib/auto-render.min.js +1 -1
  167. data/assets/bower_components/katex/dist/contrib/copy-tex.css +12 -0
  168. data/assets/bower_components/katex/dist/contrib/copy-tex.js +174 -0
  169. data/assets/bower_components/katex/dist/contrib/copy-tex.min.css +1 -0
  170. data/assets/bower_components/katex/dist/contrib/copy-tex.min.js +1 -0
  171. data/assets/bower_components/katex/dist/contrib/mathtex-script-type.js +113 -0
  172. data/assets/bower_components/katex/dist/contrib/mathtex-script-type.min.js +1 -0
  173. data/assets/bower_components/katex/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  174. data/assets/bower_components/katex/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  175. data/assets/bower_components/katex/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  176. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  177. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  178. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  179. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  180. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  181. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  182. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  183. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  184. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  185. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  186. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  187. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  188. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  189. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  190. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  191. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  192. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  193. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  194. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  195. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  196. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  197. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  198. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  199. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  200. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  201. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  202. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  203. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  204. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  205. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  206. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  207. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  208. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  209. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  210. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  211. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  212. data/assets/bower_components/katex/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  213. data/assets/bower_components/katex/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  214. data/assets/bower_components/katex/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  215. data/assets/bower_components/katex/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  216. data/assets/bower_components/katex/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  217. data/assets/bower_components/katex/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  218. data/assets/bower_components/katex/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  219. data/assets/bower_components/katex/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  220. data/assets/bower_components/katex/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  221. data/assets/bower_components/katex/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  222. data/assets/bower_components/katex/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  223. data/assets/bower_components/katex/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  224. data/assets/bower_components/katex/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  225. data/assets/bower_components/katex/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  226. data/assets/bower_components/katex/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  227. data/assets/bower_components/katex/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  228. data/assets/bower_components/katex/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  229. data/assets/bower_components/katex/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  230. data/assets/bower_components/katex/dist/katex.css +129 -209
  231. data/assets/bower_components/katex/dist/katex.js +14381 -9023
  232. data/assets/bower_components/katex/dist/katex.min.css +1 -1
  233. data/assets/bower_components/katex/dist/katex.min.js +1 -6
  234. data/assets/bower_components/katex/flow-typed/match-at.js +3 -0
  235. data/assets/bower_components/katex/flow-typed/object-assign.js +6 -0
  236. data/assets/bower_components/katex/package-lock.json +13848 -0
  237. data/assets/css/hydejack-8.0.0.css +3 -0
  238. data/assets/img/default-1.jpg +0 -0
  239. data/assets/img/example-content-ii.jpg +0 -0
  240. data/assets/img/example-content-iii.jpg +0 -0
  241. data/assets/img/hydejack-8.jpg +0 -0
  242. data/assets/img/hydejack-8@0,25x.jpg +0 -0
  243. data/assets/img/hydejack-8@0,5x.jpg +0 -0
  244. data/assets/img/projects/hy-drawer.svg +12 -0
  245. data/assets/img/projects/hy-img.svg +17 -0
  246. data/assets/img/projects/hy-push-state.svg +13 -0
  247. data/assets/img/resume.png +0 -0
  248. data/assets/img/sidebar-bg.jpg +0 -0
  249. data/assets/img/swipe.svg +22 -0
  250. data/assets/img/w3m.png +0 -0
  251. data/assets/js/hydejack-8.0.0.js +46 -0
  252. data/assets/js/sw.js +318 -0
  253. data/assets/manifest.json +4 -3
  254. data/assets/version.json +1 -1
  255. data/licenses/Apache-2.0.md +1 -4
  256. data/licenses/GPL-3.0.md +1 -4
  257. data/licenses/MIT.md +1 -4
  258. data/licenses/PRO.md +2 -6
  259. data/licenses/README.md +10 -0
  260. data/licenses/W3C.md +31 -0
  261. metadata +107 -94
  262. data/_includes/blog.html +0 -5
  263. data/_includes/body.html +0 -25
  264. data/_includes/head.html +0 -5
  265. data/_includes/scripts/load-js-deferred.js +0 -68
  266. data/_includes/scripts/load-js-deferred.min.js +0 -1
  267. data/_includes/social-list-item.html +0 -34
  268. data/_includes/social.html +0 -20
  269. data/assets/bower_components/katex/dist/fonts/KaTeX_AMS-Regular.eot +0 -0
  270. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Bold.eot +0 -0
  271. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Regular.eot +0 -0
  272. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Bold.eot +0 -0
  273. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Regular.eot +0 -0
  274. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Bold.eot +0 -0
  275. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Italic.eot +0 -0
  276. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Regular.eot +0 -0
  277. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-BoldItalic.eot +0 -0
  278. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  279. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  280. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  281. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Italic.eot +0 -0
  282. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Regular.eot +0 -0
  283. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Regular.ttf +0 -0
  284. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Regular.woff +0 -0
  285. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Regular.woff2 +0 -0
  286. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Bold.eot +0 -0
  287. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Italic.eot +0 -0
  288. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Regular.eot +0 -0
  289. data/assets/bower_components/katex/dist/fonts/KaTeX_Script-Regular.eot +0 -0
  290. data/assets/bower_components/katex/dist/fonts/KaTeX_Size1-Regular.eot +0 -0
  291. data/assets/bower_components/katex/dist/fonts/KaTeX_Size2-Regular.eot +0 -0
  292. data/assets/bower_components/katex/dist/fonts/KaTeX_Size3-Regular.eot +0 -0
  293. data/assets/bower_components/katex/dist/fonts/KaTeX_Size4-Regular.eot +0 -0
  294. data/assets/bower_components/katex/dist/fonts/KaTeX_Typewriter-Regular.eot +0 -0
  295. data/assets/bower_components/webfontloader/.bower.json +0 -38
  296. data/assets/bower_components/webfontloader/CHANGELOG +0 -419
  297. data/assets/bower_components/webfontloader/Gemfile +0 -3
  298. data/assets/bower_components/webfontloader/LICENSE +0 -176
  299. data/assets/bower_components/webfontloader/Rakefile +0 -269
  300. data/assets/bower_components/webfontloader/bower.json +0 -23
  301. data/assets/bower_components/webfontloader/browsers.json +0 -133
  302. data/assets/bower_components/webfontloader/externs.js +0 -19
  303. data/assets/bower_components/webfontloader/package.json +0 -37
  304. data/assets/bower_components/webfontloader/src/closure.js +0 -2
  305. data/assets/bower_components/webfontloader/src/core/cssclassname.js +0 -46
  306. data/assets/bower_components/webfontloader/src/core/domhelper.js +0 -405
  307. data/assets/bower_components/webfontloader/src/core/eventdispatcher.js +0 -195
  308. data/assets/bower_components/webfontloader/src/core/font.js +0 -140
  309. data/assets/bower_components/webfontloader/src/core/fontmodule.js +0 -16
  310. data/assets/bower_components/webfontloader/src/core/fontmoduleloader.js +0 -47
  311. data/assets/bower_components/webfontloader/src/core/fontruler.js +0 -60
  312. data/assets/bower_components/webfontloader/src/core/fontwatcher.js +0 -171
  313. data/assets/bower_components/webfontloader/src/core/fontwatchrunner.js +0 -249
  314. data/assets/bower_components/webfontloader/src/core/initialize.js +0 -97
  315. data/assets/bower_components/webfontloader/src/core/nativefontwatchrunner.js +0 -69
  316. data/assets/bower_components/webfontloader/src/core/stylesheetwaiter.js +0 -48
  317. data/assets/bower_components/webfontloader/src/core/webfont.js +0 -97
  318. data/assets/bower_components/webfontloader/src/modules.yml +0 -34
  319. data/assets/bower_components/webfontloader/src/modules/custom.js +0 -63
  320. data/assets/bower_components/webfontloader/src/modules/fontdeck.js +0 -66
  321. data/assets/bower_components/webfontloader/src/modules/google/fontapiparser.js +0 -181
  322. data/assets/bower_components/webfontloader/src/modules/google/fontapiurlbuilder.js +0 -77
  323. data/assets/bower_components/webfontloader/src/modules/google/googlefontapi.js +0 -54
  324. data/assets/bower_components/webfontloader/src/modules/monotype.js +0 -110
  325. data/assets/bower_components/webfontloader/src/modules/typekit.js +0 -73
  326. data/assets/bower_components/webfontloader/webfontloader.gemspec +0 -191
  327. data/assets/bower_components/webfontloader/webfontloader.js +0 -17
  328. data/assets/js/hydejack-7.5.2.js +0 -249
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "hydejack-assets",
3
- "homepage": "https://qwtel.com/hydejack/",
3
+ "homepage": "https://hydejack.com/",
4
4
  "author": "Florian Klampfer <mail@qwtel.com> (https://qwtel.com/)",
5
5
  "license": "MIT",
6
6
  "private": true,
7
7
  "dependencies": {
8
- "webfontloader": "^1.6.28",
9
8
  "html5shiv": "^3.7.3",
10
- "katex": "^0.8.3"
9
+ "katex": "^0.9.0",
10
+ "fontfaceobserver": "^2.0.13"
11
11
  }
12
12
  }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "fontfaceobserver",
3
+ "description": "Fast and simple web font loading.",
4
+ "main": "fontfaceobserver.standalone.js",
5
+ "authors": [
6
+ "Bram Stein <b.l.stein@gmail.com> (http://www.bramstein.com/)"
7
+ ],
8
+ "license": "BSD-3-Clause",
9
+ "keywords": [
10
+ "fontloader",
11
+ "fonts",
12
+ "font",
13
+ "font-face",
14
+ "web",
15
+ "font",
16
+ "font",
17
+ "load",
18
+ "font",
19
+ "events"
20
+ ],
21
+ "homepage": "https://github.com/bramstein/fontfaceobserver",
22
+ "version": "2.0.13",
23
+ "_release": "2.0.13",
24
+ "_resolution": {
25
+ "type": "version",
26
+ "tag": "v2.0.13",
27
+ "commit": "ed2bd9d70400f4ecc2c832543a30ef58589801b5"
28
+ },
29
+ "_source": "https://github.com/bramstein/fontfaceobserver.git",
30
+ "_target": "^2.0.13",
31
+ "_originalSource": "fontfaceobserver",
32
+ "_direct": true
33
+ }
@@ -0,0 +1,2 @@
1
+ build
2
+ node_modules
@@ -0,0 +1,16 @@
1
+ sudo: false
2
+
3
+ language: node_js
4
+
5
+ before_install:
6
+ - npm install -g grunt-cli
7
+
8
+ node_js:
9
+ - "4"
10
+
11
+ matrix:
12
+ fast_finish: true
13
+
14
+ cache:
15
+ directories:
16
+ - node_modules
@@ -0,0 +1,101 @@
1
+ var extend = require('extend');
2
+
3
+ module.exports = function (grunt) {
4
+ require('google-closure-compiler').grunt(grunt);
5
+
6
+ var compilerOptions = {
7
+ compilation_level: 'ADVANCED_OPTIMIZATIONS',
8
+ warning_level: 'VERBOSE',
9
+ summary_detail_level: 3,
10
+ language_in: 'ECMASCRIPT5_STRICT',
11
+ output_wrapper: '(function(){%output%}());',
12
+ use_types_for_optimization: true,
13
+ externs: ['externs-commonjs.js']
14
+ };
15
+
16
+ var src = [
17
+ 'node_modules/closure-dom/src/dom.js',
18
+ 'src/descriptors.js',
19
+ 'src/ruler.js',
20
+ 'src/observer.js',
21
+ 'exports.js'
22
+ ];
23
+
24
+ grunt.initConfig({
25
+ pkg: grunt.file.readJSON('package.json'),
26
+ clean: {
27
+ options: {
28
+ force: true
29
+ },
30
+ build: ['build']
31
+ },
32
+ exec: {
33
+ test: 'phantomjs node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html',
34
+ deps: 'calcdeps -i src -i exports.js -p src -p ./vendor/google/base.js -p node_modules/closure-dom/src/dom.js -o deps > test/deps.js'
35
+ },
36
+ jshint: {
37
+ all: ['src/**/*.js'],
38
+ options: {
39
+ // ... better written as dot notation
40
+ '-W069': true,
41
+
42
+ // type definitions
43
+ '-W030': true,
44
+
45
+ // Don't make functions within loops
46
+ '-W083': true,
47
+
48
+ // Wrap the /regexp/ literal in parens to disambiguate the slash operator
49
+ '-W092': true
50
+ }
51
+ },
52
+ 'closure-compiler': {
53
+ dist: {
54
+ files: {
55
+ 'fontfaceobserver.js': src
56
+ },
57
+ options: compilerOptions
58
+ },
59
+ compile: {
60
+ files: {
61
+ 'build/fontfaceobserver.js': src
62
+ },
63
+ options: compilerOptions
64
+ },
65
+ debug: {
66
+ files: {
67
+ 'build/fontfaceobserver.debug.js': src
68
+ },
69
+ options: extend({}, compilerOptions, {
70
+ debug: true,
71
+ formatting: ['PRETTY_PRINT', 'PRINT_INPUT_DELIMITER']
72
+ })
73
+ }
74
+ },
75
+ concat: {
76
+ options: {
77
+ banner: '/* Font Face Observer v<%= pkg.version %> - © Bram Stein. License: BSD-3-Clause */'
78
+ },
79
+ dist_promises: {
80
+ src: ['node_modules/promis/promise.js', 'build/fontfaceobserver.js'],
81
+ dest: 'fontfaceobserver.js'
82
+ },
83
+ dist: {
84
+ src: ['build/fontfaceobserver.js'],
85
+ dest: 'fontfaceobserver.standalone.js'
86
+ }
87
+ }
88
+ });
89
+
90
+ grunt.loadNpmTasks('grunt-closurecompiler');
91
+ grunt.loadNpmTasks('grunt-contrib-clean');
92
+ grunt.loadNpmTasks('grunt-contrib-jshint');
93
+ grunt.loadNpmTasks('grunt-contrib-concat');
94
+ grunt.loadNpmTasks('grunt-exec');
95
+
96
+ grunt.registerTask('compile', ['closure-compiler:compile']);
97
+ grunt.registerTask('debug', ['closure-compiler:debug']);
98
+ grunt.registerTask('default', ['compile']);
99
+ grunt.registerTask('test', ['jshint', 'exec:test']);
100
+ grunt.registerTask('dist', ['clean', 'closure-compiler:compile', 'concat:dist', 'concat:dist_promises']);
101
+ };
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2014 - Bram Stein
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions
6
+ are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright
9
+ notice, this list of conditions and the following disclaimer.
10
+ 2. Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
15
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
17
+ EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
18
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
22
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
23
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "fontfaceobserver",
3
+ "description": "Fast and simple web font loading.",
4
+ "main": "fontfaceobserver.standalone.js",
5
+ "authors": [
6
+ "Bram Stein <b.l.stein@gmail.com> (http://www.bramstein.com/)"
7
+ ],
8
+ "license": "BSD-3-Clause",
9
+ "keywords": [
10
+ "fontloader",
11
+ "fonts",
12
+ "font",
13
+ "font-face",
14
+ "web",
15
+ "font",
16
+ "font",
17
+ "load",
18
+ "font",
19
+ "events"
20
+ ],
21
+ "homepage": "https://github.com/bramstein/fontfaceobserver"
22
+ }
@@ -0,0 +1,8 @@
1
+ goog.require('fontface.Observer');
2
+
3
+ if (typeof module === 'object') {
4
+ module.exports = fontface.Observer;
5
+ } else {
6
+ window['FontFaceObserver'] = fontface.Observer;
7
+ window['FontFaceObserver']['prototype']['load'] = fontface.Observer.prototype.load;
8
+ }
@@ -0,0 +1,10 @@
1
+
2
+ /**
3
+ * @type {Object}
4
+ */
5
+ var module = {};
6
+
7
+ /**
8
+ * @type {Object}
9
+ */
10
+ module.exports = {};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @constructor
3
+ *
4
+ * @param {string} family
5
+ * @param {Object} descriptors
6
+ */
7
+ var FontFaceObserver = function (family, descriptors) {};
8
+
9
+ /**
10
+ * @param {string=} opt_text
11
+ * @param {number=} opt_timeout
12
+ *
13
+ * @return {Promise.<FontFaceObserver>}
14
+ */
15
+ FontFaceObserver.prototype.load = function (opt_text, opt_timeout) {};
@@ -0,0 +1,12 @@
1
+ /* Font Face Observer v2.0.13 - © Bram Stein. License: BSD-3-Clause */(function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}}
2
+ function r(a,b){if(a.a==p){if(b==a)throw new TypeError;a.a=1;a.b=b;v(a)}}function v(a){l(function(){if(a.a!=p)for(;a.f.length;){var b=a.f.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0==a.a?"function"==typeof c?e(c.call(void 0,a.b)):e(a.b):1==a.a&&("function"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(h){b(h)}}})}n.prototype.g=function(a){return this.c(void 0,a)};n.prototype.c=function(a,b){var c=this;return new n(function(d,e){c.f.push([a,b,d,e]);v(c)})};
3
+ function w(a){return new n(function(b,c){function d(c){return function(d){h[c]=d;e+=1;e==a.length&&b(h)}}var e=0,h=[];0==a.length&&b(h);for(var k=0;k<a.length;k+=1)u(a[k]).c(d(k),c)})}function x(a){return new n(function(b,c){for(var d=0;d<a.length;d+=1)u(a[d]).c(b,c)})};window.Promise||(window.Promise=n,window.Promise.resolve=u,window.Promise.reject=t,window.Promise.race=x,window.Promise.all=w,window.Promise.prototype.then=n.prototype.c,window.Promise.prototype["catch"]=n.prototype.g);}());
4
+
5
+ (function(){function l(a,b){document.addEventListener?a.addEventListener("scroll",b,!1):a.attachEvent("scroll",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener("DOMContentLoaded",function c(){document.removeEventListener("DOMContentLoaded",c);a()}):document.attachEvent("onreadystatechange",function k(){if("interactive"==document.readyState||"complete"==document.readyState)document.detachEvent("onreadystatechange",k),a()})};function r(a){this.a=document.createElement("div");this.a.setAttribute("aria-hidden","true");this.a.appendChild(document.createTextNode(a));this.b=document.createElement("span");this.c=document.createElement("span");this.h=document.createElement("span");this.f=document.createElement("span");this.g=-1;this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";
6
+ this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)}
7
+ function t(a,b){a.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+b+";"}function y(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+"px";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function z(a,b){function c(){var a=k;y(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);y(a)};function A(a,b){var c=b||{};this.family=a;this.style=c.style||"normal";this.weight=c.weight||"normal";this.stretch=c.stretch||"normal"}var B=null,C=null,E=null,F=null;function G(){if(null===C)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);C=!!a&&603>parseInt(a[1],10)}else C=!1;return C}function J(){null===F&&(F=!!document.fonts);return F}
8
+ function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")}
9
+ A.prototype.load=function(a,b){var c=this,k=a||"BESbswy",q=0,D=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=D?b():document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},function(){b()})}e()}),N=new Promise(function(a,c){q=setTimeout(c,D)});Promise.race([N,M]).then(function(){clearTimeout(q);a(c)},function(){b(c)})}else m(function(){function u(){var b;if(b=-1!=
10
+ f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===B&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),B=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=B&&(f==v&&g==v&&h==v||f==w&&g==w&&h==w||f==x&&g==x&&h==x)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(q),a(c))}function I(){if((new Date).getTime()-H>=D)d.parentNode&&d.parentNode.removeChild(d),b(c);else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth,
11
+ g=n.a.offsetWidth,h=p.a.offsetWidth,u();q=setTimeout(I,50)}}var e=new r(k),n=new r(k),p=new r(k),f=-1,g=-1,h=-1,v=-1,w=-1,x=-1,d=document.createElement("div");d.dir="ltr";t(e,L(c,"sans-serif"));t(n,L(c,"serif"));t(p,L(c,"monospace"));d.appendChild(e.a);d.appendChild(n.a);d.appendChild(p.a);document.body.appendChild(d);v=e.a.offsetWidth;w=n.a.offsetWidth;x=p.a.offsetWidth;I();z(e,function(a){f=a;u()});t(e,L(c,'"'+c.family+'",sans-serif'));z(n,function(a){g=a;u()});t(n,L(c,'"'+c.family+'",serif'));
12
+ z(p,function(a){h=a;u()});t(p,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=A:(window.FontFaceObserver=A,window.FontFaceObserver.prototype.load=A.prototype.load);}());
@@ -0,0 +1,8 @@
1
+ /* Font Face Observer v2.0.13 - © Bram Stein. License: BSD-3-Clause */(function(){function l(a,b){document.addEventListener?a.addEventListener("scroll",b,!1):a.attachEvent("scroll",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener("DOMContentLoaded",function c(){document.removeEventListener("DOMContentLoaded",c);a()}):document.attachEvent("onreadystatechange",function k(){if("interactive"==document.readyState||"complete"==document.readyState)document.detachEvent("onreadystatechange",k),a()})};function r(a){this.a=document.createElement("div");this.a.setAttribute("aria-hidden","true");this.a.appendChild(document.createTextNode(a));this.b=document.createElement("span");this.c=document.createElement("span");this.h=document.createElement("span");this.f=document.createElement("span");this.g=-1;this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";
2
+ this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)}
3
+ function t(a,b){a.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+b+";"}function y(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+"px";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function z(a,b){function c(){var a=k;y(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);y(a)};function A(a,b){var c=b||{};this.family=a;this.style=c.style||"normal";this.weight=c.weight||"normal";this.stretch=c.stretch||"normal"}var B=null,C=null,E=null,F=null;function G(){if(null===C)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);C=!!a&&603>parseInt(a[1],10)}else C=!1;return C}function J(){null===F&&(F=!!document.fonts);return F}
4
+ function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")}
5
+ A.prototype.load=function(a,b){var c=this,k=a||"BESbswy",q=0,D=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=D?b():document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},function(){b()})}e()}),N=new Promise(function(a,c){q=setTimeout(c,D)});Promise.race([N,M]).then(function(){clearTimeout(q);a(c)},function(){b(c)})}else m(function(){function u(){var b;if(b=-1!=
6
+ f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===B&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),B=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=B&&(f==v&&g==v&&h==v||f==w&&g==w&&h==w||f==x&&g==x&&h==x)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(q),a(c))}function I(){if((new Date).getTime()-H>=D)d.parentNode&&d.parentNode.removeChild(d),b(c);else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth,
7
+ g=n.a.offsetWidth,h=p.a.offsetWidth,u();q=setTimeout(I,50)}}var e=new r(k),n=new r(k),p=new r(k),f=-1,g=-1,h=-1,v=-1,w=-1,x=-1,d=document.createElement("div");d.dir="ltr";t(e,L(c,"sans-serif"));t(n,L(c,"serif"));t(p,L(c,"monospace"));d.appendChild(e.a);d.appendChild(n.a);d.appendChild(p.a);document.body.appendChild(d);v=e.a.offsetWidth;w=n.a.offsetWidth;x=p.a.offsetWidth;I();z(e,function(a){f=a;u()});t(e,L(c,'"'+c.family+'",sans-serif'));z(n,function(a){g=a;u()});t(n,L(c,'"'+c.family+'",serif'));
8
+ z(p,function(a){h=a;u()});t(p,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=A:(window.FontFaceObserver=A,window.FontFaceObserver.prototype.load=A.prototype.load);}());
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "fontfaceobserver",
3
+ "version": "2.0.13",
4
+ "description": "Detect if web fonts are available",
5
+ "directories": {
6
+ "test": "test"
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/bramstein/fontfaceobserver.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/bramstein/fontfaceobserver/issues"
14
+ },
15
+ "homepage": "https://fontfaceobserver.com/",
16
+ "main": "fontfaceobserver.standalone.js",
17
+ "keywords": [
18
+ "fontloader",
19
+ "fonts",
20
+ "font",
21
+ "font-face",
22
+ "web font",
23
+ "font load",
24
+ "font events"
25
+ ],
26
+ "files": [
27
+ "fontfaceobserver.js",
28
+ "fontfaceobserver.standalone.js",
29
+ "src/*.js",
30
+ "externs.js"
31
+ ],
32
+ "author": "Bram Stein <b.l.stein@gmail.com> (http://www.bramstein.com/)",
33
+ "license": "BSD-3-Clause",
34
+ "dependencies": {},
35
+ "devDependencies": {
36
+ "closure-dom": "=0.2.6",
37
+ "extend": "^3.0.0",
38
+ "google-closure-compiler": "=20161024.0.0",
39
+ "grunt": "^0.4.5",
40
+ "grunt-contrib-clean": "^1.0.0",
41
+ "grunt-contrib-concat": "^1.0.1",
42
+ "grunt-contrib-jshint": "^1.0.0",
43
+ "grunt-exec": "~1.0.0",
44
+ "mocha": "^2.5.3",
45
+ "mocha-phantomjs-core": "^2.0.0",
46
+ "phantomjs-prebuilt": "^2.1.7",
47
+ "promis": "=1.1.4",
48
+ "sinon": "^1.17.4",
49
+ "unexpected": "^10.14.2"
50
+ },
51
+ "scripts": {
52
+ "preversion": "npm test",
53
+ "version": "grunt dist && git add fontfaceobserver.js && git add fontfaceobserver.standalone.js",
54
+ "postversion": "git push && git push --tags && rm -rf build && npm publish",
55
+ "test": "grunt test"
56
+ }
57
+ }
@@ -0,0 +1,10 @@
1
+ goog.provide('fontface.Descriptors');
2
+
3
+ /**
4
+ * @typedef {{
5
+ * style: (string|undefined),
6
+ * weight: (string|undefined),
7
+ * stretch: (string|undefined)
8
+ * }}
9
+ */
10
+ fontface.Descriptors;
@@ -0,0 +1,349 @@
1
+ goog.provide('fontface.Observer');
2
+
3
+ goog.require('fontface.Ruler');
4
+ goog.require('dom');
5
+
6
+ goog.scope(function () {
7
+ var Ruler = fontface.Ruler;
8
+
9
+ /**
10
+ * @constructor
11
+ *
12
+ * @param {string} family
13
+ * @param {fontface.Descriptors=} opt_descriptors
14
+ */
15
+ fontface.Observer = function (family, opt_descriptors) {
16
+ var descriptors = opt_descriptors || {};
17
+
18
+ /**
19
+ * @type {string}
20
+ */
21
+ this['family'] = family;
22
+
23
+ /**
24
+ * @type {string}
25
+ */
26
+ this['style'] = descriptors.style || 'normal';
27
+
28
+ /**
29
+ * @type {string}
30
+ */
31
+ this['weight'] = descriptors.weight || 'normal';
32
+
33
+ /**
34
+ * @type {string}
35
+ */
36
+ this['stretch'] = descriptors.stretch || 'normal';
37
+ };
38
+
39
+ var Observer = fontface.Observer;
40
+
41
+ /**
42
+ * @type {null|boolean}
43
+ */
44
+ Observer.HAS_WEBKIT_FALLBACK_BUG = null;
45
+
46
+ /**
47
+ * @type {null|boolean}
48
+ */
49
+ Observer.HAS_SAFARI_10_BUG = null;
50
+
51
+ /**
52
+ * @type {null|boolean}
53
+ */
54
+ Observer.SUPPORTS_STRETCH = null;
55
+
56
+ /**
57
+ * @type {null|boolean}
58
+ */
59
+ Observer.SUPPORTS_NATIVE_FONT_LOADING = null;
60
+
61
+ /**
62
+ * @type {number}
63
+ */
64
+ Observer.DEFAULT_TIMEOUT = 3000;
65
+
66
+ /**
67
+ * @return {string}
68
+ */
69
+ Observer.getUserAgent = function () {
70
+ return window.navigator.userAgent;
71
+ };
72
+
73
+ /**
74
+ * @return {string}
75
+ */
76
+ Observer.getNavigatorVendor = function () {
77
+ return window.navigator.vendor;
78
+ };
79
+
80
+ /**
81
+ * Returns true if this browser is WebKit and it has the fallback bug
82
+ * which is present in WebKit 536.11 and earlier.
83
+ *
84
+ * @return {boolean}
85
+ */
86
+ Observer.hasWebKitFallbackBug = function () {
87
+ if (Observer.HAS_WEBKIT_FALLBACK_BUG === null) {
88
+ var match = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(Observer.getUserAgent());
89
+
90
+ Observer.HAS_WEBKIT_FALLBACK_BUG = !!match &&
91
+ (parseInt(match[1], 10) < 536 ||
92
+ (parseInt(match[1], 10) === 536 &&
93
+ parseInt(match[2], 10) <= 11));
94
+ }
95
+ return Observer.HAS_WEBKIT_FALLBACK_BUG;
96
+ };
97
+
98
+ /**
99
+ * Returns true if the browser has the Safari 10 bugs. The
100
+ * native font load API in Safari 10 has two bugs that cause
101
+ * the document.fonts.load and FontFace.prototype.load methods
102
+ * to return promises that don't reliably get settled.
103
+ *
104
+ * The bugs are described in more detail here:
105
+ * - https://bugs.webkit.org/show_bug.cgi?id=165037
106
+ * - https://bugs.webkit.org/show_bug.cgi?id=164902
107
+ *
108
+ * If the browser is made by Apple, and has native font
109
+ * loading support, it is potentially affected. But the API
110
+ * was fixed around AppleWebKit version 603, so any newer
111
+ * versions that that does not contain the bug.
112
+ *
113
+ * @return {boolean}
114
+ */
115
+ Observer.hasSafari10Bug = function () {
116
+ if (Observer.HAS_SAFARI_10_BUG === null) {
117
+ if (Observer.supportsNativeFontLoading() && /Apple/.test(Observer.getNavigatorVendor())) {
118
+ var match = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(Observer.getUserAgent());
119
+
120
+ Observer.HAS_SAFARI_10_BUG = !!match && parseInt(match[1], 10) < 603;
121
+ } else {
122
+ Observer.HAS_SAFARI_10_BUG = false;
123
+ }
124
+ }
125
+ return Observer.HAS_SAFARI_10_BUG;
126
+ };
127
+
128
+ /**
129
+ * Returns true if the browser supports the native font loading
130
+ * API.
131
+ *
132
+ * @return {boolean}
133
+ */
134
+ Observer.supportsNativeFontLoading = function () {
135
+ if (Observer.SUPPORTS_NATIVE_FONT_LOADING === null) {
136
+ Observer.SUPPORTS_NATIVE_FONT_LOADING = !!document['fonts'];
137
+ }
138
+ return Observer.SUPPORTS_NATIVE_FONT_LOADING;
139
+ };
140
+
141
+ /**
142
+ * Returns true if the browser supports font-style in the font
143
+ * short-hand syntax.
144
+ *
145
+ * @return {boolean}
146
+ */
147
+ Observer.supportStretch = function () {
148
+ if (Observer.SUPPORTS_STRETCH === null) {
149
+ var div = dom.createElement('div');
150
+
151
+ try {
152
+ div.style.font = 'condensed 100px sans-serif';
153
+ } catch (e) {}
154
+ Observer.SUPPORTS_STRETCH = (div.style.font !== '');
155
+ }
156
+
157
+ return Observer.SUPPORTS_STRETCH;
158
+ };
159
+
160
+ /**
161
+ * @private
162
+ *
163
+ * @param {string} family
164
+ * @return {string}
165
+ */
166
+ Observer.prototype.getStyle = function (family) {
167
+ return [this['style'], this['weight'], Observer.supportStretch() ? this['stretch'] : '', '100px', family].join(' ');
168
+ };
169
+
170
+ /**
171
+ * Returns the current time in milliseconds
172
+ *
173
+ * @return {number}
174
+ */
175
+ Observer.prototype.getTime = function () {
176
+ return new Date().getTime();
177
+ };
178
+
179
+ /**
180
+ * @param {string=} text Optional test string to use for detecting if a font is available.
181
+ * @param {number=} timeout Optional timeout for giving up on font load detection and rejecting the promise (defaults to 3 seconds).
182
+ * @return {Promise.<fontface.Observer>}
183
+ */
184
+ Observer.prototype.load = function (text, timeout) {
185
+ var that = this;
186
+ var testString = text || 'BESbswy';
187
+ var timeoutId = 0;
188
+ var timeoutValue = timeout || Observer.DEFAULT_TIMEOUT;
189
+ var start = that.getTime();
190
+
191
+ return new Promise(function (resolve, reject) {
192
+ if (Observer.supportsNativeFontLoading() && !Observer.hasSafari10Bug()) {
193
+ var loader = new Promise(function (resolve, reject) {
194
+ var check = function () {
195
+ var now = that.getTime();
196
+
197
+ if (now - start >= timeoutValue) {
198
+ reject();
199
+ } else {
200
+ document.fonts.load(that.getStyle('"' + that['family'] + '"'), testString).then(function (fonts) {
201
+ if (fonts.length >= 1) {
202
+ resolve();
203
+ } else {
204
+ setTimeout(check, 25);
205
+ }
206
+ }, function () {
207
+ reject();
208
+ });
209
+ }
210
+ };
211
+ check();
212
+ });
213
+
214
+ var timer = new Promise(function (resolve, reject) {
215
+ timeoutId = setTimeout(reject, timeoutValue);
216
+ });
217
+
218
+ Promise.race([timer, loader]).then(function () {
219
+ clearTimeout(timeoutId);
220
+ resolve(that);
221
+ }, function () {
222
+ reject(that);
223
+ });
224
+ } else {
225
+ dom.waitForBody(function () {
226
+ var rulerA = new Ruler(testString);
227
+ var rulerB = new Ruler(testString);
228
+ var rulerC = new Ruler(testString);
229
+
230
+ var widthA = -1;
231
+ var widthB = -1;
232
+ var widthC = -1;
233
+
234
+ var fallbackWidthA = -1;
235
+ var fallbackWidthB = -1;
236
+ var fallbackWidthC = -1;
237
+
238
+ var container = dom.createElement('div');
239
+
240
+ /**
241
+ * @private
242
+ */
243
+ function removeContainer() {
244
+ if (container.parentNode !== null) {
245
+ dom.remove(container.parentNode, container);
246
+ }
247
+ }
248
+
249
+ /**
250
+ * @private
251
+ *
252
+ * If metric compatible fonts are detected, one of the widths will be -1. This is
253
+ * because a metric compatible font won't trigger a scroll event. We work around
254
+ * this by considering a font loaded if at least two of the widths are the same.
255
+ * Because we have three widths, this still prevents false positives.
256
+ *
257
+ * Cases:
258
+ * 1) Font loads: both a, b and c are called and have the same value.
259
+ * 2) Font fails to load: resize callback is never called and timeout happens.
260
+ * 3) WebKit bug: both a, b and c are called and have the same value, but the
261
+ * values are equal to one of the last resort fonts, we ignore this and
262
+ * continue waiting until we get new values (or a timeout).
263
+ */
264
+ function check() {
265
+ if ((widthA != -1 && widthB != -1) || (widthA != -1 && widthC != -1) || (widthB != -1 && widthC != -1)) {
266
+ if (widthA == widthB || widthA == widthC || widthB == widthC) {
267
+ // All values are the same, so the browser has most likely loaded the web font
268
+
269
+ if (Observer.hasWebKitFallbackBug()) {
270
+ // Except if the browser has the WebKit fallback bug, in which case we check to see if all
271
+ // values are set to one of the last resort fonts.
272
+
273
+ if (((widthA == fallbackWidthA && widthB == fallbackWidthA && widthC == fallbackWidthA) ||
274
+ (widthA == fallbackWidthB && widthB == fallbackWidthB && widthC == fallbackWidthB) ||
275
+ (widthA == fallbackWidthC && widthB == fallbackWidthC && widthC == fallbackWidthC))) {
276
+ // The width we got matches some of the known last resort fonts, so let's assume we're dealing with the last resort font.
277
+ return;
278
+ }
279
+ }
280
+ removeContainer();
281
+ clearTimeout(timeoutId);
282
+ resolve(that);
283
+ }
284
+ }
285
+ }
286
+
287
+ // This ensures the scroll direction is correct.
288
+ container.dir = 'ltr';
289
+
290
+ rulerA.setFont(that.getStyle('sans-serif'));
291
+ rulerB.setFont(that.getStyle('serif'));
292
+ rulerC.setFont(that.getStyle('monospace'));
293
+
294
+ dom.append(container, rulerA.getElement());
295
+ dom.append(container, rulerB.getElement());
296
+ dom.append(container, rulerC.getElement());
297
+
298
+ dom.append(document.body, container);
299
+
300
+ fallbackWidthA = rulerA.getWidth();
301
+ fallbackWidthB = rulerB.getWidth();
302
+ fallbackWidthC = rulerC.getWidth();
303
+
304
+ function checkForTimeout() {
305
+ var now = that.getTime();
306
+
307
+ if (now - start >= timeoutValue) {
308
+ removeContainer();
309
+ reject(that);
310
+ } else {
311
+ var hidden = document['hidden'];
312
+ if (hidden === true || hidden === undefined) {
313
+ widthA = rulerA.getWidth();
314
+ widthB = rulerB.getWidth();
315
+ widthC = rulerC.getWidth();
316
+ check();
317
+ }
318
+ timeoutId = setTimeout(checkForTimeout, 50);
319
+ }
320
+ }
321
+
322
+ checkForTimeout();
323
+
324
+
325
+ rulerA.onResize(function (width) {
326
+ widthA = width;
327
+ check();
328
+ });
329
+
330
+ rulerA.setFont(that.getStyle('"' + that['family'] + '",sans-serif'));
331
+
332
+ rulerB.onResize(function (width) {
333
+ widthB = width;
334
+ check();
335
+ });
336
+
337
+ rulerB.setFont(that.getStyle('"' + that['family'] + '",serif'));
338
+
339
+ rulerC.onResize(function (width) {
340
+ widthC = width;
341
+ check();
342
+ });
343
+
344
+ rulerC.setFont(that.getStyle('"' + that['family'] + '",monospace'));
345
+ });
346
+ }
347
+ });
348
+ };
349
+ });