Text to HTML Feed Converter
Convert plain text into a clean, semantic HTML feed with customizable delimiters, styles, and grouping. Copy or download the output instantly.
About
Raw text data from logs, CSVs, or note dumps needs structure before publication. This converter parses plain text line-by-line, splitting each entry by a configurable delimiter (pipe |, tab, comma, or custom string) into discrete fields: title, description, link, and date. It then generates clean, semantic HTML using <article> elements with proper heading hierarchy and microdata-ready markup. The output is not a simulation - it produces valid, copy-paste-ready HTML that renders correctly in any browser or email client.
Incorrect feed markup causes broken rendering in RSS readers, malformed Open Graph previews, and accessibility failures for screen reader users. This tool escapes all HTML entities in your input to prevent XSS injection, validates URL patterns, and auto-detects date strings. The delimiter-based parsing handles edge cases like empty fields, trailing whitespace, and lines with fewer columns than expected. Note: this tool assumes one feed item per line. Multi-line entries require manual concatenation before input.
Formulas
The conversion pipeline applies a deterministic sequence of transformations to each line Li of the input text.
Where d is the user-selected delimiter string, f1 = title, f2 = description, f3 = URL, f4 = date. Empty lines where trim(Li) = "" are discarded. URL validation uses the pattern ^https?:\/\/.+ applied via RegExp.test(). The total item count N = n∑i=1 1 for each Li where trim(Li) ≠ "".
Reference Data
| Delimiter | Symbol | Common Source | Escape Needed | Notes |
|---|---|---|---|---|
| Pipe | | | Database exports, wiki markup | No | Recommended default - rare in natural text |
| Tab | \t | Spreadsheets (TSV), clipboard paste | No | Invisible character - use preview to verify |
| Comma | , | CSV files, form data | Yes, if in content | Conflicts with natural punctuation |
| Semicolon | ; | European CSV, SQL exports | Rare | Good alternative to comma |
| Double colon | :: | Config files, custom logs | No | Multi-char delimiter - very safe |
| Arrow | => | Key-value logs, debug output | No | Two-char, unlikely in content |
| Tilde | ~ | Unix paths, custom formats | No | Rare in body text |
| Hash | # | Comments, tags | No | May conflict with Markdown headings |
| Newline only | \n | Simple lists, one field per line | N/A | Each line becomes a title-only item |
| Custom | User-defined | Any proprietary format | Depends | Enter any string as delimiter |
| Field Mapping Order | ||||
| Field 1 | Title (required) - rendered as feed item heading | |||
| Field 2 | Description (optional) - rendered as paragraph body | |||
| Field 3 | URL (optional) - auto-linked if valid https?:// pattern detected | |||
| Field 4 | Date (optional) - parsed and displayed as <time> element | |||
| HTML Entity Escaping | ||||
| & | & | Ampersand - most common injection vector | ||
| < | < | Less-than - prevents tag injection | ||
| > | > | Greater-than - closes injected tags | ||
| " | " | Double quote - attribute injection | ||
| ' | ' | Single quote - JS string escape | ||