link-checker 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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>