ChemPal Documentation - v1.7.0
    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');
      }