microformats2 2.9.0 → 3.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 (313) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +125 -25
  3. data/Rakefile +0 -60
  4. data/lib/microformats2.rb +7 -15
  5. data/lib/microformats2/absolute_uri.rb +5 -1
  6. data/lib/microformats2/format_parser.rb +321 -46
  7. data/lib/microformats2/parser.rb +86 -6
  8. data/lib/microformats2/parser_core.rb +343 -0
  9. data/lib/microformats2/property_parser.rb +104 -34
  10. data/lib/microformats2/results/collection.rb +121 -0
  11. data/lib/microformats2/results/parser_result.rb +111 -0
  12. data/lib/microformats2/results/property_set.rb +87 -0
  13. data/lib/microformats2/time_property_parser.rb +161 -0
  14. data/lib/microformats2/version.rb +1 -1
  15. data/microformats2.gemspec +2 -1
  16. data/spec/lib/microformats2/absolute_uri_spec.rb +2 -2
  17. data/spec/lib/microformats2/parser_spec.rb +36 -5
  18. data/spec/lib/microformats2_spec.rb +5 -5
  19. data/spec/spec_helper.rb +0 -1
  20. data/vendor/tests/.gitignore +25 -0
  21. data/vendor/tests/LICENSE.md +36 -0
  22. data/vendor/tests/README.md +48 -0
  23. data/vendor/tests/app.js +84 -0
  24. data/vendor/tests/composer.json +5 -0
  25. data/vendor/tests/css/testsuite.css +159 -0
  26. data/vendor/tests/interface.js +18 -0
  27. data/vendor/tests/package.json +27 -0
  28. data/vendor/tests/tests/microformats-mixed/h-card/change-log.html +63 -0
  29. data/vendor/tests/tests/microformats-mixed/h-card/mixedpropertries.html +14 -0
  30. data/vendor/tests/tests/microformats-mixed/h-card/mixedpropertries.json +22 -0
  31. data/vendor/tests/tests/microformats-mixed/h-card/tworoots.html +1 -0
  32. data/vendor/tests/tests/microformats-mixed/h-card/tworoots.json +10 -0
  33. data/vendor/tests/tests/microformats-mixed/h-entry/mixedroots.html +16 -0
  34. data/vendor/tests/tests/microformats-mixed/h-entry/mixedroots.json +38 -0
  35. data/vendor/tests/tests/microformats-mixed/h-resume/change-log.html +68 -0
  36. data/vendor/tests/tests/microformats-mixed/h-resume/mixedroots.html +16 -0
  37. data/vendor/tests/tests/microformats-mixed/h-resume/mixedroots.json +31 -0
  38. data/vendor/tests/tests/microformats-v1/adr/change-log.html +63 -0
  39. data/vendor/tests/tests/microformats-v1/adr/simpleproperties.html +8 -0
  40. data/vendor/tests/tests/microformats-v1/adr/simpleproperties.json +15 -0
  41. data/vendor/tests/tests/microformats-v1/geo/abbrpattern.html +5 -0
  42. data/vendor/tests/tests/microformats-v1/geo/abbrpattern.json +11 -0
  43. data/vendor/tests/tests/microformats-v1/geo/change-log.1.html +78 -0
  44. data/vendor/tests/tests/microformats-v1/geo/change-log.html +63 -0
  45. data/vendor/tests/tests/microformats-v1/geo/hidden.html +10 -0
  46. data/vendor/tests/tests/microformats-v1/geo/hidden.json +11 -0
  47. data/vendor/tests/tests/microformats-v1/geo/simpleproperties.html +6 -0
  48. data/vendor/tests/tests/microformats-v1/geo/simpleproperties.json +11 -0
  49. data/vendor/tests/tests/microformats-v1/geo/valuetitleclass.html +11 -0
  50. data/vendor/tests/tests/microformats-v1/geo/valuetitleclass.json +11 -0
  51. data/vendor/tests/tests/microformats-v1/hcalendar/ampm.html +41 -0
  52. data/vendor/tests/tests/microformats-v1/hcalendar/ampm.json +21 -0
  53. data/vendor/tests/tests/microformats-v1/hcalendar/attendees.html +13 -0
  54. data/vendor/tests/tests/microformats-v1/hcalendar/attendees.json +37 -0
  55. data/vendor/tests/tests/microformats-v1/hcalendar/change-log.html +68 -0
  56. data/vendor/tests/tests/microformats-v1/hcalendar/combining.html +15 -0
  57. data/vendor/tests/tests/microformats-v1/hcalendar/combining.json +31 -0
  58. data/vendor/tests/tests/microformats-v1/hcalendar/concatenate.html +7 -0
  59. data/vendor/tests/tests/microformats-v1/hcalendar/concatenate.json +12 -0
  60. data/vendor/tests/tests/microformats-v1/hcalendar/time.html +44 -0
  61. data/vendor/tests/tests/microformats-v1/hcalendar/time.json +22 -0
  62. data/vendor/tests/tests/microformats-v1/hcard/change-log.html +68 -0
  63. data/vendor/tests/tests/microformats-v1/hcard/email.html +14 -0
  64. data/vendor/tests/tests/microformats-v1/hcard/email.json +11 -0
  65. data/vendor/tests/tests/microformats-v1/hcard/format.html +6 -0
  66. data/vendor/tests/tests/microformats-v1/hcard/format.json +11 -0
  67. data/vendor/tests/tests/microformats-v1/hcard/hyperlinkedphoto.html +3 -0
  68. data/vendor/tests/tests/microformats-v1/hcard/hyperlinkedphoto.json +8 -0
  69. data/vendor/tests/tests/microformats-v1/hcard/justahyperlink.html +1 -0
  70. data/vendor/tests/tests/microformats-v1/hcard/justahyperlink.json +8 -0
  71. data/vendor/tests/tests/microformats-v1/hcard/justaname.html +1 -0
  72. data/vendor/tests/tests/microformats-v1/hcard/justaname.json +8 -0
  73. data/vendor/tests/tests/microformats-v1/hcard/multiple.html +74 -0
  74. data/vendor/tests/tests/microformats-v1/hcard/multiple.json +65 -0
  75. data/vendor/tests/tests/microformats-v1/hcard/name.html +11 -0
  76. data/vendor/tests/tests/microformats-v1/hcard/name.json +15 -0
  77. data/vendor/tests/tests/microformats-v1/hcard/single.html +14 -0
  78. data/vendor/tests/tests/microformats-v1/hcard/single.json +24 -0
  79. data/vendor/tests/tests/microformats-v1/hentry/change-log.html +73 -0
  80. data/vendor/tests/tests/microformats-v1/hentry/summarycontent.html +20 -0
  81. data/vendor/tests/tests/microformats-v1/hentry/summarycontent.json +24 -0
  82. data/vendor/tests/tests/microformats-v1/hfeed/simple.html +30 -0
  83. data/vendor/tests/tests/microformats-v1/hfeed/simple.json +49 -0
  84. data/vendor/tests/tests/microformats-v1/hnews/all.html +37 -0
  85. data/vendor/tests/tests/microformats-v1/hnews/all.json +74 -0
  86. data/vendor/tests/tests/microformats-v1/hnews/change-log.html +72 -0
  87. data/vendor/tests/tests/microformats-v1/hnews/minimum.html +25 -0
  88. data/vendor/tests/tests/microformats-v1/hnews/minimum.json +48 -0
  89. data/vendor/tests/tests/microformats-v1/hproduct/aggregate.html +26 -0
  90. data/vendor/tests/tests/microformats-v1/hproduct/aggregate.json +52 -0
  91. data/vendor/tests/tests/microformats-v1/hproduct/change-log.html +62 -0
  92. data/vendor/tests/tests/microformats-v1/hproduct/simpleproperties.html +13 -0
  93. data/vendor/tests/tests/microformats-v1/hproduct/simpleproperties.json +33 -0
  94. data/vendor/tests/tests/microformats-v1/hresume/affiliation.html +12 -0
  95. data/vendor/tests/tests/microformats-v1/hresume/affiliation.json +25 -0
  96. data/vendor/tests/tests/microformats-v1/hresume/change-log.html +73 -0
  97. data/vendor/tests/tests/microformats-v1/hresume/contact.html +18 -0
  98. data/vendor/tests/tests/microformats-v1/hresume/contact.json +32 -0
  99. data/vendor/tests/tests/microformats-v1/hresume/education.html +13 -0
  100. data/vendor/tests/tests/microformats-v1/hresume/education.json +29 -0
  101. data/vendor/tests/tests/microformats-v1/hresume/skill.html +12 -0
  102. data/vendor/tests/tests/microformats-v1/hresume/skill.json +33 -0
  103. data/vendor/tests/tests/microformats-v1/hresume/work.html +16 -0
  104. data/vendor/tests/tests/microformats-v1/hresume/work.json +30 -0
  105. data/vendor/tests/tests/microformats-v1/hreview-aggregate/change-log.html +67 -0
  106. data/vendor/tests/tests/microformats-v1/hreview-aggregate/hcard.html +18 -0
  107. data/vendor/tests/tests/microformats-v1/hreview-aggregate/hcard.json +31 -0
  108. data/vendor/tests/tests/microformats-v1/hreview-aggregate/justahyperlink.html +6 -0
  109. data/vendor/tests/tests/microformats-v1/hreview-aggregate/justahyperlink.json +19 -0
  110. data/vendor/tests/tests/microformats-v1/hreview-aggregate/vevent.html +13 -0
  111. data/vendor/tests/tests/microformats-v1/hreview-aggregate/vevent.json +22 -0
  112. data/vendor/tests/tests/microformats-v1/hreview/change-log.html +73 -0
  113. data/vendor/tests/tests/microformats-v1/hreview/item.html +8 -0
  114. data/vendor/tests/tests/microformats-v1/hreview/item.json +19 -0
  115. data/vendor/tests/tests/microformats-v1/hreview/vcard.html +23 -0
  116. data/vendor/tests/tests/microformats-v1/hreview/vcard.json +58 -0
  117. data/vendor/tests/tests/microformats-v1/includes/change-log.html +72 -0
  118. data/vendor/tests/tests/microformats-v1/includes/hcarditemref.html +16 -0
  119. data/vendor/tests/tests/microformats-v1/includes/hcarditemref.json +49 -0
  120. data/vendor/tests/tests/microformats-v1/includes/heventitemref.html +25 -0
  121. data/vendor/tests/tests/microformats-v1/includes/heventitemref.json +33 -0
  122. data/vendor/tests/tests/microformats-v1/includes/hyperlink.html +18 -0
  123. data/vendor/tests/tests/microformats-v1/includes/hyperlink.json +43 -0
  124. data/vendor/tests/tests/microformats-v1/includes/object.html +23 -0
  125. data/vendor/tests/tests/microformats-v1/includes/object.json +42 -0
  126. data/vendor/tests/tests/microformats-v1/includes/table.html +12 -0
  127. data/vendor/tests/tests/microformats-v1/includes/table.json +19 -0
  128. data/vendor/tests/tests/microformats-v2/h-adr/change-log.html +62 -0
  129. data/vendor/tests/tests/microformats-v2/h-adr/geo.html +10 -0
  130. data/vendor/tests/tests/microformats-v2/h-adr/geo.json +16 -0
  131. data/vendor/tests/tests/microformats-v2/h-adr/geourl.html +4 -0
  132. data/vendor/tests/tests/microformats-v2/h-adr/geourl.json +13 -0
  133. data/vendor/tests/tests/microformats-v2/h-adr/justaname.html +1 -0
  134. data/vendor/tests/tests/microformats-v2/h-adr/justaname.json +10 -0
  135. data/vendor/tests/tests/microformats-v2/h-adr/lettercase.html +21 -0
  136. data/vendor/tests/tests/microformats-v2/h-adr/lettercase.json +12 -0
  137. data/vendor/tests/tests/microformats-v2/h-adr/simpleproperties.html +8 -0
  138. data/vendor/tests/tests/microformats-v2/h-adr/simpleproperties.json +16 -0
  139. data/vendor/tests/tests/microformats-v2/h-as-note/note.html +56 -0
  140. data/vendor/tests/tests/microformats-v2/h-as-note/note.json +98 -0
  141. data/vendor/tests/tests/microformats-v2/h-card/baseurl.html +6 -0
  142. data/vendor/tests/tests/microformats-v2/h-card/baseurl.json +26 -0
  143. data/vendor/tests/tests/microformats-v2/h-card/change-log.html +100 -0
  144. data/vendor/tests/tests/microformats-v2/h-card/childimplied.html +7 -0
  145. data/vendor/tests/tests/microformats-v2/h-card/childimplied.json +12 -0
  146. data/vendor/tests/tests/microformats-v2/h-card/extendeddescription.html +10 -0
  147. data/vendor/tests/tests/microformats-v2/h-card/extendeddescription.json +15 -0
  148. data/vendor/tests/tests/microformats-v2/h-card/hcard.html +4 -0
  149. data/vendor/tests/tests/microformats-v2/h-card/hcard.json +19 -0
  150. data/vendor/tests/tests/microformats-v2/h-card/horghcard.html +4 -0
  151. data/vendor/tests/tests/microformats-v2/h-card/horghcard.json +19 -0
  152. data/vendor/tests/tests/microformats-v2/h-card/hyperlinkedphoto.html +3 -0
  153. data/vendor/tests/tests/microformats-v2/h-card/hyperlinkedphoto.json +12 -0
  154. data/vendor/tests/tests/microformats-v2/h-card/impliedname.html +15 -0
  155. data/vendor/tests/tests/microformats-v2/h-card/impliedname.json +90 -0
  156. data/vendor/tests/tests/microformats-v2/h-card/impliedphoto.html +11 -0
  157. data/vendor/tests/tests/microformats-v2/h-card/impliedphoto.json +72 -0
  158. data/vendor/tests/tests/microformats-v2/h-card/impliedurl.html +5 -0
  159. data/vendor/tests/tests/microformats-v2/h-card/impliedurl.json +45 -0
  160. data/vendor/tests/tests/microformats-v2/h-card/justahyperlink.html +1 -0
  161. data/vendor/tests/tests/microformats-v2/h-card/justahyperlink.json +11 -0
  162. data/vendor/tests/tests/microformats-v2/h-card/justaname.html +1 -0
  163. data/vendor/tests/tests/microformats-v2/h-card/justaname.json +10 -0
  164. data/vendor/tests/tests/microformats-v2/h-card/nested.html +4 -0
  165. data/vendor/tests/tests/microformats-v2/h-card/nested.json +18 -0
  166. data/vendor/tests/tests/microformats-v2/h-card/p-property.html +21 -0
  167. data/vendor/tests/tests/microformats-v2/h-card/p-property.json +15 -0
  168. data/vendor/tests/tests/microformats-v2/h-card/relativeurls.html +6 -0
  169. data/vendor/tests/tests/microformats-v2/h-card/relativeurls.json +29 -0
  170. data/vendor/tests/tests/microformats-v2/h-entry/change-log.html +90 -0
  171. data/vendor/tests/tests/microformats-v2/h-entry/encoding.html +3 -0
  172. data/vendor/tests/tests/microformats-v2/h-entry/encoding.json +14 -0
  173. data/vendor/tests/tests/microformats-v2/h-entry/impliedvalue-nested.html +9 -0
  174. data/vendor/tests/tests/microformats-v2/h-entry/impliedvalue-nested.json +27 -0
  175. data/vendor/tests/tests/microformats-v2/h-entry/justahyperlink.html +1 -0
  176. data/vendor/tests/tests/microformats-v2/h-entry/justahyperlink.json +11 -0
  177. data/vendor/tests/tests/microformats-v2/h-entry/justaname.html +1 -0
  178. data/vendor/tests/tests/microformats-v2/h-entry/justaname.json +10 -0
  179. data/vendor/tests/tests/microformats-v2/h-entry/scriptstyletags.html +4 -0
  180. data/vendor/tests/tests/microformats-v2/h-entry/scriptstyletags.json +14 -0
  181. data/vendor/tests/tests/microformats-v2/h-entry/summarycontent.html +20 -0
  182. data/vendor/tests/tests/microformats-v2/h-entry/summarycontent.json +25 -0
  183. data/vendor/tests/tests/microformats-v2/h-entry/u-property.html +33 -0
  184. data/vendor/tests/tests/microformats-v2/h-entry/u-property.json +12 -0
  185. data/vendor/tests/tests/microformats-v2/h-entry/urlincontent.html +13 -0
  186. data/vendor/tests/tests/microformats-v2/h-entry/urlincontent.json +14 -0
  187. data/vendor/tests/tests/microformats-v2/h-event/ampm.html +41 -0
  188. data/vendor/tests/tests/microformats-v2/h-event/ampm.json +21 -0
  189. data/vendor/tests/tests/microformats-v2/h-event/attendees.html +13 -0
  190. data/vendor/tests/tests/microformats-v2/h-event/attendees.json +37 -0
  191. data/vendor/tests/tests/microformats-v2/h-event/change-log.html +82 -0
  192. data/vendor/tests/tests/microformats-v2/h-event/combining.html +13 -0
  193. data/vendor/tests/tests/microformats-v2/h-event/combining.json +25 -0
  194. data/vendor/tests/tests/microformats-v2/h-event/concatenate.html +8 -0
  195. data/vendor/tests/tests/microformats-v2/h-event/concatenate.json +12 -0
  196. data/vendor/tests/tests/microformats-v2/h-event/dates.html +13 -0
  197. data/vendor/tests/tests/microformats-v2/h-event/dates.json +26 -0
  198. data/vendor/tests/tests/microformats-v2/h-event/dt-property.html +23 -0
  199. data/vendor/tests/tests/microformats-v2/h-event/dt-property.json +20 -0
  200. data/vendor/tests/tests/microformats-v2/h-event/justahyperlink.html +1 -0
  201. data/vendor/tests/tests/microformats-v2/h-event/justahyperlink.json +11 -0
  202. data/vendor/tests/tests/microformats-v2/h-event/justaname.html +1 -0
  203. data/vendor/tests/tests/microformats-v2/h-event/justaname.json +10 -0
  204. data/vendor/tests/tests/microformats-v2/h-event/time.html +47 -0
  205. data/vendor/tests/tests/microformats-v2/h-event/time.json +25 -0
  206. data/vendor/tests/tests/microformats-v2/h-feed/implied-title.html +30 -0
  207. data/vendor/tests/tests/microformats-v2/h-feed/implied-title.json +23 -0
  208. data/vendor/tests/tests/microformats-v2/h-feed/simple.html +26 -0
  209. data/vendor/tests/tests/microformats-v2/h-feed/simple.json +33 -0
  210. data/vendor/tests/tests/microformats-v2/h-geo/abbrpattern.html +5 -0
  211. data/vendor/tests/tests/microformats-v2/h-geo/abbrpattern.json +12 -0
  212. data/vendor/tests/tests/microformats-v2/h-geo/altitude.html +8 -0
  213. data/vendor/tests/tests/microformats-v2/h-geo/altitude.json +13 -0
  214. data/vendor/tests/tests/microformats-v2/h-geo/change-log.html +67 -0
  215. data/vendor/tests/tests/microformats-v2/h-geo/hidden.html +10 -0
  216. data/vendor/tests/tests/microformats-v2/h-geo/hidden.json +12 -0
  217. data/vendor/tests/tests/microformats-v2/h-geo/justaname.html +3 -0
  218. data/vendor/tests/tests/microformats-v2/h-geo/justaname.json +10 -0
  219. data/vendor/tests/tests/microformats-v2/h-geo/simpleproperties.html +5 -0
  220. data/vendor/tests/tests/microformats-v2/h-geo/simpleproperties.json +12 -0
  221. data/vendor/tests/tests/microformats-v2/h-geo/valuetitleclass.html +11 -0
  222. data/vendor/tests/tests/microformats-v2/h-geo/valuetitleclass.json +12 -0
  223. data/vendor/tests/tests/microformats-v2/h-news/all.html +35 -0
  224. data/vendor/tests/tests/microformats-v2/h-news/all.json +51 -0
  225. data/vendor/tests/tests/microformats-v2/h-news/change-log.html +78 -0
  226. data/vendor/tests/tests/microformats-v2/h-news/minimum.html +24 -0
  227. data/vendor/tests/tests/microformats-v2/h-news/minimum.json +40 -0
  228. data/vendor/tests/tests/microformats-v2/h-org/change-log.html +57 -0
  229. data/vendor/tests/tests/microformats-v2/h-org/hyperlink.html +1 -0
  230. data/vendor/tests/tests/microformats-v2/h-org/hyperlink.json +11 -0
  231. data/vendor/tests/tests/microformats-v2/h-org/simple.html +1 -0
  232. data/vendor/tests/tests/microformats-v2/h-org/simple.json +10 -0
  233. data/vendor/tests/tests/microformats-v2/h-org/simpleproperties.html +4 -0
  234. data/vendor/tests/tests/microformats-v2/h-org/simpleproperties.json +12 -0
  235. data/vendor/tests/tests/microformats-v2/h-product/aggregate.html +21 -0
  236. data/vendor/tests/tests/microformats-v2/h-product/aggregate.json +45 -0
  237. data/vendor/tests/tests/microformats-v2/h-product/change-log.html +62 -0
  238. data/vendor/tests/tests/microformats-v2/h-product/justahyperlink.html +1 -0
  239. data/vendor/tests/tests/microformats-v2/h-product/justahyperlink.json +11 -0
  240. data/vendor/tests/tests/microformats-v2/h-product/justaname.html +1 -0
  241. data/vendor/tests/tests/microformats-v2/h-product/justaname.json +10 -0
  242. data/vendor/tests/tests/microformats-v2/h-product/simpleproperties.html +10 -0
  243. data/vendor/tests/tests/microformats-v2/h-product/simpleproperties.json +26 -0
  244. data/vendor/tests/tests/microformats-v2/h-recipe/all.html +63 -0
  245. data/vendor/tests/tests/microformats-v2/h-recipe/all.json +54 -0
  246. data/vendor/tests/tests/microformats-v2/h-recipe/change-log.html +62 -0
  247. data/vendor/tests/tests/microformats-v2/h-recipe/minimum.html +7 -0
  248. data/vendor/tests/tests/microformats-v2/h-recipe/minimum.json +17 -0
  249. data/vendor/tests/tests/microformats-v2/h-resume/affiliation.html +12 -0
  250. data/vendor/tests/tests/microformats-v2/h-resume/affiliation.json +20 -0
  251. data/vendor/tests/tests/microformats-v2/h-resume/change-log.html +78 -0
  252. data/vendor/tests/tests/microformats-v2/h-resume/contact.html +17 -0
  253. data/vendor/tests/tests/microformats-v2/h-resume/contact.json +26 -0
  254. data/vendor/tests/tests/microformats-v2/h-resume/education.html +13 -0
  255. data/vendor/tests/tests/microformats-v2/h-resume/education.json +30 -0
  256. data/vendor/tests/tests/microformats-v2/h-resume/justaname.html +1 -0
  257. data/vendor/tests/tests/microformats-v2/h-resume/justaname.json +10 -0
  258. data/vendor/tests/tests/microformats-v2/h-resume/skill.html +12 -0
  259. data/vendor/tests/tests/microformats-v2/h-resume/skill.json +12 -0
  260. data/vendor/tests/tests/microformats-v2/h-resume/work.html +16 -0
  261. data/vendor/tests/tests/microformats-v2/h-resume/work.json +31 -0
  262. data/vendor/tests/tests/microformats-v2/h-review-aggregate/change-log.html +78 -0
  263. data/vendor/tests/tests/microformats-v2/h-review-aggregate/hevent.html +13 -0
  264. data/vendor/tests/tests/microformats-v2/h-review-aggregate/hevent.json +23 -0
  265. data/vendor/tests/tests/microformats-v2/h-review-aggregate/justahyperlink.html +8 -0
  266. data/vendor/tests/tests/microformats-v2/h-review-aggregate/justahyperlink.json +19 -0
  267. data/vendor/tests/tests/microformats-v2/h-review-aggregate/simpleproperties.html +18 -0
  268. data/vendor/tests/tests/microformats-v2/h-review-aggregate/simpleproperties.json +26 -0
  269. data/vendor/tests/tests/microformats-v2/h-review/change-log.html +84 -0
  270. data/vendor/tests/tests/microformats-v2/h-review/hyperlink.html +1 -0
  271. data/vendor/tests/tests/microformats-v2/h-review/hyperlink.json +11 -0
  272. data/vendor/tests/tests/microformats-v2/h-review/implieditem.html +4 -0
  273. data/vendor/tests/tests/microformats-v2/h-review/implieditem.json +19 -0
  274. data/vendor/tests/tests/microformats-v2/h-review/item.html +8 -0
  275. data/vendor/tests/tests/microformats-v2/h-review/item.json +20 -0
  276. data/vendor/tests/tests/microformats-v2/h-review/justaname.html +1 -0
  277. data/vendor/tests/tests/microformats-v2/h-review/justaname.json +10 -0
  278. data/vendor/tests/tests/microformats-v2/h-review/photo.html +1 -0
  279. data/vendor/tests/tests/microformats-v2/h-review/photo.json +11 -0
  280. data/vendor/tests/tests/microformats-v2/h-review/vcard.html +23 -0
  281. data/vendor/tests/tests/microformats-v2/h-review/vcard.json +48 -0
  282. data/vendor/tests/tests/microformats-v2/rel/change-log.html +67 -0
  283. data/vendor/tests/tests/microformats-v2/rel/duplicate-rels.html +10 -0
  284. data/vendor/tests/tests/microformats-v2/rel/duplicate-rels.json +75 -0
  285. data/vendor/tests/tests/microformats-v2/rel/license.html +1 -0
  286. data/vendor/tests/tests/microformats-v2/rel/license.json +12 -0
  287. data/vendor/tests/tests/microformats-v2/rel/nofollow.html +1 -0
  288. data/vendor/tests/tests/microformats-v2/rel/nofollow.json +12 -0
  289. data/vendor/tests/tests/microformats-v2/rel/rel-urls.html +8 -0
  290. data/vendor/tests/tests/microformats-v2/rel/rel-urls.json +33 -0
  291. data/vendor/tests/tests/microformats-v2/rel/varying-text-duplicate-rels.html +4 -0
  292. data/vendor/tests/tests/microformats-v2/rel/varying-text-duplicate-rels.json +20 -0
  293. data/vendor/tests/tests/microformats-v2/rel/xfn-all.html +19 -0
  294. data/vendor/tests/tests/microformats-v2/rel/xfn-all.json +92 -0
  295. data/vendor/tests/tests/microformats-v2/rel/xfn-elsewhere.html +10 -0
  296. data/vendor/tests/tests/microformats-v2/rel/xfn-elsewhere.json +40 -0
  297. metadata +285 -37
  298. data/lib/microformats2/collection.rb +0 -136
  299. data/lib/microformats2/format.rb +0 -151
  300. data/lib/microformats2/implied_property/foundation.rb +0 -59
  301. data/lib/microformats2/implied_property/name.rb +0 -34
  302. data/lib/microformats2/implied_property/photo.rb +0 -28
  303. data/lib/microformats2/implied_property/url.rb +0 -24
  304. data/lib/microformats2/property.rb +0 -21
  305. data/lib/microformats2/property/date_time.rb +0 -28
  306. data/lib/microformats2/property/embedded.rb +0 -9
  307. data/lib/microformats2/property/foundation.rb +0 -143
  308. data/lib/microformats2/property/text.rb +0 -16
  309. data/lib/microformats2/property/url.rb +0 -26
  310. data/spec/lib/microformats2/collection_spec.rb +0 -252
  311. data/spec/lib/microformats2/implied_property/name_spec.rb +0 -31
  312. data/spec/lib/microformats2/implied_property/photo_spec.rb +0 -31
  313. data/spec/lib/microformats2/implied_property/url_spec.rb +0 -58
