Skip to content

Commit 871a174

Browse files
committed
wip: auto concepts doc generation
1 parent d4fec81 commit 871a174

7 files changed

Lines changed: 1439 additions & 24 deletions

File tree

Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ TAGS ?= dev
33

44
.PHONY: docs serve-docs clean-docs clean
55

6+
# Example usage: `make docs TAGS="v2.0.0 latest --update-aliases"`
67
docs:
78
@echo "==> Deploying MkDocs documentation locally via mike (Tags: $(TAGS))..."
9+
doxygen Doxyfile
10+
uv run python scripts/gen_concept_docs.py --xml documentation/xml --out docs/cpp-gl
811
uv run mike deploy $(TAGS)
912
@echo "==> Documentation deployed to local gh-pages branch."
10-
# Example usage: `make docs TAGS="v2.0.0 latest --update-aliases"`
1113

12-
serve-docs:
14+
serve-docs: docs
1315
@echo "==> Serving versioned MkDocs documentation locally via mike..."
1416
uv run mike serve
1517

docs/cpp-gl/concepts.md

Lines changed: 97 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,105 @@
33
This page serves as the central index for all C++20 concepts used across the library to enforce type safety and template constraints.
44

55
> [!IMPORTANT]
6-
> This page is maintained manually and separately from the auto-generated API reference as the [MkDoxy](https://github.com/JakubAndrysek/MkDoxy) tool does not currently support generating documentation for concepts.
6+
> This page is automatically generated by `generate_concepts.py` to bridge the gap in MkDoxy's C++20 concept support. **Do not edit this file manually.**
77
88
---
99

10-
## Graph Library Concepts
10+
## GL Concepts
1111

12-
The GL module relies on concepts to validate identifier types and property structures at compile time.
13-
14-
- **[GL Traits & Concepts Documentation](gl_traits.md)**: Full API reference for the GL module.
12+
- **[GL Traits & Concepts](gl_traits.md)**: Full API reference.
13+
- [`gl::traits::c_adjacency_list_graph`](gl_traits.md#gl-traits-c-adjacency-list-graph)
14+
- [`gl::traits::c_adjacency_list_graph_traits`](gl_traits.md#gl-traits-c-adjacency-list-graph-traits)
15+
- [`gl::traits::c_adjacency_matrix_graph`](gl_traits.md#gl-traits-c-adjacency-matrix-graph)
16+
- [`gl::traits::c_adjacency_matrix_graph_traits`](gl_traits.md#gl-traits-c-adjacency-matrix-graph-traits)
17+
- [`gl::traits::c_arithmetic`](gl_traits.md#gl-traits-c-arithmetic)
18+
- [`gl::traits::c_binary_color_properties_type`](gl_traits.md#gl-traits-c-binary-color-properties-type): Requirements for properties that support binary coloring algorithms.
19+
- [`gl::traits::c_callback`](gl_traits.md#gl-traits-c-callback)
20+
- [`gl::traits::c_comparable`](gl_traits.md#gl-traits-c-comparable)
21+
- [`gl::traits::c_const_iterator`](gl_traits.md#gl-traits-c-const-iterator)
22+
- [`gl::traits::c_const_range`](gl_traits.md#gl-traits-c-const-range)
23+
- [`gl::traits::c_decision_predicate`](gl_traits.md#gl-traits-c-decision-predicate)
24+
- [`gl::traits::c_directed_edge`](gl_traits.md#gl-traits-c-directed-edge)
25+
- [`gl::traits::c_directed_graph`](gl_traits.md#gl-traits-c-directed-graph)
26+
- [`gl::traits::c_directed_graph_traits`](gl_traits.md#gl-traits-c-directed-graph-traits)
27+
- [`gl::traits::c_empty_callback`](gl_traits.md#gl-traits-c-empty-callback)
28+
- [`gl::traits::c_empty_properties`](gl_traits.md#gl-traits-c-empty-properties): Validates if a type is specifically the gl::empty_properties tag.
29+
- [`gl::traits::c_enum`](gl_traits.md#gl-traits-c-enum)
30+
- [`gl::traits::c_flat_list_graph`](gl_traits.md#gl-traits-c-flat-list-graph)
31+
- [`gl::traits::c_flat_list_graph_traits`](gl_traits.md#gl-traits-c-flat-list-graph-traits)
32+
- [`gl::traits::c_flat_matrix_graph_traits`](gl_traits.md#gl-traits-c-flat-matrix-graph-traits)
33+
- [`gl::traits::c_forward_range`](gl_traits.md#gl-traits-c-forward-range)
34+
- [`gl::traits::c_forward_range_of`](gl_traits.md#gl-traits-c-forward-range-of)
35+
- [`gl::traits::c_forward_range_of_cv`](gl_traits.md#gl-traits-c-forward-range-of-cv)
36+
- [`gl::traits::c_graph`](gl_traits.md#gl-traits-c-graph)
37+
- [`gl::traits::c_graph_directional_tag`](gl_traits.md#gl-traits-c-graph-directional-tag)
38+
- [`gl::traits::c_graph_impl_tag`](gl_traits.md#gl-traits-c-graph-impl-tag)
39+
- [`gl::traits::c_has_empty_properties`](gl_traits.md#gl-traits-c-has-empty-properties): Checks if a type/component has a nested properties_type that is the gl::empty_properties tag.
40+
- [`gl::traits::c_has_non_empty_properties`](gl_traits.md#gl-traits-c-has-non-empty-properties): Checks if a type/component has a nested properties_type that is not the gl::empty_properties tag.
41+
- [`gl::traits::c_has_numeric_limits_max`](gl_traits.md#gl-traits-c-has-numeric-limits-max)
1542
- [`gl::traits::c_id_type`](gl_traits.md#gl-traits-c-id-type): Concept defining the requirements for an identifier type.
43+
- [`gl::traits::c_instantiation_of`](gl_traits.md#gl-traits-c-instantiation-of)
44+
- [`gl::traits::c_io_save_mode`](gl_traits.md#gl-traits-c-io-save-mode)
45+
- [`gl::traits::c_list_graph`](gl_traits.md#gl-traits-c-list-graph)
46+
- [`gl::traits::c_list_graph_traits`](gl_traits.md#gl-traits-c-list-graph-traits)
47+
- [`gl::traits::c_matrix_graph`](gl_traits.md#gl-traits-c-matrix-graph)
48+
- [`gl::traits::c_matrix_graph_traits`](gl_traits.md#gl-traits-c-matrix-graph-traits)
49+
- [`gl::traits::c_non_empty_properties`](gl_traits.md#gl-traits-c-non-empty-properties): Validates if a property type contains actual user-defined data.
50+
- [`gl::traits::c_one_of`](gl_traits.md#gl-traits-c-one-of)
51+
- [`gl::traits::c_optional_callback`](gl_traits.md#gl-traits-c-optional-callback)
52+
- [`gl::traits::c_optional_decision_predicate`](gl_traits.md#gl-traits-c-optional-decision-predicate)
53+
- [`gl::traits::c_optional_predicate`](gl_traits.md#gl-traits-c-optional-predicate)
54+
- [`gl::traits::c_predicate`](gl_traits.md#gl-traits-c-predicate)
55+
- [`gl::traits::c_properties`](gl_traits.md#gl-traits-c-properties): Defines the minimal requirements for a type to be used as a property.
56+
- [`gl::traits::c_random_access_range`](gl_traits.md#gl-traits-c-random-access-range)
57+
- [`gl::traits::c_random_access_range_of`](gl_traits.md#gl-traits-c-random-access-range-of)
58+
- [`gl::traits::c_random_access_range_of_cv`](gl_traits.md#gl-traits-c-random-access-range-of-cv)
59+
- [`gl::traits::c_range`](gl_traits.md#gl-traits-c-range)
60+
- [`gl::traits::c_range_of`](gl_traits.md#gl-traits-c-range-of)
61+
- [`gl::traits::c_range_of_cv`](gl_traits.md#gl-traits-c-range-of-cv)
62+
- [`gl::traits::c_readable`](gl_traits.md#gl-traits-c-readable)
63+
- [`gl::traits::c_sized_range`](gl_traits.md#gl-traits-c-sized-range)
64+
- [`gl::traits::c_sized_range_of`](gl_traits.md#gl-traits-c-sized-range-of)
65+
- [`gl::traits::c_sized_range_of_cv`](gl_traits.md#gl-traits-c-sized-range-of-cv)
66+
- [`gl::traits::c_undirected_edge`](gl_traits.md#gl-traits-c-undirected-edge)
67+
- [`gl::traits::c_undirected_graph`](gl_traits.md#gl-traits-c-undirected-graph)
68+
- [`gl::traits::c_undirected_graph_traits`](gl_traits.md#gl-traits-c-undirected-graph-traits)
69+
- [`gl::traits::c_weight_properties_type`](gl_traits.md#gl-traits-c-weight-properties-type): Requirements for properties that support arithmetic weight values.
70+
- [`gl::traits::c_writable`](gl_traits.md#gl-traits-c-writable)
71+
72+
---
73+
74+
## HGL Concepts
75+
76+
- **[HGL Traits & Concepts](hgl_traits.md)**: Full API reference.
77+
- [`hgl::traits::c_bf_directed_hypergraph`](hgl_traits.md#hgl-traits-c-bf-directed-hypergraph)
78+
- [`hgl::traits::c_bf_directed_hypergraph_traits`](hgl_traits.md#hgl-traits-c-bf-directed-hypergraph-traits)
79+
- [`hgl::traits::c_flat_list_hypergraph`](hgl_traits.md#hgl-traits-c-flat-list-hypergraph)
80+
- [`hgl::traits::c_flat_list_hypergraph_traits`](hgl_traits.md#hgl-traits-c-flat-list-hypergraph-traits)
81+
- [`hgl::traits::c_flat_matrix_hypergraph_traits`](hgl_traits.md#hgl-traits-c-flat-matrix-hypergraph-traits)
82+
- [`hgl::traits::c_hypergraph`](hgl_traits.md#hgl-traits-c-hypergraph)
83+
- [`hgl::traits::c_hypergraph_asymmetric_layout_tag`](hgl_traits.md#hgl-traits-c-hypergraph-asymmetric-layout-tag)
84+
- [`hgl::traits::c_hypergraph_directional_tag`](hgl_traits.md#hgl-traits-c-hypergraph-directional-tag)
85+
- [`hgl::traits::c_hypergraph_element_tag`](hgl_traits.md#hgl-traits-c-hypergraph-element-tag)
86+
- [`hgl::traits::c_hypergraph_flat_list_impl`](hgl_traits.md#hgl-traits-c-hypergraph-flat-list-impl)
87+
- [`hgl::traits::c_hypergraph_flat_matrix_impl`](hgl_traits.md#hgl-traits-c-hypergraph-flat-matrix-impl)
88+
- [`hgl::traits::c_hypergraph_impl_tag`](hgl_traits.md#hgl-traits-c-hypergraph-impl-tag)
89+
- [`hgl::traits::c_hypergraph_incidence_list_impl`](hgl_traits.md#hgl-traits-c-hypergraph-incidence-list-impl)
90+
- [`hgl::traits::c_hypergraph_incidence_matrix_impl`](hgl_traits.md#hgl-traits-c-hypergraph-incidence-matrix-impl)
91+
- [`hgl::traits::c_hypergraph_layout_tag`](hgl_traits.md#hgl-traits-c-hypergraph-layout-tag)
92+
- [`hgl::traits::c_hypergraph_list_impl`](hgl_traits.md#hgl-traits-c-hypergraph-list-impl)
93+
- [`hgl::traits::c_hypergraph_matrix_impl`](hgl_traits.md#hgl-traits-c-hypergraph-matrix-impl)
94+
- [`hgl::traits::c_incidence_list_hypergraph`](hgl_traits.md#hgl-traits-c-incidence-list-hypergraph)
95+
- [`hgl::traits::c_incidence_list_hypergraph_traits`](hgl_traits.md#hgl-traits-c-incidence-list-hypergraph-traits)
96+
- [`hgl::traits::c_incidence_matrix_hypergraph`](hgl_traits.md#hgl-traits-c-incidence-matrix-hypergraph)
97+
- [`hgl::traits::c_incidence_matrix_hypergraph_traits`](hgl_traits.md#hgl-traits-c-incidence-matrix-hypergraph-traits)
98+
- [`hgl::traits::c_list_hypergraph`](hgl_traits.md#hgl-traits-c-list-hypergraph)
99+
- [`hgl::traits::c_list_hypergraph_traits`](hgl_traits.md#hgl-traits-c-list-hypergraph-traits)
100+
- [`hgl::traits::c_matrix_hypergraph`](hgl_traits.md#hgl-traits-c-matrix-hypergraph)
101+
- [`hgl::traits::c_matrix_hypergraph_traits`](hgl_traits.md#hgl-traits-c-matrix-hypergraph-traits)
102+
- [`hgl::traits::c_search_tree`](hgl_traits.md#hgl-traits-c-search-tree)
103+
- [`hgl::traits::c_undirected_hypergraph`](hgl_traits.md#hgl-traits-c-undirected-hypergraph)
104+
- [`hgl::traits::c_undirected_hypergraph_traits`](hgl_traits.md#hgl-traits-c-undirected-hypergraph-traits)
105+
106+
---
107+

0 commit comments

Comments
 (0)