feat: Opensearch tags / descriptor

This commit is contained in:
Tom Moor
2019-08-08 19:52:29 -07:00
parent ae1cf2d00c
commit dd95c9cba9
4 changed files with 41 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import apexRedirect from './middlewares/apexRedirect';
import renderpage from './utils/renderpage';
import { isCustomSubdomain, parseDomain } from '../shared/utils/domains';
import { robotsResponse } from './utils/robots';
import { opensearchResponse } from './utils/opensearch';
import { NotFoundError } from './errors';
import { Team } from './models';
@ -146,7 +147,14 @@ router.get('/', async ctx => {
);
});
router.get('/robots.txt', ctx => (ctx.body = robotsResponse(ctx)));
router.get('/robots.txt', ctx => {
ctx.body = robotsResponse(ctx);
});
router.get('/opensearch.xml', ctx => {
ctx.type = 'text/xml';
ctx.body = opensearchResponse();
});
// catch all for react app
router.get('*', async (ctx, next) => {

View File

@ -2,6 +2,15 @@
<html lang="en">
<head>
<title>Outline</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" type="image/png" href="favicon-32.png" sizes="32x32" />
<link rel="manifest" href="/manifest.json" />
<link
rel="search"
type="application/opensearchdescription+xml"
href="/opensearch.xml"
title="Outline"
/>
<style>
body,
html {

View File

@ -6,6 +6,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" type="image/png" href="favicon-32.png" sizes="32x32" />
<link rel="manifest" href="/manifest.json" />
<link
rel="search"
type="application/opensearchdescription+xml"
href="/opensearch.xml"
title="Outline"
/>
<style>
body,
html {

View File

@ -0,0 +1,17 @@
// @flow
export const opensearchResponse = (): string => {
return `
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Outline</ShortName>
<Description>Search Outline</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">${
process.env.URL
}/favicon.ico</Image>
<Url type="text/html" method="get" template="${
process.env.URL
}/search/{searchTerms}?ref=opensearch"/>
<moz:SearchForm>${process.env.URL}/search</moz:SearchForm>
</OpenSearchDescription>
`;
};