ChemPal Documentation - v0.0.13-beta.5
    Preparing search index...

    Function formatFromHtml

    • Formats HTML into a readable plain text string, handling paragraphs, lists, and links.

      Parameters

      • html: string

        The HTML string to format

      Returns string

      The formatted plain text string

      formatFromHtml("<ul><li>Item 1</li><li>Item 2</li></ul>") // Returns "- Item 1\n- Item 2"
      
      export function formatFromHtml(html: string): string {
      const tempDiv = document.createElement("DIV");
      tempDiv.innerHTML = html;

      if (tempDiv.children.length === 0) {
      return tempDiv.textContent || "";
      }

      const result = Array.from(tempDiv.children).flatMap((child) => {
      switch (child.nodeName) {
      // Paragraphs just get their own lines.
      case "P":
      return `${child.textContent}\n`;
      case "UL":
      return Array.from(child.children).map((e) => `- ${e.textContent}`);
      case "OL":
      return Array.from(child.children).map((e, idx) => `${idx + 1}) ${e.textContent}`);
      case "A":
      return `${child.textContent} (${child.getAttribute("href")})`;
      default:
      return child.textContent;
      }
      });

      return result.filter((x) => x !== undefined).join("\n");
      }