diff options
author | Bjørn Erik Pedersen <[email protected]> | 2020-07-23 14:18:13 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2020-07-23 16:21:58 +0200 |
commit | 00e00da233ab4d643de90bafca00f60ee0bbe785 (patch) | |
tree | d3c86d8c8a4cbc95dbd36b4919d5e0b1907f16d0 /publisher | |
parent | 45c665d396ed368261f4a63ceee753c7f6dc5bf9 (diff) | |
download | hugo-00e00da233ab4d643de90bafca00f60ee0bbe785.tar.gz hugo-00e00da233ab4d643de90bafca00f60ee0bbe785.zip |
publisher: Collect transition attributes as classes
Fixes #7509
Diffstat (limited to 'publisher')
-rw-r--r-- | publisher/htmlElementsCollector.go | 3 | ||||
-rw-r--r-- | publisher/htmlElementsCollector_test.go | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/publisher/htmlElementsCollector.go b/publisher/htmlElementsCollector.go index 7bb2ebf15..daaefe6cf 100644 --- a/publisher/htmlElementsCollector.go +++ b/publisher/htmlElementsCollector.go @@ -220,6 +220,7 @@ func isQuote(b byte) bool { var ( htmlJsonFixer = strings.NewReplacer(", ", "\n") jsonAttrRe = regexp.MustCompile(`'?(.*?)'?:.*`) + classAttrRe = regexp.MustCompile(`(?i)^class$|transition`) ) func parseHTMLElement(elStr string) (el htmlElement) { @@ -242,7 +243,7 @@ func parseHTMLElement(elStr string) (el htmlElement) { // There should be only one, but one never knows... el.IDs = append(el.IDs, a.Val) default: - if strings.EqualFold(a.Key, "class") { + if classAttrRe.MatchString(a.Key) { el.Classes = append(el.Classes, strings.Fields(a.Val)...) } else { key := strings.ToLower(a.Key) diff --git a/publisher/htmlElementsCollector_test.go b/publisher/htmlElementsCollector_test.go index e255a7354..24bf87c2d 100644 --- a/publisher/htmlElementsCollector_test.go +++ b/publisher/htmlElementsCollector_test.go @@ -85,6 +85,7 @@ func TestClassCollector(t *testing.T) { }" class="block w-36 cursor-pointer pr-3 no-underline capitalize"></a>`, f("a", "block capitalize cursor-pointer no-underline pl-2 pl-3 pr-3 text-a text-b text-gray-600 w-36", "")}, + {"Alpine transition 1", `<div x-transition:enter-start="opacity-0 transform mobile:-translate-x-8 sm:-translate-y-8">`, f("div", "mobile:-translate-x-8 opacity-0 sm:-translate-y-8 transform", "")}, {"Vue bind", `<div v-bind:class="{ active: isActive }"></div>`, f("div", "active", "")}, } { c.Run(test.name, func(c *qt.C) { |