<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>This Week in HTMX</title>
  <link href="https://thisweek.htmx.org/feed.xml" rel="self"/>
  <link href="https://thisweek.htmx.org/"/>
  <updated>2021-11-07T00:00:00Z</updated>
  <id>https://thisweek.htmx.org/</id>
  <author>
    <name>Deniz Akşimşek</name>
    <email>deniz@denizaksimsek.com</email>
  </author>
  
  <entry>
    <title>Issue № 4: I Don’t Speak German But I Can If You Like</title>
    <link href="https://thisweek.htmx.org/issue/4/"/>
    <updated>2021-11-07T00:00:00Z</updated>
    <id>https://thisweek.htmx.org/issue/4/</id>
    <content type="html">&lt;h2&gt;Commspace became the first corporate sponsor of htmx&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;extremely thankful to announce the first corporate sponsor of htmx &amp;amp; hyperscript:&lt;/p&gt;
&lt;p&gt;@commspaceapp&lt;/p&gt;
&lt;p&gt;thank you to @jvosloo and the whole commspace team!&lt;/p&gt;
&lt;footer&gt;
&lt;p&gt;— &lt;a href=&quot;https://twitter.com/htmx_org&quot;&gt;@htmx_org&lt;/a&gt;&lt;/p&gt;
&lt;/footer&gt;
&lt;/blockquote&gt;
&lt;p&gt;💙 The founder of Commspace is Johan Vosloo, who is also a supporter of the Week.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.commspace.co.za/&quot;&gt;https://www.commspace.co.za&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/sponsors/bigskysoftware&quot;&gt;https://github.com/sponsors/bigskysoftware&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://thisweek.htmx.org/support&quot;&gt;https://thisweek.htmx.org/support&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Michael Anckaert used htmx for a CI/CD service&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;I picked server side rendered HTML as the main technology for the user
interface. Thanks to HTMX I was able to add some nice interactivity and UI /
UX improvements without having to resort to a large scale framework such as
Vue or React. Using &lt;strong&gt;HTMX&lt;/strong&gt; makes me very productive on the
frontend, which as a more backend leaning developer is a big bonus. Read more
about HTMX and
&lt;a href=&quot;https://sinax.be/blog/software-development/html-over-the-wire.html&quot;&gt;HTML over the wire&lt;/a&gt;
concepts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://sinax.be/blog/general/pipeliner-a-cicd-pipeline-runner.html&quot;&gt;https://sinax.be/blog/general/pipeliner-a-cicd-pipeline-runner.html&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;An htmx meetup in Chemnitz, Germany is coming up&lt;/h2&gt;
&lt;p&gt;25 Nov, 19:00–21-00, Q-HUB GmbH | Innovation &amp;amp; Startup Space Chemnitz. Thomas
Güttler will be speaking!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.meetup.com/de-DE/Web-Developer-Chemnitz/events/281827325/&quot;&gt;https://www.meetup.com/de-DE/Web-Developer-Chemnitz/events/281827325/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Daniel shared an (unreleased) htmx library for F#&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; This is not quite ready for release, but all that I have left
is packaging and automation for its first (pre)release. https://github.com/bit-badger/Giraffe.Htmx &lt;br /&gt;
&lt;br /&gt;
It’s the shared library result of my experiment, already fielded, in
converting a Vue application to an “htmx SPA”. The README describes it and
has examples. It brings htmx awareness to Giraffe (the F# web server that
sits atop ASP.NET Core) and its view engine (which produces HTML via
strongly-typed functions). &lt;br /&gt;
&lt;br /&gt;
Once I get this (pre)release done, I’ll be ready to start on the (promised,
and intro post already drafted) write-up of how it went. &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👑&lt;/span&gt; 2&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; vue to htmx experience!  Very much looking forward to hearing how it went!
&lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👍&lt;/span&gt; 3&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/905233356617314314&quot;&gt;November 3, 2021, 2:14 AM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;So am I, Carson! My sources tell me that the library will be released soon™.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/bit-badger/Giraffe.Htmx&quot;&gt;https://github.com/bit-badger/Giraffe.Htmx&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;@aarroyoca used htmx with Prolog&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;First public demo of Teruel + Scryer Prolog + htmx: The Dice Webapp&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/aarroyoc/teruel/tree/main/examples/dice&quot;&gt;https://github.com/aarroyoc/teruel/tree/main/examples/dice&lt;/a&gt;&lt;/p&gt;
&lt;footer&gt;
&lt;p&gt;— &lt;a href=&quot;https://twitter.com/aarroyoca&quot;&gt;@aarroyoca&lt;/a&gt;&lt;/p&gt;
&lt;/footer&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/aarroyoca/status/1456374701572468740&quot;&gt;https://twitter.com/aarroyoca/status/1456374701572468740&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;How to submit data from a form in _hyperscript&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; should be a matter of&lt;/p&gt;
&lt;figure&gt;
&lt;pre class=&quot;language-hyperscript&quot;&gt;&lt;code class=&quot;language-hyperscript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;make&lt;/span&gt; a&lt;/span&gt; FormData &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token id-ref selector&quot;&gt;#form&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;fetch&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token url&quot;&gt;/url&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; method&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;in the upcoming release it will become&lt;/p&gt;
&lt;figure&gt;
&lt;pre class=&quot;language-hyperscript&quot;&gt;&lt;code class=&quot;language-hyperscript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;make&lt;/span&gt; a&lt;/span&gt; FormData &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token id-ref selector&quot;&gt;#form&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;fetch&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token url&quot;&gt;/url&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;with&lt;/span&gt; method&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;result&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/796428329531605032/905146642435559544&quot;&gt;November 2, 2021, 5:29 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href=&quot;https://hyperscript.org/commands/make&quot;&gt;https://hyperscript.org/commands/make&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://hyperscript.org/commands/fetch&quot;&gt;https://hyperscript.org/commands/fetch&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;_hyperscript vs Alpine.js&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; &lt;span class=&quot;replyto&quot;&gt;↪ Re. &lt;b&gt;Rashad&lt;/b&gt; &lt;span&gt;For those that have used hyperscript and Alpine.js
with TailwindCSS…&lt;/span&gt;&lt;/span&gt; Microinteractions are one of the main use cases for _.
Alpine fixes the “where’s that event listener” problem, but does nothing
about the DOM APIs. &lt;br /&gt;
I think alpine is better for larger components like data tables, because of
x-for and reactivity. For microinteractions, you will need to manipulate the
DOM directly a lot more, which is a dream in hyperscript.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/864934037381971988/906243399634526218&quot;&gt;November 5, 2021, 6:07 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;em&gt;Editor’s note: Let me make it clear that this is not a dig on Alpine in any
way. I gave my personal opinion to help people decide what to use. We’re
volunteer-run free software projects with a lot of shared goals. 💙&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;a Hotwire-like library based on htmx?&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;gone&lt;/b&gt; Is there any desire to make a hotwire like lib that uses htmx?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;gone&lt;/b&gt; Hotmx &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👍&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;KevinS&lt;/b&gt; Just on the name alone it should be built, doesn’t matter if it meets a
demand the name is too good 😄&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; hotmax &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;🔥&lt;/span&gt; 3&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Atem&lt;/b&gt; hxwire&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/864934037381971988/906186310342029343&quot;&gt;November 5, 2021, 2:20 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Would you use that? Let us know.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Issue № 3: Hypermedia as the Engine of Coffee Brewing</title>
    <link href="https://thisweek.htmx.org/issue/3/"/>
    <updated>2021-10-31T00:00:00Z</updated>
    <id>https://thisweek.htmx.org/issue/3/</id>
    <content type="html">&lt;h2&gt;Rashad released lucid-htmx for Haskell developers&lt;/h2&gt;
