diff --git a/src/main.rs b/src/main.rs index c00c4570..f03959f5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -64,6 +64,7 @@ fn main() { routes::instance::shared_inbox, routes::instance::nodeinfo, routes::instance::about, + routes::instance::web_manifest, routes::likes::create, routes::likes::create_auth, diff --git a/src/routes/instance.rs b/src/routes/instance.rs index 159fc6cd..2dc4a0c2 100644 --- a/src/routes/instance.rs +++ b/src/routes/instance.rs @@ -154,3 +154,17 @@ fn about(user: Option<User>, conn: DbConn) -> Template { "n_instances": Instance::count(&*conn) - 1 })) } + +#[get("/manifest.json")] +fn web_manifest(conn: DbConn) -> Json<serde_json::Value> { + let instance = Instance::get_local(&*conn); + Json(json!({ + "name": &instance.name, + "description": &instance.short_description, + "start_url": String::from("/"), + "scope": String::from("/"), + "display": String::from("standalone"), + "background_color": String::from("#f4f4f4"), + "theme_color": String::from("#7765e3") + })) +} diff --git a/templates/base.html.tera b/templates/base.html.tera index 6825e736..7051a74e 100644 --- a/templates/base.html.tera +++ b/templates/base.html.tera @@ -6,6 +6,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="/static/css/main.css" /> <link rel="stylesheet" href="/static/css/feather.css" /> + <link rel="manifest" href="/manifest.json" /> </head> <body> <header>