{"owner":"pbek","repo":"QOwnNotes","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md",".github/copilot-instructions.md"],"skills":{"AGENTS.md":"# QOwnNotes - Agents Instructions\n\n## Project Overview\n\nQOwnNotes is an open source notepad with Markdown support and todo list manager for GNU/Linux, macOS, and Windows. It works together with Nextcloud Notes and ownCloud Notes.\n\n- **Language**: C++\n- **Framework**: Qt (supports both Qt5 and Qt6)\n- **Build Systems**:\n  - **qmake** (`.pro` files) - Primary build system\n  - **CMake** (`CMakeLists.txt`) - Alternative build system\n- **Task Runner**: just (justfile)\n\n## Building the Application\n\n### Quick Build (Recommended for Development)\n\nUse the `just` task runner to build the application:\n\n```bash\njust src-build\n```\n\nThis command will:\n\n1. Check qmake version\n2. Create the `build-QOwnNotes` directory\n3. Run qmake with debug configuration and system Botan\n4. Build using all available CPU cores with `make -j$(nproc)`\n\n### Alternative Build Commands\n\n- **Run tests**: `just src-test` (or `just test`)\n- **Clean build directory**: `just src-clean`\n- **Build and run**: `just src-build-run`\n- **Run built application**: `just src-run`\n\n### Building with Nix\n\nFor Nix users, multiple build options are available:\n\n- **Qt6 build**: `just nix-build` or `just nix-build-qt6`\n- **Qt5 build**: `just nix-build-qt5`\n- **Force rebuild**: `just nix-build-force`\n\n### Manual Build with CMake\n\nAlternatively, use CMake for building:\n\n```bash\nmkdir build && cd build\n\n# Configure with Qt6\ncmake ../src -DQON_QT6_BUILD=ON -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Or with Qt5 (default)\ncmake ../src -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Build\nmake -j4\n```\n\n**Available CMake Options:**\n\n- `QON_QT6_BUILD=ON` - Build with Qt6 (default: OFF, uses Qt5)\n- `DEV_MODE=ON` - Enable developer mode with extra warnings\n- `BUILD_WITH_LIBGIT2=ON` - Use system libgit2 library\n- `BUILD_WITH_ASPELL=ON` - Enable aspell spell checking support\n- `USE_QLITEHTML=ON` - Use QLiteHtml for preview\n- `CMAKE_BUILD_TYPE=Debug|Release` - Build type\n\nExample with multiple options:\n\n```bash\ncmake ../src \\\n  -DQON_QT6_BUILD=ON \\\n  -DDEV_MODE=ON \\\n  -DBUILD_WITH_LIBGIT2=ON \\\n  -DBUILD_WITH_ASPELL=ON \\\n  -DCMAKE_BUILD_TYPE=Debug\n```\n\n## Project Structure\n\n- `src/` - Main source code directory\n  - `QOwnNotes.pro` - Main qmake project file\n  - `CMakeLists.txt` - CMake build configuration\n  - `libraries/` - Third-party libraries (submodules)\n- `tests/` - Test files\n- `build-QOwnNotes/` - Default build directory (gitignored)\n- `justfile` - Task runner configuration\n- `scripts/` - Helper scripts\n- `docs/` - Documentation\n\n## Key Libraries & Dependencies\n\n### Required Qt Modules\n\n- Qt Core, GUI, Widgets, SQL, SVG, Network, XML\n- Qt PrintSupport, QML, WebSockets, Concurrent\n- Qt Quick (for Qt6, enables more scripting options)\n\n### Optional Dependencies\n\n- **Botan**: Cryptographic library (can use system or internal version)\n  - Default build uses system Botan: `USE_SYSTEM_BOTAN=1`\n- **Aspell**: Spell checking support\n- **QLiteHtml**: HTML rendering (optional, enable with `USE_QLITEHTML`)\n\n## Development Configuration\n\n### Build Modes (qmake)\n\n- **Debug Mode**: `CONFIG+=debug` - Includes debug symbols\n- **Dev Mode**: `CONFIG+=DEV_MODE` - Enables higher warning levels and precompiled headers\n- **Integration Tests**: `DEFINES+=INTEGRATION_TESTS` - For test builds\n\n### Build Modes (CMake)\n\n- **CMAKE_BUILD_TYPE=Debug** - Debug build with symbols\n- **CMAKE_BUILD_TYPE=Release** - Optimized release build\n- **DEV_MODE=ON** - Developer mode with extra warnings and -Werror on Linux\n- **INTEGRATION_TESTS** - For test builds\n\n### Common Configuration\n\nThe recommended development build uses:\n\n**qmake:**\n\n```bash\nqmake \"CONFIG+=debug USE_SYSTEM_BOTAN=1\" ../src/QOwnNotes.pro CONFIG+=DEV_MODE\n```\n\n**CMake:**\n\n```bash\ncmake ../src -DCMAKE_BUILD_TYPE=Debug -DDEV_MODE=ON\n```\n\n## Testing\n\nRun the test suite:\n\n```bash\njust src-test\n```\n\nThis will:\n\n1. Build tests in `build-tests-QOwnNotes/` directory\n2. Run tests in minimal platform mode\n3. Clean up the test build directory\n\nFor VM tests (integration tests):\n\n```bash\njust vm-test\n```\n\n## Code Quality & Linting\n\n### Format Code\n\nFormat the entire project with clang-format:\n\n```bash\njust clang-format\n# Or aliases:\njust fix-linting\njust linter-fix\n```\n\n### Check Links\n\nValidate links in Markdown files:\n\n```bash\njust link-check\n```\n\n## Translation Workflow\n\n- **Download translations**: `just translations-download`\n- **Build translations**: `just translations-build`\n- **Upload to Crowdin**: `just translations-upload`\n- **Update translation files**: `just translations-update-files`\n- **Generate changelog line**: `just translations-changelog` (outputs a line like `- Added more ... translation (thank you, ...)`)\n\nTranslations are managed via Crowdin: https://crowdin.com/project/qownnotes\n\n## Important Notes for AI Assistants\n\n- **Always use `just nix-build` to build the project** - Don't try to run qmake/make directly unless specifically requested\n- **The project uses Qt/C++** - Be mindful of Qt's signal/slot mechanism, QObject lifecycle, and Qt-specific patterns\n- **Submodules are used** - Libraries in `src/libraries/` are git submodules\n- **Multiple Qt versions supported** - Code must work with both Qt 5.7+ and Qt6 (use Preprocessor Directives like `#if QT_VERSION < QT_VERSION_CHECK(5, 9, 0)` to handle differences)\n- **Cross-platform** - Code must work on Linux, macOS, and Windows\n- **Two build systems available** - Primary is qmake (`.pro` files), but CMake (`CMakeLists.txt`) is also supported\n- **Build projects** - The primary build project files are `src/QOwnNotes.pro` and `src/CMakeLists.txt`\n- **Development mode** - Use `CONFIG+=DEV_MODE` for qmake or `-DDEV_MODE=ON` for CMake in active development\n  -. **Version bumping** - Update `src/version.h` and `src/build_number.h`, `BUILD` just needs to be increase by one - Version format is `MAJOR.MINOR.PATCH` (e.g. `22.12.0`), build number is a separate integer that increments with each release - The MAJOR part is always the last two digits of the year of the release (e.g. `22` for 2022), - The MINOR part is the month of the release (e.g. `12` for December), - The PATCH part is a counter that starts at `0` and increments with each release in the same month\n  (e.g. `0` for the first release in December 2022, `1` for the second release in December 2022, etc.)\n- **This project has translations** - They can be found in the `src/translations/` directory as `.ts` files\n- **Comments** - Always write clear and concise comments for complex logic, especially when dealing with Qt-specific features, start comments with uppercase letters\n- **Changelog** - Update the changelog with each release, following the format in `CHANGELOG.md`\n\n## Minimum Requirements\n\n- Qt 5.5+ or Qt 6.0+\n- GCC 4.8+\n- Desktop operating system supporting Qt\n\n## Useful Resources\n\n- Website: https://www.qownnotes.org\n- Documentation: https://www.qownnotes.org/getting-started/concept.html\n- GitHub Issues: https://github.com/pbek/QOwnNotes/issues\n- Script Repository: https://github.com/qownnotes/scripts\n- Changelog: https://www.qownnotes.org/changelog.html\n\n## Quick Reference Commands\n\n```bash\n# Build and run\njust src-build-run\n\n# Run tests\njust test\n\n# Format code\njust clang-format\n\n# Clean build\njust src-clean\n\n# List all available commands\njust --list\n```\n",".github/copilot-instructions.md":"# QOwnNotes - GitHub Copilot Instructions\n\n## Project Overview\n\nQOwnNotes is an open source notepad with Markdown support and todo list manager for GNU/Linux, macOS, and Windows. It works together with Nextcloud Notes and ownCloud Notes.\n\n- **Language**: C++\n- **Framework**: Qt (supports both Qt5 and Qt6)\n- **Build Systems**:\n  - **qmake** (`.pro` files) - Primary build system\n  - **CMake** (`CMakeLists.txt`) - Alternative build system\n- **Task Runner**: just (justfile)\n\n## Building the Application\n\n### Quick Build (Recommended for Development)\n\nUse the `just` task runner to build the application:\n\n```bash\njust src-build\n```\n\nThis command will:\n\n1. Check qmake version\n2. Create the `build-QOwnNotes` directory\n3. Run qmake with debug configuration and system Botan\n4. Build using all available CPU cores with `make -j$(nproc)`\n\n### Alternative Build Commands\n\n- **Run tests**: `just src-test` (or `just test`)\n- **Clean build directory**: `just src-clean`\n- **Build and run**: `just src-build-run`\n- **Run built application**: `just src-run`\n\n### Building with Nix\n\nFor Nix users, multiple build options are available:\n\n- **Qt6 build**: `just nix-build` or `just nix-build-qt6`\n- **Qt5 build**: `just nix-build-qt5`\n- **Force rebuild**: `just nix-build-force`\n\n### Manual Build with CMake\n\nAlternatively, use CMake for building:\n\n```bash\nmkdir build && cd build\n\n# Configure with Qt6\ncmake ../src -DQON_QT6_BUILD=ON -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Or with Qt5 (default)\ncmake ../src -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Build\nmake -j4\n```\n\n**Available CMake Options:**\n\n- `QON_QT6_BUILD=ON` - Build with Qt6 (default: OFF, uses Qt5)\n- `DEV_MODE=ON` - Enable developer mode with extra warnings\n- `BUILD_WITH_LIBGIT2=ON` - Use system libgit2 library\n- `BUILD_WITH_ASPELL=ON` - Enable aspell spell checking support\n- `USE_QLITEHTML=ON` - Use QLiteHtml for preview\n- `CMAKE_BUILD_TYPE=Debug|Release` - Build type\n\nExample with multiple options:\n\n```bash\ncmake ../src \\\n  -DQON_QT6_BUILD=ON \\\n  -DDEV_MODE=ON \\\n  -DBUILD_WITH_LIBGIT2=ON \\\n  -DBUILD_WITH_ASPELL=ON \\\n  -DCMAKE_BUILD_TYPE=Debug\n```\n\n## Project Structure\n\n- `src/` - Main source code directory\n  - `QOwnNotes.pro` - Main qmake project file\n  - `CMakeLists.txt` - CMake build configuration\n  - `libraries/` - Third-party libraries (submodules)\n- `tests/` - Test files\n- `build-QOwnNotes/` - Default build directory (gitignored)\n- `justfile` - Task runner configuration\n- `scripts/` - Helper scripts\n- `docs/` - Documentation\n\n## Key Libraries & Dependencies\n\n### Required Qt Modules\n\n- Qt Core, GUI, Widgets, SQL, SVG, Network, XML\n- Qt PrintSupport, QML, WebSockets, Concurrent\n- Qt Quick (for Qt6, enables more scripting options)\n\n### Optional Dependencies\n\n- **Botan**: Cryptographic library (can use system or internal version)\n  - Default build uses system Botan: `USE_SYSTEM_BOTAN=1`\n- **Aspell**: Spell checking support\n- **QLiteHtml**: HTML rendering (optional, enable with `USE_QLITEHTML`)\n\n## Development Configuration\n\n### Build Modes (qmake)\n\n- **Debug Mode**: `CONFIG+=debug` - Includes debug symbols\n- **Dev Mode**: `CONFIG+=DEV_MODE` - Enables higher warning levels and precompiled headers\n- **Integration Tests**: `DEFINES+=INTEGRATION_TESTS` - For test builds\n\n### Build Modes (CMake)\n\n- **CMAKE_BUILD_TYPE=Debug** - Debug build with symbols\n- **CMAKE_BUILD_TYPE=Release** - Optimized release build\n- **DEV_MODE=ON** - Developer mode with extra warnings and -Werror on Linux\n- **INTEGRATION_TESTS** - For test builds\n\n### Common Configuration\n\nThe recommended development build uses:\n\n**qmake:**\n\n```bash\nqmake \"CONFIG+=debug USE_SYSTEM_BOTAN=1\" ../src/QOwnNotes.pro CONFIG+=DEV_MODE\n```\n\n**CMake:**\n\n```bash\ncmake ../src -DCMAKE_BUILD_TYPE=Debug -DDEV_MODE=ON\n```\n\n## Testing\n\nRun the test suite:\n\n```bash\njust src-test\n```\n\nThis will:\n\n1. Build tests in `build-tests-QOwnNotes/` directory\n2. Run tests in minimal platform mode\n3. Clean up the test build directory\n\nFor VM tests (integration tests):\n\n```bash\njust vm-test\n```\n\n## Code Quality & Linting\n\n### Format Code\n\nFormat the entire project with clang-format:\n\n```bash\njust clang-format\n# Or aliases:\njust fix-linting\njust linter-fix\n```\n\n### Check Links\n\nValidate links in Markdown files:\n\n```bash\njust link-check\n```\n\n## Translation Workflow\n\n- **Download translations**: `just translations-download`\n- **Build translations**: `just translations-build`\n- **Upload to Crowdin**: `just translations-upload`\n- **Update translation files**: `just translations-update-files`\n\nTranslations are managed via Crowdin: https://crowdin.com/project/qownnotes\n\n## Important Notes for AI Assistants\n\n1. **Always use `just src-build` to build the project** - Don't try to run qmake/make directly unless specifically requested\n2. **Always use `just nix-build` to build the project when asked to use nix**\n3. **The project uses Qt/C++** - Be mindful of Qt's signal/slot mechanism, QObject lifecycle, and Qt-specific patterns\n4. **Submodules are used** - Libraries in `src/libraries/` are git submodules\n5. **Multiple Qt versions supported** - Code must work with both Qt5 and Qt6\n6. **Cross-platform** - Code must work on Linux, macOS, and Windows\n7. **Two build systems available** - Primary is qmake (`.pro` files), but CMake (`CMakeLists.txt`) is also supported\n8. **Development mode** - Use `CONFIG+=DEV_MODE` for qmake or `-DDEV_MODE=ON` for CMake in active development\n9. **Version bumping** - Update `src/version.h` and `src/build_number.h`, `BUILD` just needs to be increase by one\n10. **This project has translations** - They can be found in the `src/translations/` directory as `.ts` files\n\n## Minimum Requirements\n\n- Qt 5.5+ or Qt 6.0+\n- GCC 4.8+\n- Desktop operating system supporting Qt\n\n## Useful Resources\n\n- Website: https://www.qownnotes.org\n- Documentation: https://www.qownnotes.org/getting-started/concept.html\n- GitHub Issues: https://github.com/pbek/QOwnNotes/issues\n- Script Repository: https://github.com/qownnotes/scripts\n- Changelog: https://www.qownnotes.org/changelog.html\n\n## Quick Reference Commands\n\n```bash\n# Build and run\njust src-build-run\n\n# Run tests\njust test\n\n# Format code\njust clang-format\n\n# Clean build\njust src-clean\n\n# List all available commands\njust --list\n```\n"},"files":{"AGENTS.md":"# QOwnNotes - Agents Instructions\n\n## Project Overview\n\nQOwnNotes is an open source notepad with Markdown support and todo list manager for GNU/Linux, macOS, and Windows. It works together with Nextcloud Notes and ownCloud Notes.\n\n- **Language**: C++\n- **Framework**: Qt (supports both Qt5 and Qt6)\n- **Build Systems**:\n  - **qmake** (`.pro` files) - Primary build system\n  - **CMake** (`CMakeLists.txt`) - Alternative build system\n- **Task Runner**: just (justfile)\n\n## Building the Application\n\n### Quick Build (Recommended for Development)\n\nUse the `just` task runner to build the application:\n\n```bash\njust src-build\n```\n\nThis command will:\n\n1. Check qmake version\n2. Create the `build-QOwnNotes` directory\n3. Run qmake with debug configuration and system Botan\n4. Build using all available CPU cores with `make -j$(nproc)`\n\n### Alternative Build Commands\n\n- **Run tests**: `just src-test` (or `just test`)\n- **Clean build directory**: `just src-clean`\n- **Build and run**: `just src-build-run`\n- **Run built application**: `just src-run`\n\n### Building with Nix\n\nFor Nix users, multiple build options are available:\n\n- **Qt6 build**: `just nix-build` or `just nix-build-qt6`\n- **Qt5 build**: `just nix-build-qt5`\n- **Force rebuild**: `just nix-build-force`\n\n### Manual Build with CMake\n\nAlternatively, use CMake for building:\n\n```bash\nmkdir build && cd build\n\n# Configure with Qt6\ncmake ../src -DQON_QT6_BUILD=ON -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Or with Qt5 (default)\ncmake ../src -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Build\nmake -j4\n```\n\n**Available CMake Options:**\n\n- `QON_QT6_BUILD=ON` - Build with Qt6 (default: OFF, uses Qt5)\n- `DEV_MODE=ON` - Enable developer mode with extra warnings\n- `BUILD_WITH_LIBGIT2=ON` - Use system libgit2 library\n- `BUILD_WITH_ASPELL=ON` - Enable aspell spell checking support\n- `USE_QLITEHTML=ON` - Use QLiteHtml for preview\n- `CMAKE_BUILD_TYPE=Debug|Release` - Build type\n\nExample with multiple options:\n\n```bash\ncmake ../src \\\n  -DQON_QT6_BUILD=ON \\\n  -DDEV_MODE=ON \\\n  -DBUILD_WITH_LIBGIT2=ON \\\n  -DBUILD_WITH_ASPELL=ON \\\n  -DCMAKE_BUILD_TYPE=Debug\n```\n\n## Project Structure\n\n- `src/` - Main source code directory\n  - `QOwnNotes.pro` - Main qmake project file\n  - `CMakeLists.txt` - CMake build configuration\n  - `libraries/` - Third-party libraries (submodules)\n- `tests/` - Test files\n- `build-QOwnNotes/` - Default build directory (gitignored)\n- `justfile` - Task runner configuration\n- `scripts/` - Helper scripts\n- `docs/` - Documentation\n\n## Key Libraries & Dependencies\n\n### Required Qt Modules\n\n- Qt Core, GUI, Widgets, SQL, SVG, Network, XML\n- Qt PrintSupport, QML, WebSockets, Concurrent\n- Qt Quick (for Qt6, enables more scripting options)\n\n### Optional Dependencies\n\n- **Botan**: Cryptographic library (can use system or internal version)\n  - Default build uses system Botan: `USE_SYSTEM_BOTAN=1`\n- **Aspell**: Spell checking support\n- **QLiteHtml**: HTML rendering (optional, enable with `USE_QLITEHTML`)\n\n## Development Configuration\n\n### Build Modes (qmake)\n\n- **Debug Mode**: `CONFIG+=debug` - Includes debug symbols\n- **Dev Mode**: `CONFIG+=DEV_MODE` - Enables higher warning levels and precompiled headers\n- **Integration Tests**: `DEFINES+=INTEGRATION_TESTS` - For test builds\n\n### Build Modes (CMake)\n\n- **CMAKE_BUILD_TYPE=Debug** - Debug build with symbols\n- **CMAKE_BUILD_TYPE=Release** - Optimized release build\n- **DEV_MODE=ON** - Developer mode with extra warnings and -Werror on Linux\n- **INTEGRATION_TESTS** - For test builds\n\n### Common Configuration\n\nThe recommended development build uses:\n\n**qmake:**\n\n```bash\nqmake \"CONFIG+=debug USE_SYSTEM_BOTAN=1\" ../src/QOwnNotes.pro CONFIG+=DEV_MODE\n```\n\n**CMake:**\n\n```bash\ncmake ../src -DCMAKE_BUILD_TYPE=Debug -DDEV_MODE=ON\n```\n\n## Testing\n\nRun the test suite:\n\n```bash\njust src-test\n```\n\nThis will:\n\n1. Build tests in `build-tests-QOwnNotes/` directory\n2. Run tests in minimal platform mode\n3. Clean up the test build directory\n\nFor VM tests (integration tests):\n\n```bash\njust vm-test\n```\n\n## Code Quality & Linting\n\n### Format Code\n\nFormat the entire project with clang-format:\n\n```bash\njust clang-format\n# Or aliases:\njust fix-linting\njust linter-fix\n```\n\n### Check Links\n\nValidate links in Markdown files:\n\n```bash\njust link-check\n```\n\n## Translation Workflow\n\n- **Download translations**: `just translations-download`\n- **Build translations**: `just translations-build`\n- **Upload to Crowdin**: `just translations-upload`\n- **Update translation files**: `just translations-update-files`\n- **Generate changelog line**: `just translations-changelog` (outputs a line like `- Added more ... translation (thank you, ...)`)\n\nTranslations are managed via Crowdin: https://crowdin.com/project/qownnotes\n\n## Important Notes for AI Assistants\n\n- **Always use `just nix-build` to build the project** - Don't try to run qmake/make directly unless specifically requested\n- **The project uses Qt/C++** - Be mindful of Qt's signal/slot mechanism, QObject lifecycle, and Qt-specific patterns\n- **Submodules are used** - Libraries in `src/libraries/` are git submodules\n- **Multiple Qt versions supported** - Code must work with both Qt 5.7+ and Qt6 (use Preprocessor Directives like `#if QT_VERSION < QT_VERSION_CHECK(5, 9, 0)` to handle differences)\n- **Cross-platform** - Code must work on Linux, macOS, and Windows\n- **Two build systems available** - Primary is qmake (`.pro` files), but CMake (`CMakeLists.txt`) is also supported\n- **Build projects** - The primary build project files are `src/QOwnNotes.pro` and `src/CMakeLists.txt`\n- **Development mode** - Use `CONFIG+=DEV_MODE` for qmake or `-DDEV_MODE=ON` for CMake in active development\n  -. **Version bumping** - Update `src/version.h` and `src/build_number.h`, `BUILD` just needs to be increase by one - Version format is `MAJOR.MINOR.PATCH` (e.g. `22.12.0`), build number is a separate integer that increments with each release - The MAJOR part is always the last two digits of the year of the release (e.g. `22` for 2022), - The MINOR part is the month of the release (e.g. `12` for December), - The PATCH part is a counter that starts at `0` and increments with each release in the same month\n  (e.g. `0` for the first release in December 2022, `1` for the second release in December 2022, etc.)\n- **This project has translations** - They can be found in the `src/translations/` directory as `.ts` files\n- **Comments** - Always write clear and concise comments for complex logic, especially when dealing with Qt-specific features, start comments with uppercase letters\n- **Changelog** - Update the changelog with each release, following the format in `CHANGELOG.md`\n\n## Minimum Requirements\n\n- Qt 5.5+ or Qt 6.0+\n- GCC 4.8+\n- Desktop operating system supporting Qt\n\n## Useful Resources\n\n- Website: https://www.qownnotes.org\n- Documentation: https://www.qownnotes.org/getting-started/concept.html\n- GitHub Issues: https://github.com/pbek/QOwnNotes/issues\n- Script Repository: https://github.com/qownnotes/scripts\n- Changelog: https://www.qownnotes.org/changelog.html\n\n## Quick Reference Commands\n\n```bash\n# Build and run\njust src-build-run\n\n# Run tests\njust test\n\n# Format code\njust clang-format\n\n# Clean build\njust src-clean\n\n# List all available commands\njust --list\n```\n",".github/copilot-instructions.md":"# QOwnNotes - GitHub Copilot Instructions\n\n## Project Overview\n\nQOwnNotes is an open source notepad with Markdown support and todo list manager for GNU/Linux, macOS, and Windows. It works together with Nextcloud Notes and ownCloud Notes.\n\n- **Language**: C++\n- **Framework**: Qt (supports both Qt5 and Qt6)\n- **Build Systems**:\n  - **qmake** (`.pro` files) - Primary build system\n  - **CMake** (`CMakeLists.txt`) - Alternative build system\n- **Task Runner**: just (justfile)\n\n## Building the Application\n\n### Quick Build (Recommended for Development)\n\nUse the `just` task runner to build the application:\n\n```bash\njust src-build\n```\n\nThis command will:\n\n1. Check qmake version\n2. Create the `build-QOwnNotes` directory\n3. Run qmake with debug configuration and system Botan\n4. Build using all available CPU cores with `make -j$(nproc)`\n\n### Alternative Build Commands\n\n- **Run tests**: `just src-test` (or `just test`)\n- **Clean build directory**: `just src-clean`\n- **Build and run**: `just src-build-run`\n- **Run built application**: `just src-run`\n\n### Building with Nix\n\nFor Nix users, multiple build options are available:\n\n- **Qt6 build**: `just nix-build` or `just nix-build-qt6`\n- **Qt5 build**: `just nix-build-qt5`\n- **Force rebuild**: `just nix-build-force`\n\n### Manual Build with CMake\n\nAlternatively, use CMake for building:\n\n```bash\nmkdir build && cd build\n\n# Configure with Qt6\ncmake ../src -DQON_QT6_BUILD=ON -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Or with Qt5 (default)\ncmake ../src -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Build\nmake -j4\n```\n\n**Available CMake Options:**\n\n- `QON_QT6_BUILD=ON` - Build with Qt6 (default: OFF, uses Qt5)\n- `DEV_MODE=ON` - Enable developer mode with extra warnings\n- `BUILD_WITH_LIBGIT2=ON` - Use system libgit2 library\n- `BUILD_WITH_ASPELL=ON` - Enable aspell spell checking support\n- `USE_QLITEHTML=ON` - Use QLiteHtml for preview\n- `CMAKE_BUILD_TYPE=Debug|Release` - Build type\n\nExample with multiple options:\n\n```bash\ncmake ../src \\\n  -DQON_QT6_BUILD=ON \\\n  -DDEV_MODE=ON \\\n  -DBUILD_WITH_LIBGIT2=ON \\\n  -DBUILD_WITH_ASPELL=ON \\\n  -DCMAKE_BUILD_TYPE=Debug\n```\n\n## Project Structure\n\n- `src/` - Main source code directory\n  - `QOwnNotes.pro` - Main qmake project file\n  - `CMakeLists.txt` - CMake build configuration\n  - `libraries/` - Third-party libraries (submodules)\n- `tests/` - Test files\n- `build-QOwnNotes/` - Default build directory (gitignored)\n- `justfile` - Task runner configuration\n- `scripts/` - Helper scripts\n- `docs/` - Documentation\n\n## Key Libraries & Dependencies\n\n### Required Qt Modules\n\n- Qt Core, GUI, Widgets, SQL, SVG, Network, XML\n- Qt PrintSupport, QML, WebSockets, Concurrent\n- Qt Quick (for Qt6, enables more scripting options)\n\n### Optional Dependencies\n\n- **Botan**: Cryptographic library (can use system or internal version)\n  - Default build uses system Botan: `USE_SYSTEM_BOTAN=1`\n- **Aspell**: Spell checking support\n- **QLiteHtml**: HTML rendering (optional, enable with `USE_QLITEHTML`)\n\n## Development Configuration\n\n### Build Modes (qmake)\n\n- **Debug Mode**: `CONFIG+=debug` - Includes debug symbols\n- **Dev Mode**: `CONFIG+=DEV_MODE` - Enables higher warning levels and precompiled headers\n- **Integration Tests**: `DEFINES+=INTEGRATION_TESTS` - For test builds\n\n### Build Modes (CMake)\n\n- **CMAKE_BUILD_TYPE=Debug** - Debug build with symbols\n- **CMAKE_BUILD_TYPE=Release** - Optimized release build\n- **DEV_MODE=ON** - Developer mode with extra warnings and -Werror on Linux\n- **INTEGRATION_TESTS** - For test builds\n\n### Common Configuration\n\nThe recommended development build uses:\n\n**qmake:**\n\n```bash\nqmake \"CONFIG+=debug USE_SYSTEM_BOTAN=1\" ../src/QOwnNotes.pro CONFIG+=DEV_MODE\n```\n\n**CMake:**\n\n```bash\ncmake ../src -DCMAKE_BUILD_TYPE=Debug -DDEV_MODE=ON\n```\n\n## Testing\n\nRun the test suite:\n\n```bash\njust src-test\n```\n\nThis will:\n\n1. Build tests in `build-tests-QOwnNotes/` directory\n2. Run tests in minimal platform mode\n3. Clean up the test build directory\n\nFor VM tests (integration tests):\n\n```bash\njust vm-test\n```\n\n## Code Quality & Linting\n\n### Format Code\n\nFormat the entire project with clang-format:\n\n```bash\njust clang-format\n# Or aliases:\njust fix-linting\njust linter-fix\n```\n\n### Check Links\n\nValidate links in Markdown files:\n\n```bash\njust link-check\n```\n\n## Translation Workflow\n\n- **Download translations**: `just translations-download`\n- **Build translations**: `just translations-build`\n- **Upload to Crowdin**: `just translations-upload`\n- **Update translation files**: `just translations-update-files`\n\nTranslations are managed via Crowdin: https://crowdin.com/project/qownnotes\n\n## Important Notes for AI Assistants\n\n1. **Always use `just src-build` to build the project** - Don't try to run qmake/make directly unless specifically requested\n2. **Always use `just nix-build` to build the project when asked to use nix**\n3. **The project uses Qt/C++** - Be mindful of Qt's signal/slot mechanism, QObject lifecycle, and Qt-specific patterns\n4. **Submodules are used** - Libraries in `src/libraries/` are git submodules\n5. **Multiple Qt versions supported** - Code must work with both Qt5 and Qt6\n6. **Cross-platform** - Code must work on Linux, macOS, and Windows\n7. **Two build systems available** - Primary is qmake (`.pro` files), but CMake (`CMakeLists.txt`) is also supported\n8. **Development mode** - Use `CONFIG+=DEV_MODE` for qmake or `-DDEV_MODE=ON` for CMake in active development\n9. **Version bumping** - Update `src/version.h` and `src/build_number.h`, `BUILD` just needs to be increase by one\n10. **This project has translations** - They can be found in the `src/translations/` directory as `.ts` files\n\n## Minimum Requirements\n\n- Qt 5.5+ or Qt 6.0+\n- GCC 4.8+\n- Desktop operating system supporting Qt\n\n## Useful Resources\n\n- Website: https://www.qownnotes.org\n- Documentation: https://www.qownnotes.org/getting-started/concept.html\n- GitHub Issues: https://github.com/pbek/QOwnNotes/issues\n- Script Repository: https://github.com/qownnotes/scripts\n- Changelog: https://www.qownnotes.org/changelog.html\n\n## Quick Reference Commands\n\n```bash\n# Build and run\njust src-build-run\n\n# Run tests\njust test\n\n# Format code\njust clang-format\n\n# Clean build\njust src-clean\n\n# List all available commands\njust --list\n```\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# QOwnNotes - Agents Instructions\n\n## Project Overview\n\nQOwnNotes is an open source notepad with Markdown support and todo list manager for GNU/Linux, macOS, and Windows. It works together with Nextcloud Notes and ownCloud Notes.\n\n- **Language**: C++\n- **Framework**: Qt (supports both Qt5 and Qt6)\n- **Build Systems**:\n  - **qmake** (`.pro` files) - Primary build system\n  - **CMake** (`CMakeLists.txt`) - Alternative build system\n- **Task Runner**: just (justfile)\n\n## Building the Application\n\n### Quick Build (Recommended for Development)\n\nUse the `just` task runner to build the application:\n\n```bash\njust src-build\n```\n\nThis command will:\n\n1. Check qmake version\n2. Create the `build-QOwnNotes` directory\n3. Run qmake with debug configuration and system Botan\n4. Build using all available CPU cores with `make -j$(nproc)`\n\n### Alternative Build Commands\n\n- **Run tests**: `just src-test` (or `just test`)\n- **Clean build directory**: `just src-clean`\n- **Build and run**: `just src-build-run`\n- **Run built application**: `just src-run`\n\n### Building with Nix\n\nFor Nix users, multiple build options are available:\n\n- **Qt6 build**: `just nix-build` or `just nix-build-qt6`\n- **Qt5 build**: `just nix-build-qt5`\n- **Force rebuild**: `just nix-build-force`\n\n### Manual Build with CMake\n\nAlternatively, use CMake for building:\n\n```bash\nmkdir build && cd build\n\n# Configure with Qt6\ncmake ../src -DQON_QT6_BUILD=ON -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Or with Qt5 (default)\ncmake ../src -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Build\nmake -j4\n```\n\n**Available CMake Options:**\n\n- `QON_QT6_BUILD=ON` - Build with Qt6 (default: OFF, uses Qt5)\n- `DEV_MODE=ON` - Enable developer mode with extra warnings\n- `BUILD_WITH_LIBGIT2=ON` - Use system libgit2 library\n- `BUILD_WITH_ASPELL=ON` - Enable aspell spell checking support\n- `USE_QLITEHTML=ON` - Use QLiteHtml for preview\n- `CMAKE_BUILD_TYPE=Debug|Release` - Build type\n\nExample with multiple options:\n\n```bash\ncmake ../src \\\n  -DQON_QT6_BUILD=ON \\\n  -DDEV_MODE=ON \\\n  -DBUILD_WITH_LIBGIT2=ON \\\n  -DBUILD_WITH_ASPELL=ON \\\n  -DCMAKE_BUILD_TYPE=Debug\n```\n\n## Project Structure\n\n- `src/` - Main source code directory\n  - `QOwnNotes.pro` - Main qmake project file\n  - `CMakeLists.txt` - CMake build configuration\n  - `libraries/` - Third-party libraries (submodules)\n- `tests/` - Test files\n- `build-QOwnNotes/` - Default build directory (gitignored)\n- `justfile` - Task runner configuration\n- `scripts/` - Helper scripts\n- `docs/` - Documentation\n\n## Key Libraries & Dependencies\n\n### Required Qt Modules\n\n- Qt Core, GUI, Widgets, SQL, SVG, Network, XML\n- Qt PrintSupport, QML, WebSockets, Concurrent\n- Qt Quick (for Qt6, enables more scripting options)\n\n### Optional Dependencies\n\n- **Botan**: Cryptographic library (can use system or internal version)\n  - Default build uses system Botan: `USE_SYSTEM_BOTAN=1`\n- **Aspell**: Spell checking support\n- **QLiteHtml**: HTML rendering (optional, enable with `USE_QLITEHTML`)\n\n## Development Configuration\n\n### Build Modes (qmake)\n\n- **Debug Mode**: `CONFIG+=debug` - Includes debug symbols\n- **Dev Mode**: `CONFIG+=DEV_MODE` - Enables higher warning levels and precompiled headers\n- **Integration Tests**: `DEFINES+=INTEGRATION_TESTS` - For test builds\n\n### Build Modes (CMake)\n\n- **CMAKE_BUILD_TYPE=Debug** - Debug build with symbols\n- **CMAKE_BUILD_TYPE=Release** - Optimized release build\n- **DEV_MODE=ON** - Developer mode with extra warnings and -Werror on Linux\n- **INTEGRATION_TESTS** - For test builds\n\n### Common Configuration\n\nThe recommended development build uses:\n\n**qmake:**\n\n```bash\nqmake \"CONFIG+=debug USE_SYSTEM_BOTAN=1\" ../src/QOwnNotes.pro CONFIG+=DEV_MODE\n```\n\n**CMake:**\n\n```bash\ncmake ../src -DCMAKE_BUILD_TYPE=Debug -DDEV_MODE=ON\n```\n\n## Testing\n\nRun the test suite:\n\n```bash\njust src-test\n```\n\nThis will:\n\n1. Build tests in `build-tests-QOwnNotes/` directory\n2. Run tests in minimal platform mode\n3. Clean up the test build directory\n\nFor VM tests (integration tests):\n\n```bash\njust vm-test\n```\n\n## Code Quality & Linting\n\n### Format Code\n\nFormat the entire project with clang-format:\n\n```bash\njust clang-format\n# Or aliases:\njust fix-linting\njust linter-fix\n```\n\n### Check Links\n\nValidate links in Markdown files:\n\n```bash\njust link-check\n```\n\n## Translation Workflow\n\n- **Download translations**: `just translations-download`\n- **Build translations**: `just translations-build`\n- **Upload to Crowdin**: `just translations-upload`\n- **Update translation files**: `just translations-update-files`\n- **Generate changelog line**: `just translations-changelog` (outputs a line like `- Added more ... translation (thank you, ...)`)\n\nTranslations are managed via Crowdin: https://crowdin.com/project/qownnotes\n\n## Important Notes for AI Assistants\n\n- **Always use `just nix-build` to build the project** - Don't try to run qmake/make directly unless specifically requested\n- **The project uses Qt/C++** - Be mindful of Qt's signal/slot mechanism, QObject lifecycle, and Qt-specific patterns\n- **Submodules are used** - Libraries in `src/libraries/` are git submodules\n- **Multiple Qt versions supported** - Code must work with both Qt 5.7+ and Qt6 (use Preprocessor Directives like `#if QT_VERSION < QT_VERSION_CHECK(5, 9, 0)` to handle differences)\n- **Cross-platform** - Code must work on Linux, macOS, and Windows\n- **Two build systems available** - Primary is qmake (`.pro` files), but CMake (`CMakeLists.txt`) is also supported\n- **Build projects** - The primary build project files are `src/QOwnNotes.pro` and `src/CMakeLists.txt`\n- **Development mode** - Use `CONFIG+=DEV_MODE` for qmake or `-DDEV_MODE=ON` for CMake in active development\n  -. **Version bumping** - Update `src/version.h` and `src/build_number.h`, `BUILD` just needs to be increase by one - Version format is `MAJOR.MINOR.PATCH` (e.g. `22.12.0`), build number is a separate integer that increments with each release - The MAJOR part is always the last two digits of the year of the release (e.g. `22` for 2022), - The MINOR part is the month of the release (e.g. `12` for December), - The PATCH part is a counter that starts at `0` and increments with each release in the same month\n  (e.g. `0` for the first release in December 2022, `1` for the second release in December 2022, etc.)\n- **This project has translations** - They can be found in the `src/translations/` directory as `.ts` files\n- **Comments** - Always write clear and concise comments for complex logic, especially when dealing with Qt-specific features, start comments with uppercase letters\n- **Changelog** - Update the changelog with each release, following the format in `CHANGELOG.md`\n\n## Minimum Requirements\n\n- Qt 5.5+ or Qt 6.0+\n- GCC 4.8+\n- Desktop operating system supporting Qt\n\n## Useful Resources\n\n- Website: https://www.qownnotes.org\n- Documentation: https://www.qownnotes.org/getting-started/concept.html\n- GitHub Issues: https://github.com/pbek/QOwnNotes/issues\n- Script Repository: https://github.com/qownnotes/scripts\n- Changelog: https://www.qownnotes.org/changelog.html\n\n## Quick Reference Commands\n\n```bash\n# Build and run\njust src-build-run\n\n# Run tests\njust test\n\n# Format code\njust clang-format\n\n# Clean build\njust src-clean\n\n# List all available commands\njust --list\n```\n","category":"root","tokens":1814},{"name":"copilot-instructions.md","path":".github/copilot-instructions.md","title":"copilot-instructions.md","content":"# QOwnNotes - GitHub Copilot Instructions\n\n## Project Overview\n\nQOwnNotes is an open source notepad with Markdown support and todo list manager for GNU/Linux, macOS, and Windows. It works together with Nextcloud Notes and ownCloud Notes.\n\n- **Language**: C++\n- **Framework**: Qt (supports both Qt5 and Qt6)\n- **Build Systems**:\n  - **qmake** (`.pro` files) - Primary build system\n  - **CMake** (`CMakeLists.txt`) - Alternative build system\n- **Task Runner**: just (justfile)\n\n## Building the Application\n\n### Quick Build (Recommended for Development)\n\nUse the `just` task runner to build the application:\n\n```bash\njust src-build\n```\n\nThis command will:\n\n1. Check qmake version\n2. Create the `build-QOwnNotes` directory\n3. Run qmake with debug configuration and system Botan\n4. Build using all available CPU cores with `make -j$(nproc)`\n\n### Alternative Build Commands\n\n- **Run tests**: `just src-test` (or `just test`)\n- **Clean build directory**: `just src-clean`\n- **Build and run**: `just src-build-run`\n- **Run built application**: `just src-run`\n\n### Building with Nix\n\nFor Nix users, multiple build options are available:\n\n- **Qt6 build**: `just nix-build` or `just nix-build-qt6`\n- **Qt5 build**: `just nix-build-qt5`\n- **Force rebuild**: `just nix-build-force`\n\n### Manual Build with CMake\n\nAlternatively, use CMake for building:\n\n```bash\nmkdir build && cd build\n\n# Configure with Qt6\ncmake ../src -DQON_QT6_BUILD=ON -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Or with Qt5 (default)\ncmake ../src -DDEV_MODE=ON -DCMAKE_BUILD_TYPE=Debug\n\n# Build\nmake -j4\n```\n\n**Available CMake Options:**\n\n- `QON_QT6_BUILD=ON` - Build with Qt6 (default: OFF, uses Qt5)\n- `DEV_MODE=ON` - Enable developer mode with extra warnings\n- `BUILD_WITH_LIBGIT2=ON` - Use system libgit2 library\n- `BUILD_WITH_ASPELL=ON` - Enable aspell spell checking support\n- `USE_QLITEHTML=ON` - Use QLiteHtml for preview\n- `CMAKE_BUILD_TYPE=Debug|Release` - Build type\n\nExample with multiple options:\n\n```bash\ncmake ../src \\\n  -DQON_QT6_BUILD=ON \\\n  -DDEV_MODE=ON \\\n  -DBUILD_WITH_LIBGIT2=ON \\\n  -DBUILD_WITH_ASPELL=ON \\\n  -DCMAKE_BUILD_TYPE=Debug\n```\n\n## Project Structure\n\n- `src/` - Main source code directory\n  - `QOwnNotes.pro` - Main qmake project file\n  - `CMakeLists.txt` - CMake build configuration\n  - `libraries/` - Third-party libraries (submodules)\n- `tests/` - Test files\n- `build-QOwnNotes/` - Default build directory (gitignored)\n- `justfile` - Task runner configuration\n- `scripts/` - Helper scripts\n- `docs/` - Documentation\n\n## Key Libraries & Dependencies\n\n### Required Qt Modules\n\n- Qt Core, GUI, Widgets, SQL, SVG, Network, XML\n- Qt PrintSupport, QML, WebSockets, Concurrent\n- Qt Quick (for Qt6, enables more scripting options)\n\n### Optional Dependencies\n\n- **Botan**: Cryptographic library (can use system or internal version)\n  - Default build uses system Botan: `USE_SYSTEM_BOTAN=1`\n- **Aspell**: Spell checking support\n- **QLiteHtml**: HTML rendering (optional, enable with `USE_QLITEHTML`)\n\n## Development Configuration\n\n### Build Modes (qmake)\n\n- **Debug Mode**: `CONFIG+=debug` - Includes debug symbols\n- **Dev Mode**: `CONFIG+=DEV_MODE` - Enables higher warning levels and precompiled headers\n- **Integration Tests**: `DEFINES+=INTEGRATION_TESTS` - For test builds\n\n### Build Modes (CMake)\n\n- **CMAKE_BUILD_TYPE=Debug** - Debug build with symbols\n- **CMAKE_BUILD_TYPE=Release** - Optimized release build\n- **DEV_MODE=ON** - Developer mode with extra warnings and -Werror on Linux\n- **INTEGRATION_TESTS** - For test builds\n\n### Common Configuration\n\nThe recommended development build uses:\n\n**qmake:**\n\n```bash\nqmake \"CONFIG+=debug USE_SYSTEM_BOTAN=1\" ../src/QOwnNotes.pro CONFIG+=DEV_MODE\n```\n\n**CMake:**\n\n```bash\ncmake ../src -DCMAKE_BUILD_TYPE=Debug -DDEV_MODE=ON\n```\n\n## Testing\n\nRun the test suite:\n\n```bash\njust src-test\n```\n\nThis will:\n\n1. Build tests in `build-tests-QOwnNotes/` directory\n2. Run tests in minimal platform mode\n3. Clean up the test build directory\n\nFor VM tests (integration tests):\n\n```bash\njust vm-test\n```\n\n## Code Quality & Linting\n\n### Format Code\n\nFormat the entire project with clang-format:\n\n```bash\njust clang-format\n# Or aliases:\njust fix-linting\njust linter-fix\n```\n\n### Check Links\n\nValidate links in Markdown files:\n\n```bash\njust link-check\n```\n\n## Translation Workflow\n\n- **Download translations**: `just translations-download`\n- **Build translations**: `just translations-build`\n- **Upload to Crowdin**: `just translations-upload`\n- **Update translation files**: `just translations-update-files`\n\nTranslations are managed via Crowdin: https://crowdin.com/project/qownnotes\n\n## Important Notes for AI Assistants\n\n1. **Always use `just src-build` to build the project** - Don't try to run qmake/make directly unless specifically requested\n2. **Always use `just nix-build` to build the project when asked to use nix**\n3. **The project uses Qt/C++** - Be mindful of Qt's signal/slot mechanism, QObject lifecycle, and Qt-specific patterns\n4. **Submodules are used** - Libraries in `src/libraries/` are git submodules\n5. **Multiple Qt versions supported** - Code must work with both Qt5 and Qt6\n6. **Cross-platform** - Code must work on Linux, macOS, and Windows\n7. **Two build systems available** - Primary is qmake (`.pro` files), but CMake (`CMakeLists.txt`) is also supported\n8. **Development mode** - Use `CONFIG+=DEV_MODE` for qmake or `-DDEV_MODE=ON` for CMake in active development\n9. **Version bumping** - Update `src/version.h` and `src/build_number.h`, `BUILD` just needs to be increase by one\n10. **This project has translations** - They can be found in the `src/translations/` directory as `.ts` files\n\n## Minimum Requirements\n\n- Qt 5.5+ or Qt 6.0+\n- GCC 4.8+\n- Desktop operating system supporting Qt\n\n## Useful Resources\n\n- Website: https://www.qownnotes.org\n- Documentation: https://www.qownnotes.org/getting-started/concept.html\n- GitHub Issues: https://github.com/pbek/QOwnNotes/issues\n- Script Repository: https://github.com/qownnotes/scripts\n- Changelog: https://www.qownnotes.org/changelog.html\n\n## Quick Reference Commands\n\n```bash\n# Build and run\njust src-build-run\n\n# Run tests\njust test\n\n# Format code\njust clang-format\n\n# Clean build\njust src-clean\n\n# List all available commands\njust --list\n```\n","category":".github","tokens":1562}]}