&lt;p&gt;We talked about Rashad’s htmx/Haskell plans in &lt;a href=&quot;https://thisweek.htmx.org/issue/2&quot;&gt;our last issue&lt;/a&gt;. The package
is now out:&lt;/p&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Rashad&lt;/b&gt; &lt;a href=&quot;https://www.loom.com/share/dffdf15baa3045ea9eea562bd88cc1b3?sharedAppSource=personal_library&quot;&gt;https://www.loom.com/share/dffdf15baa3045ea9eea562bd88cc1b3?sharedAppSource=personal_library&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;HIGHLY RECOMMEND WATCHING THE LOOM AT 1.5 ~ 2 times speed. I talk slow. Skip
to the 58 minute mark to see lucid-htmx immediately. Watch the rest if you’re
interested in Haskell web dev.&lt;/p&gt;
&lt;p&gt;An overview of lucid-htmx. I’ve recently published the package to hackage,
the Haskell package manager. Check it out here: &lt;a href=&quot;https://hackage.haskell.org/package/lucid-htmx&quot;&gt;https://hackage.haskell.org/package/lucid-htmx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Documentation here: &lt;a href=&quot;https://hackage.haskell.org/package/lucid-htmx-0.1.0.0/docs/Lucid-HTMX.html&quot;&gt;https://hackage.haskell.org/package/lucid-htmx-0.1.0.0/docs/Lucid-HTMX.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I recommend watching the loom video at 1.5 ~ 2 times speed. I talk slow and
the video is long but watching it at a higher speed, I think it’s a good
pace. If you want to skip straight to the htmx stuff, skip to the 58 minute
mark. Otherwise, I take a dive into web dev in Haskell and answer some
interesting questions like how to query a database in Haskell, how to
implement a server in Haskell, and what are some annoying things about
Haskell development.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Rashad&lt;/b&gt; Code for the example in the loom video can be found here: &lt;a href=&quot;https://github.com/rashadg1030/haskell-htmx-examples/blob/main/app/Main.hs&quot;&gt;https://github.com/rashadg1030/haskell-htmx-examples/blob/main/app/Main.hs&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/903518722034118696&quot;&gt;October 29, 2021, 5:40 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href=&quot;https://hackage.haskell.org/package/lucid-htmx&quot;&gt;https://hackage.haskell.org/package/lucid-htmx&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;We discussed debugging/inspection tools for htmx&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;gone&lt;/b&gt; Is there a way to get the code that handles the debug info in the bottom
of the documentation examples?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;gone&lt;/b&gt; the count of server requests + outgoing data and response&lt;/p&gt;
&lt;p&gt;&lt;b&gt;gone&lt;/b&gt; it would be very useful to drop into an app as a debug tool&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; that’s built into the mock server that HTMX uses, however a
similar thing could be built for real server requests&lt;/p&gt;
&lt;p&gt;&lt;i class=&quot;stage-direction&quot;&gt;October 29, 2021, 10:41 AM UTC&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;BenCroker&lt;/b&gt; Since you’re here @Deniz Akşimşek, I have an idea to share: a htmx
devtools browser extension. &lt;br /&gt;
This could log requests in its own devtools window, including things such as
the request params and headers, response time and payload, as well as a
visual overlay of the swapped mark-up in the browser window. Kind of similar
to the request viewer on the htmx examples pages, but as a browser
extension.&lt;br /&gt;
VueJS has a very powerful devtool browser extension, for example, see the quick demo at https://youtu.be/odKVakhMk1o?t=73&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; &lt;a href=&quot;https://discord.com/channels/725789699527933952/725789747212976259/902928361951727667&quot;&gt;https://discord.com/channels/725789699527933952/725789747212976259/902928361951727667&lt;/a&gt;
It was discussed before, and I think it’s a wonderful idea. I bet we could
implement a time-travel debugger like Redux, for the framework war coolness
points…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; I’ll stop talking about this before it gets assigned to me &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👆&lt;/span&gt; 1&lt;/span&gt; &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;😆&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/902928361951727667&quot;&gt;October 27, 2021, 2:34 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;htmx made it to the Twitter “Explore” page&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; [Image: Screenshot of Twitter on mobile, showing a tweet from
@htmx_org]&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; HTMX on the explore page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; lol wut&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/902932628435505182&quot;&gt;October 27, 2021, 2:51 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/htmx_org/status/1453349381621653511&quot;&gt;https://twitter.com/htmx_org/status/1453349381621653511&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Daniel used HTML as an API for a side project&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; For a (paid) side project, I got asked to expose some
information “however I want” - they’re going to integrate it into a dashboard
app. They’re getting 2 endpoints - one with an HTML table of the data
(fragment), and one that wraps the table in a document with minimalist
styling. They can style it, or they can use my black/white/gray striping with
hover highlighting. So easy! &lt;br /&gt;
&lt;em&gt;Now, I wait for the consumers to say “Huh - how do we swap this into our placeholder?” LOL&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; thing that should exist: a convenient way to scrape html tables&lt;/p&gt;
&lt;p&gt;&lt;b&gt;benpate&lt;/b&gt; &lt;span class=&quot;replyto&quot;&gt;↪ Re. &lt;b&gt;Deniz Akşimşek&lt;/b&gt; &lt;span&gt;thing that should exist…&lt;/span&gt;&lt;/span&gt; Yes, very cool idea.
Are you thinking you’d want to scrape the tables into a Javascript array?
That should be pretty easy to do in JS or Hyperscript.  Would this be used in
htmx, or somewhere else?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; in programmatic clients of an html api&lt;/p&gt;
&lt;p&gt;&lt;b&gt;benpate&lt;/b&gt; Yup.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt;  preferably with support for scope=rowgroup&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; and rowspan&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; colgroup might make sense too, thinking about it&lt;/p&gt;
&lt;p&gt;&lt;i class=&quot;stage-direction&quot;&gt;October 29, 2021, 1:27 PM UTC&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; &lt;span class=&quot;replyto&quot;&gt;↪ Re. &lt;b&gt;Deniz Akşimşek&lt;/b&gt; &lt;span&gt;thing that should exist…&lt;/span&gt;&lt;/span&gt; It does in F#
- &lt;a href=&quot;https://fsprojects.github.io/FSharp.Data/library/HtmlProvider.html&quot;&gt;https://fsprojects.github.io/FSharp.Data/library/HtmlProvider.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/903355901237420062&quot;&gt;October 28, 2021, 6:53 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;&lt;del&gt;Daniel&lt;/del&gt; pedantic bloggers asked about how to write htmx &amp;amp; _hyperscript&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; The official name of this project/technology - is it “HTMX”
or “htmx”? (Pedantic bloggers want to know!)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; htmx, lowercase &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👍&lt;/span&gt; 2&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; our non-existent styleguide at This Week in HTMX mandates
lowercase (despite the name of the site itself) &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;😆&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; Cool - I… uh, I mean… pedantic bloggers wanted to make
sure they got it right. 🙂&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; also, hyperscript is _hyperscript, and the underscore is silent &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;😆&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; under no circumstances should hyperscript be spelled hyperscript &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;😆&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; _hyperscript, worsening your markdown experience since [however
long it’s existed]&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; _worsening&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Deniz Akşimşek&lt;/b&gt; ah yes, my favorite programming language \_hyperscript&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; 🤣&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/902984478740328488&quot;&gt;October 27, 2021, 6:17 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Richard used prism-hyperscript&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;RichardG&lt;/b&gt; @1cg that prism link is gold. thank you again 🙂 helped me wrangle:&lt;/p&gt;
&lt;figure&gt;
&lt;pre class=&quot;language-hyperscript&quot;&gt;&lt;code class=&quot;language-hyperscript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;on&lt;/span&gt;&lt;/span&gt; load &lt;br /&gt;  &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;set&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;global&lt;/span&gt; submitReady &lt;span class=&quot;token keyword&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;repeat until&lt;/span&gt;&lt;/span&gt; submitReady &lt;span class=&quot;token keyword&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;wait&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1s&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;then&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;if&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token id-ref selector&quot;&gt;#contactName&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;value &lt;span class=&quot;token operator&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;&#39;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;token id-ref selector&quot;&gt;#contactEmail&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;value &lt;span class=&quot;token operator&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;remove&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token class-ref selector&quot;&gt; .bg-grey-700&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token id-ref selector&quot;&gt;#submitButton&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;add&lt;/span&gt;&lt;/span&gt;   &lt;span class=&quot;token class-ref selector&quot;&gt; .bg-red-800&lt;/span&gt;  &lt;span class=&quot;token keyword&quot;&gt;to&lt;/span&gt;   &lt;span class=&quot;token id-ref selector&quot;&gt;#submitButton&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;set&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;my&lt;/span&gt; disabled &lt;span class=&quot;token keyword&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;br /&gt;      &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;set&lt;/span&gt;&lt;/span&gt; submitReady &lt;span class=&quot;token keyword&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/796428329531605032/903682626970353775&quot;&gt;October 29, 2021, 4:32 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;If you go to &lt;a href=&quot;https://prism-hyperscript.dz4k.com/&quot;&gt;https://prism-hyperscript.dz4k.com&lt;/a&gt;, you will find a textarea
where you can type any _hyperscript code and it will be syntax highlighted.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://prism-hyperscript.dz4k.com/&quot;&gt;https://prism-hyperscript.dz4k.com&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;You can now support This Week in HTMX on Buy Me a Coffee&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Fubarrr&lt;/b&gt; Hey all you htmx fans, just in case you haven’t yet seen the “This
week in HTMX” page, check it out! https://thisweek.htmx.org/&lt;/p&gt;
&lt;p&gt;It’s curated by the  inimitable @Deniz Akşimşek  and it’s your one-stop
weekly news round-up of the htmx community highlights 💪 If you find it
valuable or just want to show your appreciation for Deniz’s effort for
putting this together, feel free buy him a coffee:
https://thisweek.htmx.org/support &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👆&lt;/span&gt; 1&lt;/span&gt; &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👍&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/903325046070730792&quot;&gt;October 28, 2021, 4:51 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;💙💙💙&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.buymeacoffee.com/dz4k&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://cdn.buymeacoffee.com/buttons/v2/lato-blue.png&quot; alt=&quot;Buy Me A Coffee&quot; style=&quot;height: 60px !important;width: 217px !important;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Issue № 2: Three out of Thirty Nine</title>
    <link href="https://thisweek.htmx.org/issue/2/"/>
    <updated>2021-10-24T00:00:00Z</updated>
    <id>https://thisweek.htmx.org/issue/2/</id>
    <content type="html">&lt;h2&gt;3 htmx talks were given at DjangoCon US 2021!&lt;/h2&gt;
