# HanjaKanaMun Odin + raylib memory card game for learning Japanese, Korean and Thai scripts. ## Development Requires [Odin](https://odin-lang.org) (dev-2026-09) and [just](https://just.systems). ```sh just run # build and play (debug) just check # type-check with -vet just test # run tests just package 1.0 # native release build -> build/HanjaKanaMun_1.0__.tar.gz just windows-deps # Linux only: fetch Windows SDK/CRT (xwin) and raylib.lib just package-windows 1.0 # cross-compiled Windows build -> build/HanjaKanaMun_1.0_windows_x86_64.zip ``` The Windows build needs `lld-link`. On macOS, `brew install lld` and set `LLD_LINK`, and point `XWIN_SDK` and `RAYLIB_WINDOWS` at an xwin splat and Odin's Windows `vendor/raylib/windows` folder (the Linux/macOS Odin releases don't include `raylib.lib`). ### Neovim `ols.json` and `odinfmt.json` configure the [ols](https://github.com/DanielGavin/ols) language server and formatter. Install ols (e.g. `:MasonInstall ols`) and enable it with nvim-lspconfig: `vim.lsp.enable('ols')`. Formatting goes through ols (`vim.lsp.buf.format()`), or `just fmt` if `odinfmt` is on your PATH. ## CI - `.gitea/workflows/gitea-build.yaml`: check, test and build on pushes and PRs to `main` and `develop`. - `.gitea/workflows/gitea-release.yaml`: on a version tag like `v1.0`, builds Linux and Windows packages, uploads them to the Gitea generic package registry (`HanjaKanaMun/1.0`) and creates a Gitea release with both attached. Needs a `TOKEN` secret with package write access. - `.gitea/actions/setup`: shared toolchain setup (apt packages, Odin, just). Release: `git tag v1.0 && git push origin v1.0` ## Credits Font: M PLUS Rounded 1c, SIL Open Font License (`assets/MPLUSRounded1c-OFL.txt`).