From c7310d5caee2c4ed8fcc004e407eae0af59393e5 Mon Sep 17 00:00:00 2001 From: Ian Limarta Date: Thu, 28 Mar 2024 00:06:44 -0500 Subject: [PATCH 01/19] Documentation revision start --- docs/.gitignore | 1 - docs/Project.toml | 3 +- docs/build_docs_locally.sh | 6 - docs/make.jl | 42 +- docs/pages.jl | 44 + docs/src/{ref => api}/choice_maps.md | 0 docs/src/{ref => api}/combinators.md | 0 docs/src/{ref => api}/distributions.md | 0 docs/src/{ref => api}/extending.md | 0 docs/src/{ref => api}/gfi.md | 0 docs/src/{ref => api}/importance.md | 0 .../internals/language_implementation.md | 0 .../internals/parameter_optimization.md | 0 docs/src/{ref => api}/learning.md | 0 docs/src/{ref => api}/map.md | 0 docs/src/{ref => api}/mcmc.md | 0 docs/src/{ref => api}/modeling.md | 0 .../{ref => api}/parameter_optimization.md | 0 docs/src/{ref => api}/pf.md | 0 docs/src/{ref => api}/selections.md | 0 docs/src/{ref => api}/trace_translators.md | 0 docs/src/{ref => api}/vi.md | 0 docs/src/assets/header.css | 138 ++ docs/src/assets/header.js | 96 ++ docs/src/assets/theme.css | 27 + .../src/getting_started/gaussian_processes.md | 0 .../getting_started/hidden_markov_model.md | 0 .../infinite_mixture_models.md | 0 .../linear_regression.md} | 41 +- .../getting_started/variational_inference.md | 0 docs/src/index.md | 72 +- docs/src/ref/images/rjmcmc.png | Bin 26056 -> 0 bytes docs/src/tutorials/combinators.md | 140 ++ docs/src/tutorials/languages/static_dsl.md | 19 + docs/src/tutorials/modeling_in_gen.md | 1388 +++++++++++++++++ docs/tex/mcmc.tex | 208 --- docs/tex/references.bib | 39 - 37 files changed, 1938 insertions(+), 326 deletions(-) delete mode 100644 docs/.gitignore delete mode 100755 docs/build_docs_locally.sh create mode 100644 docs/pages.jl rename docs/src/{ref => api}/choice_maps.md (100%) rename docs/src/{ref => api}/combinators.md (100%) rename docs/src/{ref => api}/distributions.md (100%) rename docs/src/{ref => api}/extending.md (100%) rename docs/src/{ref => api}/gfi.md (100%) rename docs/src/{ref => api}/importance.md (100%) rename docs/src/{ref => api}/internals/language_implementation.md (100%) rename docs/src/{ref => api}/internals/parameter_optimization.md (100%) rename docs/src/{ref => api}/learning.md (100%) rename docs/src/{ref => api}/map.md (100%) rename docs/src/{ref => api}/mcmc.md (100%) rename docs/src/{ref => api}/modeling.md (100%) rename docs/src/{ref => api}/parameter_optimization.md (100%) rename docs/src/{ref => api}/pf.md (100%) rename docs/src/{ref => api}/selections.md (100%) rename docs/src/{ref => api}/trace_translators.md (100%) rename docs/src/{ref => api}/vi.md (100%) create mode 100644 docs/src/assets/header.css create mode 100644 docs/src/assets/header.js create mode 100644 docs/src/assets/theme.css create mode 100644 docs/src/getting_started/gaussian_processes.md create mode 100644 docs/src/getting_started/hidden_markov_model.md create mode 100644 docs/src/getting_started/infinite_mixture_models.md rename docs/src/{getting_started.md => getting_started/linear_regression.md} (55%) create mode 100644 docs/src/getting_started/variational_inference.md delete mode 100644 docs/src/ref/images/rjmcmc.png create mode 100644 docs/src/tutorials/combinators.md create mode 100644 docs/src/tutorials/languages/static_dsl.md create mode 100644 docs/src/tutorials/modeling_in_gen.md delete mode 100644 docs/tex/mcmc.tex delete mode 100644 docs/tex/references.bib diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index ba39cc531..000000000 --- a/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Manifest.toml diff --git a/docs/Project.toml b/docs/Project.toml index 01db6a719..6dfe81a83 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,6 +1,7 @@ [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Gen = "ea4f424c-a589-11e8-07c0-fd5c91b9da4a" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" [compat] -Documenter = "0.27" +Documenter = "1" diff --git a/docs/build_docs_locally.sh b/docs/build_docs_locally.sh deleted file mode 100755 index 40d6d9002..000000000 --- a/docs/build_docs_locally.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# run this script from the Gen/ directory, it will generate HTML documentation under docs/build - -julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' -julia --project=docs/ docs/make.jl diff --git a/docs/make.jl b/docs/make.jl index 9c641d022..6807a0c4c 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,37 +1,19 @@ +# Run: julia --project make.jl using Documenter, Gen +include("pages.jl") makedocs( - sitename = "Gen", modules = [Gen], - pages = [ - "Home" => "index.md", - "Getting Started" => "getting_started.md", - "Tutorials" => "tutorials.md", - "Modeling Languages and APIs" => [ - "Generative Functions" => "ref/gfi.md", - "Probability Distributions" => "ref/distributions.md", - "Built-in Modeling Language" => "ref/modeling.md", - "Generative Function Combinators" => "ref/combinators.md", - "Choice Maps" => "ref/choice_maps.md", - "Selections" => "ref/selections.md", - "Optimizing Trainable Parameters" => "ref/parameter_optimization.md", - "Trace Translators" => "ref/trace_translators.md", - "Extending Gen" => "ref/extending.md" - ], - "Standard Inference Library" => [ - "Importance Sampling" => "ref/importance.md", - "MAP Optimization" => "ref/map.md", - "Markov chain Monte Carlo" => "ref/mcmc.md", - "MAP Optimization" => "ref/map.md", - "Particle Filtering" => "ref/pf.md", - "Variational Inference" => "ref/vi.md", - "Learning Generative Functions" => "ref/learning.md" - ], - "Internals" => [ - "Optimizing Trainable Parameters" => "ref/internals/parameter_optimization.md", - "Modeling Language Implementation" => "ref/internals/language_implementation.md" - ] - ] + # linkcheck = true, + doctest = false, + clean = true, + warnonly = true, + # warnonly = [:missing_docs], + format = Documenter.HTML(; + assets = String["assets/header.js", "assets/header.css", "assets/theme.css"] + ), + sitename = "Gen.jl", + pages = pages, ) deploydocs( diff --git a/docs/pages.jl b/docs/pages.jl new file mode 100644 index 000000000..0227a90f3 --- /dev/null +++ b/docs/pages.jl @@ -0,0 +1,44 @@ +pages = [ + "Home" => "index.md", + "Getting Started" => [ + "Example 1: Linear Regression" => "getting_started/linear_regression.md", + "Example 2: Hidden Markov Models" => "getting_started/linear_regression.md", + ], + "Tutorials" => [ + "Basics" => [ + "tutorials/modeling_in_gen.md", + "tutorials/combinators.md", + ], + "Advanced" => [ + "tutorials/modeling_in_gen.md", + # "tutorials/data_driven_proposals.md", + ], + "Modeling Languages" => [ + "tutorials/languages/static_dsl.md", + ], + ], + "Modeling Languages and APIs" => [ + "Generative Functions" => "api/gfi.md", + "Probability Distributions" => "api/distributions.md", + "Built-in Modeling Language" => "api/modeling.md", + "Generative Function Combinators" => "api/combinators.md", + "Choice Maps" => "api/choice_maps.md", + "Selections" => "api/selections.md", + "Optimizing Trainable Parameters" => "api/parameter_optimization.md", + "Trace Translators" => "api/trace_translators.md", + "Extending Gen" => "api/extending.md" + ], + "Standard Inference Library" => [ + "Importance Sampling" => "api/importance.md", + "MAP Optimization" => "api/map.md", + "Markov chain Monte Carlo" => "api/mcmc.md", + "MAP Optimization" => "api/map.md", + "Particle Filtering" => "api/pf.md", + "Variational Inference" => "api/vi.md", + "Learning Generative Functions" => "api/learning.md" + ], + "Internals" => [ + "Optimizing Trainable Parameters" => "api/internals/parameter_optimization.md", + "Modeling Language Implementation" => "api/internals/language_implementation.md" + ] +] diff --git a/docs/src/ref/choice_maps.md b/docs/src/api/choice_maps.md similarity index 100% rename from docs/src/ref/choice_maps.md rename to docs/src/api/choice_maps.md diff --git a/docs/src/ref/combinators.md b/docs/src/api/combinators.md similarity index 100% rename from docs/src/ref/combinators.md rename to docs/src/api/combinators.md diff --git a/docs/src/ref/distributions.md b/docs/src/api/distributions.md similarity index 100% rename from docs/src/ref/distributions.md rename to docs/src/api/distributions.md diff --git a/docs/src/ref/extending.md b/docs/src/api/extending.md similarity index 100% rename from docs/src/ref/extending.md rename to docs/src/api/extending.md diff --git a/docs/src/ref/gfi.md b/docs/src/api/gfi.md similarity index 100% rename from docs/src/ref/gfi.md rename to docs/src/api/gfi.md diff --git a/docs/src/ref/importance.md b/docs/src/api/importance.md similarity index 100% rename from docs/src/ref/importance.md rename to docs/src/api/importance.md diff --git a/docs/src/ref/internals/language_implementation.md b/docs/src/api/internals/language_implementation.md similarity index 100% rename from docs/src/ref/internals/language_implementation.md rename to docs/src/api/internals/language_implementation.md diff --git a/docs/src/ref/internals/parameter_optimization.md b/docs/src/api/internals/parameter_optimization.md similarity index 100% rename from docs/src/ref/internals/parameter_optimization.md rename to docs/src/api/internals/parameter_optimization.md diff --git a/docs/src/ref/learning.md b/docs/src/api/learning.md similarity index 100% rename from docs/src/ref/learning.md rename to docs/src/api/learning.md diff --git a/docs/src/ref/map.md b/docs/src/api/map.md similarity index 100% rename from docs/src/ref/map.md rename to docs/src/api/map.md diff --git a/docs/src/ref/mcmc.md b/docs/src/api/mcmc.md similarity index 100% rename from docs/src/ref/mcmc.md rename to docs/src/api/mcmc.md diff --git a/docs/src/ref/modeling.md b/docs/src/api/modeling.md similarity index 100% rename from docs/src/ref/modeling.md rename to docs/src/api/modeling.md diff --git a/docs/src/ref/parameter_optimization.md b/docs/src/api/parameter_optimization.md similarity index 100% rename from docs/src/ref/parameter_optimization.md rename to docs/src/api/parameter_optimization.md diff --git a/docs/src/ref/pf.md b/docs/src/api/pf.md similarity index 100% rename from docs/src/ref/pf.md rename to docs/src/api/pf.md diff --git a/docs/src/ref/selections.md b/docs/src/api/selections.md similarity index 100% rename from docs/src/ref/selections.md rename to docs/src/api/selections.md diff --git a/docs/src/ref/trace_translators.md b/docs/src/api/trace_translators.md similarity index 100% rename from docs/src/ref/trace_translators.md rename to docs/src/api/trace_translators.md diff --git a/docs/src/ref/vi.md b/docs/src/api/vi.md similarity index 100% rename from docs/src/ref/vi.md rename to docs/src/api/vi.md diff --git a/docs/src/assets/header.css b/docs/src/assets/header.css new file mode 100644 index 000000000..155b10a3b --- /dev/null +++ b/docs/src/assets/header.css @@ -0,0 +1,138 @@ + +@media all and (max-width: 560px) { + header.navigation { + position: fixed !important; + left:0; + top: 0; + width: 100%; + } + + header.navigation div.container { + margin-left: 0rem; + } + + header.navigation div.container nav.navbar { + min-height: 1rem !important; + } + + header.navigation div.container nav.navbar ul.navbar-nav { + min-height: 1rem !important; + margin-left: 0.5rem !important; + } + + header.navigation div.container nav.navbar ul.navbar-nav li.small-item { + visibility: visible !important; + display: block !important; + margin: 0.5rem; + } + + header.navigation div.container nav.navbar ul.navbar-nav li.nav-item { + visibility: hidden; + display: none; + } + + header.navigation div.container nav.navbar ul.navbar-nav li.nav-item a { + visibility: hidden; + display: none; + } + + html:not(.theme--documenter-dark) body #documenter .docs-main { + margin-top: 2rem !important; + } +} + +@media all and (max-width: 1055px) and (min-width: 561px){ + header.navigation { + position: fixed !important; + left:0; + top: 0; + width: 100%; + } + + header.navigation div.container { + margin-left: 0rem; + } + + header.navigation div.container nav.navbar ul.navbar-nav { + width: 80% !important; + } +} + +@media all and (min-width: 1056px) { + header.navigation { + position: fixed !important; + left:0; + top: 0; + width: 100%; + } + + header.navigation div.container { + margin-left: 18rem; + } + +} + +html.theme--documenter-dark header.navigation { + background-color: #1f2424 !important; +} + +html.theme--documenter-dark header.navigation div.container { + border-bottom: 1px solid #5e6d6f; +} + +html.theme--documenter-dark header.navigation div.container nav.navbar { + background-color: #1f2424 !important; +} + +html.theme--documenter-dark header.navigation div.container nav.navbar ul.navbar-nav li.nav-item a.nav-link { + color: white; + transition: color 100ms; +} + +html.theme--documenter-dark header.navigation div.container nav.navbar ul.navbar-nav li.nav-item a.nav-link:hover { + color: #0aa8a7 +} + +html header.navigation { + background-color: white !important; +} + +html header.navigation div.container { + border-bottom: 1px solid #dbdbdb; +} + +html header.navigation div.container nav.navbar ul.navbar-nav li.nav-item a.nav-link { + color: #222; + transition: color 100ms; +} + +html header.navigation div.container nav.navbar ul.navbar-nav li.nav-item a.nav-link:hover { + color: #0aa8a7 +} + +header.navigation { + z-index: 3; +} + +header.navigation div.container nav.navbar ul.navbar-nav { + margin-left: 4rem; + min-height: 3.25rem; + width: 70%; + display: flex; + align-self: auto; + flex-direction: row; + justify-content: space-around; +} + +header.navigation div.container nav.navbar ul.navbar-nav li.nav-item { + align-self: stretch; + align-content: space-around; + justify-content: center; + display: flex; + flex-direction: column; +} + +header.navigation div.container nav.navbar ul.navbar-nav li.small-item { + visibility: hidden; + display: none; +} \ No newline at end of file diff --git a/docs/src/assets/header.js b/docs/src/assets/header.js new file mode 100644 index 000000000..b25445a32 --- /dev/null +++ b/docs/src/assets/header.js @@ -0,0 +1,96 @@ + +// We add a simple `onload` hook to inject the custom header for our `HTML`-generated pages +window.onload = function() { + //