&lt;p&gt;The conference over this weekend featured these talks from members of the htmx
community:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=t98bKdeUHsU&quot;&gt;&lt;cite&gt;Server-Side is Dead! Long Live Server-Side (+ HTMX)&lt;/cite&gt;&lt;/a&gt;
by &lt;a href=&quot;https://jacklinke.com/&quot;&gt;Jack Linke&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By the end of this talk, audience members will have a better understanding
of what HTMX is, will understand concrete examples of how it can be
applied to their django projects, and will have a list of resources for
further learning and discussion.&lt;/p&gt;
&lt;p&gt;Outline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The current state: […]&lt;/li&gt;
&lt;li&gt;One potential approach: […]&lt;/li&gt;
&lt;li&gt;Feature and approach walk-throughs For a variety of common web application features […]&lt;/li&gt;
&lt;li&gt;Tips, best practices, and pitfalls: […]&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=z0yPTv15Fjk&quot;&gt;&lt;cite&gt;HTMX: Frontend Revolution&lt;/cite&gt;&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/guettli&quot;&gt;Thomas Güttler&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I developed my first CGI script in 1998. Since that day I have seen a lot
of hypes coming and going.&lt;/p&gt;
&lt;p&gt;The talk will consist of three parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My humorous odyssey of trying to find a great frontend framework&lt;/li&gt;
&lt;li&gt;Retrospective: What do I want from the frontend?&lt;/li&gt;
&lt;li&gt;I finally found: HTMX: HTML Fragments over the wire&lt;/li&gt;
&lt;li&gt;How to use HTMX with Django.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Besides simplicity, good Web Vitals performance (SEO) is a benefit of
this method. The talk will express my personal opinion, feelings
and fun. It won’t dive into technical details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=L_UWY-zHlOA&quot;&gt;&lt;cite&gt;REST, HATEOAS &amp;amp; Django - It’s OK to not use JSON… or Javascript&lt;/cite&gt;&lt;/a&gt;
by &lt;a href=&quot;https://twitter.com/htmx_org&quot;&gt;Carson Gross&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In this talk we will revisit the basics of REST (REpresentational State
Transfer), a term coined by Roy Fielding to describe the web network
architecture, in contrast with older client-server network architectures.
In particular we will focus in on the “Uniform Interface” constraint and
get to the bottom of what that means, discussing each of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resource identification in requests&lt;/li&gt;
&lt;li&gt;Resource manipulation through representations&lt;/li&gt;
&lt;li&gt;Self-descriptive messages&lt;/li&gt;
&lt;li&gt;Hypermedia as the engine of application state (HATEOAS)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;with a particular focus on the last two.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; […] if you told me a year ago that htmx would be involved in 3 of 39
talks at djangocon 2021 I would have laughed at your crazy talk: I don’t
program in python and know next to nothing about django […]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/901110030957428796&quot;&gt;October 22, 2021, 2:09 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Recordings are available at the &lt;a href=&quot;https://www.youtube.com/djangoconus&quot;&gt;DjangoCon US YouTube channel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;💙 to DjangoCon organizers &amp;amp; the whole Django community!&lt;/p&gt;
&lt;h2&gt;Rashad started a lovely conversation about Haskell &amp;amp; htmx&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Rashad&lt;/b&gt; […] I’m a web developer who uses Haskell and I wanted to start
developing an HTML driven development ecosystem for the Haskel
community. […]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/901492536168812544&quot;&gt;October 23, 2021, 3:29 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The conversation is quite long, so I’ve put it inside this convenient &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;
element:&lt;/p&gt;
&lt;details&gt;&lt;summary&gt;monadposting on main&lt;/summary&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Rashad&lt;/b&gt; Okay very understandable. Low coupling is always nice. I ask the
question because I’m a web developer who uses Haskell and I wanted to start
developing an HTML driven development ecosystem for the Haskell community. I
believe no programming community dislikes JavaScript more than the Haskell
community, so Haskellers would love to use HTMX since it would allow them to
stay in “Haskell world” as much as possible. We don’t have anything like
Livewire, LiveView, etc. so I was wondering if would even worth it to
implement if HTMX exists. I myself have been using it in some small Haskell
projects, one of them being a project actually used by a trucking company, and
it has been an amazing experience. I’m using a library, which I plan on
releasing soon along with a blog post for using HTMX+Haskell, that allows you
to use HTMX attributes in a Haskell DSL called lucid.
https://chrisdone.com/posts/lucid2/ has examples of what lucid looks like if
you’re interested. Interestingly, HTML is a monad!!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Rashad&lt;/b&gt; On top of that library, I’m also working on one that defines each HTMX
attribute as a plain ol’ algebraic data type and essentially allows me to
check at compile time that the HTMX attribute values I’m using are
syntactically correct. This is cool to me since we value type safety. Anyways,
I think HTMX+Haskell is an awesome combo and I plan on writing a lot soon
about the combination and would love to share here and with the rest of the
Haskell community because a lot of my brothers and sisters in Haskell land
still aren’t really familiar with it.&lt;/p&gt;
&lt;p&gt;&lt;i class=&quot;stage-direction&quot;&gt;…&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; &lt;span class=&quot;replyto&quot;&gt;↪ Re. &lt;b&gt;Rashad&lt;/b&gt; &lt;span&gt;Okay very understandable…&lt;/span&gt;&lt;/span&gt; absolutely awesome&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; I often think of hypermedia as a functional transform of the DOM&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; if htmx makes programming for the web in Haskell more enjoyable, that’d be
alright 🙂&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; Haskell and lisp: two programming languages I will never use but would love
to help out&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/901492536168812544&quot;&gt;October 23, 2021, 3:29 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/details&gt;
&lt;h2&gt;tinycode2 talked about using htmx with microfrontends&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;tinycode2&lt;/b&gt; Is there a way to bind URL to changes to page state via htmx?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;alejandros&lt;/b&gt; You can update the URL from the server side using the HX-Push
header &lt;a href=&quot;https://htmx.org/reference/#response_headers&quot;&gt;https://htmx.org/reference/#response_headers&lt;/a&gt; and you can also do it
on the client side via htmx-push-url &lt;a href=&quot;https://htmx.org/attributes/hx-push-url/&quot;&gt;https://htmx.org/attributes/hx-push-url/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;tinycode2&lt;/b&gt; Ok but what if I have several areas which update different parts of
the URL?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;tinycode2&lt;/b&gt; E.g. query string arguments&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; ideally they would each have a hx-push-url that updated the local URL
appropriately or relied on the server to return the correct URL in an HX-Push
header&lt;/p&gt;
&lt;p&gt;&lt;b&gt;alejandros&lt;/b&gt; For complex cases, I use the header. htmx always sends the current
URL in the request headers so you can take that, change it, then send it
back. &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;🔥&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;tinycode2&lt;/b&gt; In my case I’m using micro-frontends so responsibility for query
string components (and html rendering) isn’t centralised in a single backend
service. I guess I’ll need to build some sort of aggregating proxy server
which does this :/&lt;/p&gt;
&lt;p&gt;&lt;b&gt;tinycode2&lt;/b&gt;  Actually the model you suggested should also work for
microfrrontends @alejandros&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/900375210132373544&quot;&gt;October 20, 2021, 1:29 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Daniel made Bootstrap modals work with htmx&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; FWIW - this is “doing it wrong”. I put an hx-get on the
button that launches the modal, targeting the body of the modal; then, I
return the HTML fragment from the server. All the htmx stuff works like it
should again. 🙂&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/900735911430598726&quot;&gt;October 21, 2020, 1:22 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;And later:&lt;/p&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Daniel - East TN&lt;/b&gt; I’ll definitely have to write up what I’ve learned doing this.
[…]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/901665739243659304&quot;&gt;October 24, 2021, 2:57 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;We’re excited for it, Daniel! No pressure though…&lt;/p&gt;
&lt;h2&gt;An inconsistency in _hyperscript syntax was fixed&lt;/h2&gt;
&lt;p&gt;Currently, the &lt;code&gt;send&lt;/code&gt; command can dispatch events on other elements, but
&lt;code&gt;trigger&lt;/code&gt; cannot:&lt;/p&gt;
&lt;pre class=&quot;language-hyperscript&quot;&gt;&lt;code class=&quot;language-hyperscript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;send&lt;/span&gt;&lt;/span&gt; evt            &lt;span class=&quot;token comment&quot;&gt;-- works, dispatches on &quot;me&quot;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;send&lt;/span&gt;&lt;/span&gt; evt &lt;span class=&quot;token keyword&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token id-ref selector&quot;&gt;#elt&lt;/span&gt;    &lt;span class=&quot;token comment&quot;&gt;-- works, dispatches on #elt&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;trigger&lt;/span&gt;&lt;/span&gt; evt         &lt;span class=&quot;token comment&quot;&gt;-- works, dispatches on &quot;me&quot;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;trigger&lt;/span&gt;&lt;/span&gt; evt &lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;on&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token id-ref selector&quot;&gt;#elt&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;-- syntax error!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will no longer be the case in the next release of _hyperscript.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/bigskysoftware/_hyperscript/commit/ff28e64&quot;&gt;https://github.com/bigskysoftware/_hyperscript/commit/ff28e64&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;htmx &amp;amp; _hyperscript were mentioned on &lt;a href=&quot;https://devmode.fm/&quot;&gt;devMode.fm&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;devMode already has &lt;a href=&quot;https://devmode.fm/episodes/dynamic-html-with-htmx&quot;&gt;an episode on htmx&lt;/a&gt; featuring Carson, but the latest
episode mentions it as well, near the end.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Andrew Welch: You’ve heard of HTMX?&lt;/p&gt;
&lt;p&gt;Chris Ferdinandi: Yes, but I can’t for the life of me-&lt;/p&gt;
&lt;p&gt;AW: So, HTMX —real quick, like thirty seconds— HTMX —this is going to be
not on the show anyway— HTMX is basically- Carson, the guy who made it, kind
of considers HTML, the standards body, stopped, and they really needed to do
more to allow for some dynamicism [sic] and he is kind of on your page in
terms of that he thinks these libraries and things are a bit crazy. So, he
wrote an extension to HTML that kind of fills in the missing gaps and allows
for that interactivity and stuff. It’s a really interesting library and we did
a show on it if you ever want to listen about it. But then, he also – this is
the question I want to ask you about, and you can just think about it – he’s
also working on a project &lt;em&gt;_hyperscript&lt;/em&gt; which is like HyperTalk from the old
HyperCard days. So, it’s an interpreted language that you put in your browser
that JavaScript then interprets and decodes and runs. And I think it’s just
absolutely crazy &lt;i&gt;[laughter]&lt;/i&gt; but anyway,&lt;/p&gt;
&lt;p&gt;CF: That’s weird. I’m gonna have to check that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;💙 to the devMode.fm podcast! (and apologies for my mediocre transcription
skills)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://devmode.fm/episodes/what-even-is-javascript&quot;&gt;https://devmode.fm/episodes/what-even-is-javascript&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Richard appreciated syntax highlighting for _hyperscript&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;RichardG&lt;/b&gt; Yes indeed, is fun 🙂 and the syntax highlighting in VSCode helps a
ton&lt;/p&gt;
&lt;p&gt;&lt;b&gt;RichardG&lt;/b&gt; Phpstorm doesn’t seem to have it, that I can find?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/796428329531605032/899732227053719573&quot;&gt;October 18, 2021, 6:54 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;img src=&quot;https://thisweek.htmx.org/assets/2021-10-24/vscode-hyperscript.png&quot; alt=&quot;It highlights code inside of HTML, even marks event names!
&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The _hyperscript plugin for Visual Studio Code adds syntax highlighting, even
for code embedded in HTML! The newest version supports _hyperscript in Markdown
code blocks. Try it out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=dz4k.vscode-hyperscript-org&quot;&gt;https://marketplace.visualstudio.com/items?itemName=dz4k.vscode-hyperscript-org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://open-vsx.org/extension/dz4k/vscode-hyperscript-org&quot;&gt;https://open-vsx.org/extension/dz4k/vscode-hyperscript-org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’ve also just started writing a tree-sitter grammar, for those who are into
&lt;em&gt;that&lt;/em&gt; sort of thing: &lt;a href=&quot;https://github.com/dz4k/tree-sitter-_hyperscript&quot;&gt;https://github.com/dz4k/tree-sitter-_hyperscript&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Issue № 1: HTMX at JavaScript Day</title>
    <link href="https://thisweek.htmx.org/issue/1/"/>
    <updated>2021-10-17T00:00:00Z</updated>
    <id>https://thisweek.htmx.org/issue/1/</id>
    <content type="html">&lt;h2&gt;Carson gave a talk on htmx at JetBrains JavaScript Day 2021&lt;/h2&gt;
