products:tidy:history
Table of Contents
DITidy: Version History
DITidy v6.8.0 – 18 Sep 2025
- Support Delphi 13 Florence Win32 and Win64.
- Drop support for Delphi 2007 and older, all of which fail compilation due to internal compiler errors.
DITidy v6.7.0 – 22 Nov 2023
- Support Delphi 12 Athens Win32 and Win64.
DITidy 6.6.0 – 16 Sept 2021
- Support Delphi 11 Alexandria Win32 and Win64.
DITidy 6.5.0 – 22 Jul 2021
Update libtidy to version 5.8.0 final. Main changes:
- Add support for the
<slot>tag. - Add IMG loading attribute
TidyAttr_LOADING, like<img loading=“lazy” src=“…”>. - Add SVG paint attributes:
TidyAttr_FILL,TidyAttr_FILLRULE,TidyAttr_STROKE,TidyAttr_STROKEDASHARRAY,TidyAttr_STROKEDASHOFFSET,TidyAttr_STROKELINECAP,TidyAttr_STROKELINEJOIN,TidyAttr_STROKEMITERLIMIT,TidyAttr_STROKEWIDTH,TidyAttr_COLORINTERPOLATION,TidyAttr_COLORRENDERING,TidyAttr_OPACITY,TidyAttr_STROKEOPACITY,TidyAttr_FILLOPACITY. - Add support for HTML5 extended color names.
- Warn and clean up multiple
<title>elements. Also issue a warning if the<title>element is empty. - Fix
<open>tag to boolean. - Fix percentage validation.
- Fix
TidyWrapPhpwrapping multiple lines. - Fix warning about missing
</summary>. - Fix integer overflow parsing huge HTML documents.
- Fix case-insensitive compare of
htmlin doctype. - Fix AV when cleaning unbalanced
<![if …]> … <![endif]>. - Fix HTML parsing memory leaks.
- Fix parsing files with the readonly attributes set.
- Fix missing bounds check decoding MacRoman.
Other changes:
- Add the
TidyCloseQuotedValuesAtGtoption. It instructs the parser to close a quoted value prematurely if it encounters a “>” character before or instead of the closing quote character. This can improve parsing of HTML tag attribute values which are accidentally missing a closing quote character.
DITidy 6.4.0 – 5 Jun 2020
- Support Delphi 10.4 Sydney Win32 and Win64.
DITidy 6.3.0 – 10 Jan 2020
- Add support for DATA element.
- Keep case of anchors for HTML5.
DITidy 6.2.0 – 24 Dec 2018
- Support Delphi 10.3 Rio Win32 and Win64.
DITidy 6.1.0 – 30 Sept 2018
New:
TidyShowFilenameoption to show file names in error messages and warnings.
Bug Fixes:
tidyCleanAndRepaira malformed meta tag could cause an access violation.- COLOR attribute no longer causes a warning for LINK tags.
- Fix SCRIPT parsing in HTML5 mode.
- Allow “auto” for DIR attribute for HTML5.
DITidy 6.0.0 – 8 Dec 2017
New:
tidyErrorSummary– Write error information to the current error sink.tidyGeneralInfo– Write markup information to the current error sink.tidyPlatform– The Tidy build platform.tidyOptionIsList– Does an option take a list of items?tidyOptGetPriorityAttrList– Create a new priority attributes iterator.tidyOptGetNextPriorityAttr– Retrieve the first / next priority attribute from an iterator.tidyOptGetMutedMessageList– Create a muted messages iterator.tidyOptGetNextMutedMessage– Retrieve the first / next muted message from an iteraor.tidySetEmacsFile– Set the file path to use for reports with TidyEmacs.tidyGetEmacsFile– Get the file path to use for reports with TidyEmacs.tidySetConfigCallback– Extend configuration file options.tidySetConfigChangeCallback– Monitor configuration changes.tidySetReportCallback– Use a va_lists callback to send reports.tidySetMessageCallback– Use a TidyMessage callback to send reports.tidyGetMessageDoc– Get the TidyDoc of a message.tidyGetMessageCode– Get the integer code of a message.tidyGetMessageKey– Get the text key of a message.tidyGetMessageLine– Get the line number a message applies to.tidyGetMessageColumn– Get the column a message applies to.tidyGetMessageLevel– Get the TidyReportLevel of the message.tidyGetMessageArguments– Create a new message arguments iterator.tidyGetNextMessageArgument– Retrieve the first / next TidyMessageArgument from an iterator.tidyGetArgType– Return the TidyFormatParameterType of the given message argument.tidyGetArgFormat– Return the format specifier of the given message argument.tidyGetArgValueString– Return the string value of the given message argument.tidyGetArgValueUInt– Return the unsigned integer value of the given message argument.tidyGetArgValueInt– Return the integer value of the given message argument.tidyGetArgValueDouble– Return the double value of the given message argument.tidyErrorCodeAsKey– Return the text message key from an integer message code.tidyErrorCodeFromKey– Return the integer message code from a text message key.getErrorCodeList– Create a new message code iterator.getNextErrorCode– Get the first / next integer error code from an error code iterator.tidySetLanguage– Set the Tidy output language.tidyGetLanguage– Get the current Tidy output language.tidyLocalizedStringN– Retrieve the localized string of a quantity.tidyLocalizedString– Retrieve the localized string for a MessageType.tidyDefaultString– Retrieve a MessageType string in the default localization.getStringKeyList– Initiate an iterator for a list of string key codes available in Tidy.getNextStringKey– Get the next key from a string key list iterator.getInstalledLanguageList– Initiate an iterator for a list of Tidy's installed languages.getNextInstalledLanguage– Get the next language string from the list of installed languages.getWindowsLanguageList– Create a new Windows ↔ POSIX locale mappings iterator.getNextWindowsLanguage– Get the next tidyLocaleMapItemPtr from a Windows language list iterator.TidyLangWindowsName– Return the Windows name from a tidyLocaleMapItem.TidyLangPosixName– Return the POSIX name from a tidyLocaleMapItem.
Removed:
- Delphi 4 and Delphi 5 support.
tidyAttrIsProp– it did not know the element which is required to tell whether an attribute is proprietary.tidySetReportFilter2– replaced by similar functiontidySetReportCallback.tidySetReportFilter3– replaced by similar functiontidySetMessageCallback.- All
tidyNodeIs…functions – usetidyNodeGetId. - All
tidyAttrIs…functions – usetidyAttrGetId.
Changed:
tidySetReportFilter.TidyConfigCategoryelements.TidyDialogueDocis deprecated: UseTidyDialogueFootnoteinstead.
Bug Fixes:
- Add missing
TidyDocargument totidyFileExists. - Fix memory leak in
tidyCleanAndRepairwhen converting XHTML input to HTML output. - Fix memory leaks with nested <a><div><a href=1>.
DITidy 5.11.0 – 1 Jun 2017
- Add
TidyAttr_XMLNSXLINKattribute “xmlns:xlink” to support inline <svg>. - If <table> is encountered when already in a <table>, close the first <table>. The previous action was to discard the second, while it is the second table that browsers will render.
- Fix space missing when opening tag at end of a line.
- Fix generating invalid UTF-8 (surrogate pairs).
DITidy 5.10.0 – 3 Apr 2017
- Support Delphi 10.2 Tokyo Win32 and Win64.
DITidy 5.9.0 – 19 Dec 2016
- Add a set of new parser options to disable detection of non-HTML tokens sometimes found in server contexts.
- Fix: Especially crafted HTML could cause the parser to enter an infinite loop.
- Fix a
tidyOptParseValueaccess violation crash when writing a read-only option.
DITidy 5.8.0 – 9 Sep 2016
- Add option
TidyEscapeScriptsto control how DITidy escapes items that look like closing tags in scripts. Enabled by default. - Add support for HTML5 attributes
TidyAttr_CROSSORIGIN,TidyAttr_INTEGRITY,TidyAttr_AS. - Fix wrong indentation if
TidyOmitOptionalTagsis enabled. - Allow zero <li> in <ul> in HTML5.
- Do not crash
tidyCleanAndRepairif no document was loaded.
DITidy 5.7.0 – 7 May 2016
- Support Delphi 10.1 Berlin Win32 and Win64.
DITidy 5.6.3 – 10 Mar 2016
- New tidySetReportFilter3 and TidyReportFilter3.
- New
tidySetPrettyPrinterCallbackandTidyPPProgress. - Add options
TidySkipNestedandTidyStrictTagsAttr. - HTML5 improvements and bug fixes.
DITidy 5.6.2 – 15 Sep 2015
- Support Delphi 10 Seattle Win32 and Win64.
- Add
tidyAttrDiscardandtidyDiscardElementinterfaces.
DITidy 5.6.1 – 25 Apr 2015
- Add support for Delphi XE8 Win32 and Win64.
- New
tidyLibraryVersionto replace deprecatedtidyReleaseDate. - New tidySetReportFilter2 message filter using a TidyReportFilter2 callback.
- New
tidyReportDoctype. - Numerous HTML5 improvements and bug fixes.
DITidy 5.6.0 – 3 Oct 2014
- Support Delphi XE7 Win32 and Win64.
- Improved documentation.
DITidy 5.5.0 – 28 Apr 2014
- Support Delphi XE6 Win32 and Win64.
DITidy 5.0.1 – 17 Feb 2014
- New
DITidyUtilsunit with useful functions to simplify document parsing fromTStream, among others. - New example project to show how to iterate a node tree without recursion in
Demos\DITidy_Traverse_Tree\DITidy_Traverse_Tree_non_recursive.dpr.
DITidy 5.0.0 – 25 Sep 2013
- Support Delphi XE5 Win32 and Win64.
DITidy 4.5.0 – 14 Jun 2013
- Support Delphi XE4 Win32 and Win64.
DITidy 4.0.0 – 4 Oct 2012
- Support Delphi XE3 Win32 and Win64.
- Support HTML5 tag and attribute processing.
- New options:
TidyShowInfo,TidyOmitOptionalTags,TidyGDocClean, andTidyDropEmptyElems. - Option
TidyHideEndTagsrenamed toTidyCoerceEndTags, but still supported. - Fix:
TidyMakeCleanmust not merge inline scripts into <p> or <div>. - Other bug fixes.
DITidy 3.1.0 – 22 Dec 2011
- Support Delphi XE2 Win64.
DITidy 3.0.0 – 15 Oct 2011
- Support Delphi XE2 Win32.
DITidy 2.2.0 – 28 Sep 2010
- Delphi XE support.
DITidy 2.1.0 – 14 Sep 2009
- Delphi 2010 support.
- Some minor Tidy bug fixes.
DITidy 2.0.0 – 11 Mar 2009
- Delphi 2009 support.
- New
TidyAnchorAsNameoption. - Fix backslash in a URI in with javascript, which was converted to slash.
- Fix some Word 2000 HTML parsing which could remove some content.
- Fix an AV in HTML parsing.
DITidy 1.1 – 6 Sep 2007
- Fix interface for
TidyAllocatorandTidyAllocatorVtbl. - New Tidy options
TidySortAttributesandTidyMergeSpans. - New proprietary option
TidyDropEmptyHeadings. - New
TidyTagIdSettype. - New Delphi extra function
tidyBufAppendStr. - Remove “type” from definition of
tmbstr = C_char_ptr;to achieve compatiblity withPAnsiChar. - New DITidy_Analyse GUI demo.
- DITidy_Node_TreeView demo: Show node types for Start, End, and StartEnd, Reload button, Options tab sheet, auto-restore options on startup.
DITidy 1.0 – 31 May 2007
- First public release.
products/tidy/history.txt · Last modified: 2025/09/19 07:09 by 127.0.0.1

