microformats2 1.0.2 → 2.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/.rspec +2 -0
- data/.travis.yml +8 -0
- data/Gemfile +4 -0
- data/Guardfile +5 -0
- data/LICENSE.txt +22 -0
- data/README.md +117 -26
- data/Rakefile +65 -9
- data/lib/microformats2.rb +30 -115
- data/lib/microformats2/collection.rb +71 -0
- data/lib/microformats2/format.rb +101 -0
- data/lib/microformats2/format_parser.rb +59 -0
- data/lib/microformats2/implied_property/foundation.rb +58 -0
- data/lib/microformats2/implied_property/name.rb +34 -0
- data/lib/microformats2/implied_property/photo.rb +24 -0
- data/lib/microformats2/implied_property/url.rb +20 -0
- data/lib/microformats2/property.rb +10 -0
- data/lib/microformats2/property/date_time.rb +31 -0
- data/lib/microformats2/property/embedded.rb +9 -0
- data/lib/microformats2/property/foundation.rb +80 -0
- data/lib/microformats2/property/text.rb +16 -0
- data/lib/microformats2/property/url.rb +18 -0
- data/lib/microformats2/property_parser.rb +54 -0
- data/lib/microformats2/version.rb +3 -0
- data/microformats2.gemspec +30 -0
- data/spec/lib/microformats2/collection_spec.rb +181 -0
- data/spec/lib/microformats2/implied_property/name_spec.rb +31 -0
- data/spec/lib/microformats2/implied_property/photo_spec.rb +31 -0
- data/spec/lib/microformats2/implied_property/url_spec.rb +31 -0
- data/spec/lib/microformats2_spec.rb +30 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-1.html +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-1.js +16 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-2.html +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-2.js +16 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-3.html +6 -0
- data/spec/support/cases/microformat2-node.jit.su/h-adr/h-adr-3.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-1.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-1.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-2.html +4 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-2.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-3.html +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-3.js +15 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-4.html +6 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-4.js +26 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-5.html +6 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-5.js +30 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-6.html +6 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-6.js +29 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-7.html +16 -0
- data/spec/support/cases/microformat2-node.jit.su/h-card/h-card-7.js +15 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-0.html +4 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-1.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-1.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-2.html +21 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-2.js +28 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-3.html +22 -0
- data/spec/support/cases/microformat2-node.jit.su/h-entry/h-entry-3.js +21 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-1.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-1.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-2.html +14 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-2.js +57 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-3.html +15 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-3.js +35 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-4.html +9 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-4.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-5.html +45 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-5.js +22 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-6.html +51 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-6.js +21 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-7.html +22 -0
- data/spec/support/cases/microformat2-node.jit.su/h-event/h-event-7.js +20 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-0.html +5 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-1.html +7 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-1.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-2.html +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-2.js +13 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-3.html +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-3.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-4.html +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-4.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-5.html +6 -0
- data/spec/support/cases/microformat2-node.jit.su/h-geo/h-geo-5.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-news/h-news-0.html +26 -0
- data/spec/support/cases/microformat2-node.jit.su/h-news/h-news-0.js +37 -0
- data/spec/support/cases/microformat2-node.jit.su/h-news/h-news-1.html +37 -0
- data/spec/support/cases/microformat2-node.jit.su/h-news/h-news-1.js +48 -0
- data/spec/support/cases/microformat2-node.jit.su/h-org/h-org-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-org/h-org-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-org/h-org-1.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-org/h-org-1.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-org/h-org-2.html +6 -0
- data/spec/support/cases/microformat2-node.jit.su/h-org/h-org-2.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-1.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-1.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-2.html +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-2.js +23 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-3.html +22 -0
- data/spec/support/cases/microformat2-node.jit.su/h-product/h-product-3.js +42 -0
- data/spec/support/cases/microformat2-node.jit.su/h-recipe/h-recipe-0.html +9 -0
- data/spec/support/cases/microformat2-node.jit.su/h-recipe/h-recipe-0.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-recipe/h-recipe-1.html +67 -0
- data/spec/support/cases/microformat2-node.jit.su/h-recipe/h-recipe-1.js +51 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-1.html +20 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-1.js +39 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-2.html +17 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-2.js +54 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-3.html +15 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-3.js +54 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-4.html +15 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-4.js +12 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-5.html +13 -0
- data/spec/support/cases/microformat2-node.jit.su/h-resume/h-resume-5.js +27 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review-aggregate/h-review-aggregate-0.html +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review-aggregate/h-review-aggregate-0.js +19 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review-aggregate/h-review-aggregate-1.html +20 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review-aggregate/h-review-aggregate-1.js +26 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review-aggregate/h-review-aggregate-2.html +15 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review-aggregate/h-review-aggregate-2.js +23 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-1.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-1.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-2.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-2.js +11 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-3.html +6 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-3.js +19 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-4.html +8 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-4.js +20 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-5.html +24 -0
- data/spec/support/cases/microformat2-node.jit.su/h-review/h-review-5.js +37 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-0.html +18 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-0.js +43 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-1.html +26 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-1.js +54 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-2.html +13 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-2.js +20 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-3.html +20 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-3.js +40 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-4.html +23 -0
- data/spec/support/cases/microformat2-node.jit.su/includes/includes-4.js +42 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-0.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-0.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-1.html +3 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-1.js +10 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-2.html +12 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-2.js +19 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-3.html +21 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-3.js +26 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-4.html +15 -0
- data/spec/support/cases/microformat2-node.jit.su/rel/rel-4.js +42 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-0.html +2 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-0.js +9 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-1.html +2 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-1.js +10 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-2.html +5 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-2.js +11 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-3.html +17 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-3.js +20 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-4.html +16 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-4.js +24 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-5.html +7 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-5.js +11 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-6.html +9 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-6.js +18 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-7.html +9 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-7.js +18 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-8.html +9 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-8.js +17 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-9.html +9 -0
- data/spec/support/cases/microformats.org/microformats-2/microformats-2-9.js +17 -0
- data/spec/support/lib/microformats2/implied_property/name-fail.html +60 -0
- data/spec/support/lib/microformats2/implied_property/name-pass.html +30 -0
- data/spec/support/lib/microformats2/implied_property/photo-fail.html +60 -0
- data/spec/support/lib/microformats2/implied_property/photo-pass.html +30 -0
- data/spec/support/lib/microformats2/implied_property/url-fail.html +18 -0
- data/spec/support/lib/microformats2/implied_property/url-pass.html +12 -0
- data/spec/support/lib/microformats2/nested-format-with-property.html +12 -0
- data/spec/support/lib/microformats2/nested-format-with-property.js +15 -0
- data/spec/support/lib/microformats2/nested-format-without-property.html +13 -0
- data/spec/support/lib/microformats2/nested-property.html +12 -0
- data/spec/support/lib/microformats2/nested-property.js +9 -0
- data/spec/support/lib/microformats2/simple.html +19 -0
- data/spec/support/lib/microformats2/simple.js +10 -0
- metadata +535 -85
- data/.autotest +0 -23
- data/.gemtest +0 -0
- data/History.txt +0 -19
- data/Manifest.txt +0 -10
- data/bin/microformats2 +0 -3
- data/test/IndieWebCamp.html +0 -351
- data/test/simple.html +0 -30
- data/test/test_microformats2.rb +0 -185
data/.autotest
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# -*- ruby -*-
|
2
|
-
|
3
|
-
require 'autotest/restart'
|
4
|
-
|
5
|
-
# Autotest.add_hook :initialize do |at|
|
6
|
-
# at.extra_files << "../some/external/dependency.rb"
|
7
|
-
#
|
8
|
-
# at.libs << ":../some/external"
|
9
|
-
#
|
10
|
-
# at.add_exception 'vendor'
|
11
|
-
#
|
12
|
-
# at.add_mapping(/dependency.rb/) do |f, _|
|
13
|
-
# at.files_matching(/test_.*rb$/)
|
14
|
-
# end
|
15
|
-
#
|
16
|
-
# %w(TestA TestB).each do |klass|
|
17
|
-
# at.extra_class_map[klass] = "test/test_misc.rb"
|
18
|
-
# end
|
19
|
-
# end
|
20
|
-
|
21
|
-
# Autotest.add_hook :run_command do |at|
|
22
|
-
# system "rake build"
|
23
|
-
# end
|
data/.gemtest
DELETED
File without changes
|
data/History.txt
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
=== 1.0.2 / 2011-06-28
|
2
|
-
|
3
|
-
* 2 bug fix
|
4
|
-
|
5
|
-
* parse d-duration as a string not a date
|
6
|
-
* change "class" to "klass" on elements with "class='p-class'"
|
7
|
-
|
8
|
-
=== 1.0.1 / 2011-06-28
|
9
|
-
|
10
|
-
* 1 bug fix
|
11
|
-
|
12
|
-
* fixed duplicate microformat problem
|
13
|
-
|
14
|
-
=== 1.0.0 / 2011-06-14
|
15
|
-
|
16
|
-
* 1 major enhancement
|
17
|
-
|
18
|
-
* Birthday!
|
19
|
-
|
data/Manifest.txt
DELETED
data/bin/microformats2
DELETED
data/test/IndieWebCamp.html
DELETED
@@ -1,351 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
|
3
|
-
|
4
|
-
<head>
|
5
|
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
-
<meta http-equiv="Content-Style-Type" content="text/css" />
|
7
|
-
<meta name="generator" content="MediaWiki 1.15.4" />
|
8
|
-
<meta name="keywords" content="Main Page,Guest List,Schedule,Projects,Sessions,Planning,Issues,Why,Contribute,why,Session Notes" />
|
9
|
-
<link rel="alternate" type="application/x-wiki" title="Edit" href="/wiki/index.php?title=Main_Page&action=edit" />
|
10
|
-
<link rel="edit" title="Edit" href="/wiki/index.php?title=Main_Page&action=edit" />
|
11
|
-
<link rel="shortcut icon" href="/favicon.ico" />
|
12
|
-
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/opensearch_desc.php" title="IndieWebCamp (en)" />
|
13
|
-
<link title="Creative Commons" type="application/rdf+xml" href="/wiki/index.php?title=Main_Page&action=creativecommons" rel="meta" />
|
14
|
-
<link rel="copyright" href="http://creativecommons.org/licenses/by-nc-nd/3.0/" />
|
15
|
-
<link rel="alternate" type="application/rss+xml" title="IndieWebCamp RSS feed" href="/wiki/index.php?title=Special:RecentChanges&feed=rss" />
|
16
|
-
<link rel="alternate" type="application/atom+xml" title="IndieWebCamp Atom feed" href="/wiki/index.php?title=Special:RecentChanges&feed=atom" />
|
17
|
-
<title>IndieWebCamp</title>
|
18
|
-
<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "/wiki/skins/indieweb/gumax_main.css?207"; /*]]>*/</style>
|
19
|
-
<link rel="stylesheet" type="text/css" media="print" href="/wiki/skins/common/commonPrint.css?207" />
|
20
|
-
<link rel="stylesheet" type="text/css" media="handheld" href="/wiki/skins/indieweb/handheld.css?207" />
|
21
|
-
<link rel="stylesheet" type="text/css" media="print" href="/wiki/skins/indieweb/print.css?207" />
|
22
|
-
<!--[if lt IE 5.5000]><style type="text/css">@import "/wiki/skins/indieweb/IE50Fixes.css?207";</style><![endif]-->
|
23
|
-
<!--[if IE 5.5000]><style type="text/css">@import "/wiki/skins/indieweb/IE55Fixes.css?207";</style><![endif]-->
|
24
|
-
<!--[if IE 6]><style type="text/css">@import "/wiki/skins/indieweb/IE60Fixes.css?207";</style><![endif]-->
|
25
|
-
<!--[if IE 7]><style type="text/css">@import "/wiki/skins/indieweb/IE70Fixes.css?207";</style><![endif]-->
|
26
|
-
<!--[if lt IE 7]><script type="text/javascript" src="/wiki/skins/common/IEFixes.js?207"></script>
|
27
|
-
<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
|
28
|
-
<meta property="og:title" content="IndieWebCamp" />
|
29
|
-
<meta property="og:type" content="event" />
|
30
|
-
<meta property="og:url" content="http://indiewebcamp.com" />
|
31
|
-
<meta property="og:image" content="http://indiewebcamp.com/wiki/skins/indieweb/images/indiewebcamp_logo_color.png" />
|
32
|
-
<meta property="og:site_name" content="IndieWebCamp" />
|
33
|
-
<meta property="fb:admins" content="11500459,31600719,214611" />
|
34
|
-
<script language="javascript" type="text/javascript" src="/files/jquery.js"></script>
|
35
|
-
<script type= "text/javascript">/*<![CDATA[*/
|
36
|
-
var skin = "IndieWeb";
|
37
|
-
var stylepath = "/wiki/skins";
|
38
|
-
var wgArticlePath = "/$1";
|
39
|
-
var wgScriptPath = "/wiki";
|
40
|
-
var wgScript = "/wiki/index.php";
|
41
|
-
var wgVariantArticlePath = false;
|
42
|
-
var wgActionPaths = {};
|
43
|
-
var wgServer = "http://indiewebcamp.com";
|
44
|
-
var wgCanonicalNamespace = "";
|
45
|
-
var wgCanonicalSpecialPageName = false;
|
46
|
-
var wgNamespaceNumber = 0;
|
47
|
-
var wgPageName = "Main_Page";
|
48
|
-
var wgTitle = "Main Page";
|
49
|
-
var wgAction = "view";
|
50
|
-
var wgArticleId = "1";
|
51
|
-
var wgIsArticle = true;
|
52
|
-
var wgUserName = "Iamshane.com";
|
53
|
-
var wgUserGroups = ["*", "user", "autoconfirmed"];
|
54
|
-
var wgUserLanguage = "en";
|
55
|
-
var wgContentLanguage = "en";
|
56
|
-
var wgBreakFrames = false;
|
57
|
-
var wgCurRevisionId = 428;
|
58
|
-
var wgVersion = "1.15.4";
|
59
|
-
var wgEnableAPI = true;
|
60
|
-
var wgEnableWriteAPI = true;
|
61
|
-
var wgSeparatorTransformTable = ["", ""];
|
62
|
-
var wgDigitTransformTable = ["", ""];
|
63
|
-
var wgRestrictionEdit = [];
|
64
|
-
var wgRestrictionMove = [];
|
65
|
-
var wgAjaxWatch = {"watchMsg": "Watch", "unwatchMsg": "Unwatch", "watchingMsg": "Watching...", "unwatchingMsg": "Unwatching..."};
|
66
|
-
/*]]>*/</script>
|
67
|
-
|
68
|
-
<script type="text/javascript" src="/wiki/skins/common/wikibits.js?207"><!-- wikibits js --></script>
|
69
|
-
<script type="text/javascript" src="/wiki/index.php?title=-&action=raw&smaxage=0&gen=js&useskin=IndieWeb"><!-- site js --></script>
|
70
|
-
<!-- Head Scripts -->
|
71
|
-
<script type="text/javascript" src="/wiki/skins/common/ajax.js?207"></script>
|
72
|
-
<script type="text/javascript" src="/wiki/skins/common/ajaxwatch.js?207"></script>
|
73
|
-
<style type="text/css">/*<![CDATA[*/ .firstHeading, .subtitle, #siteSub, #contentSub, .pagetitle { display:none; } /*]]>*/</style>
|
74
|
-
</head>
|
75
|
-
|
76
|
-
<body class="mediawiki ltr ns-0 ns-subject page-Main_Page">
|
77
|
-
|
78
|
-
<div class="gumax-center" align="center">
|
79
|
-
<div id="gumax-rbox" align="left">
|
80
|
-
<div class="gumax-rbroundbox"><div class="gumax-rbtop"><div><div>
|
81
|
-
<a href="/" class="headContent"><h1>IndieWebCamp</h1></a>
|
82
|
-
</div></div></div>
|
83
|
-
<div class="gumax-rbcontentwrap"><div class="gumax-rbcontent">
|
84
|
-
|
85
|
-
<!-- =================== gumax-page =================== -->
|
86
|
-
<div id="gumax-page">
|
87
|
-
|
88
|
-
<!-- ===== Header ===== -->
|
89
|
-
<div id="gumax-header">
|
90
|
-
<div id="header-text"> IndieWebCamp is a 2-day dev camp in Portland, Oregon focused on building a more open Web.</div>
|
91
|
-
<a id="topHeader"></a>
|
92
|
-
|
93
|
-
<!-- Search -->
|
94
|
-
<!--
|
95
|
-
<div id="gumax-p-search" class="gumax-portlet">
|
96
|
-
<div id="gumax-searchBody" class="gumax-pBody">
|
97
|
-
<form action="/Special:Search" id="searchform"><div>
|
98
|
-
<input id="searchInput" name="search" type="text" accesskey="f" value="" />
|
99
|
-
<input type='submit' name="go" class="searchButton" id="searchGoButton" value="Go" />
|
100
|
-
<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="Search" />
|
101
|
-
</div></form>
|
102
|
-
</div>
|
103
|
-
</div> --> <!-- end of gumax-p-search DIV -->
|
104
|
-
<!-- end of Search -->
|
105
|
-
|
106
|
-
</div> <!-- end of header DIV -->
|
107
|
-
<!-- ===== end of Header ===== -->
|
108
|
-
|
109
|
-
<!-- ===== Content body ===== -->
|
110
|
-
<div id="gumax-content-body">
|
111
|
-
|
112
|
-
<table id="gumax-content-body-table"><tr><td class="gumax-content-left">
|
113
|
-
<!-- Navigation Menu -->
|
114
|
-
<div id="gumax-p-navigation-wrapper">
|
115
|
-
|
116
|
-
<div class='gumax-portlet' id='p-navigation'>
|
117
|
-
<h5>Navigation</h5>
|
118
|
-
<div class="gumax-p-navigation">
|
119
|
-
<ul>
|
120
|
-
<li id="n-mainpage-description"><a href="/Main_Page">Main page</a></li>
|
121
|
-
<li id="n-Log-in-with-your-OpenID"><a href="/Special:OpenIDLogin">Log in with your OpenID</a></li>
|
122
|
-
<li id="n-Guest-List"><a href="/Guest_List">Guest List</a></li>
|
123
|
-
<li id="n-Schedule"><a href="/Schedule">Schedule</a></li>
|
124
|
-
<li id="n-Sessions"><a href="/Sessions">Sessions</a></li>
|
125
|
-
<li id="n-Sponsors"><a href="/Sponsors">Sponsors</a></li>
|
126
|
-
<li id="n-recentchanges"><a href="/Special:RecentChanges">Recent changes</a></li>
|
127
|
-
</ul>
|
128
|
-
</div>
|
129
|
-
</div>
|
130
|
-
<div class='gumax-portlet' id='p-Resources'>
|
131
|
-
<h5>Resources</h5>
|
132
|
-
<div class="gumax-p-navigation">
|
133
|
-
<ul>
|
134
|
-
<li id="n-Projects"><a href="/Projects">Projects</a></li>
|
135
|
-
<li id="n-Set-up-your-domain"><a href="/How_to_set_up_OpenID_on_your_own_domain">Set up your domain</a></li>
|
136
|
-
<li id="n-search"><a href="/Special:Search">Search</a></li>
|
137
|
-
</ul>
|
138
|
-
</div>
|
139
|
-
</div>
|
140
|
-
|
141
|
-
<div class="gumax-portlet" id="p-Links">
|
142
|
-
<div class="gumax-p-navigation banners">
|
143
|
-
<ul style="border: 0;">
|
144
|
-
<li style="border: 0; margin-top: 20px;">
|
145
|
-
<a href="/Sponsors"><img src="http://indiewebcamp.com/wiki/images/thumb/1/1f/ualogo.png/160px-ualogo.png" alt="Urban Airship" border="0" width="160" /></a>
|
146
|
-
</li>
|
147
|
-
<li style="border: 0; margin-top: 20px;">
|
148
|
-
<a href="/Sponsors"><img src="http://indiewebcamp.com/wiki/images/thumb/4/41/tropologo-vert.png/110px-tropologo-vert.png" alt="Tropo" border="0" width="110" /></a>
|
149
|
-
</li>
|
150
|
-
<li style="border: 0; margin-top: 20px;">
|
151
|
-
<a href="/Sponsors"><img src="http://indiewebcamp.com/wiki/images/5/54/wklogo.png" alt="Wieden+Kennedy" border="0" width="157" /></a>
|
152
|
-
</li>
|
153
|
-
</ul>
|
154
|
-
</div>
|
155
|
-
</div>
|
156
|
-
|
157
|
-
|
158
|
-
</div>
|
159
|
-
<!-- end of Navigation Menu -->
|
160
|
-
|
161
|
-
</td><td class="gumax-content-right"> <!-- Main Content TD -->
|
162
|
-
|
163
|
-
<!-- Main Content -->
|
164
|
-
<div id="content">
|
165
|
-
|
166
|
-
<a name="top" id="top"></a>
|
167
|
-
<h1 class="firstHeading">Main Page</h1>
|
168
|
-
<div id= "bodyContent" class="gumax-bodyContent">
|
169
|
-
<div id="contentSub"></div>
|
170
|
-
<!-- start content -->
|
171
|
-
<p><br />
|
172
|
-
</p>
|
173
|
-
<div class="vevent h-event">
|
174
|
-
<table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
|
175
|
-
<ul>
|
176
|
-
<li class="toclevel-1"><a href="#IndieWebCamp"><span class="tocnumber">1</span> <span class="toctext">IndieWebCamp</span></a></li>
|
177
|
-
<li class="toclevel-1"><a href="#Session_Notes"><span class="tocnumber">2</span> <span class="toctext">Session Notes</span></a></li>
|
178
|
-
<li class="toclevel-1"><a href="#When"><span class="tocnumber">3</span> <span class="toctext">When</span></a></li>
|
179
|
-
<li class="toclevel-1"><a href="#Where"><span class="tocnumber">4</span> <span class="toctext">Where</span></a>
|
180
|
-
<ul>
|
181
|
-
<li class="toclevel-2"><a href="#Travel"><span class="tocnumber">4.1</span> <span class="toctext">Travel</span></a></li>
|
182
|
-
</ul>
|
183
|
-
</li>
|
184
|
-
<li class="toclevel-1"><a href="#Who"><span class="tocnumber">5</span> <span class="toctext">Who</span></a></li>
|
185
|
-
<li class="toclevel-1"><a href="#What"><span class="tocnumber">6</span> <span class="toctext">What</span></a></li>
|
186
|
-
<li class="toclevel-1"><a href="#Why"><span class="tocnumber">7</span> <span class="toctext">Why</span></a></li>
|
187
|
-
<li class="toclevel-1"><a href="#How"><span class="tocnumber">8</span> <span class="toctext">How</span></a></li>
|
188
|
-
<li class="toclevel-1"><a href="#More"><span class="tocnumber">9</span> <span class="toctext">More</span></a></li>
|
189
|
-
</ul>
|
190
|
-
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
|
191
|
-
<a name="IndieWebCamp" id="IndieWebCamp"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=1" title="Edit section: IndieWebCamp">edit</a>]</span> <span class="mw-headline"> <span class="summary p-summary p-name">IndieWebCamp</span> </span></h2>
|
192
|
-
<div class="description p-description">
|
193
|
-
<p>Rather than posting content on many third-party silos of data, we should all begin owning the data we're creating. Publish short status updates on your own domain, and syndicate to Twitter. Publish photos on your own domain, syndicate to Flickr, etc, etc.
|
194
|
-
</p><p>This is the basis of the "Indie Web" movement (see <a href="/why" title="why">why</a> for more). We'll get together for a weekend to talk about what has been done in the field, and what still needs to be done. There will be workshops and breakout sessions.
|
195
|
-
</p>
|
196
|
-
</div>
|
197
|
-
<p><a href="/Planning" title="Planning">Planners</a>: <span class="organizer vcard p-organizer h-card"><span class="fn"><a href="http://tantek.com" class="external text" title="http://tantek.com">Tantek Çelik</a></span></span>, <span class="organizer vcard p-organizer h-card"><span class="fn"><a href="http://aaron.pk" class="external text" title="http://aaron.pk">Aaron Parecki</a></span></span>, <span class="organizer vcard p-organizer h-card"><span class="fn"><a href="http://caseorganic.com" class="external text" title="http://caseorganic.com">Amber Case</a></span></span>, and <span class="organizer vcard p-organizer h-card"><span class="fn"><a href="http://skinnywhitegirl.com" class="external text" title="http://skinnywhitegirl.com">Crystal Beasley</a></span></span>. Want to help? <a href="/Planning" title="Planning">Sign up to volunteer!</a>.
|
198
|
-
</p>
|
199
|
-
<a name="Session_Notes" id="Session_Notes"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=2" title="Edit section: Session Notes">edit</a>]</span> <span class="mw-headline"> Session Notes </span></h2>
|
200
|
-
<p>See the <b><a href="/Schedule" title="Schedule">Schedule</a></b> to read and add session notes. Click on the session title to add notes to the page. To see all session notes, see <b><a href="/Category:Session_Notes" title="Category:Session Notes">Category:Session Notes</a></b>
|
201
|
-
</p>
|
202
|
-
<a name="When" id="When"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=3" title="Edit section: When">edit</a>]</span> <span class="mw-headline"> When </span></h2>
|
203
|
-
<p>IndieWebCamp was on <span class="dtstart d-start">2011-06-25</span> and <span class="dtend d-end">2011-06-26</span>. See the <a href="/Schedule" title="Schedule">Schedule</a> for more details. Note: <a href="http://opensourcebridge.org/" class="external text" title="http://opensourcebridge.org/">OSBridge</a> was June 21-24 immediately beforehand, consider attending that as well.
|
204
|
-
</p>
|
205
|
-
<a name="Where" id="Where"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=4" title="Edit section: Where">edit</a>]</span> <span class="mw-headline"> Where </span></h2>
|
206
|
-
<p><b><span class="location vcard p-location h-card"><span class="fn org p-name p-org">Urban Airship</span>, <span class="adr p-adr"><a href="http://maps.google.com/maps?q=334+NW+11th+Ave.,+Portland,+Oregon" class="external text" title="http://maps.google.com/maps?q=334+NW+11th+Ave.,+Portland,+Oregon">334 NW 11th Ave., Portland, Oregon</a></span></span></b>.
|
207
|
-
</p><p><a href="http://urbanairship.com/company/" class="external text" title="http://urbanairship.com/company/">Urban Airship</a> is graciously providing the space for IndieWebCamp.
|
208
|
-
</p>
|
209
|
-
<a name="Travel" id="Travel"></a><h3><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=5" title="Edit section: Travel">edit</a>]</span> <span class="mw-headline"> Travel </span></h3>
|
210
|
-
<p>Flights: If you're flying from the SF/Bay Area to Portland (PDX), Alaska Airlines and Southwest Airlines are recommended and have frequent flights to PDX.
|
211
|
-
</p>
|
212
|
-
<a name="Who" id="Who"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=6" title="Edit section: Who">edit</a>]</span> <span class="mw-headline"> Who </span></h2>
|
213
|
-
<p>To get on the <a href="/Guest_List" title="Guest List">guest list</a>, <a href="/Special:OpenIDLogin" title="Special:OpenIDLogin">log in</a> to this wiki with your personal OpenID and <a href="/Guest_List" title="Guest List">add yourself</a>!
|
214
|
-
</p><p><i>IndieWebCamp is for active builders only in order to focus the limited time we have on productive real world discussions and code/design/ux sharing that will help us move forward.</i>
|
215
|
-
</p><p>Attendees must have a personal URL enabled with OpenID, or be an apprentice to someone who has one in order to attend.
|
216
|
-
</p>
|
217
|
-
</div>
|
218
|
-
<a name="What" id="What"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=7" title="Edit section: What">edit</a>]</span> <span class="mw-headline"> What </span></h2>
|
219
|
-
<ul><li> <a href="/Projects" title="Projects">Projects</a>
|
220
|
-
</li><li> <a href="/Sessions" title="Sessions">Sessions</a>
|
221
|
-
</li></ul>
|
222
|
-
<a name="Why" id="Why"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=8" title="Edit section: Why">edit</a>]</span> <span class="mw-headline"> Why </span></h2>
|
223
|
-
<ul><li> <a href="/Why" title="Why">Why</a>
|
224
|
-
</li></ul>
|
225
|
-
<a name="How" id="How"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=9" title="Edit section: How">edit</a>]</span> <span class="mw-headline"> How </span></h2>
|
226
|
-
<ul><li> How to <a href="/Contribute" title="Contribute">Contribute</a>
|
227
|
-
</li></ul>
|
228
|
-
<a name="More" id="More"></a><h2><span class="editsection">[<a href="/wiki/index.php?title=Main_Page&action=edit&section=10" title="Edit section: More">edit</a>]</span> <span class="mw-headline"> More </span></h2>
|
229
|
-
<ul><li> <a href="/Issues" title="Issues">Issues</a> - any problems with the wiki, the website, or anything else to do with IndiWebCamp
|
230
|
-
</li><li> <a href="/Planning" title="Planning">Planning</a> - want to help out with IndieWebCamp? <a href="/Planning" title="Planning">Volunteer!</a>.
|
231
|
-
</li><li> <a href="irc://irc.freenode.net/indiewebcamp" class="external free" title="irc://irc.freenode.net/indiewebcamp">irc://irc.freenode.net/indiewebcamp</a>
|
232
|
-
</li></ul>
|
233
|
-
|
234
|
-
<!--
|
235
|
-
NewPP limit report
|
236
|
-
Preprocessor node count: 50/1000000
|
237
|
-
Post-expand include size: 0/2097152 bytes
|
238
|
-
Template argument size: 0/2097152 bytes
|
239
|
-
Expensive parser function count: 0/100
|
240
|
-
-->
|
241
|
-
|
242
|
-
<!-- Saved in parser cache with key indiewebcamp:pcache:idhash:1-0!1!0!!en!2 and timestamp 20110627011606 -->
|
243
|
-
<div class="printfooter">
|
244
|
-
Retrieved from "<a href="http://indiewebcamp.com/Main_Page">http://indiewebcamp.com/Main_Page</a>"</div>
|
245
|
-
<!-- end content -->
|
246
|
-
<div class="visualClear"></div>
|
247
|
-
</div>
|
248
|
-
</div>
|
249
|
-
<!-- end of Main Content -->
|
250
|
-
</td></tr></table>
|
251
|
-
</div>
|
252
|
-
<!-- ===== end of Content body ===== -->
|
253
|
-
|
254
|
-
</div> <!-- end of gumax-page DIV -->
|
255
|
-
<!-- =================== end of gumax-page =================== -->
|
256
|
-
|
257
|
-
<!-- ===== gumax-page-actions ===== -->
|
258
|
-
<div id="gumax-page-actions">
|
259
|
-
<div id="gumax-content-actions">
|
260
|
-
<ul>
|
261
|
-
<li id="ca-nstab-main" class="selected" ><a href="/Main_Page">Page</a> </li>
|
262
|
-
<li id="ca-talk" class="new" ><a href="/wiki/index.php?title=Talk:Main_Page&action=edit&redlink=1">Discussion</a> </li>
|
263
|
-
<li id="ca-edit" ><a href="/wiki/index.php?title=Main_Page&action=edit">Edit</a> </li>
|
264
|
-
<li id="ca-history" ><a href="/wiki/index.php?title=Main_Page&action=history">History</a> </li>
|
265
|
-
<li id="ca-move" ><a href="/Special:MovePage/Main_Page">Move</a> </li>
|
266
|
-
<li id="ca-watch" ><a href="/wiki/index.php?title=Main_Page&action=watch">Watch</a> </li>
|
267
|
-
|
268
|
-
<!-- show back to top link only if the body is longer than the window height -->
|
269
|
-
<!--
|
270
|
-
<script type="text/javascript">
|
271
|
-
var winheight = parseInt(document.documentElement.clientHeight)
|
272
|
-
var boheight = parseInt(document.body.clientHeight)
|
273
|
-
if(winheight <= boheight) {
|
274
|
-
document.write('<li><a href="#" onclick="window.scrollTo(0,0);return false;" title="Back to the top of the page">Back to top</a></li>');
|
275
|
-
}
|
276
|
-
</script>
|
277
|
-
-->
|
278
|
-
<!-- end of show back to top link only -->
|
279
|
-
|
280
|
-
</ul>
|
281
|
-
</div>
|
282
|
-
</div>
|
283
|
-
<!-- ===== end of gumax-page-actions ===== -->
|
284
|
-
|
285
|
-
<!-- =================== gumax-page-footer =================== -->
|
286
|
-
<div id="gumax-page-footer">
|
287
|
-
|
288
|
-
<!-- personal tools -->
|
289
|
-
<div id="gumax-personal-tools">
|
290
|
-
<ul>
|
291
|
-
<li id="t-upload"><a href="/Special:Upload">Upload file</a> | </li>
|
292
|
-
<li id="t-specialpages"><a href="/Special:SpecialPages">Special pages</a> </li>
|
293
|
-
<li id="t-permalink"> | <a href="/wiki/index.php?title=Main_Page&oldid=428">Permanent link</a></li>
|
294
|
-
</ul>
|
295
|
-
|
296
|
-
|
297
|
-
<!-- Login -->
|
298
|
-
<div id="gumax-footer-login">
|
299
|
-
<ul>
|
300
|
-
<li id="gumax-pt-userpage"><a href="/User:Iamshane.com">Iamshane.com</a>
|
301
|
-
|</li>
|
302
|
-
<li id="gumax-pt-mytalk"><a href="/User_talk:Iamshane.com" class="new">My talk</a>
|
303
|
-
|</li>
|
304
|
-
<li id="gumax-pt-preferences"><a href="/Special:Preferences">My preferences</a>
|
305
|
-
|</li>
|
306
|
-
<li id="gumax-pt-watchlist"><a href="/Special:Watchlist">My watchlist</a>
|
307
|
-
|</li>
|
308
|
-
<li id="gumax-pt-mycontris"><a href="/Special:Contributions/Iamshane.com">My contributions</a>
|
309
|
-
|</li>
|
310
|
-
<li id="gumax-pt-logout"><a href="/wiki/index.php?title=Special:UserLogout&returnto=Main_Page">Log out</a>
|
311
|
-
</li>
|
312
|
-
</ul>
|
313
|
-
</div>
|
314
|
-
<!-- end of Login -->
|
315
|
-
|
316
|
-
</div> <!-- end of personal-tools DIV -->
|
317
|
-
<!-- end of personal tools -->
|
318
|
-
|
319
|
-
<!-- gumax-footer -->
|
320
|
-
<div id="gumax-footer">
|
321
|
-
<div id="gumax-f-message">
|
322
|
-
<span id="f-lastmod"> This page was last modified on 26 June 2011, at 18:16.</span>
|
323
|
-
<span id="f-viewcount">This page has been accessed 23,017 times. </span>
|
324
|
-
</div>
|
325
|
-
</div>
|
326
|
-
<!-- end of gumax-footer -->
|
327
|
-
|
328
|
-
<script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script>
|
329
|
-
</div>
|
330
|
-
<!-- =================== end of gumax-page-footer =================== -->
|
331
|
-
|
332
|
-
</div></div>
|
333
|
-
<div class="gumax-rbbot"><div><div></div></div></div></div>
|
334
|
-
</div>
|
335
|
-
</div>
|
336
|
-
|
337
|
-
<!-- Served in 0.136 secs. --><script type="text/javascript">
|
338
|
-
|
339
|
-
var _gaq = _gaq || [];
|
340
|
-
_gaq.push(['_setAccount', 'UA-16359758-21']);
|
341
|
-
_gaq.push(['_trackPageview']);
|
342
|
-
|
343
|
-
(function() {
|
344
|
-
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
345
|
-
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
346
|
-
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
347
|
-
})();
|
348
|
-
|
349
|
-
</script>
|
350
|
-
|
351
|
-
</body></html>
|
data/test/simple.html
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<head>
|
3
|
-
<title>Simple hCard</title>
|
4
|
-
</head>
|
5
|
-
|
6
|
-
<body>
|
7
|
-
<h1 class="h-card">
|
8
|
-
<a class="p-fn u-url" href="http://factoryjoe.com/">
|
9
|
-
<span class="foxtrot echo niner p-given-name">Chris</span>
|
10
|
-
<abbr class="p-additional-name">R.</abbr>
|
11
|
-
<span class="p-family-name">Messina</span>
|
12
|
-
</a>
|
13
|
-
</h1>
|
14
|
-
|
15
|
-
<h1 class="panda h-card">
|
16
|
-
<a class="p-fn u-url" href="http://iamshane.com">
|
17
|
-
<span class="p-given-name">Shane</span>
|
18
|
-
<abbr class="p-additional-name">B</abbr>
|
19
|
-
<span class="p-family-name">Becker</span>
|
20
|
-
</a>
|
21
|
-
</h1>
|
22
|
-
|
23
|
-
<h1 class="h-mitch">
|
24
|
-
<a class="p-snap" href="http://iamshane.com">
|
25
|
-
<span class="p-krackle">Breakfast</span>
|
26
|
-
<span class="p-pop">Cereal</span>
|
27
|
-
</a>
|
28
|
-
</h1>
|
29
|
-
</body>
|
30
|
-
</html>
|
data/test/test_microformats2.rb
DELETED
@@ -1,185 +0,0 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
require "microformats2"
|
3
|
-
|
4
|
-
class TestMicroformats2 < Test::Unit::TestCase
|
5
|
-
def test_throw_exception_on_non_string_params
|
6
|
-
assert_raise Microformats2::LoadError do
|
7
|
-
Microformats2.parse(nil)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_returns_hash_of_microformat_objects
|
12
|
-
result = Microformats2.parse("A String")
|
13
|
-
assert_equal Hash, result.class
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_only_parse_microformats
|
17
|
-
result = Microformats2.parse("<html><body><p>Something</p></body></html>")
|
18
|
-
assert_equal 0, result.size
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_extracts_hcard_from_an_html_file
|
22
|
-
result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "simple.html")))
|
23
|
-
assert_equal HCard, result[:hcard].first.class
|
24
|
-
assert_equal 2, result[:hcard].length
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_extracts_name_from_tag_with_multiple_classes
|
28
|
-
result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "simple.html")))
|
29
|
-
assert_equal "Chris", result[:hcard].first.given_name
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_extracts_hcalendar_from_an_indiewebcamp_html_file
|
33
|
-
result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "IndieWebCamp.html")))
|
34
|
-
assert_equal 1, result[:hevent].length
|
35
|
-
assert result[:hcard].map { |h| h.name }.include?("Urban Airship")
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_extracts_dates_in_an_hcalendar_from_an_html_file
|
39
|
-
result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "hcalendar.html")))
|
40
|
-
assert_equal result[:hevent].first.dtstart, DateTime.parse("2007-09-08")
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_extracts_date_durations_as_a_string_from_an_html_file
|
44
|
-
result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "hcalendar.html")))
|
45
|
-
assert_equal result[:hevent].first.duration, "P2D"
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_turns_class_values_of_class_to_klass_from_an_html_file
|
49
|
-
result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "hcalendar.html")))
|
50
|
-
assert_equal result[:hevent].first.klass, "public"
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_extracts_hcalendar_from_an_html_file
|
54
|
-
result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "IndieWebCamp.html")))
|
55
|
-
assert_equal 1, result[:hevent].length
|
56
|
-
assert result[:hcard].map { |h| h.name }.include?("Urban Airship")
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_extracts_hcard_from_html
|
60
|
-
hcard = <<-END
|
61
|
-
<html>
|
62
|
-
<head>
|
63
|
-
<title>Simple hCard</title>
|
64
|
-
</head>
|
65
|
-
|
66
|
-
<body>
|
67
|
-
<h1 class="h-card">Chris</h1>
|
68
|
-
</body>
|
69
|
-
</html>
|
70
|
-
END
|
71
|
-
result = Microformats2.parse(hcard)
|
72
|
-
assert_equal HCard, result[:hcard].first.class
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_constructs_properties_from_hcard
|
76
|
-
hcard = <<-END
|
77
|
-
<html>
|
78
|
-
<head>
|
79
|
-
<title>Simple hCard</title>
|
80
|
-
</head>
|
81
|
-
|
82
|
-
<body>
|
83
|
-
<h1 class="h-card">
|
84
|
-
<a class="p-fn u-url" href="http://factoryjoe.com/">
|
85
|
-
<span class="p-given-name">Chris</span>
|
86
|
-
<abbr class="p-additional-name">R.</abbr>
|
87
|
-
<span class="p-family-name">Messina</span>
|
88
|
-
</a>
|
89
|
-
</h1>
|
90
|
-
</body>
|
91
|
-
</html>
|
92
|
-
END
|
93
|
-
result = Microformats2.parse(hcard)
|
94
|
-
mycard = result[:hcard].first
|
95
|
-
|
96
|
-
assert_equal "Chris", mycard.given_name
|
97
|
-
assert_equal "R.", mycard.additional_name
|
98
|
-
assert_equal "Messina", mycard.family_name
|
99
|
-
assert_equal "Chris R. Messina", mycard.fn
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_constructs_dates
|
103
|
-
hcard = <<-END
|
104
|
-
<html>
|
105
|
-
<head>
|
106
|
-
<title>Simple hCard</title>
|
107
|
-
</head>
|
108
|
-
|
109
|
-
<body>
|
110
|
-
<h1 class="h-card">
|
111
|
-
<span class="d-bday">1979-09-18</span>
|
112
|
-
<span class="d-epoch" title="1970-01-01">EPOCH!</span>
|
113
|
-
</h1>
|
114
|
-
</body>
|
115
|
-
</html>
|
116
|
-
END
|
117
|
-
result = Microformats2.parse(hcard)
|
118
|
-
mycard = result[:hcard].first
|
119
|
-
|
120
|
-
assert_equal DateTime.parse("1979-09-18"), mycard.bday
|
121
|
-
assert_equal DateTime.parse("1970-01-01"), mycard.epoch
|
122
|
-
end
|
123
|
-
|
124
|
-
def test_constructs_times
|
125
|
-
hcard = <<-END
|
126
|
-
<html>
|
127
|
-
<head>
|
128
|
-
<title>Simple hCard</title>
|
129
|
-
</head>
|
130
|
-
|
131
|
-
<body>
|
132
|
-
<h1 class="h-card">
|
133
|
-
<span class="t-start">09:30</span>
|
134
|
-
<span class="t-end" title="6:00">Leaving time</span>
|
135
|
-
</h1>
|
136
|
-
</body>
|
137
|
-
</html>
|
138
|
-
END
|
139
|
-
result = Microformats2.parse(hcard)
|
140
|
-
mycard = result[:hcard].first
|
141
|
-
|
142
|
-
assert_equal Time.parse("09:30"), mycard.start
|
143
|
-
assert_equal Time.parse("06:00"), mycard.end
|
144
|
-
end
|
145
|
-
|
146
|
-
def test_ignores_pattern_matches_not_at_the_beginning_of_class
|
147
|
-
hcard = <<-END
|
148
|
-
<html>
|
149
|
-
<head>
|
150
|
-
<title>Simple hCard</title>
|
151
|
-
</head>
|
152
|
-
|
153
|
-
<body>
|
154
|
-
<h1 class="h-card">
|
155
|
-
<span class="p-n-x">Chris</span>
|
156
|
-
</h1>
|
157
|
-
</body>
|
158
|
-
</html>
|
159
|
-
END
|
160
|
-
result = Microformats2.parse(hcard)
|
161
|
-
mycard = result[:hcard].first
|
162
|
-
|
163
|
-
assert_equal "Chris", mycard.n_x
|
164
|
-
assert mycard.n_x.is_a?(String)
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_constructs_urls_from_hcard
|
168
|
-
hcard = <<-END
|
169
|
-
<html>
|
170
|
-
<head>
|
171
|
-
<title>Simple hCard</title>
|
172
|
-
</head>
|
173
|
-
|
174
|
-
<body>
|
175
|
-
<h1 class="h-card">
|
176
|
-
<a class="p-fn u-url" href="http://factoryjoe.com/">Chris</a>
|
177
|
-
</h1>
|
178
|
-
</body>
|
179
|
-
</html>
|
180
|
-
END
|
181
|
-
result = Microformats2.parse(hcard)
|
182
|
-
mycard = result[:hcard].first
|
183
|
-
assert_equal "http://factoryjoe.com/", mycard.url
|
184
|
-
end
|
185
|
-
end
|