[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82017":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":14,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":27,"discoverSource":28},82017,"ledgera","thesmokinator\u002Fledgera","thesmokinator","Just another multi-platform user interface for managing hledger journal transactions","",null,"Rust",26,2,1,0,4,3,1.43,"MIT License",false,"main",true,[],"2026-06-12 02:04:22","# Ledgera\n\nA desktop app for managing [hledger](https:\u002F\u002Fhledger.org) journals - built with Tauri, React, and Rust.\n\n![Screenshot](screenshots\u002F001.png)\n\n## Documentation\n\nUser documentation is available in the [Ledgera Wiki](https:\u002F\u002Fgithub.com\u002Fthesmokinator\u002Fledgera\u002Fwiki).\n\n## Features\n\n- **Browse & filter** - monthly transactions, scheduled entries, accounts overview with time-range filters\n- **Edit, create & delete** - full CRUD on journal entries with date, status, code, description, and postings\n- **Investment mode** - enter quantity, commodity, and unit price; the balancing cash posting is calculated automatically using hledger's `@` syntax\n- **Split journal support** - flat, nested, and glob-based include structures are auto-detected\n- **Logs** - structured event log (errors, warnings, mutations), visible for power users, with one-click copy\n- **Structured errors** - backend-driven error codes with localised messages and technical details\n\n## Requirements\n\n- Node.js and npm\n- Rust toolchain\n- [hledger](https:\u002F\u002Fhledger.org\u002Finstall.html) installed locally or configured in the app settings\n\n## Getting started\n\n```bash\nnpm install\nnpm run tauri:dev        # desktop app (dev mode)\nnpm run dev              # frontend only (browser)\nnpm run tauri:build      # production build\n```\n\n## Settings\n\nOpen the **Settings** tab to configure:\n\n| Setting | Description |\n|---------|-------------|\n| Journal path | Path to your main `.journal` file |\n| hledger path | Custom executable path (auto-detected by default) |\n| Default commodity | e.g. `EUR`, `€`, `USD` |\n| Theme | System \u002F Dark \u002F Light |\n| Language | System \u002F English \u002F Italian |\n| Modules | Enable optional modules such as Market prices, Developer tools, and Git Sync |\n| Power user | Show raw journal entries, line numbers, and the Logs section |\n\n## Git Sync module\n\nThe optional **Git Sync** module lets users synchronize configured journal files from the app using the system `git` executable. It detects the repository containing the journal, shows branch\u002Fahead\u002Fbehind\u002Fdirty status, supports manual `pull --ff-only`, and can commit and push known journal files with a customizable commit message.\n\nFor safety, Ledgera stages only journal files it knows about and does not attempt merge conflict resolution. Resolve divergent branches or conflicts with your preferred Git client, then refresh the Sync view.\n\n## Translations\n\nLedgera ships with English and Italian translations. Translation files live in `src\u002Flocales\u002F` and use the same nested JSON key structure as `en.json`. To add or update a language:\n\n1. Copy `src\u002Flocales\u002Fen.json` to a new locale file, for example `fr.json`.\n2. Translate all values while keeping keys unchanged.\n3. Register the locale in `src\u002Fi18n.ts` and `src\u002Futils\u002Flanguage.ts`.\n4. Run `npm run typecheck` and `npm run test` before opening a PR.\n\n## CI\u002FCD and releases\n\nGitHub Actions runs the CI pipeline on every push and pull request:\n\n- ESLint\n- TypeScript type-checking\n- frontend tests with Vitest\n- Rust backend tests with Cargo\n\nA manual **Build verification** workflow is available in GitHub Actions to test distributable builds before publishing a release. It builds macOS and Linux packages on native runners and cross-builds the Windows installer and portable zip from Linux using `cargo-xwin`.\n\nRelease builds are created only from Git tags matching `v*`. Before tagging, update all app manifests with the release version:\n\n```bash\nnpm run set-version -- 0.1.0\n```\n\nThe tag version must match `package.json`:\n\n```bash\ngit tag v0.1.0\ngit push origin v0.1.0\n```\n\nThe release workflow builds and uploads manual download artifacts to GitHub Releases:\n\n- macOS `.app` zip and `.dmg`\n- Linux `.deb` and AppImage\n- Windows NSIS installer and portable zip, cross-built with `cargo-xwin`\n\nLedgera does not publish a Tauri updater manifest. Users choose and download the package they want from GitHub Releases. On Windows, the NSIS installer embeds the Microsoft Edge WebView2 offline installer so it can complete without downloading WebView2 during setup. Use the portable zip to run Ledgera without installing shortcuts or system-wide entries; the portable zip requires WebView2 to already be installed on the system.\n\n### macOS unsigned builds\n\nCurrent macOS artifacts are unsigned and not notarized. macOS Gatekeeper may block them after download. If you trust the artifact source, remove the quarantine attribute before opening the app:\n\n```bash\nxattr -dr com.apple.quarantine \u002FApplications\u002FLedgera.app\nopen \u002FApplications\u002FLedgera.app\n```\n\nIf you run the `.app` directly from another folder, replace `\u002FApplications\u002FLedgera.app` with the actual app path.\n\n## Sample journals\n\nThe `examples\u002F` directory contains ready-to-use journals:\n\n- `examples\u002Fsample.journal` - single-file journal with past-month and current-month transactions, including an investment example\n- `examples\u002Fsplit-flat\u002F` - month-based split (`include YYYY-MM.journal`) with past-month and current-month files\n- `examples\u002Fsplit-glob\u002F` - year\u002Fmonth glob split (`include YYYY\u002F*.journal`) with past-month and current-month files\n- `examples\u002Fcustom-hledger-path\u002F` - custom CLI setup with simple past-month and current-month smoke-test entries\n\n## Project structure\n\n| Directory | Purpose |\n|-----------|---------|\n| `src\u002F` | React frontend - routes, components, i18n |\n| `src-tauri\u002F` | Rust backend - journal parsing, mutation, logging |\n| `examples\u002F` | Sample hledger journal layouts |\n| `screenshots\u002F` | Screenshots |\n","Ledgera 是一个用于管理 hledger 日记账的多平台桌面应用程序。它使用 Tauri、React 和 Rust 构建，提供浏览与过滤月度交易、定期条目和账户概览的功能，并支持时间范围筛选。用户可以对日记账条目进行增删改查操作，包括日期、状态、代码、描述和分录等信息。此外，它还具有投资模式，能够自动计算平衡现金分录，支持拆分日志结构，并为高级用户提供详细的事件日志和结构化错误信息。适用于需要跨平台管理个人或企业财务记录的场景，特别适合熟悉命令行工具 hledger 的用户。","2026-06-11 04:07:31","CREATED_QUERY"]