AO Fluent HTML Changelog


Release Notes

  • Added tabindex attribute to remaining elements.
  • The autofocus attribute is now a global attribute.
  • Implemented <textarea>.
  • Changed <option> and <title> from MediaWritable to TextContent.
  • Implemented many more global attributes.
  • Added very thorough doctype checks for all HTML 5 elements and attributes.
  • Annotated javadocs @since HTML 5 for all HTML 5 elements and attributes.
  • Moved all attributes from com.aoapps.html.any.attributes.String to com.aoapps.html.any.attributes.text, making them now streamable.
  • Implemented more elements.
  • Added support for java.nio.charset.Charset.
  • Removed self-referential generics that were emulating self-types. Instead, manually overloading all methods. Although a bit tedious in the implementation, this cleans-up the API by removing unnecessary type parameter.
  • Made AnyDocument.out private and deprecated the unsafe(…) methods. The unsafe(…) methods will remain, but their use is discouraged as it can be dangerous. Renamed getUnsafe() to getRawUnsafe().
  • Optimized AnyDocument.out via Coercion.optimize(Writer, null).
  • Indentation changed from tab to two-space for consistency with the new AO Checkstyle Config project, which itself is based on Google Java Style Guide.
  • Performed Checkstyle clean-up.


Release Notes

  • Renamed static test helper classes since does not directly provide unit tests.


Release Notes

  • Minimum Java version changed from 1.8 to 11.
  • Now supports Java 9+ modules with included module-info.class.
  • Maven artifact relocated from com.aoindustries:ao-fluent-html to com.aoapps:ao-fluent-html.
  • Package renamed from com.aoindustries.html to com.aoapps.html.


Release Notes

  • Renamed Html to Document.
  • Implemented element content with self-referential generics optimized for lambda bodies.
  • Implemented automatic newline and tab indentation.
  • The output Writer may now be replaced.
  • Deprecated Document.out, please use the new unsafe(…) methods.


Release Notes

  • Split development-only classes into a new sub-project in devel/. This sub-project is used only for development and is never deployed to artifact repositories.
  • Reverted a previous change made on 2020-03-01 that was released in version 0.1.0 on 2020-03-26. Encoding of in-context translation lookup markups is required after all.

    One example is the lookup IDs added inside alt attributes like alt="&lt;##&lt;value&gt;##&gt;". With this bug, this was incorrectly written as alt="<##<value>##>", which fails XML validation.

    This bug is unlikely to affect production systems for two reasons:

    1. Lookup markups are only performed when in-context translations are enabled, which is only when in development mode.
    2. Most production sites are served in SGML mode, where browsers will handle the incorrect HTML formatting. XML mode is used in development specifically for this stricter validation.


Release Notes


Release Notes

  • New project for fluent Java DSL for high-performance HTML generation.
  • New class Html:
    1. New functionality derived from methods and constants moved from HtmlTag.
  • New class Serialization representing HTML/XHTML differences.
  • Now supports writing XML declaration when both serving as XHTML and response encoding is not UTF-8.
  • Now selects HTML or XHTML doctype based on current Serialization.