133 lines
5.0 KiB
HTML
133 lines
5.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{ search_term }} — QuickPeep</title>
|
|
<link rel="stylesheet" type="text/css" href="dist/main.css">
|
|
</head>
|
|
<body>
|
|
<!-- Header -->
|
|
<div class="container_overall">
|
|
<div class="left_side_container">
|
|
<header>
|
|
<form method="GET" action="search">
|
|
<fieldset class="horizontal">
|
|
<a href="/" title="QuickPeep"><img src="/static/quickpeep_logo_sml.png" alt="QuickPeep Logo" class="bar_logo"></a>
|
|
<input type="search" id="search" name="q" placeholder="..." value="{{ search_term }}" class="grow">
|
|
|
|
<input type="submit" value="Search" class="shrink">
|
|
</fieldset>
|
|
</form>
|
|
</header><!-- ./ Header -->
|
|
|
|
<!-- Main -->
|
|
<main class="search">
|
|
{% if show_spiel %}
|
|
<p>
|
|
QuickPeep is a hobbyist, open-source and very immature (for now) web search engine. It's intended to help you encounter webpages that are interesting and from a real person, rather than from a 'content mill' or other source of SEO spam. In general, websites that don't respect the reader are unwelcome.
|
|
</p>
|
|
<p>
|
|
QuickPeep's approach to rubbish websites is to 'just' not index them! This also helps with another goal of the project, which is to allow anyone to run an instance of QuickPeep with only modest hardware requirements (especially storage space which could easily be problematic).
|
|
</p>
|
|
<p>
|
|
This is an ambitious project and it is probably not very usable right now. It may never be. With that said, I'm hoping to see how far I can take it.
|
|
</p>
|
|
<p>
|
|
There is an <a href="https://o.librepush.net/blog/2022-07-02-quickpeep-small-scale-web-search-engine">article introducing the project on my personal blog</a>.<br>
|
|
The source code is <a href="https://git.emunest.net/reivilibre/quickpeep.git">available on my personal Gitea instance</a>.
|
|
</p>
|
|
{% endif %}
|
|
|
|
<ul class="search_results">
|
|
<li>
|
|
<img src="/icon.webp?b={{ result.favicon_url }}">
|
|
<div class="result_title"><a href="{{ result.url }}" rel="nofollow noreferrer">{{ result.title }}</a></div>
|
|
<div class="result_excerpt">
|
|
{{- result.excerpt|safe -}}
|
|
</div>
|
|
<ul class="result_tags">
|
|
{%- for tag in result.tags -%}
|
|
<li>{{ tag }}</li>
|
|
{%- endfor -%}
|
|
</ul>
|
|
<div class="result_url">{{ result.url }}</div>
|
|
</li>
|
|
<li>
|
|
<img src="/icon.webp?b={{ result.favicon_url }}">
|
|
<div class="result_title"><a href="{{ result.url }}" rel="nofollow noreferrer">{{ result.title }}</a></div>
|
|
<div class="result_excerpt">
|
|
{{- result.excerpt|safe -}}
|
|
</div>
|
|
<ul class="result_tags">
|
|
{%- for tag in result.tags -%}
|
|
<li>{{ tag }}</li>
|
|
{%- endfor -%}
|
|
</ul>
|
|
<div class="result_url">{{ result.url }}</div>
|
|
</li>
|
|
<li>
|
|
<img src="/icon.webp?b={{ result.favicon_url }}">
|
|
<div class="result_title"><a href="{{ result.url }}" rel="nofollow noreferrer">{{ result.title }}</a></div>
|
|
<div class="result_excerpt">
|
|
{{- result.excerpt|safe -}}
|
|
</div>
|
|
<ul class="result_tags">
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
</ul>
|
|
<div class="result_url">{{ result.url }}</div>
|
|
</li>
|
|
<li>
|
|
<img src="/icon.webp?b={{ result.favicon_url }}">
|
|
<div class="result_title"><a href="{{ result.url }}" rel="nofollow noreferrer">{{ result.title }}</a></div>
|
|
<div class="result_excerpt">
|
|
{{- result.excerpt|safe -}}
|
|
</div>
|
|
<ul class="result_tags">
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
</ul>
|
|
<div class="result_url">{{ result.url }}</div>
|
|
</li>
|
|
<li>
|
|
<img src="/icon.webp?b={{ result.favicon_url }}">
|
|
<div class="result_title"><a href="{{ result.url }}" rel="nofollow noreferrer">{{ result.title }}</a></div>
|
|
<div class="result_excerpt">
|
|
{{- result.excerpt|safe -}}
|
|
</div>
|
|
<ul class="result_tags">
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
<li>{{ tag }}</li>
|
|
</ul>
|
|
<div class="result_url">{{ result.url }}</div>
|
|
</li>
|
|
</ul>
|
|
</main>
|
|
</div>
|
|
|
|
<div class="right_side_container">
|
|
<!-- Preview pane -->
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<footer class="container">
|
|
{% for (method, url) in contact %}
|
|
<a href="{{ url }}">{{ method }}</a> •
|
|
{% endfor %}
|
|
<a href="/">Return to QuickPeep Root</a>
|
|
</footer>
|
|
</body>
|
|
</html>
|