mirror of https://github.com/mindoc-org/mindoc.git
124 lines
4.6 KiB
Go
124 lines
4.6 KiB
Go
|
// Copyright (c) 2012-2016, Martin Angers & Contributors
|
||
|
// All rights reserved.
|
||
|
//
|
||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||
|
// are permitted provided that the following conditions are met:
|
||
|
//
|
||
|
// * Redistributions of source code must retain the above copyright notice,
|
||
|
// this list of conditions and the following disclaimer.
|
||
|
// * Redistributions in binary form must reproduce the above copyright notice,
|
||
|
// this list of conditions and the following disclaimer in the documentation and/or
|
||
|
// other materials provided with the distribution.
|
||
|
// * Neither the name of the author nor the names of its contributors may be used to
|
||
|
// endorse or promote products derived from this software without specific prior written permission.
|
||
|
//
|
||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
|
||
|
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||
|
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
|
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||
|
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
||
|
// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
||
|
/*
|
||
|
Package goquery implements features similar to jQuery, including the chainable
|
||
|
syntax, to manipulate and query an HTML document.
|
||
|
|
||
|
It brings a syntax and a set of features similar to jQuery to the Go language.
|
||
|
It is based on Go's net/html package and the CSS Selector library cascadia.
|
||
|
Since the net/html parser returns nodes, and not a full-featured DOM
|
||
|
tree, jQuery's stateful manipulation functions (like height(), css(), detach())
|
||
|
have been left off.
|
||
|
|
||
|
Also, because the net/html parser requires UTF-8 encoding, so does goquery: it is
|
||
|
the caller's responsibility to ensure that the source document provides UTF-8 encoded HTML.
|
||
|
See the repository's wiki for various options on how to do this.
|
||
|
|
||
|
Syntax-wise, it is as close as possible to jQuery, with the same method names when
|
||
|
possible, and that warm and fuzzy chainable interface. jQuery being the
|
||
|
ultra-popular library that it is, writing a similar HTML-manipulating
|
||
|
library was better to follow its API than to start anew (in the same spirit as
|
||
|
Go's fmt package), even though some of its methods are less than intuitive (looking
|
||
|
at you, index()...).
|
||
|
|
||
|
It is hosted on GitHub, along with additional documentation in the README.md
|
||
|
file: https://github.com/puerkitobio/goquery
|
||
|
|
||
|
Please note that because of the net/html dependency, goquery requires Go1.1+.
|
||
|
|
||
|
The various methods are split into files based on the category of behavior.
|
||
|
The three dots (...) indicate that various "overloads" are available.
|
||
|
|
||
|
* array.go : array-like positional manipulation of the selection.
|
||
|
- Eq()
|
||
|
- First()
|
||
|
- Get()
|
||
|
- Index...()
|
||
|
- Last()
|
||
|
- Slice()
|
||
|
|
||
|
* expand.go : methods that expand or augment the selection's set.
|
||
|
- Add...()
|
||
|
- AndSelf()
|
||
|
- Union(), which is an alias for AddSelection()
|
||
|
|
||
|
* filter.go : filtering methods, that reduce the selection's set.
|
||
|
- End()
|
||
|
- Filter...()
|
||
|
- Has...()
|
||
|
- Intersection(), which is an alias of FilterSelection()
|
||
|
- Not...()
|
||
|
|
||
|
* iteration.go : methods to loop over the selection's nodes.
|
||
|
- Each()
|
||
|
- EachWithBreak()
|
||
|
- Map()
|
||
|
|
||
|
* manipulation.go : methods for modifying the document
|
||
|
- After...()
|
||
|
- Append...()
|
||
|
- Before...()
|
||
|
- Clone()
|
||
|
- Empty()
|
||
|
- Prepend...()
|
||
|
- Remove...()
|
||
|
- ReplaceWith...()
|
||
|
- Unwrap()
|
||
|
- Wrap...()
|
||
|
- WrapAll...()
|
||
|
- WrapInner...()
|
||
|
|
||
|
* property.go : methods that inspect and get the node's properties values.
|
||
|
- Attr*(), RemoveAttr(), SetAttr()
|
||
|
- AddClass(), HasClass(), RemoveClass(), ToggleClass()
|
||
|
- Html()
|
||
|
- Length()
|
||
|
- Size(), which is an alias for Length()
|
||
|
- Text()
|
||
|
|
||
|
* query.go : methods that query, or reflect, a node's identity.
|
||
|
- Contains()
|
||
|
- Is...()
|
||
|
|
||
|
* traversal.go : methods to traverse the HTML document tree.
|
||
|
- Children...()
|
||
|
- Contents()
|
||
|
- Find...()
|
||
|
- Next...()
|
||
|
- Parent[s]...()
|
||
|
- Prev...()
|
||
|
- Siblings...()
|
||
|
|
||
|
* type.go : definition of the types exposed by goquery.
|
||
|
- Document
|
||
|
- Selection
|
||
|
- Matcher
|
||
|
|
||
|
* utilities.go : definition of helper functions (and not methods on a *Selection)
|
||
|
that are not part of jQuery, but are useful to goquery.
|
||
|
- NodeName
|
||
|
- OuterHtml
|
||
|
*/
|
||
|
package goquery
|