feat: add example with multiple rules in the same folder
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bf3e899..e38174e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -47,7 +47,7 @@
     runs-on: ${{ matrix.os }}
 
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Create .bazelversion file
         working-directory: examples
         run: echo "${{ matrix.bazel }}" > .bazelversion
@@ -72,7 +72,7 @@
     runs-on: ${{ matrix.os }}
 
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Install doxygen
         uses: ssciwr/doxygen-install@v1
         with:
@@ -103,7 +103,7 @@
         subdir: [base]
     runs-on: ${{ matrix.os }}
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Create .bazelversion file
         working-directory: examples
         run: echo "${{ matrix.bazel }}" > .bazelversion
@@ -157,7 +157,7 @@
         subdir: [base]
     runs-on: ${{ matrix.os }}
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Create .bazelversion file
         working-directory: examples
         run: echo "${{ matrix.bazel }}" > .bazelversion
@@ -225,7 +225,7 @@
     runs-on: ${{ matrix.os }}
 
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Create .bazelversion file
         working-directory: examples
         run: echo "${{ matrix.bazel }}" > .bazelversion
@@ -241,3 +241,31 @@
       - name: Check doxygen version in produced index.html
         run: grep "Doxygen $DEFAULT_DOXYGEN_VERSION" examples/submodules/${{ matrix.subdir }}/bazel-bin/html/index.html
         shell: bash
+
+  nested:
+    strategy:
+      matrix:
+        os: [ubuntu-latest, windows-latest, macos-latest]
+        bazel: [7.0.0, 8.0.0, rolling]
+    runs-on: ${{ matrix.os }}
+
+    steps:
+      - uses: actions/checkout@v6
+      - name: Create .bazelversion file
+        working-directory: examples
+        run: echo "${{ matrix.bazel }}" > .bazelversion
+        shell: bash
+      - name: Build nested
+        run: bazel build //nested:doxygen_a //nested:doxygen_b
+        working-directory: examples/nested
+      - name: Check output
+        uses: andstor/file-existence-action@v3
+        with:
+          files: examples/bazel-bin/nested/html/index.html
+          fail: true
+      - name: Check doxygen version in produced index.html
+        run: grep "Doxygen $DEFAULT_DOXYGEN_VERSION" examples/bazel-bin/nested/nested/a/html/index.html
+        shell: bash
+      - name: Check doxygen version in produced index.html
+        run: grep "Doxygen $DEFAULT_DOXYGEN_VERSION" examples/bazel-bin/nested/nested/b/html/index.html
+        shell: bash
diff --git a/examples/nested/BUILD.bazel b/examples/nested/BUILD.bazel
index 0d17a54..028f11b 100644
--- a/examples/nested/BUILD.bazel
+++ b/examples/nested/BUILD.bazel
@@ -16,3 +16,32 @@
     project_brief = "Example project for doxygen",
     project_name = "nested",
 )
+
+doxygen(
+    name = "doxygen_a",
+    srcs = ["//nested/lib_a:sources"],
+    outs = [
+        "a/html",
+        "a/tags",
+    ],
+    doxyfile_prefix = "a",
+    project_brief = "Example project for doxygen, library A",
+    project_name = "nested",
+    generate_tagfile = "$(OUTDIR)/tags/tagfile.xml",
+)
+
+doxygen(
+    name = "doxygen_b",
+        srcs = glob([
+        "lib_b/*.h",
+        "lib_b/*.cpp",
+    ]),
+    outs = [
+        "b/html",
+        "b/tags",
+    ],
+    doxyfile_prefix = "b",
+    project_brief = "Example project for doxygen, library B",
+    project_name = "nested",
+    generate_tagfile = "$(OUTDIR)/tags/tagfile.xml",
+)
diff --git a/examples/nested/README.md b/examples/nested/README.md
index 3c80a3a..4d61df6 100644
--- a/examples/nested/README.md
+++ b/examples/nested/README.md
@@ -77,3 +77,41 @@
     project_name = "nested",
 )
 ```
+
+## Handling multiple doxygen rules in the same folder
+
+Having multiple `doxygen` rules in the same folder is supported, but requires some extra configuration.
+By default, all rules would create a `Doxyfile` in the same location, causing a conflict.
+The same applies to the output `html` folder.  
+To avoid this, remember to specify different `doxyfile_prefix` and `outs` for each rule:
+
+```bzl
+doxygen(
+    name = "doxygen_a",
+    srcs = ["//nested/lib_a:sources"],
+    outs = [
+        "a/html",
+        "a/tags",
+    ],
+    doxyfile_prefix = "a",
+    project_brief = "Example project for doxygen, library A",
+    project_name = "nested",
+    generate_tagfile = "$(OUTDIR)/tags/tagfile.xml",
+)
+
+doxygen(
+    name = "doxygen_b",
+        srcs = glob([
+        "lib_b/*.h",
+        "lib_b/*.cpp",
+    ]),
+    outs = [
+        "b/html",
+        "b/tags",
+    ],
+    doxyfile_prefix = "b",
+    project_brief = "Example project for doxygen, library B",
+    project_name = "nested",
+    generate_tagfile = "$(OUTDIR)/tags/tagfile.xml",
+)
+```