From f0feb32eab8c01af8a2a9073a15410a2747093e1 Mon Sep 17 00:00:00 2001 From: Simon Steiger <106233551+simonsteiger@users.noreply.github.com> Date: Tue, 22 Oct 2024 18:43:59 +0200 Subject: [PATCH 01/88] first part of new landing page (#1) * very basic redesign * make buttons interactive --- _quarto.yml | 11 ++++----- index.qmd | 30 ++++++++++++++++++++++++ theming/dark.scss | 15 ++++++++++++ theming/light.scss | 11 +++++++++ theming/rules/_buttons.scss | 24 +++++++++++++++++++ theming/rules/_cards.scss | 17 ++++++++++++++ theming/rules/_navbar.scss | 4 ++++ theming/variables/_borders.scss | 6 +++++ theming/variables/_colorsdark.scss | 36 +++++++++++++++++++++++++++++ theming/variables/_colorslight.scss | 34 +++++++++++++++++++++++++++ 10 files changed, 182 insertions(+), 6 deletions(-) create mode 100644 theming/dark.scss create mode 100644 theming/light.scss create mode 100644 theming/rules/_buttons.scss create mode 100644 theming/rules/_cards.scss create mode 100644 theming/rules/_navbar.scss create mode 100644 theming/variables/_borders.scss create mode 100644 theming/variables/_colorsdark.scss create mode 100644 theming/variables/_colorslight.scss diff --git a/_quarto.yml b/_quarto.yml index 16db4adaa..ccf8c1341 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -17,8 +17,8 @@ website: navbar: logo: "assets/images/turing-logo.svg" logo-href: https://turinglang.org/ - background: "#073c44" - foreground: "#ffffff" + #background: "#073c44" + #foreground: "#ffffff" left: - text: Get Started href: https://turinglang.org/docs/getting-started/ @@ -39,7 +39,7 @@ website: href: https://github.com/TuringLang page-footer: - background: "#073c44" + #background: "#073c44" left: | Turing is created by Hong Ge, and lovingly maintained by the core team of volunteers.
The contents of this website are © 2018–2025 under the terms of the MIT License. @@ -61,9 +61,8 @@ website: format: html: theme: - light: cosmo - dark: [cosmo, theming/theme-dark.scss] - css: theming/styles.css + light: [cosmo, theming/light.scss] + dark: [cosmo, theming/dark.scss] toc: true smooth-scroll: true code-overflow: wrap diff --git a/index.qmd b/index.qmd index d2bf8a679..36c9ef99f 100644 --- a/index.qmd +++ b/index.qmd @@ -8,6 +8,35 @@ description: | Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. --- +
+Three normal probability distributions +Turing.jl +Bayesian inference with probabilistic programming +
+[Get Started](https://turinglang.org/docs/tutorials/docs-00-getting-started/){.button--fill .btn} + + +[API reference](/library/){.button .btn} +
+
+
+
+
Intuitive
+ Turing models are easy to write and communicate — syntax is close to mathematical notations. +
+ +
+
General-purpose
+ Turing supports models with discrete parameters and stochastic control flow. +
+ +
+
Modular & composable
+ Turing is modular, written entirely in Julia, and is interoperable with the powerful Julia ecosystem. +
+
+ + \ No newline at end of file diff --git a/theming/dark.scss b/theming/dark.scss new file mode 100644 index 000000000..9a2446d3f --- /dev/null +++ b/theming/dark.scss @@ -0,0 +1,15 @@ +/*-- scss:defaults --*/ +// Cosmo 5.3.3 +// Bootswatch + +$theme: "cosmo" !default; +@import "variables/colorsdark"; +@import "variables/borders"; + +/*-- scss:rules --*/ + +@import "rules/cards"; +@import "rules/buttons"; +@import "rules/navbar"; + +// \ No newline at end of file diff --git a/theming/light.scss b/theming/light.scss new file mode 100644 index 000000000..d6826e908 --- /dev/null +++ b/theming/light.scss @@ -0,0 +1,11 @@ +/*-- scss:defaults --*/ + +@import "variables/colorslight"; +@import "variables/borders"; + +/*-- scss:rules --*/ + +@import "rules/cards"; +@import "rules/buttons"; +@import "rules/navbar"; + diff --git a/theming/rules/_buttons.scss b/theming/rules/_buttons.scss new file mode 100644 index 000000000..18fb1de26 --- /dev/null +++ b/theming/rules/_buttons.scss @@ -0,0 +1,24 @@ +.button { + padding: 0.5rem 1rem; + //margin: 0.25rem; + border-radius: 25px; + border: solid $text-muted 1px; + color: $color-fg; + background-color: $body-bg; + + &:hover { + background-color: $color-mute-bg !important; + border: solid $text-muted 1px; + } + + &--fill { + @extend .button; + background-color: $color-secondary; + border: solid $color-secondary 1px; + + &:hover { + background-color: lighten($color-secondary, 10%) !important; + border-color: lighten($color-secondary, 10%) !important; + } + } +} diff --git a/theming/rules/_cards.scss b/theming/rules/_cards.scss new file mode 100644 index 000000000..f064c6e22 --- /dev/null +++ b/theming/rules/_cards.scss @@ -0,0 +1,17 @@ +.card { + border-radius: $border-radius-sm; + padding: 1rem; + min-height: 120px; + min-width: 200px; + max-width: 300px; + + color: $color-fg !important; + background-color: $color-mute-bg !important; + border: solid $color-mute-bg 0px !important; + + .card-title { + color: $color-fg !important; + font-size: x-large; + font-weight: 700; + } +} diff --git a/theming/rules/_navbar.scss b/theming/rules/_navbar.scss new file mode 100644 index 000000000..5ec0c505d --- /dev/null +++ b/theming/rules/_navbar.scss @@ -0,0 +1,4 @@ +.navbar { + background-color: $body-bg; + color: $text-muted; +} diff --git a/theming/variables/_borders.scss b/theming/variables/_borders.scss new file mode 100644 index 000000000..e96ef65f7 --- /dev/null +++ b/theming/variables/_borders.scss @@ -0,0 +1,6 @@ +$border-radius-lg: 1rem; +$border-radius-sm: 0.5rem; +$border-width-lg: 2px; +$border-width: 1px; +$border-width-sm: 0.5px; +$default-border-wide: $border-width solid $light-bg-offset; diff --git a/theming/variables/_colorsdark.scss b/theming/variables/_colorsdark.scss new file mode 100644 index 000000000..1ff5634dc --- /dev/null +++ b/theming/variables/_colorsdark.scss @@ -0,0 +1,36 @@ +$white: #ffffff !default; +$gray-100: #f8f9fa !default; +$gray-200: #e9ecef !default; +$gray-300: #dee2e6 !default; +$gray-400: #ced4da !default; +$gray-500: #adb5bd !default; +$gray-600: #868e96 !default; +$gray-700: #495057 !default; +$gray-800: #373a3c !default; +$gray-900: #212529 !default; +$black: #000000 !default; + +$dark-green: #073c44; +$thistle: #E7CEED; +$light-orange: darken(#FEEEEB, 5%); // the actual KI color is a little light for many potential use cases +$light-blue: darken(#EDF4F4, 5%); +$logo-plum: #870052; +$medium-grey: #CCD1D5; + +$color-primary: $thistle; +$color-secondary: $dark-green; +$color-highlight: lighten($dark-green, 10%); + +$color-mute-bg: $gray-800; + +$body-color: white; +$body-bg: #201F24; +$light-bg: #201F24; +$light-bg-offset: $color-secondary; +$color-fg: white; + +$quarto-category-background-color: lighten($light-bg, 2%); +$quarto-category-border-color: lighten($light-bg, 30%); +$quarto-category-hover-background-color: darken($light-bg, 5%); +$quarto-category-hover-border-color: lighten($light-bg, 50%); +$quarto-category-highlight: $color-fg; diff --git a/theming/variables/_colorslight.scss b/theming/variables/_colorslight.scss new file mode 100644 index 000000000..3623ffd61 --- /dev/null +++ b/theming/variables/_colorslight.scss @@ -0,0 +1,34 @@ +$white: #ffffff !default; +$gray-100: #f8f9fa !default; +$gray-200: #e9ecef !default; +$gray-300: #dee2e6 !default; +$gray-400: #ced4da !default; +$gray-500: #adb5bd !default; +$gray-600: #868e96 !default; +$gray-700: #495057 !default; +$gray-800: #373a3c !default; +$gray-900: #212529 !default; +$black: #000000 !default; + +$dark-green: #073c44; +$thistle: #E7CEED; +$light-orange: darken(#FEEEEB, 5%); // the actual KI color is a little light for many potential use cases +$light-blue: #EDF4F4; +$logo-plum: #870052; +$medium-grey: #CCD1D5; +$color-fg: black; + +$color-primary: $dark-green; +$color-secondary: darken($light-blue, 20%); + +$color-mute-bg: $gray-200; + +$quarto-category-background-color: lighten($medium-grey, 10%); +$quarto-category-border-color: darken($medium-grey, 5%); +$quarto-category-hover-background-color: lighten($medium-grey, 15%); +$quarto-category-hover-border-color: darken($medium-grey, 15%); +$quarto-category-highlight: $color-fg; + + +$light-bg: white; +$light-bg-offset: $color-secondary; From 606e0d1b0e4cf13f17a5e4b8fcce82ea1e2e0544 Mon Sep 17 00:00:00 2001 From: Simon Steiger <106233551+simonsteiger@users.noreply.github.com> Date: Wed, 23 Oct 2024 18:36:41 +0200 Subject: [PATCH 02/88] Add code examples (#2) * add dangling code example * add code example section --- _quarto.yml | 3 +- index.qmd | 109 ++++++++++++++++++++++------ theming/dark.scss | 2 + theming/light.scss | 2 + theming/rules/_buttons.scss | 4 +- theming/rules/_cards.scss | 6 ++ theming/rules/_layouts.scss | 3 + theming/rules/_navbar.scss | 4 + theming/rules/_sourceCode.scss | 9 +++ theming/variables/_colorsdark.scss | 9 +-- theming/variables/_colorslight.scss | 6 +- 11 files changed, 122 insertions(+), 35 deletions(-) create mode 100644 theming/rules/_layouts.scss create mode 100644 theming/rules/_sourceCode.scss diff --git a/_quarto.yml b/_quarto.yml index ccf8c1341..a92527a4a 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -17,8 +17,6 @@ website: navbar: logo: "assets/images/turing-logo.svg" logo-href: https://turinglang.org/ - #background: "#073c44" - #foreground: "#ffffff" left: - text: Get Started href: https://turinglang.org/docs/getting-started/ @@ -63,6 +61,7 @@ format: theme: light: [cosmo, theming/light.scss] dark: [cosmo, theming/dark.scss] + highlight-style: github toc: true smooth-scroll: true code-overflow: wrap diff --git a/index.qmd b/index.qmd index 36c9ef99f..c95c2cdd0 100644 --- a/index.qmd +++ b/index.qmd @@ -8,33 +8,96 @@ description: | Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. --- -
-Three normal probability distributions -Turing.jl -Bayesian inference with probabilistic programming -
-[Get Started](https://turinglang.org/docs/tutorials/docs-00-getting-started/){.button--fill .btn} - - -[API reference](/library/){.button .btn} -
-
-
-
-
Intuitive
- Turing models are easy to write and communicate — syntax is close to mathematical notations. +```{=html} +
+
+ Three normal probability distributions + + Turing.jl + + + Bayesian inference with probabilistic programming + +
- -
-
General-purpose
- Turing supports models with discrete parameters and stochastic control flow. +
+
+
+ Intuitive +
+ Turing models are easy to write and communicate — syntax is close to mathematical notations. +
+
+
+ General-purpose +
+ Turing supports models with discrete parameters and stochastic control flow. +
+
+
+ Modular & composable +
+ Turing is modular, written entirely in Julia, and is interoperable with the powerful Julia ecosystem. +
- -
-
Modular & composable
- Turing is modular, written entirely in Julia, and is interoperable with the powerful Julia ecosystem. +
+``` +
+
+
+
+ Hello, World in Turing
+ Some text about how easy it is to [get going](https://turinglang.org/docs/tutorials/00-introduction/). +
+
+```julia +@model function coinflip(; N::Int) + # Prior belief about the probability of heads + p ~ Beta(1, 1) + + # Heads or tails of a coin are drawn from `N` + # Bernoulli distributions with success rate `p` + y ~ filldist(Bernoulli(p), N) + + return y +end; +``` +
+
+
+```julia +@model function putting_model(d, n; jitter=1e-4) + v ~ Gamma(2, 1) + l ~ Gamma(4, 1) + f = GP(v * with_lengthscale(SEKernel(), l)) + f_latent ~ f(d, jitter) + binomials = Binomial.(n, logistic.(f_latent)) + y ~ product_distribution(binomials) + return (fx=f(d, jitter), f_latent=f_latent, y=y) +end +``` +
+
+
+ Goodbye, World in Turing +
+ Some text about how easy it is to interface with external packages like AbstractGPs. Learn more about modelling [Gaussian Processes](https://turinglang.org/docs/tutorials/15-gaussian-processes/) with Turing.jl. +
+
+
+ \ No newline at end of file +[See all news →](news/) diff --git a/theming/dark.scss b/theming/dark.scss index a7b1a9799..32d8fc9ca 100644 --- a/theming/dark.scss +++ b/theming/dark.scss @@ -3,15 +3,19 @@ // Bootswatch $theme: "cosmo" !default; +@import "variables/greys"; @import "variables/colorsdark"; @import "variables/borders"; +@import "variables/spacers"; /*-- scss:rules --*/ +@import "rules/mixins"; + @import "rules/layouts"; -@import "rules/cards"; -@import "rules/buttons"; +@import "rules/hoverables-dark"; +@import "rules/panels"; @import "rules/navbar"; -@import "rules/sourceCode"; +@import "rules/codeblocks"; -// \ No newline at end of file +@import "old/old-styles"; diff --git a/theming/light.scss b/theming/light.scss index fefc9208e..61f3fc843 100644 --- a/theming/light.scss +++ b/theming/light.scss @@ -1,13 +1,19 @@ /*-- scss:defaults --*/ +@import "variables/greys"; @import "variables/colorslight"; @import "variables/borders"; +@import "variables/spacers"; /*-- scss:rules --*/ +@import "rules/mixins"; + @import "rules/layouts"; -@import "rules/cards"; -@import "rules/buttons"; +@import "rules/hoverables-light"; +@import "rules/panels"; @import "rules/navbar"; -@import "rules/sourceCode"; +@import "rules/codeblocks"; + +@import "old/old-styles"; diff --git a/theming/old/_old-styles.scss b/theming/old/_old-styles.scss new file mode 100644 index 000000000..9f8f2ff79 --- /dev/null +++ b/theming/old/_old-styles.scss @@ -0,0 +1,47 @@ +/* css styles */ +/* .cell-output { + background-color: #f1f3f5; +} */ + +/* .cell-output img { + max-width: 100%; + height: auto; +} */ + +/* .cell-output-display pre { + word-break: break-wor !important; + white-space: pre-wrap !important; +} + */ + +/* now included in _navbar.scss + .navbar a:hover { + text-decoration: none; +} +*/ + +.cell-output { + border: 1px dashed; +} + +.cell-output-stdout code { + word-break: break-wor !important; + white-space: pre-wrap !important; +} + + +.cell-output-display svg { + height: fit-content; + width: fit-content; +} + +.cell-output-display img { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} + +.nav-footer-center { + display: flex; + justify-content: center; +} diff --git a/theming/rules/_buttons.scss b/theming/rules/_buttons.scss deleted file mode 100644 index 3984ecee8..000000000 --- a/theming/rules/_buttons.scss +++ /dev/null @@ -1,24 +0,0 @@ -.button { - padding: 0.5rem 1rem; - //margin: 0.25rem; - border-radius: 25px; - border: solid $text-muted 1px; - color: $color-fg; - background-color: $body-bg; - - &:hover { - background-color: $color-mute-bg !important; - border: solid $text-muted 1px; - } - - &--fill { - @extend .button; - background-color: $color-secondary; - border: solid $color-secondary 1px; - - &:hover { - background-color: $color-highlight !important; - border-color: $color-highlight !important; - } - } -} diff --git a/theming/rules/_sourceCode.scss b/theming/rules/_codeblocks.scss similarity index 100% rename from theming/rules/_sourceCode.scss rename to theming/rules/_codeblocks.scss diff --git a/theming/rules/_hoverables-dark.scss b/theming/rules/_hoverables-dark.scss new file mode 100644 index 000000000..e4b84b101 --- /dev/null +++ b/theming/rules/_hoverables-dark.scss @@ -0,0 +1,25 @@ +$hover-border: lighten($color-secondary, 5%); + +.button { + @include button($hover-border) +} + +.card { + @include card($hover-border) +} + +.example-code { + flex: 0 1 45%; + + @media screen and (max-width: 992px) { + flex: 0 1 100%; + } +} + +.example-text { + flex: 0 1 53%; + + @media screen and (max-width: 992px) { + flex: 0 1 100%; + } +} diff --git a/theming/rules/_hoverables-light.scss b/theming/rules/_hoverables-light.scss new file mode 100644 index 000000000..7303cc0c4 --- /dev/null +++ b/theming/rules/_hoverables-light.scss @@ -0,0 +1,25 @@ +$hover-border: darken($color-secondary, 15%); + +.button { + @include button($hover-border) +} + +.card { + @include card($hover-border) +} + +.example-code { + flex: 0 1 45%; + + @media screen and (max-width: 992px) { + flex: 0 1 100%; + } +} + +.example-text { + flex: 0 1 53%; + + @media screen and (max-width: 992px) { + flex: 0 1 100%; + } +} diff --git a/theming/rules/_layouts.scss b/theming/rules/_layouts.scss index f48b3d730..145214847 100644 --- a/theming/rules/_layouts.scss +++ b/theming/rules/_layouts.scss @@ -1,3 +1,7 @@ .content-panel { padding: 1.5rem; } + +.section-end-space { + padding-bottom: $large-y-space; +} diff --git a/theming/rules/_mixins.scss b/theming/rules/_mixins.scss new file mode 100644 index 000000000..48efe07a5 --- /dev/null +++ b/theming/rules/_mixins.scss @@ -0,0 +1,57 @@ +@mixin raw-card { + border-radius: $border-radius-sm; + padding: 1rem; + min-height: 120px !important; + min-width: 300px !important; + + --bs-card-spacer-x: 0rem !important; + --bs-card-spacer-y: 0rem !important; + + color: $color-fg !important; + background-color: $color-secondary !important; + border: solid $color-secondary 1px !important; + + transition: background-color 0.3s ease, border-color 0.3s ease !important; +} + +@mixin card($hover-border) { + @include raw-card; + + .card-title { + color: $color-fg !important; + font-weight: 700; + } + + &:hover { + background-color: $color-highlight !important; + border-color: $hover-border !important; + } +} + +@mixin raw-button { + padding: 0.5rem 1rem; + border-radius: 25px; + border: solid $text-muted 1px; + color: $color-fg; + background-color: $body-bg; + + &:hover { + background-color: $color-mute-bg !important; + border-color: $color-mute-bg !important; + } +} + +@mixin button($hover-border) { + @include raw-button; + + &--fill { + @extend .button; + background-color: $color-secondary; + border: solid $color-secondary 1px; + + &:hover { + background-color: $color-highlight !important; + border-color: $hover-border !important; + } + } +} \ No newline at end of file diff --git a/theming/rules/_cards.scss b/theming/rules/_panels.scss similarity index 76% rename from theming/rules/_cards.scss rename to theming/rules/_panels.scss index fdf6419f5..dc8a6110b 100644 --- a/theming/rules/_cards.scss +++ b/theming/rules/_panels.scss @@ -1,15 +1,15 @@ -.card { +.panel { border-radius: $border-radius-sm; padding: 1rem; - min-height: 120px; - min-width: 200px; - max-width: 300px; + min-height: 150px; + min-width: 300px; + max-width: 31%; color: $color-fg !important; background-color: $color-mute-bg !important; border: solid $color-mute-bg 0px !important; - .card-title { + .panel-title { color: $color-fg !important; margin-bottom: 0.5rem !important; font-size: x-large; @@ -17,7 +17,7 @@ } &--nopad { - @extend .card; + @extend .panel; padding: 0rem; } } diff --git a/theming/variables/_colorsdark.scss b/theming/variables/_colorsdark.scss index 5f4639dbd..ebf910c4e 100644 --- a/theming/variables/_colorsdark.scss +++ b/theming/variables/_colorsdark.scss @@ -1,22 +1,10 @@ -$white: #ffffff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #868e96 !default; -$gray-700: #495057 !default; -$gray-800: #373a3c !default; -$gray-900: #212529 !default; -$black: #000000 !default; - $dark-green: #073c44; $light-blue: darken(#EDF4F4, 5%); $medium-grey: #CCD1D5; -$color-primary: red; // ??? Nope +$color-primary: $light-blue; // not sure about this one $color-secondary: $dark-green; -$color-highlight: lighten($color-secondary, 10%); +$color-highlight: darken($color-secondary, 5%); $color-mute-bg: $gray-800; @@ -26,10 +14,4 @@ $light-bg: #201F24; $light-bg-offset: $color-secondary; $color-fg: white; -$quarto-category-background-color: lighten($light-bg, 2%); -$quarto-category-border-color: lighten($light-bg, 30%); -$quarto-category-hover-background-color: darken($light-bg, 5%); -$quarto-category-hover-border-color: lighten($light-bg, 50%); -$quarto-category-highlight: $color-fg; - $link-color: lighten($dark-green, 15%); diff --git a/theming/variables/_colorslight.scss b/theming/variables/_colorslight.scss index 36b45e1c4..087c9959e 100644 --- a/theming/variables/_colorslight.scss +++ b/theming/variables/_colorslight.scss @@ -1,15 +1,3 @@ -$white: #ffffff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #868e96 !default; -$gray-700: #495057 !default; -$gray-800: #373a3c !default; -$gray-900: #212529 !default; -$black: #000000 !default; - $dark-green: #073c44; $light-blue: #EDF4F4; $medium-grey: #CCD1D5; @@ -21,13 +9,6 @@ $color-highlight: lighten($color-secondary, 10%); $color-mute-bg: $gray-200; -$quarto-category-background-color: lighten($medium-grey, 10%); -$quarto-category-border-color: darken($medium-grey, 5%); -$quarto-category-hover-background-color: lighten($medium-grey, 15%); -$quarto-category-hover-border-color: darken($medium-grey, 15%); -$quarto-category-highlight: $color-fg; - - $light-bg: white; $light-bg-offset: $color-secondary; diff --git a/theming/variables/_greys.scss b/theming/variables/_greys.scss new file mode 100644 index 000000000..4284ed369 --- /dev/null +++ b/theming/variables/_greys.scss @@ -0,0 +1,11 @@ +$white: #ffffff !default; +$gray-100: #f8f9fa !default; +$gray-200: #e9ecef !default; +$gray-300: #dee2e6 !default; +$gray-400: #ced4da !default; +$gray-500: #adb5bd !default; +$gray-600: #868e96 !default; +$gray-700: #495057 !default; +$gray-800: #373a3c !default; +$gray-900: #212529 !default; +$black: #000000 !default; diff --git a/theming/variables/_spacers.scss b/theming/variables/_spacers.scss new file mode 100644 index 000000000..f816d9abe --- /dev/null +++ b/theming/variables/_spacers.scss @@ -0,0 +1 @@ +$large-y-space: 6rem; \ No newline at end of file From 05f9d6d82af5c6ff9ee51b66daf49e89653b4bfb Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Fri, 25 Oct 2024 22:36:41 +0200 Subject: [PATCH 04/88] better alignment --- index.qmd | 8 ++++---- theming/dark.scss | 2 ++ theming/rules/_mixins.scss | 2 +- theming/rules/_panels.scss | 8 ++++++++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/index.qmd b/index.qmd index 6a17514e5..9b24dd097 100644 --- a/index.qmd +++ b/index.qmd @@ -30,7 +30,7 @@ description: | Bayesian inference with probabilistic programming -
+
Tutorials @@ -42,7 +42,7 @@ description: |
-
+
Intuitive @@ -64,7 +64,7 @@ description: |
``` -
+
Hello, World in Turing @@ -86,7 +86,7 @@ end; ```
-
+
Goodbye, World in Turing diff --git a/theming/dark.scss b/theming/dark.scss index 32d8fc9ca..1a54421df 100644 --- a/theming/dark.scss +++ b/theming/dark.scss @@ -19,3 +19,5 @@ $theme: "cosmo" !default; @import "rules/codeblocks"; @import "old/old-styles"; + +// \ No newline at end of file diff --git a/theming/rules/_mixins.scss b/theming/rules/_mixins.scss index 48efe07a5..0bf27dc16 100644 --- a/theming/rules/_mixins.scss +++ b/theming/rules/_mixins.scss @@ -2,7 +2,7 @@ border-radius: $border-radius-sm; padding: 1rem; min-height: 120px !important; - min-width: 300px !important; + //min-width: 300px !important; --bs-card-spacer-x: 0rem !important; --bs-card-spacer-y: 0rem !important; diff --git a/theming/rules/_panels.scss b/theming/rules/_panels.scss index dc8a6110b..09d13ffd1 100644 --- a/theming/rules/_panels.scss +++ b/theming/rules/_panels.scss @@ -21,3 +21,11 @@ padding: 0rem; } } + +.panel-wrapper { + justify-content: space-between; + + @media screen and (max-width: 992px) { + justify-content: center; + } +} From c9897ce9d75009bbba2299f5609ed9af1f0810aa Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Sun, 27 Oct 2024 07:49:33 +0100 Subject: [PATCH 05/88] add resources / "learn more" section --- index.qmd | 56 +++++++++++++++++++ resources/content/inofficial_tutorials.qmd | 5 ++ resources/content/talks.qmd | 5 ++ theming/dark.scss | 2 +- theming/light.scss | 2 +- theming/rules/_hoverables-dark.scss | 6 ++ theming/rules/_hoverables-light.scss | 6 ++ theming/rules/_layouts.scss | 4 ++ theming/rules/_mixins.scss | 6 +- .../variables/{_greys.scss => _grays.scss} | 0 10 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 resources/content/inofficial_tutorials.qmd create mode 100644 resources/content/talks.qmd rename theming/variables/{_greys.scss => _grays.scss} (100%) diff --git a/index.qmd b/index.qmd index 9b24dd097..f67c7dbcf 100644 --- a/index.qmd +++ b/index.qmd @@ -118,3 +118,59 @@ end ::: [See all news →](news/) + +```{=html} +
+ Learn more +
+ +``` diff --git a/resources/content/inofficial_tutorials.qmd b/resources/content/inofficial_tutorials.qmd new file mode 100644 index 000000000..2b2e64772 --- /dev/null +++ b/resources/content/inofficial_tutorials.qmd @@ -0,0 +1,5 @@ +--- +title: Inofficial tutorials +--- + +TODO: Add a list of inofficial tutorials. diff --git a/resources/content/talks.qmd b/resources/content/talks.qmd new file mode 100644 index 000000000..7ebb45317 --- /dev/null +++ b/resources/content/talks.qmd @@ -0,0 +1,5 @@ +--- +title: Talks +--- + +TODO: Add a list of inofficial talks. diff --git a/theming/dark.scss b/theming/dark.scss index 1a54421df..8c942238d 100644 --- a/theming/dark.scss +++ b/theming/dark.scss @@ -3,7 +3,7 @@ // Bootswatch $theme: "cosmo" !default; -@import "variables/greys"; +@import "variables/grays"; @import "variables/colorsdark"; @import "variables/borders"; @import "variables/spacers"; diff --git a/theming/light.scss b/theming/light.scss index 61f3fc843..213ae5536 100644 --- a/theming/light.scss +++ b/theming/light.scss @@ -1,6 +1,6 @@ /*-- scss:defaults --*/ -@import "variables/greys"; +@import "variables/grays"; @import "variables/colorslight"; @import "variables/borders"; @import "variables/spacers"; diff --git a/theming/rules/_hoverables-dark.scss b/theming/rules/_hoverables-dark.scss index e4b84b101..ba48ce4cd 100644 --- a/theming/rules/_hoverables-dark.scss +++ b/theming/rules/_hoverables-dark.scss @@ -23,3 +23,9 @@ $hover-border: lighten($color-secondary, 5%); flex: 0 1 100%; } } + +.pseudolisting { + @extend .card; + @extend .quarto-grid-item; + text-decoration: none; +} diff --git a/theming/rules/_hoverables-light.scss b/theming/rules/_hoverables-light.scss index 7303cc0c4..0be552ad4 100644 --- a/theming/rules/_hoverables-light.scss +++ b/theming/rules/_hoverables-light.scss @@ -23,3 +23,9 @@ $hover-border: darken($color-secondary, 15%); flex: 0 1 100%; } } + +.pseudolisting { + @extend .card; + @extend .quarto-grid-item; + text-decoration: none; +} diff --git a/theming/rules/_layouts.scss b/theming/rules/_layouts.scss index 145214847..9c99ccb44 100644 --- a/theming/rules/_layouts.scss +++ b/theming/rules/_layouts.scss @@ -5,3 +5,7 @@ .section-end-space { padding-bottom: $large-y-space; } + +.section-start-space { + padding-top: $large-y-space; +} diff --git a/theming/rules/_mixins.scss b/theming/rules/_mixins.scss index 0bf27dc16..8692f2616 100644 --- a/theming/rules/_mixins.scss +++ b/theming/rules/_mixins.scss @@ -1,8 +1,6 @@ @mixin raw-card { border-radius: $border-radius-sm; padding: 1rem; - min-height: 120px !important; - //min-width: 300px !important; --bs-card-spacer-x: 0rem !important; --bs-card-spacer-y: 0rem !important; @@ -22,6 +20,10 @@ font-weight: 700; } + .card-text { + color: $text-muted !important; + } + &:hover { background-color: $color-highlight !important; border-color: $hover-border !important; diff --git a/theming/variables/_greys.scss b/theming/variables/_grays.scss similarity index 100% rename from theming/variables/_greys.scss rename to theming/variables/_grays.scss From 9f71dc30c3ac8adce81f6ba94415fdb1b35798b6 Mon Sep 17 00:00:00 2001 From: Simon Steiger <106233551+simonsteiger@users.noreply.github.com> Date: Mon, 28 Oct 2024 18:34:02 +0100 Subject: [PATCH 06/88] Improved colours (#4) * improve colors * better link hover color --- index.qmd | 38 ++++---- theming/dark.scss | 4 +- theming/light.scss | 4 +- theming/rules/_codeblocks.scss | 9 -- theming/rules/_hoverables-dark.scss | 10 +- theming/rules/_hoverables-light.scss | 6 +- theming/rules/_layouts.scss | 31 ++++++ theming/rules/_mixins.scss | 5 +- theming/rules/_navbar.scss | 11 ++- theming/rules/_panels.scss | 31 ------ theming/rules/_quarto-tweaks.scss | 36 +++++++ theming/theme-dark.scss | 139 --------------------------- theming/variables/_colorsdark.scss | 15 ++- theming/variables/_colorslight.scss | 9 +- 14 files changed, 127 insertions(+), 221 deletions(-) delete mode 100644 theming/rules/_codeblocks.scss delete mode 100644 theming/rules/_panels.scss create mode 100644 theming/rules/_quarto-tweaks.scss delete mode 100644 theming/theme-dark.scss diff --git a/index.qmd b/index.qmd index f67c7dbcf..502cd0d99 100644 --- a/index.qmd +++ b/index.qmd @@ -44,19 +44,19 @@ description: |
-
+
Intuitive
Turing models are easy to write and communicate — syntax is close to mathematical notations.
-
+
General-purpose
Turing supports models with discrete parameters and stochastic control flow.
-
+
Modular & composable
Turing is modular, written entirely in Julia, and is interoperable with the powerful Julia ecosystem. @@ -109,9 +109,9 @@ end
```{=html} -
+

News -

+ ``` ::: {#news} @@ -120,57 +120,57 @@ end [See all news →](news/) ```{=html} -
+

Learn more -

+ ``` diff --git a/theming/dark.scss b/theming/dark.scss index 8c942238d..cdaef1065 100644 --- a/theming/dark.scss +++ b/theming/dark.scss @@ -14,10 +14,8 @@ $theme: "cosmo" !default; @import "rules/layouts"; @import "rules/hoverables-dark"; -@import "rules/panels"; @import "rules/navbar"; -@import "rules/codeblocks"; +@import "rules/quarto-tweaks"; @import "old/old-styles"; -// \ No newline at end of file diff --git a/theming/light.scss b/theming/light.scss index 213ae5536..434c7a626 100644 --- a/theming/light.scss +++ b/theming/light.scss @@ -11,9 +11,9 @@ @import "rules/layouts"; @import "rules/hoverables-light"; -@import "rules/panels"; @import "rules/navbar"; -@import "rules/codeblocks"; +@import "rules/quarto-tweaks"; @import "old/old-styles"; +// \ No newline at end of file diff --git a/theming/rules/_codeblocks.scss b/theming/rules/_codeblocks.scss deleted file mode 100644 index 443e6836c..000000000 --- a/theming/rules/_codeblocks.scss +++ /dev/null @@ -1,9 +0,0 @@ -.sourceCode { - background-color: $color-mute-bg !important; - border-color: $color-mute-bg !important; - border-radius: $border-radius-sm !important; - - pre { - padding: 0.5rem !important; - } -} \ No newline at end of file diff --git a/theming/rules/_hoverables-dark.scss b/theming/rules/_hoverables-dark.scss index ba48ce4cd..9076ac941 100644 --- a/theming/rules/_hoverables-dark.scss +++ b/theming/rules/_hoverables-dark.scss @@ -1,11 +1,13 @@ -$hover-border: lighten($color-secondary, 5%); - .button { - @include button($hover-border) + @include button($border-hover); } .card { - @include card($hover-border) + @include card($border-hover); + + .card-text { + color: $text-muted; + } } .example-code { diff --git a/theming/rules/_hoverables-light.scss b/theming/rules/_hoverables-light.scss index 0be552ad4..5b5cfc766 100644 --- a/theming/rules/_hoverables-light.scss +++ b/theming/rules/_hoverables-light.scss @@ -1,11 +1,9 @@ -$hover-border: darken($color-secondary, 15%); - .button { - @include button($hover-border) + @include button($border-hover) } .card { - @include card($hover-border) + @include card($border-hover) } .example-code { diff --git a/theming/rules/_layouts.scss b/theming/rules/_layouts.scss index 9c99ccb44..26ca556f1 100644 --- a/theming/rules/_layouts.scss +++ b/theming/rules/_layouts.scss @@ -9,3 +9,34 @@ .section-start-space { padding-top: $large-y-space; } + +.panel { + border-radius: $border-radius-sm; + padding: 1rem 1.25rem; + min-height: 150px; + min-width: 300px; + max-width: 31%; + + color: $text-muted !important; + background-color: $color-mute-bg !important; + border: solid $color-mute-bg 0px !important; + + .panel-title { + color: $color-fg !important; + font-size: x-large; + font-weight: 700; + } + + &--nopad { + @extend .panel; + padding: 0rem; + } +} + +.panel-wrapper { + justify-content: space-between; + + @media screen and (max-width: 992px) { + justify-content: center; + } +} diff --git a/theming/rules/_mixins.scss b/theming/rules/_mixins.scss index 8692f2616..9eb8c54e1 100644 --- a/theming/rules/_mixins.scss +++ b/theming/rules/_mixins.scss @@ -20,10 +20,6 @@ font-weight: 700; } - .card-text { - color: $text-muted !important; - } - &:hover { background-color: $color-highlight !important; border-color: $hover-border !important; @@ -40,6 +36,7 @@ &:hover { background-color: $color-mute-bg !important; border-color: $color-mute-bg !important; + text-decoration: none; } } diff --git a/theming/rules/_navbar.scss b/theming/rules/_navbar.scss index b27ec8ad3..f16f5f40f 100644 --- a/theming/rules/_navbar.scss +++ b/theming/rules/_navbar.scss @@ -3,6 +3,15 @@ color: $text-muted; a:hover { - text-decoration: none; + text-decoration: none !important; + } + + .nav-link:hover { + color: $link-color !important; + } + + .navbar-brand:hover { + color: $link-color !important; + transition: color 0.15s ease-in-out !important; } } diff --git a/theming/rules/_panels.scss b/theming/rules/_panels.scss deleted file mode 100644 index 09d13ffd1..000000000 --- a/theming/rules/_panels.scss +++ /dev/null @@ -1,31 +0,0 @@ -.panel { - border-radius: $border-radius-sm; - padding: 1rem; - min-height: 150px; - min-width: 300px; - max-width: 31%; - - color: $color-fg !important; - background-color: $color-mute-bg !important; - border: solid $color-mute-bg 0px !important; - - .panel-title { - color: $color-fg !important; - margin-bottom: 0.5rem !important; - font-size: x-large; - font-weight: 700; - } - - &--nopad { - @extend .panel; - padding: 0rem; - } -} - -.panel-wrapper { - justify-content: space-between; - - @media screen and (max-width: 992px) { - justify-content: center; - } -} diff --git a/theming/rules/_quarto-tweaks.scss b/theming/rules/_quarto-tweaks.scss new file mode 100644 index 000000000..f95be0518 --- /dev/null +++ b/theming/rules/_quarto-tweaks.scss @@ -0,0 +1,36 @@ +.sourceCode { + background-color: $color-mute-bg !important; + border-color: $color-mute-bg !important; + border-radius: $border-radius-sm !important; + + pre { + padding: 0.5rem !important; + } +} + +.quarto-title-banner { + background-color: $body-bg !important; + + .title { + color: $color-fg !important; + } +} + +.listing-description { + .no-external { + color: $text-muted !important; + } +} + +.input-group-text { + background-color: $color-mute-bg !important; +} + +a { + text-decoration: none; + &:hover { + color: $link-color; + text-decoration: underline; + } + +} diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss deleted file mode 100644 index caa2c5b29..000000000 --- a/theming/theme-dark.scss +++ /dev/null @@ -1,139 +0,0 @@ -/*-- scss:defaults --*/ -// Cosmo 5.3.3 -// Bootswatch - -$theme: "cosmo" !default; - -// Manually-added colors - -$background-nav: #192222; -$background-body: #131818; -$foreground: #1bb3ac; -$foreground-dark: #073c44; -$links:#2aa198; -$links-hover: #31dce6; -$code-background-color: #172424; -$li: #bcbcbc; - -// Quarto default colors - -$white: #ffffff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #868e96 !default; -$gray-700: #495057 !default; -$gray-800: #373a3c !default; -$gray-900: #212529 !default; -$black: #000000 !default; - -$indigo: #6610f2 !default; -$purple: #613d7c !default; -$pink: #e83e8c !default; -$red: #ff0039 !default; -$orange: #f0ad4e !default; -$yellow: #ff7518 !default; -$green: #3fb618 !default; -$teal: #20c997 !default; -$cyan: #9954bb !default; - -$primary: $links-hover !default; -$secondary: $gray-800 !default; -$success: $green !default; -$info: $cyan !default; -$warning: $yellow !default; -$danger: $red !default; -$light: $gray-100 !default; -$dark: $gray-800 !default; - -$min-contrast-ratio: 2.6 !default; - -// Options - -$enable-rounded: false !default; - -// Fonts - -// stylelint-disable-next-line value-keyword-case -$font-family-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default; -$headings-font-weight: 400 !default; - -// Tables - -$table-color: initial !default; - -// Alerts - -$alert-border-width: 0 !default; - -// Progress bars - -$progress-height: .5rem !default; - - -// Custom tweaks for Quarto-Cosmo - -$navbar-bg: $background-nav; -$navbar-fg: $foreground; -$footer-bg: $background-nav; -$footer-fg: $foreground; -$body-color: $white; -$body-bg: $background-body; - -a { - color: $links !important; -} - -a:hover { - color: $links-hover !important; -} - -code, p code, li code { - background-color: $code-background-color !important; - color: $links; -} - -li { - color: $li !important; -} - -.menu-text:hover { - color: $links-hover !important; -} - -.quarto-title-banner { - background-color: $foreground-dark !important; -} - -.title { - color: $white !important; -} - -.listing-description a { - color: $li !important; -} - -p { - color: $li !important; -} - - -.team-member, .input-group-text { - background-color: $background-nav !important; -} - -.level4, .listing-category { - color: $foreground !important; -} - -::selection { - color: $links-hover; - background: $background-nav; -} - -.tooltip { - --bs-tooltip-color: $black !important; - --bs-tooltip-bg: $white !important; -} diff --git a/theming/variables/_colorsdark.scss b/theming/variables/_colorsdark.scss index ebf910c4e..44fc3d24b 100644 --- a/theming/variables/_colorsdark.scss +++ b/theming/variables/_colorsdark.scss @@ -1,17 +1,26 @@ $dark-green: #073c44; $light-blue: darken(#EDF4F4, 5%); -$medium-grey: #CCD1D5; +$red: #f87683; +$medium-grey: #bcbcbc; $color-primary: $light-blue; // not sure about this one $color-secondary: $dark-green; +$color-tertiary: $red; $color-highlight: darken($color-secondary, 5%); $color-mute-bg: $gray-800; $body-color: white; $body-bg: #201F24; -$light-bg: #201F24; $light-bg-offset: $color-secondary; $color-fg: white; -$link-color: lighten($dark-green, 15%); +$text-muted: $medium-grey; + +$color-active: lighten($color-secondary, 5%); +$link-color: $color-tertiary; +$border-hover: $color-active; + +p { + color: $text-muted !important; +} diff --git a/theming/variables/_colorslight.scss b/theming/variables/_colorslight.scss index 087c9959e..102715630 100644 --- a/theming/variables/_colorslight.scss +++ b/theming/variables/_colorslight.scss @@ -1,15 +1,20 @@ $dark-green: #073c44; +$red: #d73a4a; $light-blue: #EDF4F4; $medium-grey: #CCD1D5; $color-fg: black; $color-primary: $dark-green; $color-secondary: darken($light-blue, 20%); +$color-tertiary: $red; $color-highlight: lighten($color-secondary, 10%); $color-mute-bg: $gray-200; -$light-bg: white; +$color-active: lighten($color-secondary, 5%); +$link-color: $color-tertiary; +$border-hover: darken($color-secondary, 5%); + +$body-bg: white; $light-bg-offset: $color-secondary; -$link-color: lighten($dark-green, 15%); From 1070b053a4411864dc8ae98400884c0be0935625 Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Mon, 28 Oct 2024 18:40:53 +0100 Subject: [PATCH 07/88] better navbar text contrast --- theming/rules/_navbar.scss | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/theming/rules/_navbar.scss b/theming/rules/_navbar.scss index f16f5f40f..3cc6cb910 100644 --- a/theming/rules/_navbar.scss +++ b/theming/rules/_navbar.scss @@ -6,12 +6,18 @@ text-decoration: none !important; } - .nav-link:hover { - color: $link-color !important; + .nav-link { + color: $text-muted; + &:hover { + color: $link-color !important; + } } - .navbar-brand:hover { - color: $link-color !important; - transition: color 0.15s ease-in-out !important; + .navbar-brand { + color: $text-muted; + &:hover { + color: $link-color !important; + transition: color 0.15s ease-in-out !important; + } } } From 805520edc766248db425fa4228edeb0a858a6666 Mon Sep 17 00:00:00 2001 From: Simon Steiger <106233551+simonsteiger@users.noreply.github.com> Date: Mon, 28 Oct 2024 20:14:46 +0100 Subject: [PATCH 08/88] Add SVG header (#5) * paste in svg * responsive svg header --- index.qmd | 28 +++++++++---- theming/dark.scss | 1 + theming/light.scss | 3 +- theming/rules/_svg.scss | 89 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 9 deletions(-) create mode 100644 theming/rules/_svg.scss diff --git a/index.qmd b/index.qmd index 502cd0d99..10f871da7 100644 --- a/index.qmd +++ b/index.qmd @@ -22,14 +22,25 @@ description: | --- ```{=html} -
- Three normal probability distributions - - Turing.jl - - +
+
+

Turing.jl

+
+
+ + + + + +
+
+ Bayesian inference with probabilistic programming - +
+ +``` + +```{=html}
diff --git a/theming/dark.scss b/theming/dark.scss index cdaef1065..aa4735b59 100644 --- a/theming/dark.scss +++ b/theming/dark.scss @@ -16,6 +16,7 @@ $theme: "cosmo" !default; @import "rules/hoverables-dark"; @import "rules/navbar"; @import "rules/quarto-tweaks"; +@import "rules/svg"; @import "old/old-styles"; diff --git a/theming/light.scss b/theming/light.scss index 434c7a626..20b804e5a 100644 --- a/theming/light.scss +++ b/theming/light.scss @@ -13,7 +13,6 @@ @import "rules/hoverables-light"; @import "rules/navbar"; @import "rules/quarto-tweaks"; +@import "rules/svg"; @import "old/old-styles"; - -// \ No newline at end of file diff --git a/theming/rules/_svg.scss b/theming/rules/_svg.scss new file mode 100644 index 000000000..613d66735 --- /dev/null +++ b/theming/rules/_svg.scss @@ -0,0 +1,89 @@ +.line-graph { + /* height: 85vh; */ + width: 100%; + padding-top: 5%; + position: relative; +} + +svg { + width: 100%; + height: 100%; +} + +@keyframes draw { + to { + stroke-dashoffset: 0; + } +} + +.line { + fill: none; + stroke-width: 7; + stroke-dasharray: 3900; + stroke-dashoffset: 3900; + animation: draw 6s forwards ease-in-out; + stroke-opacity: 1; +} + +.line1 { + stroke: #b352cc; + animation-delay: 0s; +} + +.line2 { + stroke: #cc3333; + animation-delay: 0.5s; +} + +.line3 { + stroke: #218921; + animation-delay: 1s; +} + +.upperContent { + width: 88%; + text-align: end; + padding-top: 7%; + padding-right: 10%; + position: absolute; + z-index: 5; + opacity: 0; + animation: fadeInText 2s forwards ease-in-out; + animation-delay: 3s; + + @media screen and (max-width: 768px) { + width: 100%; + padding-top: 0%; + padding-right: 0%; + text-align: center; + } +} + +.upperContent > h1 { + font-size: 5rem; + font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; + + @media screen and (max-width: 992px) { + font-size: 3.5rem; + } +} + +.upperContent > p { + font-size: 25px; + font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; + margin-top: 5%; +} + +.upperContent > h1, + +.upperContent > p { + margin: 0; + padding: 0; +} + +@keyframes fadeInText { + to { + opacity: 1; + transform: translateY(0); + } +} From 75f8b651948c6e1e1ecd9915124c0cb3beadaa5d Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Mon, 28 Oct 2024 20:26:55 +0100 Subject: [PATCH 09/88] fix "learn more" hover text-deco --- theming/rules/_hoverables-light.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/theming/rules/_hoverables-light.scss b/theming/rules/_hoverables-light.scss index 5b5cfc766..e77d527e0 100644 --- a/theming/rules/_hoverables-light.scss +++ b/theming/rules/_hoverables-light.scss @@ -26,4 +26,7 @@ @extend .card; @extend .quarto-grid-item; text-decoration: none; + &:hover { + text-decoration: none; + } } From 4d6dadbc23a1f84145a2e1a954dd3aae38fbcf6c Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Tue, 29 Oct 2024 18:59:44 +0100 Subject: [PATCH 10/88] style team page for dark mode using the same background colour for the team "cards" as for the non-hoverable cards on the landing page --- team/team.css | 2 +- theming/dark.scss | 12 ++++++------ theming/light.scss | 10 +++++----- theming/rules/_team-dark.scss | 4 ++++ theming/variables/_borders.scss | 1 - theming/variables/_colorsdark.scss | 1 - 6 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 theming/rules/_team-dark.scss diff --git a/team/team.css b/team/team.css index 5bb698fd1..7c3637e40 100644 --- a/team/team.css +++ b/team/team.css @@ -6,7 +6,7 @@ a { .team-member { display: flex; align-items: center; - background-color: #f8f9fa; + background-color: #e9ecef; /*gray-200, same as $color-mute-bg */ border-radius: 0.5rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); margin-bottom: 2rem; diff --git a/theming/dark.scss b/theming/dark.scss index aa4735b59..97e99427c 100644 --- a/theming/dark.scss +++ b/theming/dark.scss @@ -12,11 +12,11 @@ $theme: "cosmo" !default; @import "rules/mixins"; -@import "rules/layouts"; -@import "rules/hoverables-dark"; +@import "rules/layouts"; // custom spacing and layout elements +@import "rules/hoverables-dark"; // hover styling of buttons, listings @import "rules/navbar"; -@import "rules/quarto-tweaks"; -@import "rules/svg"; - -@import "old/old-styles"; +@import "rules/quarto-tweaks"; // style modifications of (mostly) quarto classes +@import "rules/svg"; // svg on landing page +@import "rules/team-dark"; // dark mode for team page +@import "old/old-styles"; // copy of old css style sheet diff --git a/theming/light.scss b/theming/light.scss index 20b804e5a..c256a390d 100644 --- a/theming/light.scss +++ b/theming/light.scss @@ -9,10 +9,10 @@ @import "rules/mixins"; -@import "rules/layouts"; -@import "rules/hoverables-light"; +@import "rules/layouts"; // custom spacing and layout elements +@import "rules/hoverables-light"; // hover styling of buttons, listings @import "rules/navbar"; -@import "rules/quarto-tweaks"; -@import "rules/svg"; +@import "rules/quarto-tweaks"; // style modifications of (mostly) quarto classes +@import "rules/svg"; // svg on landing page -@import "old/old-styles"; +@import "old/old-styles"; // copy of old css style sheet diff --git a/theming/rules/_team-dark.scss b/theming/rules/_team-dark.scss new file mode 100644 index 000000000..1322d6da9 --- /dev/null +++ b/theming/rules/_team-dark.scss @@ -0,0 +1,4 @@ +.team-member { + background-color: $color-mute-bg !important; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important; +} diff --git a/theming/variables/_borders.scss b/theming/variables/_borders.scss index e96ef65f7..707edb024 100644 --- a/theming/variables/_borders.scss +++ b/theming/variables/_borders.scss @@ -3,4 +3,3 @@ $border-radius-sm: 0.5rem; $border-width-lg: 2px; $border-width: 1px; $border-width-sm: 0.5px; -$default-border-wide: $border-width solid $light-bg-offset; diff --git a/theming/variables/_colorsdark.scss b/theming/variables/_colorsdark.scss index 44fc3d24b..76969cab7 100644 --- a/theming/variables/_colorsdark.scss +++ b/theming/variables/_colorsdark.scss @@ -12,7 +12,6 @@ $color-mute-bg: $gray-800; $body-color: white; $body-bg: #201F24; -$light-bg-offset: $color-secondary; $color-fg: white; $text-muted: $medium-grey; From 396b2fe259c02c26dc075f81a0634f23bdbe202f Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Mon, 25 Nov 2024 08:14:14 +0100 Subject: [PATCH 11/88] more relevant links at top of page - added links to discourse and slack to the buttons at the top of the page - moved link to libraries page to "Learn more" section --- index.qmd | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/index.qmd b/index.qmd index 10f871da7..058ec7792 100644 --- a/index.qmd +++ b/index.qmd @@ -45,11 +45,14 @@ description: | Tutorials - - Ecosystem + + Slack + + + Discourse - View on GitHub + GitHub
@@ -138,12 +141,12 @@ end Learn more
- +
- Discourse + Ecosystem

- Get support from and discuss with other users. + Learn about all the packages that are part of The Turing Organization.

From e22578622bf937b2dd82336fde666a1e9bb5f732 Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Mon, 25 Nov 2024 09:28:12 +0100 Subject: [PATCH 12/88] mirror gaussians and title --- index.qmd | 18 +++++++++--------- theming/rules/_svg.scss | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/index.qmd b/index.qmd index 058ec7792..f5d37e7ca 100644 --- a/index.qmd +++ b/index.qmd @@ -24,17 +24,17 @@ description: | ```{=html}
-

Turing.jl

+

Turing.jl

- - - - - + + + + +
diff --git a/theming/rules/_svg.scss b/theming/rules/_svg.scss index 613d66735..7d1653b17 100644 --- a/theming/rules/_svg.scss +++ b/theming/rules/_svg.scss @@ -43,13 +43,13 @@ svg { .upperContent { width: 88%; text-align: end; - padding-top: 7%; - padding-right: 10%; + padding-top: 5.5%; + padding-right: 45%; position: absolute; z-index: 5; opacity: 0; - animation: fadeInText 2s forwards ease-in-out; - animation-delay: 3s; + animation: fadeInText 1s forwards ease-in-out; + animation-delay: 0.5s; @media screen and (max-width: 768px) { width: 100%; From 8c91941360d45c9a4a3f6af539b1c087b0807be2 Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Mon, 25 Nov 2024 10:16:48 +0100 Subject: [PATCH 13/88] add css for code in dark mode --- theming/rules/_quarto-tweaks.scss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/theming/rules/_quarto-tweaks.scss b/theming/rules/_quarto-tweaks.scss index f95be0518..564f0bbee 100644 --- a/theming/rules/_quarto-tweaks.scss +++ b/theming/rules/_quarto-tweaks.scss @@ -32,5 +32,9 @@ a { color: $link-color; text-decoration: underline; } - +} + +code { + background-color: $color-mute-bg !important; + color: $color-fg !important; } From beb1766b52691f24909933fba1728b349e1e51d5 Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Thu, 28 Nov 2024 19:14:10 +0100 Subject: [PATCH 14/88] shorten footer for better fit on mobile --- _quarto.yml | 12 ++---------- theming/dark.scss | 1 + 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/_quarto.yml b/_quarto.yml index a92527a4a..c8b69f875 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -39,16 +39,8 @@ website: page-footer: #background: "#073c44" left: | - Turing is created by
Hong Ge, and lovingly maintained by the core team of volunteers.
- The contents of this website are © 2018–2025 under the terms of the MIT License. - - right: - - icon: twitter - href: https://x.com/TuringLang - aria-label: Turing Twitter - - icon: github - href: https://github.com/TuringLang/Turing.jl - aria-label: Turing GitHub + Turing is created by Hong Ge, and maintained by the core team.
+ © 2024 under the terms of the MIT License. back-to-top-navigation: true repo-url: https://github.com/TuringLang/turinglang.github.io/ diff --git a/theming/dark.scss b/theming/dark.scss index 97e99427c..9586f908d 100644 --- a/theming/dark.scss +++ b/theming/dark.scss @@ -20,3 +20,4 @@ $theme: "cosmo" !default; @import "rules/team-dark"; // dark mode for team page @import "old/old-styles"; // copy of old css style sheet + From 57a4285197952ff02f6f64e91ffe6d4e00993886 Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Thu, 28 Nov 2024 19:30:27 +0100 Subject: [PATCH 15/88] underline links in footer --- _quarto.yml | 2 +- theming/rules/_navbar.scss | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/_quarto.yml b/_quarto.yml index c8b69f875..482eba09c 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -39,7 +39,7 @@ website: page-footer: #background: "#073c44" left: | - Turing is created by Hong Ge, and maintained by the core team.
+ Turing is created by Hong Ge, and maintained by the core team of volunteers.
© 2024 under the terms of the MIT License. back-to-top-navigation: true diff --git a/theming/rules/_navbar.scss b/theming/rules/_navbar.scss index 3cc6cb910..39de43119 100644 --- a/theming/rules/_navbar.scss +++ b/theming/rules/_navbar.scss @@ -21,3 +21,9 @@ } } } + +.nav-footer { + a { + text-decoration: underline !important; + } +} From 30aca9277c12d89c3429b684bb9f1db56f5c3d9a Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Thu, 28 Nov 2024 19:30:38 +0100 Subject: [PATCH 16/88] responsive header size --- index.qmd | 2 +- theming/rules/_layouts.scss | 4 ++++ theming/rules/_mixins.scss | 2 +- theming/rules/_svg.scss | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/index.qmd b/index.qmd index f5d37e7ca..cdc2c21e6 100644 --- a/index.qmd +++ b/index.qmd @@ -24,7 +24,7 @@ description: | ```{=html}
-

Turing.jl

+

Turing.jl

diff --git a/theming/rules/_layouts.scss b/theming/rules/_layouts.scss index 26ca556f1..d973e1130 100644 --- a/theming/rules/_layouts.scss +++ b/theming/rules/_layouts.scss @@ -10,6 +10,10 @@ padding-top: $large-y-space; } +.responsive-heading { + font-size: clamp(2rem, 6vw, 6rem); +} + .panel { border-radius: $border-radius-sm; padding: 1rem 1.25rem; diff --git a/theming/rules/_mixins.scss b/theming/rules/_mixins.scss index 9eb8c54e1..a1657a9de 100644 --- a/theming/rules/_mixins.scss +++ b/theming/rules/_mixins.scss @@ -27,7 +27,7 @@ } @mixin raw-button { - padding: 0.5rem 1rem; + padding: 0.5rem 1.25rem; border-radius: 25px; border: solid $text-muted 1px; color: $color-fg; diff --git a/theming/rules/_svg.scss b/theming/rules/_svg.scss index 7d1653b17..d29d9356c 100644 --- a/theming/rules/_svg.scss +++ b/theming/rules/_svg.scss @@ -43,7 +43,7 @@ svg { .upperContent { width: 88%; text-align: end; - padding-top: 5.5%; + padding-top: 7%; padding-right: 45%; position: absolute; z-index: 5; From 93d130c5a74f1e03e02f3c4316c8f16060da7ec9 Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Thu, 28 Nov 2024 20:29:09 +0100 Subject: [PATCH 17/88] content placeholders on landing page --- index.qmd | 79 +++++++++++++++------- resources/content/inofficial_tutorials.qmd | 5 -- resources/content/talks.qmd | 5 -- 3 files changed, 55 insertions(+), 34 deletions(-) delete mode 100644 resources/content/inofficial_tutorials.qmd delete mode 100644 resources/content/talks.qmd diff --git a/index.qmd b/index.qmd index cdc2c21e6..767f1fc54 100644 --- a/index.qmd +++ b/index.qmd @@ -165,29 +165,60 @@ end Learn to tackle specific problems with Turing.jl.

- -
- Inofficial tutorials -
-

- A list of inofficial tutorials using Turing.jl. -

- - -
- Talks -
-

- A list of talks on the Turing.jl ecosystem. -

-
- -
- Workshop -
-

- Placeholder for Turing-Workshop repo link. -

-
``` + +::: {.section-start-space} + +### Algorithms + +Placeholder text introducing this section on algorithms. + +| Column 1 | Column 2 | Column 3 | Column 4 | +|----------|----------|----------|----------| +| Entry A | Entry D | Entry G | Entry J | +| Entry B | Entry E | Entry H | Entry K | +| Entry C | Entry F | Entry I | Entry L | + +: Supported MCMC and other learning algorithms {.striped .borderless} + +::: + +::: {.section-start-space} + +### Bayesian Workflow + +Placeholder text introducing the Bayesian Workflow diagram from the ACM special issue submission. + +```{=html} +
+ +

An example of the Beeysian workflow.

+
+``` + +::: + +```{=html} +
+
+

Talks

+

Placeholder for intro text on list of talks which are available online

+
    +
  • Talk 1 +
  • Talk 2 +
  • Talk 3 +
+
+
+

Inofficial tutorials

+

Placeholder for intro text on list of inofficial tutorials

+ +
+
+``` \ No newline at end of file diff --git a/resources/content/inofficial_tutorials.qmd b/resources/content/inofficial_tutorials.qmd deleted file mode 100644 index 2b2e64772..000000000 --- a/resources/content/inofficial_tutorials.qmd +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Inofficial tutorials ---- - -TODO: Add a list of inofficial tutorials. diff --git a/resources/content/talks.qmd b/resources/content/talks.qmd deleted file mode 100644 index 7ebb45317..000000000 --- a/resources/content/talks.qmd +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Talks ---- - -TODO: Add a list of inofficial talks. From 400c7cdb79c76882195c4a92d17b4046fe35d4d4 Mon Sep 17 00:00:00 2001 From: Simon Steiger <106233551+simonsteiger@users.noreply.github.com> Date: Thu, 5 Dec 2024 16:35:57 +0100 Subject: [PATCH 18/88] Apply suggestions from code review Co-authored-by: Penelope Yong --- _quarto.yml | 2 +- index.qmd | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/_quarto.yml b/_quarto.yml index 482eba09c..69a1a6e66 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -39,7 +39,7 @@ website: page-footer: #background: "#073c44" left: | - Turing is created by Hong Ge, and maintained by the core team of volunteers.
+ Turing is created by Hong Ge, and maintained by the core team of developers.
© 2024 under the terms of the MIT License. back-to-top-navigation: true diff --git a/index.qmd b/index.qmd index 767f1fc54..c048b1c9d 100644 --- a/index.qmd +++ b/index.qmd @@ -62,9 +62,9 @@ description: |
- Intuitive + Expressive
- Turing models are easy to write and communicate — syntax is close to mathematical notations. + Turing models are easy to write and communicate — their syntax closely resembles mathematical notation.
@@ -74,9 +74,9 @@ description: |
- Modular & composable + Composable
- Turing is modular, written entirely in Julia, and is interoperable with the powerful Julia ecosystem. + Turing is written entirely in Julia, and is interoperable with its powerful ecosystem.
``` @@ -98,7 +98,6 @@ description: | # Bernoulli distributions with success rate `p` y ~ filldist(Bernoulli(p), N) - return y end; ```
@@ -146,7 +145,7 @@ end Ecosystem

- Learn about all the packages that are part of The Turing Organization. + Learn about all the packages that are part of the TuringLang organization.

@@ -154,7 +153,7 @@ end Documentation

- Familiarize yourself with the Turing.jl API. + Familiarize yourself with the mechanics of Turing.jl.

@@ -162,7 +161,7 @@ end Official tutorials

- Learn to tackle specific problems with Turing.jl. + Learn to tackle specific modelling problems with Turing.jl.

@@ -211,12 +210,12 @@ Placeholder text introducing the Bayesian Workflow diagram from the ACM special
-

Inofficial tutorials

-

Placeholder for intro text on list of inofficial tutorials

+

Other resources

+

This list contains a few other written resources for learning Turing. If you have written something and would like to share it with the community, please get in touch!

From 36e1f6b29bc1190f2a382812b4cd7f5c71101913 Mon Sep 17 00:00:00 2001 From: simonsteiger Date: Sun, 15 Dec 2024 07:27:53 +0100 Subject: [PATCH 19/88] fix "logo" display by removing h1 --- index.qmd | 10 ++++++---- theming/light.scss | 2 ++ theming/rules/_svg.scss | 13 +++---------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/index.qmd b/index.qmd index c048b1c9d..40a7a5b17 100644 --- a/index.qmd +++ b/index.qmd @@ -1,5 +1,4 @@ --- -# pagetitle: "Turing" toc: false page-layout: full section-divs: false @@ -23,10 +22,10 @@ description: | ```{=html}
-
-

Turing.jl

+
+
Turing.jl
-
+
@@ -37,6 +36,9 @@ description: |
+``` + +```{=html} Bayesian inference with probabilistic programming diff --git a/theming/light.scss b/theming/light.scss index c256a390d..cfd79cec9 100644 --- a/theming/light.scss +++ b/theming/light.scss @@ -16,3 +16,5 @@ @import "rules/svg"; // svg on landing page @import "old/old-styles"; // copy of old css style sheet + +// \ No newline at end of file diff --git a/theming/rules/_svg.scss b/theming/rules/_svg.scss index d29d9356c..715ed178e 100644 --- a/theming/rules/_svg.scss +++ b/theming/rules/_svg.scss @@ -40,7 +40,7 @@ svg { animation-delay: 1s; } -.upperContent { +.upper-content { width: 88%; text-align: end; padding-top: 7%; @@ -59,7 +59,7 @@ svg { } } -.upperContent > h1 { +.upper-content > h1 { font-size: 5rem; font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; @@ -68,19 +68,12 @@ svg { } } -.upperContent > p { +.upper-content > p { font-size: 25px; font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; margin-top: 5%; } -.upperContent > h1, - -.upperContent > p { - margin: 0; - padding: 0; -} - @keyframes fadeInText { to { opacity: 1; From cd61adb78cc15a6018e2912966d48fb7b18ea0fb Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Mon, 14 Apr 2025 14:55:41 +0530 Subject: [PATCH 20/88] _quarto.yml: comments rewritten --- _quarto.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_quarto.yml b/_quarto.yml index 69a1a6e66..ce1d2d3b0 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -1,7 +1,7 @@ project: type: website preview: - # Change port if it's busy in your system or just remove this line so that It will automatically use any free port + # Change port if it's busy in your system or just comment below line so that It will automatically use any free port port: 4200 browser: true @@ -16,7 +16,7 @@ website: type: overlay navbar: logo: "assets/images/turing-logo.svg" - logo-href: https://turinglang.org/ + # logo-href: https://turinglang.org/ left: - text: Get Started href: https://turinglang.org/docs/getting-started/ @@ -40,7 +40,7 @@ website: #background: "#073c44" left: | Turing is created by Hong Ge, and maintained by the core team of developers.
- © 2024 under the terms of the MIT License. + © 2024 under the terms of the MIT License. back-to-top-navigation: true repo-url: https://github.com/TuringLang/turinglang.github.io/ From e8e2bf0084f37e2df02d5856867aa14101bad051 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 17 Apr 2025 08:35:51 +0530 Subject: [PATCH 21/88] Turned HTML to Quarto Markdown and added _includes to keep the main page clean --- _includes/header.qmd | 39 +++++++++++++ index.qmd | 135 ++++++++++++++++--------------------------- 2 files changed, 89 insertions(+), 85 deletions(-) create mode 100644 _includes/header.qmd diff --git a/_includes/header.qmd b/_includes/header.qmd new file mode 100644 index 000000000..70e87d5b2 --- /dev/null +++ b/_includes/header.qmd @@ -0,0 +1,39 @@ +```{=html} +
+
+
Turing.jl
+
+
+ + + + + +
+
+``` + +```{=html} + + Bayesian inference with probabilistic programming + + +``` \ No newline at end of file diff --git a/index.qmd b/index.qmd index 40a7a5b17..9f1700882 100644 --- a/index.qmd +++ b/index.qmd @@ -20,77 +20,39 @@ description: | Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. --- -```{=html} -
-
-
Turing.jl
-
-
- - - - - -
-
-``` +{{< include _includes/header.qmd >}} -```{=html} - - Bayesian inference with probabilistic programming - - -``` +::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-4 .section-end-space} -```{=html} -
-
-
- Expressive -
- Turing models are easy to write and communicate — their syntax closely resembles mathematical notation. -
-
-
- General-purpose -
- Turing supports models with discrete parameters and stochastic control flow. -
-
-
- Composable -
- Turing is written entirely in Julia, and is interoperable with its powerful ecosystem. -
-
-``` +::: {.panel} +##### Expressive {.panel-title .pb-1} +Turing models are easy to write and communicate — their syntax closely resembles mathematical notation. +::: -
-
-
- Hello, World in Turing -
- Some text about how easy it is to [get going](https://turinglang.org/docs/tutorials/00-introduction/). -
-
+::: {.panel} +##### General-purpose {.panel-title .pb-1} +Turing supports models with discrete parameters and stochastic control flow. +::: + +::: {.panel} +##### Composable {.panel-title .pb-1} +Turing is written entirely in Julia, and is interoperable with its powerful ecosystem. +::: + +::::: + + +::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-3 .pb-2} + +::: {.example-text style="text-align:right;padding:0.5rem;"} + +
Hello, World in Turing
+ +Some text about how easy it is to [get going](https://turinglang.org/docs/tutorials/00-introduction/). + +::: + +::: {.example-code} ```julia @model function coinflip(; N::Int) # Prior belief about the probability of heads @@ -102,16 +64,21 @@ description: | end; ``` -
-
-
-
-
- Goodbye, World in Turing -
- Some text about how easy it is to interface with external packages like AbstractGPs. Learn more about modelling [Gaussian Processes](https://turinglang.org/docs/tutorials/15-gaussian-processes/) with Turing.jl. -
-
+::: + +::::: + +::::: {.d-flex .flex-row-reverse .flex-wrap .panel-wrapper .gap-3 .pt-2 .section-end-space} + +::: {.example-text style="padding:0.5rem;"} + +
Goodbye, World in Turing
+ +Some text about how easy it is to interface with external packages like AbstractGPs. Learn more about modelling [Gaussian Processes](https://turinglang.org/docs/tutorials/15-gaussian-processes/) with Turing.jl. + +::: + +::: {.example-code} ```julia @model function putting_model(d, n; jitter=1e-4) v ~ Gamma(2, 1) @@ -123,14 +90,12 @@ end; return (fx=f(d, jitter), f_latent=f_latent, y=y) end ``` -
-
+::: + +::::: + +### News {.pb-3} -```{=html} -

- News -

-``` ::: {#news} ::: From e9e14d5fd6ad5617ddfce8d970120c1256abb0d8 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Fri, 18 Apr 2025 13:51:47 +0530 Subject: [PATCH 22/88] moved news to _included & added News section sliding animation --- _includes/news.qmd | 195 +++++++++++++++++++++++++++++++++++++++++++++ index.qmd | 21 +---- 2 files changed, 196 insertions(+), 20 deletions(-) create mode 100644 _includes/news.qmd diff --git a/_includes/news.qmd b/_includes/news.qmd new file mode 100644 index 000000000..eacf08f61 --- /dev/null +++ b/_includes/news.qmd @@ -0,0 +1,195 @@ +--- +listing: +- id: news + contents: + - "news/posts/*/index.qmd" + sort: date desc + type: grid + grid-columns: 3 + categories: false + sort-ui: false + filter-ui: false + fields: [title, description, date, reading-time, author] + image-height: "200" +--- + +### News + +::: {#news} + +::: + +[See all news →](news/) + + +```{=html} + + + +``` \ No newline at end of file diff --git a/index.qmd b/index.qmd index 9f1700882..9e183742d 100644 --- a/index.qmd +++ b/index.qmd @@ -3,19 +3,6 @@ toc: false page-layout: full section-divs: false hide-description: true -listing: -- id: news - contents: - - "news/posts/*/index.qmd" - sort: date desc - type: grid - grid-columns: 3 - categories: false - sort-ui: false - filter-ui: false - fields: [title, description, date] - max-items: 3 - image-height: "200" description: | Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. --- @@ -94,13 +81,7 @@ end ::::: -### News {.pb-3} - -::: {#news} - -::: - -[See all news →](news/) +{{< include _includes/news.qmd >}} ```{=html}

From 4933d6478db63bc1a9327117f7c71d07676fa2f7 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 29 May 2025 11:10:23 +0530 Subject: [PATCH 23/88] Improve news animation --- _includes/news.qmd | 182 +++++++++++++++++++++++++++++---------------- 1 file changed, 118 insertions(+), 64 deletions(-) diff --git a/_includes/news.qmd b/_includes/news.qmd index eacf08f61..85d05f4e3 100644 --- a/_includes/news.qmd +++ b/_includes/news.qmd @@ -3,6 +3,7 @@ listing: - id: news contents: - "news/posts/*/index.qmd" + max-items: 10 sort: date desc type: grid grid-columns: 3 @@ -29,39 +30,43 @@ listing: display: none !important; } - /* carousel wrapper */ #carousel-container { width: 100%; overflow: hidden; position: relative; } - /* focus outline for accessibility */ #carousel-container:focus { outline: 2px solid #007acc; outline-offset: 4px; } - /* sliding track */ #carousel-track { display: flex; align-items: flex-start; - transition: transform 0.5s ease; + transition: transform 0.7s cubic-bezier(0.25, 1, 0.5, 1); will-change: transform; } /* each slide sizing & height animation */ #carousel-track > .g-col-1 { - flex: 0 0 33.3333%; + flex: 0 0 33.3333%; /* Default for desktop (3 columns) */ padding: 1rem; box-sizing: border-box; display: block !important; transition: height 0.3s ease; } - /* single‑column on mobile */ + /* Tablet/iPad size: 2 columns */ + @media (max-width: 1024px) and (min-width: 769px) { + #carousel-track > .g-col-1 { + flex: 0 0 50%; /* 2 columns */ + } + } + + /* Single-column on smaller mobile */ @media (max-width: 768px) { #carousel-track > .g-col-1 { - flex: 0 0 100%; + flex: 0 0 100%; /* 1 column */ } } @@ -79,73 +84,124 @@ listing: ``` \ No newline at end of file From 7f9499059ac13d26919c323608e1ee20f6506332 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Mon, 16 Jun 2025 22:28:03 +0530 Subject: [PATCH 31/88] Experiment another approach on news carousel --- _includes/news.qmd | 301 +++++++++++++++++++-------------------------- 1 file changed, 129 insertions(+), 172 deletions(-) diff --git a/_includes/news.qmd b/_includes/news.qmd index b76523c30..800753f4b 100644 --- a/_includes/news.qmd +++ b/_includes/news.qmd @@ -30,21 +30,17 @@ listing: } #carousel-container { - width: 100%; overflow: hidden; - position: relative; + cursor: grab; } -#carousel-container:focus { - outline: 2px solid #007acc; - outline-offset: 4px; +#carousel-container.grabbing { + cursor: grabbing; } #carousel-track { display: flex; align-items: stretch; - transition: transform 0.7s cubic-bezier(0.25, 1, 0.5, 1); - will-change: transform; } #carousel-track>.g-col-1 { @@ -55,6 +51,10 @@ listing: min-width: 0; } +#carousel-container.grabbing a { + pointer-events: none; +} + @media (max-width: 1024px) and (min-width: 769px) { #carousel-track>.g-col-1 { flex: 0 0 50%; @@ -75,6 +75,7 @@ listing: overflow: hidden; display: flex; flex-direction: column; + height: 100%; } #carousel-track>.g-col-1 .card-body { @@ -123,175 +124,131 @@ listing: white-space: nowrap; flex-shrink: 0; } - -/* Carousel Buttons */ -.carousel-button { - position: absolute; - top: 50%; - transform: translateY(-50%); - background: transparent; - color: #999; - border: none; - border-radius: 50%; - width: 3rem; - height: 3rem; - margin: 0 0.75rem; - font-size: 1.5rem; - font-weight: bold; - cursor: pointer; - z-index: 10; - opacity: 0; - transition: all 0.2s ease-in-out; - display: flex; - align-items: center; - justify-content: center; -} - -#carousel-container:hover .carousel-button, -#carousel-container:focus-within .carousel-button { - opacity: 1; -} - -.carousel-button.prev { - left: 0; -} - -.carousel-button.next { - right: 0; -} - -.carousel-button:hover, -.carousel-button:focus { - background: rgba(0, 0, 0, 0.05); - color: #000; - outline: none; -} ``` \ No newline at end of file From 87186124e51bf9a7df22ca8496919e5db2222d50 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Mon, 16 Jun 2025 22:33:06 +0530 Subject: [PATCH 32/88] speeding news carousel --- _includes/news.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/news.qmd b/_includes/news.qmd index 800753f4b..85764bee5 100644 --- a/_includes/news.qmd +++ b/_includes/news.qmd @@ -147,7 +147,7 @@ listing: listing.parentNode.insertBefore(carouselContainer, listing.nextSibling); const slides = Array.from(carouselTrack.children); - const displayDuration = 3500; + const displayDuration = 2500; let isDragging = false, startPos = 0, currentTranslate = 0, From 1fbe6fd4de7db472d56c19cc8edf5b932a63f5de Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 11:42:25 +0100 Subject: [PATCH 33/88] don't highlight tutorials button --- _includes/header.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/header.qmd b/_includes/header.qmd index 70e87d5b2..37f702980 100644 --- a/_includes/header.qmd +++ b/_includes/header.qmd @@ -22,7 +22,7 @@ -``` \ No newline at end of file +``` From 107ef76ecc056709e13691c304a4c415ca9f114f Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 12:19:52 +0100 Subject: [PATCH 34/88] update placeholder text --- index.qmd | 111 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 93 insertions(+), 18 deletions(-) diff --git a/index.qmd b/index.qmd index 60e845c5a..a8df911bb 100644 --- a/index.qmd +++ b/index.qmd @@ -33,23 +33,30 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos ::: {.example-text style="text-align:right;padding:0.5rem;"} -
Hello, World in Turing
+
Intuitive syntax
-Some text about how easy it is to [get going](https://turinglang.org/docs/tutorials/00-introduction/). +The [modelling syntax of Turing.jl](https://turinglang.org/docs/core-functionality) closely resembles the mathematical specification of a probabilistic model. +For example, the following model describes a coin flip experiment with `N` flips, where `p` is the probability of heads. + +```math +\begin{align*} +p &\sim \text{Beta}(1, 1) \\ +y_i &\sim \text{Bernoulli}(p) \quad \text{for } i = 1, \ldots, N +``` ::: ::: {.example-code style="overflow-x: scroll;"} ```{.julia .code-overflow-scroll} +# Define the model @model function coinflip(; N::Int) - # Prior belief about the probability of heads p ~ Beta(1, 1) - - # Heads or tails of a coin are drawn from `N` - # Bernoulli distributions with success rate `p` y ~ filldist(Bernoulli(p), N) +end -end; +# Condition on data +data = [0, 1, 1, 0, 1] +model = coinflip(; N = length(data)) | (; y = data) ``` ::: @@ -59,22 +66,90 @@ end; ::: {.example-text style="padding:0.5rem;"} -
Goodbye, World in Turing
+
Flexible parameter inference
+ +Turing.jl provides full support for sampling one or more MCMC chains from the posterior distribution, including options for parallel sampling. + +Variational inference and point estimation methods are also available. + +::: + +::: {.example-code style="overflow-x: scroll;"} +```{.julia .code-overflow-scroll} +# Sample one chain +chain = sample(model, NUTS(), 1000) + +# Sample four chains, one per thread +# Note: to obtain speedups, Julia must be started +# with multiple threads enabled, e.g. `julia -t 4` +chains = sample(model, NUTS(), MCMCThreads(), 1000, 4) +``` +::: + +::::: + + +::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-3 .pb-2} + +::: {.example-text style="text-align:right;padding:0.5rem;"} + +
MCMC sampling algorithms
+ +A number of MCMC sampling algorithms are available in Turing.jl, including (but not limited to) HMC, NUTS, Metropolis–Hastings, particle samplers, and Gibbs. -Some text about how easy it is to interface with external packages like AbstractGPs. Learn more about modelling [Gaussian Processes](https://turinglang.org/docs/tutorials/15-gaussian-processes/) with Turing.jl. +Turing.jl also supports ['external samplers'](https://turinglang.org/docs/usage/external-samplers/) which conform to the AbstractMCMC.jl interface, meaning that users can implement their own algorithms. ::: ::: {.example-code style="overflow-x: scroll;"} ```{.julia .code-overflow-scroll} -@model function putting_model(d, n; jitter=1e-4) - v ~ Gamma(2, 1) - l ~ Gamma(4, 1) - f = GP(v * with_lengthscale(SEKernel(), l)) - f_latent ~ f(d, jitter) - binomials = Binomial.(n, logistic.(f_latent)) - y ~ product_distribution(binomials) - return (fx=f(d, jitter), f_latent=f_latent, y=y) +sample(model, NUTS(), 1000) + +sample(model, MH(), 1000) + +using SliceSampling +sample(model, externalsampler(SliceSteppingOut(2.0)), 1000) +``` +::: + +::::: + +::::: {.d-flex .flex-row-reverse .flex-wrap .panel-wrapper .gap-3 .pt-2 .section-end-space} + +::: {.example-text style="padding:0.5rem;"} + +
Composability with Julia
+ +As Turing.jl models are simply Julia functions under the hood, they can contain arbitrary Julia code. + +For example, [differential equations](https://turinglang.org/docs/tutorials/bayesian-differential-equations/) can be added to a model using `DifferentialEquations.jl`, which is a completely independent package. + +::: + +::: {.example-code style="overflow-x: scroll;"} +```{.julia .code-overflow-scroll} +using DifferentialEquations + +# Define the system of equations +function lotka_volterra(du, u, params, t) + α, β, δ, γ = params + x, y = u + du[1] = (α * x) - (β * x * y) + du[2] = (δ * x * y) - (γ * y) +end +prob = ODEProblem(lotka_volterra, ...) + +# Use it in a model +@model function fit_lotka_volterra() + # Priors + α ~ Normal(0, 1) + # ... + + # Solve the ODE + predictions = solve(prob, Tsit5(); p=p) + + # Likelihood + data ~ Poisson.(predictions, ...) end ``` ::: @@ -179,4 +254,4 @@ Placeholder text introducing the Bayesian Workflow diagram from the ACM special
-{{< include _includes//citation/cite.qmd >}} \ No newline at end of file +{{< include _includes//citation/cite.qmd >}} From 37e92a1cb7bb953342cb9060017839f86b43d44e Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 12:23:42 +0100 Subject: [PATCH 35/88] move tutorial button --- _includes/header.qmd | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/_includes/header.qmd b/_includes/header.qmd index 37f702980..a96d36e79 100644 --- a/_includes/header.qmd +++ b/_includes/header.qmd @@ -20,11 +20,13 @@ Bayesian inference with probabilistic programming +
- - Tutorials - Slack From 4da6b58303c71f6d73d40e120f26a636253c8177 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 12:28:50 +0100 Subject: [PATCH 36/88] fix unclosed div --- index.qmd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.qmd b/index.qmd index a8df911bb..0869c2690 100644 --- a/index.qmd +++ b/index.qmd @@ -255,3 +255,5 @@ Placeholder text introducing the Bayesian Workflow diagram from the ACM special
{{< include _includes//citation/cite.qmd >}} + +
From 3c697146e46467f4242f3bb1b292a726e4c90f31 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 12:35:55 +0100 Subject: [PATCH 37/88] fix buttons properly --- _includes/header.qmd | 8 ++++---- index.qmd | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/_includes/header.qmd b/_includes/header.qmd index a96d36e79..ef8f921a0 100644 --- a/_includes/header.qmd +++ b/_includes/header.qmd @@ -20,20 +20,20 @@ Bayesian inference with probabilistic programming -
- +
diff --git a/index.qmd b/index.qmd index 0869c2690..f9584b39c 100644 --- a/index.qmd +++ b/index.qmd @@ -36,13 +36,15 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
Intuitive syntax
The [modelling syntax of Turing.jl](https://turinglang.org/docs/core-functionality) closely resembles the mathematical specification of a probabilistic model. + For example, the following model describes a coin flip experiment with `N` flips, where `p` is the probability of heads. -```math +$$ \begin{align*} p &\sim \text{Beta}(1, 1) \\ y_i &\sim \text{Bernoulli}(p) \quad \text{for } i = 1, \ldots, N -``` +\end{align*} +$$ ::: @@ -122,7 +124,7 @@ sample(model, externalsampler(SliceSteppingOut(2.0)), 1000) As Turing.jl models are simply Julia functions under the hood, they can contain arbitrary Julia code. -For example, [differential equations](https://turinglang.org/docs/tutorials/bayesian-differential-equations/) can be added to a model using `DifferentialEquations.jl`, which is a completely independent package. +For example, [differential equations](https://turinglang.org/docs/tutorials/bayesian-differential-equations/) can be added to a model using the `DifferentialEquations.jl` Julia package. ::: From 99451077b1d0d7169e253ba4fe580982c0600937 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 12:40:48 +0100 Subject: [PATCH 38/88] polish text --- index.qmd | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/index.qmd b/index.qmd index f9584b39c..218f7b581 100644 --- a/index.qmd +++ b/index.qmd @@ -13,7 +13,7 @@ description: | ::: {.panel} ##### Expressive {.panel-title .pb-1} -Turing models are easy to write and communicate — their syntax closely resembles mathematical notation. +Turing models are easy to write and communicate. ::: ::: {.panel} @@ -123,16 +123,16 @@ sample(model, externalsampler(SliceSteppingOut(2.0)), 1000)
Composability with Julia
As Turing.jl models are simply Julia functions under the hood, they can contain arbitrary Julia code. +This allows users to draw on the rich numerical and scientific computing ecosystem of Julia. -For example, [differential equations](https://turinglang.org/docs/tutorials/bayesian-differential-equations/) can be added to a model using the `DifferentialEquations.jl` Julia package. +In the example here, we define an [ordinary differential equations](https://turinglang.org/docs/tutorials/bayesian-differential-equations/) using the `DifferentialEquations.jl` Julia package and use it in a Turing.jl model. ::: ::: {.example-code style="overflow-x: scroll;"} ```{.julia .code-overflow-scroll} -using DifferentialEquations - # Define the system of equations +using DifferentialEquations function lotka_volterra(du, u, params, t) α, β, δ, γ = params x, y = u @@ -143,14 +143,11 @@ prob = ODEProblem(lotka_volterra, ...) # Use it in a model @model function fit_lotka_volterra() - # Priors - α ~ Normal(0, 1) - # ... - + # Priors on ODE parameters + α ~ Normal(0, 1) # and others... # Solve the ODE - predictions = solve(prob, Tsit5(); p=p) - - # Likelihood + predictions = solve(prob, Tsit5(); params=(α, ...)) + # Calculate likelihood data ~ Poisson.(predictions, ...) end ``` From 3f8d59f0f2f27ad61ffb9e2f91917b1f8f4e6207 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 12:43:41 +0100 Subject: [PATCH 39/88] delete whatever i wrote --- index.qmd | 131 +----------------------------------------------------- 1 file changed, 1 insertion(+), 130 deletions(-) diff --git a/index.qmd b/index.qmd index 218f7b581..81469e830 100644 --- a/index.qmd +++ b/index.qmd @@ -13,7 +13,7 @@ description: | ::: {.panel} ##### Expressive {.panel-title .pb-1} -Turing models are easy to write and communicate. +Turing models are easy to write and communicate, with syntax that is close to the mathematical specification of the model. ::: ::: {.panel} @@ -26,135 +26,6 @@ Turing supports models with discrete parameters and stochastic control flow. Turing is written entirely in Julia, and is interoperable with its powerful ecosystem. ::: -::::: - - -::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-3 .pb-2} - -::: {.example-text style="text-align:right;padding:0.5rem;"} - -
Intuitive syntax
- -The [modelling syntax of Turing.jl](https://turinglang.org/docs/core-functionality) closely resembles the mathematical specification of a probabilistic model. - -For example, the following model describes a coin flip experiment with `N` flips, where `p` is the probability of heads. - -$$ -\begin{align*} -p &\sim \text{Beta}(1, 1) \\ -y_i &\sim \text{Bernoulli}(p) \quad \text{for } i = 1, \ldots, N -\end{align*} -$$ - -::: - -::: {.example-code style="overflow-x: scroll;"} -```{.julia .code-overflow-scroll} -# Define the model -@model function coinflip(; N::Int) - p ~ Beta(1, 1) - y ~ filldist(Bernoulli(p), N) -end - -# Condition on data -data = [0, 1, 1, 0, 1] -model = coinflip(; N = length(data)) | (; y = data) -``` -::: - -::::: - -::::: {.d-flex .flex-row-reverse .flex-wrap .panel-wrapper .gap-3 .pt-2 .section-end-space} - -::: {.example-text style="padding:0.5rem;"} - -
Flexible parameter inference
- -Turing.jl provides full support for sampling one or more MCMC chains from the posterior distribution, including options for parallel sampling. - -Variational inference and point estimation methods are also available. - -::: - -::: {.example-code style="overflow-x: scroll;"} -```{.julia .code-overflow-scroll} -# Sample one chain -chain = sample(model, NUTS(), 1000) - -# Sample four chains, one per thread -# Note: to obtain speedups, Julia must be started -# with multiple threads enabled, e.g. `julia -t 4` -chains = sample(model, NUTS(), MCMCThreads(), 1000, 4) -``` -::: - -::::: - - -::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-3 .pb-2} - -::: {.example-text style="text-align:right;padding:0.5rem;"} - -
MCMC sampling algorithms
- -A number of MCMC sampling algorithms are available in Turing.jl, including (but not limited to) HMC, NUTS, Metropolis–Hastings, particle samplers, and Gibbs. - -Turing.jl also supports ['external samplers'](https://turinglang.org/docs/usage/external-samplers/) which conform to the AbstractMCMC.jl interface, meaning that users can implement their own algorithms. - -::: - -::: {.example-code style="overflow-x: scroll;"} -```{.julia .code-overflow-scroll} -sample(model, NUTS(), 1000) - -sample(model, MH(), 1000) - -using SliceSampling -sample(model, externalsampler(SliceSteppingOut(2.0)), 1000) -``` -::: - -::::: - -::::: {.d-flex .flex-row-reverse .flex-wrap .panel-wrapper .gap-3 .pt-2 .section-end-space} - -::: {.example-text style="padding:0.5rem;"} - -
Composability with Julia
- -As Turing.jl models are simply Julia functions under the hood, they can contain arbitrary Julia code. -This allows users to draw on the rich numerical and scientific computing ecosystem of Julia. - -In the example here, we define an [ordinary differential equations](https://turinglang.org/docs/tutorials/bayesian-differential-equations/) using the `DifferentialEquations.jl` Julia package and use it in a Turing.jl model. - -::: - -::: {.example-code style="overflow-x: scroll;"} -```{.julia .code-overflow-scroll} -# Define the system of equations -using DifferentialEquations -function lotka_volterra(du, u, params, t) - α, β, δ, γ = params - x, y = u - du[1] = (α * x) - (β * x * y) - du[2] = (δ * x * y) - (γ * y) -end -prob = ODEProblem(lotka_volterra, ...) - -# Use it in a model -@model function fit_lotka_volterra() - # Priors on ODE parameters - α ~ Normal(0, 1) # and others... - # Solve the ODE - predictions = solve(prob, Tsit5(); params=(α, ...)) - # Calculate likelihood - data ~ Poisson.(predictions, ...) -end -``` -::: - -::::: - {{< include _includes/news.qmd >}} ```{=html} From 0855fc39a3e69fba04b449810ec8d79ee0592ce5 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Wed, 18 Jun 2025 12:55:39 +0100 Subject: [PATCH 40/88] fix unclosed div etc --- index.qmd | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/index.qmd b/index.qmd index 81469e830..449a77967 100644 --- a/index.qmd +++ b/index.qmd @@ -26,12 +26,13 @@ Turing supports models with discrete parameters and stochastic control flow. Turing is written entirely in Julia, and is interoperable with its powerful ecosystem. ::: +::::: + {{< include _includes/news.qmd >}} +### Learn more + ```{=html} -

- Learn more -

From 61ce38b13144085c40f20969886d1239f55fd783 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sun, 22 Jun 2025 11:54:53 +0530 Subject: [PATCH 41/88] refresh news --- _includes/news.qmd | 254 --------------------------------------------- 1 file changed, 254 deletions(-) delete mode 100644 _includes/news.qmd diff --git a/_includes/news.qmd b/_includes/news.qmd deleted file mode 100644 index 85764bee5..000000000 --- a/_includes/news.qmd +++ /dev/null @@ -1,254 +0,0 @@ ---- -listing: -- id: news - contents: - - "news/posts/*/index.qmd" - # max-items: 10 - sort: date desc - type: grid - grid-columns: 3 - categories: false - sort-ui: false - filter-ui: false - fields: [title, description, date, reading-time, author] - image-height: "200" - max-description-length: 100 ---- - -### News - -::: {#news} -::: - -[See all news →](news/) - -```{=html} - - - -``` \ No newline at end of file From 0425c641a1c07b1799149d7347a055e31a3e790f Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sun, 22 Jun 2025 12:07:51 +0530 Subject: [PATCH 42/88] using quarto listing for news carousel --- _includes/news/_news-carousel.ejs | 15 + _includes/news/news.qmd | 15 + index.qmd | 5 +- test.txt | 928 ++++++++++++++++++++++++++++++ 4 files changed, 962 insertions(+), 1 deletion(-) create mode 100644 _includes/news/_news-carousel.ejs create mode 100644 _includes/news/news.qmd create mode 100644 test.txt diff --git a/_includes/news/_news-carousel.ejs b/_includes/news/_news-carousel.ejs new file mode 100644 index 000000000..947618255 --- /dev/null +++ b/_includes/news/_news-carousel.ejs @@ -0,0 +1,15 @@ +```{=html} +<% for (const item of items) { %> + +
<%- item.title %>
+

<%- item['reading-time'] %> min

+<% if (item.description) { %> +

<%- item.description %>

+<% } %> + +<%- item.author %> +<%- item.date %> + +
+<% } %> +``` \ No newline at end of file diff --git a/_includes/news/news.qmd b/_includes/news/news.qmd new file mode 100644 index 000000000..baabbfc4f --- /dev/null +++ b/_includes/news/news.qmd @@ -0,0 +1,15 @@ +--- +listing: + - id: news-carousel + contents: + - "news/posts/*/index.qmd" + template: _includes/news/_news-carousel.ejs + sort: "date desc" +--- + +### News + +::: {#news-carousel} +::: + +[See all news →](news/) diff --git a/index.qmd b/index.qmd index 449a77967..7bc9d9acb 100644 --- a/index.qmd +++ b/index.qmd @@ -28,7 +28,7 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos ::::: -{{< include _includes/news.qmd >}} +{{< include _includes/news/news.qmd >}} ### Learn more @@ -128,3 +128,6 @@ Placeholder text introducing the Bayesian Workflow diagram from the ACM special {{< include _includes//citation/cite.qmd >}}
+ + + diff --git a/test.txt b/test.txt new file mode 100644 index 000000000..3a2e6f8d3 --- /dev/null +++ b/test.txt @@ -0,0 +1,928 @@ +================== +index.qmd: +================== +--- +toc: false +page-layout: full +section-divs: false +hide-description: true +description: | + Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. +--- + +{{< include _includes/header.qmd >}} + +::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-4 .section-end-space} + +::: {.panel} +##### Expressive {.panel-title .pb-1} +Turing models are easy to write and communicate, with syntax that is close to the mathematical specification of the model. +::: + +::: {.panel} +##### General-purpose {.panel-title .pb-1} +Turing supports models with discrete parameters and stochastic control flow. +::: + +::: {.panel} +##### Composable {.panel-title .pb-1} +Turing is written entirely in Julia, and is interoperable with its powerful ecosystem. +::: + +::::: + +{{< include _includes/news.qmd >}} + +### Learn more + +```{=html} + +``` + + + + + +
+ +{{< include _includes//citation/cite.qmd >}} + +
+ + +================== +theming/styles.css +================== +.navbar a:hover { + text-decoration: none; +} + +.cell-output { + border: 1px dashed; +} + +.cell-output-stdout code { + word-break: break-word !important; + white-space: pre-wrap !important; +} + +.cell-output-display svg { + height: fit-content; + width: fit-content; +} + +.cell-output-display img { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} + +.nav-footer-center { + display: flex; + justify-content: center; +} + +.line-graph { + width: 100%; + padding-top: 5%; + position: relative; +} + +svg { + width: 100%; + height: 100%; +} + +@keyframes draw { + to { + stroke-dashoffset: 0; + } +} + +.line { + fill: none; + stroke-width: 7; + stroke-dasharray: 3900; + stroke-dashoffset: 3900; + animation: draw 6s forwards ease-in-out; + stroke-opacity: 1; +} + +.line1 { + stroke: #b352cc; + animation-delay: 0s; +} + +.line2 { + stroke: #cc3333; + animation-delay: 0.5s; +} + +.line3 { + stroke: #218921; + animation-delay: 1s; +} + +.upper-content { + width: 88%; + text-align: end; + padding-top: 7%; + padding-right: 45%; + position: absolute; + z-index: 5; + opacity: 0; + animation: fadeInText 1s forwards ease-in-out; + animation-delay: 0.5s; +} + +@keyframes fadeInText { + to { + opacity: 1; + transform: translateY(0); + } +} + +.upper-content>h1 { + font-size: 5rem; + font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; +} + +.upper-content>p { + font-size: 25px; + font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; + margin-top: 5%; +} + +@media screen and (max-width: 992px) { + .upper-content>h1 { + font-size: 3.5rem; + } +} + +@media screen and (max-width: 768px) { + .upper-content { + width: 100%; + padding-top: 0%; + padding-right: 0%; + text-align: center; + } +} + +.content-panel { + padding: 1.5rem; +} + +.section-end-space { + padding-bottom: 2rem; +} + +.section-start-space { + padding-top: 2rem; +} + +.responsive-heading { + font-size: clamp(2rem, 6vw, 6rem); +} + +.panel-wrapper { + justify-content: space-between; +} + +.example-code { + flex: 0 1 45%; +} + +.example-text { + flex: 0 1 53%; +} + +@media screen and (max-width: 992px) { + .panel-wrapper { + justify-content: center; + } +} + +@media screen and (max-width: 768px) { + .example-code, + .example-text { + flex: 0 1 100%; + } +} + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.button, +.button--fill { + display: inline-block; + padding: 10px 24px; + border-radius: 50px; + font-weight: 600; + text-align: center; + cursor: pointer; + transition: transform 0.2s ease, box-shadow 0.2s ease; + text-decoration: none; + border-style: solid; + border-width: 2px; +} + +.button:hover, +.button--fill:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + text-decoration: none; +} + +.panel { + border-radius: 12px; + padding: 2rem; + min-height: 150px; + min-width: 300px; + max-width: 31%; + transition: transform 0.2s ease, box-shadow 0.2s ease; + border-top: 4px solid; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05); +} + +.panel:hover { + transform: translateY(-5px); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); +} + +.panel-title { + font-size: 1.4rem; + font-weight: 700; + margin-bottom: 1rem; +} + +.panel--nopad { + padding: 0rem; +} + +.card, +.pseudolisting { + border-radius: 0.5rem; + transition: background-color 0.3s ease, border-color 0.3s ease; +} + +.pseudolisting { + padding: 1rem; +} + +.card .card-title, +.pseudolisting .h5 { + font-weight: 700; +} + +.pseudolisting { + display: block; + text-decoration: none; +} + +.pseudolisting:hover { + text-decoration: none; +} + +.button { + background-color: #ffffff; + border-color: #e9ecef; + color: #495057; +} + +.button--fill { + background-color: #4DB6AC; + border-color: transparent; + color: #ffffff; +} + +.button--fill:hover { + background-color: #26A69A; +} + +.panel { + background-color: #ffffff; + border-top-color: #4DB6AC; +} + +.panel-title { + color: #212529; +} + +.panel, +.panel p { + color: #6c757d; + font-size: 17px; + font-weight: 400; +} + +.card, +.pseudolisting, +#carousel-container .quarto-grid-item.card.news-item { + background-color: #f8f9fa; + border: 1px solid #e9ecef; + color: #212529; +} + +.card:hover, +.pseudolisting:hover, +#carousel-container .quarto-grid-item.card.news-item:hover { + background-color: #e9ecef; + border-color: #dee2e6; +} + +.card .card-title { + color: #212529; +} + +.card .card-text { + color: #6c757d; +} + +.sourceCode, +code { + color: #212529; + border-radius: 0.5rem; +} + + +================== +theming/theme-dark.scss +================== +/*-- scss:defaults --*/ +// Cosmo 5.3.3 +// Bootswatch + +$theme: "cosmo" !default; + +// --- Consolidated Variables --- + +// Base colors for the entire site +$background-nav: #22272e; +$background-body: #1c2128; // Using the darker background from new theme +$foreground: #ffffff; +$links: #34b8bf; +$links-hover: #31dce6; + +// Text colors +$text-muted: #bcbcbc; +$li-color: #bcbcbc; + +// Landing Page specific colors +$lp-cyan: #39d3d7; +$lp-teal: #4DB6AC; + +// Component & Code block colors +$code-block-bg: #22272e; +$panel-bg: #22272e; +$btn-border-color: #444c56; + +// Bootstrap color overrides +$white: #ffffff !default; +$gray-800: #22272e; +$gray-900: #1c2128; +$red: #ff0039 !default; +$green: #3fb618 !default; + +$primary: $links-hover !default; +$secondary: $gray-800 !default; +$success: $green !default; +$danger: $red !default; + +// Global settings +$min-contrast-ratio: 2.6 !default; +$enable-rounded: false !default; +$font-family-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default; +$headings-font-weight: 400 !default; + +$navbar-bg: $background-nav; +$navbar-fg: $foreground; +$footer-bg: $background-nav; +$footer-fg: $foreground; +$body-color: $white; +$body-bg: $background-body; + + +/*-- scss:rules --*/ + +// --- Global Styles --- +p { + color: $text-muted !important; +} + +li { + color: $li-color !important; +} + +a { + color: $links; + + &:hover { + color: $links-hover !important; + } +} + +// Landing Page Buttons +.button { + background-color: transparent !important; + border-color: $btn-border-color !important; + color: $body-color !important; + + &:hover { + background-color: lighten($gray-800, 5%) !important; + border-color: $lp-cyan !important; + } +} + +.button--fill { + background-color: $lp-teal !important; + border-color: transparent !important; + color: #ffffff !important; + + &:hover { + background-color: darken($lp-teal, 5%) !important; + box-shadow: 0 4px 15px rgba($lp-teal, 0.2) !important; + } +} + +// Landing Page Panels +.panel { + background-color: $panel-bg !important; + border-top-color: $lp-teal !important; + border-left: 1px solid $btn-border-color !important; + border-right: 1px solid $btn-border-color !important; + border-bottom: 1px solid $btn-border-color !important; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2) !important; + color: $text-muted !important; + + .panel-title { + color: $body-color !important; + } +} + +// Misc Quarto and site-specific rules +.quarto-title-banner { + background-color: $background-nav !important; +} + +.title { + color: $white !important; +} + +.team-member, +.input-group-text { + background-color: $background-nav !important; +} + +.level4, +.listing-category { + color: $foreground !important; +} + +.badge.deprecated { + color: $white !important; + background-color: $red !important; +} + +// table background & text +.packages-table { + color: $text-muted !important; + background-color: $background-nav !important; +} + +// cell borders +.packages-table th, +.packages-table td { + border-bottom-color: $gray-900 !important; +} + +// header row +.packages-table thead { + background-color: $background-nav !important; +} + +// zebra stripes +.packages-table tbody tr:nth-child(odd) { + background-color: darken($gray-900, 5%) !important; +} + +// hover state +.packages-table tbody tr:hover { + background-color: lighten($background-nav, 5%) !important; +} + +// “Deprecated” badge styling +.badge.deprecated { + color: $white !important; + background-color: $red !important; +} + +code { + background-color: $code-block-bg !important; + color: $li-color !important; +} + +.card { + background-color: #f8f9fa !important; +} + +// --- Mixins --- +@mixin raw-card { + border-radius: $border-radius-sm; + padding: 1rem; + --bs-card-spacer-x: 0rem !important; + --bs-card-spacer-y: 0rem !important; + color: $body-color !important; + background-color: $code-block-bg !important; + border: solid $code-block-bg 1px !important; + transition: background-color 0.3s ease, border-color 0.3s ease !important; +} + +@mixin card($hover-border) { + @include raw-card; + + .card-title { + color: $body-color !important; + font-weight: 700; + } + + &:hover { + background-color: lighten($code-block-bg, 5%) !important; + border-color: $hover-border !important; + } +} + +// Card and Pseudolisting styles +.card { + @include card($lp-cyan); + + .card-text { + color: $text-muted; + } +} + +.pseudolisting { + @extend .card; + + &:hover { + text-decoration: none; + } +} + +.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item * { + color: white !important; +} + +.aa-List li.aa-Item[aria-selected="true"] * { + background-color: $lp-teal !important; +} + +.tooltip-inner { + color: white; +} + + +================== +_includes/news.qmd +================== +--- +listing: +- id: news + contents: + - "news/posts/*/index.qmd" + # max-items: 10 + sort: date desc + type: grid + grid-columns: 3 + categories: false + sort-ui: false + filter-ui: false + fields: [title, description, date, reading-time, author] + image-height: "200" + max-description-length: 100 +--- + +### News + +::: {#news} +::: + +[See all news →](news/) + +```{=html} + + + +``` \ No newline at end of file From fdea4b870b38a81722d90ecc06b2fd3fc6ae0501 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sun, 22 Jun 2025 15:12:02 +0530 Subject: [PATCH 43/88] Updated news carousel --- _includes/news/_news-carousel.ejs | 34 +- _includes/news/news.qmd | 213 +++++++ test.txt | 928 ------------------------------ theming/theme-dark.scss | 27 +- 4 files changed, 260 insertions(+), 942 deletions(-) delete mode 100644 test.txt diff --git a/_includes/news/_news-carousel.ejs b/_includes/news/_news-carousel.ejs index 947618255..07903e8fc 100644 --- a/_includes/news/_news-carousel.ejs +++ b/_includes/news/_news-carousel.ejs @@ -1,15 +1,23 @@ ```{=html} -<% for (const item of items) { %> - -
<%- item.title %>
-

<%- item['reading-time'] %> min

-<% if (item.description) { %> -

<%- item.description %>

-<% } %> - -<%- item.author %> -<%- item.date %> - -
-<% } %> + ``` \ No newline at end of file diff --git a/_includes/news/news.qmd b/_includes/news/news.qmd index baabbfc4f..9cd2f66e0 100644 --- a/_includes/news/news.qmd +++ b/_includes/news/news.qmd @@ -13,3 +13,216 @@ listing: ::: [See all news →](news/) + +```{=html} + + + +``` \ No newline at end of file diff --git a/test.txt b/test.txt deleted file mode 100644 index 3a2e6f8d3..000000000 --- a/test.txt +++ /dev/null @@ -1,928 +0,0 @@ -================== -index.qmd: -================== ---- -toc: false -page-layout: full -section-divs: false -hide-description: true -description: | - Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. ---- - -{{< include _includes/header.qmd >}} - -::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-4 .section-end-space} - -::: {.panel} -##### Expressive {.panel-title .pb-1} -Turing models are easy to write and communicate, with syntax that is close to the mathematical specification of the model. -::: - -::: {.panel} -##### General-purpose {.panel-title .pb-1} -Turing supports models with discrete parameters and stochastic control flow. -::: - -::: {.panel} -##### Composable {.panel-title .pb-1} -Turing is written entirely in Julia, and is interoperable with its powerful ecosystem. -::: - -::::: - -{{< include _includes/news.qmd >}} - -### Learn more - -```{=html} - -``` - - - - - -
- -{{< include _includes//citation/cite.qmd >}} - -
- - -================== -theming/styles.css -================== -.navbar a:hover { - text-decoration: none; -} - -.cell-output { - border: 1px dashed; -} - -.cell-output-stdout code { - word-break: break-word !important; - white-space: pre-wrap !important; -} - -.cell-output-display svg { - height: fit-content; - width: fit-content; -} - -.cell-output-display img { - max-width: 100%; - max-height: 100%; - object-fit: contain; -} - -.nav-footer-center { - display: flex; - justify-content: center; -} - -.line-graph { - width: 100%; - padding-top: 5%; - position: relative; -} - -svg { - width: 100%; - height: 100%; -} - -@keyframes draw { - to { - stroke-dashoffset: 0; - } -} - -.line { - fill: none; - stroke-width: 7; - stroke-dasharray: 3900; - stroke-dashoffset: 3900; - animation: draw 6s forwards ease-in-out; - stroke-opacity: 1; -} - -.line1 { - stroke: #b352cc; - animation-delay: 0s; -} - -.line2 { - stroke: #cc3333; - animation-delay: 0.5s; -} - -.line3 { - stroke: #218921; - animation-delay: 1s; -} - -.upper-content { - width: 88%; - text-align: end; - padding-top: 7%; - padding-right: 45%; - position: absolute; - z-index: 5; - opacity: 0; - animation: fadeInText 1s forwards ease-in-out; - animation-delay: 0.5s; -} - -@keyframes fadeInText { - to { - opacity: 1; - transform: translateY(0); - } -} - -.upper-content>h1 { - font-size: 5rem; - font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; -} - -.upper-content>p { - font-size: 25px; - font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; - margin-top: 5%; -} - -@media screen and (max-width: 992px) { - .upper-content>h1 { - font-size: 3.5rem; - } -} - -@media screen and (max-width: 768px) { - .upper-content { - width: 100%; - padding-top: 0%; - padding-right: 0%; - text-align: center; - } -} - -.content-panel { - padding: 1.5rem; -} - -.section-end-space { - padding-bottom: 2rem; -} - -.section-start-space { - padding-top: 2rem; -} - -.responsive-heading { - font-size: clamp(2rem, 6vw, 6rem); -} - -.panel-wrapper { - justify-content: space-between; -} - -.example-code { - flex: 0 1 45%; -} - -.example-text { - flex: 0 1 53%; -} - -@media screen and (max-width: 992px) { - .panel-wrapper { - justify-content: center; - } -} - -@media screen and (max-width: 768px) { - .example-code, - .example-text { - flex: 0 1 100%; - } -} - -a { - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -.button, -.button--fill { - display: inline-block; - padding: 10px 24px; - border-radius: 50px; - font-weight: 600; - text-align: center; - cursor: pointer; - transition: transform 0.2s ease, box-shadow 0.2s ease; - text-decoration: none; - border-style: solid; - border-width: 2px; -} - -.button:hover, -.button--fill:hover { - transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); - text-decoration: none; -} - -.panel { - border-radius: 12px; - padding: 2rem; - min-height: 150px; - min-width: 300px; - max-width: 31%; - transition: transform 0.2s ease, box-shadow 0.2s ease; - border-top: 4px solid; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05); -} - -.panel:hover { - transform: translateY(-5px); - box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); -} - -.panel-title { - font-size: 1.4rem; - font-weight: 700; - margin-bottom: 1rem; -} - -.panel--nopad { - padding: 0rem; -} - -.card, -.pseudolisting { - border-radius: 0.5rem; - transition: background-color 0.3s ease, border-color 0.3s ease; -} - -.pseudolisting { - padding: 1rem; -} - -.card .card-title, -.pseudolisting .h5 { - font-weight: 700; -} - -.pseudolisting { - display: block; - text-decoration: none; -} - -.pseudolisting:hover { - text-decoration: none; -} - -.button { - background-color: #ffffff; - border-color: #e9ecef; - color: #495057; -} - -.button--fill { - background-color: #4DB6AC; - border-color: transparent; - color: #ffffff; -} - -.button--fill:hover { - background-color: #26A69A; -} - -.panel { - background-color: #ffffff; - border-top-color: #4DB6AC; -} - -.panel-title { - color: #212529; -} - -.panel, -.panel p { - color: #6c757d; - font-size: 17px; - font-weight: 400; -} - -.card, -.pseudolisting, -#carousel-container .quarto-grid-item.card.news-item { - background-color: #f8f9fa; - border: 1px solid #e9ecef; - color: #212529; -} - -.card:hover, -.pseudolisting:hover, -#carousel-container .quarto-grid-item.card.news-item:hover { - background-color: #e9ecef; - border-color: #dee2e6; -} - -.card .card-title { - color: #212529; -} - -.card .card-text { - color: #6c757d; -} - -.sourceCode, -code { - color: #212529; - border-radius: 0.5rem; -} - - -================== -theming/theme-dark.scss -================== -/*-- scss:defaults --*/ -// Cosmo 5.3.3 -// Bootswatch - -$theme: "cosmo" !default; - -// --- Consolidated Variables --- - -// Base colors for the entire site -$background-nav: #22272e; -$background-body: #1c2128; // Using the darker background from new theme -$foreground: #ffffff; -$links: #34b8bf; -$links-hover: #31dce6; - -// Text colors -$text-muted: #bcbcbc; -$li-color: #bcbcbc; - -// Landing Page specific colors -$lp-cyan: #39d3d7; -$lp-teal: #4DB6AC; - -// Component & Code block colors -$code-block-bg: #22272e; -$panel-bg: #22272e; -$btn-border-color: #444c56; - -// Bootstrap color overrides -$white: #ffffff !default; -$gray-800: #22272e; -$gray-900: #1c2128; -$red: #ff0039 !default; -$green: #3fb618 !default; - -$primary: $links-hover !default; -$secondary: $gray-800 !default; -$success: $green !default; -$danger: $red !default; - -// Global settings -$min-contrast-ratio: 2.6 !default; -$enable-rounded: false !default; -$font-family-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default; -$headings-font-weight: 400 !default; - -$navbar-bg: $background-nav; -$navbar-fg: $foreground; -$footer-bg: $background-nav; -$footer-fg: $foreground; -$body-color: $white; -$body-bg: $background-body; - - -/*-- scss:rules --*/ - -// --- Global Styles --- -p { - color: $text-muted !important; -} - -li { - color: $li-color !important; -} - -a { - color: $links; - - &:hover { - color: $links-hover !important; - } -} - -// Landing Page Buttons -.button { - background-color: transparent !important; - border-color: $btn-border-color !important; - color: $body-color !important; - - &:hover { - background-color: lighten($gray-800, 5%) !important; - border-color: $lp-cyan !important; - } -} - -.button--fill { - background-color: $lp-teal !important; - border-color: transparent !important; - color: #ffffff !important; - - &:hover { - background-color: darken($lp-teal, 5%) !important; - box-shadow: 0 4px 15px rgba($lp-teal, 0.2) !important; - } -} - -// Landing Page Panels -.panel { - background-color: $panel-bg !important; - border-top-color: $lp-teal !important; - border-left: 1px solid $btn-border-color !important; - border-right: 1px solid $btn-border-color !important; - border-bottom: 1px solid $btn-border-color !important; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2) !important; - color: $text-muted !important; - - .panel-title { - color: $body-color !important; - } -} - -// Misc Quarto and site-specific rules -.quarto-title-banner { - background-color: $background-nav !important; -} - -.title { - color: $white !important; -} - -.team-member, -.input-group-text { - background-color: $background-nav !important; -} - -.level4, -.listing-category { - color: $foreground !important; -} - -.badge.deprecated { - color: $white !important; - background-color: $red !important; -} - -// table background & text -.packages-table { - color: $text-muted !important; - background-color: $background-nav !important; -} - -// cell borders -.packages-table th, -.packages-table td { - border-bottom-color: $gray-900 !important; -} - -// header row -.packages-table thead { - background-color: $background-nav !important; -} - -// zebra stripes -.packages-table tbody tr:nth-child(odd) { - background-color: darken($gray-900, 5%) !important; -} - -// hover state -.packages-table tbody tr:hover { - background-color: lighten($background-nav, 5%) !important; -} - -// “Deprecated” badge styling -.badge.deprecated { - color: $white !important; - background-color: $red !important; -} - -code { - background-color: $code-block-bg !important; - color: $li-color !important; -} - -.card { - background-color: #f8f9fa !important; -} - -// --- Mixins --- -@mixin raw-card { - border-radius: $border-radius-sm; - padding: 1rem; - --bs-card-spacer-x: 0rem !important; - --bs-card-spacer-y: 0rem !important; - color: $body-color !important; - background-color: $code-block-bg !important; - border: solid $code-block-bg 1px !important; - transition: background-color 0.3s ease, border-color 0.3s ease !important; -} - -@mixin card($hover-border) { - @include raw-card; - - .card-title { - color: $body-color !important; - font-weight: 700; - } - - &:hover { - background-color: lighten($code-block-bg, 5%) !important; - border-color: $hover-border !important; - } -} - -// Card and Pseudolisting styles -.card { - @include card($lp-cyan); - - .card-text { - color: $text-muted; - } -} - -.pseudolisting { - @extend .card; - - &:hover { - text-decoration: none; - } -} - -.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item * { - color: white !important; -} - -.aa-List li.aa-Item[aria-selected="true"] * { - background-color: $lp-teal !important; -} - -.tooltip-inner { - color: white; -} - - -================== -_includes/news.qmd -================== ---- -listing: -- id: news - contents: - - "news/posts/*/index.qmd" - # max-items: 10 - sort: date desc - type: grid - grid-columns: 3 - categories: false - sort-ui: false - filter-ui: false - fields: [title, description, date, reading-time, author] - image-height: "200" - max-description-length: 100 ---- - -### News - -::: {#news} -::: - -[See all news →](news/) - -```{=html} - - - -``` \ No newline at end of file diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index a28c4989e..63481d2eb 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -228,4 +228,29 @@ code { .tooltip-inner { color: white; -} \ No newline at end of file +} + +// Dark mode styles for the news carousel +#news-carousel-container { + + .news-carousel-card { + background-color: $code-block-bg !important; + border: 1px solid transparent !important; + color: $body-color !important; + + &:hover { + background-color: lighten($code-block-bg, 5%) !important; + border-color: $lp-cyan !important; + } + } + + .news-carousel-title { + color: $body-color !important; + } + + .news-carousel-reading-time, + .news-carousel-description, + .news-carousel-attribution { + color: $text-muted !important; + } +} From 0075b73463aab11b87049cfa52673d8efcd9a0ca Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sun, 22 Jun 2025 15:50:23 +0530 Subject: [PATCH 44/88] Mouse scroll in news works fine now --- _includes/news/news.qmd | 83 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 7 deletions(-) diff --git a/_includes/news/news.qmd b/_includes/news/news.qmd index 9cd2f66e0..800b8026e 100644 --- a/_includes/news/news.qmd +++ b/_includes/news/news.qmd @@ -21,6 +21,11 @@ listing: overflow: hidden; position: relative; width: 100%; + cursor: grab; +} + +#news-carousel-container.grabbing { + cursor: grabbing; } #news-carousel-container #news-carousel-track { @@ -135,10 +140,16 @@ document.addEventListener('DOMContentLoaded', function () { } const slides = Array.from(carouselTrack.children); - const displayDuration = 2500; + const displayDuration = 2000; let currentTranslate = 0; + let prevTranslate = 0; let currentIndex = 0; let intervalId; + + // Interaction state variables + let isDragging = false; + let startPos = 0; + let hasDragged = false; let wheelTimeout; let isWheeling = false; @@ -148,6 +159,10 @@ document.addEventListener('DOMContentLoaded', function () { if (width > 768 && width <= 1024) return 2; return 3; } + + const getPositionX = (event) => { + return event.type.includes('mouse') ? event.pageX : event.touches[0].clientX; + } const startAutoplay = () => { stopAutoplay(); @@ -179,7 +194,7 @@ document.addEventListener('DOMContentLoaded', function () { } const autoplayNext = () => { - if (document.hidden) return; + if (document.hidden || isDragging) return; const itemsPerView = getItemsPerView(); const maxIndex = slides.length > itemsPerView ? slides.length - itemsPerView : 0; @@ -189,13 +204,52 @@ document.addEventListener('DOMContentLoaded', function () { } setPositionByIndex(); } + + function handleDragStart(event) { + isDragging = true; + hasDragged = false; + startPos = getPositionX(event); + const style = window.getComputedStyle(carouselTrack); + const matrix = new DOMMatrix(style.transform); + prevTranslate = matrix.m41; + carouselContainer.classList.add('grabbing'); + carouselTrack.style.transition = 'none'; + stopAutoplay(); + } + + function handleDragMove(event) { + if (!isDragging) return; + const currentPosition = getPositionX(event); + currentTranslate = prevTranslate + currentPosition - startPos; + setSliderPosition(); + if (Math.abs(currentPosition - startPos) > 10) { + hasDragged = true; + } + } + + function handleDragEnd() { + if (!isDragging) return; + isDragging = false; + carouselContainer.classList.remove('grabbing'); + const movedBy = currentTranslate - prevTranslate; + const itemsPerView = getItemsPerView(); + const maxIndex = slides.length > itemsPerView ? slides.length - itemsPerView : 0; + + if (movedBy < -50 && currentIndex < maxIndex) { + currentIndex++; + } + if (movedBy > 50 && currentIndex > 0) { + currentIndex--; + } + + setPositionByIndex(); + startAutoplay(); + } - const handleWheel = (event) => { + function handleWheel(event) { event.preventDefault(); - if (isWheeling) return; isWheeling = true; - stopAutoplay(); const itemsPerView = getItemsPerView(); @@ -210,15 +264,30 @@ document.addEventListener('DOMContentLoaded', function () { setPositionByIndex(); clearTimeout(wheelTimeout); - wheelTimeout = setTimeout(startAutoplay, 300); - + wheelTimeout = setTimeout(startAutoplay, 500); setTimeout(() => { isWheeling = false; }, 100); } + + carouselContainer.addEventListener('mousedown', handleDragStart); + window.addEventListener('mouseup', handleDragEnd); + window.addEventListener('mousemove', handleDragMove); + carouselContainer.addEventListener('touchstart', handleDragStart, { passive: true }); + window.addEventListener('touchend', handleDragEnd); + window.addEventListener('touchmove', handleDragMove, { passive: true }); + + carouselContainer.addEventListener('click', (e) => { + if (hasDragged) { + e.preventDefault(); + } + }, true); + carouselContainer.addEventListener('wheel', handleWheel, { passive: false }); + carouselContainer.addEventListener('mouseenter', stopAutoplay); carouselContainer.addEventListener('mouseleave', startAutoplay); document.addEventListener('visibilitychange', () => document.hidden ? stopAutoplay() : startAutoplay()); + window.addEventListener('resize', setPositionByIndex); setPositionByIndex(); From d1a84352765acdc07cf52862a84862eaa003d099 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sun, 22 Jun 2025 20:50:01 +0530 Subject: [PATCH 45/88] Updated lot of things, yet to remove news section --- _includes/citation/cite.qmd | 99 ++++++++++++++++++++--------- _includes/news/news.qmd | 10 ++- index.qmd | 123 ++++++++++-------------------------- theming/styles.css | 72 +++++++++++++++++++++ theming/theme-dark.scss | 32 ++++++++++ 5 files changed, 213 insertions(+), 123 deletions(-) diff --git a/_includes/citation/cite.qmd b/_includes/citation/cite.qmd index 7bd521ab3..4fc34c53e 100644 --- a/_includes/citation/cite.qmd +++ b/_includes/citation/cite.qmd @@ -1,33 +1,70 @@ -

Turing.jl is an MIT Licensed Open Source Project

- -

If you use Turing.jl in your research, please consider citing our paper.

- -::: {.example-code style="max-width: 800px; margin: auto; text-align: left;"} - -```{.bibtex .code-overflow-scroll} +
+

Turing.jl is an MIT Licensed Open Source Project

+

If you use Turing.jl in your research, please consider citing our papers.

+
+

+Fjelde, T. E., Xu, K., Widmann, D., Tarek, M., Pfiffer, C., Trapp, M., Axen, S. D., Sun, X., Hauru, M., Yong, P., Tebbutt, W., Ghahramani, Z., & Ge, H. (2025). Turing.jl: a general-purpose probabilistic programming language. ACM Transactions on Probabilistic Machine Learning. Just Accepted. +

+
+View Paper + +
+
+@article{10.1145/3711897,
+author = {Fjelde, Tor Erlend and Xu, Kai and Widmann, David and Tarek, Mohamed and Pfiffer, Cameron and Trapp, Martin and Axen, Seth D. and Sun, Xianda and Hauru, Markus and Yong, Penelope and Tebbutt, Will and Ghahramani, Zoubin and Ge, Hong},
+title = {Turing.jl: a general-purpose probabilistic programming language},
+year = {2025},
+publisher = {Association for Computing Machinery},
+address = {New York, NY, USA},
+url = {[https://doi.org/10.1145/3711897](https://doi.org/10.1145/3711897)},
+doi = {10.1145/3711897},
+note = {Just Accepted},
+journal = {ACM Trans. Probab. Mach. Learn.},
+month = feb
+}
+
+
+
+

+Ge, H., Xu, K., & Ghahramani, Z. (2018). Turing: a language for flexible probabilistic inference. In Proceedings of the 21st International Conference on Artificial Intelligence and Statistics (AISTATS) (Vol. 84, pp. 1682-1690). PMLR. +

+
+View Paper + +
+
 @inproceedings{ge2018t,
-  author    = {Hong Ge and Kai Xu and Zoubin Ghahramani},
-  title     = {Turing: a language for flexible probabilistic inference},
-  booktitle = {International Conference on Artificial Intelligence and Statistics, {AISTATS} 2018, 9-11 April 2018, Playa Blanca, Lanzarote, Canary Islands, Spain},
-  pages     = {1682--1690},
-  year      = {2018},
-  url       = {[http://proceedings.mlr.press/v84/ge18b.html](http://proceedings.mlr.press/v84/ge18b.html)},
-  biburl    = {[https://dblp.org/rec/bib/conf/aistats/GeXG18](https://dblp.org/rec/bib/conf/aistats/GeXG18)},
+author    = {Hong Ge and Kai Xu and Zoubin Ghahramani},
+title     = {Turing: a language for flexible probabilistic inference},
+booktitle = {International Conference on Artificial Intelligence and Statistics, {AISTATS} 2018, 9-11 April 2018, Playa Blanca, Lanzarote, Canary Islands, Spain},
+pages     = {1682--1690},
+year      = {2018},
+url       = {[http://proceedings.mlr.press/v84/ge18b.html](http://proceedings.mlr.press/v84/ge18b.html)},
+biburl    = {[https://dblp.org/rec/bib/conf/aistats/GeXG18](https://dblp.org/rec/bib/conf/aistats/GeXG18)},
+}
+
+
+
+ diff --git a/_includes/news/news.qmd b/_includes/news/news.qmd index 800b8026e..148a1d314 100644 --- a/_includes/news/news.qmd +++ b/_includes/news/news.qmd @@ -12,9 +12,13 @@ listing: ::: {#news-carousel} ::: -[See all news →](news/) - ```{=html} + + + +
+

Trusted by World-Class Institutions

+

+ We are proud to collaborate with leading organizations and universities at the forefront of research and innovation. +

+
+ +
+ + + + + +
+
+``` \ No newline at end of file diff --git a/_includes/citation/cite.qmd b/_includes/citation/cite.qmd index ac4fec9bd..911d8c637 100644 --- a/_includes/citation/cite.qmd +++ b/_includes/citation/cite.qmd @@ -1,70 +1,120 @@ +```{=html}
-

Turing.jl is an MIT Licensed Open Source Project

-

If you use Turing.jl in your research, please consider citing our papers.

-
-

-Fjelde, T. E., Xu, K., Widmann, D., Tarek, M., Pfiffer, C., Trapp, M., Axen, S. D., Sun, X., Hauru, M., Yong, P., Tebbutt, W., Ghahramani, Z., & Ge, H. (2025). Turing.jl: a general-purpose probabilistic programming language. ACM Transactions on Probabilistic Machine Learning. Just Accepted. -

-
-View Paper - -
-
-@article{10.1145/3711897,
-author = {Fjelde, Tor Erlend and Xu, Kai and Widmann, David and Tarek, Mohamed and Pfiffer, Cameron and Trapp, Martin and Axen, Seth D. and Sun, Xianda and Hauru, Markus and Yong, Penelope and Tebbutt, Will and Ghahramani, Zoubin and Ge, Hong},
-title = {Turing.jl: a general-purpose probabilistic programming language},
-year = {2025},
-publisher = {Association for Computing Machinery},
-address = {New York, NY, USA},
-url = {https://doi.org/10.1145/3711897},
-doi = {10.1145/3711897},
-note = {Just Accepted},
-journal = {ACM Trans. Probab. Mach. Learn.},
-month = feb
+  

Turing.jl is an MIT Licensed Open Source Project

+

If you use Turing.jl in your research, please consider citing our papers.

+ +
    +
  • +

    + Fjelde, T. E., Xu, K., Widmann, D., Tarek, M., Pfiffer, C., Trapp, M., Axen, S. D., Sun, X., Hauru, M., Yong, P., Tebbutt, W., Ghahramani, Z., & Ge, H. (2025). Turing.jl: a general-purpose probabilistic programming language. ACM Transactions on Probabilistic Machine Learning. Just Accepted. +

    +
    + View Paper + +
    +
    +@article{Fjelde2025Turing,
    +  author    = {Fjelde, Tor Erlend and Xu, Kai and Widmann, David and Tarek, Mohamed and Pfiffer, Cameron and Trapp, Martin and Axen, Seth D. and Sun, Xianda and Hauru, Markus and Yong, Penelope and Tebbutt, Will and Ghahramani, Zoubin and Ge, Hong},
    +  title     = {Turing.jl: a general-purpose probabilistic programming language},
    +  journal   = {ACM Transactions on Probabilistic Machine Learning},
    +  year      = {2025},
    +  publisher = {Association for Computing Machinery},
    +  doi       = {10.1145/3711897},
    +  note      = {Just Accepted},
    +  url       = {https://doi.org/10.1145/3711897}
     }
    -
    -
-
-

-Ge, H., Xu, K., & Ghahramani, Z. (2018). Turing: a language for flexible probabilistic inference. In Proceedings of the 21st International Conference on Artificial Intelligence and Statistics (AISTATS) (Vol. 84, pp. 1682-1690). PMLR. -

-
-View Paper - -
-
-@inproceedings{ge2018t,
-author    = {Hong Ge and Kai Xu and Zoubin Ghahramani},
-title     = {Turing: a language for flexible probabilistic inference},
-booktitle = {International Conference on Artificial Intelligence and Statistics, {AISTATS} 2018, 9-11 April 2018, Playa Blanca, Lanzarote, Canary Islands, Spain},
-pages     = {1682--1690},
-year      = {2018},
-url       = {http://proceedings.mlr.press/v84/ge18b.html},
-biburl    = {https://dblp.org/rec/bib/conf/aistats/GeXG18},
+      
+ +
  • +

    + Ge, H., Xu, K., & Ghahramani, Z. (2018). Turing: a language for flexible probabilistic inference. In Proceedings of the 21st International Conference on Artificial Intelligence and Statistics (AISTATS) (Vol. 84, pp. 1682-1690). PMLR. +

    +
    + View Paper + +
    +
    +@inproceedings{Ge2018Turing,
    +  author    = {Ge, Hong and Xu, Kai and Ghahramani, Zoubin},
    +  title     = {Turing: a language for flexible probabilistic inference},
    +  booktitle = {Proceedings of the 21st International Conference on Artificial Intelligence and Statistics (AISTATS)},
    +  series    = {Proceedings of Machine Learning Research},
    +  volume    = {84},
    +  pages     = {1682--1690},
    +  year      = {2018},
    +  publisher = {PMLR},
    +  url       = {http://proceedings.mlr.press/v84/ge18b.html}
     }
    -
    -
  • + + +
    + +``` \ No newline at end of file diff --git a/_includes/news/_news-carousel.ejs b/_includes/news/_news-carousel.ejs deleted file mode 100644 index 07903e8fc..000000000 --- a/_includes/news/_news-carousel.ejs +++ /dev/null @@ -1,23 +0,0 @@ -```{=html} - -``` \ No newline at end of file diff --git a/_includes/news/news.qmd b/_includes/news/news.qmd deleted file mode 100644 index 148a1d314..000000000 --- a/_includes/news/news.qmd +++ /dev/null @@ -1,301 +0,0 @@ ---- -listing: - - id: news-carousel - contents: - - "news/posts/*/index.qmd" - template: _includes/news/_news-carousel.ejs - sort: "date desc" ---- - -### News - -::: {#news-carousel} -::: - -```{=html} - - - - - -``` \ No newline at end of file diff --git a/index.qmd b/index.qmd index 8d03bad18..5c5c110b9 100644 --- a/index.qmd +++ b/index.qmd @@ -11,25 +11,23 @@ description: | ::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-4 .section-end-space} -::: {.panel} +::: {.panel .box} ##### Expressive {.panel-title .pb-1} Turing models are easy to write and communicate, with syntax that is close to the mathematical specification of the model. ::: -::: {.panel} +::: {.panel .box} ##### General-purpose {.panel-title .pb-1} Turing supports models with discrete parameters and stochastic control flow. ::: -::: {.panel} +::: {.panel .box} ##### Composable {.panel-title .pb-1} Turing is written entirely in Julia, and is interoperable with its powerful ecosystem. ::: ::::: -{{< include _includes/news/news.qmd >}} - ```{=html}

    Start Your Journey

    @@ -38,7 +36,7 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    -
    +
    🚀
    New to Turing?

    Begin with the basics. Our step-by-step tutorials will guide you from installation to your first probabilistic models.

    @@ -48,7 +46,7 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    -
    +
    🔬
    For Researchers

    Dive into advanced models, explore the rich package ecosystem, and learn how to cite Turing.jl in your work.

    @@ -58,7 +56,7 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    -
    +
    💻
    For Developers

    Join our community, contribute to the project on GitHub, and connect with fellow developers on Slack.

    @@ -73,6 +71,12 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    +{{< include _includes/brands.qmd >}} + +
    + +
    + {{< include _includes/citation/cite.qmd >}}
    diff --git a/news/news.css b/news/news.css index 07eb7337f..dfea67fca 100644 --- a/news/news.css +++ b/news/news.css @@ -10,6 +10,10 @@ max-height:fit-content; } +.quarto-title-banner { + background-color: #ffffff; +} + /* @media (max-width: 768px) { .quarto-post { max-height: 200px; diff --git a/theming/styles.css b/theming/styles.css index ddb3f155d..f0411666d 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -191,54 +191,39 @@ a:hover { text-decoration: none; } -.panel { +/* === Universal Box Styling === */ +.box { border-radius: 12px; padding: 2rem; - min-height: 150px; - min-width: 300px; - max-width: 31%; - transition: transform 0.2s ease, box-shadow 0.2s ease; - border-top: 4px solid; + transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.3s ease; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05); + background-color: #ffffff; } -.panel:hover { +.box:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); } -.panel-title { - font-size: 1.4rem; - font-weight: 700; - margin-bottom: 1rem; -} - -.panel--nopad { - padding: 0rem; +.box--splash { + background-color: #eef7f7; /* Keeping this for use in future */ } -.card, -.pseudolisting { - border-radius: 0.5rem; - transition: background-color 0.3s ease, border-color 0.3s ease; +.panel { + min-height: 150px; + min-width: 300px; + max-width: 31%; } -.pseudolisting { - padding: 1rem; +.panel:hover { + transform: none; + box-shadow: none; } -.card .card-title, -.pseudolisting .h5 { +.panel-title { + font-size: 1.4rem; font-weight: 700; -} - -.pseudolisting { - display: block; - text-decoration: none; -} - -.pseudolisting:hover { - text-decoration: none; + margin-bottom: 1rem; } .button { @@ -257,11 +242,6 @@ a:hover { background-color: #26A69A; } -.panel { - background-color: #ffffff; - border-top-color: #4DB6AC; -} - .panel-title { color: #212529; } @@ -273,17 +253,12 @@ a:hover { font-weight: 400; } -.card, -.pseudolisting, -#carousel-container .quarto-grid-item.card.news-item { - background-color: #f8f9fa; +.card { border: 1px solid #e9ecef; color: #212529; } -.card:hover, -.pseudolisting:hover, -#carousel-container .quarto-grid-item.card.news-item:hover { +.card:hover { background-color: #e9ecef; border-color: #dee2e6; } @@ -302,24 +277,20 @@ code { border-radius: 0.5rem; } -/* === Citation Styles === */ +/* Citation Styles */ .citation-container { - max-width: 800px; margin: auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; } +.citation-list { + list-style: none; + padding: 0; + margin: 0; +} .citation-entry { - background-color: #ffffff; /* White box */ - border: 1px solid #e0e0e0; - border-radius: 8px; - padding: 1.5rem; margin-bottom: 1.5rem; - box-shadow: 0 4px 12px rgba(0,0,0,0.05); - transition: box-shadow 0.3s ease; -} -.citation-entry:hover { - box-shadow: 0 6px 16px rgba(0,0,0,0.08); } + .citation-text { font-size: 1rem; line-height: 1.7; @@ -364,4 +335,4 @@ code { } .turing-license-link code:hover { color: #31dce6 !important; -} \ No newline at end of file +} diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index eb833c122..408b9fc74 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -56,11 +56,11 @@ $body-bg: $background-body; // --- Global Styles --- .quarto-container { - background-color: $background-body !important; + background-color: $background-body !important; } .navbar { - background-color: $navbar-bg !important; + background-color: $navbar-bg !important; } p { @@ -79,6 +79,20 @@ a { } } +// Universal Box Styling for Dark Mode +.box { + background-color: $panel-bg !important; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2) !important; + + &:hover { + background-color: lighten($panel-bg, 3%) !important; + } +} + +.box--splash { + background-color: lighten($panel-bg, 2%) !important; // Keeping this for use in future +} + // Landing Page Buttons .button { background-color: transparent !important; @@ -104,12 +118,6 @@ a { // Landing Page Panels .panel { - background-color: $panel-bg !important; - border-top-color: $lp-teal !important; - border-left: 1px solid $btn-border-color !important; - border-right: 1px solid $btn-border-color !important; - border-bottom: 1px solid $btn-border-color !important; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2) !important; color: $text-muted !important; .panel-title { @@ -126,156 +134,24 @@ a { color: $white !important; } -.team-member, -.input-group-text { - background-color: $background-nav !important; -} - -.level4, -.listing-category { - color: $foreground !important; -} - -.badge.deprecated { - color: $white !important; - background-color: $red !important; -} - -// table background & text -.packages-table { - color: $text-muted !important; - background-color: $background-nav !important; -} - -// cell borders -.packages-table th, -.packages-table td { - border-bottom-color: $gray-900 !important; -} - -// header row -.packages-table thead { - background-color: $background-nav !important; -} - -// zebra stripes -.packages-table tbody tr:nth-child(odd) { - background-color: darken($gray-900, 5%) !important; -} - -// hover state -.packages-table tbody tr:hover { - background-color: lighten($background-nav, 5%) !important; -} - -// “Deprecated” badge styling -.badge.deprecated { - color: $white !important; - background-color: $red !important; -} - code { background-color: $code-block-bg !important; color: $li-color !important; } -.card { - background-color: #f8f9fa !important; -} - -// --- Mixins --- -@mixin raw-card { - border-radius: $border-radius-sm; - padding: 1rem; - --bs-card-spacer-x: 0rem !important; - --bs-card-spacer-y: 0rem !important; - color: $body-color !important; - background-color: $code-block-bg !important; - border: solid $code-block-bg 1px !important; - transition: background-color 0.3s ease, border-color 0.3s ease !important; -} - -@mixin card($hover-border) { - @include raw-card; - - .card-title { - color: $body-color !important; - font-weight: 700; - } - - &:hover { - background-color: lighten($code-block-bg, 5%) !important; - border-color: $hover-border !important; - } -} - -// Card and Pseudolisting styles -.card { - @include card($lp-cyan); - - .card-text { - color: $text-muted; - } -} - -.pseudolisting { - @extend .card; - - &:hover { - text-decoration: none; - } -} - -.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item * { - color: white !important; -} - -.aa-List li.aa-Item[aria-selected="true"] * { - background-color: $lp-teal !important; -} - -.tooltip-inner { - color: white; -} - -// Dark mode styles for the news carousel -#news-carousel-container { - - .news-carousel-card { - background-color: $code-block-bg !important; - border: 1px solid transparent !important; - color: $body-color !important; - - &:hover { - background-color: lighten($code-block-bg, 5%) !important; - border-color: $lp-cyan !important; - } - } - - .news-carousel-title { - color: $body-color !important; - } - - .news-carousel-reading-time, - .news-carousel-description, - .news-carousel-attribution { - color: $text-muted !important; - } -} - - // Dark mode styles for the citation section .citation-entry { - background-color: $panel-bg !important; border-color: $btn-border-color !important; - box-shadow: 0 5px 20px rgba(0,0,0,0.2) !important; } + .citation-text { color: $text-muted !important; } + .citation-title { color: $body-color !important; } + .button--primary { background-color: transparent !important; color: $links !important; @@ -286,3 +162,12 @@ code { color: $panel-bg !important; } } + +// Brands Logo Switch +.brands-light-mode-logo { + display: none !important; +} + +.brands-dark-mode-logo { + display: inline !important; +} \ No newline at end of file From f75d89f5ee55b0da262e0dea0571c9524c95183a Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Mon, 23 Jun 2025 08:45:29 +0530 Subject: [PATCH 48/88] added brands id --- _includes/brands.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/brands.qmd b/_includes/brands.qmd index bac88b66b..8794214fb 100644 --- a/_includes/brands.qmd +++ b/_includes/brands.qmd @@ -50,7 +50,7 @@
    -

    Trusted by World-Class Institutions

    +

    Trusted by World-Class Institutions

    We are proud to collaborate with leading organizations and universities at the forefront of research and innovation.

    From 1bebdd97dd63341aa3ba6f5c64c2a4a44a84ac5c Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Tue, 24 Jun 2025 07:37:50 +0530 Subject: [PATCH 49/88] fix team theme in dark mode --- theming/theme-dark.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index 408b9fc74..e24c929e5 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -79,6 +79,10 @@ a { } } +.team-member, .input-group-text { + background-color: $background-nav !important; +} + // Universal Box Styling for Dark Mode .box { background-color: $panel-bg !important; From f5b636b35e3fedfa03dfc144bcc0fb28a3288af5 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Tue, 24 Jun 2025 08:36:27 +0530 Subject: [PATCH 50/88] trying custom page-layout --- index.qmd | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/index.qmd b/index.qmd index 5c5c110b9..05f3c1d0a 100644 --- a/index.qmd +++ b/index.qmd @@ -1,6 +1,6 @@ --- toc: false -page-layout: full +page-layout: custom section-divs: false hide-description: true description: | @@ -9,6 +9,8 @@ description: | {{< include _includes/header.qmd >}} +:::::: {.container} + ::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-4 .section-end-space} ::: {.panel .box} @@ -75,8 +77,10 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    -
    +
    {{< include _includes/citation/cite.qmd >}}
    + +:::::: From 2aa49fdaee4c7976fb36a767cbeb221ef7aabf5d Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Tue, 24 Jun 2025 09:20:13 +0530 Subject: [PATCH 51/88] added side-space --- index.qmd | 6 +++++- theming/styles.css | 5 +++++ theming/theme-dark.scss | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/index.qmd b/index.qmd index 05f3c1d0a..e509459f4 100644 --- a/index.qmd +++ b/index.qmd @@ -7,9 +7,13 @@ description: | Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. --- +::: {.section-start-space} + {{< include _includes/header.qmd >}} -:::::: {.container} +::: + +:::::: {.side-space} ::::: {.d-flex .flex-row .flex-wrap .panel-wrapper .gap-4 .section-end-space} diff --git a/theming/styles.css b/theming/styles.css index f0411666d..1e2756b28 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -336,3 +336,8 @@ code { .turing-license-link code:hover { color: #31dce6 !important; } + +.side-space { + padding-left: 4rem; + padding-right: 4rem; +} \ No newline at end of file diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index e24c929e5..e9abd53b3 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -80,7 +80,7 @@ a { } .team-member, .input-group-text { - background-color: $background-nav !important; + background-color: $background-nav !important; } // Universal Box Styling for Dark Mode From 0c36f0ae65689318c05546dd7124be45fb779c2f Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Wed, 25 Jun 2025 07:07:28 +0530 Subject: [PATCH 52/88] fix libraries page in dark mode --- theming/theme-dark.scss | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index e9abd53b3..a9f4e3ad0 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -83,6 +83,53 @@ a { background-color: $background-nav !important; } +.level4, .listing-category { + color: $foreground !important; +} + +::selection { + color: $links-hover; + background: $background-nav; +} + +.tooltip { + --bs-tooltip-color: $black !important; + --bs-tooltip-bg: $white !important; +} + +// table background & text +.packages-table { + background-color: $background-body !important; + color: $li-color !important; +} + +// cell borders +.packages-table th, +.packages-table td { + border-bottom-color: $gray-900 !important; +} + +// header row +.packages-table thead { + background-color: $gray-900 !important; +} + +// zebra stripes +.packages-table tbody tr:nth-child(odd) { + background-color: darken($background-nav, 5%) !important; +} + +// hover state +.packages-table tbody tr:hover { + background-color: lighten($background-nav, 5%) !important; +} + +// “Deprecated” badge styling +.badge.deprecated { + color: $white !important; + background-color: $red !important; +} + // Universal Box Styling for Dark Mode .box { background-color: $panel-bg !important; From b1e00fef4493d9b1ce38fab9cfd0778a1307aeb2 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Wed, 25 Jun 2025 08:05:07 +0530 Subject: [PATCH 53/88] few more fixes --- index.qmd | 4 ++-- theming/styles.css | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/index.qmd b/index.qmd index e509459f4..045ca7343 100644 --- a/index.qmd +++ b/index.qmd @@ -7,7 +7,7 @@ description: | Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. --- -::: {.section-start-space} +::: {.logo-header} {{< include _includes/header.qmd >}} @@ -58,7 +58,7 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos

    Dive into advanced models, explore the rich package ecosystem, and learn how to cite Turing.jl in your work.

    diff --git a/theming/styles.css b/theming/styles.css index 1e2756b28..75ff20add 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -37,7 +37,7 @@ .line-graph { width: 100%; - padding-top: 5%; + padding-top: 3%; position: relative; } @@ -115,12 +115,18 @@ svg { @media screen and (max-width: 768px) { .upper-content { width: 100%; - padding-top: 0%; + padding-top: 1.5rem; padding-right: 0%; text-align: center; } } +.logo-header { + padding: 0%; + margin-bottom: 0%; + /* background-color: #eef7f7; */ +} + .content-panel { padding: 1.5rem; } @@ -138,7 +144,7 @@ svg { } .panel-wrapper { - justify-content: space-between; + justify-content: center; } .example-code { From dcbb02d5134ea899c3ae0644e90f5041945cfca7 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 26 Jun 2025 19:46:51 +0530 Subject: [PATCH 54/88] brands text update --- _includes/brands.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/brands.qmd b/_includes/brands.qmd index 8794214fb..4a9734517 100644 --- a/_includes/brands.qmd +++ b/_includes/brands.qmd @@ -50,9 +50,9 @@
    -

    Trusted by World-Class Institutions

    +

    Supported by world-class institutions

    - We are proud to collaborate with leading organizations and universities at the forefront of research and innovation. + Turing.jl is currently being developed at leading research organisations.

    From e041046668e8975a913dc9b99bb2fd793d7254b6 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Fri, 4 Jul 2025 11:26:23 +0530 Subject: [PATCH 55/88] Add Alan Turing Institute Logo --- _includes/brands.qmd | 6 +++--- .../brands/Turing_Logo_1000x400px_Black.webp | Bin 0 -> 8770 bytes .../brands/Turing_Logo_1000x400px_White.webp | Bin 0 -> 8760 bytes 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 assets/images/brands/Turing_Logo_1000x400px_Black.webp create mode 100644 assets/images/brands/Turing_Logo_1000x400px_White.webp diff --git a/_includes/brands.qmd b/_includes/brands.qmd index 4a9734517..202b825e0 100644 --- a/_includes/brands.qmd +++ b/_includes/brands.qmd @@ -63,10 +63,10 @@ - +
    diff --git a/assets/images/brands/Turing_Logo_1000x400px_Black.webp b/assets/images/brands/Turing_Logo_1000x400px_Black.webp new file mode 100644 index 0000000000000000000000000000000000000000..68d3caa7e76876456483d4abd6b263ad8f5745ed GIT binary patch literal 8770 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 lo#&adh3drgbbfsxa{%x@L!s8tvmn# literal 0 HcmV?d00001 From 74a39f84ed8b7b0fb8c8c71b683c6dca004de0c5 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sat, 5 Jul 2025 02:03:48 +0530 Subject: [PATCH 56/88] fix ATI url --- _includes/brands.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_includes/brands.qmd b/_includes/brands.qmd index 202b825e0..982d32016 100644 --- a/_includes/brands.qmd +++ b/_includes/brands.qmd @@ -64,9 +64,9 @@ -
    From 7fdc59c71b79902b3dcc631af2129f620885592b Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sat, 5 Jul 2025 15:56:06 +0530 Subject: [PATCH 57/88] Add maX width as suggested by @simonsteiger --- .gitignore | 3 ++- theming/styles.css | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 860f5e90c..fbf14735d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /.quarto/ -_site/ \ No newline at end of file +_site/ +digest.txt \ No newline at end of file diff --git a/theming/styles.css b/theming/styles.css index 75ff20add..5a29f708b 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -344,6 +344,9 @@ code { } .side-space { - padding-left: 4rem; - padding-right: 4rem; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + padding-left: 2rem; + padding-right: 2rem; } \ No newline at end of file From 573bc3418c00fe2ad0483e6da85ae9beb5f796bb Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Tue, 8 Jul 2025 19:06:45 +0530 Subject: [PATCH 58/88] Add News and Tutorials on Landing Page --- .gitignore | 1 - _includes/card-listing.ejs | 52 ++++ _includes/featured-tutorials.yml | 20 ++ index.qmd | 47 ++++ news/posts/2019-12-14-initial-post/index.qmd | 1 + news/posts/2020-02-12-jsoc/index.qmd | 1 + .../index.qmd | 1 + news/posts/2020-09-11-gsoc/index.qmd | 1 + news/posts/2021-02-04-gsoc/index.qmd | 2 + news/posts/2022-02-17-gsoc/index.qmd | 1 + theming/styles.css | 250 +++++++++++++++++- 11 files changed, 373 insertions(+), 4 deletions(-) create mode 100644 _includes/card-listing.ejs create mode 100644 _includes/featured-tutorials.yml diff --git a/.gitignore b/.gitignore index fbf14735d..78d8c825a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ - /.quarto/ _site/ digest.txt \ No newline at end of file diff --git a/_includes/card-listing.ejs b/_includes/card-listing.ejs new file mode 100644 index 000000000..6565a97b8 --- /dev/null +++ b/_includes/card-listing.ejs @@ -0,0 +1,52 @@ +```{=html} + +``` \ No newline at end of file diff --git a/_includes/featured-tutorials.yml b/_includes/featured-tutorials.yml new file mode 100644 index 000000000..68c55f15b --- /dev/null +++ b/_includes/featured-tutorials.yml @@ -0,0 +1,20 @@ +- title: "Get Started with Turing.jl" + href: "https://turinglang.org/docs/getting-started/" + description: "Our step-by-step tutorials will guide you from installation to your first probabilistic models." + category: + - "Basics" + - "Getting Started" + +- title: "Introductory Concepts: Coin Flipping" + href: "https://turinglang.org/docs/tutorials/coin-flipping/" + description: "Learn the basic concepts of Bayesian modeling by working through a simple coin-flipping example." + category: + - "Basics" + - "Modeling" + +- title: "Bayesian Regression" + href: "https://turinglang.org/docs/tutorials/02-bayesian-regression/" + description: "Explore how to perform Bayesian linear and logistic regression using Turing.jl." + category: + - "Modeling" + - "Regression" diff --git a/index.qmd b/index.qmd index 045ca7343..6fbecbfb5 100644 --- a/index.qmd +++ b/index.qmd @@ -5,6 +5,19 @@ section-divs: false hide-description: true description: | Turing.jl is a probabilistic programming language and Bayesian modelling framework for the Julia programming language. +listing: + - id: news-and-updates + contents: "news/posts/*/index.qmd" + template: _includes/card-listing.ejs + sort: "date desc" + max-items: 5 + include: + on_landing: true + - id: featured-tutorials + contents: + - "./_includes/featured-tutorials.yml" + template: _includes/card-listing.ejs + max-items: 3 --- ::: {.logo-header} @@ -75,6 +88,40 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    ``` +
    + +```{=html} + +
    +
    +

    News & Updates

    +

    Read the latest from the Turing team.

    +
    + View more → +
    +``` + +::: {#news-and-updates} +::: + + +```{=html} + +
    +
    + +

    A selection of tutorials to get you started.

    +
    + View all tutorials → +
    +``` + +::: {#featured-tutorials} +::: + + +
    +
    {{< include _includes/brands.qmd >}} diff --git a/news/posts/2019-12-14-initial-post/index.qmd b/news/posts/2019-12-14-initial-post/index.qmd index 36b7858c0..2b13f5341 100644 --- a/news/posts/2019-12-14-initial-post/index.qmd +++ b/news/posts/2019-12-14-initial-post/index.qmd @@ -11,6 +11,7 @@ author: affiliation: - name: University of Oregon date: 12/14/2019 +on_landing: true --- All good open source projects should have a blog, and Turing is one such project. Later on, members of the Turing team may be populating this feed with posts on topics like diff --git a/news/posts/2020-02-12-jsoc/index.qmd b/news/posts/2020-02-12-jsoc/index.qmd index 1eea742a0..aa1e284b0 100644 --- a/news/posts/2020-02-12-jsoc/index.qmd +++ b/news/posts/2020-02-12-jsoc/index.qmd @@ -11,6 +11,7 @@ author: email: cpfiffer@uoregon.edu affiliation: University of Oregon date: 02/12/2020 +on_landing: true --- Last year, Turing participated in the Google Summer of Code (GSoC) through the Julia language organization. It was a fun time, and the project was better for it. Turing plans to participate in the upcoming GSoC, and we wanted to outline some potential projects and expectations we have for applicants. diff --git a/news/posts/2020-05-04-Imperial-Report13-analysis/index.qmd b/news/posts/2020-05-04-Imperial-Report13-analysis/index.qmd index 865c91099..f281a24e6 100644 --- a/news/posts/2020-05-04-Imperial-Report13-analysis/index.qmd +++ b/news/posts/2020-05-04-Imperial-Report13-analysis/index.qmd @@ -45,6 +45,7 @@ include-in-header: - text: | resources: data/* +on_landing: true --- The Turing.jl team is currently exploring possibilities in an attempt to help with the ongoing SARS-CoV-2 crisis. As preparation for this and to get our feet wet, we decided to perform a replication study of the [Imperial Report 13](https://www.imperial.ac.uk/mrc-global-infectious-disease-analysis/covid-19/report-13-europe-npi-impact/), which attempts to estimate the real number of infections and impact of non-pharmaceutical interventions on COVID-19. In the report, the inference was performed using the probabilistic programming language (PPL) Stan. We have explicated their model and inference in Turing.jl, a Julia-based PPL. We believe the results and analysis of our study are relevant for the public, and for other researchers who are actively working on epidemiological models. To that end, our implementation and results are available [here](https://github.com/cambridge-mlg/Covid19). diff --git a/news/posts/2020-09-11-gsoc/index.qmd b/news/posts/2020-09-11-gsoc/index.qmd index 19c7992e1..80427ccfe 100644 --- a/news/posts/2020-09-11-gsoc/index.qmd +++ b/news/posts/2020-09-11-gsoc/index.qmd @@ -11,6 +11,7 @@ author: email: cpfiffer@uoregon.edu affiliation: University of Oregon date: 09/11/2020 +on_landing: true --- As the 2020 [Google Summer of Code](https://summerofcode.withgoogle.com/) comes to a close, the Turing team thought it would be a good opportunity to reflect on the work that was done by our superb students this summer. diff --git a/news/posts/2021-02-04-gsoc/index.qmd b/news/posts/2021-02-04-gsoc/index.qmd index 1a5aa4ada..0c94ae4b7 100644 --- a/news/posts/2021-02-04-gsoc/index.qmd +++ b/news/posts/2021-02-04-gsoc/index.qmd @@ -11,6 +11,8 @@ author: email: cpfiffer@uoregon.edu affiliation: University of Oregon date: 02/10/2021 +on_landing: true +landing_sort_order: 5 --- It's about time for us to start thinking about projects we'd like to see at Turing.jl for the [Google Summer of Code 2021](https://summerofcode.withgoogle.com/)! Below is a list of projects the Turing team would be interested in working with students on for the summer. diff --git a/news/posts/2022-02-17-gsoc/index.qmd b/news/posts/2022-02-17-gsoc/index.qmd index 5dcd040f0..0ea20869c 100644 --- a/news/posts/2022-02-17-gsoc/index.qmd +++ b/news/posts/2022-02-17-gsoc/index.qmd @@ -13,6 +13,7 @@ author: - name: the TuringLang team url: /team/ date: 02/17/2022 +on_landing: true --- It is another year of the [Google Summer of Code](https://summerofcode.withgoogle.com/) time, and we have compiled an updated list of exciting Turing projects! diff --git a/theming/styles.css b/theming/styles.css index 5a29f708b..e654c123f 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -344,9 +344,253 @@ code { } .side-space { - max-width: 1200px; + max-width: 1350px; margin-left: auto; margin-right: auto; - padding-left: 2rem; - padding-right: 2rem; + padding-left: 4rem; + padding-right: 4rem; +} + +.side-space-news { + max-width: 1350px; + margin-left: auto; + margin-right: auto; + padding-left: 4rem; + padding-right: 4rem; +} + +/* Section Header */ +.section-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 2rem; +} + +.section-header h3 { + margin-bottom: 0; +} + +/* === UNIFIED CARD GRID SYSTEM === */ +.unified-card-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; + padding: 0; +} + +.unified-card { + display: flex; + flex-direction: column; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #e9ecef; + border-radius: 12px; + padding: 0; + overflow: hidden; + transition: all 0.3s ease; + height: 100%; + min-height: 200px; +} + +.unified-card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + text-decoration: none; + border-color: #4DB6AC; +} + +.unified-card-body { + padding: 1.5rem; + flex-grow: 1; + display: flex; + flex-direction: column; +} + +.unified-card-title { + font-size: 1.2rem; + line-height: 1.4; + font-weight: 600; + color: #212529; + margin-bottom: 0.75rem; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.unified-card-text { + font-size: 0.95rem; + line-height: 1.6; + color: #6c757d; + margin-bottom: 1rem; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + flex-grow: 1; +} + +.unified-card-categories { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + margin-bottom: 0.75rem; +} + +.category-tag { + background-color: #e9ecef; + color: #495057; + padding: 0.25rem 0.75rem; + border-radius: 20px; + font-size: 0.8rem; + font-weight: 500; + white-space: nowrap; +} + +.unified-card-footer { + padding: 1rem 1.5rem; + border-top: 1px solid #e9ecef; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 0.85rem; + color: #6c757d; + background-color: #f8f9fa; +} + +.unified-card-meta { + display: flex; + flex-direction: column; + gap: 0.25rem; + min-width: 0; + flex-grow: 1; +} + +.unified-card-author { + font-weight: 600; + color: #495057; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.unified-card-date { + font-size: 0.8rem; + color: #6c757d; +} + +.unified-card-reading-time { + font-weight: 600; + color: #4DB6AC; + white-space: nowrap; + flex-shrink: 0; + font-size: 0.8rem; +} + +/* === RESPONSIVE DESIGN === */ + +/* Tablet view (iPad size) - 2 columns */ +@media (max-width: 1024px) and (min-width: 769px) { + .unified-card-grid { + grid-template-columns: repeat(2, 1fr); + gap: 1.25rem; + } + + .side-space, + .side-space-news { + padding-left: 2rem; + padding-right: 2rem; + } +} + +/* Mobile view - horizontal scroll */ +@media (max-width: 768px) { + .side-space, + .side-space-news { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + + .unified-card-grid { + display: flex; + overflow-x: auto; + scroll-snap-type: x mandatory; + gap: 1rem; + padding-bottom: 1rem; + margin: 0 -1.5rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + + /* Hide scrollbar */ + -ms-overflow-style: none; + scrollbar-width: none; + } + + .unified-card-grid::-webkit-scrollbar { + display: none; + } + + .unified-card { + flex: 0 0 calc(85% - 0.5rem); + scroll-snap-align: start; + min-width: 280px; + max-width: 300px; + } + + /* Show preview of next card */ + .unified-card:last-child { + margin-right: 1.5rem; + } + + .unified-card-title { + font-size: 1.1rem; + -webkit-line-clamp: 2; + } + + .unified-card-text { + font-size: 0.9rem; + -webkit-line-clamp: 2; + } + + .unified-card-body { + padding: 1.25rem; + } + + .unified-card-footer { + padding: 0.75rem 1.25rem; + } + + .unified-card-meta { + gap: 0.15rem; + } +} + +/* Very small mobile devices */ +@media (max-width: 480px) { + .unified-card { + flex: 0 0 calc(90% - 0.5rem); + min-width: 260px; + } + + .unified-card-title { + font-size: 1rem; + } + + .unified-card-text { + font-size: 0.85rem; + } +} + +/* Remove old card grid styles to avoid conflicts */ +.card-grid, +.news-card-grid { + display: none; +} + +/* Ensure smooth scrolling on mobile */ +@media (max-width: 768px) { + .unified-card-grid { + scroll-behavior: smooth; + } } \ No newline at end of file From 5003445126ab8f9c72272b8d02fd046b0c67ed2d Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Wed, 9 Jul 2025 06:56:13 +0530 Subject: [PATCH 59/88] remove logo animation, add news and tuturials, add core packages, improve overall responsiveness --- _includes/header.qmd | 47 ++----- index.qmd | 50 +++++++- theming/styles.css | 278 +++++++++++++++++++--------------------- theming/theme-dark.scss | 65 ++++++++-- 4 files changed, 235 insertions(+), 205 deletions(-) diff --git a/_includes/header.qmd b/_includes/header.qmd index ef8f921a0..2f2bc09bf 100644 --- a/_includes/header.qmd +++ b/_includes/header.qmd @@ -1,41 +1,12 @@ ```{=html} -
    -
    -
    Turing.jl
    -
    -
    - - - - - -
    -
    -``` - -```{=html} - - Bayesian inference with probabilistic programming - - -
    -
    - - Slack - - - Discourse - - - GitHub - +
    +
    +

    Turing.jl

    +

    A powerful and flexible probabilistic programming language for Julia.

    +
    -``` +``` \ No newline at end of file diff --git a/index.qmd b/index.qmd index 6fbecbfb5..2ef3ad081 100644 --- a/index.qmd +++ b/index.qmd @@ -88,22 +88,59 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    ``` -
    +```{=html} + +
    +
    +

    Core Packages

    +

    The Turing ecosystem is built on a foundation of powerful, composable packages.

    +
    + Explore Ecosystem → +
    + +
    +
    +
    DynamicPPL.jl
    +

    The backend for model specification and inference.

    +
    +
    +
    JuliaBUGS.jl
    +

    A BUGS-like DSL for defining and fitting Bayesian models.

    +
    +
    +
    TuringGLM.jl
    +

    Bayesian generalized linear models (GLMs) with Turing.

    +
    +
    +
    AdvancedHMC.jl
    +

    An efficient implementation of Hamiltonian Monte Carlo.

    +
    +
    + +``` ```{=html} -
    +

    News & Updates

    Read the latest from the Turing team.

    - View more → + View more →
    ``` ::: {#news-and-updates} ::: +```{=html} + +``` + ```{=html} @@ -112,15 +149,18 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos

    A selection of tutorials to get you started.

    - View all tutorials → + View all tutorials →
    ``` ::: {#featured-tutorials} ::: - +```{=html} + +```
    diff --git a/theming/styles.css b/theming/styles.css index e654c123f..f210f1db4 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -1,3 +1,60 @@ +/* Hero Section Styles */ +.hero-section { + padding: 4rem 1rem; + text-align: center; +} + +.hero-content { + max-width: 800px; + margin: 0 auto 3rem auto; +} + +.hero-title { + font-size: clamp(3rem, 10vw, 5.5rem); + font-weight: 700; + color: #2c3e50; + margin-bottom: 1rem; +} + +.hero-subtitle { + font-size: clamp(1.1rem, 3vw, 1.5rem); + color: #34495e; + margin-bottom: 2.5rem; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.hero-cta-buttons { + display: flex; + justify-content: center; + gap: 1rem; + flex-wrap: wrap; +} + +.btn-lg { + padding: 14px 32px; + font-size: 1.1rem; +} + +/* === Core Packages Section === */ +.core-packages-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1.5rem; + max-width: 1100px; + margin: 1.5rem auto 0 auto; +} + +.package-card { + text-align: center; + padding: 2rem 1.5rem; +} + +.package-card .panel-title { + font-size: 1.25rem; +} + .quarto-container { background-color: #f8f9fa; } @@ -35,96 +92,9 @@ justify-content: center; } -.line-graph { - width: 100%; - padding-top: 3%; - position: relative; -} - -svg { - width: 100%; - height: 100%; -} - -@keyframes draw { - to { - stroke-dashoffset: 0; - } -} - -.line { - fill: none; - stroke-width: 7; - stroke-dasharray: 3900; - stroke-dashoffset: 3900; - animation: draw 6s forwards ease-in-out; - stroke-opacity: 1; -} - -.line1 { - stroke: #b352cc; - animation-delay: 0s; -} - -.line2 { - stroke: #cc3333; - animation-delay: 0.5s; -} - -.line3 { - stroke: #218921; - animation-delay: 1s; -} - -.upper-content { - width: 88%; - text-align: end; - padding-top: 7%; - padding-right: 45%; - position: absolute; - z-index: 5; - opacity: 0; - animation: fadeInText 1s forwards ease-in-out; - animation-delay: 0.5s; -} - -@keyframes fadeInText { - to { - opacity: 1; - transform: translateY(0); - } -} - -.upper-content>h1 { - font-size: 5rem; - font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; -} - -.upper-content>p { - font-size: 25px; - font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; - margin-top: 5%; -} - -@media screen and (max-width: 992px) { - .upper-content>h1 { - font-size: 3.5rem; - } -} - -@media screen and (max-width: 768px) { - .upper-content { - width: 100%; - padding-top: 1.5rem; - padding-right: 0%; - text-align: center; - } -} - .logo-header { padding: 0%; margin-bottom: 0%; - /* background-color: #eef7f7; */ } .content-panel { @@ -140,7 +110,7 @@ svg { } .responsive-heading { - font-size: clamp(2rem, 6vw, 6rem); + font-size: clamp(1.8rem, 5vw, 2.2rem); } .panel-wrapper { @@ -197,7 +167,7 @@ a:hover { text-decoration: none; } -/* === Universal Box Styling === */ +/* Universal Box Styling */ .box { border-radius: 12px; padding: 2rem; @@ -351,32 +321,30 @@ code { padding-right: 4rem; } -.side-space-news { - max-width: 1350px; - margin-left: auto; - margin-right: auto; - padding-left: 4rem; - padding-right: 4rem; -} - /* Section Header */ .section-header { display: flex; justify-content: space-between; align-items: center; - margin-bottom: 2rem; + /* margin-bottom: 1rem; */ } .section-header h3 { margin-bottom: 0; } -/* === UNIFIED CARD GRID SYSTEM === */ +.mobile-only-button-container { + display: none; +} + +/* UNIFIED CARD GRID */ .unified-card-grid { - display: grid; - grid-template-columns: repeat(3, 1fr); + display: flex; + flex-wrap: wrap; gap: 1.5rem; - padding: 0; + align-items: stretch; + padding: 0 1rem; + padding-top: .5rem } .unified-card { @@ -389,8 +357,7 @@ code { padding: 0; overflow: hidden; transition: all 0.3s ease; - height: 100%; - min-height: 200px; + flex: 1 1 320px; } .unified-card:hover { @@ -398,6 +365,8 @@ code { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); text-decoration: none; border-color: #4DB6AC; + position: relative; + z-index: 10; } .unified-card-body { @@ -415,6 +384,7 @@ code { margin-bottom: 0.75rem; display: -webkit-box; -webkit-line-clamp: 2; + line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } @@ -426,9 +396,9 @@ code { margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 3; + line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; - flex-grow: 1; } .unified-card-categories { @@ -489,38 +459,22 @@ code { } /* === RESPONSIVE DESIGN === */ - -/* Tablet view (iPad size) - 2 columns */ -@media (max-width: 1024px) and (min-width: 769px) { - .unified-card-grid { - grid-template-columns: repeat(2, 1fr); - gap: 1.25rem; - } - - .side-space, - .side-space-news { - padding-left: 2rem; - padding-right: 2rem; - } +@media (max-width: 1200px) { + .core-packages-grid { + grid-template-columns: repeat(2, 1fr); + } } -/* Mobile view - horizontal scroll */ -@media (max-width: 768px) { - .side-space, - .side-space-news { - padding-left: 1.5rem; - padding-right: 1.5rem; - } - +/* On screens smaller than 1024px, switch to horizontal scrolling */ +@media (max-width: 1024px) { .unified-card-grid { display: flex; + flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; padding-bottom: 1rem; - margin: 0 -1.5rem; - padding-left: 1.5rem; - padding-right: 1.5rem; + scroll-behavior: smooth; /* Hide scrollbar */ -ms-overflow-style: none; @@ -532,25 +486,63 @@ code { } .unified-card { - flex: 0 0 calc(85% - 0.5rem); + flex: 0 0 40%; scroll-snap-align: start; - min-width: 280px; - max-width: 300px; + min-width: 320px; + max-width: 380px; + } +} + +/* Tablet view (iPad size) */ +@media (max-width: 1024px) and (min-width: 769px) { + .side-space { + padding-left: 2rem; + padding-right: 2rem; + } +} + +/* Mobile view */ +@media (max-width: 768px) { + .side-space { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + + .section-header { + flex-direction: column; + align-items: stretch; + gap: 1rem; + } + + .section-header .desktop-only-button { + display: none; } - /* Show preview of next card */ - .unified-card:last-child { - margin-right: 1.5rem; + .mobile-only-button-container { + display: block; + margin-top: .3rem; + text-align: center; } + .mobile-only-button-container .button { + display: inline-block; + width: auto; + } + + .core-packages-grid { + grid-template-columns: 1fr; + } + + .unified-card { + flex-basis: 90%; + } + .unified-card-title { font-size: 1.1rem; - -webkit-line-clamp: 2; } .unified-card-text { font-size: 0.9rem; - -webkit-line-clamp: 2; } .unified-card-body { @@ -568,11 +560,6 @@ code { /* Very small mobile devices */ @media (max-width: 480px) { - .unified-card { - flex: 0 0 calc(90% - 0.5rem); - min-width: 260px; - } - .unified-card-title { font-size: 1rem; } @@ -587,10 +574,3 @@ code { .news-card-grid { display: none; } - -/* Ensure smooth scrolling on mobile */ -@media (max-width: 768px) { - .unified-card-grid { - scroll-behavior: smooth; - } -} \ No newline at end of file diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index a9f4e3ad0..ead1388f8 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -54,6 +54,57 @@ $body-bg: $background-body; /*-- scss:rules --*/ +// --- General Heading Styles for Dark Mode --- +h1, h2, h3, h4, h5, h6 { + color: $foreground !important; +} + +// --- Hero Section Dark Mode Styles --- +.hero-section { + background: none !important; +} + +.hero-subtitle { + color: #bdc3c7 !important; +} + +// --- Unified Card System Dark Mode --- +.unified-card { + background-color: $panel-bg !important; + border-color: $btn-border-color !important; + + &:hover { + border-color: $lp-cyan !important; + } +} + +.unified-card-text { + color: $text-muted !important; +} + +.category-tag { + background-color: lighten($panel-bg, 10%) !important; + color: $text-muted !important; +} + +.unified-card-footer { + background-color: lighten($panel-bg, 3%) !important; + border-top-color: $btn-border-color !important; + color: $text-muted !important; +} + +.unified-card-author { + color: $foreground !important; +} + +.unified-card-date { + color: $text-muted !important; +} + +.unified-card-reading-time { + color: $lp-cyan !important; +} + // --- Global Styles --- .quarto-container { background-color: $background-body !important; @@ -170,10 +221,6 @@ a { // Landing Page Panels .panel { color: $text-muted !important; - - .panel-title { - color: $body-color !important; - } } // Misc Quarto and site-specific rules @@ -181,10 +228,6 @@ a { background-color: $background-nav !important; } -.title { - color: $white !important; -} - code { background-color: $code-block-bg !important; color: $li-color !important; @@ -199,10 +242,6 @@ code { color: $text-muted !important; } -.citation-title { - color: $body-color !important; -} - .button--primary { background-color: transparent !important; color: $links !important; @@ -221,4 +260,4 @@ code { .brands-dark-mode-logo { display: inline !important; -} \ No newline at end of file +} From 24873f3a03db455c16bf75c5ee3b07f0cd08215e Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 10 Jul 2025 16:44:40 +0530 Subject: [PATCH 60/88] Updated logo and Added New Logo in Header --- _includes/header.qmd | 7 ++++--- _quarto.yml | 2 +- assets/logo/turing-logo-dark.svg | 6 ++++++ assets/logo/turing-logo-light.svg | 6 ++++++ assets/{images => logo}/turing-logo-wide.svg | 0 assets/{images => logo}/turing-logo.svg | 0 assets/logo/turing-text-logo.svg | 6 ++++++ theming/styles.css | 19 ++++++++++++++----- theming/theme-dark.scss | 8 ++++++++ 9 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 assets/logo/turing-logo-dark.svg create mode 100644 assets/logo/turing-logo-light.svg rename assets/{images => logo}/turing-logo-wide.svg (100%) rename assets/{images => logo}/turing-logo.svg (100%) create mode 100644 assets/logo/turing-text-logo.svg diff --git a/_includes/header.qmd b/_includes/header.qmd index 2f2bc09bf..b3876a54d 100644 --- a/_includes/header.qmd +++ b/_includes/header.qmd @@ -1,11 +1,12 @@ ```{=html}
    -

    Turing.jl

    + +

    A powerful and flexible probabilistic programming language for Julia.

    diff --git a/_quarto.yml b/_quarto.yml index 681a3acfa..d87a458bd 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -15,7 +15,7 @@ website: location: navbar type: overlay navbar: - logo: "assets/images/turing-logo.svg" + logo: "assets/logo/turing-logo.svg" # logo-href: https://turinglang.org/ -- Keep this commented so clicking on logo in dev mode doesn't redirect to the site left: - text: Get Started diff --git a/assets/logo/turing-logo-dark.svg b/assets/logo/turing-logo-dark.svg new file mode 100644 index 000000000..87dab0a03 --- /dev/null +++ b/assets/logo/turing-logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/logo/turing-logo-light.svg b/assets/logo/turing-logo-light.svg new file mode 100644 index 000000000..d787e8b11 --- /dev/null +++ b/assets/logo/turing-logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/turing-logo-wide.svg b/assets/logo/turing-logo-wide.svg similarity index 100% rename from assets/images/turing-logo-wide.svg rename to assets/logo/turing-logo-wide.svg diff --git a/assets/images/turing-logo.svg b/assets/logo/turing-logo.svg similarity index 100% rename from assets/images/turing-logo.svg rename to assets/logo/turing-logo.svg diff --git a/assets/logo/turing-text-logo.svg b/assets/logo/turing-text-logo.svg new file mode 100644 index 000000000..d787e8b11 --- /dev/null +++ b/assets/logo/turing-text-logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/theming/styles.css b/theming/styles.css index f210f1db4..422ff8839 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -9,11 +9,20 @@ margin: 0 auto 3rem auto; } -.hero-title { - font-size: clamp(3rem, 10vw, 5.5rem); - font-weight: 700; - color: #2c3e50; - margin-bottom: 1rem; +.hero-logo { + max-width: 55%; + height: auto; + margin-bottom: 1.5rem; + margin-left: auto; + margin-right: auto; +} + +.hero-logo-light { + display: block; +} + +.hero-logo-dark { + display: none; } .hero-subtitle { diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index ead1388f8..0e2c75a9e 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -64,6 +64,14 @@ h1, h2, h3, h4, h5, h6 { background: none !important; } +.hero-logo-light { + display: none !important; +} + +.hero-logo-dark { + display: block !important; +} + .hero-subtitle { color: #bdc3c7 !important; } From 1af1f29721dfa157c4da0f8f15ea1cad2cb21b42 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 10 Jul 2025 19:14:22 +0530 Subject: [PATCH 61/88] add on hover border on all boxes --- theming/styles.css | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/theming/styles.css b/theming/styles.css index 422ff8839..0971873a7 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -180,14 +180,16 @@ a:hover { .box { border-radius: 12px; padding: 2rem; - transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.3s ease; + transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.3s ease, border-color 0.3s ease; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05); background-color: #ffffff; + border: 1px solid #e9ecef; } .box:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); + border-color: #4DB6AC; } .box--splash { @@ -200,11 +202,6 @@ a:hover { max-width: 31%; } -.panel:hover { - transform: none; - box-shadow: none; -} - .panel-title { font-size: 1.4rem; font-weight: 700; @@ -361,7 +358,6 @@ code { flex-direction: column; text-decoration: none; background-color: #ffffff; - border: 1px solid #e9ecef; border-radius: 12px; padding: 0; overflow: hidden; From cf49551f2ee336ed2b7a551b34dec23cab0810ef Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 10 Jul 2025 19:24:07 +0530 Subject: [PATCH 62/88] fix colors in dark mode --- theming/theme-dark.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index 0e2c75a9e..b775996b6 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -193,9 +193,11 @@ a { .box { background-color: $panel-bg !important; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2) !important; + border-color: $btn-border-color !important; &:hover { background-color: lighten($panel-bg, 3%) !important; + border-color: $lp-cyan !important; } } @@ -250,6 +252,10 @@ code { color: $text-muted !important; } +.citation-title { + color: $foreground !important; +} + .button--primary { background-color: transparent !important; color: $links !important; From eed4576f6bb61126a24125d70a9acd4f32b5630c Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Fri, 11 Jul 2025 11:52:50 +0530 Subject: [PATCH 63/88] Add custom footer, improve citations, fix responsiveness, update theme a bit --- _includes/brands.qmd | 73 ---- _includes/citation/cite.qmd | 153 +++++--- _includes/featured-tutorials.yml | 12 +- _quarto.yml | 54 ++- index.qmd | 15 +- news/posts/2020-02-12-jsoc/index.qmd | 1 - news/posts/2020-09-11-gsoc/index.qmd | 1 - news/posts/2021-02-04-gsoc/index.qmd | 2 - news/posts/2025-06-06-newsletter-8/index.qmd | 1 + news/posts/2025-06-20-newsletter-9/index.qmd | 1 + theming/styles.css | 377 ++++++++++++++----- theming/theme-dark.scss | 74 +++- 12 files changed, 511 insertions(+), 253 deletions(-) delete mode 100644 _includes/brands.qmd diff --git a/_includes/brands.qmd b/_includes/brands.qmd deleted file mode 100644 index 982d32016..000000000 --- a/_includes/brands.qmd +++ /dev/null @@ -1,73 +0,0 @@ -```{=html} -
    - - -
    -

    Supported by world-class institutions

    -

    - Turing.jl is currently being developed at leading research organisations. -

    -
    - -
    - - - - - -
    -
    -``` \ No newline at end of file diff --git a/_includes/citation/cite.qmd b/_includes/citation/cite.qmd index 911d8c637..7dacddb27 100644 --- a/_includes/citation/cite.qmd +++ b/_includes/citation/cite.qmd @@ -3,17 +3,15 @@

    Turing.jl is an MIT Licensed Open Source Project

    If you use Turing.jl in your research, please consider citing our papers.

    -
      -
    • -

      - Fjelde, T. E., Xu, K., Widmann, D., Tarek, M., Pfiffer, C., Trapp, M., Axen, S. D., Sun, X., Hauru, M., Yong, P., Tebbutt, W., Ghahramani, Z., & Ge, H. (2025). Turing.jl: a general-purpose probabilistic programming language. ACM Transactions on Probabilistic Machine Learning. Just Accepted. -

      -
      - View Paper - -
      -
      -@article{Fjelde2025Turing,
      +  
        + +
      +
    + + ``` \ No newline at end of file diff --git a/_includes/featured-tutorials.yml b/_includes/featured-tutorials.yml index 68c55f15b..eb8c259bf 100644 --- a/_includes/featured-tutorials.yml +++ b/_includes/featured-tutorials.yml @@ -5,16 +5,16 @@ - "Basics" - "Getting Started" -- title: "Introductory Concepts: Coin Flipping" +- title: "Introductory Concepts" href: "https://turinglang.org/docs/tutorials/coin-flipping/" description: "Learn the basic concepts of Bayesian modeling by working through a simple coin-flipping example." category: - "Basics" - "Modeling" -- title: "Bayesian Regression" - href: "https://turinglang.org/docs/tutorials/02-bayesian-regression/" - description: "Explore how to perform Bayesian linear and logistic regression using Turing.jl." +- title: "Core Functionality" + href: "https://turinglang.org/docs/core-functionality/" + description: "This article provides an overview of the core functionality in Turing.jl, which are likely to be used across a wide range of models." category: - - "Modeling" - - "Regression" + - "Basics" + - "Features" diff --git a/_quarto.yml b/_quarto.yml index d87a458bd..2fd79b362 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -35,16 +35,10 @@ website: - icon: github text: Turing GitHub href: https://github.com/TuringLang - - page-footer: - #background: "#073c44" - left: | - Turing is created by Hong Ge, and maintained by the core team of developers.
    - © 2025 under the terms of the MIT License. back-to-top-navigation: true repo-url: https://github.com/TuringLang/turinglang.github.io/ - repo-actions: [edit, issue] + # repo-actions: [edit, issue] repo-link-target: _blank page-navigation: true @@ -70,6 +64,52 @@ format: "url" : "https://turinglang.org/", } + include-after-body: + - text: | + # Global Variables to use in any qmd files using: # {{< meta site-url >}} diff --git a/index.qmd b/index.qmd index 2ef3ad081..35cef9ee4 100644 --- a/index.qmd +++ b/index.qmd @@ -1,4 +1,5 @@ --- +pagetitle: The Turing Language toc: false page-layout: custom section-divs: false @@ -10,14 +11,14 @@ listing: contents: "news/posts/*/index.qmd" template: _includes/card-listing.ejs sort: "date desc" - max-items: 5 + max-items: 6 include: on_landing: true - id: featured-tutorials contents: - "./_includes/featured-tutorials.yml" template: _includes/card-listing.ejs - max-items: 3 + max-items: 6 --- ::: {.logo-header} @@ -105,11 +106,11 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    JuliaBUGS.jl
    -

    A BUGS-like DSL for defining and fitting Bayesian models.

    +

    A modern implementation of the BUGS probabilistic programming language in Julia.

    TuringGLM.jl
    -

    Bayesian generalized linear models (GLMs) with Turing.

    +

    Bayesian Generalized Linear models using `@formula` syntax and returns an instantiated Turing model.

    AdvancedHMC.jl
    @@ -162,12 +163,6 @@ Turing is written entirely in Julia, and is interoperable with its powerful ecos
    ``` -
    - -{{< include _includes/brands.qmd >}} - -
    -
    {{< include _includes/citation/cite.qmd >}} diff --git a/news/posts/2020-02-12-jsoc/index.qmd b/news/posts/2020-02-12-jsoc/index.qmd index aa1e284b0..1eea742a0 100644 --- a/news/posts/2020-02-12-jsoc/index.qmd +++ b/news/posts/2020-02-12-jsoc/index.qmd @@ -11,7 +11,6 @@ author: email: cpfiffer@uoregon.edu affiliation: University of Oregon date: 02/12/2020 -on_landing: true --- Last year, Turing participated in the Google Summer of Code (GSoC) through the Julia language organization. It was a fun time, and the project was better for it. Turing plans to participate in the upcoming GSoC, and we wanted to outline some potential projects and expectations we have for applicants. diff --git a/news/posts/2020-09-11-gsoc/index.qmd b/news/posts/2020-09-11-gsoc/index.qmd index 80427ccfe..19c7992e1 100644 --- a/news/posts/2020-09-11-gsoc/index.qmd +++ b/news/posts/2020-09-11-gsoc/index.qmd @@ -11,7 +11,6 @@ author: email: cpfiffer@uoregon.edu affiliation: University of Oregon date: 09/11/2020 -on_landing: true --- As the 2020 [Google Summer of Code](https://summerofcode.withgoogle.com/) comes to a close, the Turing team thought it would be a good opportunity to reflect on the work that was done by our superb students this summer. diff --git a/news/posts/2021-02-04-gsoc/index.qmd b/news/posts/2021-02-04-gsoc/index.qmd index 0c94ae4b7..1a5aa4ada 100644 --- a/news/posts/2021-02-04-gsoc/index.qmd +++ b/news/posts/2021-02-04-gsoc/index.qmd @@ -11,8 +11,6 @@ author: email: cpfiffer@uoregon.edu affiliation: University of Oregon date: 02/10/2021 -on_landing: true -landing_sort_order: 5 --- It's about time for us to start thinking about projects we'd like to see at Turing.jl for the [Google Summer of Code 2021](https://summerofcode.withgoogle.com/)! Below is a list of projects the Turing team would be interested in working with students on for the summer. diff --git a/news/posts/2025-06-06-newsletter-8/index.qmd b/news/posts/2025-06-06-newsletter-8/index.qmd index b5e859647..add70e6b0 100644 --- a/news/posts/2025-06-06-newsletter-8/index.qmd +++ b/news/posts/2025-06-06-newsletter-8/index.qmd @@ -7,6 +7,7 @@ author: - name: The TuringLang team url: /team/ date: 2025-06-06 +on_landing: true --- The major update this week is the release of Turing.jl v0.39. diff --git a/news/posts/2025-06-20-newsletter-9/index.qmd b/news/posts/2025-06-20-newsletter-9/index.qmd index 73b491c0e..69b6feae9 100644 --- a/news/posts/2025-06-20-newsletter-9/index.qmd +++ b/news/posts/2025-06-20-newsletter-9/index.qmd @@ -7,6 +7,7 @@ author: - name: The TuringLang team url: /team/ date: 2025-06-20 +on_landing: true --- **Google Summer of Code** diff --git a/theming/styles.css b/theming/styles.css index 0971873a7..97bba0c8a 100644 --- a/theming/styles.css +++ b/theming/styles.css @@ -96,11 +96,6 @@ object-fit: contain; } -.nav-footer-center { - display: flex; - justify-content: center; -} - .logo-header { padding: 0%; margin-bottom: 0%; @@ -134,19 +129,6 @@ flex: 0 1 53%; } -@media screen and (max-width: 992px) { - .panel-wrapper { - justify-content: center; - } -} - -@media screen and (max-width: 768px) { - .example-code, - .example-text { - flex: 0 1 100%; - } -} - a { text-decoration: none; } @@ -193,7 +175,7 @@ a:hover { } .box--splash { - background-color: #eef7f7; /* Keeping this for use in future */ + background-color: #eef7f7; } .panel { @@ -264,57 +246,103 @@ code { margin: auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; } + .citation-list { list-style: none; padding: 0; margin: 0; + display: flex; + flex-direction: column; + gap: 1rem; } + .citation-entry { - margin-bottom: 1.5rem; + padding: 1.5rem; + margin-bottom: 0; + display: flex; + justify-content: space-between; + align-items: center; + gap: 1rem; +} + +.citation-content { + flex-grow: 1; } .citation-text { - font-size: 1rem; - line-height: 1.7; + font-size: 0.95rem; + line-height: 1.6; color: #555; margin: 0; } + .citation-text em { font-style: italic; } + .citation-title { font-weight: 600; color: #222; } + .citation-actions { - margin-top: 1.25rem; display: flex; - gap: 0.75rem; + gap: 0.5rem; + flex-shrink: 0; +} + +.citation-icon-btn { + display: flex; align-items: center; + justify-content: center; + width: 36px; + height: 36px; + border-radius: 50%; + border: 1px solid #e0e0e0; + background-color: #fff; + color: #6c757d; + cursor: pointer; + transition: all 0.2s ease; + padding: 0; + text-decoration: none; } -.citation-bibtex-data { - display: none; + +.citation-icon-btn:hover { + background-color: #f8f9fa; + border-color: #4DB6AC; + color: #4DB6AC; + transform: translateY(-1px); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); + text-decoration: none; } -.button--primary { - color: #34b8bf; - border-color: #34b8bf; - background-color: #fff; + +.citation-icon-btn svg { + width: 16px; + height: 16px; + fill: currentColor; } -.button--primary:hover { - background-color: #34b8bf; + +.citation-icon-btn.citation-copied { + background-color: #229954; + border-color: #229954; color: #fff; + font-size: 1.2rem; + font-weight: bold; } -.button.citation-copied { + +.citation-icon-btn.citation-copied:hover { background-color: #229954; border-color: #229954; color: #fff; transform: translateY(0); box-shadow: none; } + .turing-license-link code { color: #34b8bf !important; text-decoration: none !important; } + .turing-license-link code:hover { color: #31dce6 !important; } @@ -332,7 +360,6 @@ code { display: flex; justify-content: space-between; align-items: center; - /* margin-bottom: 1rem; */ } .section-header h3 { @@ -340,7 +367,7 @@ code { } .mobile-only-button-container { - display: none; + display: none; } /* UNIFIED CARD GRID */ @@ -459,54 +486,176 @@ code { font-weight: 600; color: #4DB6AC; white-space: nowrap; - flex-shrink: 0; font-size: 0.8rem; } -/* === RESPONSIVE DESIGN === */ +/* Custom Footer */ +.custom-footer { + background-color: #fff; + color: #6c757d; + font-size: 0.9rem; + padding: 3rem 2rem 2rem; + border-top: 1px solid #e9ecef; +} + +.custom-footer .footer-container { + max-width: 1350px; + margin: 0 auto; +} + +.custom-footer .footer-grid { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + gap: 2rem; + margin-bottom: 2rem; + padding-bottom: 2rem; + border-bottom: 1px solid #e9ecef; +} + +.custom-footer .footer-links-wrapper { + display: flex; + flex-wrap: wrap; + gap: 2rem; + flex: 2 1 400px; +} + +.custom-footer .footer-column { + flex: 1 1 auto; +} + +.custom-footer .footer-brands { + flex: 1 1 320px; +} + +.custom-footer .footer-column h5 { + font-weight: 600; + color: #212529; + margin-bottom: 1.25rem; + font-size: 0.9rem; + text-transform: uppercase; + letter-spacing: 0.08em; +} + +.custom-footer .footer-column a { + display: flex; + align-items: center; + gap: 0.75rem; + margin-bottom: 0.75rem; + color: #6c757d; + text-decoration: none; + transition: color 0.2s ease; +} + +.custom-footer .footer-column a:hover { + color: #212529; + text-decoration: none; +} + +.custom-footer .footer-column a i { + font-size: 1.1rem; + line-height: 1; + width: 20px; + text-align: center; +} + +.custom-footer .footer-brands p { + font-size: 0.9rem; + line-height: 1.6; + margin-top: -0.5rem; + margin-bottom: 1.5rem; +} + +.custom-footer .footer-brands .logo-grid { + display: flex; + gap: 2rem; + align-items: center; +} + +.custom-footer .partner-logo { + flex: 1; +} + +.custom-footer .partner-logo img { + max-width: 100%; + height: 50px; + object-fit: contain; + transition: transform 0.2s ease; +} + +.custom-footer .partner-logo:hover img { + transform: scale(1.05); +} + +.custom-footer .brands-light-mode-logo { + display: inline; +} + +.custom-footer .brands-dark-mode-logo { + display: none; +} + +.custom-footer .footer-bottom { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 0.85rem; + flex-wrap: wrap; + gap: 1rem; +} + +.custom-footer .footer-bottom p { + margin: 0; + line-height: 1.6; +} + +.custom-footer .footer-bottom a { + color: #495057; + font-weight: 500; + text-decoration: none; + border-bottom: 1px solid #dee2e6; +} + +.custom-footer .footer-bottom a:hover { + border-bottom-color: #495057; +} + +.footer-source-link { + display: flex; + align-items: center; + gap: 0.5rem; +} + @media (max-width: 1200px) { - .core-packages-grid { - grid-template-columns: repeat(2, 1fr); - } -} - -/* On screens smaller than 1024px, switch to horizontal scrolling */ -@media (max-width: 1024px) { - .unified-card-grid { - display: flex; - flex-wrap: nowrap; - overflow-x: auto; - scroll-snap-type: x mandatory; - gap: 1rem; - padding-bottom: 1rem; - scroll-behavior: smooth; - - /* Hide scrollbar */ - -ms-overflow-style: none; - scrollbar-width: none; + .core-packages-grid { + grid-template-columns: repeat(2, 1fr); } - - .unified-card-grid::-webkit-scrollbar { - display: none; +} + +@media (max-width: 992px) { + .custom-footer .footer-links-wrapper { + flex-basis: 100%; + justify-content: center; } - - .unified-card { - flex: 0 0 40%; - scroll-snap-align: start; - min-width: 320px; - max-width: 380px; + + .custom-footer .footer-grid { + justify-content: center; } -} -/* Tablet view (iPad size) */ -@media (max-width: 1024px) and (min-width: 769px) { - .side-space { - padding-left: 2rem; - padding-right: 2rem; + .custom-footer .footer-brands { + flex-grow: 0; + text-align: center; + } + + .custom-footer .footer-brands .logo-grid { + justify-content: center; + } + + .custom-footer .footer-column { + flex-grow: 0; } } -/* Mobile view */ @media (max-width: 768px) { .side-space { padding-left: 1.5rem; @@ -518,26 +667,26 @@ code { align-items: stretch; gap: 1rem; } - + .section-header .desktop-only-button { - display: none; + display: none; } - + .mobile-only-button-container { - display: block; - margin-top: .3rem; - text-align: center; + display: block; + margin-top: .3rem; + text-align: center; } - + .mobile-only-button-container .button { - display: inline-block; - width: auto; + display: inline-block; + width: auto; } - + .core-packages-grid { grid-template-columns: 1fr; } - + .unified-card { flex-basis: 90%; } @@ -545,37 +694,73 @@ code { .unified-card-title { font-size: 1.1rem; } - + .unified-card-text { font-size: 0.9rem; } - + .unified-card-body { padding: 1.25rem; } - + .unified-card-footer { padding: 0.75rem 1.25rem; } - + .unified-card-meta { gap: 0.15rem; } + + .citation-entry { + flex-direction: column; + align-items: flex-start; + } + + .citation-actions { + margin-top: 1rem; + align-self: flex-end; + } + + .custom-footer .footer-bottom { + flex-direction: column; + gap: 1.5rem; + text-align: center; + } } -/* Very small mobile devices */ -@media (max-width: 480px) { +@media (max-width: 576px) { .unified-card-title { font-size: 1rem; } - + .unified-card-text { font-size: 0.85rem; } -} -/* Remove old card grid styles to avoid conflicts */ -.card-grid, -.news-card-grid { - display: none; -} + .custom-footer .footer-links-wrapper { + flex-direction: column; + text-align: center; + align-items: center; + } + + .custom-footer .footer-column { + width: 100%; + max-width: 350px; + } + + .custom-footer .footer-column a { + justify-content: center; + } + + .custom-footer .footer-brands .logo-grid { + flex-direction: column; + gap: 1.5rem; + align-items: center; + } + + .custom-footer .partner-logo { + flex-basis: auto; + width: 100%; + max-width: 220px; + } +} \ No newline at end of file diff --git a/theming/theme-dark.scss b/theming/theme-dark.scss index b775996b6..69c366931 100644 --- a/theming/theme-dark.scss +++ b/theming/theme-dark.scss @@ -202,7 +202,7 @@ a { } .box--splash { - background-color: lighten($panel-bg, 2%) !important; // Keeping this for use in future + background-color: lighten($panel-bg, 2%) !important; } // Landing Page Buttons @@ -256,22 +256,76 @@ code { color: $foreground !important; } -.button--primary { - background-color: transparent !important; - color: $links !important; - border-color: $links !important; +.citation-icon-btn { + background-color: lighten($panel-bg, 5%) !important; + border-color: $btn-border-color !important; + color: $text-muted !important; + + &:hover { + background-color: lighten($panel-bg, 10%) !important; + border-color: $lp-cyan !important; + color: $lp-cyan !important; + } +} + +.citation-icon-btn.citation-copied { + background-color: $green !important; + border-color: $green !important; + color: $white !important; +} + +.citation-icon-btn.citation-copied:hover { + background-color: $green !important; + border-color: $green !important; + color: $white !important; +} + +// Custom Footer Dark Mode +.custom-footer { + background-color: $background-nav !important; + border-top-color: $btn-border-color !important; + color: $text-muted !important; +} + +.custom-footer .footer-grid { + border-bottom-color: $btn-border-color !important; +} + +.custom-footer .footer-column h5 { + color: $foreground !important; +} +.custom-footer .footer-column a { + color: $text-muted !important; &:hover { - background-color: $links !important; - color: $panel-bg !important; + color: $links-hover !important; } } -// Brands Logo Switch -.brands-light-mode-logo { +.custom-footer .footer-bottom p { + color: $text-muted !important; +} + +.custom-footer .footer-bottom a { + color: $links !important; + border-bottom-color: $btn-border-color !important; + &:hover { + color: $links-hover !important; + border-bottom-color: $links-hover !important; + } +} + +.custom-footer .brands-light-mode-logo { display: none !important; } -.brands-dark-mode-logo { +.custom-footer .brands-dark-mode-logo { display: inline !important; } + +.footer-source-link { + color: $text-muted !important; + &:hover { + color: $links-hover !important; + } +} From 476c2ff799f4a643dfbdefae3138870281babe20 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Fri, 11 Jul 2025 13:49:57 +0530 Subject: [PATCH 64/88] rewrite raw html in quarto markdown, update footer text, core package descriptions and few urls --- _quarto.yml | 2 +- index.qmd | 258 +++++++++++++++++++++++++++++---------------- theming/styles.css | 4 +- 3 files changed, 174 insertions(+), 90 deletions(-) diff --git a/_quarto.yml b/_quarto.yml index 2fd79b362..b8744cc7c 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -90,7 +90,7 @@ format: