mirror of
https://github.com/fmhy/edit.git
synced 2026-01-17 17:31:18 +11:00
fix(search): transform contents before indexing
Resolves WEB-21
This commit is contained in:
parent
3791f3f6d8
commit
7d63a3025a
5 changed files with 24 additions and 7 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -8,3 +8,4 @@ node_modules
|
||||||
.env
|
.env
|
||||||
dist
|
dist
|
||||||
.eslintcache
|
.eslintcache
|
||||||
|
docs/.vitepress/.temp
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ export default defineConfig({
|
||||||
cleanUrls: true,
|
cleanUrls: true,
|
||||||
appearance: 'dark',
|
appearance: 'dark',
|
||||||
base: baseUrl,
|
base: baseUrl,
|
||||||
srcExclude: ['readme.md', 'single-page'],
|
srcExclude: ['README.md', 'single-page'],
|
||||||
ignoreDeadLinks: true,
|
ignoreDeadLinks: true,
|
||||||
sitemap: {
|
sitemap: {
|
||||||
hostname: meta.hostname
|
hostname: meta.hostname
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import type { DefaultTheme } from 'vitepress'
|
import type { DefaultTheme } from 'vitepress'
|
||||||
|
import { transform, transformGuide } from './transformer'
|
||||||
// @unocss-include
|
// @unocss-include
|
||||||
|
|
||||||
export const meta = {
|
export const meta = {
|
||||||
|
|
@ -8,9 +9,9 @@ export const meta = {
|
||||||
keywords: ['stream', 'movies', 'gaming', 'reading', 'anime']
|
keywords: ['stream', 'movies', 'gaming', 'reading', 'anime']
|
||||||
}
|
}
|
||||||
|
|
||||||
export const commitRef = process.env.CF_PAGES
|
export const commitRef =
|
||||||
? `<a href="https://github.com/fmhy/FMHYEdit/commit/${
|
process.env.CF_PAGES && process.env.CF_PAGES_COMMIT_SHA
|
||||||
process.env.CF_PAGES_COMMIT_SHA
|
? `<a href="https://github.com/fmhy/FMHYEdit/commit/${process.env.CF_PAGES_COMMIT_SHA
|
||||||
}">${process.env.CF_PAGES_COMMIT_SHA.slice(0, 8)}</a>`
|
}">${process.env.CF_PAGES_COMMIT_SHA.slice(0, 8)}</a>`
|
||||||
: 'dev'
|
: 'dev'
|
||||||
|
|
||||||
|
|
@ -18,6 +19,15 @@ export const feedback = `<a href="/feedback" class="feedback-footer">Made with
|
||||||
|
|
||||||
export const search: DefaultTheme.Config['search'] = {
|
export const search: DefaultTheme.Config['search'] = {
|
||||||
options: {
|
options: {
|
||||||
|
_render(src, env, md) {
|
||||||
|
let contents = src
|
||||||
|
// I do this as env.frontmatter is not available until I call `md.render`
|
||||||
|
if (contents.includes('Beginners Guide'))
|
||||||
|
contents = transformGuide(contents)
|
||||||
|
contents = transform(contents)
|
||||||
|
const html = md.render(contents, env)
|
||||||
|
return html
|
||||||
|
},
|
||||||
miniSearch: {
|
miniSearch: {
|
||||||
options: {
|
options: {
|
||||||
tokenize: (text) => text.split(/[\n\r #%*,=/:;?[\]{}()&]+/u), // simplified charset: removed [-_.@] and non-english chars (diacritics etc.)
|
tokenize: (text) => text.split(/[\n\r #%*,=/:;?[\]{}()&]+/u), // simplified charset: removed [-_.@] and non-english chars (diacritics etc.)
|
||||||
|
|
@ -67,6 +77,8 @@ export const search: DefaultTheme.Config['search'] = {
|
||||||
.map((t) => t.toLowerCase())
|
.map((t) => t.toLowerCase())
|
||||||
// Downrank posts
|
// Downrank posts
|
||||||
if (documentId.match(/\/posts/)) return -5
|
if (documentId.match(/\/posts/)) return -5
|
||||||
|
// Downrank /other
|
||||||
|
if (documentId.match(/\/other/)) return -5
|
||||||
|
|
||||||
// Uprate if term appears in titles. Add bonus for higher levels (i.e. lower index)
|
// Uprate if term appears in titles. Add bonus for higher levels (i.e. lower index)
|
||||||
const titleIndex =
|
const titleIndex =
|
||||||
|
|
|
||||||
|
|
@ -244,6 +244,10 @@
|
||||||
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+');
|
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.note.custom-block {
|
||||||
|
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+');
|
||||||
|
}
|
||||||
|
|
||||||
.tip.custom-block {
|
.tip.custom-block {
|
||||||
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxpZ2h0YnVsYiI+PHBhdGggZD0iTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSIvPjxwYXRoIGQ9Ik05IDE4aDYiLz48cGF0aCBkPSJNMTAgMjJoNCIvPjwvc3ZnPg==');
|
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxpZ2h0YnVsYiI+PHBhdGggZD0iTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSIvPjxwYXRoIGQ9Ik05IDE4aDYiLz48cGF0aCBkPSJNMTAgMjJoNCIvPjwvc3ZnPg==');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,7 @@ function getHeader(id: string) {
|
||||||
return header
|
return header
|
||||||
}
|
}
|
||||||
|
|
||||||
function transformGuide(text: string): string {
|
export function transformGuide(text: string): string {
|
||||||
const _text = text
|
const _text = text
|
||||||
.replace(/\[TOC\]\n/gm, '')
|
.replace(/\[TOC\]\n/gm, '')
|
||||||
.replace(/\*\*Table of Contents\*\*\n\[TOC2\]\n/gm, '')
|
.replace(/\*\*Table of Contents\*\*\n\[TOC2\]\n/gm, '')
|
||||||
|
|
@ -192,7 +192,7 @@ function replaceUnderscore(text: string): string {
|
||||||
return text
|
return text
|
||||||
}
|
}
|
||||||
|
|
||||||
function transform(text: string): string {
|
export function transform(text: string): string {
|
||||||
let _text = text
|
let _text = text
|
||||||
.replace(
|
.replace(
|
||||||
/\*\*\[◄◄ Back to Wiki Index\]\(https:\/\/www\.reddit\.com\/r\/FREEMEDIAHECKYEAH\/wiki\/index\)\*\*\n/gm,
|
/\*\*\[◄◄ Back to Wiki Index\]\(https:\/\/www\.reddit\.com\/r\/FREEMEDIAHECKYEAH\/wiki\/index\)\*\*\n/gm,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue