Every week, since 2013, two of my colleagues (Udy Hershkovitz from PinatKafe.com and David Zahavi) have been publishing a weekly Cryptic Crossword in a dedicated mailing list.
This repository contains an archive of the crosswords themselves as well as a mobile-friendly web user-interface allowing users to attempt and solve the crosswords online.
The crossword puzzles are available online here.
- Remembers your session on a given browser - allows to stop and continue later
- Offers the ability to check your solution or view the official solution
- Solutions are published a week after the original puzzle is released
- It's also possible to check the correctness of a single clue, or reveal its solution
- Mobile-friendly user-interface
- Allows marking clues as completed
- Allows sharing the current state with other people (or browsers) via a dedicated share link
- This can be used, for example, to move easily between a desktop and a mobile device
- For those with fear of commitment: Offers the ability to try and solve single clues as a standalone riddle, instead of as part of a full crossword
There are a few alternatives that offer cryptic crosswords in Hebrew online:
- haaretz.co.il (and their daily cryptic clue as well)
- 14across.co.il
- higayon.co.il
- ravmilim.co.il
- Android Application
Developed using TypeScript, crossword itself is built as a dynamic SVG. All the logic is implemented on the client side and only requires a static server.
The project includes a Docker file that can be used to setup the website locally.
- Build the container with
docker-compose up -d --build
- Run the container with
docker-compose up -d
- Attach to the container with
docker-compose exec app sh
- (First time only) Install the packages from
npm
usingnpm install
- Run
npm start
to start the server - Alternatively run
npx webpack --mode production
to bundle the code. This would result in some*.js
files being written todist
- When done, execute
exit
to exit the shell - Execute
docker-compose down
to stop the container
For the online version hosted in GitHub Pages, changes to the Typescript files only take effect once the code is bundled and submitted to GitHub.
This should happen automatically with a GitHub Action.
The original crossword puzzles are published as a docx
file and need to be converted to json
format before being uploaded to this website.
- Download the new crossword puzzle from pinatkafe.com
- Note: If the
docx
with the solution is selected, the solutions will extracted from the document and made available via the website as well
- Note: If the
- Place it under
./tmp/docs/
- Run
./utils/doc2json/doc2json.py
directly or via the docker (docker-compose run --rm doc2json
)- This will automatically convert the
docx
format tojson
and place the result under./crosswords/<crossword_id>.json
- This will automatically convert the
- Run
./utils/create_index/create_index.py
to update./index.json
with the new puzzle ID- When pushing to GitHub, this should happen automatically with a GitHub Action
Issues and code contributions are welcome. For comments about the crosswords themselves, please contact Udy directly via his contact details.
The web interface is released under MIT.
The rights for the crosswords puzzles themselves belong to their original creators. Each puzzle includes the name of its author(s).