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;
+}