diff --git a/Cargo.lock b/Cargo.lock index 807fdf90..96fa1a15 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2276,15 +2276,22 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.9.6" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" +checksum = "4d31cbfcd94884c3a67ec210c83efb06cb43674043458b0ad59f6947f8462c23" dependencies = [ "bitflags 2.6.0", "memchr", + "pulldown-cmark-escape", "unicase", ] +[[package]] +name = "pulldown-cmark-escape" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae" + [[package]] name = "quick-error" version = "1.2.3" diff --git a/crates/aiken-project/Cargo.toml b/crates/aiken-project/Cargo.toml index eb021e28..7b71c7b8 100644 --- a/crates/aiken-project/Cargo.toml +++ b/crates/aiken-project/Cargo.toml @@ -38,7 +38,7 @@ pallas-primitives.workspace = true pallas-traverse.workspace = true patricia_tree = "0.8.0" petgraph = "0.6.3" -pulldown-cmark = { version = "0.9.2", default-features = false } +pulldown-cmark = { version = "0.12.0", default-features = false, features = ["html"] } rayon = "1.7.0" regex = "1.7.1" reqwest = { version = "0.11.14", features = ["blocking", "json"] } diff --git a/crates/aiken-project/src/docs.rs b/crates/aiken-project/src/docs.rs index 547d9a54..5a08b1e0 100644 --- a/crates/aiken-project/src/docs.rs +++ b/crates/aiken-project/src/docs.rs @@ -634,6 +634,11 @@ impl DocTypeConstructor { .doc .as_deref() .map(|doc| render_markdown(&format!("{doc}\n{doc_args}"))) + .or(if doc_args.is_empty() { + None + } else { + Some(render_markdown(&format!("\n{doc_args}"))) + }) .unwrap_or_default(), raw_documentation: constructor.doc.as_deref().unwrap_or_default().to_string(), } diff --git a/crates/aiken-project/templates/_layout.html b/crates/aiken-project/templates/_layout.html index ae91bcc3..1e8d9792 100644 --- a/crates/aiken-project/templates/_layout.html +++ b/crates/aiken-project/templates/_layout.html @@ -120,7 +120,7 @@

{{ project_name }} - v{{ project_version }} + {{ project_version }} diff --git a/crates/aiken-project/templates/css/index.css b/crates/aiken-project/templates/css/index.css index ec987959..bc52e8d4 100644 --- a/crates/aiken-project/templates/css/index.css +++ b/crates/aiken-project/templates/css/index.css @@ -29,6 +29,13 @@ --color-table-border: #ea76cb; --color-code-background: #dce0e8; + /* Blockquote tags */ + --color-note: #0984e3; + --color-tip: #00b894; + --color-important: #e84393; + --color-warning: #f9ca24; + --color-caution: #e17055; + /* etc */ --nav-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1); --shadow: @@ -329,7 +336,7 @@ p code { .sidebar h2 { margin: 0; - color: var(--color-link-accent); + color: var(--color-text); font-size: 1.75em; } @@ -521,16 +528,23 @@ a.member-source:hover::before { .constructor-item-docs { margin-left: var(--large-gap); margin-bottom: var(--gap); - padding-left: 1.5rem; - margin-top: -1em; } -.constructor-item-docs::before { +.constructor-item-docs > p { + padding-left: 1.5rem; +} + +.constructor-item-docs > p:first-child { + padding-top: 0.5rem; +} + +.constructor-item-docs > p:first-child::before { content: '↳'; position: relative; margin-left: -1.5rem; - top: 1.5em; color: var(--color-background-accent); + width: 1.5rem; + display: inline-block; } .constructor-item-docs hr { @@ -1137,10 +1151,12 @@ body.theme-dark { .sidebar li[data-indent="2"]::before { padding-left: 2rem; } .sidebar li[data-indent="3"]::before { padding-left: 3rem; } +.sidebar li[data-heading] > a, +.sidebar li[data-heading] > a:visited, .sidebar li[data-heading] { font-weight: bold; font-size: 1em; - color: var(--color-link-accent); + color: var(--color-text); } .sidebar li[data-heading="1"] { @@ -1154,11 +1170,81 @@ body.theme-dark { } .sidebar li[data-heading="3"] { + margin-top: 0.75rem; + font-size: 1.1em; +} + +.sidebar li[data-heading="4"] { margin-top: 0.5rem; font-size: 1.1em; } -.sidebar li[data-heading]:first-child, -.sidebar li[data-heading] + li[data-heading] { +.sidebar li[data-heading]:first-child { margin-top: 0; } + +/* Blockquote tags */ + +blockquote.markdown-alert-note { + --color-alert: var(--color-note); + --text-alert: "Note"; +} + +blockquote.markdown-alert-tip { + --color-alert: var(--color-tip); + --text-alert: "Tip"; +} + + +blockquote.markdown-alert-important { + --color-alert: var(--color-important); + --text-alert: "Important"; +} + + +blockquote.markdown-alert-warning { + --color-alert: var(--color-warning); + --text-alert: "Warning"; +} + + +blockquote.markdown-alert-caution { + --color-alert: var(--color-caution); + --text-alert: "Caution"; +} + +blockquote.markdown-alert-note, +blockquote.markdown-alert-tip, +blockquote.markdown-alert-important, +blockquote.markdown-alert-warning, +blockquote.markdown-alert-caution { + border-left: 4px solid var(--color-alert); + padding-left: 1rem; + margin: 0; +} + +blockquote.markdown-alert-note > span.icon-group > svg.icon, +blockquote.markdown-alert-tip > span.icon-group > svg.icon, +blockquote.markdown-alert-important > span.icon-group > svg.icon, +blockquote.markdown-alert-warning > span.icon-group > svg.icon, +blockquote.markdown-alert-caution > span.icon-group > svg.icon { + width: 1em; + height: 1em; + display: inline-block; + position: relative; + top: 0.15rem; + margin-right: 0.25rem; +} + +blockquote.markdown-alert-note > span.icon-group, +blockquote.markdown-alert-tip > span.icon-group, +blockquote.markdown-alert-important > span.icon-group, +blockquote.markdown-alert-warning > span.icon-group, +blockquote.markdown-alert-caution > span.icon-group { + font-weight: bold; + font-variant: small-caps; + color: var(--color-alert); + display: inline-block; + width: 100%; + padding-bottom: 0.5rem; +}