j1-template 2020.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +79 -0
  4. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc +46 -0
  5. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc.org +40 -0
  6. data/_includes/themes/j1/blocks/footer/boxes/contacts_box.proc +55 -0
  7. data/_includes/themes/j1/blocks/footer/boxes/issue.proc +38 -0
  8. data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +63 -0
  9. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +50 -0
  10. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +61 -0
  11. data/_includes/themes/j1/blocks/footer/boxes/social_media_icons.proc +37 -0
  12. data/_includes/themes/j1/blocks/footer/generator.html +145 -0
  13. data/_includes/themes/j1/layouts/content_generator_app.html +32 -0
  14. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +242 -0
  15. data/_includes/themes/j1/layouts/content_generator_collection.html +131 -0
  16. data/_includes/themes/j1/layouts/content_generator_page.html +138 -0
  17. data/_includes/themes/j1/layouts/content_generator_post.html +228 -0
  18. data/_includes/themes/j1/layouts/content_generator_raw.html +33 -0
  19. data/_includes/themes/j1/layouts/layout_metadata_generator.html +118 -0
  20. data/_includes/themes/j1/layouts/layout_module_generator.html +46 -0
  21. data/_includes/themes/j1/layouts/layout_resource_generator.html +49 -0
  22. data/_includes/themes/j1/modules/attics/generator.html +153 -0
  23. data/_includes/themes/j1/modules/boards/news_pin_board.html +183 -0
  24. data/_includes/themes/j1/modules/connectors/ad/custom-provider.html +33 -0
  25. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +38 -0
  26. data/_includes/themes/j1/modules/connectors/ads +50 -0
  27. data/_includes/themes/j1/modules/connectors/analytic/custom-provider.html +32 -0
  28. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +38 -0
  29. data/_includes/themes/j1/modules/connectors/analytics +45 -0
  30. data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +31 -0
  31. data/_includes/themes/j1/modules/connectors/comment/disqus.html +61 -0
  32. data/_includes/themes/j1/modules/connectors/comment/facebook.html +31 -0
  33. data/_includes/themes/j1/modules/connectors/comments +46 -0
  34. data/_includes/themes/j1/modules/connectors/sharing +29 -0
  35. data/_includes/themes/j1/modules/connectors/translator +45 -0
  36. data/_includes/themes/j1/modules/connectors/translators/custom-translator.html +32 -0
  37. data/_includes/themes/j1/modules/connectors/translators/google-translator.html +49 -0
  38. data/_includes/themes/j1/modules/navigator/generator.html +202 -0
  39. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +114 -0
  40. data/_includes/themes/j1/modules/search/algolia.html +181 -0
  41. data/_includes/themes/j1/modules/search/docsearch.html +42 -0
  42. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +69 -0
  43. data/_includes/themes/j1/procedures/global/collect_frontmatter_options.proc +60 -0
  44. data/_includes/themes/j1/procedures/global/collect_page_options.proc +66 -0
  45. data/_includes/themes/j1/procedures/global/create_bs_button.proc +129 -0
  46. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +95 -0
  47. data/_includes/themes/j1/procedures/global/get_category.proc +60 -0
  48. data/_includes/themes/j1/procedures/global/get_category_item.proc +80 -0
  49. data/_includes/themes/j1/procedures/global/get_documents_dir.proc +67 -0
  50. data/_includes/themes/j1/procedures/global/get_page_path.proc +69 -0
  51. data/_includes/themes/j1/procedures/global/get_page_url.proc +55 -0
  52. data/_includes/themes/j1/procedures/global/pager.proc +79 -0
  53. data/_includes/themes/j1/procedures/global/select_color.proc +69 -0
  54. data/_includes/themes/j1/procedures/global/select_font_size.proc +86 -0
  55. data/_includes/themes/j1/procedures/global/select_icon_size.proc +82 -0
  56. data/_includes/themes/j1/procedures/global/select_location.proc +119 -0
  57. data/_includes/themes/j1/procedures/global/set_base_vars_folders.proc +37 -0
  58. data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +94 -0
  59. data/_includes/themes/j1/procedures/global/set_image_block.proc +50 -0
  60. data/_includes/themes/j1/procedures/global/setup.proc +53 -0
  61. data/_includes/themes/j1/procedures/layouts/content_writer.proc +112 -0
  62. data/_includes/themes/j1/procedures/layouts/default_writer.proc +162 -0
  63. data/_includes/themes/j1/procedures/layouts/module_writer.proc +270 -0
  64. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +194 -0
  65. data/_includes/themes/j1/procedures/posts/collate_calendar.proc +221 -0
  66. data/_includes/themes/j1/procedures/posts/collate_list.proc +96 -0
  67. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +226 -0
  68. data/_includes/themes/j1/procedures/posts/create_ad_block.proc +56 -0
  69. data/_includes/themes/j1/procedures/posts/create_series_header.proc +96 -0
  70. data/_layouts/app.html +68 -0
  71. data/_layouts/blog_archive.html +60 -0
  72. data/_layouts/collection.html +68 -0
  73. data/_layouts/compress.html +52 -0
  74. data/_layouts/default.html +348 -0
  75. data/_layouts/home.html +90 -0
  76. data/_layouts/page.html +68 -0
  77. data/_layouts/paginator/autopage_category.html +79 -0
  78. data/_layouts/paginator/autopage_collection.html +159 -0
  79. data/_layouts/paginator/autopage_collections_tags.html +87 -0
  80. data/_layouts/paginator/autopage_tags.html +79 -0
  81. data/_layouts/post.html +68 -0
  82. data/_layouts/raw.html +71 -0
  83. data/assets/README.md +0 -0
  84. data/assets/data/authclient.html +373 -0
  85. data/assets/data/banner.html +432 -0
  86. data/assets/data/carousel.json +109 -0
  87. data/assets/data/colors.json +42 -0
  88. data/assets/data/cookie_consent.html +223 -0
  89. data/assets/data/font_sizes.json +42 -0
  90. data/assets/data/footer.html +238 -0
  91. data/assets/data/galleries.json +127 -0
  92. data/assets/data/gallery_customizer.html +150 -0
  93. data/assets/data/jupyter/notebooks/_html/template.full.head.html +75 -0
  94. data/assets/data/jupyter/notebooks/_html/visualisation.html +968 -0
  95. data/assets/data/jupyter/notebooks/html/template.html +50 -0
  96. data/assets/data/jupyter/notebooks/html/visualisation.ok.html +949 -0
  97. data/assets/data/jupyter/notebooks/tutorial.ipynb +169 -0
  98. data/assets/data/jupyter/notebooks/visualisation.ipynb +9413 -0
  99. data/assets/data/mdi_icons.json +14641 -0
  100. data/assets/data/menu.html +469 -0
  101. data/assets/data/messages.yml +131 -0
  102. data/assets/data/panel.html +518 -0
  103. data/assets/data/quicklinks.html +225 -0
  104. data/assets/data/search.yml +131 -0
  105. data/assets/data/sidebar.html +261 -0
  106. data/assets/data/themes.json +59 -0
  107. data/assets/data/twa_v1.json +6978 -0
  108. data/assets/error_pages/HTTP204.html +70 -0
  109. data/assets/error_pages/HTTP400.html +66 -0
  110. data/assets/error_pages/HTTP401.html +67 -0
  111. data/assets/error_pages/HTTP403.html +66 -0
  112. data/assets/error_pages/HTTP404.html +66 -0
  113. data/assets/error_pages/HTTP500.html +66 -0
  114. data/assets/error_pages/HTTP501.html +66 -0
  115. data/assets/error_pages/HTTP502.html +66 -0
  116. data/assets/error_pages/HTTP503.html +67 -0
  117. data/assets/error_pages/HTTP520.html +66 -0
  118. data/assets/error_pages/HTTP521.html +66 -0
  119. data/assets/error_pages/HTTP533.html +66 -0
  120. data/assets/themes/j1/core/css/bootstrap.css +7139 -0
  121. data/assets/themes/j1/core/css/bootstrap.min.css +6 -0
  122. data/assets/themes/j1/core/css/custom.scss +28 -0
  123. data/assets/themes/j1/core/css/globals.css +14523 -0
  124. data/assets/themes/j1/core/css/globals.min.css +1 -0
  125. data/assets/themes/j1/core/css/globals.scss +28 -0
  126. data/assets/themes/j1/core/css/theme_extensions.css +11565 -0
  127. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -0
  128. data/assets/themes/j1/core/css/uno.css +11830 -0
  129. data/assets/themes/j1/core/css/uno.min.css +1 -0
  130. data/assets/themes/j1/core/css/uno.scss +28 -0
  131. data/assets/themes/j1/core/css/vendor.css +46751 -0
  132. data/assets/themes/j1/core/css/vendor.min.css +14 -0
  133. data/assets/themes/j1/core/css/vendor.scss +28 -0
  134. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.eot +0 -0
  135. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.svg +3459 -0
  136. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.ttf +0 -0
  137. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff +0 -0
  138. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff2 +0 -0
  139. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.eot +0 -0
  140. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.svg +803 -0
  141. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.ttf +0 -0
  142. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff +0 -0
  143. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff2 +0 -0
  144. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.eot +0 -0
  145. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.svg +4527 -0
  146. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.ttf +0 -0
  147. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff +0 -0
  148. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff2 +0 -0
  149. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/icons.json +26790 -0
  150. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/icons.yml +9088 -0
  151. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/shims.json +2302 -0
  152. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/shims.yml +292 -0
  153. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.eot +0 -0
  154. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.svg +10188 -0
  155. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.ttf +0 -0
  156. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.woff +0 -0
  157. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.woff2 +0 -0
  158. data/assets/themes/j1/core/fonts/materialdesign_icons/license.md +97 -0
  159. data/assets/themes/j1/core/fonts/materialdesign_icons/metadata/icons.json +8186 -0
  160. data/assets/themes/j1/core/fonts/materialdesign_icons/metadata/icons.yml +5857 -0
  161. data/assets/themes/j1/core/fonts/roboto/fonts/OpenSansEmoji.ttf +0 -0
  162. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Black.ttf +0 -0
  163. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-BlackItalic.ttf +0 -0
  164. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.eot +0 -0
  165. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.ttf +0 -0
  166. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.woff +0 -0
  167. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.woff2 +0 -0
  168. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-BoldItalic.ttf +0 -0
  169. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Italic.ttf +0 -0
  170. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.eot +0 -0
  171. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.ttf +0 -0
  172. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.woff +0 -0
  173. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.woff2 +0 -0
  174. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-LightItalic.ttf +0 -0
  175. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.eot +0 -0
  176. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.ttf +0 -0
  177. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.woff +0 -0
  178. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.woff2 +0 -0
  179. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-MediumItalic.ttf +0 -0
  180. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.eot +0 -0
  181. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.ttf +0 -0
  182. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.woff +0 -0
  183. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.woff2 +0 -0
  184. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.eot +0 -0
  185. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.ttf +0 -0
  186. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.woff +0 -0
  187. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.woff2 +0 -0
  188. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-ThinItalic.ttf +0 -0
  189. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold-ascii.ttf +0 -0
  190. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold_italic-ascii.ttf +0 -0
  191. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-italic-ascii.ttf +0 -0
  192. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-regular-ascii-conums.ttf +0 -0
  193. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1p-regular-fallback.ttf +0 -0
  194. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-bold-subset.ttf +0 -0
  195. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-bold_italic-subset.ttf +0 -0
  196. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-italic-subset.ttf +0 -0
  197. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-regular-subset.ttf +0 -0
  198. data/assets/themes/j1/core/js/template.js +143 -0
  199. data/assets/themes/j1/core/js/template.js.map +1 -0
  200. data/assets/themes/j1/core/js/template.min.js +1 -0
  201. data/exe/j1 +26 -0
  202. data/lib/j1.rb +130 -0
  203. data/lib/j1/command.rb +23 -0
  204. data/lib/j1/commands/generate.rb +154 -0
  205. data/lib/j1/commands/help.rb +32 -0
  206. data/lib/j1/commands/module.rb +69 -0
  207. data/lib/j1/external.rb +59 -0
  208. data/lib/j1/log_adapter.rb +115 -0
  209. data/lib/j1/log_helper.rb +61 -0
  210. data/lib/j1/templates/posts/0000-00-00-welcome-to-j1-template.adoc.erb +72 -0
  211. data/lib/j1/utils.rb +330 -0
  212. data/lib/j1/utils/ansi.rb +59 -0
  213. data/lib/j1/utils/exec.rb +25 -0
  214. data/lib/j1/utils/platforms.rb +80 -0
  215. data/lib/j1/utils/win_tz.rb +73 -0
  216. data/lib/j1/version.rb +3 -0
  217. data/lib/j1_app.rb +105 -0
  218. data/lib/j1_app/j1_auth_manager/auth_manager.rb +1367 -0
  219. data/lib/j1_app/j1_auth_manager/commands.rb +18 -0
  220. data/lib/j1_app/j1_auth_manager/config.rb +238 -0
  221. data/lib/j1_app/j1_auth_manager/error_pages.rb +44 -0
  222. data/lib/j1_app/j1_auth_manager/helpers.rb +166 -0
  223. data/lib/j1_app/j1_auth_manager/helpers_disqus.rb +29 -0
  224. data/lib/j1_app/j1_auth_manager/helpers_facebook.rb +29 -0
  225. data/lib/j1_app/j1_auth_manager/helpers_github.rb +112 -0
  226. data/lib/j1_app/j1_auth_manager/helpers_patreon.rb +29 -0
  227. data/lib/j1_app/j1_auth_manager/helpers_twitter.rb +30 -0
  228. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +389 -0
  229. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb.kapott +234 -0
  230. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.new.erb +297 -0
  231. data/lib/j1_app/j1_auth_manager/warden_omniauth.rb +153 -0
  232. data/lib/j1_app/j1_site_manager/static_site.rb +94 -0
  233. data/lib/j1_app/log4r/yamlconfigurator.rb +195 -0
  234. data/lib/j1_app/omniauth/facebook/signed_request.rb +52 -0
  235. data/lib/j1_app/omniauth/strategies/disqus.rb +113 -0
  236. data/lib/j1_app/omniauth/strategies/facebook.rb +212 -0
  237. data/lib/j1_app/omniauth/strategies/github.rb +141 -0
  238. data/lib/j1_app/omniauth/strategies/patreon.rb +129 -0
  239. data/lib/j1_app/omniauth/strategies/twitter.rb +156 -0
  240. data/lib/j1_app/sinatra/extras/cookies.rb +282 -0
  241. data/lib/j1_app/sinatra/extras/index.rb +33 -0
  242. data/lib/starter_web/Gemfile +213 -0
  243. data/lib/starter_web/_config.yml +978 -0
  244. data/lib/starter_web/_data/_defaults/categories.yml +36 -0
  245. data/lib/starter_web/_data/_defaults/colors.yml +612 -0
  246. data/lib/starter_web/_data/_defaults/font_sizes.yml +29 -0
  247. data/lib/starter_web/_data/_defaults/j1_light_gallery.yml +110 -0
  248. data/lib/starter_web/_data/_defaults/resources.yml +942 -0
  249. data/lib/starter_web/_data/_defaults/template_settings.yml +258 -0
  250. data/lib/starter_web/_data/apps/carousel.yml +515 -0
  251. data/lib/starter_web/_data/apps/defaults/carousel.yml +223 -0
  252. data/lib/starter_web/_data/apps/defaults/gallery_customizer.yml +50 -0
  253. data/lib/starter_web/_data/apps/defaults/justified_gallery.yml +72 -0
  254. data/lib/starter_web/_data/apps/defaults/light_gallery.yml +115 -0
  255. data/lib/starter_web/_data/apps/defaults/lightbox.yml +181 -0
  256. data/lib/starter_web/_data/apps/gallery_customizer.yml +47 -0
  257. data/lib/starter_web/_data/apps/justified_gallery.yml +317 -0
  258. data/lib/starter_web/_data/apps/light_gallery.yml +114 -0
  259. data/lib/starter_web/_data/apps/lightbox.yml +181 -0
  260. data/lib/starter_web/_data/blocks/banner.yml +366 -0
  261. data/lib/starter_web/_data/blocks/defaults/banner.yml +253 -0
  262. data/lib/starter_web/_data/blocks/defaults/footer.yml +180 -0
  263. data/lib/starter_web/_data/blocks/defaults/panel.yml +256 -0
  264. data/lib/starter_web/_data/blocks/footer.yml +189 -0
  265. data/lib/starter_web/_data/blocks/panel.yml +348 -0
  266. data/lib/starter_web/_data/builder/blog_navigator.yml +211 -0
  267. data/lib/starter_web/_data/categories.yml +36 -0
  268. data/lib/starter_web/_data/colors.yml +612 -0
  269. data/lib/starter_web/_data/font_sizes.yml +30 -0
  270. data/lib/starter_web/_data/layouts/app.yml +160 -0
  271. data/lib/starter_web/_data/layouts/blog_archive.yml +160 -0
  272. data/lib/starter_web/_data/layouts/collection.yml +187 -0
  273. data/lib/starter_web/_data/layouts/default.yml +232 -0
  274. data/lib/starter_web/_data/layouts/home.yml +270 -0
  275. data/lib/starter_web/_data/layouts/page.yml +186 -0
  276. data/lib/starter_web/_data/layouts/post.yml +187 -0
  277. data/lib/starter_web/_data/layouts/raw.yml +160 -0
  278. data/lib/starter_web/_data/modules/attics.yml +220 -0
  279. data/lib/starter_web/_data/modules/authentication.yml +254 -0
  280. data/lib/starter_web/_data/modules/back2top.yml +40 -0
  281. data/lib/starter_web/_data/modules/cookie_consent.yml +128 -0
  282. data/lib/starter_web/_data/modules/cookiebar.yml +32 -0
  283. data/lib/starter_web/_data/modules/defaults/attics.yml +220 -0
  284. data/lib/starter_web/_data/modules/defaults/authentication.yml +263 -0
  285. data/lib/starter_web/_data/modules/defaults/back2top.yml +147 -0
  286. data/lib/starter_web/_data/modules/defaults/cookie_consent.yml +69 -0
  287. data/lib/starter_web/_data/modules/defaults/cookiebar.yml +79 -0
  288. data/lib/starter_web/_data/modules/defaults/framer.yml +274 -0
  289. data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +149 -0
  290. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +131 -0
  291. data/lib/starter_web/_data/modules/defaults/log4r.yml +171 -0
  292. data/lib/starter_web/_data/modules/defaults/navigator.yml +174 -0
  293. data/lib/starter_web/_data/modules/defaults/smooth_scroll.yml +169 -0
  294. data/lib/starter_web/_data/modules/defaults/stickybits.yml +37 -0
  295. data/lib/starter_web/_data/modules/defaults/themer.yml +168 -0
  296. data/lib/starter_web/_data/modules/defaults/toccer.yml +172 -0
  297. data/lib/starter_web/_data/modules/framer.yml +52 -0
  298. data/lib/starter_web/_data/modules/jekyll_search.yml +51 -0
  299. data/lib/starter_web/_data/modules/log4javascript.yml +131 -0
  300. data/lib/starter_web/_data/modules/log4r.yml +171 -0
  301. data/lib/starter_web/_data/modules/navigator.yml +162 -0
  302. data/lib/starter_web/_data/modules/navigator_menu.yml +276 -0
  303. data/lib/starter_web/_data/modules/smooth_scroll.yml +169 -0
  304. data/lib/starter_web/_data/modules/themer.yml +147 -0
  305. data/lib/starter_web/_data/modules/toccer.yml +172 -0
  306. data/lib/starter_web/_data/pages/builder.yml +87 -0
  307. data/lib/starter_web/_data/plugins/defaults/notebooks.yml +61 -0
  308. data/lib/starter_web/_data/plugins/defaults/paginator.yml +92 -0
  309. data/lib/starter_web/_data/plugins/notebooks.yml +70 -0
  310. data/lib/starter_web/_data/plugins/paginator.yml +52 -0
  311. data/lib/starter_web/_data/private.yml +231 -0
  312. data/lib/starter_web/_data/resources.yml +861 -0
  313. data/lib/starter_web/_data/template_settings.yml +294 -0
  314. data/lib/starter_web/_data/utilities/defaults/util_srv.yml +41 -0
  315. data/lib/starter_web/_data/utilities/util_srv.yml +97 -0
  316. data/lib/starter_web/_plugins/asciidoctor-extensions/admonition-block-answer.rb +48 -0
  317. data/lib/starter_web/_plugins/asciidoctor-extensions/admonition-block-question.rb +48 -0
  318. data/lib/starter_web/_plugins/asciidoctor-extensions/callout.rb +9 -0
  319. data/lib/starter_web/_plugins/asciidoctor-extensions/carousel-block.rb +46 -0
  320. data/lib/starter_web/_plugins/asciidoctor-extensions/conum.rb +9 -0
  321. data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +33 -0
  322. data/lib/starter_web/_plugins/asciidoctor-extensions/fas-icon-inline.rb +33 -0
  323. data/lib/starter_web/_plugins/asciidoctor-extensions/gallery-block.rb +44 -0
  324. data/lib/starter_web/_plugins/asciidoctor-extensions/gist-block.rb +52 -0
  325. data/lib/starter_web/_plugins/asciidoctor-extensions/iconify-icon-inline.rb +33 -0
  326. data/lib/starter_web/_plugins/asciidoctor-extensions/lightbox-block.rb +85 -0
  327. data/lib/starter_web/_plugins/asciidoctor-extensions/lorem-inline.rb +65 -0
  328. data/lib/starter_web/_plugins/asciidoctor-extensions/mdi-icon-inline.rb +33 -0
  329. data/lib/starter_web/_plugins/asciidoctor-extensions/shout-block.rb +47 -0
  330. data/lib/starter_web/_plugins/asciidoctor-extensions/twitter-emoji-inline.rb +37 -0
  331. data/lib/starter_web/_plugins/debug.rb +63 -0
  332. data/lib/starter_web/_plugins/filters.rb +320 -0
  333. data/lib/starter_web/_plugins/prettify.rb +45 -0
  334. data/lib/starter_web/_plugins/simple_search_filter.rb +33 -0
  335. data/lib/starter_web/_plugins/symlink_watcher.rb +52 -0
  336. data/lib/starter_web/apps/public/cc +1650 -0
  337. data/lib/starter_web/assets/images/collections/blog/featured/jekyll.1200x400.png +0 -0
  338. data/lib/starter_web/assets/images/collections/blog/featured/jekyll.png +0 -0
  339. data/lib/starter_web/assets/images/collections/blog/featured/staticgen.jpg +0 -0
  340. data/lib/starter_web/assets/images/collections/blog/featured/welcome-to-j1-template.jpg +0 -0
  341. data/lib/starter_web/assets/images/collections/blog/featured/what-is-a-baseurl.jpg +0 -0
  342. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/j1_docker_banner.1280x500.png +0 -0
  343. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_alpha.1280x600.png +0 -0
  344. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_j1.1280x300.png +0 -0
  345. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/windows_docker_banner.1280x500.png +0 -0
  346. data/lib/starter_web/assets/images/collections/blog/wikipedia/columbia-river.1200x400.jpg +0 -0
  347. data/lib/starter_web/assets/images/collections/blog/wikipedia/minneapolis.1200x400.jpg +0 -0
  348. data/lib/starter_web/assets/images/collections/blog/wikipedia/narcise-snake-pits.1200x400.jpg +0 -0
  349. data/lib/starter_web/assets/images/modules/attics/aditya-joshi-1920x1280.jpg +0 -0
  350. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.png +0 -0
  351. data/lib/starter_web/assets/images/modules/attics/alex-holyoake-1920x1280.jpg +0 -0
  352. data/lib/starter_web/assets/images/modules/attics/anaya-katlego-1920x1280.jpg +0 -0
  353. data/lib/starter_web/assets/images/modules/attics/antonella-lombardi-1920x1280.jpg +0 -0
  354. data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
  355. data/lib/starter_web/assets/images/modules/attics/banner/admin-dashboard-bootstrap-1280x800-bw.jpg +0 -0
  356. data/lib/starter_web/assets/images/modules/attics/banner/docker-1280x600-bw.jpg +0 -0
  357. data/lib/starter_web/assets/images/modules/attics/banner/jekyll.1200x600-bw.jpg +0 -0
  358. data/lib/starter_web/assets/images/modules/attics/banner/library-1920x800-bw.jpg +0 -0
  359. data/lib/starter_web/assets/images/modules/attics/banner/signpost-1920x800-bw.jpg +0 -0
  360. data/lib/starter_web/assets/images/modules/attics/banner/water-journal-1280x600.jpg +0 -0
  361. data/lib/starter_web/assets/images/modules/attics/banner/write-1280x600-bw.jpg +0 -0
  362. data/lib/starter_web/assets/images/modules/attics/brandon-mowinkel-1920x1280.jpg +0 -0
  363. data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280-bw.jpg +0 -0
  364. data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200-bw.jpg +0 -0
  365. data/lib/starter_web/assets/images/modules/attics/daniel-jensen-1920x1280.jpg +0 -0
  366. data/lib/starter_web/assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg +0 -0
  367. data/lib/starter_web/assets/images/modules/attics/go-up-1920x1280-bw.jpg +0 -0
  368. data/lib/starter_web/assets/images/modules/attics/ian-schneider-1920x1280.jpg +0 -0
  369. data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
  370. data/lib/starter_web/assets/images/modules/attics/jason-rosewell-1920x1280.jpg +0 -0
  371. data/lib/starter_web/assets/images/modules/attics/jessica-ruscello-1920x1280.jpg +0 -0
  372. data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
  373. data/lib/starter_web/assets/images/modules/attics/library-1920x1280-bw.jpg +0 -0
  374. data/lib/starter_web/assets/images/modules/attics/mae-mu-Vf9gbsLZyf0-unsplash.jpg +0 -0
  375. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280-v.jpg +0 -0
  376. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280.jpg +0 -0
  377. data/lib/starter_web/assets/images/modules/attics/matthaeus-1920x1280.jpg +0 -0
  378. data/lib/starter_web/assets/images/modules/attics/nousnou-iwasaki-1920x1280.jpg +0 -0
  379. data/lib/starter_web/assets/images/modules/attics/premium-1920x1280-bw.jpg +0 -0
  380. data/lib/starter_web/assets/images/modules/attics/robert-v-ruggiero-1920x1280.jpg +0 -0
  381. data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
  382. data/lib/starter_web/assets/images/modules/attics/runner-1920x1200-bw.jpg +0 -0
  383. data/lib/starter_web/assets/images/modules/attics/spider-web-1920x1200-bw.jpg +0 -0
  384. data/lib/starter_web/assets/images/modules/attics/the-place-1920x1280-bw.jpg +0 -0
  385. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  386. data/lib/starter_web/assets/images/modules/carousel/cats/cat-1.jpg +0 -0
  387. data/lib/starter_web/assets/images/modules/carousel/cats/cat-2.jpg +0 -0
  388. data/lib/starter_web/assets/images/modules/carousel/cats/cat-3.jpg +0 -0
  389. data/lib/starter_web/assets/images/modules/carousel/cats/cat-4.jpg +0 -0
  390. data/lib/starter_web/assets/images/modules/carousel/cats/cat-5.jpg +0 -0
  391. data/lib/starter_web/assets/images/modules/carousel/cats/cat-6.jpg +0 -0
  392. data/lib/starter_web/assets/images/modules/carousel/cats/cat-7.jpg +0 -0
  393. data/lib/starter_web/assets/images/modules/carousel/cats/cat-8.jpg +0 -0
  394. data/lib/starter_web/assets/images/modules/carousel/mega_cities/andreas-brucker_b.jpg +0 -0
  395. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  396. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  397. data/lib/starter_web/assets/images/modules/carousel/mega_cities/luca-bravo_b.jpg +0 -0
  398. data/lib/starter_web/assets/images/modules/carousel/mega_cities/thomas-tucker_b.jpg +0 -0
  399. data/lib/starter_web/assets/images/modules/gallery/mega_cities/andreas-brucker_b.jpg +0 -0
  400. data/lib/starter_web/assets/images/modules/gallery/mega_cities/banter-snaps_b.jpg +0 -0
  401. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  402. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2-bw.jpg +0 -0
  403. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  404. data/lib/starter_web/assets/images/modules/gallery/mega_cities/emmad-mazhari_b.jpg +0 -0
  405. data/lib/starter_web/assets/images/modules/gallery/mega_cities/ethan-brooke_b.jpg +0 -0
  406. data/lib/starter_web/assets/images/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
  407. data/lib/starter_web/assets/images/modules/gallery/mega_cities/gints-gailis_b.jpg +0 -0
  408. data/lib/starter_web/assets/images/modules/gallery/mega_cities/johan-mouchet_b.jpg +0 -0
  409. data/lib/starter_web/assets/images/modules/gallery/mega_cities/luca-bravo_b.jpg +0 -0
  410. data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
  411. data/lib/starter_web/assets/images/modules/gallery/mega_cities/steven-diaz_b.jpg +0 -0
  412. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
  413. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
  414. data/lib/starter_web/assets/images/modules/icons/algolia/search-by-algolia.png +0 -0
  415. data/lib/starter_web/assets/images/modules/icons/asciidoc/logo-512x512.png +0 -0
  416. data/lib/starter_web/assets/images/modules/icons/bootstrap/bootstrap-solid-32x32.png +0 -0
  417. data/lib/starter_web/assets/images/modules/icons/bootstrap/bs-docs-masthead-pattern.png +0 -0
  418. data/lib/starter_web/assets/images/modules/icons/bootstrap/scalable/bootstrap-outline.svg +20 -0
  419. data/lib/starter_web/assets/images/modules/icons/bootstrap/scalable/bootstrap-punchout.svg +18 -0
  420. data/lib/starter_web/assets/images/modules/icons/bootstrap/scalable/bootstrap-solid.svg +17 -0
  421. data/lib/starter_web/assets/images/modules/icons/components/angular.ui.png +0 -0
  422. data/lib/starter_web/assets/images/modules/icons/components/angularjs.png +0 -0
  423. data/lib/starter_web/assets/images/modules/icons/components/aws.png +0 -0
  424. data/lib/starter_web/assets/images/modules/icons/components/bootstrap.png +0 -0
  425. data/lib/starter_web/assets/images/modules/icons/components/c9.png +0 -0
  426. data/lib/starter_web/assets/images/modules/icons/components/chai.png +0 -0
  427. data/lib/starter_web/assets/images/modules/icons/components/emmet.png +0 -0
  428. data/lib/starter_web/assets/images/modules/icons/components/express.png +0 -0
  429. data/lib/starter_web/assets/images/modules/icons/components/git.png +0 -0
  430. data/lib/starter_web/assets/images/modules/icons/components/github.png +0 -0
  431. data/lib/starter_web/assets/images/modules/icons/components/gulp.png +0 -0
  432. data/lib/starter_web/assets/images/modules/icons/components/heroku.png +0 -0
  433. data/lib/starter_web/assets/images/modules/icons/components/htmlcss-1.png +0 -0
  434. data/lib/starter_web/assets/images/modules/icons/components/htmlcss-2.png +0 -0
  435. data/lib/starter_web/assets/images/modules/icons/components/jasmine.png +0 -0
  436. data/lib/starter_web/assets/images/modules/icons/components/javascript.png +0 -0
  437. data/lib/starter_web/assets/images/modules/icons/components/jquery.png +0 -0
  438. data/lib/starter_web/assets/images/modules/icons/components/kanban.png +0 -0
  439. data/lib/starter_web/assets/images/modules/icons/components/leanux.png +0 -0
  440. data/lib/starter_web/assets/images/modules/icons/components/linkedin.png +0 -0
  441. data/lib/starter_web/assets/images/modules/icons/components/mean.png +0 -0
  442. data/lib/starter_web/assets/images/modules/icons/components/mongodb.png +0 -0
  443. data/lib/starter_web/assets/images/modules/icons/components/node.png +0 -0
  444. data/lib/starter_web/assets/images/modules/icons/components/postgresql.png +0 -0
  445. data/lib/starter_web/assets/images/modules/icons/components/protractor.png +0 -0
  446. data/lib/starter_web/assets/images/modules/icons/components/rails.png +0 -0
  447. data/lib/starter_web/assets/images/modules/icons/components/ruby.png +0 -0
  448. data/lib/starter_web/assets/images/modules/icons/components/sass.png +0 -0
  449. data/lib/starter_web/assets/images/modules/icons/components/scrum.png +0 -0
  450. data/lib/starter_web/assets/images/modules/icons/components/twitter.png +0 -0
  451. data/lib/starter_web/assets/images/modules/icons/d1/d1-256x256.png +0 -0
  452. data/lib/starter_web/assets/images/modules/icons/d1/d1-32x32.ico +0 -0
  453. data/lib/starter_web/assets/images/modules/icons/d1/d1-512x512.png +0 -0
  454. data/lib/starter_web/assets/images/modules/icons/d1/d1-64x64.png +0 -0
  455. data/lib/starter_web/assets/images/modules/icons/d1/d1.ico +0 -0
  456. data/lib/starter_web/assets/images/modules/icons/d1/favicon.ico +0 -0
  457. data/lib/starter_web/assets/images/modules/icons/d1/scalable/d1.svg +2020 -0
  458. data/lib/starter_web/assets/images/modules/icons/j1/favicon.ico +0 -0
  459. data/lib/starter_web/assets/images/modules/icons/j1/j1-256x256.png +0 -0
  460. data/lib/starter_web/assets/images/modules/icons/j1/j1-32x32.ico +0 -0
  461. data/lib/starter_web/assets/images/modules/icons/j1/j1-512x512.png +0 -0
  462. data/lib/starter_web/assets/images/modules/icons/j1/j1-64x64.png +0 -0
  463. data/lib/starter_web/assets/images/modules/icons/j1/j1..ico +0 -0
  464. data/lib/starter_web/assets/images/modules/icons/j1/scalable/j1.svg +2027 -0
  465. data/lib/starter_web/assets/images/modules/icons/netlify/nf-logo.png +0 -0
  466. data/lib/starter_web/assets/images/modules/icons/p1/favicon.ico +0 -0
  467. data/lib/starter_web/assets/images/modules/icons/p1/p1-256x256.png +0 -0
  468. data/lib/starter_web/assets/images/modules/icons/p1/p1-32x32.ico +0 -0
  469. data/lib/starter_web/assets/images/modules/icons/p1/p1-512x512.png +0 -0
  470. data/lib/starter_web/assets/images/modules/icons/p1/p1-64x64.png +0 -0
  471. data/lib/starter_web/assets/images/modules/icons/p1/p1.ico +0 -0
  472. data/lib/starter_web/assets/images/modules/icons/p1/scalable/p1.svg +2020 -0
  473. data/lib/starter_web/assets/images/modules/icons/patreon/favicon-16x16.png +0 -0
  474. data/lib/starter_web/assets/images/modules/icons/patreon/favicon-32x32.png +0 -0
  475. data/lib/starter_web/assets/images/modules/icons/social/amazon.png +0 -0
  476. data/lib/starter_web/assets/images/modules/icons/social/behance.png +0 -0
  477. data/lib/starter_web/assets/images/modules/icons/social/blogger.png +0 -0
  478. data/lib/starter_web/assets/images/modules/icons/social/deviantart.png +0 -0
  479. data/lib/starter_web/assets/images/modules/icons/social/dribbble.png +0 -0
  480. data/lib/starter_web/assets/images/modules/icons/social/dropbox.png +0 -0
  481. data/lib/starter_web/assets/images/modules/icons/social/evernote.png +0 -0
  482. data/lib/starter_web/assets/images/modules/icons/social/facebook.png +0 -0
  483. data/lib/starter_web/assets/images/modules/icons/social/forrst.png +0 -0
  484. data/lib/starter_web/assets/images/modules/icons/social/github.png +0 -0
  485. data/lib/starter_web/assets/images/modules/icons/social/googleplus.png +0 -0
  486. data/lib/starter_web/assets/images/modules/icons/social/instagram.png +0 -0
  487. data/lib/starter_web/assets/images/modules/icons/social/jolicloud.png +0 -0
  488. data/lib/starter_web/assets/images/modules/icons/social/last-fm.png +0 -0
  489. data/lib/starter_web/assets/images/modules/icons/social/linkedin.png +0 -0
  490. data/lib/starter_web/assets/images/modules/icons/social/picasa.png +0 -0
  491. data/lib/starter_web/assets/images/modules/icons/social/pintrest.png +0 -0
  492. data/lib/starter_web/assets/images/modules/icons/social/rss.png +0 -0
  493. data/lib/starter_web/assets/images/modules/icons/social/skype.png +0 -0
  494. data/lib/starter_web/assets/images/modules/icons/social/spotify.png +0 -0
  495. data/lib/starter_web/assets/images/modules/icons/social/stumbleupon.png +0 -0
  496. data/lib/starter_web/assets/images/modules/icons/social/tumblr.png +0 -0
  497. data/lib/starter_web/assets/images/modules/icons/social/twitter.png +0 -0
  498. data/lib/starter_web/assets/images/modules/icons/social/vimeo.png +0 -0
  499. data/lib/starter_web/assets/images/modules/icons/social/vk.png +0 -0
  500. data/lib/starter_web/assets/images/modules/icons/social/wordpress.png +0 -0
  501. data/lib/starter_web/assets/images/modules/icons/social/xing.png +0 -0
  502. data/lib/starter_web/assets/images/modules/icons/social/yahoo.png +0 -0
  503. data/lib/starter_web/assets/images/modules/icons/social/youtube.png +0 -0
  504. data/lib/starter_web/assets/images/modules/lightbox/close.png +0 -0
  505. data/lib/starter_web/assets/images/modules/lightbox/loading.gif +0 -0
  506. data/lib/starter_web/assets/images/modules/lightbox/next.png +0 -0
  507. data/lib/starter_web/assets/images/modules/lightbox/prev.png +0 -0
  508. data/lib/starter_web/assets/images/modules/patterns/1x1.png +0 -0
  509. data/lib/starter_web/assets/images/modules/patterns/gridtile.png +0 -0
  510. data/lib/starter_web/assets/images/pages/j1_webhooks/000_browser_console-1280x600.jpg +0 -0
  511. data/lib/starter_web/assets/images/pages/j1_webhooks/001_smee_channel-1280x400.jpg +0 -0
  512. data/lib/starter_web/assets/images/pages/j1_webhooks/002_gh_repo_settings-1280x800.jpg +0 -0
  513. data/lib/starter_web/assets/images/pages/j1_webhooks/003_gh_webhook_settings-1280x1000.jpg +0 -0
  514. data/lib/starter_web/assets/images/pages/j1_webhooks/004_gh_webhook_settings-post-1280x600.jpg +0 -0
  515. data/lib/starter_web/assets/images/pages/j1_webhooks/005_smee_channel_ping_receive-1280x800.jpg +0 -0
  516. data/lib/starter_web/assets/images/pages/j1_webhooks/006_gh_redeliver_payload-1280x900.jpg +0 -0
  517. data/lib/starter_web/assets/images/pages/j1_webhooks/007_receive_redelivered_payload-1280x800.jpg +0 -0
  518. data/lib/starter_web/assets/images/pages/j1_webhooks/base/000_browser_console.jpg +0 -0
  519. data/lib/starter_web/assets/images/pages/j1_webhooks/base/000_smee_channel.jpg +0 -0
  520. data/lib/starter_web/assets/images/pages/j1_webhooks/base/002_gh_repo-settings.jpg +0 -0
  521. data/lib/starter_web/assets/images/pages/j1_webhooks/base/003_gh_webhook_settings.jpg +0 -0
  522. data/lib/starter_web/assets/images/pages/j1_webhooks/base/004_gh_webhook_settings-post.jpg +0 -0
  523. data/lib/starter_web/assets/images/pages/j1_webhooks/base/005_smee_channel_ping_received.jpg +0 -0
  524. data/lib/starter_web/assets/images/pages/j1_webhooks/base/006_gh_redeliver_payload.jpg +0 -0
  525. data/lib/starter_web/assets/images/pages/j1_webhooks/base/007_receive_redelivered_payload.jpg +0 -0
  526. data/lib/starter_web/assets/images/pages/j1_webhooks/base/webhook_flow.jpg +0 -0
  527. data/lib/starter_web/assets/images/pages/j1_webhooks/flows/webhook_flow-1920x1280.jpg +0 -0
  528. data/lib/starter_web/assets/images/pages/j1_webhooks/scaleable/webhook_flow.svg +432 -0
  529. data/lib/starter_web/assets/images/pages/j1_webhooks/uml/auth_mgmr_signin_request_flow.uxf +632 -0
  530. data/lib/starter_web/assets/images/pages/j1_webhooks/uml/webhook_flow.uxf +648 -0
  531. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/get-started-1920x1280-bw.jpg +0 -0
  532. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/130_layout_inheritance.png +0 -0
  533. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/content_inheritance.png +0 -0
  534. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/content_inheritance_thumb.png +0 -0
  535. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/html_layout.png +0 -0
  536. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/j1-quickstart-windows.png +0 -0
  537. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/j1-template-theme.jpg +0 -0
  538. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/j1_layout.png +0 -0
  539. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/jekyll-minima-theme.png +0 -0
  540. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/lane_inheritance.png +0 -0
  541. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/layout_inheritance.png +0 -0
  542. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/preparations/msys_installation.jpg +0 -0
  543. data/lib/starter_web/assets/images/pages/log4j/apache-log4j-logo.png +0 -0
  544. data/lib/starter_web/assets/images/pages/log4r/code-1920x600.jpg +0 -0
  545. data/lib/starter_web/assets/images/pages/log4r/log4r-logo.png +0 -0
  546. data/lib/starter_web/assets/images/pages/log_expert/image_000.png +0 -0
  547. data/lib/starter_web/assets/images/pages/log_expert/image_001.png +0 -0
  548. data/lib/starter_web/assets/images/pages/log_expert/image_002.png +0 -0
  549. data/lib/starter_web/assets/images/pages/log_expert/image_003.png +0 -0
  550. data/lib/starter_web/assets/images/pages/log_expert/image_004.png +0 -0
  551. data/lib/starter_web/assets/images/pages/log_expert/image_005.png +0 -0
  552. data/lib/starter_web/assets/images/pages/log_expert/image_006.png +0 -0
  553. data/lib/starter_web/assets/images/pages/log_expert/image_007.png +0 -0
  554. data/lib/starter_web/assets/images/pages/log_expert/image_008.png +0 -0
  555. data/lib/starter_web/assets/images/pages/log_expert/image_009.png +0 -0
  556. data/lib/starter_web/assets/images/pages/log_expert/image_010.png +0 -0
  557. data/lib/starter_web/assets/images/pages/log_expert/image_011.png +0 -0
  558. data/lib/starter_web/assets/images/pages/log_expert/image_012.png +0 -0
  559. data/lib/starter_web/assets/images/pages/log_expert/image_013.png +0 -0
  560. data/lib/starter_web/assets/images/pages/log_expert/image_014.png +0 -0
  561. data/lib/starter_web/assets/images/pages/log_expert/image_015.png +0 -0
  562. data/lib/starter_web/assets/images/pages/log_expert/image_016.png +0 -0
  563. data/lib/starter_web/assets/images/pages/log_expert/image_017.png +0 -0
  564. data/lib/starter_web/assets/images/pages/log_expert/image_018.png +0 -0
  565. data/lib/starter_web/assets/images/pages/log_expert/image_019.png +0 -0
  566. data/lib/starter_web/assets/images/pages/log_expert/image_020.png +0 -0
  567. data/lib/starter_web/assets/images/pages/log_expert/image_021.png +0 -0
  568. data/lib/starter_web/assets/images/pages/log_expert/image_022.png +0 -0
  569. data/lib/starter_web/assets/images/pages/log_expert/image_023.png +0 -0
  570. data/lib/starter_web/assets/images/pages/log_expert/image_024.png +0 -0
  571. data/lib/starter_web/assets/images/pages/log_expert/image_025.png +0 -0
  572. data/lib/starter_web/assets/images/pages/log_expert/image_026.png +0 -0
  573. data/lib/starter_web/assets/images/pages/log_expert/image_027.png +0 -0
  574. data/lib/starter_web/assets/images/pages/log_expert/image_028.png +0 -0
  575. data/lib/starter_web/assets/images/pages/log_expert/image_029.png +0 -0
  576. data/lib/starter_web/assets/images/pages/log_expert/image_030.png +0 -0
  577. data/lib/starter_web/assets/images/pages/log_expert/image_031.png +0 -0
  578. data/lib/starter_web/assets/images/pages/log_expert/image_032.png +0 -0
  579. data/lib/starter_web/assets/images/pages/log_expert/image_033.png +0 -0
  580. data/lib/starter_web/assets/images/pages/log_expert/image_034.png +0 -0
  581. data/lib/starter_web/assets/images/pages/log_expert/image_035.png +0 -0
  582. data/lib/starter_web/assets/images/pages/log_expert/image_036.png +0 -0
  583. data/lib/starter_web/assets/images/pages/log_expert/image_037.png +0 -0
  584. data/lib/starter_web/assets/images/pages/log_expert/image_038.png +0 -0
  585. data/lib/starter_web/assets/images/pages/log_expert/image_039.png +0 -0
  586. data/lib/starter_web/assets/images/pages/log_expert/image_040.png +0 -0
  587. data/lib/starter_web/assets/images/pages/log_expert/image_041.png +0 -0
  588. data/lib/starter_web/assets/images/pages/log_expert/image_042.png +0 -0
  589. data/lib/starter_web/assets/images/pages/log_expert/image_043.png +0 -0
  590. data/lib/starter_web/assets/images/pages/log_expert/image_044.png +0 -0
  591. data/lib/starter_web/assets/images/pages/log_expert/image_045.png +0 -0
  592. data/lib/starter_web/assets/images/pages/log_expert/image_046.png +0 -0
  593. data/lib/starter_web/assets/images/pages/log_expert/image_047.png +0 -0
  594. data/lib/starter_web/assets/images/pages/log_expert/image_048.png +0 -0
  595. data/lib/starter_web/assets/images/pages/log_expert/image_049.png +0 -0
  596. data/lib/starter_web/assets/images/pages/log_expert/image_050.png +0 -0
  597. data/lib/starter_web/assets/images/pages/log_expert/image_051.png +0 -0
  598. data/lib/starter_web/assets/images/pages/log_expert/image_052.png +0 -0
  599. data/lib/starter_web/assets/images/pages/log_expert/image_053.png +0 -0
  600. data/lib/starter_web/assets/images/pages/log_expert/image_054.png +0 -0
  601. data/lib/starter_web/assets/images/pages/log_expert/image_055.png +0 -0
  602. data/lib/starter_web/assets/images/pages/log_expert/image_056.png +0 -0
  603. data/lib/starter_web/assets/images/pages/log_expert/image_057.png +0 -0
  604. data/lib/starter_web/assets/images/pages/modals/01_frame_modal.jpg +0 -0
  605. data/lib/starter_web/assets/images/pages/modals/02_site_modal.jpg +0 -0
  606. data/lib/starter_web/assets/images/pages/modals/03_central_modal.jpg +0 -0
  607. data/lib/starter_web/assets/images/pages/modals/04_fluid_modal.jpg +0 -0
  608. data/lib/starter_web/assets/images/pages/pen/jquery/jQuery-logo.png +0 -0
  609. data/lib/starter_web/assets/images/pages/pen/jquery/jquery-banner-1280x600.jpg +0 -0
  610. data/lib/starter_web/assets/images/pages/pen/jquery/jquery-banner-1920x800.jpg +0 -0
  611. data/lib/starter_web/assets/images/pages/pen/jquery/src/JQuery-Logo.svg +122 -0
  612. data/lib/starter_web/assets/images/pages/pen/jquery/src/banner.psd +0 -0
  613. data/lib/starter_web/assets/images/pages/previewer/bs-color-palette.png +0 -0
  614. data/lib/starter_web/assets/images/pages/previewer/material-design-color-palette.jpg +0 -0
  615. data/lib/starter_web/assets/images/pages/previewer/material-design-color-palette.png +0 -0
  616. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-1.jpg +0 -0
  617. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-2.jpg +0 -0
  618. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-3.jpg +0 -0
  619. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-thumb-1.jpg +0 -0
  620. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-thumb-2.jpg +0 -0
  621. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-thumb-3.jpg +0 -0
  622. data/lib/starter_web/assets/images/pages/roundtrip/410_bs_modals_extentions/avatar.jpg +0 -0
  623. data/lib/starter_web/assets/images/pages/roundtrip/410_bs_modals_extentions/marc.jpg +0 -0
  624. data/lib/starter_web/assets/images/pages/roundtrip/bootstrap-1920x1000-bw.jpg +0 -0
  625. data/lib/starter_web/assets/images/pages/roundtrip/cards-1920x1280-bw.jpg +0 -0
  626. data/lib/starter_web/assets/images/pages/roundtrip/emojies-1920x1280-bw.jpg +0 -0
  627. data/lib/starter_web/assets/images/pages/roundtrip/icon-fonts-1920x1280-bw.jpg +0 -0
  628. data/lib/starter_web/assets/images/pages/roundtrip/images-1920x1280-bw.jpg +0 -0
  629. data/lib/starter_web/assets/images/pages/roundtrip/puzzle-1920x1280-bw.jpg +0 -0
  630. data/lib/starter_web/assets/images/pages/roundtrip/tables-1920x1280-bw.jpg +0 -0
  631. data/lib/starter_web/assets/images/pages/roundtrip/themes-1920x1280-bw.jpg +0 -0
  632. data/lib/starter_web/assets/images/pages/roundtrip/typography-1920x1280-bw.jpg +0 -0
  633. data/lib/starter_web/assets/images/quotes/default.png +0 -0
  634. data/lib/starter_web/assets/images/quotes/people.png +0 -0
  635. data/lib/starter_web/assets/themes/j1/adapter/js/attic.js +563 -0
  636. data/lib/starter_web/assets/themes/j1/adapter/js/back2top.js +227 -0
  637. data/lib/starter_web/assets/themes/j1/adapter/js/carousel.js +313 -0
  638. data/lib/starter_web/assets/themes/j1/adapter/js/cookie_consent.js +259 -0
  639. data/lib/starter_web/assets/themes/j1/adapter/js/framer.js +208 -0
  640. data/lib/starter_web/assets/themes/j1/adapter/js/gallery_customizer.js +427 -0
  641. data/lib/starter_web/assets/themes/j1/adapter/js/j1.js +2034 -0
  642. data/lib/starter_web/assets/themes/j1/adapter/js/justified_gallery.js +403 -0
  643. data/lib/starter_web/assets/themes/j1/adapter/js/lightbox.js +181 -0
  644. data/lib/starter_web/assets/themes/j1/adapter/js/logger.js +316 -0
  645. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +782 -0
  646. data/lib/starter_web/assets/themes/j1/adapter/js/scroller.js +177 -0
  647. data/lib/starter_web/assets/themes/j1/adapter/js/searcher.js +193 -0
  648. data/lib/starter_web/assets/themes/j1/adapter/js/themer.js +357 -0
  649. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +353 -0
  650. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel.css +81 -0
  651. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel.min.css +17 -0
  652. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel_transitions.css +184 -0
  653. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel_transitions.min.css +17 -0
  654. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/theme/uno.css +191 -0
  655. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/theme/uno.min.css +16 -0
  656. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/ajax-loader.gif +0 -0
  657. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/grabbing.png +0 -0
  658. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/owl-logo.png +0 -0
  659. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/owl.video.play.png +0 -0
  660. data/lib/starter_web/assets/themes/j1/extensions/carousel/js/carousel.js +1517 -0
  661. data/lib/starter_web/assets/themes/j1/extensions/carousel/js/carousel.min.js +57 -0
  662. data/lib/starter_web/assets/themes/j1/extensions/iconify/js/iconify.min.js +13 -0
  663. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.absolute.html +86 -0
  664. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.content.html +58 -0
  665. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.hover.html +51 -0
  666. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.nested.html +68 -0
  667. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.textarea.html +46 -0
  668. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.tolerance.html +79 -0
  669. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/index.html +70 -0
  670. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/two.html +71 -0
  671. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.js +1104 -0
  672. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.map +1 -0
  673. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.min.js +10 -0
  674. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/LICENSE +22 -0
  675. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/README.md +273 -0
  676. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/css/justifiedGallery.css +110 -0
  677. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/css/justifiedGallery.min.css +110 -0
  678. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/css/theme/uno.css +23 -0
  679. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/js/justifiedGallery.3.7.0.js +1229 -0
  680. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/js/justifiedGallery.js +1229 -0
  681. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/js/justifiedGallery.min.js +8 -0
  682. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/less/.csslintrc +20 -0
  683. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/less/justifiedGallery.less +113 -0
  684. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/css/justifiedGallery.css +110 -0
  685. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/css/justifiedGallery.min.css +110 -0
  686. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/css/theme/uno.css +23 -0
  687. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/js/jquery.justifiedGallery.js +1229 -0
  688. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/js/jquery.justifiedGallery.min.js +8 -0
  689. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/justifiedGallery.css +110 -0
  690. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/justifiedGallery.min.css +110 -0
  691. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/theme/uno.css +38 -0
  692. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/theme/uno.min.css +38 -0
  693. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/js/justifiedGallery.js +1229 -0
  694. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/js/justifiedGallery.min.js +8 -0
  695. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-fb-comment-box.css +58 -0
  696. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-fb-comment-box.min.css +5 -0
  697. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-transitions.css +778 -0
  698. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-transitions.min.css +5 -0
  699. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lightgallery.css +981 -0
  700. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lightgallery.min.css +5 -0
  701. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.eot +0 -0
  702. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.svg +47 -0
  703. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.ttf +0 -0
  704. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.woff +0 -0
  705. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/loading.gif +0 -0
  706. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/video-play.png +0 -0
  707. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/vimeo-play.png +0 -0
  708. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/youtube-play.png +0 -0
  709. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/animation-w.png +0 -0
  710. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/customize-w.png +0 -0
  711. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/dynamic-w.png +0 -0
  712. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/facebook-icon.svg +10 -0
  713. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/googleplus-icon.svg +30 -0
  714. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/html5-w.png +0 -0
  715. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/linked-in.png +0 -0
  716. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/module-w.png +0 -0
  717. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/play-button.png +0 -0
  718. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/responsive-w.png +0 -0
  719. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/thumb-w.png +0 -0
  720. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/touch-w.png +0 -0
  721. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/twitter-icon.svg +15 -0
  722. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/twitter.png +0 -0
  723. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/video1-w.png +0 -0
  724. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/zoom-w.png +0 -0
  725. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/zoom.png +0 -0
  726. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/uno.css +263 -0
  727. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/uno.min.css +17 -0
  728. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/core/lightgallery.js +1362 -0
  729. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/core/lightgallery.min.js +5 -0
  730. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/j1/j1-video.js +402 -0
  731. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/j1/j1-video.min.js +8 -0
  732. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-autoplay.js +206 -0
  733. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-autoplay.min.js +5 -0
  734. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-fullscreen.js +126 -0
  735. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-fullscreen.min.js +5 -0
  736. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-hash.js +101 -0
  737. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-hash.min.js +5 -0
  738. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-pager.js +105 -0
  739. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-pager.min.js +5 -0
  740. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-share.js +107 -0
  741. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-share.min.js +5 -0
  742. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-thumbnail.js +478 -0
  743. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-thumbnail.min.js +5 -0
  744. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-video.js +342 -0
  745. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-video.min.js +5 -0
  746. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-zoom.js +527 -0
  747. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-zoom.min.js +5 -0
  748. data/lib/starter_web/assets/themes/j1/extensions/log4javascript/log4javascript.js +5826 -0
  749. data/lib/starter_web/assets/themes/j1/extensions/log4javascript/log4javascript.min.js +266 -0
  750. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.dark/theme.css +78 -0
  751. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.light/theme.css +77 -0
  752. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.monokai.dark/theme.css +78 -0
  753. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.monokai.light/theme.css +77 -0
  754. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.monokai/theme.css +78 -0
  755. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.solarized.dark/theme.css +78 -0
  756. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.solarized.light/theme.css +77 -0
  757. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.solarized/theme.css +77 -0
  758. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16/theme.css +77 -0
  759. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/colorful/theme.css +170 -0
  760. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/github/theme.css +209 -0
  761. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/gruvbox.dark/theme.css +84 -0
  762. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/gruvbox.light/theme.css +84 -0
  763. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/gruvbox/theme.css +84 -0
  764. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/igorpro/theme.css +32 -0
  765. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/molokai/theme.css +208 -0
  766. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/monokai.sublime/theme.css +187 -0
  767. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/monokai/theme.css +210 -0
  768. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/pastie/theme.css +146 -0
  769. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/thankful_eyes/theme.css +173 -0
  770. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/tulip/theme.css +164 -0
  771. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/city.css +147 -0
  772. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/city.min.css +6 -0
  773. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/fantasy.css +113 -0
  774. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/fantasy.min.css +6 -0
  775. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/forest.css +165 -0
  776. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/forest.min.css +6 -0
  777. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/sea.css +72 -0
  778. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/sea.min.css +6 -0
  779. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/video-js.css +1663 -0
  780. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/video-js.min.css +1 -0
  781. data/lib/starter_web/assets/themes/j1/extensions/videojs/js/video.js +55690 -0
  782. data/lib/starter_web/assets/themes/j1/extensions/videojs/js/video.min.js +28 -0
  783. data/lib/starter_web/assets/themes/j1/extensions/vimeo/froogaloop/js/froogaloop2.min.js +4 -0
  784. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.js +2138 -0
  785. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.js.map +1 -0
  786. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.min.js +2 -0
  787. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.min.js.map +1 -0
  788. data/lib/starter_web/assets/videos/gallery/adriana-lima-poster.jpg +0 -0
  789. data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
  790. data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
  791. data/lib/starter_web/assets/videos/gallery/video1-thumb.jpg +0 -0
  792. data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
  793. data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
  794. data/lib/starter_web/assets/videos/gallery/video_adele-poster.jpg +0 -0
  795. data/lib/starter_web/assets/videos/gallery/video_gaga-poster.jpg +0 -0
  796. data/lib/starter_web/assets/videos/gallery/video_gwen-poster.jpg +0 -0
  797. data/lib/starter_web/assets/videos/gallery/video_michelle-poster.jpg +0 -0
  798. data/lib/starter_web/assets/videos/headers/still/underground-broadway.png +0 -0
  799. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.png +0 -0
  800. data/lib/starter_web/collections/posts/private/readme +0 -0
  801. data/lib/starter_web/collections/posts/protected/readme +0 -0
  802. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +160 -0
  803. data/lib/starter_web/collections/posts/public/featured/_posts/000_includes/attributes.asciidoc +47 -0
  804. data/lib/starter_web/collections/posts/public/featured/_posts/000_includes/unsplash-badge.asciidoc +31 -0
  805. data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +97 -0
  806. data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +197 -0
  807. data/lib/starter_web/collections/posts/public/jekyll/_posts/2018-05-01-confusion-about-base-url.adoc +105 -0
  808. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/attributes.asciidoc +66 -0
  809. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/documents/100-docker-using-shared-folders.asciidoc +430 -0
  810. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/documents/loop.sh +28 -0
  811. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/tables/debug_variables.asciidoc +48 -0
  812. data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +504 -0
  813. data/lib/starter_web/collections/posts/public/wikipedia/_posts/000_includes/attributes.asciidoc +46 -0
  814. data/lib/starter_web/collections/posts/public/wikipedia/_posts/000_includes/tables/debug_variables.asciidoc +48 -0
  815. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +126 -0
  816. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +88 -0
  817. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +86 -0
  818. data/lib/starter_web/config.ru +24 -0
  819. data/lib/starter_web/dot.gitattributes +31 -0
  820. data/lib/starter_web/dot.gitignore +55 -0
  821. data/lib/starter_web/dot.nojekyll +19 -0
  822. data/lib/starter_web/favicon.ico +0 -0
  823. data/lib/starter_web/index.html +68 -0
  824. data/lib/starter_web/package.json +136 -0
  825. data/lib/starter_web/pages/private/readme +0 -0
  826. data/lib/starter_web/pages/protected/readme +0 -0
  827. data/lib/starter_web/pages/public/about/about_site.adoc +40 -0
  828. data/lib/starter_web/pages/public/about/become_a_patron.adoc +50 -0
  829. data/lib/starter_web/pages/public/blog/navigator/archive.html +111 -0
  830. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +153 -0
  831. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +133 -0
  832. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +187 -0
  833. data/lib/starter_web/pages/public/blog/navigator/index.html +47 -0
  834. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/attributes.asciidoc +174 -0
  835. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/documents/100_meet_and_greet_jekyll.asciidoc +31 -0
  836. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/documents/200_preparations.asciidoc +14 -0
  837. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/documents/300_first_awesome_web.asciidoc +12 -0
  838. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/parts.asciidoc +193 -0
  839. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +79 -0
  840. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +72 -0
  841. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +70 -0
  842. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.1.asciidoc +121 -0
  843. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.adoc +145 -0
  844. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +644 -0
  845. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/attributes.asciidoc +117 -0
  846. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/100_gistblock.asciidoc +27 -0
  847. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_info.asciidoc +11 -0
  848. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  849. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  850. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_central_success.asciidoc +11 -0
  851. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_full_height_left_info.asciidoc +11 -0
  852. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_full_height_right_success.asciidoc +11 -0
  853. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_table_3_column.asciidoc +47 -0
  854. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_info.asciidoc +11 -0
  855. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_left_info.asciidoc +11 -0
  856. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_right_success.asciidoc +11 -0
  857. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +928 -0
  858. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +304 -0
  859. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +152 -0
  860. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +524 -0
  861. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +435 -0
  862. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +536 -0
  863. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +128 -0
  864. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +281 -0
  865. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +138 -0
  866. data/lib/starter_web/pages/public/learn/roundtrip/bs_tour.js +98 -0
  867. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/attributes.asciidoc +117 -0
  868. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/100_gistblock.asciidoc +27 -0
  869. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_info.asciidoc +11 -0
  870. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  871. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  872. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_central_success.asciidoc +11 -0
  873. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_left_info.asciidoc +11 -0
  874. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_right_success.asciidoc +11 -0
  875. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_table_3_column.asciidoc +47 -0
  876. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_info.asciidoc +11 -0
  877. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_left_info.asciidoc +11 -0
  878. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_right_success.asciidoc +11 -0
  879. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/419_advanced_modals_html.asciidoc +928 -0
  880. data/lib/starter_web/pages/public/learn/vtutorials/000_test_youtube_video.adoc +141 -0
  881. data/lib/starter_web/pages/public/learn/vtutorials/100_basic_video.adoc +109 -0
  882. data/lib/starter_web/pages/public/learn/whats_up.adoc +117 -0
  883. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +97 -0
  884. data/lib/starter_web/pages/public/legal/de/200_terms_of_use.adoc +54 -0
  885. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +300 -0
  886. data/lib/starter_web/pages/public/legal/de/400_license_agreement.adoc +394 -0
  887. data/lib/starter_web/pages/public/legal/de/500_support.adoc +19 -0
  888. data/lib/starter_web/pages/public/legal/en/000_copyright.adoc +89 -0
  889. data/lib/starter_web/pages/public/legal/en/100_impress.adoc +51 -0
  890. data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +48 -0
  891. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +394 -0
  892. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +432 -0
  893. data/lib/starter_web/pages/public/legal/en/500_support.adoc +19 -0
  894. data/lib/starter_web/pages/public/legal/en/eu/cookie.policy.asciidoc +55 -0
  895. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +158 -0
  896. data/lib/starter_web/pages/public/previewer/000_includes/attributes.asciidoc +116 -0
  897. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +39 -0
  898. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +47 -0
  899. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +87 -0
  900. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +71 -0
  901. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/300_flip.asciidoc +31 -0
  902. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +39 -0
  903. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +61 -0
  904. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +55 -0
  905. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +95 -0
  906. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +95 -0
  907. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +95 -0
  908. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +47 -0
  909. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +47 -0
  910. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/200_rotate.asciidoc +71 -0
  911. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/300_flip.asciidoc +30 -0
  912. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +31 -0
  913. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1858 -0
  914. data/lib/starter_web/pages/public/previewer/iframer.adoc +83 -0
  915. data/lib/starter_web/pages/public/previewer/justified_gallery.html +33 -0
  916. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +295 -0
  917. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +195 -0
  918. data/lib/starter_web/utilsrv/_defaults/package.json +52 -0
  919. data/lib/starter_web/utilsrv/package.json +52 -0
  920. data/lib/starter_web/utilsrv/server.js +601 -0
  921. metadata +1213 -0
