AI Doc Formatter

Transform messy Google Docs copies into professional Word documents instantly.

Raw Content
{/if}
Formatted Preview
{#if logoBase64 || contractAddress}
{#if logoBase64} Document Logo {/if}
{#if contractAddress}
{contractAddress}
{/if}
{/if} {#if isFormatting}
{:else if formattedElements.length === 0}

Formatted content will appear here

{:else} {#each formattedElements as el} {#if el.type === 'heading1'}

{#each renderRichText(el.content) as part} {#if part.type === 'bold'}{part.content}{:else if part.type === 'italic'}{part.content}{:else}{part.content}{/if} {/each}

{:else if el.type === 'heading2'}

{#each renderRichText(el.content) as part} {#if part.type === 'bold'}{part.content}{:else if part.type === 'italic'}{part.content}{:else}{part.content}{/if} {/each}

{:else if el.type === 'heading3'}

{#each renderRichText(el.content) as part} {#if part.type === 'bold'}{part.content}{:else if part.type === 'italic'}{part.content}{:else}{part.content}{/if} {/each}

{:else if el.type === 'bulletList' || el.type === 'numberedList'} {#each el.content as item}
  • {#each renderRichText(stripPrefix(item)) as part} {#if part.type === 'bold'}{part.content}{:else if part.type === 'italic'}{part.content}{:else}{part.content}{/if} {/each}
  • {/each}
    {:else if el.type === 'table'} {#each el.content as row} {#each row as cell} {/each} {/each}
    {#each renderRichText(cell) as part} {#if part.type === 'bold'}{part.content}{:else if part.type === 'italic'}{part.content}{:else}{part.content}{/if} {/each}
    {:else if el.type === 'paragraph'}

    {#each renderRichText(el.content) as part} {#if part.type === 'bold'}{part.content}{:else if part.type === 'italic'}{part.content}{:else}{part.content}{/if} {/each}

    {/if} {/each} {/if}