mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-13 19:20:04 +00:00
fcdaf9d814
* v2 init * chore: update eslint suppressions and package dependencies - Removed several eslint suppressions related to array sorting and reversing from eslint-suppressions.json to clean up the configuration. - Updated @lobehub/lint package version from 2.0.0-beta.6 to 2.0.0-beta.7 in package.json for improvements and bug fixes. - Made minor formatting adjustments in vitest.config.mts and various SKILL.md files for better readability and consistency. Signed-off-by: Innei <tukon479@gmail.com> * fix: clean up import statements and formatting - Removed unnecessary whitespace in replaceComponentImports.ts for improved readability. - Standardized import statements in contextEngineering.ts and createAgentExecutors.ts by adding missing spaces for consistency. Signed-off-by: Innei <tukon479@gmail.com> * chore: update eslint suppressions and clean up code formatting * 🐛 fix: use vi.hoisted for mock variable initialization Fix TDZ error in persona service test by using vi.hoisted() to ensure mock variables are available when vi.mock factory runs. --------- Signed-off-by: Innei <tukon479@gmail.com>
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import { readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
import { resolve } from 'node:path';
|
|
|
|
import { consola } from 'consola';
|
|
import { globSync } from 'glob';
|
|
import matter from 'gray-matter';
|
|
|
|
const fixWinPath = (path: string) => path.replaceAll('\\', '/');
|
|
|
|
export const root = resolve(__dirname, '../..');
|
|
|
|
const run = () => {
|
|
const posts = globSync(fixWinPath(resolve(root, 'docs/**/*.mdx')));
|
|
|
|
for (const post of posts) {
|
|
try {
|
|
const mdx = readFileSync(post, 'utf8');
|
|
if (!mdx || mdx.replaceAll(' ', '').replaceAll('\n', '') === '') {
|
|
consola.error(post, 'is EMPTY !!!!!');
|
|
unlinkSync(post);
|
|
continue;
|
|
}
|
|
const { data, content } = matter(mdx);
|
|
const formatedContent = content
|
|
.replaceAll('\\<', '<')
|
|
.replaceAll("{' '}\n", '')
|
|
.replaceAll(`'<`, `'`)
|
|
.replaceAll(`"<`, `"`)
|
|
.replaceAll(`>'`, `'`)
|
|
.replaceAll(`>"`, `"`)
|
|
.replaceAll(' </', '\n</')
|
|
.replaceAll(' </', '\n</')
|
|
.replaceAll('}> width', '} width')
|
|
.replaceAll("'[https", "'https")
|
|
.replaceAll('"[https', '"https')
|
|
.replaceAll(/\]\(http(.*)\/>\)/g, '')
|
|
.replaceAll(`\\*\\* `, '** ')
|
|
.replaceAll(` \\*\\*`, ' **')
|
|
.replaceAll(/\n{2,}/g, '\n\n');
|
|
|
|
if (!data?.title) {
|
|
const regex = /^#\s(.+)/;
|
|
const match = regex.exec(formatedContent.trim());
|
|
const title = match ? match[1] : '';
|
|
data.title = title;
|
|
}
|
|
|
|
writeFileSync(post, matter.stringify(formatedContent, data));
|
|
} catch (error) {
|
|
consola.error(post);
|
|
consola.error(error);
|
|
}
|
|
}
|
|
};
|
|
|
|
run();
|