All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- 🐞 HTML to Markdown: Fixed handling of inline
<code>tags and<code>tags without paragraph tags.
- 🐞 Markdown to HTML: Fixed handling multiline blockquotes and multiline ordered/unordered lists.
- ✅ HTML to Markdown and Plain text to HTML conversion:
- Added support for multiline lists (lists with wrapped lines).
- ✅ Markdown and Plain text to HTML conversion:
- Added support for multiline lists (lists with wrapped lines).
- Added support for basic styling (bold, italic, etc.) in link descriptions (e.g.,
[**bold link**](url),[link *italic*](url),[link ~~strikethrough~~](url)).
- ✅ Added: HTML to plain text conversion.
- ✅ CLI tool mdoc.exe: Added support for:
- Markdown to plain text conversion.
- HTML to plain text conversion.
- AmigaGuide to plain text conversion:
- Converts AmigaGuide files to readable plain text format (e.g.,
mdoc.exe input.guide output.txt).
- Converts AmigaGuide files to readable plain text format (e.g.,
- 🐞 Plain text
.txtto HTML/Markdown conversion: Fixed handling of/character.
- MD → HTML conversion: Support for indented code blocks (e.g., indented by 4 spaces or a tab).
- Added: CLI tool mdoc.exe:
- Plain text
.txtto Markdown conversion: - Automatic detection of file encoding (e.g., UTF-8, ASCII) for
.txtfiles.- Supports basic formatting, headings, paragraphs, lists, links, pipe tables, and code blocks.
- Usage: Run
mdoc.exe <input.txt> <output.md>
- Plain text
- 🐞 HTML → Markdown conversion: Fixed handling character
\nin paragraphs, headings, and lists.
- 🆕 Smart plain text
.txtto HTML conversion:- Converts plain text files to HTML with basic formatting.
- Automatic detection of file encoding (e.g., UTF-8, ASCII).
- Added support uppercase headings (e.g.,
HEADINGfor H1 orHEADINGfor H2). - Supports headings, paragraphs, lists, links, pipe tables, and code blocks.
- Support for indented code blocks (e.g., indented by 4 spaces or a tab).
- Usage:
string html = ConvHtmlMarkdown.SmartTxtConvert(txt);.
- 🆕 CLI tool mdoc.exe:
- Added smart plain text conversion. Usage:
mdoc.exe input.txt output.html - Added support for
--encoding=<encoding>command-line option to specify the input file encoding (e.g.,windows-1250,utf-8,ascii).- If
--encodingis not specified, the default input encoding for.txtand.guidefiles iswindows-1252. See documentation for the full list of supported encodings.
- If
- Added smart plain text conversion. Usage:
- Improvements to performance.
- Markdown → HTML conversion: Handling of unclosed or mismatched Markdown tags (e.g.,
**,*,~~,==) and fixing them in the HTML output.
- ✅ Markdown → HTML conversion: Added support underlining headings (e.g.,
Heading\n===for H1 orHeading\n---for H2). - ✅ CLI tool mdoc.exe: Added support for
--ignore-warningscommand-line option to ignore warnings during conversion.
- Added parameter
ignoreWarnings = falseto ignore warnings during conversion (ConvMarkdownHtml.ConvertandConvGuideHtml.Convert).
- ✅ HTML → Markdown conversion:
- Added method to close improperly closed tags (e.g.,
**,*,==,~~). - Added support for additional block elements (e.g.,
<div>).
- Added method to close improperly closed tags (e.g.,
- ✅ AmigaGuide → HTML conversion:
- 🚨 Added warnings for syntax issues (e.g., improperly closed tags, unknown commands).
- Added method to close improperly closed tags (e.g.,
@{b},@{i},@{u}). - Added global command
@VER$for version information - Added global command
@(c)for copyright information - Added attribute command
@{plain}for plain text - Added attribute command
@{"Doc" ALink "doc.guide/intro"}for document links - Added attribute command
@{"Doc" System "<command> doc.readme"}This command executes the AmigaDOS command named in<command>.
- AmigaGuide → HTML conversion: Improved processing commands
@title,@author
- 🆕 CLI tool mdoc.exe: Added conversion support for AmigaGuide → Markdown:
- Usage: Run
mdoc.exe input.guide output.mdto convert AmigaGuide files to Markdown - Note: Some advanced AmigaGuide features may not be fully supported; see documentation for details
- Usage: Run
- 📂 Source code for CLI tool mdoc.exe is now available in the repository (src).
- 🎯 AmigaGuide → HTML conversion improvements:
- Button styles have been updated for better consistency and appearance. (Replaced
input type="button"elements witha hreflinks styled via CSS.)- Improved rendering of
<h2>,<pre>, and<hr>elements for better compatibility with Markdown - Added support for the commands
@rem,@remark, and@author - Improved parsing flow
- Improved rendering of
- Button styles have been updated for better consistency and appearance. (Replaced
- 🐞 HTML → Markdown conversion: Tags
<b>,<i>, and<a href...are now correctly supported within<pre>blocks.
- Improved Markdown → HTML conversion: Readability and formatting of the generated HTML code.
- Markdown → HTML conversion: TOC generation now supports documents with skipped heading levels (e.g.,
#,###without an intervening##). - Markdown → HTML conversion: Convert improperly started fenced code blocks (e.g., ````csharp`).
- Improved Markdown → HTML conversion: Enhanced detection of YAML front matter:
- Added support for meta tags:
version,description,keywords,license. - Enhanced detection of empty front matter blocks and end-of-front-matter marker (
...).
- Added support for meta tags:
- Improved Markdown → HTML conversion: Enhanced handling of fenced code blocks.
- 🚨 HTML → Markdown conversion: Added warnings for syntax issues (e.g., improperly closed tags, unknown HTML entities, unexpected characters inside
<pre>blocks). (2025-07-25) - ✅ Markdown → HTML conversion: Support for subscript and superscript (e.g.,
H~2~O,E=mc^2^). - ✅ HTML → Markdown conversion support:
- Support for subscript and superscript (e.g.,
<sub>,<sup>). - Support for front matter (YAML metadata block).
- Support for task lists (e.g.,
<li><input type="checkbox" checked>Done</li>). (2025-07-24) - Horizontal rules (e.g.,
<hr>,<hr />). - Links and email links (e.g.,
<a href="https://example.com">,<a href="mailto:user@example.com">). - Ordered lists.
- Preformatted text blocks (e.g.,
<pre>...</pre>). - Code blocks with language highlighting (e.g.,
<pre><code class="csharp">...</code></pre>). - Images with
altandtitleattributes (e.g.,<img src="..." alt="..." title="...">). - Tables with alignment (e.g.,
| --- | :---: | ---: |). - Strikethrough text (
strikethrough) and highlighted text (==highlighted==). - Span elements with class attributes (e.g.,
<span class="mark">). - Links (e.g.,
<a href="https://example.com").
- Support for subscript and superscript (e.g.,
- 🆕 Initial HTML → Markdown converter
- Supports most core HTML5 elements: headings, paragraphs, bold/italic, blockquotes, unordered lists.
- Designed to produce clean, standardized Markdown — compatible with Markdown.ToHtml output.
- Implements basic fallback logic and optional attribute handling.
- Reversible conversion supported for standard Markdown-generated HTML.
- ✅ New CLI support in mdoc.exe:
- Example:
mdoc.exe <input.html> <output.md>
- Example:
- HTML → Markdown conversion:
- Improved handling of improperly closed paragraph tags.
- Enhanced handling of
<br>tags to ensure proper line breaks in Markdown output. - Enhanced handling of double space characters in paragraphs to ensure proper line breaks in Markdown output.
- Rename class for clarity:
Markdown.cstoConvMarkdownHtml.csHtmlMd.cstoConvHtmlMarkdown.csAmigaGuide.cstoConvGuideHtml.cs
- Minor performance improvements, optimizations in Markdown parsing. (2025-07-21)
- Pre-allocate space for the HTML output to reduce memory allocations during string concatenation. (2025-07-21)
⚠️ New warning system for malformed Markdown syntax (e.g., unclosed**,*,==).- 🚨 Warrnings for XSS and phishing attempts (e.g.,
<script>, malformed<a href>, etc.).- Warnings are collected during parsing and displayed at the end of the HTML output.
- Default visual styling for warnings via inline
<div>styling (visible even without external CSS).
- Resolved issue where an unclosed block at the end of a Markdown file could lead to improperly terminated HTML output.
- 🐞 Resolved issue with basic styling across multiline paragraphs (e.g.,
**bold**or*italic*spanning multiple lines).
- TOC HTML code readability improvements (indentation).
- Minor issues with
imgtag attributes (liketitleandalt). - TOC nested
ultag rendering, and fixed incorrect rendering of inline styles within TOC entries.
- Rendering of inline styles within headings.
- Special character escaping in inline paragraph text.
- 🧪 Optional: Command-line Tool (mdoc.exe) for users who want to try the converter without integrating it into a project.
- 🆕 Support for Table of Contents (TOC) generation.
- Automatically inserts a hierarchical TOC at the [TOC] marker in the document.
- ⚡ Improved performance (~4x) of Markdown inline parsing by optimizing autolink and email link detection.
- Support for line breaks
<br>if the line ends with a backslash\, or if the line contains only a backslash\.
- Support for strikethrough text (
strikethrough). - Support for highlighted text (==highlighted==).
- Resolved issue with improper handling of stacked unordered/ordered lists.
- 🆕 Detection and warning mechanism for potential XSS and phishing attempts.
- Support for plain URLs (
https://example.com). - Autolink format (
<https://example.com>). - Email links (
user@example.com,<user@example.com>).
- Basic support for inline HTML tags within Markdown.
- Initial release.
- Markdown to HTML conversion.
- AmigaGuide to HTML conversion.
- Support for headings, lists, tables, footnotes, code blocks, links, images, and raw HTML.
- Fully standalone C# implementation with no external dependencies.