about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeLines
* Drop support for Go 1.16 and Go 1.17 (#203)Markus Wüstenberg2024-09-19-107/+31
| | | Fixes #184
* Make Groups renderable (#181)Markus Wüstenberg2024-09-19-38/+56
| | | | | | | | | | | | | | This change makes the result of `Group` renderable directly, instead of panicking, with the important caveat that root-level attributes are _ignored_. I don't think this will give problems in practice, as the main use case for rendering `Group` is basically to return root-level elements to the client using something like HTMX. I tried adding a `Fragment`, but it was weird and confusing having two functions (`Group` and `Fragment`) do essentially the same thing, the only difference being whether the argument was a slice of `Node`s or varargs. Fixes #162
* Reduce code duplication by reusing the correct function in deprecated ↵Yarden Shoham2024-08-20-5/+5
| | | | functions (#194)
* Fix `cite` name clash example in readmeMarkus Wüstenberg2024-08-19-1/+1
|
* Add `cite` attribute (#192)Yarden Shoham2024-08-19-1/+13
| | | | | | | It can appear in a `<blockquote>`. - Closes https://github.com/maragudk/gomponents/issues/189 Signed-off-by: Yarden Shoham <git@yardenshoham.com>
* Test on Go 1.23 in CI (#193)Yarden Shoham2024-08-18-0/+1
|
* Add draggable attribute (#185)Leonardo Silveira2024-07-08-0/+5
|
* Add links to godoc (#183)Markus Wüstenberg2024-06-26-39/+54
| | | | | Also add an example for `http.Adapt`. Fixes #182
* Add LabelEl (#180)Markus Wüstenberg2024-06-25-1/+8
| | | | | | For consistency with the other name clashes. Also, adjust the readme. I know it's a bit weird to add a pre-deprecated function, but know it's the same as the other functions.
* Adjust documentation on Iff (#179)Markus Wüstenberg2024-06-25-9/+17
|
* Add datetime attribute (#177)Julien Tant2024-06-21-0/+5
| | | | | `<time>`, `<del>` and `<ins>` can receive a [`datetime`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLTimeElement/dateTime) attribute
* Add an `Iff` helper (#172)Julien Tant2024-06-19-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I ran into some situation where I want to conditionally render a node if some variable is not nil and obviously I got a panic ```go // package viewmodels type SomePage struct { s *string } // package views func SomePage (vm viewmodels.SomePage) g,Node { return Div( If(vm.s == nil, Text("s is nil"), If(vm.s !- nil, Text("s is " + vm.s), // this will panic when `s` is nil ) } ``` In this situation, go will interpret the code of the second `if` regardless of the condition because the code itself is not in a condition. This PR introduces a new `Iff` helper that accepts a callback. The callback content is only interpreted when it's called, making the code safe: ```go // package viewmodels type SomePage struct { s *string } // package views func SomePage (vm viewmodels.SomePage) g,Node { return Div( Iff(vm.s == nil, func () g.Node { return Text("s is nil") }, Iff(vm.s !- nil, func () g.Node { return Text("s is " + vm.s) }, ) } ``` I'm aware of the `Lazy` effort on the side, but I guess this is no a breaking change and can still exist in addition to the `Lazy` effort. Co-authored-by: Markus Wüstenberg <markus@maragu.dk>
* Add dir (#176)Amr Ojjeh2024-06-19-0/+5
| | | | | | | `dir` is a global attribute that lets you specify whether text is RTL or LTR or if it should be determined by the browser. Documentation: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir
* Add LabelAttr and List attributes (#175)Markus Wüstenberg2024-06-06-0/+10
| | | Fixes #168 and fixes #169.
* Deprecate DataAttr, StyleAttr, TitleAttr, FormEl (#174)Markus Wüstenberg2024-06-06-188/+229
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change addresses #170 by deprecating some HTML helpers in favor of using one of the styles as a main one, selected based on what I think is the main use case. - For `Data`, it's the attribute. I don't see much use of the `<data>` element in the wild. - For `Style`, it's the attribute. The `style` attribute is everywhere, the `<style>` element is perhaps less so (but not much). This was the hardest one to decide. - For `Title`, it's the attribute. The `<title>` element only shows up once per document. - For `Form`, it's the element. I haven't seen much use of the `form` attribute in the wild. I know this is arguably not a "consistent" approach, but I think it makes for a much nicer API, simply because the most-used option will not be a suffixed version.
| * Fix readmeMarkus Wüstenberg2024-06-06-5/+6
| |
| * Deprecate DataAttr, StyleAttr, TitleAttr, FormElMarkus Wüstenberg2024-06-06-183/+223
|/ | | | | | | | | | | | This change addresses #170 by deprecating some HTML helpers in favor of using one of the styles as a main one, selected based on what I think is the main use case. - For `Data`, it's the attribute. I don't see much use of the `<data>` element in the wild. - For `Style`, it's the attribute. The `style` attribute is everywhere, the `<style>` element is perhaps less so (but not much). This was the hardest one to decide. - For `Title`, it's the attribute. The `<title>` element only shows up once per document. - For `Form`, it's the element. I haven't seen much use of the `data` attribute in the wild. I know this is arguably not a "consistent" approach, but I think it makes for a much nicer API, simply because the most-used option will not be a suffixed version.
* Add script's `integrity` and `crossorigin` attributes (#173)Markus Wüstenberg2024-06-06-0/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using `<script>` to pull a library from a CDN, it's usually a good idea to attach an integrity check so that if they get hacked and someone changes all the script, malicious scripts don't get executed on your website. To achieve this, you need to attach `integrity` and `crossorigin` to your `<script/>` tag ```go Script( Scr("https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"), Integrity("sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"), CrossOrigin("anonymous"), ) ``` Turns into ```html <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script> ``` Hint for whoever likes unpkg.com, adding `?meta` at the end of any script you import form them will give you the current `integrity` for the file. Example: https://unpkg.com/three@0.165.0/build/three.cjs?meta
| * add script's integrity and crossorigin attributesJulien Tant2024-06-05-0/+10
|/
* Revert "Add Marquee element promotion to readme"Markus Wüstenberg2024-04-29-2/+0
| | | | This reverts commit b33f84310916b238af0006fb151a4b980721bc33.
* Add Marquee element promotion to readmeMarkus Wüstenberg2024-03-13-0/+2
|
* Just call it HTML components in readmeMarkus Wüstenberg2024-03-12-3/+3
|
* Fix wrong codecov (#166)Markus Wüstenberg2024-02-09-0/+3
|\ | | | | | | We don't need coverage for the example code and internal testing helpers.
| * Fix wrong codecovMarkus Wüstenberg2024-02-09-0/+3
|/ | | | We don't need coverage for the example code and internal testing helpers.
* Test on Go 1.22 in CI (#165)Markus Wüstenberg2024-02-09-0/+1
|\
| * Test on Go 1.22 in CIMarkus Wüstenberg2024-02-09-0/+1
|/
* Move logo in readmeMarkus Wüstenberg2024-01-12-2/+2
|
* Create FUNDING.ymlMarkus Wüstenberg2024-01-12-0/+2
|
* Fix logo size in readmeMarkus Wüstenberg2024-01-12-1/+1
|
* Add logo to readmeMarkus Wüstenberg2024-01-12-0/+2
|
* Test Go 1.21 in CI (#147)Markus Wüstenberg2023-09-08-0/+1
|\
| * Test Go 1.21 in CIMarkus Wüstenberg2023-09-08-0/+1
|/
* Add "checked" bool attribute (#136)Markus Wüstenberg2023-05-11-0/+5
|\ | | | | Fixes #127.
| * Add "checked" bool attributeMarkus Wüstenberg2023-05-11-0/+5
|/ | | | Fixes #127.
* Document Text/Textf helpers better (#135)Markus Wüstenberg2023-05-11-4/+6
|\ | | | | | | | | Both in the readme and package doc. Fixes #133.
| * Document Text/Textf helpers betterMarkus Wüstenberg2023-05-11-4/+6
|/ | | | | | Both in the readme and package doc. Fixes #133.
* Test with Go 1.20 in CI (#134)Markus Wüstenberg2023-05-04-4/+5
|\ | | | | Fixes #129.
| * Make version numbers strings in yamlMarkus Wüstenberg2023-05-04-5/+5
| |
| * Test with Go 1.20 in CIMarkus Wüstenberg2023-05-04-0/+1
|/
* Add Step attribute (#126)Markus Wüstenberg2023-01-17-0/+5
| | | | | See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step Fixes #120.
* Add ColSpan and RowSpan attributes (#125)Markus Wüstenberg2023-01-17-0/+10
|
* Remove year from LICENSE (#121)Markus Wüstenberg2023-01-03-1/+1
|
* Upgrade codecov-action to v3 in CI (#119)Markus Wüstenberg2022-11-15-1/+1
|
* Put .PHONY in front of each target in Makefile (#118)Markus Wüstenberg2022-11-15-2/+4
|
* Rename master branch to main (#117)Markus Wüstenberg2022-11-15-3/+3
|
* Add stroke-width SVG attribute (#116)Markus Wüstenberg2022-11-15-6/+11
|
* Delete low-value helper components (#115)Markus Wüstenberg2022-11-03-124/+61
| | | | I'd rather reserve the package for components that have proven repeatedly useful, like `Classes` and `HTML5`.
* Add Rawf (#114)Markus Wüstenberg2022-11-03-2/+25
| | | Like `Raw`, but interpolates like `Textf`.
* Add Go report card to readme (#111)Markus Wüstenberg2022-10-17-1/+2
| | | Also fix godoc badge to point to pkg.go.dev.
* Fix small typo occured -> occurred (#110)Markus Wüstenberg2022-10-17-1/+1
|