link-checker 0.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 (348) hide show
  1. data/.rvmrc +81 -0
  2. data/Gemfile +12 -0
  3. data/Gemfile.lock +56 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.md +15 -0
  6. data/Rakefile +29 -0
  7. data/VERSION +1 -0
  8. data/bin/check-links +8 -0
  9. data/lib/link_checker.rb +80 -0
  10. data/link-checker.gemspec +404 -0
  11. data/spec/link-checker_spec.rb +92 -0
  12. data/spec/spec_helper.rb +4 -0
  13. data/spec/test-site/.gitignore +12 -0
  14. data/spec/test-site/.powrc +5 -0
  15. data/spec/test-site/.rbenv-version +1 -0
  16. data/spec/test-site/.rvmrc +1 -0
  17. data/spec/test-site/.slugignore +3 -0
  18. data/spec/test-site/.themes/classic/sass/_base.scss +5 -0
  19. data/spec/test-site/.themes/classic/sass/_partials.scss +8 -0
  20. data/spec/test-site/.themes/classic/sass/base/_layout.scss +192 -0
  21. data/spec/test-site/.themes/classic/sass/base/_solarized.scss +46 -0
  22. data/spec/test-site/.themes/classic/sass/base/_theme.scss +86 -0
  23. data/spec/test-site/.themes/classic/sass/base/_typography.scss +161 -0
  24. data/spec/test-site/.themes/classic/sass/base/_utilities.scss +28 -0
  25. data/spec/test-site/.themes/classic/sass/custom/_colors.scss +43 -0
  26. data/spec/test-site/.themes/classic/sass/custom/_fonts.scss +10 -0
  27. data/spec/test-site/.themes/classic/sass/custom/_layout.scss +21 -0
  28. data/spec/test-site/.themes/classic/sass/custom/_styles.scss +2 -0
  29. data/spec/test-site/.themes/classic/sass/partials/_archive.scss +72 -0
  30. data/spec/test-site/.themes/classic/sass/partials/_blog.scss +141 -0
  31. data/spec/test-site/.themes/classic/sass/partials/_footer.scss +19 -0
  32. data/spec/test-site/.themes/classic/sass/partials/_header.scss +18 -0
  33. data/spec/test-site/.themes/classic/sass/partials/_navigation.scss +137 -0
  34. data/spec/test-site/.themes/classic/sass/partials/_sharing.scss +8 -0
  35. data/spec/test-site/.themes/classic/sass/partials/_sidebar.scss +5 -0
  36. data/spec/test-site/.themes/classic/sass/partials/_syntax.scss +253 -0
  37. data/spec/test-site/.themes/classic/sass/partials/sidebar/_base.scss +106 -0
  38. data/spec/test-site/.themes/classic/sass/partials/sidebar/_delicious.scss +4 -0
  39. data/spec/test-site/.themes/classic/sass/partials/sidebar/_googleplus.scss +26 -0
  40. data/spec/test-site/.themes/classic/sass/partials/sidebar/_pinboard.scss +12 -0
  41. data/spec/test-site/.themes/classic/sass/partials/sidebar/_twitter.scss +34 -0
  42. data/spec/test-site/.themes/classic/sass/screen.scss +10 -0
  43. data/spec/test-site/.themes/classic/source/_includes/after_footer.html +5 -0
  44. data/spec/test-site/.themes/classic/source/_includes/archive_post.html +8 -0
  45. data/spec/test-site/.themes/classic/source/_includes/article.html +28 -0
  46. data/spec/test-site/.themes/classic/source/_includes/asides/delicious.html +8 -0
  47. data/spec/test-site/.themes/classic/source/_includes/asides/github.html +30 -0
  48. data/spec/test-site/.themes/classic/source/_includes/asides/googleplus.html +11 -0
  49. data/spec/test-site/.themes/classic/source/_includes/asides/pinboard.html +19 -0
  50. data/spec/test-site/.themes/classic/source/_includes/asides/recent_posts.html +10 -0
  51. data/spec/test-site/.themes/classic/source/_includes/asides/twitter.html +19 -0
  52. data/spec/test-site/.themes/classic/source/_includes/custom/after_footer.html +3 -0
  53. data/spec/test-site/.themes/classic/source/_includes/custom/asides/about.html +4 -0
  54. data/spec/test-site/.themes/classic/source/_includes/custom/category_feed.xml +27 -0
  55. data/spec/test-site/.themes/classic/source/_includes/custom/footer.html +4 -0
  56. data/spec/test-site/.themes/classic/source/_includes/custom/head.html +3 -0
  57. data/spec/test-site/.themes/classic/source/_includes/custom/header.html +6 -0
  58. data/spec/test-site/.themes/classic/source/_includes/custom/navigation.html +4 -0
  59. data/spec/test-site/.themes/classic/source/_includes/disqus.html +21 -0
  60. data/spec/test-site/.themes/classic/source/_includes/facebook_like.html +10 -0
  61. data/spec/test-site/.themes/classic/source/_includes/footer.html +1 -0
  62. data/spec/test-site/.themes/classic/source/_includes/google_analytics.html +13 -0
  63. data/spec/test-site/.themes/classic/source/_includes/google_plus_one.html +9 -0
  64. data/spec/test-site/.themes/classic/source/_includes/head.html +29 -0
  65. data/spec/test-site/.themes/classic/source/_includes/header.html +1 -0
  66. data/spec/test-site/.themes/classic/source/_includes/navigation.html +15 -0
  67. data/spec/test-site/.themes/classic/source/_includes/post/author.html +8 -0
  68. data/spec/test-site/.themes/classic/source/_includes/post/categories.html +10 -0
  69. data/spec/test-site/.themes/classic/source/_includes/post/date.html +15 -0
  70. data/spec/test-site/.themes/classic/source/_includes/post/disqus_thread.html +1 -0
  71. data/spec/test-site/.themes/classic/source/_includes/post/sharing.html +11 -0
  72. data/spec/test-site/.themes/classic/source/_includes/twitter_sharing.html +11 -0
  73. data/spec/test-site/.themes/classic/source/_layouts/category_index.html +17 -0
  74. data/spec/test-site/.themes/classic/source/_layouts/default.html +14 -0
  75. data/spec/test-site/.themes/classic/source/_layouts/page.html +42 -0
  76. data/spec/test-site/.themes/classic/source/_layouts/post.html +43 -0
  77. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png +0 -0
  78. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png +0 -0
  79. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png +0 -0
  80. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png +0 -0
  81. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png +0 -0
  82. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png +0 -0
  83. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png +0 -0
  84. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png +0 -0
  85. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png +0 -0
  86. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png +0 -0
  87. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png +0 -0
  88. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png +0 -0
  89. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png +0 -0
  90. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png +0 -0
  91. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png +0 -0
  92. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png +0 -0
  93. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png +0 -0
  94. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png +0 -0
  95. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png +0 -0
  96. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png +0 -0
  97. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/display/background.png +0 -0
  98. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png +0 -0
  99. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png +0 -0
  100. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png +0 -0
  101. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/dock/button.png +0 -0
  102. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/glow.xml +115 -0
  103. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/playlist/item.png +0 -0
  104. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png +0 -0
  105. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png +0 -0
  106. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png +0 -0
  107. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png +0 -0
  108. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/playlist/sliderThumb.png +0 -0
  109. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/sharing/embedIcon.png +0 -0
  110. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png +0 -0
  111. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png +0 -0
  112. data/spec/test-site/.themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png +0 -0
  113. data/spec/test-site/.themes/classic/source/assets/jwplayer/player.swf +0 -0
  114. data/spec/test-site/.themes/classic/source/atom.xml +27 -0
  115. data/spec/test-site/.themes/classic/source/blog/archives/index.html +18 -0
  116. data/spec/test-site/.themes/classic/source/favicon.png +0 -0
  117. data/spec/test-site/.themes/classic/source/images/bird_32_gray.png +0 -0
  118. data/spec/test-site/.themes/classic/source/images/bird_32_gray_fail.png +0 -0
  119. data/spec/test-site/.themes/classic/source/images/code_bg.png +0 -0
  120. data/spec/test-site/.themes/classic/source/images/dotted-border.png +0 -0
  121. data/spec/test-site/.themes/classic/source/images/email.png +0 -0
  122. data/spec/test-site/.themes/classic/source/images/line-tile.png +0 -0
  123. data/spec/test-site/.themes/classic/source/images/noise.png +0 -0
  124. data/spec/test-site/.themes/classic/source/images/rss.png +0 -0
  125. data/spec/test-site/.themes/classic/source/images/search.png +0 -0
  126. data/spec/test-site/.themes/classic/source/index.html +29 -0
  127. data/spec/test-site/.themes/classic/source/javascripts/ender.js +45 -0
  128. data/spec/test-site/.themes/classic/source/javascripts/github.js +37 -0
  129. data/spec/test-site/.themes/classic/source/javascripts/libs/ender.js +1497 -0
  130. data/spec/test-site/.themes/classic/source/javascripts/libs/jXHR.js +85 -0
  131. data/spec/test-site/.themes/classic/source/javascripts/libs/swfobject-dynamic.js +298 -0
  132. data/spec/test-site/.themes/classic/source/javascripts/modernizr-2.0.js +5 -0
  133. data/spec/test-site/.themes/classic/source/javascripts/octopress.js +161 -0
  134. data/spec/test-site/.themes/classic/source/javascripts/pinboard.js +56 -0
  135. data/spec/test-site/.themes/classic/source/javascripts/twitter.js +78 -0
  136. data/spec/test-site/CHANGELOG.markdown +29 -0
  137. data/spec/test-site/Gemfile +18 -0
  138. data/spec/test-site/Gemfile.lock +69 -0
  139. data/spec/test-site/README.markdown +36 -0
  140. data/spec/test-site/Rakefile +379 -0
  141. data/spec/test-site/_config.yml +99 -0
  142. data/spec/test-site/config.rb +16 -0
  143. data/spec/test-site/config.ru +25 -0
  144. data/spec/test-site/plugins/backtick_code_block.rb +43 -0
  145. data/spec/test-site/plugins/blockquote.rb +83 -0
  146. data/spec/test-site/plugins/category_generator.rb +174 -0
  147. data/spec/test-site/plugins/code_block.rb +98 -0
  148. data/spec/test-site/plugins/date.rb +98 -0
  149. data/spec/test-site/plugins/gist_tag.rb +100 -0
  150. data/spec/test-site/plugins/haml.rb +24 -0
  151. data/spec/test-site/plugins/image_tag.rb +50 -0
  152. data/spec/test-site/plugins/include_array.rb +58 -0
  153. data/spec/test-site/plugins/include_code.rb +73 -0
  154. data/spec/test-site/plugins/jsfiddle.rb +40 -0
  155. data/spec/test-site/plugins/octopress_filters.rb +135 -0
  156. data/spec/test-site/plugins/pagination.rb +121 -0
  157. data/spec/test-site/plugins/post_filters.rb +176 -0
  158. data/spec/test-site/plugins/preview_unpublished.rb +48 -0
  159. data/spec/test-site/plugins/pullquote.rb +45 -0
  160. data/spec/test-site/plugins/pygments_code.rb +41 -0
  161. data/spec/test-site/plugins/raw.rb +40 -0
  162. data/spec/test-site/plugins/render_partial.rb +69 -0
  163. data/spec/test-site/plugins/rubypants.rb +489 -0
  164. data/spec/test-site/plugins/sitemap_generator.rb +312 -0
  165. data/spec/test-site/plugins/titlecase.rb +36 -0
  166. data/spec/test-site/plugins/video_tag.rb +47 -0
  167. data/spec/test-site/public/assets/jwplayer/glow/controlbar/background.png +0 -0
  168. data/spec/test-site/public/assets/jwplayer/glow/controlbar/blankButton.png +0 -0
  169. data/spec/test-site/public/assets/jwplayer/glow/controlbar/divider.png +0 -0
  170. data/spec/test-site/public/assets/jwplayer/glow/controlbar/fullscreenButton.png +0 -0
  171. data/spec/test-site/public/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png +0 -0
  172. data/spec/test-site/public/assets/jwplayer/glow/controlbar/muteButton.png +0 -0
  173. data/spec/test-site/public/assets/jwplayer/glow/controlbar/muteButtonOver.png +0 -0
  174. data/spec/test-site/public/assets/jwplayer/glow/controlbar/normalscreenButton.png +0 -0
  175. data/spec/test-site/public/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png +0 -0
  176. data/spec/test-site/public/assets/jwplayer/glow/controlbar/pauseButton.png +0 -0
  177. data/spec/test-site/public/assets/jwplayer/glow/controlbar/pauseButtonOver.png +0 -0
  178. data/spec/test-site/public/assets/jwplayer/glow/controlbar/playButton.png +0 -0
  179. data/spec/test-site/public/assets/jwplayer/glow/controlbar/playButtonOver.png +0 -0
  180. data/spec/test-site/public/assets/jwplayer/glow/controlbar/timeSliderBuffer.png +0 -0
  181. data/spec/test-site/public/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png +0 -0
  182. data/spec/test-site/public/assets/jwplayer/glow/controlbar/timeSliderCapRight.png +0 -0
  183. data/spec/test-site/public/assets/jwplayer/glow/controlbar/timeSliderProgress.png +0 -0
  184. data/spec/test-site/public/assets/jwplayer/glow/controlbar/timeSliderRail.png +0 -0
  185. data/spec/test-site/public/assets/jwplayer/glow/controlbar/unmuteButton.png +0 -0
  186. data/spec/test-site/public/assets/jwplayer/glow/controlbar/unmuteButtonOver.png +0 -0
  187. data/spec/test-site/public/assets/jwplayer/glow/display/background.png +0 -0
  188. data/spec/test-site/public/assets/jwplayer/glow/display/bufferIcon.png +0 -0
  189. data/spec/test-site/public/assets/jwplayer/glow/display/muteIcon.png +0 -0
  190. data/spec/test-site/public/assets/jwplayer/glow/display/playIcon.png +0 -0
  191. data/spec/test-site/public/assets/jwplayer/glow/dock/button.png +0 -0
  192. data/spec/test-site/public/assets/jwplayer/glow/glow.xml +115 -0
  193. data/spec/test-site/public/assets/jwplayer/glow/playlist/item.png +0 -0
  194. data/spec/test-site/public/assets/jwplayer/glow/playlist/itemOver.png +0 -0
  195. data/spec/test-site/public/assets/jwplayer/glow/playlist/sliderCapBottom.png +0 -0
  196. data/spec/test-site/public/assets/jwplayer/glow/playlist/sliderCapTop.png +0 -0
  197. data/spec/test-site/public/assets/jwplayer/glow/playlist/sliderRail.png +0 -0
  198. data/spec/test-site/public/assets/jwplayer/glow/playlist/sliderThumb.png +0 -0
  199. data/spec/test-site/public/assets/jwplayer/glow/sharing/embedIcon.png +0 -0
  200. data/spec/test-site/public/assets/jwplayer/glow/sharing/embedScreen.png +0 -0
  201. data/spec/test-site/public/assets/jwplayer/glow/sharing/shareIcon.png +0 -0
  202. data/spec/test-site/public/assets/jwplayer/glow/sharing/shareScreen.png +0 -0
  203. data/spec/test-site/public/assets/jwplayer/player.swf +0 -0
  204. data/spec/test-site/public/atom.xml +27 -0
  205. data/spec/test-site/public/blog/2012/10/02/a-list-of-links/index.html +196 -0
  206. data/spec/test-site/public/blog/archives/index.html +149 -0
  207. data/spec/test-site/public/favicon.png +0 -0
  208. data/spec/test-site/public/images/bird_32_gray.png +0 -0
  209. data/spec/test-site/public/images/bird_32_gray_fail.png +0 -0
  210. data/spec/test-site/public/images/code_bg.png +0 -0
  211. data/spec/test-site/public/images/dotted-border.png +0 -0
  212. data/spec/test-site/public/images/email.png +0 -0
  213. data/spec/test-site/public/images/line-tile.png +0 -0
  214. data/spec/test-site/public/images/noise.png +0 -0
  215. data/spec/test-site/public/images/rss.png +0 -0
  216. data/spec/test-site/public/images/search.png +0 -0
  217. data/spec/test-site/public/index.html +165 -0
  218. data/spec/test-site/public/javascripts/ender.js +45 -0
  219. data/spec/test-site/public/javascripts/github.js +37 -0
  220. data/spec/test-site/public/javascripts/libs/ender.js +1497 -0
  221. data/spec/test-site/public/javascripts/libs/jXHR.js +85 -0
  222. data/spec/test-site/public/javascripts/libs/swfobject-dynamic.js +298 -0
  223. data/spec/test-site/public/javascripts/modernizr-2.0.js +5 -0
  224. data/spec/test-site/public/javascripts/octopress.js +161 -0
  225. data/spec/test-site/public/javascripts/pinboard.js +56 -0
  226. data/spec/test-site/public/javascripts/twitter.js +78 -0
  227. data/spec/test-site/public/sitemap.xml +15 -0
  228. data/spec/test-site/public/stylesheets/screen.css +1 -0
  229. data/spec/test-site/sass/_base.scss +5 -0
  230. data/spec/test-site/sass/_partials.scss +8 -0
  231. data/spec/test-site/sass/base/_layout.scss +192 -0
  232. data/spec/test-site/sass/base/_solarized.scss +46 -0
  233. data/spec/test-site/sass/base/_theme.scss +86 -0
  234. data/spec/test-site/sass/base/_typography.scss +161 -0
  235. data/spec/test-site/sass/base/_utilities.scss +28 -0
  236. data/spec/test-site/sass/custom/_colors.scss +43 -0
  237. data/spec/test-site/sass/custom/_fonts.scss +10 -0
  238. data/spec/test-site/sass/custom/_layout.scss +21 -0
  239. data/spec/test-site/sass/custom/_styles.scss +2 -0
  240. data/spec/test-site/sass/partials/_archive.scss +72 -0
  241. data/spec/test-site/sass/partials/_blog.scss +141 -0
  242. data/spec/test-site/sass/partials/_footer.scss +19 -0
  243. data/spec/test-site/sass/partials/_header.scss +18 -0
  244. data/spec/test-site/sass/partials/_navigation.scss +137 -0
  245. data/spec/test-site/sass/partials/_sharing.scss +8 -0
  246. data/spec/test-site/sass/partials/_sidebar.scss +5 -0
  247. data/spec/test-site/sass/partials/_syntax.scss +253 -0
  248. data/spec/test-site/sass/partials/sidebar/_base.scss +106 -0
  249. data/spec/test-site/sass/partials/sidebar/_delicious.scss +4 -0
  250. data/spec/test-site/sass/partials/sidebar/_googleplus.scss +26 -0
  251. data/spec/test-site/sass/partials/sidebar/_pinboard.scss +12 -0
  252. data/spec/test-site/sass/partials/sidebar/_twitter.scss +34 -0
  253. data/spec/test-site/sass/screen.scss +10 -0
  254. data/spec/test-site/source/_includes/after_footer.html +5 -0
  255. data/spec/test-site/source/_includes/archive_post.html +8 -0
  256. data/spec/test-site/source/_includes/article.html +28 -0
  257. data/spec/test-site/source/_includes/asides/delicious.html +8 -0
  258. data/spec/test-site/source/_includes/asides/github.html +30 -0
  259. data/spec/test-site/source/_includes/asides/googleplus.html +11 -0
  260. data/spec/test-site/source/_includes/asides/pinboard.html +19 -0
  261. data/spec/test-site/source/_includes/asides/recent_posts.html +10 -0
  262. data/spec/test-site/source/_includes/asides/twitter.html +19 -0
  263. data/spec/test-site/source/_includes/custom/after_footer.html +3 -0
  264. data/spec/test-site/source/_includes/custom/asides/about.html +4 -0
  265. data/spec/test-site/source/_includes/custom/category_feed.xml +27 -0
  266. data/spec/test-site/source/_includes/custom/footer.html +4 -0
  267. data/spec/test-site/source/_includes/custom/head.html +3 -0
  268. data/spec/test-site/source/_includes/custom/header.html +6 -0
  269. data/spec/test-site/source/_includes/custom/navigation.html +4 -0
  270. data/spec/test-site/source/_includes/disqus.html +21 -0
  271. data/spec/test-site/source/_includes/facebook_like.html +10 -0
  272. data/spec/test-site/source/_includes/footer.html +1 -0
  273. data/spec/test-site/source/_includes/google_analytics.html +13 -0
  274. data/spec/test-site/source/_includes/google_plus_one.html +9 -0
  275. data/spec/test-site/source/_includes/head.html +29 -0
  276. data/spec/test-site/source/_includes/header.html +1 -0
  277. data/spec/test-site/source/_includes/navigation.html +15 -0
  278. data/spec/test-site/source/_includes/post/author.html +8 -0
  279. data/spec/test-site/source/_includes/post/categories.html +10 -0
  280. data/spec/test-site/source/_includes/post/date.html +15 -0
  281. data/spec/test-site/source/_includes/post/disqus_thread.html +1 -0
  282. data/spec/test-site/source/_includes/post/sharing.html +11 -0
  283. data/spec/test-site/source/_includes/twitter_sharing.html +11 -0
  284. data/spec/test-site/source/_layouts/category_index.html +17 -0
  285. data/spec/test-site/source/_layouts/default.html +14 -0
  286. data/spec/test-site/source/_layouts/page.html +42 -0
  287. data/spec/test-site/source/_layouts/post.html +43 -0
  288. data/spec/test-site/source/_posts/2012-10-02-a-list-of-links.markdown +11 -0
  289. data/spec/test-site/source/assets/jwplayer/glow/controlbar/background.png +0 -0
  290. data/spec/test-site/source/assets/jwplayer/glow/controlbar/blankButton.png +0 -0
  291. data/spec/test-site/source/assets/jwplayer/glow/controlbar/divider.png +0 -0
  292. data/spec/test-site/source/assets/jwplayer/glow/controlbar/fullscreenButton.png +0 -0
  293. data/spec/test-site/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png +0 -0
  294. data/spec/test-site/source/assets/jwplayer/glow/controlbar/muteButton.png +0 -0
  295. data/spec/test-site/source/assets/jwplayer/glow/controlbar/muteButtonOver.png +0 -0
  296. data/spec/test-site/source/assets/jwplayer/glow/controlbar/normalscreenButton.png +0 -0
  297. data/spec/test-site/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png +0 -0
  298. data/spec/test-site/source/assets/jwplayer/glow/controlbar/pauseButton.png +0 -0
  299. data/spec/test-site/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png +0 -0
  300. data/spec/test-site/source/assets/jwplayer/glow/controlbar/playButton.png +0 -0
  301. data/spec/test-site/source/assets/jwplayer/glow/controlbar/playButtonOver.png +0 -0
  302. data/spec/test-site/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png +0 -0
  303. data/spec/test-site/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png +0 -0
  304. data/spec/test-site/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png +0 -0
  305. data/spec/test-site/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png +0 -0
  306. data/spec/test-site/source/assets/jwplayer/glow/controlbar/timeSliderRail.png +0 -0
  307. data/spec/test-site/source/assets/jwplayer/glow/controlbar/unmuteButton.png +0 -0
  308. data/spec/test-site/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png +0 -0
  309. data/spec/test-site/source/assets/jwplayer/glow/display/background.png +0 -0
  310. data/spec/test-site/source/assets/jwplayer/glow/display/bufferIcon.png +0 -0
  311. data/spec/test-site/source/assets/jwplayer/glow/display/muteIcon.png +0 -0
  312. data/spec/test-site/source/assets/jwplayer/glow/display/playIcon.png +0 -0
  313. data/spec/test-site/source/assets/jwplayer/glow/dock/button.png +0 -0
  314. data/spec/test-site/source/assets/jwplayer/glow/glow.xml +115 -0
  315. data/spec/test-site/source/assets/jwplayer/glow/playlist/item.png +0 -0
  316. data/spec/test-site/source/assets/jwplayer/glow/playlist/itemOver.png +0 -0
  317. data/spec/test-site/source/assets/jwplayer/glow/playlist/sliderCapBottom.png +0 -0
  318. data/spec/test-site/source/assets/jwplayer/glow/playlist/sliderCapTop.png +0 -0
  319. data/spec/test-site/source/assets/jwplayer/glow/playlist/sliderRail.png +0 -0
  320. data/spec/test-site/source/assets/jwplayer/glow/playlist/sliderThumb.png +0 -0
  321. data/spec/test-site/source/assets/jwplayer/glow/sharing/embedIcon.png +0 -0
  322. data/spec/test-site/source/assets/jwplayer/glow/sharing/embedScreen.png +0 -0
  323. data/spec/test-site/source/assets/jwplayer/glow/sharing/shareIcon.png +0 -0
  324. data/spec/test-site/source/assets/jwplayer/glow/sharing/shareScreen.png +0 -0
  325. data/spec/test-site/source/assets/jwplayer/player.swf +0 -0
  326. data/spec/test-site/source/atom.xml +27 -0
  327. data/spec/test-site/source/blog/archives/index.html +18 -0
  328. data/spec/test-site/source/favicon.png +0 -0
  329. data/spec/test-site/source/images/bird_32_gray.png +0 -0
  330. data/spec/test-site/source/images/bird_32_gray_fail.png +0 -0
  331. data/spec/test-site/source/images/code_bg.png +0 -0
  332. data/spec/test-site/source/images/dotted-border.png +0 -0
  333. data/spec/test-site/source/images/email.png +0 -0
  334. data/spec/test-site/source/images/line-tile.png +0 -0
  335. data/spec/test-site/source/images/noise.png +0 -0
  336. data/spec/test-site/source/images/rss.png +0 -0
  337. data/spec/test-site/source/images/search.png +0 -0
  338. data/spec/test-site/source/index.html +29 -0
  339. data/spec/test-site/source/javascripts/ender.js +45 -0
  340. data/spec/test-site/source/javascripts/github.js +37 -0
  341. data/spec/test-site/source/javascripts/libs/ender.js +1497 -0
  342. data/spec/test-site/source/javascripts/libs/jXHR.js +85 -0
  343. data/spec/test-site/source/javascripts/libs/swfobject-dynamic.js +298 -0
  344. data/spec/test-site/source/javascripts/modernizr-2.0.js +5 -0
  345. data/spec/test-site/source/javascripts/octopress.js +161 -0
  346. data/spec/test-site/source/javascripts/pinboard.js +56 -0
  347. data/spec/test-site/source/javascripts/twitter.js +78 -0
  348. metadata +475 -0
