Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attribute ¶
type Attribute struct {
Namespace, Key, Val string
}
Attribute exists so that this package does not export html.Attribute, to allow vendoring of "golang.org/x/net/html".
type Config ¶
type Config struct { Granularity int // how many letters to put together for a change, if possible InsertedSpan, DeletedSpan, ReplacedSpan []Attribute // the attributes for the span tags wrapping changes CleanTags []string // HTML tags to clean from the input }
Config describes the way that HTMLdiff works.
func (*Config) HTMLdiff ¶
HTMLdiff finds all the differences in the versions of HTML snippits, versions[0] is the original, all other versions are the edits to be compared. The resulting merged HTML snippits are as many as there are edits to compare.
Example ¶
package main import ( "fmt" htmldiff "github.com/davidgraymi/html-diff" ) func main() { previousHTML := `<p>Bullet list:</p><ul><li>first item</li><li>第二</li><li>3rd</li></ul>` latestHTML := `<p>Bullet <b>list:</b></p><ul><li>first item</li><li>number two</li><li>3rd</li></ul>` var cfg = &htmldiff.Config{ Granularity: 5, InsertedSpan: []htmldiff.Attribute{{Key: "style", Val: "background-color: palegreen;"}}, DeletedSpan: []htmldiff.Attribute{{Key: "style", Val: "background-color: lightpink;"}}, ReplacedSpan: []htmldiff.Attribute{{Key: "style", Val: "background-color: lightskyblue;"}}, CleanTags: []string{""}, } res, err := cfg.HTMLdiff([]string{previousHTML, latestHTML}) if err != nil { fmt.Println(err) } mergedHTML := res[0] fmt.Println(mergedHTML) }
Output: <p>Bullet <b><span style="background-color: lightskyblue;">list:</span></b></p><ul><li>first item</li><li><span style="background-color: lightpink;">第二</span><span style="background-color: palegreen;">number two</span></li><li>3rd</li></ul>
Click to show internal directories.
Click to hide internal directories.