feat(atward): Add an index page with setup instructions

Adds an index page that is rendered when there is no query parameter
in the URL. This means that going to at.tvl.fyi / atward.tvl.fyi
yields an actually useful page.

Change-Id: I018973a3c3e8b7b7167876fa99f34a008a17a4f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3104
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Vincent Ambo 2021-05-11 16:46:01 +02:00 committed by tazjin
parent 259cbfd0b2
commit 99d11bef5f
2 changed files with 84 additions and 1 deletions

75
web/atward/src/index.html Normal file
View file

@ -0,0 +1,75 @@
<!DOCTYPE html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="The Virus Lounge">
<link rel="stylesheet" type="text/css" href="https://tvl.fyi/static/tazjin.css" media="all">
<link rel="icon" type="image/webp" href="https://tvl.fyi/static/favicon.webp">
<title>TVL Search</title>
<body class="light">
<header>
<h1><a class="blog-title" href="/">atward</a></h1>
<hr/>
</header>
<p>
<b>atward</b> is <a href="https://tvl.fyi/">TVL's</a> search
service. It can be configured as a browser search engine for easy
access to TVL bugs, code reviews, code paths and more.
</p>
<h3>Setting up atward</h3>
<p>
To configure atward, add a search engine to your browser with the
following search string:
<pre> https://at.tvl.fyi/?q=%s</pre>
Consider setting a shortcut, for example <b>t</b> or <b>tvl</b>.
You can now quickly access TVL resources by typing something
like <kbd>t b/42</kbd> in your URL bar to get to the bug with ID
42.
</p>
<h3>Supported queries</h3>
<p>
The following query types are supported in atward:
<ul>
<li><kbd>b/42</kbd> - access bugs with ID 42</li>
<li><kbd>cl/3087</kbd> - access changelist with ID 3087</li>
<li><kbd>//web/atward</kbd> - open the <b>//web/atward</b> path in TVLs monorepo</li>
</ul>
</p>
<h3>Configuration</h3>
<p>
Some behaviour of atward can be configured by adding query
parameters to the search string:
<ul>
<li><kbd>cs=true</kbd> - use Sourcegraph instead of cgit to view code</li>
</ul>
</p>
<p class="cheddar-callout cheddar-todo">
In <b>Firefox</b>, configuring query parameters is difficult as
users can not edit search engines directly. There are browser
extensions and other workarounds for this issue, but we do not
recommend any particular one.
</p>
<h3>Source code</h3>
<p>
atward's source code lives
at <a href="https://atward.tvl.fyi/?q=%2F%2Fweb%2Fatward">//web/atward</a>.
</p>
<hr/>
<footer>
<p class="footer">
<a class="uncoloured-link" href="https://cs.tvl.fyi/depot/-/blob/README.md">code</a>
|
<a class="uncoloured-link" href="https://cl.tvl.fyi/">reviews</a>
|
<a class="uncoloured-link" href="https://b.tvl.fyi/">bugs</a>
|
<a class="uncoloured-link" href="https://todo.tvl.fyi/">todos</a>
</p>
<p class="lod">ಠ_ಠ</p>
</footer>
</body>

View file

@ -113,6 +113,14 @@ fn dispatch(handlers: &[Handler], query: &Query) -> Option<String> {
None None
} }
/// Render the atward index page which gives users some information
/// about how to use the service.
fn index() -> Response {
Response::html(include_str!("index.html"))
}
/// Render the fallback page which informs users that their query is
/// unsupported.
fn fallback() -> Response { fn fallback() -> Response {
Response::text("error for emphasis that i am angery and the query whimchst i angery atward") Response::text("error for emphasis that i am angery and the query whimchst i angery atward")
.with_status_code(404) .with_status_code(404)
@ -127,7 +135,7 @@ fn main() {
rouille::log(&request, std::io::stderr(), || { rouille::log(&request, std::io::stderr(), || {
let query = match Query::from_request(&request) { let query = match Query::from_request(&request) {
Some(q) => q, Some(q) => q,
None => return fallback(), None => return index(),
}; };
match dispatch(&queries, &query) { match dispatch(&queries, &query) {