From ae88107e51e197059ed81e93cd270fe0e94a8614 Mon Sep 17 00:00:00 2001
From: Claude
Date: Fri, 30 Oct 2026 18:31:59 -0300
Subject: [PATCH] site: link the documentation of dissmodel, disscube and
disslucc
- Documentation dropdown in the nav (the single link pointed only to dissmodel)
- New "Documentation" section with one card per library
- Links in the footer and on the ecosystem map boxes
- Keep the Documentation link on phones; fix horizontal overflow there
Co-Authored-By: Claude Sonnet 5.5
Claude-Session: https://claude.ai/code/session_01S4SjCckAQ8koVsqjYipUHr
---
index.html | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 89 insertions(+), 7 deletions(-)
diff --git a/index.html b/index.html
index b45ff1c..4dd3774 100644
--- a/index.html
+++ b/index.html
@@ -466,14 +466,51 @@
/* repo list in footer — populated dynamically */
#footer-repo-list { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
+
+ /* ── DOCS DROPDOWN (nav) ── */
+ .nav-docs { position: relative; }
+ .nav-docs > a::after { content: " \25BE"; }
+ .docs-menu {
+ display: none; position: absolute; right: 0; top: 100%;
+ padding-top: 10px; min-width: 250px; list-style: none; z-index: 110;
+ }
+ .docs-menu-inner {
+ background: #fff; border: 1px solid var(--border); border-radius: 10px;
+ box-shadow: 0 12px 40px rgba(26,46,74,.15); padding: .4rem; display: flex; flex-direction: column;
+ }
+ .nav-docs:hover .docs-menu, .nav-docs:focus-within .docs-menu { display: block; }
+ .docs-menu a { display: block; padding: .55rem .8rem; border-radius: 6px; color: var(--blue-dark); font-size: .88rem; }
+ .docs-menu a small { display: block; color: var(--muted); font-weight: 400; font-size: .76rem; }
+ .docs-menu a:hover { background: var(--bg); color: var(--blue-mid); }
+
+ /* ── DOCUMENTATION SECTION ── */
+ #documentation { background: var(--bg); padding-top: 80px; padding-bottom: 80px; }
+ .docs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-top: 2.5rem; }
+ .doc-card {
+ background: #fff; border: 1.5px solid var(--border); border-radius: 14px;
+ padding: 1.6rem; display: flex; flex-direction: column; gap: .7rem;
+ text-decoration: none; color: inherit; transition: all .25s;
+ }
+ .doc-card:hover { border-color: var(--blue-mid); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(26,46,74,.1); }
+ .doc-card .doc-role { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--blue-mid); }
+ .doc-card .doc-name { font-family: 'DM Mono', monospace; font-size: 1.15rem; font-weight: 500; color: var(--blue-dark); }
+ .doc-card p { font-size: .9rem; color: var(--muted); line-height: 1.6; flex: 1; }
+ .doc-card code.doc-pip { font-family: 'DM Mono', monospace; font-size: .8rem; background: var(--blue-dark); color: #e0eeff; padding: 6px 12px; border-radius: 6px; align-self: flex-start; }
+ .doc-card .doc-go { font-size: .85rem; font-weight: 600; color: var(--blue-mid); }
+ .docs-note { margin-top: 1.5rem; font-size: .85rem; color: var(--muted); }
+ .docs-note a { color: var(--blue-mid); }
+
@media (max-width: 768px) {
nav { padding: 0 1.25rem; }
- .nav-links { display: none; }
+ .nav-links > li:not(.nav-docs) { display: none; }
+ .nav-docs > a { padding: 6px 14px; }
.repo-card.featured { grid-column: span 1; }
.arch-wrap { grid-template-columns: 1fr; gap: 2rem; }
.footer-inner { grid-template-columns: 1fr; gap: 2rem; }
.footer-bottom { flex-direction: column; gap: .75rem; text-align: center; }
.usecase-sub { grid-template-columns: 1fr; }
+ .usecase-sub > * { min-width: 0; }
+ .usecase-code { overflow-x: auto; }
.usecase-arrow { padding-left: 0; }
}
@@ -493,7 +530,14 @@
Architecture
Case Study
Book
- Documentation
+
+ Documentation
+
+
@@ -521,7 +565,7 @@
@@ -538,6 +582,39 @@
+
+
+
+
Documentation
+
Documentation for the three libraries
+
Each library has its own site, with the same layout: getting started, guides, architecture and reference. A typical workflow uses all three: disscube builds the grid, dissmodel runs the model, and disslucc provides the land-use components.
+
+
+ Core framework
+ dissmodel
+ Simulation clock, vector and raster spatial substrates, executor, I/O and visualization, for cellular automata and system dynamics.
+ pip install dissmodel
+ Read the docs →
+
+
+ Data preparation
+ disscube
+ Declarative TOML pipelines that turn raster and vector sources (MapBiomas, PRODES, Brazil Data Cube, OpenStreetMap) into model-ready grids.
+ pip install disscube
+ Read the docs →
+
+
+ Land use and cover change
+ disslucc
+ Demand, potential and allocation components after LuccME, in continuous (CLUE-like) and discrete (CLUE-S-like) versions, checked against TerraME.
+ pip install disslucc
+ Read the docs →
+
+
+
Extensions and the other repositories are listed below. For a guided introduction, see the book.
+
+
+
@@ -575,11 +652,12 @@
How the pieces fit together, so far
conceptual basis
+
dissmodel
Core · Environment, Model, vector & raster cellular spaces, scheduling
-
+
DIDACTIC PACKAGES · MODELING PARADIGMS
@@ -614,11 +692,12 @@
How the pieces fit together, so far
alternative
+
disslucc
Land use & cover change
-
+
brmangue-dissmodel
@@ -633,11 +712,12 @@
How the pieces fit together, so far
similar role
+
disscube
Chunked raster cubes · grid alignment · cell filling
-
+
INFRASTRUCTURE · BEYOND TERRAME
No direct counterpart:
@@ -851,7 +931,9 @@
Repositories