developit / htm

Hyperscript Tagged Markup: JSX alternative using standard tagged templates, with compiler support.
Apache License 2.0
8.64k stars 169 forks source link

Trimming newlines near elements #253

Open kurumpa opened 8 months ago

kurumpa commented 8 months ago

When running the following code:

import htm from 'https://unpkg.com/htm?module'

function h(type, props, ...children) {
  return { type, props, children };
}

const html = htm.bind(h);

console.log( html`<div>
        <b>bold</b>
        regular
    </div>` );

I am getting the following object:

{
  type: 'div',
  props: null,
  children: [{type: 'b' /* , ... */}, 'regular']
}

The string have been auto-formatted but still seems to be a valid HTML code. Now I have implemented my own h() function as I'd like to compose the DOM elements in my way. However, I don't see any obvious way to split bold and regular elements with a space except for inserting &nbsp; (#234). I'd appreciate any comments on this.