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
|
||||
dist
|
||||
.eslintcache
|
||||
docs/.vitepress/.temp
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ export default defineConfig({
|
|||
cleanUrls: true,
|
||||
appearance: 'dark',
|
||||
base: baseUrl,
|
||||
srcExclude: ['readme.md', 'single-page'],
|
||||
srcExclude: ['README.md', 'single-page'],
|
||||
ignoreDeadLinks: true,
|
||||
sitemap: {
|
||||
hostname: meta.hostname
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import type { DefaultTheme } from 'vitepress'
|
||||
import { transform, transformGuide } from './transformer'
|
||||
// @unocss-include
|
||||
|
||||
export const meta = {
|
||||
|
|
@ -8,9 +9,9 @@ export const meta = {
|
|||
keywords: ['stream', 'movies', 'gaming', 'reading', 'anime']
|
||||
}
|
||||
|
||||
export const commitRef = process.env.CF_PAGES
|
||||
? `<a href="https://github.com/fmhy/FMHYEdit/commit/${
|
||||
process.env.CF_PAGES_COMMIT_SHA
|
||||
export const commitRef =
|
||||
process.env.CF_PAGES && 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>`
|
||||
: 'dev'
|
||||
|
||||
|
|
@ -18,6 +19,15 @@ export const feedback = `<a href="/feedback" class="feedback-footer">Made with
|
|||
|
||||
export const search: DefaultTheme.Config['search'] = {
|
||||
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: {
|
||||
options: {
|
||||
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())
|
||||
// Downrank posts
|
||||
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)
|
||||
const titleIndex =
|
||||
|
|
|
|||
|
|
@ -244,6 +244,10 @@
|
|||
--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 {
|
||||
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxpZ2h0YnVsYiI+PHBhdGggZD0iTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSIvPjxwYXRoIGQ9Ik05IDE4aDYiLz48cGF0aCBkPSJNMTAgMjJoNCIvPjwvc3ZnPg==');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ function getHeader(id: string) {
|
|||
return header
|
||||
}
|
||||
|
||||
function transformGuide(text: string): string {
|
||||
export function transformGuide(text: string): string {
|
||||
const _text = text
|
||||
.replace(/\[TOC\]\n/gm, '')
|
||||
.replace(/\*\*Table of Contents\*\*\n\[TOC2\]\n/gm, '')
|
||||
|
|
@ -192,7 +192,7 @@ function replaceUnderscore(text: string): string {
|
|||
return text
|
||||
}
|
||||
|
||||
function transform(text: string): string {
|
||||
export function transform(text: string): string {
|
||||
let _text = text
|
||||
.replace(
|
||||
/\*\*\[◄◄ 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