Live data from Hacker News

Show HN: Htpy – generate HTML from Python without templates

htpy.dev

1–3 of 3 posts

Show HN: Htpy – generate HTML from Python without templates

#1
I built a library that to generate HTML from Python. We have been using this library with Django the last couple of months instead of classic templates and find it to be productive. It is easy to debug, works great with static type checkers and it is easy to build reusable components/partials. Give it a try!

Show HN: Htpy – generate HTML from Python without templates
htpy.dev

Re: Show HN: Htpy – generate HTML from Python without templates

#2
Is that really easier than using templates?

> Wrapping Bootstrap Modal could be achieved with a function like this:

  def bootstrap_modal(*, title: str, body: Node = None, footer: Node = None) -> 
  Element:
      return div(".modal", tabindex="-1", role="dialog")[
          div(".modal-dialog", role="document")[
              div(".modal-content")[
                  div(".modal-header")[
                      div(".modal-title")[
                          h5(".modal-title")[title],
                          button(
                              ".close",
                              type="button",
                              data_dismiss="modal",
                              aria_label="Close",
                          )[span(aria_hidden="true")[Markup("×")]],
                      ]
                  ],
                  div(".modal-body")[body],
                  footer and div(".modal-footer")[footer],
              ]
          ]
      ]

Re: Show HN: Htpy – generate HTML from Python without templates

#3

Is that really easier than using templates? > Wrapping Bootstrap Modal could be achieved with a function like this: def bootstrap_modal(*, title: str, body: Node = None, footer: Node = None) -> Element: return div(".modal", tabindex="-1", role="dialog")[ div(".modal-dialog", role="document")[ div(".modal-content")[ div(".modal-header")[ div(".modal-title")[ h5(".modal-title")[title], button( ".close", type="button",…

Writing out the code to generate this may not be easier than using templates, but it is not really harder either. I think it mostly looks a little different.

The real benefit is using this bootstrap modal component within your app, since it is just a regular function call. You can leverage your editor "goto definition" and static type checking within all the functions make up your web sites/apps HTML.