Wiki.js 3.0 에서 sitemap 기능을 공식적으로 지원할 예정이라 임시로 사용하는 방법이다.
아래의 방법은 Wiki.js가 설치된 OS 프로젝트 디렉토리 내 assets 접근과 crontab 사용이 가능함을 전제로 한다.
/home/wiki/app
/home/wiki/.scripts/wikijs-sitemap
(empty directory)cd /home/wiki/.scripts/wikijs-sitemap
npm init -y
npm install --save https://github.com/uyu423/sitemap-generator
sitemap-generator
프로젝트가 wiki.js 페이지를 제대로 파싱하지 못하는 이슈가 있다.
프로젝트에서 사용하는cheerio
버전 이슈로 현재 Pull Request로 수정 요청이 진행 중. sitemap-generator#119
해당 프로젝트의cheerio
이 올라갔다면 원본 프로젝트를 사용할 수 있다.npm install sitemap-generator
😎
const SitemapGenerator = require("sitemap-generator");
const service = SitemapGenerator("https://wiki.yowu.dev", {
filepath: "/home/wiki/app/assets/sitemap.xml",
stripQuerystring: true,
priorityMap: [0.5, 0.5, 1.0]
});
service.start();
filepath
와 priorityMap
은 본인 wiki.js 구성에 맞게 변경한다.node index.js
를 실행하면 sitemap-generator
크롤러가 페이지 본문의 <a href>
태그를 재귀적으로 찾아서 sitemap.xml 로 생성한다.crontab
을 사용하여 하루에 한번씩 sitemap.xml 을 갱신해주도록 했다.crontab -e
23 4 * * * node /home/wiki/.scripts/wikijs-sitemap/index.js
sitemap.xml
갱신https://your.wiki.address/_assets/sitemap.xml
주소로 사이트맵을 등록하면 된다.