@@ -0,0 +1,12 @@
1
+ <meta charset="utf-8">
2
+ <table>
3
+ <tr>
4
+ <th id="org"><a class="url org" href="http://dev.opera.com/">Opera</a></th>
5
+ </tr>
6
+ <tr>
7
+ <td class="vcard" headers="org"><span class="fn">Chris Mills</span></td>
8
+ </tr>
9
+ <tr>
10
+ <td class="vcard" headers="org"><span class="fn">Erik Möller</span></td>
11
+ </tr>
12
+ </table>
@@ -0,0 +1,19 @@
1
+ {
2
+ "items": [{
3
+ "type": ["h-card"],
4
+ "properties": {
5
+ "name": ["Chris Mills"],
6
+ "url": ["http://dev.opera.com/"],
7
+ "org": ["Opera"]
8
+ }
9
+ }, {
10
+ "type": ["h-card"],
11
+ "properties": {
12
+ "name": ["Erik Möller"],
13
+ "url": ["http://dev.opera.com/"],
14
+ "org": ["Opera"]
15
+ }
16
+ }],
17
+ "rels": {},
18
+ "rel-urls": {}
19
+ }
@@ -0,0 +1,62 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>h-adr parsing tests</title>
6
+
7
+ <link rel="stylesheet" href="../../../css/testsuite.css">
8
+ <link rel="stylesheet" href="../../../prettify.css">
9
+
10
+ <script src="../../../javascript/prettify.js"></script>
11
+ <script src="../../../javascript/testsuite.js"></script>
12
+
13
+ </head>
14
+ <body class="h-feed">
15
+
16
+ <h1 class="p-name"><span class="p-x-format">h-adr</span> parsing tests &dash; change logs</h1>
17
+
18
+ <p class="p-description">The files in this directory where designed to test the parsing of h-adr. </p>
19
+
20
+
21
+ <h2>Change log:</h2>
22
+ <ul>
23
+ <!-- Add change log event to the top of this list as a h-entry -->
24
+ <li class="h-entry">
25
+ <span class="p-name e-content">Update text output to be textContent non-trimmed for geo and simpleproperties test</span> &dash;
26
+ <time class="dt-published" datetime="2015-05-29">29 May 2015</time>
27
+ by <span class="p-author">Glenn Jones</span>
28
+ </li>
29
+ <li class="h-entry">
30
+ <span class="p-name e-content">Broke old HTML format into small files to aid simpler testing</span> &dash;
31
+ <time class="dt-published" datetime="2015-05-21">21 May 2015</time>
32
+ by <span class="p-author">Glenn Jones</span>
33
+ </li>
34
+ <li class="h-entry">
35
+ <span class="p-name e-content">Updated JSON examples so it always has the rel={} object as well as the items=[] array</span> &dash;
36
+ <time class="dt-published" datetime="2013-11-21">21 November 2013</time>
37
+ by <span class="p-author">Glenn Jones</span>
38
+ </li>
39
+ <li class="h-entry">
40
+ <span class="p-name e-content">Created</span> &dash;
41
+ <time class="dt-published" datetime="2012-12-29">29 December 2012</time>
42
+ by <span class="p-author">Glenn Jones</span>
43
+ </li>
44
+ </ul>
45
+
46
+
47
+ <h2>Contributors:</h2>
48
+ <ul>
49
+ <!-- If you Contribute to the test please add yourself as an author using p-author h-card -->
50
+ <li class="p-author h-card">
51
+ <a class="u-url p-name" rel="author" href="http://www.glennjones.net/">Glenn Jones</a>
52
+ </li>
53
+ </ul>
54
+
55
+
56
+ <footer>
57
+ All content and code is released into the <a href="http://en.wikipedia.org/wiki/public_domain">public domain</a>
58
+ </footer>
59
+
60
+ </body>
61
+
62
+ </html>
@@ -0,0 +1,10 @@
1
+ <p class="h-adr">
2
+ <span class="p-name">Bricklayer's Arms</span>
3
+ <span class="p-label">
4
+ <span class="p-street-address">3 Charlotte Road</span>,
5
+ <span class="p-locality">City of London</span>,
6
+ <span class="p-postal-code">EC2A 3PE</span>,
7
+ <span class="p-country-name">UK</span>
8
+ </span> –
9
+ Geo:(<span class="p-geo">51.526421;-0.081067</span>)
10
+ </p>
@@ -0,0 +1,16 @@
1
+ {
2
+ "items": [{
3
+ "type": ["h-adr"],
4
+ "properties": {
5
+ "name": ["Bricklayer's Arms"],
6
+ "label": ["3 Charlotte Road, \n City of London, \n EC2A 3PE, \n UK"],
7
+ "street-address": ["3 Charlotte Road"],
8
+ "locality": ["City of London"],
9
+ "postal-code": ["EC2A 3PE"],
10
+ "country-name": ["UK"],
11
+ "geo": ["51.526421;-0.081067"]
12
+ }
13
+ }],
14
+ "rels": {},
15
+ "rel-urls": {}
16
+ }
@@ -0,0 +1,4 @@
1
+ <p class="h-adr">
2
+ <a class="p-name u-geo" href="geo:51.526421;-0.081067;crs=wgs84;u=40">Bricklayer's Arms</a>,
3
+ <span class="p-locality">London</span>
4
+ </p>
@@ -0,0 +1,13 @@
1
+ {
2
+ "items": [{
3
+ "type": ["h-adr"],
4
+ "properties": {
5
+ "name": ["Bricklayer's Arms"],
6
+ "geo": ["geo:51.526421;-0.081067;crs=wgs84;u=40"],
7
+ "locality": ["London"],
8
+ "url": ["geo:51.526421;-0.081067;crs=wgs84;u=40"]
9
+ }
10
+ }],
11
+ "rels": {},
12
+ "rel-urls": {}
13
+ }
@@ -0,0 +1 @@
1
+ <p class="h-adr">665 3rd St. Suite 207 San Francisco, CA 94107 U.S.A.</p>
@@ -0,0 +1,10 @@
1
+ {
2
+ "items": [{
3
+ "type": ["h-adr"],
4
+ "properties": {
5
+ "name": ["665 3rd St. Suite 207 San Francisco, CA 94107 U.S.A."]
6
+ }
7
+ }],
8
+ "rels": {},
9
+ "rel-urls": {}
10
+ }
@@ -0,0 +1,21 @@
1
+ <p class="h-adr">
2
+ <span class="p-name">Bricklayer's Arms</span>
3
+ <span class="p-street-address">3 Charlotte Road</span>,
4
+ <span class="p-locality">City of London</span>,
5
+ <span class="P-postal-code">EC2A 3PE</span>,
6
+ <span class="p-country-Name">UK</span>
7
+ </p>
8
+ <p class="H-adr">
9
+ <span class="p-name">Bricklayer's Arms</span>
10
+ <span class="p-street-address">3 Charlotte Road</span>,
11
+ <span class="p-locality">City of London</span>,
12
+ <span class="p-postal-code">EC2A 3PE</span>,
13
+ <span class="p-country-name">UK</span>
14
+ </p>
15
+ <p class="h-Adr">
16
+ <span class="p-name">Bricklayer's Arms</span>
17
+ <span class="p-street-address">3 Charlotte Road</span>,
18
+ <span class="p-locality">City of London</span>,
19
+ <span class="p-postal-code">EC2A 3PE</span>,
20
+ <span class="p-country-name">UK</span>
21
+ </p>
@@ -0,0 +1,12 @@
1
+ {
2
+ "items": [{
3
+ "type": ["h-adr"],
4
+ "properties": {
5
+ "name": ["Bricklayer's Arms"],
6
+ "street-address": ["3 Charlotte Road"],
7
+ "locality": ["City of London"]
8
+ }
9
+ }],
10
+ "rels": {},
11
+ "rel-urls": {}
12
+ }
@@ -0,0 +1,8 @@
1
+ <p class="h-adr">
2
+ <span class="p-street-address">665 3rd St.</span>
3
+ <span class="p-extended-address">Suite 207</span>
4
+ <span class="p-locality">San Francisco</span>,
5
+ <span class="p-region">CA</span>
6
+ <span class="p-postal-code">94107</span>
7
+ <span class="p-country-name">U.S.A.</span>
8
+ </p>
@@ -0,0 +1,16 @@
1
+ {
2
+ "items": [{
3
+ "type": ["h-adr"],
4
+ "properties": {
5
+ "street-address": ["665 3rd St."],
6
+ "extended-address": ["Suite 207"],
7
+ "locality": ["San Francisco"],
8
+ "region": ["CA"],
9
+ "postal-code": ["94107"],
10
+ "country-name": ["U.S.A."],
11
+ "name": ["665 3rd St. \n Suite 207 \n San Francisco, \n CA \n 94107 \n U.S.A."]
12
+ }
13
+ }],
14
+ "rels": {},
15
+ "rel-urls": {}
16
+ }
@@ -0,0 +1,56 @@
1
+ <!-- http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy -->
2
+ <base href="http://tantek.com/" />
3
+
4
+ <li class="h-entry hentry h-as-note">
5
+ <div>
6
+ <ul>
7
+ <li>
8
+ <a href="152/t1/congrats-fellow-elected-w3cab-members" id="previtem" title="View the previous (older) item in the stream."
9
+ rel="prev"><abbr title="Previous">←</abbr></a>
10
+ </li>
11
+ <li>
12
+ <a href="152/t3/going-indiewebcamp-2015-portland" id="nextitem" title="View the next (newer) item in the stream" rel="next"><abbr title="Next">→</abbr></a>
13
+ </li>
14
+ </ul>
15
+ </div>
16
+ <div>In reply to:
17
+ <p>
18
+ <a class="u-in-reply-to h-cite" rel="in-reply-to" href="http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far">http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far</a>
19
+ </p>
20
+ <p>
21
+ <a class="u-in-reply-to h-cite" rel="in-reply-to" href="https://twitter.com/benwerd/status/604733231284383744">https://twitter.com/benwerd/status/604733231284383744</a>
22
+ </p>
23
+ <hr>
24
+ </div>
25
+ <a href="../" class="p-author h-card" rel="author" title="Tantek Çelik"><img src="/images/photo.gif" alt="Tantek Çelik"></a>
26
+ <p class="p-name entry-title e-content entry-content article">
27
+ <a class="auto-link h-x-username" href="https://twitter.com/benwerd">@benwerd</a>
28
+ <a class="auto-link h-x-username" href="https://twitter.com/erinjo">@erinjo</a>also proud of you &amp;
29
+ <a class="auto-link h-x-username" href="https://twitter.com/withknown">@withknown</a>— so much #indieweb &amp; especially user empathy. Keep up the great work!</p>
30
+ <span>
31
+ <span class="dt-published published dt-updated updated">
32
+ <time class="value" datetime="22:20-0700">22:20</time>on
33
+ <time class="value">2015-06-01</time>
34
+ </span>
35
+ <span class="lt">(ttk.me t4bT2)</span>using
36
+ <span class="using">BBEdit</span>
37
+ </span>
38
+ <div>
39
+ <form action="http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy">
40
+ <div>
41
+ <label>
42
+ <span class="lt">URL:</span>
43
+ <input class="u-url url u-uid uid bookmark" type="url" size="70" style="max-width:100%" value="http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy">
44
+ </label>
45
+ </div>
46
+ </form>
47
+ </div>
48
+ <div>
49
+ <a class="u-syndication" rel="syndication" style="float:right;" href="https://twitter.com/t/status/605604965566906369">
50
+ <img src="/images/photo.gif" style="vertical-align:-30%" alt="">
51
+ View
52
+ Conversation
53
+ on Twitter
54
+ </a>
55
+ </div>
56
+ </li>
@@ -0,0 +1,98 @@
1
+ {
2
+ "items": [{
3
+ "type": ["h-entry", "h-as-note"],
4
+ "properties": {
5
+ "in-reply-to": [{
6
+ "value": "http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far",
7
+ "type": ["h-cite"],
8
+ "properties": {
9
+ "name": ["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far"],
10
+ "url": ["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far"]
11
+ }
12
+ },
13
+ {
14
+ "value": "https://twitter.com/benwerd/status/604733231284383744",
15
+ "type": ["h-cite"],
16
+ "properties": {
17
+ "name": ["https://twitter.com/benwerd/status/604733231284383744"],
18
+ "url": ["https://twitter.com/benwerd/status/604733231284383744"]
19
+ }
20
+ }],
21
+ "author": [{
22
+ "value": "Tantek Çelik",
23
+ "type": ["h-card"],
24
+ "properties": {
25
+ "name": ["Tantek Çelik"],
26
+ "photo": ["http://tantek.com/images/photo.gif"],
27
+ "url": ["http://tantek.com/"]
28
+ }
29
+ }],
30
+ "name": ["@benwerd\n @erinjoalso proud of you &\n @withknown— so much #indieweb & especially user empathy. Keep up the great work!"],
31
+ "content": [{
32
+ "value": "@benwerd\n @erinjoalso proud of you &\n @withknown— so much #indieweb & especially user empathy. Keep up the great work!",
33
+ "html": "\n <a class=\"auto-link h-x-username\" href=\"https://twitter.com/benwerd\">@benwerd</a>\n <a class=\"auto-link h-x-username\" href=\"https://twitter.com/erinjo\">@erinjo</a>also proud of you &amp;\n <a class=\"auto-link h-x-username\" href=\"https://twitter.com/withknown\">@withknown</a>— so much #indieweb &amp; especially user empathy. Keep up the great work!"
34
+ }],
35
+ "published": ["2015-06-01 22:20-0700"],
36
+ "updated": ["2015-06-01 22:20-0700"],
37
+ "url": ["http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy"],
38
+ "uid": ["http://tantek.com/2015/152/t2/proud-withknown-indieweb-user-empathy"],
39
+ "syndication": ["https://twitter.com/t/status/605604965566906369"]
40
+ },
41
+ "children": [{
42
+ "type": ["h-x-username"],
43
+ "properties": {
44
+ "name": ["@benwerd"],
45
+ "url": ["https://twitter.com/benwerd"]
46
+ }
47
+ },
48
+ {
49
+ "type": ["h-x-username"],
50
+ "properties": {
51
+ "name": ["@erinjo"],
52
+ "url": ["https://twitter.com/erinjo"]
53
+ }
54
+ },
55
+ {
56
+ "type": ["h-x-username"],
57
+ "properties": {
58
+ "name": ["@withknown"],
59
+ "url": ["https://twitter.com/withknown"]
60
+ }
61
+ }]
62
+ }],
63
+ "rels": {
64
+ "prev": ["http://tantek.com/152/t1/congrats-fellow-elected-w3cab-members"],
65
+ "next": ["http://tantek.com/152/t3/going-indiewebcamp-2015-portland"],
66
+ "in-reply-to": ["http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far", "https://twitter.com/benwerd/status/604733231284383744"],
67
+ "author": ["http://tantek.com/"],
68
+ "syndication": ["https://twitter.com/t/status/605604965566906369"]
69
+ },
70
+ "rel-urls": {
71
+ "http://tantek.com/152/t1/congrats-fellow-elected-w3cab-members": {
72
+ "title": "View the previous (older) item in the stream.",
73
+ "text": "←",
74
+ "rels": ["prev"]
75
+ },
76
+ "http://tantek.com/152/t3/going-indiewebcamp-2015-portland": {
77
+ "title": "View the next (newer) item in the stream",
78
+ "text": "→",
79
+ "rels": ["next"]
80
+ },
81
+ "http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far": {
82
+ "text": "http://werd.io/2015/im-super-proud-of-everything-weve-done-on-withknown-so-far",
83
+ "rels": ["in-reply-to"]
84
+ },
85
+ "https://twitter.com/benwerd/status/604733231284383744": {
86
+ "text": "https://twitter.com/benwerd/status/604733231284383744",
87
+ "rels": ["in-reply-to"]
88
+ },
89
+ "http://tantek.com/": {
90
+ "title": "Tantek Çelik",
91
+ "rels": ["author"]
92
+ },
93
+ "https://twitter.com/t/status/605604965566906369": {
94
+ "text": "View \n Conversation\n on Twitter",
95
+ "rels": ["syndication"]
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,6 @@
1
+ <base href="http://example.org"/>
2
+ <div class="h-card">
3
+ <a class="p-name u-url" href="http://blog.lizardwrangler.com/">Mitchell Baker</a>
4
+ (<a class="p-org h-card" href="bios/mitchell-baker/">Mozilla Foundation</a>)
5
+ <img class="u-photo" src="images/photo.gif"/>
6
+ </div>
@@ -0,0 +1,26 @@
1
+ {
2
+ "items": [{
3
+ "type": [
4
+ "h-card"
5
+ ],
6
+ "properties": {
7
+ "name": [
8
+ "Mitchell Baker"
9
+ ],
10
+ "url": ["http://blog.lizardwrangler.com/"],
11
+ "org": [{
12
+ "value": "Mozilla Foundation",
13
+ "type": [
14
+ "h-card"
15
+ ],
16
+ "properties": {
17
+ "name": ["Mozilla Foundation"],
18
+ "url": ["http://example.org/bios/mitchell-baker/"]
19
+ }
20
+ }],
21
+ "photo": ["http://example.org/images/photo.gif"]
22
+ }
23
+ }],
24
+ "rels": {},
25
+ "rel-urls": {}
26
+ }
@@ -0,0 +1,100 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>h-card parsing tests</title>
6
+
7
+ <link rel="stylesheet" href="../../../css/testsuite.css">
8
+ <link rel="stylesheet" href="../../../prettify.css">
9
+
10
+ <script src="../../../javascript/prettify.js"></script>
11
+ <script src="../../../javascript/testsuite.js"></script>
12
+
13
+ </head>
14
+ <body class="h-feed">
15
+
16
+ <h1 class="p-name"><span class="p-x-format">h-card</span> parsing tests &dash; change logs</h1>
17
+
18
+ <p class="p-description">The files in this directory where designed to test the parsing of h-card. </p>
19
+
20
+
21
+ <h2>Change log:</h2>
22
+ <ul>
23
+ <!-- Add change log event to the top of this list as a h-entry -->
24
+ <li class="h-entry">
25
+ <span class="p-name e-content">Changed the order of items in type property for nested tests</span> &dash;
26
+ <time class="dt-published" datetime="2015-05-23">23 May 2015</time>
27
+ by <span class="p-author">Glenn Jones</span>
28
+ </li>
29
+ <li class="h-entry">
30
+ <span class="p-name e-content">Remove duplicate structures from items[] in horghcard and nested tests</span> &dash;
31
+ <time class="dt-published" datetime="2015-05-23">23 May 2015</time>
32
+ by <span class="p-author">Glenn Jones</span>
33
+ </li>
34
+ <li class="h-entry">
35
+ <span class="p-name e-content">Broke old HTML format into small files to aid simpler testing</span> &dash;
36
+ <time class="dt-published" datetime="2015-05-21">21 May 2015</time>
37
+ by <span class="p-author">Glenn Jones</span>
38
+ </li>
39
+ <li class="h-entry">
40
+ <span class="p-name e-content">Updated JSON examples so it always has the rel={} object as well as the items=[] array</span> &dash;
41
+ <time class="dt-published" datetime="2013-11-21">21 November 2013</time>
42
+ by <span class="p-author">Glenn Jones</span>
43
+ </li>
44
+ <li class="h-entry">
45
+ <span class="p-name e-content">Added single child implied test</span> &dash;
46
+ <time class="dt-published" datetime="2013-02-06">6 February 2013</time>
47
+ by <span class="p-author">Glenn Jones</span>
48
+ </li>
49
+ <li class="h-entry">
50
+ <span class="p-name e-content">Added p-proprety test</span> &dash;
51
+ <time class="dt-published" datetime="2013-01-06">6 January 2013</time>
52
+ by <span class="p-author">Glenn Jones</span>
53
+ </li>
54
+ <li class="h-entry">
55
+ <span class="p-name e-content">Reordered JSON</span> &dash;
56
+ <time class="dt-published" datetime="2012-12-22">22 December 2012</time>
57
+ by <span class="p-author">Glenn Jones</span>
58
+ </li>
59
+ <li class="h-entry">
60
+ <span class="p-name e-content">Corrected JSON</span> &dash;
61
+ <time class="dt-published" datetime="2012-12-18">18 December 2012</time>
62
+ by <span class="p-author">Glenn Jones</span>
63
+ </li>
64
+ <li class="h-entry">
65
+ <span class="p-name e-content">Updated format</span> &dash;
66
+ <time class="dt-published" datetime="2012-11-22">22 November 2012</time>
67
+ by <span class="p-author">Glenn Jones</span>
68
+ </li>
69
+ <li class="h-entry">
70
+ <span class="p-name e-content">Updated format</span> &dash;
71
+ <time class="dt-published" datetime="2012-11-21">21 November 2012</time>
72
+ by <span class="p-author">Glenn Jones</span>
73
+ </li>
74
+ <li class="h-entry">
75
+ <span class="p-name e-content">Created</span> &dash;
76
+ <time class="dt-published" datetime="2012-09-10">10 September 2012</time>
77
+ by <span class="p-author">Glenn Jones</span>
78
+ </li>
79
+ </ul>
80
+
81
+
82
+ <h2>Contributors:</h2>
83
+ <ul>
84
+ <!-- If you Contribute to the test please add yourself as an author using p-author h-card -->
85
+ <li class="p-author h-card">
86
+ <a class="u-url p-name" rel="author" href="http://tantek.com/">Tantek Çelik</a>
87
+ </li>
88
+ <li class="p-author h-card">
89
+ <a class="u-url p-name" rel="author" href="http://www.glennjones.net/">Glenn Jones</a>
90
+ </li>
91
+ </ul>
92
+
93
+
94
+ <footer>
95
+ All content and code is released into the <a href="http://en.wikipedia.org/wiki/public_domain">public domain</a>
96
+ </footer>
97
+
98
+ </body>
99
+
100
+ </html>