&lt;p&gt;In his talk &lt;cite&gt;htmx: Writing JavaScript to Avoid Writing JavaScript&lt;/cite&gt;,
Carson delivered a rationale and demonstration of htmx, and obligatory
discussion of REST/HATEOAS as usual… to an audience for whom it was quite
out of the ordinary. Was he provocative enough to get some JavaScripters
curious? We’ll have to see.&lt;/p&gt;
&lt;p&gt;💙 to the conference organizers and attendees!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/R2Q0L9PDHtc?t=15881&quot;&gt;https://youtu.be/R2Q0L9PDHtc?t=15881&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Ben Pate committed to refactoring SSE &amp;amp; WebSocket support into plugins&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; pull web sockets and server sent events out into extensions &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👍&lt;/span&gt; 5&lt;/span&gt;&lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;👎&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;benpate&lt;/b&gt; Just say “go” and I’ll volunteer to do it&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; go&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; 1.7 we will pull them out&lt;/p&gt;
&lt;p&gt;&lt;b&gt;benpate&lt;/b&gt; F. What have I done?? &lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;🇫&lt;/span&gt; 1&lt;/span&gt;&lt;span class=&quot;reaction&quot;&gt;&lt;span class=&quot;emoji&quot;&gt;😂&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/897947897377742888&quot;&gt;October 13, 2021, 8:44 AM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;Carson explains how to make third-party components work with htmx&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; Ah, OK.  So, here’s the deal&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; and I need to document this, sorry&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/897967236420096000&quot;&gt;October 14, 2021, 10:01 AM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;When using a JavaScript library that makes a lot of modifications to the DOM,
the modified DOM being saved into history is usually undesirable and can lead
to bugs. Carson explains how to avoid it.&lt;/p&gt;
&lt;p&gt;In summary, initialize your libraries in &lt;code&gt;htmx.onLoad()&lt;/code&gt;, and &lt;em&gt;uninitialize&lt;/em&gt;
them on the &lt;code&gt;htmx:beforeHistorySave&lt;/code&gt; event.&lt;/p&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Fubarrr&lt;/b&gt; […] If you want your back button to behave as you expect it to…
this pattern of “undoing” all the DOM manipulation your JS widgets did
initially on page/fragment load, is critical. […]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/897978077232107560&quot;&gt;January 14, 2021, 10:44 AM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/897967497335148605&quot;&gt;https://discordapp.com/channels/725789699527933952/725789747212976259/897967497335148605&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Thomas Güttler reminded us about the htmx tag on StackOverflow&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;guettli&lt;/b&gt; I think up to now I am the only one who tries to support new htmx
users which  ask a question on Stackoverflow. It would be very nice, if some
more users could subscribe to the tag htmx, so that you receive an email if a
new htmx question got asked: &lt;a href=&quot;https://stackexchange.com/filters/409974/htmx&quot;&gt;https://stackexchange.com/filters/409974/htmx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Of course I will up-vote your answers 🙂&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/897569632708345927&quot;&gt;October 12, 2021, 7:41 AM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;You heard him, folks.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stackexchange.com/filters/409974/htmx&quot;&gt;https://stackexchange.com/filters/409974/htmx&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;_hyperscript adopted the microbundle build system&lt;/h2&gt;
&lt;p&gt;Don’t worry, _hyperscript will always be available as a single file that you
can load from a CDN. However, we can now make ES module builds available as
well!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/developit/microbundle&quot;&gt;https://github.com/developit/microbundle&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;URL literals for _hyperscript were considered&lt;/h2&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;alleho&lt;/b&gt; how can you fetch a url that has been built and placed inside a variable?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/796428329531605032/897491928990515250&quot;&gt;October 12, 2021, 2:32 PM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This question started a whole discussion that ended with &lt;em&gt;URL literals&lt;/em&gt; as a
potential new feature. Here’s a peek at how that might look:&lt;/p&gt;
&lt;pre class=&quot;language-hyperscript&quot;&gt;&lt;code class=&quot;language-hyperscript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;set&lt;/span&gt;&lt;/span&gt; url &lt;span class=&quot;token keyword&quot;&gt;to&lt;/span&gt; https&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;cors&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;example&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;com&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;api &lt;br /&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;append&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;user&lt;span class=&quot;token punctuation&quot;&gt;?&lt;/span&gt;id&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;the&lt;/span&gt; userId&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;to&lt;/span&gt; url&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;pathname&lt;br /&gt;  &lt;br /&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token hs-start bold&quot;&gt;fetch&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token url&quot;&gt;url&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;htmx was brought up in a Hacker News thread about Laravel Livewire&lt;/h2&gt;
&lt;p&gt;Let me check again… Nope, that’s not LimeWire.&lt;/p&gt;
&lt;figure class=&quot;chat-log&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; htmx swoopin’ on livewire on orange site:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1cg&lt;/b&gt; [Screenshot: “How Laravel Livewire works”, top comment is about htmx]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;
    💬 &lt;a href=&quot;https://discordapp.com/channels/725789699527933952/725789747212976259/897949295674818560&quot;&gt;October 13, 2021, 8:49 AM UTC&lt;/a&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Hacker News is far from a good barometer for the general community of
developers (someone tell Paul Graham!) but the attention feels too good to
ignore it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=28850757&quot;&gt;https://news.ycombinator.com/item?id=28850757&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;💙 to Livewire and the Laravel community!&lt;/p&gt;
</content>
  </entry>
</feed>
