A Java library that escapes strings for CSV, HTML, Java, JavaScript, JSON, XML and YAML.
The library is available from Maven Central using the following Maven dependency:
<dependency>
<groupId>org.cthing</groupId>
<artifactId>escapers</artifactId>
<version>2.0.0</version>
</dependency>or the following Gradle dependency:
implementation("org.cthing:escapers:2.0.0")Escaping for each supported language follows the pattern:
- Select an escaper based on the language you are targeting. For example, to escape a string for use in an
HTML file, select the
HtmlEscaper. - All escapers offer static methods to escape a string or character array and will either return the
escaped string or write it to the specified
Writer. For example, to escape a string for use in an HTML file:which produces the string "This & that".final String escaped = HtmlEscaper.escape("This & that");
- Certain escapers offer options to control the escaping behavior. For example, the HTML escaper offers
options to control what character ranges are escaped, the named entity sets used, and whether numerical
character entities are presented in hexadecimal or decimal. For example, the following escapes a string
for HTML using entities for all non-ASCII characters, named character entities for all ISO Latin-1 characters,
and decimal for numerical character entities:
final String escaped = HtmlEscaper.escape("This & that", HtmlEscaper.Option.ESCAPE_NON_ASCII, HtmlEscaper.Option.USE_ISO_LATIN_1_ENTITIES, HtmlEscaper.Option.USE_DECIMAL);
The Javadoc for each escaper provides detailed information about the character replacements performed and the options supported.
The library is compiled for Java 17. If a Java 17 toolchain is not available, one will be downloaded.
Gradle is used to build the library:
./gradlew buildThe Javadoc for the library can be generated by running:
./gradlew javadocThis project is released on the Maven Central repository. Perform the following steps to create a release.
- Commit all changes for the release
- In the
build.gradle.ktsfile, edit theProjectVersionobject- Set the version for the release. The project follows semantic versioning.
- Set the build type to
BuildType.release
- Commit the changes
- Wait until CI builds the release candidate
- Run the command
mkrelease escapers <version> - In a browser go to the Maven Central Repository
- Log in
- Select
Publishfrom the menubar - Press
Publish Component - Enter a name for the deployment
- Choose the file
escapers-bundle-<version>.zip - Press
Publish Component - Refresh the page until the deployment has been validated
- Press
Publish - Refresh the page until the status is
Published - Log out
- Delete the file
escapers-bundle-<version>.zip - In a browser, go to the project on GitHub
- Generate a release with the tag
<version> - In the build.gradle.kts file, edit the
ProjectVersionobject- Increment the version patch number
- Set the build type to
BuildType.snapshot
- Update the
CHANGELOG.mdwith the changes in the release and prepare for next release changes - Update the
Usagesection in theREADME.mdwith the latest artifact release version - Commit these changes
