home.social

#templating — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #templating, aggregated by home.social.

  1. 𝗠𝗶𝘇𝘂𝗷𝘀:

    #Templating #HTML #JavaScript #Mizu

    thewhale.cc/posts/mizujs

    mizu.js is a lightweight HTML templating library designed to simplify web development.

  2. 𝗠𝗶𝘇𝘂𝗷𝘀:

    #Templating #HTML #JavaScript #Mizu

    thewhale.cc/posts/mizujs

    mizu.js is a lightweight HTML templating library designed to simplify web development.

  3. 𝗠𝗶𝘇𝘂𝗷𝘀:

    #Templating #HTML #JavaScript #Mizu

    thewhale.cc/posts/mizujs

    mizu.js is a lightweight HTML templating library designed to simplify web development.

  4. Now that Thymeleaf seems to have been abandoned in a half-broken state, anyone know of any decent XML based HTML template libraries for Java?

    To be explicit, I *don't* want generators that use Jinja-like text syntax to generate markup-ish tag soup output. Rather, something that requires well-formed XML input so that it generates well formed HTML output. This implies using markup for control statements etc, like Thymeleaf or Genshi.

    TIA!

    [boosts appreciated]

    #java #html #templating #thymeleaf

  5. Now that Thymeleaf seems to have been abandoned in a half-broken state, anyone know of any decent XML based HTML template libraries for Java?

    To be explicit, I *don't* want generators that use Jinja-like text syntax to generate markup-ish tag soup output. Rather, something that requires well-formed XML input so that it generates well formed HTML output. This implies using markup for control statements etc, like Thymeleaf or Genshi.

    TIA!

    [boosts appreciated]

    #java #html #templating #thymeleaf

  6. Now that Thymeleaf seems to have been abandoned in a half-broken state, anyone know of any decent XML based HTML template libraries for Java?

    To be explicit, I *don't* want generators that use Jinja-like text syntax to generate markup-ish tag soup output. Rather, something that requires well-formed XML input so that it generates well formed HTML output. This implies using markup for control statements etc, like Thymeleaf or Genshi.

    TIA!

    [boosts appreciated]

    #java #html #templating #thymeleaf

  7. Now that Thymeleaf seems to have been abandoned in a half-broken state, anyone know of any decent XML based HTML template libraries for Java?

    To be explicit, I *don't* want generators that use Jinja-like text syntax to generate markup-ish tag soup output. Rather, something that requires well-formed XML input so that it generates well formed HTML output. This implies using markup for control statements etc, like Thymeleaf or Genshi.

    TIA!

    [boosts appreciated]

    #java #html #templating #thymeleaf

  8. Now that Thymeleaf seems to have been abandoned in a half-broken state, anyone know of any decent XML based HTML template libraries for Java?

    To be explicit, I *don't* want generators that use Jinja-like text syntax to generate markup-ish tag soup output. Rather, something that requires well-formed XML input so that it generates well formed HTML output. This implies using markup for control statements etc, like Thymeleaf or Genshi.

    TIA!

    [boosts appreciated]

    #java #html #templating #thymeleaf

  9. 🚢🤖 Ah, the thrilling saga of Helm charts: where #YAML meets your wildest #DevOps dreams, and somehow, the elusive art of "right-click, inspect" is the zenith of engineering wizardry. Because who wouldn't want to spend their weekends #debugging the labyrinthine mystery of #templating inconsistencies just to save a buck? 💸✨
    willmunn.xyz/devops/helm/kuber #HelmCharts #EngineeringWizardry #HackerNews #ngated

  10. RE: phpc.social/@nette_news/115620

    Latte has long been my preferred PHP templating engine. The new version looks even better!

    #php #templating

  11. Ah, yes, yet another genius proposal to solve a problem no one knew they had: a 💫 "native" 💫 #DOM #templating API! Because, clearly, the web development community hasn't had enough hand-wringing debates about what "declarative" means. 😂 Let's all gather 'round and stare in awe at the brilliance of #overthinking the obvious! 🎉
    justinfagnani.com/2025/06/30/w #webdevelopment #API #declarative #proposals #humor #HackerNews #ngated

  12. I came across the #Fail2Ban #docker image from #linuxserverio and thought to myself that it's finally time to set up Fail2Ban. I admit i never used it before and it was a bit difficult to add it to my #playbook as all of my #servers have different services and therefore different #logfile paths, but that's nothing #jinja #templating can't fix.

    Now that i've got #Discord notifications for banned #IPs, it's time to work on actual #IPblocking. I also want to use the #IPComplaint and #AbuseIPDB actions as i really like the idea of reporting abuse (even though i have no idea how effective that may be).

    I may also want to replace the discord #webhook with #email notifications later as that's mostly the reason i've set up a #mailserver ( #stalwart ) in the first place.

    I mean, most of my services are only accessible from #tailscale or my #homenetwork, but since #Ansible makes it so much easier to apply higher standards, i just can't resist. My #homelab is changing every day and i think setting up additional #security, even though i don't need it yet, is never a bad idea.

    #networking #badactors #firewall #automation #linux #selfhosting #homeserver

  13. GreatBlogs – Ressourcen-Optimierung, RSS und Co.

    In GreatBlogs – Technik-Umschwung am Frontend habe ich schon Änderungen an der Technologie-Auswahl angekündigt. Ein Teil dessen wurde mittlerweile auch umgesetzt. Schauen wir uns die Änderungen im Detail an.

    Feed-Generierung

    Der Beitrags-Feed wurde im ersten Schritt mit Vue.js realisiert. Das ist nett, aber im Grunde ergibt das dann doch bei jedem Aufrung eine Query gegen die Datenbank. Nun ist es nicht so relevant, auf Sekundenbasis neue Beiträge tatsächlich auch zu listen. Die Entscheidung, den Feed-Reader zu generieren und statisch auszuliefern, war daher sehr einfach.

    Go bietet eine Templating-Engine an, die für diese Zwecke perfekt ist. Also habe ich Templates und Styles entworfen und per Go hole ich die relevanten Daten, jage sie durch die Templating-Engine und fertig ist das Ergebnis.

    Da ohnehin alle 30 Minuten per Cronjob die registrierten Feeds aktualisiert wird, wird im Zuge dessen auch die Feed-Seite im Anschluss neu generiert.

    Blogger Auflistung

    In dieselbe Kerbe schlägt die neue Blogger-Auflistung. Diese zeigt alle registrierten Blogs an. Da sich diese noch seltener ändert, reicht eine Aktualisierung einmal am Tag. Auch dies wird über einen Cronjob durchgeführt.

    RSS-Feeds

    Wie im Screenshot oben zu sehen ist, werden mittlerweile auch RSS-Feeds angeboten. Hierfür gibt es eine praktische Go-Bibliothek: Gorilla Feeds.

    Mit dieser Bibliothek können Atam bzw. RSS 2.0 Feeds sehr einfach erzeugt werden. Die Einbindung von Feeds ist damit ein Kinderspiel.

    Hilfsmittel

    Es gibt ja neben der technischen Aspekte weitere Themen zu bedienen: Usability, Accessability, Performance und natürlich auch IT-Themen. Das Einrichten und Konfigurieren von Cronjobs oder des Webservers zum Beispiel. Hier ein paar Links zu hilfreichen Webseiten:

    #golang #GreatBlogs #RSS #templating

  14. GreatBlogs – Technik-Umschwung am Frontend

    Es tut sich was bei GreatBlogs. Ich hatte ja im Beitrag GreatBlogs – Projekt und Technik geschrieben, dass ich großteils einen neuen Dev-Stack einsetze. Wie das dann so ist, kann sich sehr schnell etwas daran ändern und das wird es auch. Den Grund und noch weitere Themen gibt es in diesem Beitrag.

    Statische Seiten brauchen weniger Ressourcen

    Er war doch schon nett, der Gedanke, ein neues JavaScript-UI-Framework zu verwenden. Bei genauerer Überlegung, nach etwas Einarbeitungszeit und auch einigen Gesprächen bin ich nun an dem Punkt angelangt, dass ich das nicht brauche.

    Vielmehr möchte ich auf möglichst viel JavaScript verzichten. Ein Großteil der Seiten soll auch ohne JavaScript auskommen können. Welche Gründe sprechen dafür?

    • Geringerer Ressourcenverbrauch
    • Läuft auch bei ausgeschaltenem JavaScript
    • Besseres Caching
    • Geringere Komplexität

    Als Beispiel ist der Artikel-Feed zu nennen. Dieser zeigt, bis wieder neue Artikel verfügbar sind, immer dieselben Informationen an. Sie müssen nicht immer wieder aufs Neue aus der Datenbank geholt werden. Mit einer Templating Engine lässt sich die Feedseite bei neuen Artikeln einmal generieren. Weitere Zugriffe auf die Datenbank sind nicht notwendig. Mit zunehmender Besucheranzahl macht sich das bemerkbar.

    Da im Hintergrund in regelmäßigen Abständen eine Artikelabfrage läuft, ist auch ein entsprechender Triggerpunkt vorhanden.

    Entsprechend wurde der Feed nun auch umgebaut.

    Go bietet bereits in der Standardbibliothek eine Template-Engine an, mit der sehr schnell und einfach HTML-Seiten (aber auch normale Text-Dateien) generiert werden können.

    Das Ergebnis läuft ab sofort unter read.greatblogs.org. Noch setzt der Kategorie-Filter auf JavaScript, aber auch dieser wird in Bälde ersetzt.

    Die nächsten technischen Schritte?

    search.greatblogs.org läuft nun schon noch mit der Vue.js-App, aber auch hier wird es bald zu Änderungen kommen. Und dann geht es langsam aber sicher in Richtung Suchmaschine. Vorher gibt es noch ein paar Features für den Feed, aber dann geht es ans Eingemachte.

    Bisherige Learnings?

    Von Zeit zu Zeit ist es gut, sich in einen gänzlich neuen Tech-Stack zu werfen. Man lernt so unheimlich viel. Hier ein kurzer Ausschnitt:

    • Golang: WebAPI, Templating, Datenbankzugriffe
    • Linux Administration: Services, Automatisierung, Metriken, Logging
    • PostgreSQL: Administration, Backup

    Auch wenn einige Dinge vorher schon bekannt waren: Es ist die Anwendung, die Herausforderung an der man wächst. Ein großes Stichwort ist auch Automatisierung. Das nimmt unheimlich viel (dumpfe) Arbeit ab und hilft zudem Fehler zu vermeiden.

    Ich bin mir sicher, da kommt noch Vieles hinzu …

    #golang #templating

  15. Abivia Penknife, a small template engine inspired by Blade. Requires PHP 8.4. Because everyone needs Yet Another Template Engine, right? Well I did, and I'm sharing it. This tiny little thing clocks in under 300 LOC and has no dependencies.

    github.com/abivia/penknife

  16. Donno about you guys but it sure is nice not to have to try and decipher the clusterfuck-like syntax of Hugo’s Go-based templating engine anymore…

    The code on the left is Kitten¹, on the right is Hugo².

    Kitten’s ‘template engine’ is just JavaScript tagged template strings.

    (I’m porting the Small Technology Foundation web site³ from Site.js⁴ to Kitten, and in the process from being a Hugo-based static site to a dynamic one with a nice little admin panel I’m making to make it trivially easy to add new news items, events, and videos.)

    ¹ kitten.small-web.org
    ² gohugo.io
    ³ small-tech.org
    sitejs.org

    #Kitten #SmallWeb #SmallTech #Hugo #JavaScript #Go #web #dev #NodeJS #templating

  17. I know everyone's into Eleventy these days but I dislike it. It reminds me of WebPack; too configuration heavy.

    I always liked #ParcelJS but they took too long getting to v2 and now nobody ever talks about it.

    Are there any other #staticSiteGenerator tools I should checkout?

    I mainly just want #HTML #templating, but I'd like to avoid template languages like Mustache and Liquid for PTSD reasons.

    Bonus points if it I can use the same files in the browser.

    #webDev #javaScript #build #ssg

  18. Thunderbird Auto Config Server (TACS)

    На хабре уже были статьи по настройке почтового клиента Thunderbird, с подробным разбором его возможностей и деталей настроек, а поиск по сети выдаёт множество блогов с продублированной информацией о самых базовых его возможностях. Каждый из авторов решал настройку почты своим путём, используя разные языки и подходы. Моя цель - попытаться унифицировать это, избавиться от самописных скриптов, предоставив готовый сервер-шаблонизатор для выдачи настроек по запросу почтового клиента.

    habr.com/ru/articles/812879/

    #thunderbird #autoconfig #templating #автоконфигурация #почтовый_клиент #шаблонизация

  19. @RethinkJeff

    Sounds like you're looking for a templating engine/library. There are many for Python; each web framework generally has a default.

    Flask defaults to jinja2. It's pretty good, and I've used it for several projects.

    There's a long list of them on the Python wiki:
    wiki.python.org/moin/Templatin

    #template #templating #engine #html

  20. Until recently, the mustache(5) manpage was very outdated compared to the specification. I updated the manual in September 2021 and again in 2022. I was hosting my updated copy on the #Wontache website.

    With help from @locks, the updated manual finally made it into the official website two days ago. At last, people who visit the Mustache website will again be able to read how the template language is supposed to work! 🎉

    mustache.github.io/mustache.5.

    #opensource #templating #MustacheTemplating

  21. I came across the #Fail2Ban #docker image from #linuxserverio and thought to myself that it's finally time to set up Fail2Ban. I admit i never used it before and it was a bit difficult to add it to my #playbook as all of my #servers have different services and therefore different #logfile paths, but that's nothing #jinja #templating can't fix.

    Now that i've got #Discord notifications for banned #IPs, it's time to work on actual #IPblocking. I also want to use the #IPComplaint and #AbuseIPDB actions as i really like the idea of reporting abuse (even though i have no idea how effective that may be).

    I may also want to replace the discord #webhook with #email notifications later as that's mostly the reason i've set up a #mailserver ( #stalwart ) in the first place.

    I mean, most of my services are only accessible from #tailscale or my #homenetwork, but since #Ansible makes it so much easier to apply higher standards, i just can't resist. My #homelab is changing every day and i think setting up additional #security, even though i don't need it yet, is never a bad idea.

    #networking #badactors #firewall #automation #linux #selfhosting #homeserver

  22. I came across the #Fail2Ban #docker image from #linuxserverio and thought to myself that it's finally time to set up Fail2Ban. I admit i never used it before and it was a bit difficult to add it to my #playbook as all of my #servers have different services and therefore different #logfile paths, but that's nothing #jinja #templating can't fix.

    Now that i've got #Discord notifications for banned #IPs, it's time to work on actual #IPblocking. I also want to use the #IPComplaint and #AbuseIPDB actions as i really like the idea of reporting abuse (even though i have no idea how effective that may be).

    I may also want to replace the discord #webhook with #email notifications later as that's mostly the reason i've set up a #mailserver ( #stalwart ) in the first place.

    I mean, most of my services are only accessible from #tailscale or my #homenetwork, but since #Ansible makes it so much easier to apply higher standards, i just can't resist. My #homelab is changing every day and i think setting up additional #security, even though i don't need it yet, is never a bad idea.

    #networking #badactors #firewall #automation #linux #selfhosting #homeserver

  23. I came across the #Fail2Ban #docker image from #linuxserverio and thought to myself that it's finally time to set up Fail2Ban. I admit i never used it before and it was a bit difficult to add it to my #playbook as all of my #servers have different services and therefore different #logfile paths, but that's nothing #jinja #templating can't fix.

    Now that i've got #Discord notifications for banned #IPs, it's time to work on actual #IPblocking. I also want to use the #IPComplaint and #AbuseIPDB actions as i really like the idea of reporting abuse (even though i have no idea how effective that may be).

    I may also want to replace the discord #webhook with #email notifications later as that's mostly the reason i've set up a #mailserver ( #stalwart ) in the first place.

    I mean, most of my services are only accessible from #tailscale or my #homenetwork, but since #Ansible makes it so much easier to apply higher standards, i just can't resist. My #homelab is changing every day and i think setting up additional #security, even though i don't need it yet, is never a bad idea.

    #networking #badactors #firewall #automation #linux #selfhosting #homeserver

  24. I came across the #Fail2Ban #docker image from #linuxserverio and thought to myself that it's finally time to set up Fail2Ban. I admit i never used it before and it was a bit difficult to add it to my #playbook as all of my #servers have different services and therefore different #logfile paths, but that's nothing #jinja #templating can't fix.

    Now that i've got #Discord notifications for banned #IPs, it's time to work on actual #IPblocking. I also want to use the #IPComplaint and #AbuseIPDB actions as i really like the idea of reporting abuse (even though i have no idea how effective that may be).

    I may also want to replace the discord #webhook with #email notifications later as that's mostly the reason i've set up a #mailserver ( #stalwart ) in the first place.

    I mean, most of my services are only accessible from #tailscale or my #homenetwork, but since #Ansible makes it so much easier to apply higher standards, i just can't resist. My #homelab is changing every day and i think setting up additional #security, even though i don't need it yet, is never a bad idea.

    #networking #badactors #firewall #automation #linux #selfhosting #homeserver