index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Parser } from './parser/index.js';
  2. export { defaultTreeAdapter } from './tree-adapters/default.js';
  3. export { /** @internal */ Parser } from './parser/index.js';
  4. export { serialize, serializeOuter } from './serializer/index.js';
  5. export { ERR as ErrorCodes } from './common/error-codes.js';
  6. /** @internal */
  7. export * as foreignContent from './common/foreign-content.js';
  8. export * as html from './common/html.js';
  9. export * as Token from './common/token.js';
  10. /** @internal */
  11. export { Tokenizer, TokenizerMode } from './tokenizer/index.js';
  12. // Shorthands
  13. /**
  14. * Parses an HTML string.
  15. *
  16. * @param html Input HTML string.
  17. * @param options Parsing options.
  18. * @returns Document
  19. *
  20. * @example
  21. *
  22. * ```js
  23. * const parse5 = require('parse5');
  24. *
  25. * const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');
  26. *
  27. * console.log(document.childNodes[1].tagName); //> 'html'
  28. *```
  29. */
  30. export function parse(html, options) {
  31. return Parser.parse(html, options);
  32. }
  33. export function parseFragment(fragmentContext, html, options) {
  34. if (typeof fragmentContext === 'string') {
  35. options = html;
  36. html = fragmentContext;
  37. fragmentContext = null;
  38. }
  39. const parser = Parser.getFragmentParser(fragmentContext, options);
  40. parser.tokenizer.write(html, true);
  41. return parser.getFragment();
  42. }