lobe-chat

Форк
0
/
syncPluginIndex.ts 
42 строки · 1.3 Кб
1
import { consola } from 'consola';
2
import { markdownTable } from 'markdown-table';
3

4
import { DataItem, PLGUIN_URL, PLUGIN_REPO, PLUGIN_SPLIT } from './const';
5
import { fetchPluginIndex, genLink, genTags, readReadme, updateReadme, writeReadme } from './utlis';
6

7
const genPluginTable = (data: DataItem[], lang: string) => {
8
  const isCN = lang === 'zh-CN';
9
  const content = data
10
    .slice(0, 4)
11
    .map((item) => [
12
      [
13
        genLink(item.meta.title.replaceAll('|', ','), PLGUIN_URL),
14
        `<sup>By **${item.author}** on **${item.createdAt}**</sup>`,
15
      ].join('<br/>'),
16
      [item.meta.description.replaceAll('|', ','), genTags(item.meta.tags)].join('<br/>'),
17
    ]);
18
  return markdownTable([
19
    isCN ? ['最近新增', '插件描述'] : ['Recent Submits', 'Description'],
20
    ...content,
21
  ]);
22
};
23

24
const runPluginTable = async (lang: string) => {
25
  const data = await fetchPluginIndex(lang);
26
  const md = readReadme(lang);
27
  const mdTable = genPluginTable(data, lang);
28
  const newMd = updateReadme(
29
    PLUGIN_SPLIT,
30
    md,
31
    [mdTable, `> 📊 Total plugins: ${genLink(`<kbd>**${data.length}**</kbd>`, PLUGIN_REPO)}`].join(
32
      '\n\n',
33
    ),
34
  );
35
  writeReadme(newMd, lang);
36
  consola.success('Sync plugin index success!');
37
};
38

39
export default async () => {
40
  await runPluginTable('en-US');
41
  await runPluginTable('zh-CN');
42
};
43

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.