diff --git a/.gitignore b/.gitignore index 4a2c739c..030b74db 100644 --- a/.gitignore +++ b/.gitignore @@ -44,5 +44,6 @@ build/ cmake-*/ -# doxyconfig -docs/doxyconfig* +# Dockle +/.dockle/ +/_site/ diff --git a/.gitmodules b/.gitmodules index 67e53761..65b8df97 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ -[submodule "third-party/doxyconfig"] - path = third-party/doxyconfig - url = https://github.com/LizardByte/doxyconfig.git +[submodule "third-party/dockle"] + path = third-party/dockle + url = https://github.com/LizardByte/dockle.git branch = master [submodule "third-party/lizardbyte-common"] path = third-party/lizardbyte-common diff --git a/.readthedocs.yaml b/.readthedocs.yaml index ee2f3bb2..5011c067 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,22 +8,23 @@ version: 2 build: os: ubuntu-24.04 tools: + nodejs: "24" python: "miniconda-latest" - commands: - - | - if [ -f readthedocs_build.sh ]; then - doxyconfig_dir="." - else - doxyconfig_dir="./third-party/doxyconfig" - fi - chmod +x "${doxyconfig_dir}/readthedocs_build.sh" - export DOXYCONFIG_DIR="${doxyconfig_dir}" - "${doxyconfig_dir}/readthedocs_build.sh" + jobs: + build: + html: + - | + if [ -f readthedocs_build.sh ]; then + dockle_dir="." + else + dockle_dir="./third-party/dockle" + fi + chmod +x "${dockle_dir}/readthedocs_build.sh" + export DOCKLE_DIR="${dockle_dir}" + "${dockle_dir}/readthedocs_build.sh" -# using conda, we can get newer doxygen and graphviz than ubuntu provide -# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661 conda: - environment: third-party/doxyconfig/environment.yml + environment: third-party/dockle/environment.yml submodules: include: all diff --git a/CMakeLists.txt b/CMakeLists.txt index 88cf108e..793a44c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,7 +142,8 @@ target_link_libraries(${PROJECT_NAME} PRIVATE ${TRAY_EXTERNAL_LIBRARIES}) # if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) if(BUILD_DOCS) - add_subdirectory(third-party/doxyconfig docs) + include(third-party/dockle/cmake/Dockle.cmake) + dockle_add_docs(docs TARGETS api) endif() if(BUILD_TESTS) diff --git a/README.md b/README.md index d5b2a826..5ca82c68 100644 --- a/README.md +++ b/README.md @@ -36,26 +36,31 @@ This fork adds the following features: ## 🖼️ Screenshots -
- + +
## 🖥️ Supported platforms @@ -75,48 +80,68 @@ This fork adds the following features: Install either Qt6 _or_ Qt5. -
- -- Arch - ```bash - # Qt6 - sudo pacman -S qt6-base qt6-svg - - # Qt5 - sudo pacman -S qt5-base qt5-svg - ``` - -- Debian/Ubuntu - ```bash - # Qt6 - sudo apt install qt6-base-dev qt6-svg-dev - - # Qt5 - sudo apt install qtbase5-dev libqt5svg5-dev - ``` - -- Fedora - ```bash - # Qt6 - sudo dnf install qt6-qtbase-devel qt6-qtsvg-devel - - # Qt5 - sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel - ``` - -- macOS - ```bash - brew install cmake ninja qtbase qtsvg - ``` - -- Windows (MSYS2 UCRT64) - ```bash - pacman -S mingw-w64-ucrt-x86_64-cmake \ - mingw-w64-ucrt-x86_64-ninja \ - mingw-w64-ucrt-x86_64-toolchain \ - mingw-w64-ucrt-x86_64-qt6-base \ - mingw-w64-ucrt-x86_64-qt6-svg - ``` +
+ +
+Arch + +```bash +# Qt6 +sudo pacman -S qt6-base qt6-svg + +# Qt5 +sudo pacman -S qt5-base qt5-svg +``` + +
+ +
+Debian/Ubuntu + +```bash +# Qt6 +sudo apt install qt6-base-dev qt6-svg-dev + +# Qt5 +sudo apt install qtbase5-dev libqt5svg5-dev +``` + +
+ +
+Fedora + +```bash +# Qt6 +sudo dnf install qt6-qtbase-devel qt6-qtsvg-devel + +# Qt5 +sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel +``` + +
+ +
+macOS + +```bash +brew install cmake ninja qtbase qtsvg +``` + +
+ +
+Windows (MSYS2 UCRT64) + +```bash +pacman -S mingw-w64-ucrt-x86_64-cmake \ + mingw-w64-ucrt-x86_64-ninja \ + mingw-w64-ucrt-x86_64-toolchain \ + mingw-w64-ucrt-x86_64-qt6-base \ + mingw-w64-ucrt-x86_64-qt6-svg +``` + +
@@ -205,8 +230,3 @@ array must have text field set to NULL. This software is distributed under [MIT license](http://www.opensource.org/licenses/mit-license.php), so feel free to integrate it in your commercial products. - -
- - [TOC] -
diff --git a/dockle.toml b/dockle.toml new file mode 100644 index 00000000..4700faed --- /dev/null +++ b/dockle.toml @@ -0,0 +1,32 @@ +[project] +name = "tray" +version = "0.0.0" +description = "Cross-platform implementation of a system tray icon with a popup menu and notifications." +repository = "https://github.com/LizardByte/tray" +logo = "tray.svg" +favicon = "tray.svg" + +[build] +output = "_site" +work = ".dockle" +strict = true +clean = true + +[[targets]] +name = "api" +title = "tray documentation" +framework = "doxygen" +source = "." +home = true + +[targets.doxygen] +inputs = ["README.md", "src"] +image_paths = ["docs/images"] +extra_stylesheets = [ + "https://cdn.jsdelivr.net/npm/@lizardbyte/shared-web@2026.920.12131/dist/crowdin-dockle-css.css", +] +extra_javascript = [ + "https://cdn.jsdelivr.net/npm/@lizardbyte/shared-web@2026.920.12131/dist/crowdin.js", + "docs/crowdin.js", +] +main_page = "README.md" diff --git a/docs/Doxyfile b/docs/Doxyfile deleted file mode 100644 index a4c89eee..00000000 --- a/docs/Doxyfile +++ /dev/null @@ -1,41 +0,0 @@ -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). -# -# Note: -# -# Use doxygen to compare the used configuration file with the template -# configuration file: -# doxygen -x [configFile] -# Use doxygen to compare the used configuration file with the template -# configuration file without replacing the environment variables or CMake type -# replacement variables: -# doxygen -x_noenv [configFile] - -# project metadata -DOCSET_BUNDLE_ID = dev.lizardbyte.tray -DOCSET_PUBLISHER_ID = dev.lizardbyte.tray.documentation -PROJECT_BRIEF = "Cross-platform implementation of a system tray icon with a popup menu and notifications." -PROJECT_ICON = ../tray.svg -PROJECT_LOGO = ../tray.svg -PROJECT_NAME = tray - -# project specific settings -DOT_GRAPH_MAX_NODES = 50 -IMAGE_PATH = ../docs/images -INCLUDE_PATH = - -# files and directories to process -USE_MDFILE_AS_MAINPAGE = ../README.md -INPUT = ../README.md \ - ../third-party/doxyconfig/docs/source_code.md \ - ../src diff --git a/docs/crowdin.js b/docs/crowdin.js new file mode 100644 index 00000000..8160fd18 --- /dev/null +++ b/docs/crowdin.js @@ -0,0 +1 @@ +globalThis.initCrowdIn('LizardByte-docs', 'dockle') diff --git a/third-party/dockle b/third-party/dockle new file mode 160000 index 00000000..c1bca827 --- /dev/null +++ b/third-party/dockle @@ -0,0 +1 @@ +Subproject commit c1bca827d905e3e64cc6663488f5f741e17e681a diff --git a/third-party/doxyconfig b/third-party/doxyconfig deleted file mode 160000 index 419127ba..00000000 --- a/third-party/doxyconfig +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 419127bad87f49b2d45fa957ea7302abbb49c01f