@@ -0,0 +1,312 @@
1
+ # Sitemap.xml Generator is a Jekyll plugin that generates a sitemap.xml file by
2
+ # traversing all of the available posts and pages.
3
+ #
4
+ # How To Use:
5
+ # 1) Copy source file into your _plugins folder within your Jekyll project.
6
+ # 2) Change modify the url variable in _config.yml to reflect your domain name.
7
+ # 3) Run Jekyll: jekyll --server to re-generate your site.
8
+ #
9
+ # Variables:
10
+ # * Change SITEMAP_FILE_NAME if you want your sitemap to be called something
11
+ # other than sitemap.xml.
12
+ # * Change the PAGES_INCLUDE_POSTS list to include any pages that are looping
13
+ # through your posts (e.g. "index.html", "archive.html", etc.). This will
14
+ # ensure that right after you make a new post, the last modified date will
15
+ # be updated to reflect the new post.
16
+ # * A sitemap.xml should be included in your _site folder.
17
+ # * If there are any files you don't want included in the sitemap, add them
18
+ # to the EXCLUDED_FILES list. The name should match the name of the source
19
+ # file.
20
+ # * If you want to include the optional changefreq and priority attributes,
21
+ # simply include custom variables in the YAML Front Matter of that file.
22
+ # The names of these custom variables are defined below in the
23
+ # CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME and PRIORITY_CUSTOM_VARIABLE_NAME
24
+ # constants.
25
+ #
26
+ # Notes:
27
+ # * The last modified date is determined by the latest from the following:
28
+ # system modified date of the page or post, system modified date of
29
+ # included layout, system modified date of included layout within that
30
+ # layout, ...
31
+ #
32
+ # Author: Michael Levin
33
+ # Site: http://www.kinnetica.com
34
+ # Distributed Under A Creative Commons License
35
+ # - http://creativecommons.org/licenses/by/3.0/
36
+ #
37
+ # Modified for Octopress by John W. Long
38
+ #
39
+ require 'rexml/document'
40
+ require 'fileutils'
41
+
42
+ module Jekyll
43
+
44
+ # Change SITEMAP_FILE_NAME if you would like your sitemap file
45
+ # to be called something else
46
+ SITEMAP_FILE_NAME = "sitemap.xml"
47
+
48
+ # Any files to exclude from being included in the sitemap.xml
49
+ EXCLUDED_FILES = ["atom.xml"]
50
+
51
+ # Any files that include posts, so that when a new post is added, the last
52
+ # modified date of these pages should take that into account
53
+ PAGES_INCLUDE_POSTS = ["index.html"]
54
+
55
+ # Custom variable names for changefreq and priority elements
56
+ # These names are used within the YAML Front Matter of pages or posts
57
+ # for which you want to include these properties
58
+ CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME = "change_frequency"
59
+ PRIORITY_CUSTOM_VARIABLE_NAME = "priority"
60
+
61
+ class Post
62
+ attr_accessor :name
63
+
64
+ def full_path_to_source
65
+ File.join(@base, @name)
66
+ end
67
+
68
+ def location_on_server
69
+ "#{site.config['url']}#{url}"
70
+ end
71
+ end
72
+
73
+ class Page
74
+ attr_accessor :name
75
+
76
+ def full_path_to_source
77
+ File.join(@base, @dir, @name)
78
+ end
79
+
80
+ def location_on_server
81
+ location = "#{site.config['url']}#{@dir}#{url}"
82
+ location.gsub(/index.html$/, "")
83
+ end
84
+ end
85
+
86
+ class Layout
87
+ def full_path_to_source
88
+ File.join(@base, @name)
89
+ end
90
+ end
91
+
92
+ # Recover from strange exception when starting server without --auto
93
+ class SitemapFile < StaticFile
94
+ def write(dest)
95
+ begin
96
+ super(dest)
97
+ rescue
98
+ end
99
+
100
+ true
101
+ end
102
+ end
103
+
104
+ class SitemapGenerator < Generator
105
+
106
+ # Valid values allowed by sitemap.xml spec for change frequencies
107
+ VALID_CHANGE_FREQUENCY_VALUES = ["always", "hourly", "daily", "weekly",
108
+ "monthly", "yearly", "never"]
109
+
110
+ # Goes through pages and posts and generates sitemap.xml file
111
+ #
112
+ # Returns nothing
113
+ def generate(site)
114
+ sitemap = REXML::Document.new << REXML::XMLDecl.new("1.0", "UTF-8")
115
+
116
+ urlset = REXML::Element.new "urlset"
117
+ urlset.add_attribute("xmlns",
118
+ "http://www.sitemaps.org/schemas/sitemap/0.9")
119
+
120
+ @last_modified_post_date = fill_posts(site, urlset)
121
+ fill_pages(site, urlset)
122
+
123
+ sitemap.add_element(urlset)
124
+
125
+ # File I/O: create sitemap.xml file and write out pretty-printed XML
126
+ unless File.exists?(site.dest)
127
+ FileUtils.mkdir_p(site.dest)
128
+ end
129
+ file = File.new(File.join(site.dest, SITEMAP_FILE_NAME), "w")
130
+ formatter = REXML::Formatters::Pretty.new(4)
131
+ formatter.compact = true
132
+ formatter.write(sitemap, file)
133
+ file.close
134
+
135
+ # Keep the sitemap.xml file from being cleaned by Jekyll
136
+ site.static_files << Jekyll::SitemapFile.new(site, site.dest, "/", SITEMAP_FILE_NAME)
137
+ end
138
+
139
+ # Create url elements for all the posts and find the date of the latest one
140
+ #
141
+ # Returns last_modified_date of latest post
142
+ def fill_posts(site, urlset)
143
+ last_modified_date = nil
144
+ site.posts.each do |post|
145
+ if !excluded?(post.name)
146
+ url = fill_url(site, post)
147
+ urlset.add_element(url)
148
+ end
149
+
150
+ path = post.full_path_to_source
151
+ date = File.mtime(path)
152
+ last_modified_date = date if last_modified_date == nil or date > last_modified_date
153
+ end
154
+
155
+ last_modified_date
156
+ end
157
+
158
+ # Create url elements for all the normal pages and find the date of the
159
+ # index to use with the pagination pages
160
+ #
161
+ # Returns last_modified_date of index page
162
+ def fill_pages(site, urlset)
163
+ site.pages.each do |page|
164
+ if !excluded?(page.name)
165
+ path = page.full_path_to_source
166
+ if File.exists?(path)
167
+ url = fill_url(site, page)
168
+ urlset.add_element(url)
169
+ end
170
+ end
171
+ end
172
+ end
173
+
174
+ # Fill data of each URL element: location, last modified,
175
+ # change frequency (optional), and priority.
176
+ #
177
+ # Returns url REXML::Element
178
+ def fill_url(site, page_or_post)
179
+ url = REXML::Element.new "url"
180
+
181
+ loc = fill_location(page_or_post)
182
+ url.add_element(loc)
183
+
184
+ lastmod = fill_last_modified(site, page_or_post)
185
+ url.add_element(lastmod) if lastmod
186
+
187
+ if (page_or_post.data[CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME])
188
+ change_frequency =
189
+ page_or_post.data[CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME].downcase
190
+
191
+ if (valid_change_frequency?(change_frequency))
192
+ changefreq = REXML::Element.new "changefreq"
193
+ changefreq.text = change_frequency
194
+ url.add_element(changefreq)
195
+ else
196
+ puts "ERROR: Invalid Change Frequency In #{page_or_post.name}"
197
+ end
198
+ end
199
+
200
+ if (page_or_post.data[PRIORITY_CUSTOM_VARIABLE_NAME])
201
+ priority_value = page_or_post.data[PRIORITY_CUSTOM_VARIABLE_NAME]
202
+ if valid_priority?(priority_value)
203
+ priority = REXML::Element.new "priority"
204
+ priority.text = page_or_post.data[PRIORITY_CUSTOM_VARIABLE_NAME]
205
+ url.add_element(priority)
206
+ else
207
+ puts "ERROR: Invalid Priority In #{page_or_post.name}"
208
+ end
209
+ end
210
+
211
+ url
212
+ end
213
+
214
+ # Get URL location of page or post
215
+ #
216
+ # Returns the location of the page or post
217
+ def fill_location(page_or_post)
218
+ loc = REXML::Element.new "loc"
219
+ loc.text = page_or_post.location_on_server
220
+
221
+ loc
222
+ end
223
+
224
+ # Fill lastmod XML element with the last modified date for the page or post.
225
+ #
226
+ # Returns lastmod REXML::Element or nil
227
+ def fill_last_modified(site, page_or_post)
228
+ path = page_or_post.full_path_to_source
229
+
230
+ lastmod = REXML::Element.new "lastmod"
231
+ date = File.mtime(path)
232
+ latest_date = find_latest_date(date, site, page_or_post)
233
+
234
+ if @last_modified_post_date == nil
235
+ # This is a post
236
+ lastmod.text = latest_date.iso8601
237
+ else
238
+ # This is a page
239
+ if posts_included?(page_or_post.name)
240
+ # We want to take into account the last post date
241
+ final_date = greater_date(latest_date, @last_modified_post_date)
242
+ lastmod.text = final_date.iso8601
243
+ else
244
+ lastmod.text = latest_date.iso8601
245
+ end
246
+ end
247
+ lastmod
248
+ end
249
+
250
+ # Go through the page/post and any implemented layouts and get the latest
251
+ # modified date
252
+ #
253
+ # Returns formatted output of latest date of page/post and any used layouts
254
+ def find_latest_date(latest_date, site, page_or_post)
255
+ layouts = site.layouts
256
+ layout = layouts[page_or_post.data["layout"]]
257
+ while layout
258
+ path = layout.full_path_to_source
259
+ date = File.mtime(path)
260
+
261
+ latest_date = date if (date > latest_date)
262
+
263
+ layout = layouts[layout.data["layout"]]
264
+ end
265
+
266
+ latest_date
267
+ end
268
+
269
+ # Which of the two dates is later
270
+ #
271
+ # Returns latest of two dates
272
+ def greater_date(date1, date2)
273
+ if (date1 >= date2)
274
+ date1
275
+ else
276
+ date2
277
+ end
278
+ end
279
+
280
+ # Is the page or post listed as something we want to exclude?
281
+ #
282
+ # Returns boolean
283
+ def excluded?(name)
284
+ EXCLUDED_FILES.include? name
285
+ end
286
+
287
+ def posts_included?(name)
288
+ PAGES_INCLUDE_POSTS.include? name
289
+ end
290
+
291
+ # Is the change frequency value provided valid according to the spec
292
+ #
293
+ # Returns boolean
294
+ def valid_change_frequency?(change_frequency)
295
+ VALID_CHANGE_FREQUENCY_VALUES.include? change_frequency
296
+ end
297
+
298
+ # Is the priority value provided valid according to the spec
299
+ #
300
+ # Returns boolean
301
+ def valid_priority?(priority)
302
+ begin
303
+ priority_val = Float(priority)
304
+ return true if priority_val >= 0.0 and priority_val <= 1.0
305
+ rescue ArgumentError
306
+ end
307
+
308
+ false
309
+ end
310
+ end
311
+ end
312
+
@@ -0,0 +1,36 @@
1
+ class String
2
+ def titlecase
3
+ small_words = %w(a an and as at but by en for if in of on or the to v v. via vs vs.)
4
+
5
+ x = split(" ").map do |word|
6
+ # note: word could contain non-word characters!
7
+ # downcase all small_words, capitalize the rest
8
+ small_words.include?(word.gsub(/\W/, "").downcase) ? word.downcase! : word.smart_capitalize!
9
+ word
10
+ end
11
+ # capitalize first and last words
12
+ x.first.to_s.smart_capitalize!
13
+ x.last.to_s.smart_capitalize!
14
+ # small words are capitalized after colon, period, exclamation mark, question mark
15
+ x.join(" ").gsub(/(:|\.|!|\?)\s?(\W*#{small_words.join("|")}\W*)\s/) { "#{$1} #{$2.smart_capitalize} " }
16
+ end
17
+
18
+ def titlecase!
19
+ replace(titlecase)
20
+ end
21
+
22
+ def smart_capitalize
23
+ # ignore any leading crazy characters and capitalize the first real character
24
+ if self =~ /^['"\(\[']*([a-z])/
25
+ i = index($1)
26
+ x = self[i,self.length]
27
+ # word with capitals and periods mid-word are left alone
28
+ self[i,1] = self[i,1].upcase unless x =~ /[A-Z]/ or x =~ /\.\w+/
29
+ end
30
+ self
31
+ end
32
+
33
+ def smart_capitalize!
34
+ replace(smart_capitalize)
35
+ end
36
+ end
@@ -0,0 +1,47 @@
1
+ # Title: Simple Video tag for Jekyll
2
+ # Author: Brandon Mathis http://brandonmathis.com
3
+ # Description: Easily output MPEG4 HTML5 video with a flash backup.
4
+ #
5
+ # Syntax {% video url/to/video [width height] [url/to/poster] %}
6
+ #
7
+ # Example:
8
+ # {% video http://site.com/video.mp4 720 480 http://site.com/poster-frame.jpg %}
9
+ #
10
+ # Output:
11
+ # <video width='720' height='480' preload='none' controls poster='http://site.com/poster-frame.jpg'>
12
+ # <source src='http://site.com/video.mp4' type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'/>
13
+ # </video>
14
+ #
15
+
16
+ module Jekyll
17
+
18
+ class VideoTag < Liquid::Tag
19
+ @video = nil
20
+ @poster = ''
21
+ @height = ''
22
+ @width = ''
23
+
24
+ def initialize(tag_name, markup, tokens)
25
+ if markup =~ /((https?:\/\/|\/)(\S+))(\s+(\d+)\s(\d+))?(\s+(https?:\/\/|\/)(\S+))?/i
26
+ @video = $1
27
+ @width = $5
28
+ @height = $6
29
+ @poster = $7
30
+ end
31
+ super
32
+ end
33
+
34
+ def render(context)
35
+ output = super
36
+ if @video
37
+ video = "<video width='#{@width}' height='#{@height}' preload='none' controls poster='#{@poster}'>"
38
+ video += "<source src='#{@video}' type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'/></video>"
39
+ else
40
+ "Error processing input, expected syntax: {% video url/to/video [width height] [url/to/poster] %}"
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ Liquid::Template.register_tag('video', Jekyll::VideoTag)
47
+
@@ -0,0 +1,115 @@
1
+ <?xml version="1.0"?>
2
+ <skin version="1.1" name="Glow" author="LongTail Video">
3
+
4
+ <settings>
5
+ <setting name="backcolor" value="0x000000" />
6
+ <setting name="frontcolor" value="0xeeeeee" />
7
+ <setting name="lightcolor" value="0xeeeeee" />
8
+ <setting name="screencolor" value="0x000000" />
9
+ </settings>
10
+
11
+ <components>
12
+ <component name="controlbar">
13
+ <settings>
14
+ <setting name="margin" value="0" />
15
+ <setting name="fontsize" value="11" />
16
+ <setting name="fontcolor" value="0xEEEEEE" />
17
+ <setting name="buttoncolor" value="0xEEEEEE" />
18
+ </settings>
19
+
20
+ <layout>
21
+ <group position="left">
22
+ <button name="play" />
23
+ <text name="elapsed" />
24
+ </group>
25
+ <group position="center">
26
+ <slider name="time" />
27
+ </group>
28
+ <group position="right">
29
+ <text name="duration" />
30
+ <button name="blank" />
31
+ <button name="mute" />
32
+ <button name="fullscreen" />
33
+ </group>
34
+ </layout>
35
+
36
+ <elements>
37
+ <element name="background" src="background.png" />
38
+ <element name="capLeft" src="divider.png" />
39
+ <element name="capRight" src="divider.png" />
40
+ <element name="divider" src="divider.png" />
41
+ <element name="blankButton" src="blankButton.png" />
42
+ <element name="fullscreenButton" src="fullscreenButton.png" />
43
+ <element name="fullscreenButtonOver" src="fullscreenButtonOver.png" />
44
+ <element name="muteButton" src="muteButton.png" />
45
+ <element name="muteButtonOver" src="muteButtonOver.png" />
46
+ <element name="pauseButton" src="pauseButton.png" />
47
+ <element name="pauseButtonOver" src="pauseButtonOver.png" />
48
+ <element name="playButton" src="playButton.png" />
49
+ <element name="playButtonOver" src="playButtonOver.png" />
50
+ <element name="timeSliderBuffer" src="timeSliderBuffer.png" />
51
+ <element name="timeSliderCapLeft" src="timeSliderCapLeft.png" />
52
+ <element name="timeSliderCapRight" src="timeSliderCapRight.png" />
53
+ <element name="timeSliderProgress" src="timeSliderProgress.png" />
54
+ <element name="timeSliderRail" src="timeSliderRail.png" />
55
+ <element name="normalscreenButton" src="normalscreenButton.png" />
56
+ <element name="normalscreenButtonOver" src="normalscreenButtonOver.png" />
57
+ <element name="unmuteButton" src="unmuteButton.png" />
58
+ <element name="unmuteButtonOver" src="unmuteButtonOver.png" />
59
+ <element name="volumeSliderRail" src="divider.png" />
60
+ <element name="volumeSliderProgress" src="divider.png" />
61
+ </elements>
62
+ </component>
63
+
64
+ <component name="display">
65
+ <settings>
66
+ <setting name="bufferinterval" value="250" />
67
+ <setting name="bufferrotation" value="90" />
68
+ </settings>
69
+ <elements>
70
+ <element name="background" src="background.png" />
71
+ <element name="playIcon" src="playIcon.png" />
72
+ <element name="muteIcon" src="muteIcon.png" />
73
+ <element name="errorIcon" src="bufferIcon.png" />
74
+ <element name="bufferIcon" src="bufferIcon.png" />
75
+ </elements>
76
+ </component>
77
+
78
+ <component name="dock">
79
+ <settings>
80
+ <setting name="fontcolor" value="0xFFFFFF" />
81
+ </settings>
82
+ <elements>
83
+ <element name="button" src="button.png" />
84
+ </elements>
85
+ </component>
86
+
87
+ <component name="playlist">
88
+ <settings>
89
+ <setting name="fontcolor" value="0xEEEEEE" />
90
+ <setting name="overcolor" value="0xFFFFFF" />
91
+ <setting name="activecolor" value="0xFFFFFF" />
92
+ <setting name="backgroundcolor" value="0x333333" />
93
+ </settings>
94
+ <elements>
95
+ <element name="item" src="item.png" />
96
+ <element name="itemOver" src="itemOver.png" />
97
+ <element name="sliderCapBottom" src="sliderCapBottom.png" />
98
+ <element name="sliderCapTop" src="sliderCapTop.png" />
99
+ <element name="sliderRail" src="sliderRail.png" />
100
+ <element name="sliderThumb" src="sliderThumb.png" />
101
+ </elements>
102
+ </component>
103
+
104
+ <component name="sharing">
105
+ <elements>
106
+ <element name="embedIcon" src="embedIcon.png" />
107
+ <element name="embedScreen" src="embedScreen.png" />
108
+ <element name="shareIcon" src="shareIcon.png" />
109
+ <element name="shareScreen" src="shareScreen.png" />
110
+ </elements>
111
+ </component>
112
+
113
+ </components>
114
+
115
+ </skin>