diff --git a/Cargo.lock b/Cargo.lock
index c952db9..b23337c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1853,6 +1853,7 @@ dependencies = [
"dyn-clone",
"eyre",
"http",
+ "indexmap",
"lazy_static",
"mailpot",
"minijinja",
diff --git a/archive-http/src/cal.rs b/archive-http/src/cal.rs
index 571950d..3725d8a 100644
--- a/archive-http/src/cal.rs
+++ b/archive-http/src/cal.rs
@@ -31,8 +31,8 @@ use chrono::*;
///
/// # Examples
/// ```
-/// use mailpot_archives::cal::calendarize;
/// use chrono::*;
+/// use mailpot_archives::cal::calendarize;
///
/// let date = NaiveDate::parse_from_str("2021-01-02", "%Y-%m-%d").unwrap();
/// // Week = [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
@@ -59,8 +59,8 @@ pub fn calendarize(date: NaiveDate) -> Vec<[u32; 7]> {
///
/// # Examples
/// ```
-/// use mailpot_archives::cal::calendarize_with_offset;
/// use chrono::*;
+/// use mailpot_archives::cal::calendarize_with_offset;
///
/// let date = NaiveDate::parse_from_str("2021-01-02", "%Y-%m-%d").unwrap();
/// // Week = [Mon, Tue, Wed, Thu, Fri, Sat, Sun]
diff --git a/web/Cargo.toml b/web/Cargo.toml
index 0abb12a..1b8b008 100644
--- a/web/Cargo.toml
+++ b/web/Cargo.toml
@@ -28,6 +28,7 @@ chrono = { version = "^0.4" }
dyn-clone = { version = "^1" }
eyre = { version = "0.6" }
http = "0.2"
+indexmap = { version = "1.9" }
lazy_static = "^1.4"
mailpot = { version = "^0.0", path = "../core" }
minijinja = { version = "0.31.0", features = ["source", ] }
diff --git a/web/src/lists.rs b/web/src/lists.rs
index d9e400d..3c4c9ea 100644
--- a/web/src/lists.rs
+++ b/web/src/lists.rs
@@ -17,6 +17,8 @@
* along with this program. If not, see .
*/
+use indexmap::IndexMap;
+
use super::*;
/// Mailing list index.
diff --git a/web/src/templates/css.html b/web/src/templates/css.html
index 9290322..5c06388 100644
--- a/web/src/templates/css.html
+++ b/web/src/templates/css.html
@@ -85,7 +85,7 @@
}
a.self-link {
- --width: 28px;
+ --width: 22px;
position: absolute;
top: 0px;
left: calc(var(--width) - 3.5rem);
@@ -340,11 +340,12 @@
margin: 1rem;
}
- main.layout>div.header>h2 {
- margin-inline-start: 1rem;
+ main.layout>div.header>div.page-header {
+ width: 90vw;
+ margin: 0px auto;
}
- main.layout>div.header>nav + nav {
+ main.layout>div.header>div.page-header>nav:first-child {
margin-top: 1rem;
}
@@ -364,7 +365,9 @@
gap: 1rem;
}
nav.main-nav>ul>li>a {
+ /* fallback if clamp() isn't supported */
padding: 1rem;
+ padding: 1rem clamp(0.6svw,1rem,0.5vmin);
}
nav.main-nav > ul > li > a:hover {
outline: 0.1rem solid;
@@ -380,7 +383,6 @@
nav.breadcrumbs {
padding: 10px 14px 10px 0px;
- margin-inline-start: 1rem;
}
nav.breadcrumbs ol {
@@ -388,6 +390,18 @@
padding-left: 0;
}
+ /* If only the root crumb is visible, hide it to avoid unnecessary visual clutter */
+ li.crumb:only-child>span[aria-current="page"] {
+ --secs: 500ms;
+ transition: all var(--secs) linear;
+ color: transparent;
+ }
+
+ li.crumb:only-child>span[aria-current="page"]:hover {
+ transition: all var(--secs) linear;
+ color: revert;
+ }
+
.crumb, .crumb>a {
display: contents;
}
@@ -508,20 +522,35 @@
div.entries {
display: flex;
flex-direction: column;
- gap: 1rem;
+ }
+
+ div.entries>p:first-child {
+ margin: 1rem 0rem;
}
div.entries>div.entry {
display: flex;
flex-direction: column;
gap: 0.5rem;
+ border: 1px solid var(--border-secondary);
+ padding: 1rem 1rem;
}
- div.posts>div.entry>span.subject {
- font-size: larger;
+ div.entries>div.entry+div.entry {
+ border-top:none;
+ }
+
+ div.entries>div.entry span.metadata.replies {
+ background: CanvasText;
+ border-radius: .6rem;
+ color: Canvas;
+ padding: 0.1rem 0.4rem;
+ font-size: small;
+ font-variant-numeric: tabular-nums;
}
div.entries>div.entry>span.metadata {
+ font-size: small;
color: GrayText;
word-break: break-all;
}
@@ -578,15 +607,18 @@
span.message-id:before{
content: '<';
display: inline-block;
+ opacity: 0.6;
}
td.message-id:after,
span.message-id:after{
content: '>';
display: inline-block;
+ opacity: 0.6;
}
span.message-id + span.message-id:before{
content: ', <';
display: inline-block;
+ opacity: 0.6;
}
td.faded,
span.faded {
diff --git a/web/src/templates/header.html b/web/src/templates/header.html
index 6fc7615..eef1a3b 100644
--- a/web/src/templates/header.html
+++ b/web/src/templates/header.html
@@ -14,13 +14,21 @@
{{ description }}
{% endif %}
{% include "menu.html" %}
- {% if messages %}
-
- {% for message in messages %}
- -
- {{ message.level }}: {{ message.message }}
-
- {% endfor %}
-
- {% endif %}
+
diff --git a/web/src/templates/menu.html b/web/src/templates/menu.html
index fc9fd3c..ead407e 100644
--- a/web/src/templates/menu.html
+++ b/web/src/templates/menu.html
@@ -9,9 +9,3 @@
{% endif %}
-{% if page_title %}
- {{ page_title }}
-{% endif %}
-