Documentation
¶
Index ¶
- func GenerateHTMLClayID() (string, error)
- func HasHTMLTag(data []byte) bool
- func InjectBanner(data, wrappedBanner []byte) []byte
- func InjectHTMLClayID(data []byte, id string) []byte
- func InjectToken(data []byte, value string) []byte
- func IsCompleteHTMLDocument(data []byte) bool
- func ReadHTMLClayID(data []byte) string
- func SetHTMLClayID(data []byte, id string) []byte
- func StripBanner(data []byte) []byte
- func StripHTMLClayID(data []byte) []byte
- func StripToken(data []byte) []byte
- func WrapBanner(banner []byte) []byte
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateHTMLClayID ¶
GenerateHTMLClayID generates a UUID v4 using crypto/rand.
func HasHTMLTag ¶
HasHTMLTag reports whether data contains a real top-level <html> start tag, ignoring any <html occurrence inside a comment. Used to reject a save body that is not a full HTML document before it overwrites a file.
func InjectBanner ¶ added in v1.3.0
InjectBanner inserts an already-wrapped banner immediately before the real top-level </html> end tag, using the same comment- and raw-text-aware scan as IsCompleteHTMLDocument, so a fake close tag inside a script or comment cannot misplace it. Position in the DOM is irrelevant to a fixed-position banner, and inserting at the end sidesteps every head/body reparenting subtlety an injection near <html> would raise. A document with no close tag gets the banner appended; one with no <html> tag at all is returned unchanged (served plain rather than guessed at).
func InjectHTMLClayID ¶
InjectHTMLClayID adds htmlclayid to <html> if not already present. This is persistent — never stripped on save.
func InjectToken ¶
InjectToken injects the htmlclaytoken attribute on <html>. Ephemeral auth token — stripped on save.
func IsCompleteHTMLDocument ¶ added in v1.2.0
IsCompleteHTMLDocument reports whether data is a whole document: a real top-level <html> start tag followed by a matching </html> end tag. HasHTMLTag alone is not sufficient for a restore, because it accepts `<html><body>partial` and would let a truncated version overwrite a good file.
func ReadHTMLClayID ¶
ReadHTMLClayID extracts the htmlclayid UUID from the <html> tag. Returns empty string if not present.
func SetHTMLClayID ¶ added in v1.2.0
SetHTMLClayID forces htmlclayid on <html>, replacing any existing value. Restore uses it to keep the target file's canonical identity rather than adopting the id stored inside the restored version.
func StripBanner ¶ added in v1.3.0
StripBanner removes every marker-delimited banner from data. It runs on every save and restore: a banner that reached a token-holding tab (for instance pushed through live-sync into an edit-mode page) must never autosave itself into the file on disk. An unterminated start marker strips nothing rather than guessing at an end.
func StripHTMLClayID ¶ added in v1.2.0
StripHTMLClayID removes the htmlclayid attribute from <html>. Used when restoring into a file that carries no identity of its own, so a version taken from a different file cannot donate its id.
func StripToken ¶
StripToken removes the htmlclaytoken attribute from <html>.
func WrapBanner ¶ added in v1.3.0
WrapBanner surrounds server-authored banner markup with the strip markers.
Types ¶
This section is empty.