No dependency XML encoder using JSX to describe the XML tree for Deno.
import React, { render } from "./mod.ts";
console.log(render(<asd name={false}>asdf</asd>));
// => `<asd name="false">asdf</asd>`,
import React, { render } from "./mod.ts";
function Component({ name, nr }: { name: string; nr: number }) {
return (
<person>
<name>{name}</name>
<nr>{nr}</nr>
</person>
);
}
console.log(render(<Component name="asdf" nr={123} />)
// => `<person><name>asdf</name><nr>123</nr></person>`,
JSX only allows lowercase generic tag names.
Upper case names are reserved for component functions.
You can use XML namespaces and replaceTag
to circumvent this.
import React, { render } from "./mod.ts";
console.log(
render(
<x:FOO>Hello</x:FOO>,
{
replaceTag: (tagName) => tagName.replace("x:", ""),
},
)
),
// => `<FOO>Hello</FOO>`,