@@ -0,0 +1,70 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>iFrame message passing test</title>
6
+ <meta name="description" content="iFrame message passing test">
7
+ <meta name="viewport" content="width=device-width">
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
9
+ </head>
10
+ <body>
11
+ <h2>Automagically resizing iFrame</h2>
12
+ <p>Resize window or click one of the links in the iFrame to watch it resize. Or try with <a name="anchorParentTest" href="two.html">two iFrames</a>.</p>
13
+ <div style="margin:20px;">
14
+ <iframe src="frame.content.html" width="100%" scrolling="no"></iframe>
15
+ </div>
16
+ <p id="callback">
17
+ </p>
18
+ <div style="margin: 8px 0;font-size:13px;">
19
+ For details on how this works, see
20
+ <a href="http://davidjbradshaw.github.io/iframe-resizer/">http://davidjbradshaw.github.io/iframe-resizer/</a>.
21
+ </div>
22
+
23
+ <!-- MDN PolyFils for IE8 (This is not normally needed if you use the jQuery version) -->
24
+ <!--[if lte IE 8]>
25
+ <script src="../js/ie8.polyfils.min.js"></script>
26
+ <![endif]-->
27
+
28
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
29
+ <script src="../js/client/iframeResizer.contentWindow.min.js" defer></script>
30
+
31
+ <script>
32
+ /*
33
+ * If you do not understand what the code below does, then please just use the
34
+ * following call in your own code.
35
+ *
36
+ * iFrameResize({log:true});
37
+ *
38
+ * Once you have it working, set the log option to false.
39
+ */
40
+
41
+ iFrameResize({
42
+ log : true,
43
+ inPageLinks : true,
44
+ resizedCallback : function(messageData){
45
+ $('p#callback').html(
46
+ '<b>Frame ID:</b> ' + messageData.iframe.id +
47
+ ' <b>Height:</b> ' + messageData.height +
48
+ ' <b>Width:</b> ' + messageData.width +
49
+ ' <b>Event type:</b> ' + messageData.type
50
+ );
51
+ },
52
+ messageCallback : function(messageData){
53
+ $('p#callback').html(
54
+ '<b>Frame ID:</b> ' + messageData.iframe.id +
55
+ ' <b>Message:</b> ' + messageData.message
56
+ );
57
+ alert(messageData.message);
58
+ document.getElementsByTagName('iframe')[0].iFrameResizer.sendMessage('Hello back from parent page');
59
+ },
60
+ closedCallback : function(id){
61
+ $('p#callback').html(
62
+ '<b>IFrame (</b>' + id +
63
+ '<b>) removed from page.</b>'
64
+ );
65
+ }
66
+ });
67
+ </script>
68
+
69
+ </body>
70
+ </html>
@@ -0,0 +1,71 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>iFrame message passing test</title>
6
+ <meta name="description" content="iFrame message passing test">
7
+ <meta name="viewport" content="width=device-width">
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
9
+ </head>
10
+ <body>
11
+ <h2>Automagically resizing iFrame</h2>
12
+ <p>Resize window or click one of the links in the iFrame to watch it resize. Or go back to a <a name="anchorParentTest" href="index.html">single iFrame</a>.</p>
13
+ <div style="margin:20px;">
14
+ <iframe src="frame.content.html" width="48%" scrolling="no" style="float:left;margin-right:2%"></iframe>
15
+ <iframe src="frame.content.html" width="48%" scrolling="no"></iframe>
16
+ </div>
17
+ <p id="callback">
18
+ </p>
19
+ <div style="margin: 8px 0;font-size:13px;">
20
+ For details on how this works, see
21
+ <a href="http://davidjbradshaw.github.io/iframe-resizer/">http://davidjbradshaw.github.io/iframe-resizer/</a>.
22
+ </div>
23
+
24
+ <!-- MDN PolyFils for IE8 -->
25
+ <!--[if lte IE 8]>
26
+ <script src="../js/ie8.polyfils.min.js"></script>
27
+ <![endif]-->
28
+
29
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
30
+ <script src="../js/client/iframeResizer.contentWindow.min.js" defer></script>
31
+
32
+ <script>
33
+ /*
34
+ * If you do not understand what the code below does, then please just use the
35
+ * following call in your own code.
36
+ *
37
+ * iFrameResize({log:true});
38
+ *
39
+ * Once you have it working, set the log option to false.
40
+ */
41
+
42
+ iFrameResize({
43
+ log : true,
44
+ enablePublicMethods : true,
45
+ enableInPageLinks : true,
46
+ resizedCallback : function(messageData){
47
+ $('p#callback').html(
48
+ '<b>Frame ID:</b> ' + messageData.iframe.id +
49
+ ' <b>Height:</b> ' + messageData.height +
50
+ ' <b>Width:</b> ' + messageData.width +
51
+ ' <b>Event type:</b> ' + messageData.type
52
+ );
53
+ },
54
+ messageCallback : function(messageData){
55
+ $('p#callback').html(
56
+ '<b>Frame ID:</b> ' + messageData.iframe.id +
57
+ ' <b>Message:</b> ' + messageData.message
58
+ );
59
+ alert(messageData.message + ' (' + messageData.iframe.id + ')' );
60
+ },
61
+ closedCallback : function(id){
62
+ $('p#callback').html(
63
+ '<b>IFrame (</b>' + id +
64
+ '<b>) removed from page.</b>'
65
+ );
66
+ }
67
+ });
68
+ </script>
69
+
70
+ </body>
71
+ </html>
@@ -0,0 +1,1104 @@
1
+ /*
2
+ * File: iframeResizer.contentWindow.js
3
+ * Desc: Include this file in any page being loaded into an iframe
4
+ * to force the iframe to resize to the content size.
5
+ * Requires: iframeResizer.js on host page.
6
+ * Doc: https://github.com/davidjbradshaw/iframe-resizer
7
+ * Author: David J. Bradshaw - dave@bradshaw.net
8
+ * Contributor: Jure Mav - jure.mav@gmail.com
9
+ * Contributor: Ian Caunce - ian@hallnet.co.uk
10
+ */
11
+
12
+
13
+ ;(function(window, undefined) {
14
+ 'use strict';
15
+
16
+ var
17
+ autoResize = true,
18
+ base = 10,
19
+ bodyBackground = '',
20
+ bodyMargin = 0,
21
+ bodyMarginStr = '',
22
+ bodyObserver = null,
23
+ bodyPadding = '',
24
+ calculateWidth = false,
25
+ doubleEventList = {'resize':1,'click':1},
26
+ eventCancelTimer = 128,
27
+ firstRun = true,
28
+ height = 1,
29
+ heightCalcModeDefault = 'bodyOffset',
30
+ heightCalcMode = heightCalcModeDefault,
31
+ initLock = true,
32
+ initMsg = '',
33
+ inPageLinks = {},
34
+ interval = 32,
35
+ intervalTimer = null,
36
+ logging = false,
37
+ msgID = '[iFrameSizer]', //Must match host page msg ID
38
+ msgIdLen = msgID.length,
39
+ myID = '',
40
+ observer = null,
41
+ resetRequiredMethods = {max:1,min:1,bodyScroll:1,documentElementScroll:1},
42
+ resizeFrom = 'child',
43
+ sendPermit = true,
44
+ target = window.parent,
45
+ targetOriginDefault = '*',
46
+ tolerance = 0,
47
+ triggerLocked = false,
48
+ triggerLockedTimer = null,
49
+ throttledTimer = 16,
50
+ width = 1,
51
+ widthCalcModeDefault = 'scroll',
52
+ widthCalcMode = widthCalcModeDefault,
53
+ win = window,
54
+ messageCallback = function(){ warn('MessageCallback function not defined'); },
55
+ readyCallback = function(){},
56
+ pageInfoCallback = function(){},
57
+ customCalcMethods = {
58
+ height: function(){
59
+ warn('Custom height calculation function not defined');
60
+ return document.documentElement.offsetHeight;
61
+ },
62
+ width: function(){
63
+ warn('Custom width calculation function not defined');
64
+ return document.body.scrollWidth;
65
+ }
66
+ },
67
+ eventHandlersByName = {};
68
+
69
+
70
+ function addEventListener(el,evt,func){
71
+ /* istanbul ignore else */ // Not testable in phantonJS
72
+ if ('addEventListener' in window){
73
+ el.addEventListener(evt,func, false);
74
+ } else if ('attachEvent' in window){ //IE
75
+ el.attachEvent('on'+evt,func);
76
+ }
77
+ }
78
+
79
+ function removeEventListener(el,evt,func){
80
+ /* istanbul ignore else */ // Not testable in phantonJS
81
+ if ('removeEventListener' in window){
82
+ el.removeEventListener(evt,func, false);
83
+ } else if ('detachEvent' in window){ //IE
84
+ el.detachEvent('on'+evt,func);
85
+ }
86
+ }
87
+
88
+ function capitalizeFirstLetter(string) {
89
+ return string.charAt(0).toUpperCase() + string.slice(1);
90
+ }
91
+
92
+ //Based on underscore.js
93
+ function throttle(func) {
94
+ var
95
+ context, args, result,
96
+ timeout = null,
97
+ previous = 0,
98
+ later = function() {
99
+ previous = getNow();
100
+ timeout = null;
101
+ result = func.apply(context, args);
102
+ if (!timeout) {
103
+ context = args = null;
104
+ }
105
+ };
106
+
107
+ return function() {
108
+ var now = getNow();
109
+
110
+ if (!previous) {
111
+ previous = now;
112
+ }
113
+
114
+ var remaining = throttledTimer - (now - previous);
115
+
116
+ context = this;
117
+ args = arguments;
118
+
119
+ if (remaining <= 0 || remaining > throttledTimer) {
120
+ if (timeout) {
121
+ clearTimeout(timeout);
122
+ timeout = null;
123
+ }
124
+
125
+ previous = now;
126
+ result = func.apply(context, args);
127
+
128
+ if (!timeout) {
129
+ context = args = null;
130
+ }
131
+
132
+ } else if (!timeout) {
133
+ timeout = setTimeout(later, remaining);
134
+ }
135
+
136
+ return result;
137
+ };
138
+ }
139
+
140
+ var getNow = Date.now || function() {
141
+ /* istanbul ignore next */ // Not testable in PhantonJS
142
+ return new Date().getTime();
143
+ };
144
+
145
+ function formatLogMsg(msg){
146
+ return msgID + '[' + myID + ']' + ' ' + msg;
147
+ }
148
+
149
+ function log(msg){
150
+ if (logging && ('object' === typeof window.console)){
151
+ console.log(formatLogMsg(msg));
152
+ }
153
+ }
154
+
155
+ function warn(msg){
156
+ if ('object' === typeof window.console){
157
+ console.warn(formatLogMsg(msg));
158
+ }
159
+ }
160
+
161
+
162
+ function init(){
163
+ readDataFromParent();
164
+ log('Initialising iFrame ('+location.href+')');
165
+ readDataFromPage();
166
+ setMargin();
167
+ setBodyStyle('background',bodyBackground);
168
+ setBodyStyle('padding',bodyPadding);
169
+ injectClearFixIntoBodyElement();
170
+ checkHeightMode();
171
+ checkWidthMode();
172
+ stopInfiniteResizingOfIFrame();
173
+ setupPublicMethods();
174
+ startEventListeners();
175
+ inPageLinks = setupInPageLinks();
176
+ sendSize('init','Init message from host page');
177
+ readyCallback();
178
+ }
179
+
180
+ function readDataFromParent(){
181
+
182
+ function strBool(str){
183
+ return 'true' === str ? true : false;
184
+ }
185
+
186
+ var data = initMsg.substr(msgIdLen).split(':');
187
+
188
+ myID = data[0];
189
+ bodyMargin = (undefined !== data[1]) ? Number(data[1]) : bodyMargin; //For V1 compatibility
190
+ calculateWidth = (undefined !== data[2]) ? strBool(data[2]) : calculateWidth;
191
+ logging = (undefined !== data[3]) ? strBool(data[3]) : logging;
192
+ interval = (undefined !== data[4]) ? Number(data[4]) : interval;
193
+ autoResize = (undefined !== data[6]) ? strBool(data[6]) : autoResize;
194
+ bodyMarginStr = data[7];
195
+ heightCalcMode = (undefined !== data[8]) ? data[8] : heightCalcMode;
196
+ bodyBackground = data[9];
197
+ bodyPadding = data[10];
198
+ tolerance = (undefined !== data[11]) ? Number(data[11]) : tolerance;
199
+ inPageLinks.enable = (undefined !== data[12]) ? strBool(data[12]): false;
200
+ resizeFrom = (undefined !== data[13]) ? data[13] : resizeFrom;
201
+ widthCalcMode = (undefined !== data[14]) ? data[14] : widthCalcMode;
202
+ }
203
+
204
+ function readDataFromPage(){
205
+ function readData(){
206
+ var data = window.iFrameResizer;
207
+
208
+ log('Reading data from page: ' + JSON.stringify(data));
209
+
210
+ messageCallback = ('messageCallback' in data) ? data.messageCallback : messageCallback;
211
+ readyCallback = ('readyCallback' in data) ? data.readyCallback : readyCallback;
212
+ targetOriginDefault = ('targetOrigin' in data) ? data.targetOrigin : targetOriginDefault;
213
+ heightCalcMode = ('heightCalculationMethod' in data) ? data.heightCalculationMethod : heightCalcMode;
214
+ widthCalcMode = ('widthCalculationMethod' in data) ? data.widthCalculationMethod : widthCalcMode;
215
+ }
216
+
217
+ function setupCustomCalcMethods(calcMode, calcFunc){
218
+ if ('function' === typeof calcMode) {
219
+ log('Setup custom ' + calcFunc + 'CalcMethod');
220
+ customCalcMethods[calcFunc] = calcMode;
221
+ calcMode = 'custom';
222
+ }
223
+
224
+ return calcMode;
225
+ }
226
+
227
+ if(('iFrameResizer' in window) && (Object === window.iFrameResizer.constructor)) {
228
+ readData();
229
+ heightCalcMode = setupCustomCalcMethods(heightCalcMode, 'height');
230
+ widthCalcMode = setupCustomCalcMethods(widthCalcMode, 'width');
231
+ }
232
+
233
+ log('TargetOrigin for parent set to: ' + targetOriginDefault);
234
+ }
235
+
236
+
237
+ function chkCSS(attr,value){
238
+ if (-1 !== value.indexOf('-')){
239
+ warn('Negative CSS value ignored for '+attr);
240
+ value='';
241
+ }
242
+ return value;
243
+ }
244
+
245
+ function setBodyStyle(attr,value){
246
+ if ((undefined !== value) && ('' !== value) && ('null' !== value)){
247
+ document.body.style[attr] = value;
248
+ log('Body '+attr+' set to "'+value+'"');
249
+ }
250
+ }
251
+
252
+ function setMargin(){
253
+ //If called via V1 script, convert bodyMargin from int to str
254
+ if (undefined === bodyMarginStr){
255
+ bodyMarginStr = bodyMargin+'px';
256
+ }
257
+
258
+ setBodyStyle('margin',chkCSS('margin',bodyMarginStr));
259
+ }
260
+
261
+ function stopInfiniteResizingOfIFrame(){
262
+ document.documentElement.style.height = '';
263
+ document.body.style.height = '';
264
+ log('HTML & body height set to "auto"');
265
+ }
266
+
267
+
268
+ function manageTriggerEvent(options){
269
+
270
+ var listener = {
271
+ add: function(eventName){
272
+ function handleEvent(){
273
+ sendSize(options.eventName,options.eventType);
274
+ }
275
+
276
+ eventHandlersByName[eventName] = handleEvent;
277
+
278
+ addEventListener(window,eventName,handleEvent);
279
+ },
280
+ remove: function(eventName){
281
+ var handleEvent = eventHandlersByName[eventName];
282
+ delete eventHandlersByName[eventName];
283
+
284
+ removeEventListener(window,eventName,handleEvent);
285
+ }
286
+ };
287
+
288
+ if(options.eventNames && Array.prototype.map){
289
+ options.eventName = options.eventNames[0];
290
+ options.eventNames.map(listener[options.method]);
291
+ } else {
292
+ listener[options.method](options.eventName);
293
+ }
294
+
295
+ log(capitalizeFirstLetter(options.method) + ' event listener: ' + options.eventType);
296
+ }
297
+
298
+ function manageEventListeners(method){
299
+ manageTriggerEvent({method:method, eventType: 'Animation Start', eventNames: ['animationstart','webkitAnimationStart'] });
300
+ manageTriggerEvent({method:method, eventType: 'Animation Iteration', eventNames: ['animationiteration','webkitAnimationIteration'] });
301
+ manageTriggerEvent({method:method, eventType: 'Animation End', eventNames: ['animationend','webkitAnimationEnd'] });
302
+ manageTriggerEvent({method:method, eventType: 'Input', eventName: 'input' });
303
+ manageTriggerEvent({method:method, eventType: 'Mouse Up', eventName: 'mouseup' });
304
+ manageTriggerEvent({method:method, eventType: 'Mouse Down', eventName: 'mousedown' });
305
+ manageTriggerEvent({method:method, eventType: 'Orientation Change', eventName: 'orientationchange' });
306
+ manageTriggerEvent({method:method, eventType: 'Print', eventName: ['afterprint', 'beforeprint'] });
307
+ manageTriggerEvent({method:method, eventType: 'Ready State Change', eventName: 'readystatechange' });
308
+ manageTriggerEvent({method:method, eventType: 'Touch Start', eventName: 'touchstart' });
309
+ manageTriggerEvent({method:method, eventType: 'Touch End', eventName: 'touchend' });
310
+ manageTriggerEvent({method:method, eventType: 'Touch Cancel', eventName: 'touchcancel' });
311
+ manageTriggerEvent({method:method, eventType: 'Transition Start', eventNames: ['transitionstart','webkitTransitionStart','MSTransitionStart','oTransitionStart','otransitionstart'] });
312
+ manageTriggerEvent({method:method, eventType: 'Transition Iteration', eventNames: ['transitioniteration','webkitTransitionIteration','MSTransitionIteration','oTransitionIteration','otransitioniteration'] });
313
+ manageTriggerEvent({method:method, eventType: 'Transition End', eventNames: ['transitionend','webkitTransitionEnd','MSTransitionEnd','oTransitionEnd','otransitionend'] });
314
+ if('child' === resizeFrom){
315
+ manageTriggerEvent({method:method, eventType: 'IFrame Resized', eventName: 'resize' });
316
+ }
317
+ }
318
+
319
+ function checkCalcMode(calcMode,calcModeDefault,modes,type){
320
+ if (calcModeDefault !== calcMode){
321
+ if (!(calcMode in modes)){
322
+ warn(calcMode + ' is not a valid option for '+type+'CalculationMethod.');
323
+ calcMode=calcModeDefault;
324
+ }
325
+ log(type+' calculation method set to "'+calcMode+'"');
326
+ }
327
+
328
+ return calcMode;
329
+ }
330
+
331
+ function checkHeightMode(){
332
+ heightCalcMode = checkCalcMode(heightCalcMode,heightCalcModeDefault,getHeight,'height');
333
+ }
334
+
335
+ function checkWidthMode(){
336
+ widthCalcMode = checkCalcMode(widthCalcMode,widthCalcModeDefault,getWidth,'width');
337
+ }
338
+
339
+ function startEventListeners(){
340
+ if ( true === autoResize ) {
341
+ manageEventListeners('add');
342
+ setupMutationObserver();
343
+ }
344
+ else {
345
+ log('Auto Resize disabled');
346
+ }
347
+ }
348
+
349
+ function stopMsgsToParent(){
350
+ log('Disable outgoing messages');
351
+ sendPermit = false;
352
+ }
353
+
354
+ function removeMsgListener(){
355
+ log('Remove event listener: Message');
356
+ removeEventListener(window, 'message', receiver);
357
+ }
358
+
359
+ function disconnectMutationObserver(){
360
+ if (null !== bodyObserver){
361
+ /* istanbul ignore next */ // Not testable in PhantonJS
362
+ bodyObserver.disconnect();
363
+ }
364
+ }
365
+
366
+ function stopEventListeners(){
367
+ manageEventListeners('remove');
368
+ disconnectMutationObserver();
369
+ clearInterval(intervalTimer);
370
+ }
371
+
372
+ function teardown(){
373
+ stopMsgsToParent();
374
+ removeMsgListener();
375
+ if (true === autoResize) stopEventListeners();
376
+ }
377
+
378
+ function injectClearFixIntoBodyElement(){
379
+ var clearFix = document.createElement('div');
380
+ clearFix.style.clear = 'both';
381
+ clearFix.style.display = 'block'; //Guard against this having been globally redefined in CSS.
382
+ document.body.appendChild(clearFix);
383
+ }
384
+
385
+ function setupInPageLinks(){
386
+
387
+ function getPagePosition (){
388
+ return {
389
+ x: (window.pageXOffset !== undefined) ? window.pageXOffset : document.documentElement.scrollLeft,
390
+ y: (window.pageYOffset !== undefined) ? window.pageYOffset : document.documentElement.scrollTop
391
+ };
392
+ }
393
+
394
+ function getElementPosition(el){
395
+ var
396
+ elPosition = el.getBoundingClientRect(),
397
+ pagePosition = getPagePosition();
398
+
399
+ return {
400
+ x: parseInt(elPosition.left,10) + parseInt(pagePosition.x,10),
401
+ y: parseInt(elPosition.top,10) + parseInt(pagePosition.y,10)
402
+ };
403
+ }
404
+
405
+ function findTarget(location){
406
+ function jumpToTarget(target){
407
+ var jumpPosition = getElementPosition(target);
408
+
409
+ log('Moving to in page link (#'+hash+') at x: '+jumpPosition.x+' y: '+jumpPosition.y);
410
+ sendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset'); // X&Y reversed at sendMsg uses height/width
411
+ }
412
+
413
+ var
414
+ hash = location.split('#')[1] || location, //Remove # if present
415
+ hashData = decodeURIComponent(hash),
416
+ target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
417
+
418
+ if (undefined !== target){
419
+ jumpToTarget(target);
420
+ } else {
421
+ log('In page link (#' + hash + ') not found in iFrame, so sending to parent');
422
+ sendMsg(0,0,'inPageLink','#'+hash);
423
+ }
424
+ }
425
+
426
+ function checkLocationHash(){
427
+ if ('' !== location.hash && '#' !== location.hash){
428
+ findTarget(location.href);
429
+ }
430
+ }
431
+
432
+ function bindAnchors(){
433
+ function setupLink(el){
434
+ function linkClicked(e){
435
+ e.preventDefault();
436
+
437
+ /*jshint validthis:true */
438
+ findTarget(this.getAttribute('href'));
439
+ }
440
+
441
+ if ('#' !== el.getAttribute('href')){
442
+ addEventListener(el,'click',linkClicked);
443
+ }
444
+ }
445
+
446
+ Array.prototype.forEach.call( document.querySelectorAll( 'a[href^="#"]' ), setupLink );
447
+ }
448
+
449
+ function bindLocationHash(){
450
+ addEventListener(window,'hashchange',checkLocationHash);
451
+ }
452
+
453
+ function initCheck(){ //check if page loaded with location hash after init resize
454
+ setTimeout(checkLocationHash,eventCancelTimer);
455
+ }
456
+
457
+ function enableInPageLinks(){
458
+ /* istanbul ignore else */ // Not testable in phantonJS
459
+ if(Array.prototype.forEach && document.querySelectorAll){
460
+ log('Setting up location.hash handlers');
461
+ bindAnchors();
462
+ bindLocationHash();
463
+ initCheck();
464
+ } else {
465
+ warn('In page linking not fully supported in this browser! (See README.md for IE8 workaround)');
466
+ }
467
+ }
468
+
469
+ if(inPageLinks.enable){
470
+ enableInPageLinks();
471
+ } else {
472
+ log('In page linking not enabled');
473
+ }
474
+
475
+ return {
476
+ findTarget:findTarget
477
+ };
478
+ }
479
+
480
+ function setupPublicMethods(){
481
+ log('Enable public methods');
482
+
483
+ win.parentIFrame = {
484
+
485
+ autoResize: function autoResizeF(resize){
486
+ if (true === resize && false === autoResize) {
487
+ autoResize=true;
488
+ startEventListeners();
489
+ //sendSize('autoResize','Auto Resize enabled');
490
+ } else if (false === resize && true === autoResize) {
491
+ autoResize=false;
492
+ stopEventListeners();
493
+ }
494
+
495
+ return autoResize;
496
+ },
497
+
498
+ close: function closeF(){
499
+ sendMsg(0,0,'close');
500
+ teardown();
501
+ },
502
+
503
+ getId: function getIdF(){
504
+ return myID;
505
+ },
506
+
507
+ getPageInfo: function getPageInfoF(callback){
508
+ if ('function' === typeof callback){
509
+ pageInfoCallback = callback;
510
+ sendMsg(0,0,'pageInfo');
511
+ } else {
512
+ pageInfoCallback = function(){};
513
+ sendMsg(0,0,'pageInfoStop');
514
+ }
515
+ },
516
+
517
+ moveToAnchor: function moveToAnchorF(hash){
518
+ inPageLinks.findTarget(hash);
519
+ },
520
+
521
+ reset: function resetF(){
522
+ resetIFrame('parentIFrame.reset');
523
+ },
524
+
525
+ scrollTo: function scrollToF(x,y){
526
+ sendMsg(y,x,'scrollTo'); // X&Y reversed at sendMsg uses height/width
527
+ },
528
+
529
+ scrollToOffset: function scrollToF(x,y){
530
+ sendMsg(y,x,'scrollToOffset'); // X&Y reversed at sendMsg uses height/width
531
+ },
532
+
533
+ sendMessage: function sendMessageF(msg,targetOrigin){
534
+ sendMsg(0,0,'message',JSON.stringify(msg),targetOrigin);
535
+ },
536
+
537
+ setHeightCalculationMethod: function setHeightCalculationMethodF(heightCalculationMethod){
538
+ heightCalcMode = heightCalculationMethod;
539
+ checkHeightMode();
540
+ },
541
+
542
+ setWidthCalculationMethod: function setWidthCalculationMethodF(widthCalculationMethod){
543
+ widthCalcMode = widthCalculationMethod;
544
+ checkWidthMode();
545
+ },
546
+
547
+ setTargetOrigin: function setTargetOriginF(targetOrigin){
548
+ log('Set targetOrigin: '+targetOrigin);
549
+ targetOriginDefault = targetOrigin;
550
+ },
551
+
552
+ size: function sizeF(customHeight, customWidth){
553
+ var valString = ''+(customHeight?customHeight:'')+(customWidth?','+customWidth:'');
554
+ //lockTrigger();
555
+ sendSize('size','parentIFrame.size('+valString+')', customHeight, customWidth);
556
+ }
557
+ };
558
+ }
559
+
560
+ function initInterval(){
561
+ if ( 0 !== interval ){
562
+ log('setInterval: '+interval+'ms');
563
+ intervalTimer = setInterval(function(){
564
+ sendSize('interval','setInterval: '+interval);
565
+ },Math.abs(interval));
566
+ }
567
+ }
568
+
569
+ /* istanbul ignore next */ //Not testable in PhantomJS
570
+ function setupBodyMutationObserver(){
571
+ function addImageLoadListners(mutation) {
572
+ function addImageLoadListener(element){
573
+ if (false === element.complete) {
574
+ log('Attach listeners to ' + element.src);
575
+ element.addEventListener('load', imageLoaded, false);
576
+ element.addEventListener('error', imageError, false);
577
+ elements.push(element);
578
+ }
579
+ }
580
+
581
+ if (mutation.type === 'attributes' && mutation.attributeName === 'src'){
582
+ addImageLoadListener(mutation.target);
583
+ } else if (mutation.type === 'childList'){
584
+ Array.prototype.forEach.call(
585
+ mutation.target.querySelectorAll('img'),
586
+ addImageLoadListener
587
+ );
588
+ }
589
+ }
590
+
591
+ function removeFromArray(element){
592
+ elements.splice(elements.indexOf(element),1);
593
+ }
594
+
595
+ function removeImageLoadListener(element){
596
+ log('Remove listeners from ' + element.src);
597
+ element.removeEventListener('load', imageLoaded, false);
598
+ element.removeEventListener('error', imageError, false);
599
+ removeFromArray(element);
600
+ }
601
+
602
+ function imageEventTriggered(event,type,typeDesc){
603
+ removeImageLoadListener(event.target);
604
+ sendSize(type, typeDesc + ': ' + event.target.src, undefined, undefined);
605
+ }
606
+
607
+ function imageLoaded(event) {
608
+ imageEventTriggered(event,'imageLoad','Image loaded');
609
+ }
610
+
611
+ function imageError(event) {
612
+ imageEventTriggered(event,'imageLoadFailed','Image load failed');
613
+ }
614
+
615
+ function mutationObserved(mutations) {
616
+ sendSize('mutationObserver','mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type);
617
+
618
+ //Deal with WebKit asyncing image loading when tags are injected into the page
619
+ mutations.forEach(addImageLoadListners);
620
+ }
621
+
622
+ function createMutationObserver(){
623
+ var
624
+ target = document.querySelector('body'),
625
+
626
+ config = {
627
+ attributes : true,
628
+ attributeOldValue : false,
629
+ characterData : true,
630
+ characterDataOldValue : false,
631
+ childList : true,
632
+ subtree : true
633
+ };
634
+
635
+ observer = new MutationObserver(mutationObserved);
636
+
637
+ log('Create body MutationObserver');
638
+ observer.observe(target, config);
639
+
640
+ return observer;
641
+ }
642
+
643
+ var
644
+ elements = [],
645
+ MutationObserver = window.MutationObserver || window.WebKitMutationObserver,
646
+ observer = createMutationObserver();
647
+
648
+ return {
649
+ disconnect: function (){
650
+ if ('disconnect' in observer){
651
+ log('Disconnect body MutationObserver');
652
+ observer.disconnect();
653
+ elements.forEach(removeImageLoadListener);
654
+ }
655
+ }
656
+ };
657
+ }
658
+
659
+ function setupMutationObserver(){
660
+ var forceIntervalTimer = 0 > interval;
661
+
662
+ /* istanbul ignore if */ // Not testable in PhantomJS
663
+ if (window.MutationObserver || window.WebKitMutationObserver){
664
+ if (forceIntervalTimer) {
665
+ initInterval();
666
+ } else {
667
+ bodyObserver = setupBodyMutationObserver();
668
+ }
669
+ } else {
670
+ log('MutationObserver not supported in this browser!');
671
+ initInterval();
672
+ }
673
+ }
674
+
675
+
676
+ // document.documentElement.offsetHeight is not reliable, so
677
+ // we have to jump through hoops to get a better value.
678
+ function getComputedStyle(prop,el) {
679
+ /* istanbul ignore next */ //Not testable in PhantomJS
680
+ function convertUnitsToPxForIE8(value) {
681
+ var PIXEL = /^\d+(px)?$/i;
682
+
683
+ if (PIXEL.test(value)) {
684
+ return parseInt(value,base);
685
+ }
686
+
687
+ var
688
+ style = el.style.left,
689
+ runtimeStyle = el.runtimeStyle.left;
690
+
691
+ el.runtimeStyle.left = el.currentStyle.left;
692
+ el.style.left = value || 0;
693
+ value = el.style.pixelLeft;
694
+ el.style.left = style;
695
+ el.runtimeStyle.left = runtimeStyle;
696
+
697
+ return value;
698
+ }
699
+
700
+ var retVal = 0;
701
+ el = el || document.body;
702
+
703
+ /* istanbul ignore else */ // Not testable in phantonJS
704
+ if (('defaultView' in document) && ('getComputedStyle' in document.defaultView)) {
705
+ retVal = document.defaultView.getComputedStyle(el, null);
706
+ retVal = (null !== retVal) ? retVal[prop] : 0;
707
+ } else {//IE8
708
+ retVal = convertUnitsToPxForIE8(el.currentStyle[prop]);
709
+ }
710
+
711
+ return parseInt(retVal,base);
712
+ }
713
+
714
+ function chkEventThottle(timer){
715
+ if(timer > throttledTimer/2){
716
+ throttledTimer = 2*timer;
717
+ log('Event throttle increased to ' + throttledTimer + 'ms');
718
+ }
719
+ }
720
+
721
+ //Idea from https://github.com/guardian/iframe-messenger
722
+ function getMaxElement(side,elements) {
723
+ var
724
+ elementsLength = elements.length,
725
+ elVal = 0,
726
+ maxVal = 0,
727
+ Side = capitalizeFirstLetter(side),
728
+ timer = getNow();
729
+
730
+ for (var i = 0; i < elementsLength; i++) {
731
+ elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle('margin'+Side,elements[i]);
732
+ if (elVal > maxVal) {
733
+ maxVal = elVal;
734
+ }
735
+ }
736
+
737
+ timer = getNow() - timer;
738
+
739
+ log('Parsed '+elementsLength+' HTML elements');
740
+ log('Element position calculated in ' + timer + 'ms');
741
+
742
+ chkEventThottle(timer);
743
+
744
+ return maxVal;
745
+ }
746
+
747
+ function getAllMeasurements(dimention){
748
+ return [
749
+ dimention.bodyOffset(),
750
+ dimention.bodyScroll(),
751
+ dimention.documentElementOffset(),
752
+ dimention.documentElementScroll()
753
+ ];
754
+ }
755
+
756
+ function getTaggedElements(side,tag){
757
+ function noTaggedElementsFound(){
758
+ warn('No tagged elements ('+tag+') found on page');
759
+ return document.querySelectorAll('body *');
760
+ }
761
+
762
+ var elements = document.querySelectorAll('['+tag+']');
763
+
764
+ if (0 === elements.length) noTaggedElementsFound();
765
+
766
+ return getMaxElement(side,elements);
767
+ }
768
+
769
+ function getAllElements(){
770
+ return document.querySelectorAll('body *');
771
+ }
772
+
773
+ var
774
+ getHeight = {
775
+ bodyOffset: function getBodyOffsetHeight(){
776
+ return document.body.offsetHeight + getComputedStyle('marginTop') + getComputedStyle('marginBottom');
777
+ },
778
+
779
+ offset: function(){
780
+ return getHeight.bodyOffset(); //Backwards compatability
781
+ },
782
+
783
+ bodyScroll: function getBodyScrollHeight(){
784
+ return document.body.scrollHeight;
785
+ },
786
+
787
+ custom: function getCustomWidth(){
788
+ return customCalcMethods.height();
789
+ },
790
+
791
+ documentElementOffset: function getDEOffsetHeight(){
792
+ return document.documentElement.offsetHeight;
793
+ },
794
+
795
+ documentElementScroll: function getDEScrollHeight(){
796
+ return document.documentElement.scrollHeight;
797
+ },
798
+
799
+ max: function getMaxHeight(){
800
+ return Math.max.apply(null,getAllMeasurements(getHeight));
801
+ },
802
+
803
+ min: function getMinHeight(){
804
+ return Math.min.apply(null,getAllMeasurements(getHeight));
805
+ },
806
+
807
+ grow: function growHeight(){
808
+ return getHeight.max(); //Run max without the forced downsizing
809
+ },
810
+
811
+ lowestElement: function getBestHeight(){
812
+ return Math.max(getHeight.bodyOffset(), getMaxElement('bottom',getAllElements()));
813
+ },
814
+
815
+ taggedElement: function getTaggedElementsHeight(){
816
+ return getTaggedElements('bottom','data-iframe-height');
817
+ }
818
+ },
819
+
820
+ getWidth = {
821
+ bodyScroll: function getBodyScrollWidth(){
822
+ return document.body.scrollWidth;
823
+ },
824
+
825
+ bodyOffset: function getBodyOffsetWidth(){
826
+ return document.body.offsetWidth;
827
+ },
828
+
829
+ custom: function getCustomWidth(){
830
+ return customCalcMethods.width();
831
+ },
832
+
833
+ documentElementScroll: function getDEScrollWidth(){
834
+ return document.documentElement.scrollWidth;
835
+ },
836
+
837
+ documentElementOffset: function getDEOffsetWidth(){
838
+ return document.documentElement.offsetWidth;
839
+ },
840
+
841
+ scroll: function getMaxWidth(){
842
+ return Math.max(getWidth.bodyScroll(), getWidth.documentElementScroll());
843
+ },
844
+
845
+ max: function getMaxWidth(){
846
+ return Math.max.apply(null,getAllMeasurements(getWidth));
847
+ },
848
+
849
+ min: function getMinWidth(){
850
+ return Math.min.apply(null,getAllMeasurements(getWidth));
851
+ },
852
+
853
+ rightMostElement: function rightMostElement(){
854
+ return getMaxElement('right', getAllElements());
855
+ },
856
+
857
+ taggedElement: function getTaggedElementsWidth(){
858
+ return getTaggedElements('right', 'data-iframe-width');
859
+ }
860
+ };
861
+
862
+
863
+ function sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth){
864
+
865
+ function resizeIFrame(){
866
+ height = currentHeight;
867
+ width = currentWidth;
868
+
869
+ sendMsg(height,width,triggerEvent);
870
+ }
871
+
872
+ function isSizeChangeDetected(){
873
+ function checkTolarance(a,b){
874
+ var retVal = Math.abs(a-b) <= tolerance;
875
+ return !retVal;
876
+ }
877
+
878
+ currentHeight = (undefined !== customHeight) ? customHeight : getHeight[heightCalcMode]();
879
+ currentWidth = (undefined !== customWidth ) ? customWidth : getWidth[widthCalcMode]();
880
+
881
+ return checkTolarance(height,currentHeight) || (calculateWidth && checkTolarance(width,currentWidth));
882
+ }
883
+
884
+ function isForceResizableEvent(){
885
+ return !(triggerEvent in {'init':1,'interval':1,'size':1});
886
+ }
887
+
888
+ function isForceResizableCalcMode(){
889
+ return (heightCalcMode in resetRequiredMethods) || (calculateWidth && widthCalcMode in resetRequiredMethods);
890
+ }
891
+
892
+ function logIgnored(){
893
+ log('No change in size detected');
894
+ }
895
+
896
+ function checkDownSizing(){
897
+ if (isForceResizableEvent() && isForceResizableCalcMode()){
898
+ resetIFrame(triggerEventDesc);
899
+ } else if (!(triggerEvent in {'interval':1})){
900
+ logIgnored();
901
+ }
902
+ }
903
+
904
+ var currentHeight,currentWidth;
905
+
906
+ if (isSizeChangeDetected() || 'init' === triggerEvent){
907
+ lockTrigger();
908
+ resizeIFrame();
909
+ } else {
910
+ checkDownSizing();
911
+ }
912
+ }
913
+
914
+ var sizeIFrameThrottled = throttle(sizeIFrame);
915
+
916
+ function sendSize(triggerEvent, triggerEventDesc, customHeight, customWidth){
917
+ function recordTrigger(){
918
+ if (!(triggerEvent in {'reset':1,'resetPage':1,'init':1})){
919
+ log( 'Trigger event: ' + triggerEventDesc );
920
+ }
921
+ }
922
+
923
+ function isDoubleFiredEvent(){
924
+ return triggerLocked && (triggerEvent in doubleEventList);
925
+ }
926
+
927
+ if (!isDoubleFiredEvent()){
928
+ recordTrigger();
929
+ sizeIFrameThrottled(triggerEvent, triggerEventDesc, customHeight, customWidth);
930
+ } else {
931
+ log('Trigger event cancelled: '+triggerEvent);
932
+ }
933
+ }
934
+
935
+ function lockTrigger(){
936
+ if (!triggerLocked){
937
+ triggerLocked = true;
938
+ log('Trigger event lock on');
939
+ }
940
+ clearTimeout(triggerLockedTimer);
941
+ triggerLockedTimer = setTimeout(function(){
942
+ triggerLocked = false;
943
+ log('Trigger event lock off');
944
+ log('--');
945
+ },eventCancelTimer);
946
+ }
947
+
948
+ function triggerReset(triggerEvent){
949
+ height = getHeight[heightCalcMode]();
950
+ width = getWidth[widthCalcMode]();
951
+
952
+ sendMsg(height,width,triggerEvent);
953
+ }
954
+
955
+ function resetIFrame(triggerEventDesc){
956
+ var hcm = heightCalcMode;
957
+ heightCalcMode = heightCalcModeDefault;
958
+
959
+ log('Reset trigger event: ' + triggerEventDesc);
960
+ lockTrigger();
961
+ triggerReset('reset');
962
+
963
+ heightCalcMode = hcm;
964
+ }
965
+
966
+ function sendMsg(height,width,triggerEvent,msg,targetOrigin){
967
+ function setTargetOrigin(){
968
+ if (undefined === targetOrigin){
969
+ targetOrigin = targetOriginDefault;
970
+ } else {
971
+ log('Message targetOrigin: '+targetOrigin);
972
+ }
973
+ }
974
+
975
+ function sendToParent(){
976
+ var
977
+ size = height + ':' + width,
978
+ message = myID + ':' + size + ':' + triggerEvent + (undefined !== msg ? ':' + msg : '');
979
+
980
+ log('Sending message to host page (' + message + ')');
981
+ target.postMessage( msgID + message, targetOrigin);
982
+ }
983
+
984
+ if(true === sendPermit){
985
+ setTargetOrigin();
986
+ sendToParent();
987
+ }
988
+ }
989
+
990
+ function receiver(event) {
991
+ var processRequestFromParent = {
992
+ init: function initFromParent(){
993
+ function fireInit(){
994
+ initMsg = event.data;
995
+ target = event.source;
996
+
997
+ init();
998
+ firstRun = false;
999
+ setTimeout(function(){ initLock = false;},eventCancelTimer);
1000
+ }
1001
+
1002
+ if (document.body){
1003
+ fireInit();
1004
+ } else {
1005
+ log('Waiting for page ready');
1006
+ addEventListener(window,'readystatechange',processRequestFromParent.initFromParent);
1007
+ }
1008
+ },
1009
+
1010
+ reset: function resetFromParent(){
1011
+ if (!initLock){
1012
+ log('Page size reset by host page');
1013
+ triggerReset('resetPage');
1014
+ } else {
1015
+ log('Page reset ignored by init');
1016
+ }
1017
+ },
1018
+
1019
+ resize: function resizeFromParent(){
1020
+ sendSize('resizeParent','Parent window requested size check');
1021
+ },
1022
+
1023
+ moveToAnchor: function moveToAnchorF(){
1024
+ inPageLinks.findTarget(getData());
1025
+ },
1026
+ inPageLink: function inPageLinkF() {this.moveToAnchor();}, //Backward compatability
1027
+
1028
+ pageInfo: function pageInfoFromParent(){
1029
+ var msgBody = getData();
1030
+ log('PageInfoFromParent called from parent: ' + msgBody );
1031
+ pageInfoCallback(JSON.parse(msgBody));
1032
+ log(' --');
1033
+ },
1034
+
1035
+ message: function messageFromParent(){
1036
+ var msgBody = getData();
1037
+
1038
+ log('MessageCallback called from parent: ' + msgBody );
1039
+ messageCallback(JSON.parse(msgBody));
1040
+ log(' --');
1041
+ }
1042
+ };
1043
+
1044
+ function isMessageForUs(){
1045
+ return msgID === (''+event.data).substr(0,msgIdLen); //''+ Protects against non-string messages
1046
+ }
1047
+
1048
+ function getMessageType(){
1049
+ return event.data.split(']')[1].split(':')[0];
1050
+ }
1051
+
1052
+ function getData(){
1053
+ return event.data.substr(event.data.indexOf(':')+1);
1054
+ }
1055
+
1056
+ function isMiddleTier(){
1057
+ return ('iFrameResize' in window);
1058
+ }
1059
+
1060
+ function isInitMsg(){
1061
+ //Test if this message is from a child below us. This is an ugly test, however, updating
1062
+ //the message format would break backwards compatibity.
1063
+ return event.data.split(':')[2] in {'true':1,'false':1};
1064
+ }
1065
+
1066
+ function callFromParent(){
1067
+ var messageType = getMessageType();
1068
+
1069
+ if (messageType in processRequestFromParent){
1070
+ processRequestFromParent[messageType]();
1071
+ } else if (!isMiddleTier() && !isInitMsg()){
1072
+ warn('Unexpected message ('+event.data+')');
1073
+ }
1074
+ }
1075
+
1076
+ function processMessage(){
1077
+ if (false === firstRun) {
1078
+ callFromParent();
1079
+ } else if (isInitMsg()) {
1080
+ processRequestFromParent.init();
1081
+ } else {
1082
+ log('Ignored message of type "' + getMessageType() + '". Received before initialization.');
1083
+ }
1084
+ }
1085
+
1086
+ if (isMessageForUs()){
1087
+ processMessage();
1088
+ }
1089
+ }
1090
+
1091
+ //Normally the parent kicks things off when it detects the iFrame has loaded.
1092
+ //If this script is async-loaded, then tell parent page to retry init.
1093
+ function chkLateLoaded(){
1094
+ if('loading' !== document.readyState){
1095
+ window.parent.postMessage('[iFrameResizerChild]Ready','*');
1096
+ }
1097
+ }
1098
+
1099
+ addEventListener(window, 'message', receiver);
1100
+ chkLateLoaded();
1101
+
1102
+
1103
+
1104
+ })(window || {});