From 9440b3e868b48cabf41961b52de2bf8a21b2e2f7 Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Fri, 26 Jan 2024 15:42:05 +0100 Subject: [PATCH] fix: add data-monster-head as id --- devenv.lock | 60 +++++++++++++++++++------------------- source/go.mod | 8 ++--- source/go.sum | 6 ++++ source/template/prepare.go | 14 +++++++-- source/util/id.go | 6 +++- 5 files changed, 56 insertions(+), 38 deletions(-) diff --git a/devenv.lock b/devenv.lock index b187f60..f9cbc7d 100644 --- a/devenv.lock +++ b/devenv.lock @@ -3,11 +3,11 @@ "devenv": { "locked": { "dir": "src/modules", - "lastModified": 1699273601, - "narHash": "sha256-rBTtJ3Vln63RwzyVFzcAy6hW5mXTZOLXwJ/p5Sz0T5k=", + "lastModified": 1706018268, + "narHash": "sha256-d24+re0t8b6HYGzAPZCIJed85n23RUFXQa2yuHoW0uQ=", "owner": "cachix", "repo": "devenv", - "rev": "af34c270e708675c02831c5a4d6d1d3d6efb0854", + "rev": "ad0ae333b210e31237e1fc4a7ddab71a01785add", "type": "github" }, "original": { @@ -20,11 +20,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -38,11 +38,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", "type": "github" }, "original": { @@ -74,11 +74,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1699169573, - "narHash": "sha256-cvUb1xZkvOp3W2SzylStrTirhVd9zCeo5utJl9nSIhw=", + "lastModified": 1704290814, + "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "aeefe2054617cae501809b82b44a8e8f7be7cc4b", + "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", "type": "github" }, "original": { @@ -90,32 +90,32 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1685801374, - "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "lastModified": 1704874635, + "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1699169573, - "narHash": "sha256-cvUb1xZkvOp3W2SzylStrTirhVd9zCeo5utJl9nSIhw=", + "lastModified": 1706098335, + "narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "aeefe2054617cae501809b82b44a8e8f7be7cc4b", + "rev": "a77ab169a83a4175169d78684ddd2e54486ac651", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "type": "indirect" } }, @@ -130,11 +130,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1699271226, - "narHash": "sha256-8Jt1KW3xTjolD6c6OjJm9USx/jmL+VVmbooADCkdDfU=", + "lastModified": 1705757126, + "narHash": "sha256-Eksr+n4Q8EYZKAN0Scef5JK4H6FcHc+TKNHb95CWm+c=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "ea758da1a6dcde6dc36db348ed690d09b9864128", + "rev": "f56597d53fd174f796b5a7d3ee0b494f9e2285cc", "type": "github" }, "original": { @@ -171,11 +171,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1690668568, - "narHash": "sha256-jzixQKFFW4oxO0S4GYqbkFCXzhBd6com6Z9+MtVKakU=", + "lastModified": 1704542622, + "narHash": "sha256-HnFuaOXHoxv8tpBvMsEjfhcl/hFNxEY7GbBqoyJ1U8U=", "ref": "refs/heads/master", - "rev": "3838f03165b726e47d586c04a1821749375e1001", - "revCount": 37, + "rev": "6b4f85fe6d934429cf3055bbcd8cf15014730118", + "revCount": 114, "type": "git", "url": "https://gitlab.schukai.com/oss/utilities/version.git" }, diff --git a/source/go.mod b/source/go.mod index f7a0da4..61dd0d0 100644 --- a/source/go.mod +++ b/source/go.mod @@ -1,13 +1,13 @@ module gitlab.schukai.com/oss/bob -go 1.20 +go 1.21 require ( github.com/andybalholm/cascadia v1.3.2 gitlab.schukai.com/oss/libraries/go/application/xflags v1.16.2 - gitlab.schukai.com/oss/libraries/go/markup/html v0.4.1 - golang.org/x/crypto v0.14.0 - golang.org/x/net v0.17.0 + gitlab.schukai.com/oss/libraries/go/markup/html v0.4.2 + golang.org/x/crypto v0.18.0 + golang.org/x/net v0.20.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/source/go.sum b/source/go.sum index 968a03f..3775078 100644 --- a/source/go.sum +++ b/source/go.sum @@ -24,6 +24,8 @@ gitlab.schukai.com/oss/libraries/go/markup/html v0.4.0 h1:gnYhE5PAN5KxsRILVl3y3u gitlab.schukai.com/oss/libraries/go/markup/html v0.4.0/go.mod h1:HzmuHp0kWeICctL/lVz8up2qkyHxI1R48FojgF/aKs4= gitlab.schukai.com/oss/libraries/go/markup/html v0.4.1 h1:mhdtBk9R6hqrri02I37YpiBUDbYwox8M1dwMvehEbIU= gitlab.schukai.com/oss/libraries/go/markup/html v0.4.1/go.mod h1:wGflhyJwSo85kvACamW8pBSUvndBPG3aYW6GfJK4LQA= +gitlab.schukai.com/oss/libraries/go/markup/html v0.4.2 h1:yZlZwzGQ/C4x578Of/JCkt5iw75GGs+O7l3CPdpM738= +gitlab.schukai.com/oss/libraries/go/markup/html v0.4.2/go.mod h1:TLlQfudIY8EDdIWcGftoANI4K+vbF4M5fdVm6y5P/w8= gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0 h1:JVxMHiA8zFVjJDhNl65XeYrhdMkzB+5dyrBUEZ982WU= gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0/go.mod h1:BsR4Y9jsvISplkW6UoLFRGxQX69/AUmP1SXRwWhx31o= gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.2 h1:R+dL2NJCM+AQNPK4DPDmfvx1eomi1Xb1dl0XKEFj7Ek= @@ -40,6 +42,8 @@ golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -55,6 +59,8 @@ golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= diff --git a/source/template/prepare.go b/source/template/prepare.go index b13d0fb..07d038d 100644 --- a/source/template/prepare.go +++ b/source/template/prepare.go @@ -448,13 +448,21 @@ func checkMonsterDatatableHead(n *html.Node, storage *types.PageData) { } for _, div := range list { + + head := util.GetAttribute(div.Attr, "data-monster-head") + id := util.GetAttribute(div.Attr, constants.DataBobReferenceAttributeKey) if id == "" { - id = util.GetNextId() + + headID := util.BuildTextKey(head) + if headID == "" { + id = util.GetNextId() + } else { + id = headID + } div.Attr = append(div.Attr, html.Attribute{Key: constants.DataBobReferenceAttributeKey, Val: id}) - } - head := util.GetAttribute(div.Attr, "data-monster-head") + } div.Attr = removeAttribute(div.Attr, "data-attributes") div.Attr = append(div.Attr, html.Attribute{Key: "data-attributes", Val: "data-monster-head path:text." + id + ".text"}) diff --git a/source/util/id.go b/source/util/id.go index cef7728..74a36ab 100644 --- a/source/util/id.go +++ b/source/util/id.go @@ -62,11 +62,15 @@ func hashString(s string) string { func BuildTextKey(txt string) (string, error) { + if txt == "" { + return "", nil + } + txt = strings.TrimSpace(txt) txt = strings.ToLower(txt) txt = strings.ReplaceAll(txt, keyDelimiter, tempStringMask) - reg, err := regexp.Compile("[^a-z0-9]+") + reg, err := regexp.Compile("[^a-z0-9_-]+") if err != nil { return "", err } -- GitLab