Skip to content

jpd236/kotwords

Repository files navigation

kotwords

GitHub Workflow Status Maven Central javadoc

Collection of crossword puzzle file format converters and other utilities, written in Kotlin.

The library uses Kotlin multiplatform and supports Java, Javascript, and native Mac/Windows/Linux.

This project also includes a web interface for generating digital versions of different variety puzzles and a command line tool to perform conversions and dump puzzle information.

Features

  • Read crosswords in a variety of file formats, including formats used by online puzzle sites
  • Remove a direction of clues to make puzzles more challenging
  • Write crosswords in .puz, .jpz, or .ipuz format
  • Generate PDFs for crosswords
  • Create .jpz and .ipuz files for variety crossword puzzles

How To Use

In your build.gradle:

dependencies {
  implementation "com.jeffpdavidson.kotwords:kotwords:1.5.0"
}

Sample code for parsing a JPZ file and converting it to a PDF with only Down clues:

  val pdf = JpzFile(jpz).asPuzzle().withDownsOnly().asPdf();

See the Javadoc for full API details.

Command-line interface

Release builds include Mac/Windows/Linux command-line tools.

Example to convert a PUZ file to a PDF:

kotwords-cli convert \
    --input-file=/path/to/puzzle.puz \
    --input-format=PUZ \
    --output-file=/path/to/puzzle.pdf \
    --output-format=PDF

Example to print all clues and answers in a JPZ file:

kotwords-cli dump-entries \
    --file=/path/to/puzzle.jpz \
    --output-format="[[clue]]: [[answer]]"

Run the tool with no flags to see all available commands, and add --help after any command to see the available options.

Development

Kotwords is a standard Gradle project that can be imported into IntelliJ. Common commands include:

  • Run all tests for all environments: ./gradlew check
  • Run a local instance of the web tools: ./gradlew jsBrowserDevelopmentRun
  • Publish to the local Maven repository for testing in another application: ./gradlew publishToMavenLocal

Bug reports and contributions welcome!

About

Collection of crossword puzzle file format converters and other utilities, written in Kotlin.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages