diff --git a/CONTRIBUTORS.toml b/CONTRIBUTORS.toml index f011a114e6..e5af9fade2 100644 --- a/CONTRIBUTORS.toml +++ b/CONTRIBUTORS.toml @@ -242,3 +242,8 @@ github = "UlrikBuchholtz" displayName = "Garrett Figueroa" usernames = [ "Garrett Figueroa", "djspacewhale" ] github = "djspacewhale" + +[[contributors]] +displayName = "Job Petrovčič" +usernames = [ "Job Petrovčič", "JobPetrovcic" ] +github = "JobPetrovcic" diff --git a/Makefile b/Makefile index 74df635d51..cd21622ea1 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,8 @@ METAFILES := \ STATEMENT-OF-INCLUSION.md \ SUMMARY.md \ TEMPLATE.lagda.md \ - USERS.md + USERS.md \ + VISUALIZATION.md .PHONY: agdaFiles agdaFiles: diff --git a/VISUALIZATION.md b/VISUALIZATION.md new file mode 100644 index 0000000000..b3f32fd7c6 --- /dev/null +++ b/VISUALIZATION.md @@ -0,0 +1,52 @@ +# Interactive explorer of the library + +Below is an interactive explorer of modules and definitions in agda-unimath. It +displays various properties of the nodes in the dependency graph, and also +allows you to determine dependencies between individual definitions. Hover over +ⓘ for detailed usage instructions. + + + + + +
+ +
+ +The interactive explorer was developed by Job Petrovčič. In addition, Vojtěch +Štěpančík, Matej Petković, and Andrej Bauer contributed invaluable suggestions +and offered helpful support. + +### Notes + +The explorer is built and deployed outside of the agda-unimath repository, using +a fork of Agda. For that reason the definitions in the graph may lag behind the +definitions on the website by a few hours. + +The explorer has a few known limitations. Most noticeably it doesn't recognize +the `open import ... renaming (X to Y) public` pattern of exporting definitions, +so in particular the +[`foundation.universe-levels`](foundation.universe-levels.md) module is not +shown, and references to `UU` in the source code show up as references to +`Agda.Primitive.Set`. Note that one of the consequences is that two `Prop`s +appear in the search results --- the first one being `Agda.Primitive.Prop`, +which is Agda's +[proof-irrelevant sort](https://agda.readthedocs.io/en/latest/language/prop.html) +and isn't used anywhere in the library, and the second being agda-unimath's +[`foundation-core.propositions.Prop`](foundation-core.propositions.md), which is +the type of homotopy propositions. diff --git a/book.toml b/book.toml index 552209beb3..39d217b9a7 100644 --- a/book.toml +++ b/book.toml @@ -42,7 +42,8 @@ suppress_processing = [ "USERS.md", "GRANT-ACKNOWLEDGEMENTS.md", "SUMMARY.md", - "ART.md" + "ART.md", + "VISUALIZATION.md" ] [preprocessor.concepts] diff --git a/scripts/generate_main_index_file.py b/scripts/generate_main_index_file.py index 9087d0d763..bcf08f8b35 100755 --- a/scripts/generate_main_index_file.py +++ b/scripts/generate_main_index_file.py @@ -117,8 +117,9 @@ def generate_index(root_path): - [Guidelines for mixfix operators](MIXFIX-OPERATORS.md) - [Citing sources](CITING-SOURCES.md) - [Citing the library](CITE-THIS-LIBRARY.md) -- [Library contents](SUMMARY.md) +- [Library explorer](VISUALIZATION.md) - [Art](ART.md) +- [Full list of library contents](SUMMARY.md) {literature_index} # The agda-unimath library diff --git a/website/js/custom.js b/website/js/custom.js index edc0fb5dcb..e749addfc0 100644 --- a/website/js/custom.js +++ b/website/js/custom.js @@ -21,6 +21,7 @@ if (link) { 'STATEMENT-OF-INCLUSION.md', 'SUMMARY.md', 'USERS.md', + 'VISUALIZATION.md', 'index.md', ]; if (!fileList.includes(filename)) {