mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-24 05:05:20 -04:00
(ts) use markdown-it in admin and add typings for it
This commit is contained in:
parent
043c1cce2d
commit
b8ea0c8f54
@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import spelling from '../plugins/spelling.ts';
|
||||
import { escapeHtml } from '../src/helpers.ts';
|
||||
import { safeInlineMarkdown } from '../src/simpleMarkdown.js';
|
||||
import { safeInlineMarkdown } from '../src/simpleMarkdown.ts';
|
||||
|
||||
export default spelling.extend({
|
||||
props: {
|
||||
|
@ -53,7 +53,6 @@
|
||||
"markdown-it-mark": "^4.0.0",
|
||||
"markdown-it-sub": "^2.0.0",
|
||||
"markdown-it-sup": "^2.0.0",
|
||||
"marked": "0.7.0",
|
||||
"mastodon": "^1.2.2",
|
||||
"memorystore": "^1.6.7",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
@ -106,6 +105,7 @@
|
||||
"@types/jsonwebtoken": "^8.5.9",
|
||||
"@types/lodash": "^4.14.197",
|
||||
"@types/luxon": "^1.27.1",
|
||||
"@types/markdown-it": "^14.0.1",
|
||||
"@types/multer": "1.4.5",
|
||||
"@types/node": "^20.11.5",
|
||||
"@types/node-fetch": "^2.6.11",
|
||||
|
22
pnpm-lock.yaml
generated
22
pnpm-lock.yaml
generated
@ -122,9 +122,6 @@ dependencies:
|
||||
markdown-it-sup:
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0
|
||||
marked:
|
||||
specifier: 0.7.0
|
||||
version: 0.7.0
|
||||
mastodon:
|
||||
specifier: ^1.2.2
|
||||
version: 1.2.2
|
||||
@ -277,6 +274,9 @@ devDependencies:
|
||||
'@types/luxon':
|
||||
specifier: ^1.27.1
|
||||
version: 1.27.1
|
||||
'@types/markdown-it':
|
||||
specifier: ^14.0.1
|
||||
version: 14.1.1
|
||||
'@types/multer':
|
||||
specifier: 1.4.5
|
||||
version: 1.4.5
|
||||
@ -4867,6 +4867,10 @@ packages:
|
||||
resolution: {integrity: sha512-OdhItUN0/Cx9+sWumdb3dxASoA0yStnZahvKcaSQmSR5qd7hZ6zhSriSQGUU3F8GkzFpIILKzut4xn9/GvhusA==}
|
||||
dev: true
|
||||
|
||||
/@types/linkify-it@5.0.0:
|
||||
resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
|
||||
dev: true
|
||||
|
||||
/@types/lodash@4.14.197:
|
||||
resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==}
|
||||
|
||||
@ -4874,6 +4878,17 @@ packages:
|
||||
resolution: {integrity: sha512-cPiXpOvPFDr2edMnOXlz3UBDApwUfR+cpizvxCy0n3vp9bz/qe8BWzHPIEFcy+ogUOyjKuCISgyq77ELZPmkkg==}
|
||||
dev: true
|
||||
|
||||
/@types/markdown-it@14.1.1:
|
||||
resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==}
|
||||
dependencies:
|
||||
'@types/linkify-it': 5.0.0
|
||||
'@types/mdurl': 2.0.0
|
||||
dev: true
|
||||
|
||||
/@types/mdurl@2.0.0:
|
||||
resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
|
||||
dev: true
|
||||
|
||||
/@types/mime@1.3.5:
|
||||
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
|
||||
dev: true
|
||||
@ -11754,6 +11769,7 @@ packages:
|
||||
resolution: {integrity: sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/mastodon@1.2.2:
|
||||
resolution: {integrity: sha512-ixcYkzn6SorH8U2jNc1vwiX89EiVMjzd2aDYFtr191YY9rdoVo+owI6cQo2EjUnzg2RN9WxyBJ9KDuw+R4lt+w==}
|
||||
|
@ -10,7 +10,7 @@ import { caches } from '../../src/cache.ts';
|
||||
import mailer from '../../src/mailer.ts';
|
||||
import { profilesSnapshot } from './profile.ts';
|
||||
import { archiveBan, liftBan } from '../ban.ts';
|
||||
import marked from 'marked';
|
||||
import markdownit from 'markdown-it';
|
||||
import { loadCurrentUser } from './user.ts';
|
||||
import { encodeTime, decodeTime, ulid } from 'ulid';
|
||||
import Suml from 'suml';
|
||||
@ -619,6 +619,8 @@ router.post('/admin/overwrite-sensitive/:username', handleErrorAsync(async (req,
|
||||
return res.json(req.body.sensitive);
|
||||
}));
|
||||
|
||||
const md = markdownit({ html: true });
|
||||
|
||||
router.get('/admin/moderation', handleErrorAsync(async (req, res) => {
|
||||
if (!req.isGranted('panel')) {
|
||||
return res.status(401).json({ error: 'Unauthorised' });
|
||||
@ -630,10 +632,10 @@ router.get('/admin/moderation', handleErrorAsync(async (req, res) => {
|
||||
susRegexes: fs.readFileSync(`${dir}/sus.txt`).toString('utf-8')
|
||||
.split('\n')
|
||||
.filter((x) => !!x && !x.startsWith('#')),
|
||||
rulesUsers: marked(fs.readFileSync(`${dir}/rules-users.md`).toString('utf-8')),
|
||||
rulesTerminology: marked(fs.readFileSync(`${dir}/rules-terminology.md`).toString('utf-8')),
|
||||
rulesSources: marked(fs.readFileSync(`${dir}/rules-sources.md`).toString('utf-8')),
|
||||
timesheets: marked(fs.readFileSync(`${dir}/timesheets.md`).toString('utf-8')),
|
||||
rulesUsers: md.render(fs.readFileSync(`${dir}/rules-users.md`).toString('utf-8')),
|
||||
rulesTerminology: md.render(fs.readFileSync(`${dir}/rules-terminology.md`).toString('utf-8')),
|
||||
rulesSources: md.render(fs.readFileSync(`${dir}/rules-sources.md`).toString('utf-8')),
|
||||
timesheets: md.render(fs.readFileSync(`${dir}/timesheets.md`).toString('utf-8')),
|
||||
});
|
||||
}));
|
||||
|
||||
|
@ -15,4 +15,4 @@ const md = markdownit('zero')
|
||||
.use(sup)
|
||||
.use(mark);
|
||||
|
||||
export const safeInlineMarkdown = (text) => md.renderInline(text);
|
||||
export const safeInlineMarkdown = (text: string): string => md.renderInline(text);
|
17
types/markdown-it.ts
Normal file
17
types/markdown-it.ts
Normal file
@ -0,0 +1,17 @@
|
||||
declare module 'markdown-it-sub' {
|
||||
import type { PluginSimple } from 'markdown-it';
|
||||
const plugin: PluginSimple;
|
||||
export default plugin;
|
||||
}
|
||||
|
||||
declare module 'markdown-it-sup' {
|
||||
import type { PluginSimple } from 'markdown-it';
|
||||
const plugin: PluginSimple;
|
||||
export default plugin;
|
||||
}
|
||||
|
||||
declare module 'markdown-it-mark' {
|
||||
import type { PluginSimple } from 'markdown-it';
|
||||
const plugin: PluginSimple;
|
||||
export default plugin;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user