Merge branch 'DIYgod' into pr/evnydd0sf/10593

This commit is contained in:
Tony
2022-08-29 10:13:32 +00:00
29 changed files with 419 additions and 70 deletions
+29
View File
@@ -0,0 +1,29 @@
name: Update meilisearch index
on:
push:
branches:
- master
paths:
- '.github/workflows/scrape.yml'
- 'docs/**'
jobs:
scrape-docs:
runs-on: ubuntu-latest
steps:
- name: Wait for Netlify to finish
run: sleep 3m
- name: Checkout
uses: actions/checkout@v3
- name: Run docs-scraper
env:
HOST_URL: ${{ secrets.MEILISEARCH_HOST_URL }}
API_KEY: ${{ secrets.MEILISEARCH_API_KEY }}
CONFIG_FILE_PATH: ${{ github.workspace }}/scripts/docs-scraper/docs.rsshub.app.json
run: |
docker run -t --rm \
-e MEILISEARCH_HOST_URL=$HOST_URL \
-e MEILISEARCH_API_KEY=$API_KEY \
-v $CONFIG_FILE_PATH:/docs-scraper/config.json \
getmeili/docs-scraper pipenv run ./docs_scraper config.json
+9 -8
View File
@@ -20,6 +20,15 @@ module.exports = {
},
},
'@vuepress/back-to-top': true,
sitemap: {
hostname: 'https://docs.rsshub.app',
},
'vuepress-plugin-meilisearch': {
hostUrl: 'https://meilisearch.rsshub.app',
apiKey: '375c36cd9573a2c1d1e536214158c37120fdd0ba6cd8829f7a848e940cc22245',
indexUid: 'rsshub',
maxSuggestions: 14,
},
},
locales: {
'/': {
@@ -73,14 +82,6 @@ module.exports = {
editLinks: true,
docsDir: 'docs',
smoothScroll: true,
algolia: {
apiKey: '4c5f9a5a2c10e6bec73c0f07dbe356a6',
indexName: 'rsshub',
appId: 'I63CFUQ7XF',
algoliaOptions: {
hitsPerPage: 14,
},
},
locales: {
'/': {
lang: 'zh-CN',
+1 -1
View File
@@ -1247,7 +1247,7 @@ pageClass: routes
### 政务公开
<Route author="LogicJake" example="/mofcom/article/b" path="/mofcom/article/:suffix" :paramsDesc="['支持形如`http://www.mofcom.gov.cn/article/*`的网站,传入 article 之后的后缀']" />
<Route author="LogicJake" example="/gov/mofcom/article/xwfb" path="/gov/mofcom/article/:suffix+" :paramsDesc="['支持形如 `http://www.mofcom.gov.cn/article/*` 的网站,传入 article 之后的后缀,支持多级']" radar="1" rssbud="1"/>
## 中华人民共和国生态环境部
+9
View File
@@ -334,6 +334,15 @@ type 为 all 时,category 参数不支持 cost 和 free
<Route author="brilon Fatpandac" example="/iresearch/report" path="/iresearch/report"/>
### 周度市场观察
<Route author="nczitzk" example="/iresearch/weekly" path="/iresearch/weekly:category?" :paramsDesc="['分类,见下表,默认为全部']">
| 家电行业 | 服装行业 | 美妆行业 | 食品饮料行业 |
| ---- | ---- | ---- | ------ |
</Route>
## 爱 Q 生活网
### 最近更新
+6
View File
@@ -1985,6 +1985,12 @@ category 对应的关键词有
</Route>
## 星島日報
### 即時
<Route author="TonyRL" example="/stheadline/std/realtime/即時" path="/stheadline/std/realtime/:category*" :paramsDesc="['分類路徑,URL 中 `/realtime/` 後的部分,預設為`即時`']" radar ="1" rssbud="1"/>
## 星洲网
### 首页
+4
View File
@@ -2748,6 +2748,10 @@ jsjxy.hbut.edu.cn 证书链不全,自建 RSSHub 可设置环境变量 NODE_TLS
</Route>
### 第一附属医院新闻
<Route author="TonyRL" example="/xjtu/dyyy/index/xsxx" path="/xjtu/dyyy/:path+" :paramsDesc="['栏目路径,支持多级,不包括末尾的`.htm`']" radar="1" rssbud="1"/>
### 第二附属医院新闻
<Route author="nczitzk" example="/xjtu/2yuan/news" path="/xjtu/2yuan/news/:id?" :paramsDesc="['编号,见下表,默认为通知公告']">
+2 -2
View File
@@ -1945,8 +1945,8 @@ router.get('/dhl/:id', lazyloadRouteHandler('./routes/dhl/shipment-tracking'));
// Japanpost
router.get('/japanpost/track/:reqCode/:locale?', lazyloadRouteHandler('./routes/japanpost/track'));
// 中华人民共和国商务部
router.get('/mofcom/article/:suffix', lazyloadRouteHandler('./routes/mofcom/article'));
// 中华人民共和国商务部 migrated to v2
// router.get('/mofcom/article/:suffix', lazyloadRouteHandler('./routes/mofcom/article'));
// 品玩
router.get('/pingwest/status', lazyloadRouteHandler('./routes/pingwest/status'));
-54
View File
@@ -1,54 +0,0 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
const { resolve } = require('url');
const host = 'http://www.mofcom.gov.cn';
module.exports = async (ctx) => {
const suffix = ctx.params.suffix;
const url = resolve('http://www.mofcom.gov.cn/article/', suffix);
const res = await got.get(url);
const $ = cheerio.load(res.data);
const title = $('head > title').text();
const list = $('.txtList_01 li').get();
const out = await Promise.all(
list.map(async (item) => {
const $ = cheerio.load(item);
const title = $('a').attr('title');
const sub_url = $('a').attr('href');
const itemUrl = resolve(host, sub_url);
const cache = await ctx.cache.get(itemUrl);
if (cache) {
return Promise.resolve(JSON.parse(cache));
}
let responses = await got.get(itemUrl);
const redirect = responses.data.match(/window\.location\.href='(.*)'/);
if (redirect) {
responses = await got.get(redirect[1], {
headers: {
Referer: itemUrl,
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
},
});
}
const $d = cheerio.load(responses.data);
const single = {
title,
link: itemUrl,
description: $d('.art-con').html() || $d('.textlive').html(),
};
ctx.cache.set(itemUrl, JSON.stringify(single));
return Promise.resolve(single);
})
);
ctx.state.data = {
title,
link: url,
item: out,
};
};
+1
View File
@@ -22,6 +22,7 @@ module.exports = {
'/miit/wjgs': ['Yoge-Code'],
'/miit/zcjd': ['Yoge-Code'],
'/moe/:type': ['Crawler995'],
'/mofcom/article/:suffix+': ['LogicJake'],
'/moj/aac/news/:type?': ['TonyRL'],
'/nifdc/:path+': ['nczitzk'],
'/nmpa/:path+': ['TonyRL'],
+68
View File
@@ -0,0 +1,68 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
const { parseDate } = require('@/utils/parse-date');
const timezone = require('@/utils/timezone');
const host = 'http://www.mofcom.gov.cn';
module.exports = async (ctx) => {
const suffix = ctx.params.suffix;
const url = `http://www.mofcom.gov.cn/article/${suffix}/`;
const { data: res } = await got(url);
const $ = cheerio.load(res);
$('.listline').remove();
const list = $('.txtList_01 li')
.toArray()
.map((item) => {
item = $(item);
const date =
item.find('span').length !== 0
? item
.find('span')
.text()
.match(/((\d{4}-\d{2}-\d{2})(\s\d{2}:\d{2}:\d{2})?)/)[1]
: item
.find('a')
.attr('title')
.match(/(\d{4}年\d{1,2}月\d{1,2})/)[1];
return {
title: item.find('a').attr('title'),
link: host + item.find('a').attr('href'),
pubDate: timezone(parseDate(date, ['YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD', 'YYYY年M月D']), 8),
};
});
await Promise.all(
list.map((item) =>
ctx.cache.tryGet(item.link, async () => {
let responses = await got(item.link);
// xwfb/xwlxfbh || xwfb/xwztfbh
const redirect = responses.data.match(/_cofing1=\{href:"(.*)",type/) || responses.data.match(/window\.location\.href='(.*)'/);
if (redirect) {
responses = await got(redirect[1], {
headers: {
Referer: item.link,
},
});
}
const $ = cheerio.load(responses.data);
const iframe = $('.art-con iframe').attr('src');
if ($('.art-con iframe').attr('src')) {
const { data: res } = await got(iframe);
item.description = cheerio.load(res)('tbody').html();
} else {
item.description = $('.art-con').html() || /* xwfb/xwztfbh */ $('.textlive').html();
}
item.pubDate = $('meta[name="PubDate"]').length ? timezone(parseDate($('meta[name="PubDate"]').attr('content'), 'YYYY-MM-DD HH:mm'), 8) : item.pubDate;
return item;
})
)
);
ctx.state.data = {
title: $('head > title').text(),
description: $('meta[name=description]').attr('content'),
link: url,
item: list,
};
};
+11
View File
@@ -526,6 +526,17 @@ module.exports = {
},
],
},
'mofcom.gov.cn': {
_name: '中华人民共和国商务部',
'.': [
{
title: '新闻发布',
docs: 'https://docs.rsshub.app/government.html#zhong-hua-ren-min-gong-he-guo-shang-wu-bu',
source: ['/article/*'],
target: (_, url) => `/gov/mofcom/article/${new URL(url).pathname.replace('/article/', '')}`,
},
],
},
'moj.gov.tw': {
_name: '台灣法務部廉政署',
'www.aac': [
+1
View File
@@ -14,6 +14,7 @@ module.exports = function (router) {
router.get('/miit/wjgs', require('./miit/wjgs'));
router.get('/miit/zcjd', require('./miit/zcjd'));
router.get('/moe/:type', require('./moe/moe'));
router.get('/mofcom/article/:suffix+', require('./mofcom/article'));
router.get('/moj/aac/news/:type?', require('./moj/aac/news'));
router.get(/nifdc\/([\w/-]+)?/, require('./nifdc'));
router.get(/\/nmpa\/([\w][\w/]+)?/, require('./nmpa/generic'));
+1
View File
@@ -1,3 +1,4 @@
module.exports = {
'/report': ['brilon', 'Fatpandac'],
'/weekly/:category?': ['nczitzk'],
};
+7 -1
View File
@@ -4,10 +4,16 @@ module.exports = {
www: [
{
title: '研究报告',
docs: 'https://docs.rsshub.app/journal.html#ieee-xplore',
docs: 'https://docs.rsshub.app/other.html#ai-rui-chan-ye-yan-jiu-bao-gao',
source: ['/report.shtml'],
target: '/iresearch/report',
},
{
title: '周度市场观察',
docs: 'https://docs.rsshub.app/other.html#ai-rui-zhou-du-shi-chang-guan-cha',
source: ['/report.shtml?type=3', ''],
target: '/iresearch/weekly/:category',
},
],
},
};
+1
View File
@@ -1,3 +1,4 @@
module.exports = function (router) {
router.get('/report', require('./report'));
router.get('/weekly/:category?', require('./weekly'));
};
+11
View File
@@ -0,0 +1,11 @@
{{ if cover }}
<img src="{{ cover }}"
{{ /if }}
{{ if content }}
<p>{{ content }}</p>
{{ /if }}
{{ if pages }}
<% for (let i = 1; i <= pages; i++){ %>
<img src="https://pic.iresearch.cn/ireport/{{ id }}/{{ i }}.jpg">
<% } %>
{{ /if }}
+39
View File
@@ -0,0 +1,39 @@
const got = require('@/utils/got');
const { parseDate } = require('@/utils/parse-date');
const { art } = require('@/utils/render');
const path = require('path');
module.exports = async (ctx) => {
const category = ctx.params.category ?? '';
const rootUrl = 'https://www.iresearch.com.cn';
const currentUrl = `${rootUrl}/report.shtml?type=4`;
const apiUrl = `${rootUrl}/api/json/report/ireport.json`;
const response = await got({
method: 'get',
url: apiUrl,
});
const items = JSON.parse(response.data.slice(1))
.slice(0, ctx.query.limit ? parseInt(ctx.query.limit) : 200)
.filter((item) => (category ? item.classname === category : true))
.map((item) => ({
title: item.reportname,
pubDate: parseDate(item.addtime),
link: `${rootUrl}/report/detail?id=${item.id}`,
category: [item.classname].concat(item.keywords.split(',')),
description: art(path.join(__dirname, 'templates/weekly.art'), {
id: item.id,
cover: item.reportpic,
content: item.shortcoutent,
pages: item.PagesCount,
}),
}));
ctx.state.data = {
title: '艾瑞咨询 - 周度市场观察',
link: currentUrl,
item: items,
};
};
+3
View File
@@ -0,0 +1,3 @@
module.exports = {
'/std/realtime/:category*': ['TonyRL'],
};
+13
View File
@@ -0,0 +1,13 @@
module.exports = {
'stheadline.com': {
_name: '星島日報',
std: [
{
title: '即時',
docs: 'https://docs.rsshub.app/traditional-media.html#xing-dao-ri-bao',
source: ['/realtime/*category'],
target: (params) => `/stdheadline/std/realtime/${params.category}`,
},
],
},
};
+3
View File
@@ -0,0 +1,3 @@
module.exports = (router) => {
router.get('/std/realtime/:category*', require('./std/realtime'));
};
+46
View File
@@ -0,0 +1,46 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
const timezone = require('@/utils/timezone');
const baseUrl = 'https://std.stheadline.com';
module.exports = async (ctx) => {
const { category = '即時' } = ctx.params;
const url = `${baseUrl}/realtime/${category}`;
const { data: response } = await got(url);
const $ = cheerio.load(response);
const items = $('.col-md-9 .media-body .h5 a')
.toArray()
.map((item) => {
item = $(item);
return {
title: item.attr('title'),
link: item.attr('href'),
guid: item.attr('href').substring(0, item.attr('href').lastIndexOf('/')),
};
});
await Promise.all(
items.map((item) =>
ctx.cache.tryGet(item.link, async () => {
const { data: response } = await got(item.link);
const $ = cheerio.load(response);
item.description = $('.paragraphs').html();
item.pubDate = timezone(parseDate($('.content .date').text()));
return item;
})
)
);
ctx.state.data = {
title: $('head title').text(),
description: $('meta[name=description]').attr('content'),
image: 'https://std.stheadline.com/dist/images/favicon/icon-512.png',
link: url,
item: items,
};
};
+13 -3
View File
@@ -4,11 +4,21 @@ const { parseDate } = require('@/utils/parse-date');
const timezone = require('@/utils/timezone');
module.exports = async (ctx) => {
const response = await got({
method: 'get',
let data;
const response = await got.extend({ followRedirect: false }).get({
url: `https://trow.cc`,
});
const data = response.data;
if (response.statusCode === 302) {
const response2 = await got.extend({ followRedirect: false }).get({
url: `https://trow.cc`,
headers: {
cookie: response.headers['set-cookie'],
},
});
data = response2.data;
} else {
data = response.data;
}
const $ = cheerio.load(data);
const list = $('#portal_content .borderwrap[style="display:show"]');
+44
View File
@@ -0,0 +1,44 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
const baseUrl = 'http://www.dyyy.xjtu.edu.cn';
module.exports = async (ctx) => {
const { path } = ctx.params;
const response = await got(`${baseUrl}/${path}.htm`);
const $ = cheerio.load(response.data);
const items = $('.list_right_con div li')
.toArray()
.map((item) => {
item = $(item);
return {
title: item.find('a').attr('title'),
link: new URL(item.find('a').attr('href'), response.url).href,
pubDate: parseDate(item.find('.data').text()),
};
});
await Promise.all(
items.map((item) =>
ctx.cache.tryGet(item.link, async () => {
const { data: response } = await got(item.link);
const $ = cheerio.load(response);
item.author = $('.content_source')
.text()
.match(/责任编辑:(.*)\(点击/)[1];
item.description = $('.content_con').html();
return item;
})
)
);
ctx.state.data = {
title: $('head title').text(),
link: `${baseUrl}/${path}.htm`,
item: items,
};
};
+1
View File
@@ -1,6 +1,7 @@
module.exports = {
'/2yuan/news/:id?': ['nczitzk'],
'/dean/:subpath+': ['hoilc'],
'/dyyy/:path+': ['TonyRL'],
'/ee/:id?': ['DylanXie123'],
'/gs/tzgg': ['nczitzk'],
'/international/:subpath+': ['guitaoliu'],
+8
View File
@@ -49,5 +49,13 @@ module.exports = {
target: (params, url) => `/xjtu/std/${new URL(url).toString().match(/\/(\w+)\.htm/)[1]}`,
},
],
'www.dyyy': [
{
title: '第一附属医院新闻',
docs: 'https://docs.rsshub.app/university.html#xi-an-jiao-tong-da-xue',
source: ['/*'],
target: (_, url) => `/xjtu/dyyy${new URL(url).pathname.replace('.htm', '')}`,
},
],
},
};
+1
View File
@@ -1,6 +1,7 @@
module.exports = function (router) {
router.get('/2yuan/news/:id?', require('./2yuan/news'));
router.get('/dean/:subpath+', require('./dean'));
router.get('/dyyy/:path+', require('./dyyy/index'));
router.get('/ee/:id?', require('./ee'));
router.get('/gs/tzgg', require('./gs/tzgg'));
router.get('/international/:subpath+', require('./international'));
+2
View File
@@ -74,6 +74,8 @@
"tosource": "2.0.0-alpha.3",
"unified": "9.2.2",
"vuepress": "1.9.7",
"vuepress-plugin-meilisearch": "0.12.2",
"vuepress-plugin-sitemap": "2.3.1",
"yorkie": "2.0.0"
},
"dependencies": {
+21
View File
@@ -0,0 +1,21 @@
{
"index_uid": "rsshub",
"sitemap_urls": ["https://docs.rsshub.app/sitemap.xml"],
"start_urls": ["https://docs.rsshub.app"],
"selectors": {
"lvl0": {
"selector": ".sidebar-heading.open",
"global": true,
"default_value": "路由"
},
"lvl1": ".theme-default-content h1",
"lvl2": ".theme-default-content h2",
"lvl3": ".theme-default-content h3",
"lvl4": ".theme-default-content h4",
"lvl5": ".theme-default-content h5",
"text": ".theme-default-content p, .docs-content li"
},
"strip_chars": " .,;:#",
"scrap_start_urls": true,
"min_indexed_level": 1
}
+64 -1
View File
@@ -3007,6 +3007,13 @@ autocomplete.js@0.36.0:
dependencies:
immediate "^3.2.3"
autocomplete.js@^0.38.1:
version "0.38.1"
resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.38.1.tgz#9b006c985d996165ebbc62af33f5b4c32d209cc2"
integrity sha512-6pSJzuRMY3pqpozt+SXThl2DmJfma8Bi3SVFbZHS0PW/N72bOUv+Db0jAh2cWOhTsA4X+GNmKvIl8wExJTnN9w==
dependencies:
immediate "^3.2.3"
autoprefixer@^9.5.1:
version "9.8.8"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a"
@@ -4391,7 +4398,7 @@ cross-env@7.0.3:
dependencies:
cross-spawn "^7.0.1"
cross-fetch@3.1.5:
cross-fetch@3.1.5, cross-fetch@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
@@ -5044,6 +5051,16 @@ dns-txt@^2.0.2:
dependencies:
buffer-indexof "^1.0.0"
docs-searchbar.js@^2.1.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/docs-searchbar.js/-/docs-searchbar.js-2.2.0.tgz#e60eb0ee4f67853c41fdf7d3a4ef6ac7ac2c8027"
integrity sha512-rleKMiTkxG14M+6yt3+H8H0w/GKxWsNMinf4+zTVz9aVi04oJ8u37kktTiW3qkpPl9VQ7/i7Yv9wykukMqVxfw==
dependencies:
autocomplete.js "^0.38.1"
meilisearch "^0.27.0"
to-factory "^1.0.0"
zepto "^1.2.0"
docsearch.js@^2.5.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.3.tgz#57cb4600d3b6553c677e7cbbe6a734593e38625d"
@@ -9111,6 +9128,11 @@ lodash.bind@^4.1.4:
resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
integrity sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==
lodash.chunk@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
integrity sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==
lodash.clonedeep@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
@@ -9166,6 +9188,11 @@ lodash.merge@^4.4.0, lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash.padstart@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
integrity sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==
lodash.pick@^4.2.1:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -9558,6 +9585,13 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
meilisearch@^0.27.0:
version "0.27.0"
resolved "https://registry.yarnpkg.com/meilisearch/-/meilisearch-0.27.0.tgz#8bd57ddb77b975f93e054cb977b951c488ece297"
integrity sha512-kZOZFIuSO7c6xRf+Y2/9/h6A9pl0sCl/G44X4KuaSwxGbruOZPhmxbeVEgLHBv4pUFvQ56rNVTA/2d/5GCU1YA==
dependencies:
cross-fetch "^3.1.5"
memory-fs@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -12555,6 +12589,16 @@ sisteransi@^1.0.5:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
sitemap@^3.0.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b"
integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==
dependencies:
lodash.chunk "^4.2.0"
lodash.padstart "^4.6.1"
whatwg-url "^7.0.0"
xmlbuilder "^13.0.0"
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -14145,6 +14189,20 @@ vuepress-plugin-container@^2.0.2:
"@vuepress/shared-utils" "^1.2.0"
markdown-it-container "^2.0.0"
vuepress-plugin-meilisearch@0.12.2:
version "0.12.2"
resolved "https://registry.yarnpkg.com/vuepress-plugin-meilisearch/-/vuepress-plugin-meilisearch-0.12.2.tgz#d130fa77a5f1ca5f8ae09af14e504f21779376d1"
integrity sha512-ug9+puCPySr/wJEnymWqFqbo3xsQfqXog2kFU8RPjrOQ20miQjgPYnF3u/8Pb+QT0s5zHA6ykT8lTBx0ovWsVw==
dependencies:
docs-searchbar.js "^2.1.1"
vuepress-plugin-sitemap@2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-2.3.1.tgz#51298aca77a5de96396fdbd1103e1637dd61ae6a"
integrity sha512-n+8lbukhrKrsI9H/EX0EBgkE1pn85LAQFvQ5dIvrZP4Kz6JxPOPPNTQmZMhahQV1tXbLZQCEN7A1WZH4x+arJQ==
dependencies:
sitemap "^3.0.0"
vuepress-plugin-smooth-scroll@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz#6eff2d4c186cca917cc9f7df2b0af7de7c8c6438"
@@ -14758,6 +14816,11 @@ xml2js@0.4.23, xml2js@^0.4.19:
sax ">=0.6.0"
xmlbuilder "~11.0.0"
xmlbuilder@^13.0.0:
version "13.0.2"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7"
integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==
xmlbuilder@^15.1.1:
version "15.1.1"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"