fb55/domutils

No Documentation

Closed this issue · 4 comments

It would be great to have a README that enumerated the available APIs, had examples, and described the options.

fb55 commented

Added docs!

Can we get examples for how to use some of these utils?

I'm having trouble getting the following to work:

const handler = new DomHandler(function(err, dom) {
  const elements = findAll((elem) => (elem.type === "tag" && getAttributeValue(elem, 'data-epub-custom')), dom);
  const shortcode = parseDOM('<div>test</div>');
  elements.forEach((element) => replaceElement(element, shortcode));
});

I'm trying to get elements based on a data attribute, then replace each matching element. I'm returning elements, but it's mutating dom in anyway. I'm sure I'm missing how this is suppose to work.

fb55 commented

@brewern Your snippet is currently not passing data to DomHandler. You could use parseDOM to get a DOM tree to manipulate later on (it is using DomHandler under the hood).

Added docs!

Maybe, it would be great to have in the readme a complete example of loading an HTML string and then appending etc. A month ago I decided to use cheerio instead of this package now I realised that it takes 1 second per document when I want to generate 700 html (SSR, I generate HTML on build time) and I would also be interested by knowing the performance differences between this package and cheerio :)
Oh in src there are some .spec files. They are super helpful (espacially the "makedom" in utils)