Agda-Material
Agda-Material automates the steps that the Agda back-end leaves to the user when generating a website with highlighted, hyperlinked listings of Agda code.
This is the README page for the repository pdmosses/agda-material. It explains how to create a repository for using Agda-Material.
See the About page for an overview of motivation and features.
See the User Guide for a summary of how to generate websites with Agda-Material.
Repository contents
The repository contains the following files:
agda: directory for Agda source codedocs: directory for generating a websitedocs/javascripts: directory for Javascript filesdocs/stylesheets: directory for CSS filesdocs/.nav.yml: configuration file for navigation panelsdocs/about.md: Markdown source for the About pagedocs/README.md: Markdown source for this README pagedocs/Library/index.md: Markdown source for the Library pagedocs/Test/index.md: Markdown source for the Test page
CHANGELOG.md: summary of significant bug-fixes and feature updatesMakefile: automation of website generationmkdocs.yml: configuration file for the generated websiteUNLICENSE: release into the public domain
The repository does not contain any generated files.
By default, Agda-Material creates generated files in the following directories:
docs/html: HTML filesdocs/md: Markdown filessite: websitetemp: temporary files
The default directories for Agda source code and generated files can be changed
by editing the Makefile.
The location of the directory docs can be configured by setting docs_dir in
mkdocs.yml.
Software dependencies
Agda-Material has been tested with the software versions listed below. It should produce similar results with other recent versions (although Material for MkDocs v9.7 has many more features than v9.6).
- Agda (2.8.0)
- Awesome-nav (3.2.0)
- GNU Make (3.81)
- Material for MkDocs (9.7.1)
- mike (2.0.0)
- MkDocs (1.6.1)
- pip (25.3)
- Python 3 (3.14.0)
- sd (1.0.0)
Platform dependencies
Agda-Material has been developed and tested on MacBook laptops with Apple M1 and M3 chips running macOS Sequoia (15.6) with CLI Tools.
Please report any issues with using Agda-Material on other platforms, including all relevant details. Pull requests for addressing such issues are welcome.
Installing Agda-Material
Check that you have installed all the relevant software dependencies.
Then:
Either create a fresh repository
- Click on the Use this template button (near the top of the page)
Locally:
- Clone the resulting repository
Or copy files to your existing repository
- Click on <> Code then Clone or Download
Locally:
-
Copy/merge the following files and directories from
agda-materialto your repository:Makefilemkdocs.ymlagda/*docs/*.gitignore
Testing Agda-Material
-
In a terminal from the root directory of your repository:
make check make web make serve -
Then in a web browser:
- Open
localhost:8000/agda-material - Check that the local site corresponds to the Agda-Material website on GitHub Pages (apart from the version selector)
- Open
-
In the terminal:
make clean-allCheck that the following generated directories do not exist:
docs/htmldocs/mdsitetemp
Preparing to use Agda-Material
Update the MkDocs settings
In mkdocs.yml, update the repository settings:
site_namesite_urlrepo_namerepo_url
Replace the Agda modules
- Remove the
agdadirectory. - Add a directory containing your own Agda modules.
-
In
Makefile:- set the value of
DIRto the directory containing your Agda modules; - set the value of
ROOTto the name of a module that imports all the other modules to be included in your website.
Both
DIRandROOTcan be comma-separated lists. - set the value of
Update Markdown source files and navigation
In the docs directory:
- replace all
*.mdfiles by your own file(s); - your website home page should be named
index.mdorREADME.md; - update
.nav.ymlto create your desired navigation hierarchy.
See the User Guide for a summary of how to generate websites with Agda-Material.
Contributing
Please report any issues with using Agda-Material, including all relevant details. Pull requests for addressing reported issues are welcome. Discussions may include queries, comments, and suggestions for improvement, announcements about Agda-Material, and links to websites generated using it.
Contact
Peter Mosses