shithub: hugo

Download patch

ref: 00e00da233ab4d643de90bafca00f60ee0bbe785
parent: 45c665d396ed368261f4a63ceee753c7f6dc5bf9
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Thu Jul 23 10:18:13 EDT 2020

publisher: Collect transition attributes as classes

Fixes #7509

--- a/publisher/htmlElementsCollector.go
+++ b/publisher/htmlElementsCollector.go
@@ -220,6 +220,7 @@
 var (
 	htmlJsonFixer = strings.NewReplacer(", ", "\n")
 	jsonAttrRe    = regexp.MustCompile(`'?(.*?)'?:.*`)
+	classAttrRe   = regexp.MustCompile(`(?i)^class$|transition`)
 )
 
 func parseHTMLElement(elStr string) (el htmlElement) {
@@ -242,7 +243,7 @@
 					// 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)
--- a/publisher/htmlElementsCollector_test.go
+++ b/publisher/htmlElementsCollector_test.go
@@ -85,6 +85,7 @@
       
                 }" 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) {