From da0530d37ad2f2f7c1edd8ee4dc354180d0c6cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=93=E5=8F=91=E5=8F=97=E9=95=BF=E7=94=9F?= Date: Mon, 1 Jul 2019 14:48:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E5=88=B6=E6=96=87=E7=AB=A0=E5=86=85?= =?UTF-8?q?=E5=AE=B9xml=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 8 +---- package.json | 2 +- scripts/generator.js | 23 ++++++++++++++ templates/articles.xml | 30 +++++++++++++++++++ sitemap_template.xml => templates/sitemap.xml | 0 yarn.lock | 10 +------ 6 files changed, 56 insertions(+), 17 deletions(-) create mode 100644 scripts/generator.js create mode 100644 templates/articles.xml rename sitemap_template.xml => templates/sitemap.xml (100%) diff --git a/_config.yml b/_config.yml index c7cbb3f..8f27c17 100644 --- a/_config.yml +++ b/_config.yml @@ -101,7 +101,7 @@ ICP: 鲁ICP备19028444号 # 站点地图 sitemap: path: sitemap.xml - template: ./sitemap_template.xml + template: ./templates/sitemap.xml baidusitemap: path: baidusitemap.xml @@ -125,9 +125,3 @@ jsonContent: excerpt: false categories: true tags: true - -# hexo-generator-search -search: - path: search.xml - field: post - content: true diff --git a/package.json b/package.json index 6997562..c69f362 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ "hexo-generator-feed": "^1.2.2", "hexo-generator-index": "^0.2.1", "hexo-generator-json-content": "^4.1.3", - "hexo-generator-search": "^2.4.0", "hexo-generator-sitemap": "^1.2.0", "hexo-generator-tag": "^0.2.0", "hexo-renderer-ejs": "^0.3.1", @@ -31,6 +30,7 @@ "gulp-htmlclean": "^2.7.22", "gulp-htmlmin": "^5.0.1", "gulp-plumber": "^1.2.1", + "nunjucks": "^3.2.0", "optimist": "^0.6.1" } } diff --git a/scripts/generator.js b/scripts/generator.js new file mode 100644 index 0000000..09abb18 --- /dev/null +++ b/scripts/generator.js @@ -0,0 +1,23 @@ +const nunjucks = require('nunjucks') +const path = require('path') +const fs = require('fs') + +const env = new nunjucks.Environment() +env.addFilter('noControlChars', function(str) { + return str && str.replace(/[\x00-\x1F\x7F]/g, '') +}) + +const searchTmplSrc = path.join(__dirname, '../templates/articles.xml') + +hexo.extend.generator.register('xml', function(locals){ + const searchTmpl = nunjucks.compile(fs.readFileSync(searchTmplSrc, 'utf8'), env) + const posts = locals.posts.sort('-date'); + const xmlData = searchTmpl.render({ + posts: posts, + root: this.config.root + }) + return { + path: 'articles.xml', + data: xmlData + } +}) \ No newline at end of file diff --git a/templates/articles.xml b/templates/articles.xml new file mode 100644 index 0000000..6556b8c --- /dev/null +++ b/templates/articles.xml @@ -0,0 +1,30 @@ + + +{% for post in posts.toArray() %} + {% if post.indexing == undefined or post.indexing %} + + {{ post.title }} + + {{ post.path }} + {% if post.categories and post.categories.length>0 %} + + {% for cate in post.categories.toArray() %} + {{ cate.name }} + {% endfor %} + + {% endif %} + {% if post.tags and post.tags.length>0 %} + + {% for tag in post.tags.toArray() %} + {{ tag.name }} + {% endfor %} + + {% endif %} + {% if post.date %} + {{ +post.date }} + {% endif %} + + + {% endif %} +{% endfor %} + diff --git a/sitemap_template.xml b/templates/sitemap.xml similarity index 100% rename from sitemap_template.xml rename to templates/sitemap.xml diff --git a/yarn.lock b/yarn.lock index 7322cef..7ba3674 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1514,14 +1514,6 @@ hexo-generator-json-content@^4.1.3: keyword-extractor latest moment latest -hexo-generator-search@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/hexo-generator-search/-/hexo-generator-search-2.4.0.tgz#f5abbbbbe35299f52c2554bb89845d0a4fab6c9b" - integrity sha512-470q6Cpu6xHIPMXN+rQjCQkn/ii4e8XJRBXCmKs+B1jGQNrT7K3geqfyd5pqGiGi6bh5yY+mNqwGw5r2sZZtzA== - dependencies: - nunjucks "^3.0.1" - utils-merge "^1.0.0" - hexo-generator-sitemap@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hexo-generator-sitemap/-/hexo-generator-sitemap-1.2.0.tgz#3018f8d7d1e2e42b3f71a65a7316ffcf583bc3f3" @@ -2481,7 +2473,7 @@ nunjucks@^2.3.0: chokidar "^1.6.0" yargs "^3.32.0" -nunjucks@^3.0.0, nunjucks@^3.0.1, nunjucks@^3.1.2: +nunjucks@^3.0.0, nunjucks@^3.1.2, nunjucks@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.0.tgz#53e95f43c9555e822e8950008a201b1002d49933" dependencies: