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.
