From be1125dcb92d8c6e972e00ac4697e136d0fec2bd Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 15 Dec 2018 23:19:04 +0900 Subject: OGP向けにインスタンスのバナー画像を提供するように MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/web/index.ts | 12 ++++++------ src/server/web/views/base.pug | 44 +++++++++++++++++++++++++++++++++++++++++++ src/server/web/views/note.pug | 8 +++++--- src/server/web/views/user.pug | 10 ++++++---- 4 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 src/server/web/views/base.pug (limited to 'src/server') diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 42292cd398..5a5029c7fb 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -15,7 +15,7 @@ import parseAcct from '../../misc/acct/parse'; import config from '../../config'; import Note, { pack as packNote } from '../../models/note'; import getNoteSummary from '../../misc/get-note-summary'; -const consts = require('../../const.json'); +import fetchMeta from '../../misc/fetch-meta'; const client = `${__dirname}/../../client/`; @@ -26,8 +26,7 @@ const app = new Koa(); app.use(views(__dirname + '/views', { extension: 'pug', options: { - config, - themeColor: consts.themeColor + config } })); @@ -120,10 +119,11 @@ router.get('/notes/:note', async ctx => { // Render base html for all requests router.get('*', async ctx => { - await send(ctx, `app/base.html`, { - root: client, - maxage: ms('5m') + const meta = await fetchMeta(); + await ctx.render('base', { + img: meta.bannerUrl }); + ctx.set('Cache-Control', 'public, max-age=86400'); }); // Register router diff --git a/src/server/web/views/base.pug b/src/server/web/views/base.pug new file mode 100644 index 0000000000..dd9660b73f --- /dev/null +++ b/src/server/web/views/base.pug @@ -0,0 +1,44 @@ +block vars + +doctype html + +!= '\n\n' + +html + + head + meta(charset='utf-8') + meta(name='application-name' content='Misskey') + meta(name='referrer' content='origin') + meta(property='og:site_name' content='Misskey') + link(rel='manifest' href='/manifest.json') + + title + block title + | Misskey + + block desc + meta(name='description' content='A planet of fediverse') + + block meta + + block og + meta(property='og:image' content=img) + + style + include ./../../../../built/client/assets/init.css + script + include ./../../../../built/client/assets/boot.js + + script + include ./../../../../built/client/assets/safe.js + + body + noscript: p + | JavaScriptを有効にしてください + br + | Please turn on your JavaScript + div#ini. + + + diff --git a/src/server/web/views/note.pug b/src/server/web/views/note.pug index 234ecabe22..5a5496fff7 100644 --- a/src/server/web/views/note.pug +++ b/src/server/web/views/note.pug @@ -1,4 +1,4 @@ -extends ../../../../src/client/app/base +extends ./base block vars - const user = note.user; @@ -11,14 +11,16 @@ block title block desc meta(name='description' content= summary) -block meta - meta(name='twitter:card' content='summary') +block og meta(property='og:type' content='article') meta(property='og:title' content= title) meta(property='og:description' content= summary) meta(property='og:url' content= url) meta(property='og:image' content= user.avatarUrl) +block meta + meta(name='twitter:card' content='summary') + if note.prev link(rel='prev' href=`${config.url}/notes/${note.prev}`) if note.next diff --git a/src/server/web/views/user.pug b/src/server/web/views/user.pug index 22c76c143b..71c03d5052 100644 --- a/src/server/web/views/user.pug +++ b/src/server/web/views/user.pug @@ -1,4 +1,4 @@ -extends ../../../../src/client/app/base +extends ./base block vars - const title = user.name ? `${user.name} (@${user.username})` : `@${user.username}`; @@ -11,14 +11,16 @@ block title block desc meta(name='description' content= user.description) -block meta - meta(name='twitter:card' content='summary') +block og meta(property='og:type' content='blog') meta(property='og:title' content= title) meta(property='og:description' content= user.description) meta(property='og:url' content= url) meta(property='og:image' content= img) - + +block meta + meta(name='twitter:card' content='summary') + if !user.host link(rel='alternate' href=`${config.url}/users/${user._id}` type='application/activity+json') if user.uri -- cgit v1.2.3-freya