doyaGu 1d744ba504 fix(search): reject empty phrases and phrases glued to other text
The lexer now keeps token offsets and rejects what the grammar never allowed
but the token rules accepted:
- an empty phrase: "" (matched every card), tag:""
- a phrase touching a word or another phrase: a"b", "a"b, "a""b"
- whitespace between a qualifier and its phrase value: tag: "x"

key:"value" stays the only legal contact; parentheses still delimit phrases.
Listed in PLAN 6.1/6.2 and USAGE.
2026-10-03 08:20:30 -04:00
2026-09-29 20:16:52 +08:00
2026-09-29 20:16:52 +08:00

YKanBan

My personal used local/offline kanban.

  • Cross-platform desktop app (Windows / Linux / macOS) built with Avalonia.
  • Git-like storage: the board lives in a .ykanban folder inside the project folder it manages; start it with ykanban <path>.
  • One board per workspace with columns, cards and colored tags; strict search expressions (tag:bug OR title:login); Markdown export.
  • English and Simplified Chinese interface; light, dark or system theme.

See USAGE.md for installing, starting YKanBan, backups and Git, and the full search syntax.

Building

Requires the .NET 10 SDK.

dotnet build
dotnet test
dotnet run --project YKanBan -- <path>

Release archives for win-x64, linux-x64, osx-x64 and osx-arm64 are produced by the manually triggered workflow in .github/workflows/build.yml; packaging/package.sh packs one published RID.

License

MIT

S
Description
A personal, local/offline kanban board.
Readme MIT
1.1 MiB
0 Stars 1 Watchers 0 Forks
Languages
C# 98.2%
Inno Setup 1%
Shell 0.8%