joshuadavidthomas / django-bird

High-flying components for perfectionists with deadlines
https://django-bird.readthedocs.io
MIT License
37 stars 1 forks source link

Create `<bird:component_name>` custom HTML element #15

Open joshuadavidthomas opened 2 weeks ago

joshuadavidthomas commented 2 weeks ago

I really like the approach of django-cotton and dj-angles, where they take what looks like a custom HTML element and do some compilation in a template loader and swap the custom elements out for plain ole django templatetags.

I also prefer Flux's approach of namespacing the element with the library name and a colon, as opposed to the approach taken by the other two libraries where it looks like it could be a custom Web Component:

<!-- dj-angles -->
<dj-block 'content'>
</dj-block 'content'>

<!-- django-cotton -->
<c-button>
    Button
</c-product>

<!-- flux -->
<flux:button>
    Button
</flux:button>

This could just be a personal preference thing, but the first two throw me off and make me think they are custom Web Components, where the bottom I know can't be because of the colon.

In the end, it should be no harder to parse and compile with the colon vs with the dash.