From: Dan Book Date: Mon, 9 Nov 2015 15:23:20 +0000 (-0500) Subject: format selector list as item list X-Git-Tag: v0.002~5 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FDOM-Tiny.git;a=commitdiff_plain;h=03eb552102cee7ee2bb30ceeb6711c31d3c317cc format selector list as item list --- diff --git a/META.json b/META.json index 1cf4368..b64b357 100644 --- a/META.json +++ b/META.json @@ -61,11 +61,11 @@ "provides" : { "DOM::Tiny" : { "file" : "lib/DOM/Tiny.pm", - "version" : "0.001" + "version" : "0.002" }, "DOM::Tiny::Entities" : { "file" : "lib/DOM/Tiny/Entities.pm", - "version" : "0.001" + "version" : "0.002" } }, "release_status" : "stable", @@ -80,7 +80,7 @@ "web" : "https://github.com/Grinnz/DOM-Tiny" } }, - "version" : "0.001", + "version" : "0.002", "x_contributors" : [ "Dan Book " ] diff --git a/Makefile.PL b/Makefile.PL index 7c21594..8f37530 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -27,7 +27,7 @@ my %WriteMakefileArgs = ( "JSON::PP" => 0, "Test::More" => "0.88" }, - "VERSION" => "0.001", + "VERSION" => "0.002", "test" => { "TESTS" => "t/*.t" } diff --git a/README.pod b/README.pod index c827c68..e8ee528 100644 --- a/README.pod +++ b/README.pod @@ -99,32 +99,34 @@ XML detection can also be disabled with the L method. L uses a CSS selector engine based on L. All CSS selectors that make sense for a standalone parser are supported. -=head2 * +=over + +=item Z<>* Any element. my $all = $dom->find('*'); -=head2 E +=item E An element of type C. my $title = $dom->at('title'); -=head2 E[foo] +=item E[foo] An C element with a C attribute. my $links = $dom->find('a[href]'); -=head2 E[foo="bar"] +=item E[foo="bar"] An C element whose C attribute value is exactly equal to C. my $case_sensitive = $dom->find('input[type="hidden"]'); my $case_sensitive = $dom->find('input[type=hidden]'); -=head2 E[foo="bar" i] +=item E[foo="bar" i] An C element whose C attribute value is exactly equal to any (ASCII-range) case-permutation of C. Note that this selector is @@ -138,7 +140,7 @@ This selector is part of L, which is still a work in progress. -=head2 E[foo~="bar"] +=item E[foo~="bar"] An C element whose C attribute value is a list of whitespace-separated values, one of which is exactly equal to C. @@ -146,7 +148,7 @@ values, one of which is exactly equal to C. my $foo = $dom->find('input[class~="foo"]'); my $foo = $dom->find('input[class~=foo]'); -=head2 E[foo^="bar"] +=item E[foo^="bar"] An C element whose C attribute value begins exactly with the string C. @@ -154,7 +156,7 @@ C. my $begins_with = $dom->find('input[name^="f"]'); my $begins_with = $dom->find('input[name^=f]'); -=head2 E[foo$="bar"] +=item E[foo$="bar"] An C element whose C attribute value ends exactly with the string C. @@ -162,20 +164,20 @@ C. my $ends_with = $dom->find('input[name$="o"]'); my $ends_with = $dom->find('input[name$=o]'); -=head2 E[foo*="bar"] +=item E[foo*="bar"] An C element whose C attribute value contains the substring C. my $contains = $dom->find('input[name*="fo"]'); my $contains = $dom->find('input[name*=fo]'); -=head2 E:root +=item E:root An C element, root of the document. my $root = $dom->at(':root'); -=head2 E:nth-child(n) +=item E:nth-child(n) An C element, the C child of its parent. @@ -184,7 +186,7 @@ An C element, the C child of its parent. my $even = $dom->find('div:nth-child(even)'); my $top3 = $dom->find('div:nth-child(-n+3)'); -=head2 E:nth-last-child(n) +=item E:nth-last-child(n) An C element, the C child of its parent, counting from the last one. @@ -193,7 +195,7 @@ An C element, the C child of its parent, counting from the last one. my $even = $dom->find('div:nth-last-child(even)'); my $bottom3 = $dom->find('div:nth-last-child(-n+3)'); -=head2 E:nth-of-type(n) +=item E:nth-of-type(n) An C element, the C sibling of its type. @@ -202,7 +204,7 @@ An C element, the C sibling of its type. my $even = $dom->find('div:nth-of-type(even)'); my $top3 = $dom->find('div:nth-of-type(-n+3)'); -=head2 E:nth-last-of-type(n) +=item E:nth-last-of-type(n) An C element, the C sibling of its type, counting from the last one. @@ -211,109 +213,111 @@ An C element, the C sibling of its type, counting from the last one. my $even = $dom->find('div:nth-last-of-type(even)'); my $bottom3 = $dom->find('div:nth-last-of-type(-n+3)'); -=head2 E:first-child +=item E:first-child An C element, first child of its parent. my $first = $dom->find('div p:first-child'); -=head2 E:last-child +=item E:last-child An C element, last child of its parent. my $last = $dom->find('div p:last-child'); -=head2 E:first-of-type +=item E:first-of-type An C element, first sibling of its type. my $first = $dom->find('div p:first-of-type'); -=head2 E:last-of-type +=item E:last-of-type An C element, last sibling of its type. my $last = $dom->find('div p:last-of-type'); -=head2 E:only-child +=item E:only-child An C element, only child of its parent. my $lonely = $dom->find('div p:only-child'); -=head2 E:only-of-type +=item E:only-of-type An C element, only sibling of its type. my $lonely = $dom->find('div p:only-of-type'); -=head2 E:empty +=item E:empty An C element that has no children (including text nodes). my $empty = $dom->find(':empty'); -=head2 E:checked +=item E:checked A user interface element C which is checked (for instance a radio-button or checkbox). my $input = $dom->find(':checked'); -=head2 E.warning +=item E.warning An C element whose class is "warning". my $warning = $dom->find('div.warning'); -=head2 E#myid +=item E#myid An C element with C equal to "myid". my $foo = $dom->at('div#foo'); -=head2 E:not(s) +=item E:not(s) An C element that does not match simple selector C. my $others = $dom->find('div p:not(:first-child)'); -=head2 E F +=item E F An C element descendant of an C element. my $headlines = $dom->find('div h1'); -=head2 E E F +=item E E F An C element child of an C element. my $headlines = $dom->find('html > body > div > h1'); -=head2 E + F +=item E + F An C element immediately preceded by an C element. my $second = $dom->find('h1 + h2'); -=head2 E ~ F +=item E ~ F An C element preceded by an C element. my $second = $dom->find('h1 ~ h2'); -=head2 E, F, G +=item E, F, G Elements of type C, C and C. my $headlines = $dom->find('h1, h2, h3'); -=head2 E[foo=bar][bar=baz] +=item E[foo=bar][bar=baz] An C element whose attributes match all following attribute selectors. my $links = $dom->find('a[foo^=b][foo$=ar]'); +=back + =head1 OPERATORS L overloads the following operators. diff --git a/lib/DOM/Tiny.pm b/lib/DOM/Tiny.pm index 0be02cc..7a5e10a 100644 --- a/lib/DOM/Tiny.pm +++ b/lib/DOM/Tiny.pm @@ -486,32 +486,34 @@ XML detection can also be disabled with the L method. L uses a CSS selector engine based on L. All CSS selectors that make sense for a standalone parser are supported. -=head2 * +=over + +=item Z<>* Any element. my $all = $dom->find('*'); -=head2 E +=item E An element of type C. my $title = $dom->at('title'); -=head2 E[foo] +=item E[foo] An C element with a C attribute. my $links = $dom->find('a[href]'); -=head2 E[foo="bar"] +=item E[foo="bar"] An C element whose C attribute value is exactly equal to C. my $case_sensitive = $dom->find('input[type="hidden"]'); my $case_sensitive = $dom->find('input[type=hidden]'); -=head2 E[foo="bar" i] +=item E[foo="bar" i] An C element whose C attribute value is exactly equal to any (ASCII-range) case-permutation of C. Note that this selector is @@ -525,7 +527,7 @@ This selector is part of L, which is still a work in progress. -=head2 E[foo~="bar"] +=item E[foo~="bar"] An C element whose C attribute value is a list of whitespace-separated values, one of which is exactly equal to C. @@ -533,7 +535,7 @@ values, one of which is exactly equal to C. my $foo = $dom->find('input[class~="foo"]'); my $foo = $dom->find('input[class~=foo]'); -=head2 E[foo^="bar"] +=item E[foo^="bar"] An C element whose C attribute value begins exactly with the string C. @@ -541,7 +543,7 @@ C. my $begins_with = $dom->find('input[name^="f"]'); my $begins_with = $dom->find('input[name^=f]'); -=head2 E[foo$="bar"] +=item E[foo$="bar"] An C element whose C attribute value ends exactly with the string C. @@ -549,20 +551,20 @@ C. my $ends_with = $dom->find('input[name$="o"]'); my $ends_with = $dom->find('input[name$=o]'); -=head2 E[foo*="bar"] +=item E[foo*="bar"] An C element whose C attribute value contains the substring C. my $contains = $dom->find('input[name*="fo"]'); my $contains = $dom->find('input[name*=fo]'); -=head2 E:root +=item E:root An C element, root of the document. my $root = $dom->at(':root'); -=head2 E:nth-child(n) +=item E:nth-child(n) An C element, the C child of its parent. @@ -571,7 +573,7 @@ An C element, the C child of its parent. my $even = $dom->find('div:nth-child(even)'); my $top3 = $dom->find('div:nth-child(-n+3)'); -=head2 E:nth-last-child(n) +=item E:nth-last-child(n) An C element, the C child of its parent, counting from the last one. @@ -580,7 +582,7 @@ An C element, the C child of its parent, counting from the last one. my $even = $dom->find('div:nth-last-child(even)'); my $bottom3 = $dom->find('div:nth-last-child(-n+3)'); -=head2 E:nth-of-type(n) +=item E:nth-of-type(n) An C element, the C sibling of its type. @@ -589,7 +591,7 @@ An C element, the C sibling of its type. my $even = $dom->find('div:nth-of-type(even)'); my $top3 = $dom->find('div:nth-of-type(-n+3)'); -=head2 E:nth-last-of-type(n) +=item E:nth-last-of-type(n) An C element, the C sibling of its type, counting from the last one. @@ -598,109 +600,111 @@ An C element, the C sibling of its type, counting from the last one. my $even = $dom->find('div:nth-last-of-type(even)'); my $bottom3 = $dom->find('div:nth-last-of-type(-n+3)'); -=head2 E:first-child +=item E:first-child An C element, first child of its parent. my $first = $dom->find('div p:first-child'); -=head2 E:last-child +=item E:last-child An C element, last child of its parent. my $last = $dom->find('div p:last-child'); -=head2 E:first-of-type +=item E:first-of-type An C element, first sibling of its type. my $first = $dom->find('div p:first-of-type'); -=head2 E:last-of-type +=item E:last-of-type An C element, last sibling of its type. my $last = $dom->find('div p:last-of-type'); -=head2 E:only-child +=item E:only-child An C element, only child of its parent. my $lonely = $dom->find('div p:only-child'); -=head2 E:only-of-type +=item E:only-of-type An C element, only sibling of its type. my $lonely = $dom->find('div p:only-of-type'); -=head2 E:empty +=item E:empty An C element that has no children (including text nodes). my $empty = $dom->find(':empty'); -=head2 E:checked +=item E:checked A user interface element C which is checked (for instance a radio-button or checkbox). my $input = $dom->find(':checked'); -=head2 E.warning +=item E.warning An C element whose class is "warning". my $warning = $dom->find('div.warning'); -=head2 E#myid +=item E#myid An C element with C equal to "myid". my $foo = $dom->at('div#foo'); -=head2 E:not(s) +=item E:not(s) An C element that does not match simple selector C. my $others = $dom->find('div p:not(:first-child)'); -=head2 E F +=item E F An C element descendant of an C element. my $headlines = $dom->find('div h1'); -=head2 E E F +=item E E F An C element child of an C element. my $headlines = $dom->find('html > body > div > h1'); -=head2 E + F +=item E + F An C element immediately preceded by an C element. my $second = $dom->find('h1 + h2'); -=head2 E ~ F +=item E ~ F An C element preceded by an C element. my $second = $dom->find('h1 ~ h2'); -=head2 E, F, G +=item E, F, G Elements of type C, C and C. my $headlines = $dom->find('h1, h2, h3'); -=head2 E[foo=bar][bar=baz] +=item E[foo=bar][bar=baz] An C element whose attributes match all following attribute selectors. my $links = $dom->find('a[foo^=b][foo$=ar]'); +=back + =head1 OPERATORS L overloads the following operators.