mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-24 05:05:20 -04:00
(search) add search for api, terms, privacy and license
This commit is contained in:
parent
36dbf51c75
commit
cf0acf7a8e
@ -17,6 +17,7 @@ import { parsePronouns } from '~/src/buildPronoun.ts';
|
|||||||
import { buildCalendar } from '~/src/calendar/calendar.ts';
|
import { buildCalendar } from '~/src/calendar/calendar.ts';
|
||||||
import { Day } from '~/src/calendar/helpers.ts';
|
import { Day } from '~/src/calendar/helpers.ts';
|
||||||
import { genders, gendersWithNumerus } from '~/src/classes.ts';
|
import { genders, gendersWithNumerus } from '~/src/classes.ts';
|
||||||
|
import forbidden from '~/src/forbidden.ts';
|
||||||
import { clearLinkedText, buildImageUrl } from '~/src/helpers.ts';
|
import { clearLinkedText, buildImageUrl } from '~/src/helpers.ts';
|
||||||
import parseMarkdown from '~/src/parseMarkdown.ts';
|
import parseMarkdown from '~/src/parseMarkdown.ts';
|
||||||
import { normaliseQuery, type SearchDocument, validateQuery } from '~/src/search.ts';
|
import { normaliseQuery, type SearchDocument, validateQuery } from '~/src/search.ts';
|
||||||
@ -376,6 +377,84 @@ const kinds: SearchKind[] = [
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.user.enabled) {
|
||||||
|
addDocument({
|
||||||
|
url: `/${encodeURIComponent(config.user.termsRoute)}`,
|
||||||
|
title: translator.translate('terms.header'),
|
||||||
|
content: [
|
||||||
|
translator.has('terms.translationDisclaimer')
|
||||||
|
? translator.translate('terms.translationDisclaimer')
|
||||||
|
: '',
|
||||||
|
translator.translate('terms.content.consent'),
|
||||||
|
|
||||||
|
translator.translate('terms.content.accounts.header'),
|
||||||
|
translator.translate('terms.content.accounts.age'),
|
||||||
|
translator.translate('terms.content.accounts.authentication'),
|
||||||
|
translator.translate('terms.content.accounts.termination'),
|
||||||
|
translator.translate('terms.content.accounts.inactivity'),
|
||||||
|
|
||||||
|
translator.translate('terms.content.content.header'),
|
||||||
|
translator.translate('terms.content.content.ownership'),
|
||||||
|
translator.translate('terms.content.content.liability'),
|
||||||
|
translator.translate('terms.content.content.violations'),
|
||||||
|
forbidden.map((violation) => {
|
||||||
|
translator.translate(`terms.content.content.violationsExamples.${violation}`);
|
||||||
|
}).join(translator.translate('terms.content.content.violationsSeparator')),
|
||||||
|
translator.translate('terms.content.content.violationsEnd'),
|
||||||
|
translator.translate('terms.content.content.violationsStrict'),
|
||||||
|
translator.translate('terms.content.content.responsibility'),
|
||||||
|
|
||||||
|
translator.translate('terms.content.closing.header'),
|
||||||
|
translator.translate('terms.content.closing.jurisdiction'),
|
||||||
|
translator.translate('terms.content.closing.changes'),
|
||||||
|
].join(' '),
|
||||||
|
});
|
||||||
|
addDocument({
|
||||||
|
url: `/${encodeURIComponent(config.user.privacyRoute)}`,
|
||||||
|
title: translator.translate('privacy.header'),
|
||||||
|
content: [
|
||||||
|
translator.has('terms.translationDisclaimer')
|
||||||
|
? translator.translate('terms.translationDisclaimer')
|
||||||
|
: '',
|
||||||
|
translator.translate('privacy.content.intro'),
|
||||||
|
translator.translate('privacy.content.effort'),
|
||||||
|
translator.translate('privacy.content.data'),
|
||||||
|
translator.translate('privacy.content.editRemoval'),
|
||||||
|
translator.translate('privacy.content.contact'),
|
||||||
|
translator.translate('privacy.content.cookies'),
|
||||||
|
translator.translate('privacy.content.plausible'),
|
||||||
|
translator.translate('privacy.content.turnstile'),
|
||||||
|
translator.translate('privacy.content.sentry'),
|
||||||
|
config.ads?.enabled ? translator.translate('privacy.content.publift') : '',
|
||||||
|
config.ads?.enabled ? translator.translate('privacy.content.gtm') : '',
|
||||||
|
translator.translate('privacy.content.logsBackups'),
|
||||||
|
translator.translate('privacy.content.gdpr'),
|
||||||
|
].join(' '),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.api) {
|
||||||
|
addDocument({
|
||||||
|
url: '/api',
|
||||||
|
title: translator.translate('api.header'),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const content = await fs.readFile(`${rootDir}/LICENSE.md`, 'utf-8');
|
||||||
|
const title = content.match(/^# (.*)\n/)?.[1];
|
||||||
|
// exclude title, date and author from searchable content
|
||||||
|
const trimmed = content.replace(/^(.+\n+){2}/, '');
|
||||||
|
const markdown = marked(trimmed);
|
||||||
|
const parsed = await parseMarkdown(markdown, translator);
|
||||||
|
const text = JSDOM.fragment(parsed.content ?? '').textContent?.replaceAll(/\s+/g, ' ');
|
||||||
|
addDocument({
|
||||||
|
url: '/license',
|
||||||
|
title: title ?? '',
|
||||||
|
content: text ?? '',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
addDocument({
|
addDocument({
|
||||||
url: 'https://shop.pronouns.page',
|
url: 'https://shop.pronouns.page',
|
||||||
title: translator.translate('contact.groups.shop'),
|
title: translator.translate('contact.groups.shop'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user