simpkey/src/render.ts

43 lines
1020 B
TypeScript
Raw Permalink Normal View History

2020-07-23 18:53:00 +02:00
import views from 'koa-views';
2020-07-24 16:08:43 +02:00
import { parse, toHtml } from 'mfmf';
import { parsePlain } from 'mfmf/dist/script/mfm/parse';
2020-07-24 17:12:11 +02:00
import constant from './const';
2020-07-23 18:53:00 +02:00
import { User } from './models/User';
import { Note } from './models/Note';
export const render = views(__dirname + '/views', {
extension: 'pug', options: {
2020-07-24 17:12:11 +02:00
...constant,
2020-07-24 16:08:43 +02:00
mfmToHtml: (text: string, plain = false) => {
return toHtml(plain ? parsePlain(text) : parse(text), [], {
url: '',
});
},
2020-07-23 18:53:00 +02:00
getAcct: (user: User) => user.host ? `@${user.username}@${user.host}` : `@${user.username}`,
getUserName: (user: User) => user.name || user.username,
getVisibility: (note: Note) => {
let icon: string;
switch (note.visibility) {
case 'public':
icon = '🌐';
break;
case 'home':
icon = '🏠';
break;
case 'followers':
icon = '🔒';
break;
case 'specified':
icon = '✉️';
break;
default:
icon = '❓';
break;
}
if (note.localOnly) icon += '☣';
return icon;
2020-07-24 06:58:36 +02:00
}
2020-07-23 18:53:00 +02:00
}
});