articles-loader
Advanced tools
+5
-4
@@ -56,5 +56,6 @@ 'use strict'; | ||
| var category = parsedMarkdown.meta.category; | ||
| var fileKey = '/' + filePath.split('/').slice(-4).join('/'); | ||
| mds[filePath] = { | ||
| key: filePath, | ||
| mds[fileKey] = { | ||
| key: fileKey, | ||
| title: parsedMarkdown.meta.title, | ||
@@ -68,5 +69,5 @@ summary: parsedMarkdown.meta.summary, | ||
| concat(categories)(category)(filePath); | ||
| concat(categories)(category)(fileKey); | ||
| R.forEach(function (key) { | ||
| return concat(tags)(key)(filePath); | ||
| return concat(tags)(key)(fileKey); | ||
| }, parsedMarkdown.meta.tags); | ||
@@ -73,0 +74,0 @@ |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/index.js"],"names":["fs","require","path","R","sourceHandler","scheduler","defaultRoot","resolve","process","cwd","concat","obj","key","union","value","articlesLoader","cacheable","callback","async","loaderOptions","query","root","mds","categories","tags","pickedPromises","markdown","traverse","content","readFileSync","filePath","toString","push","queue","err","result","parsedMarkdown","JSON","parse","category","meta","title","summary","date","split","slice","join","forEach","done","mdsArray","sortBy","compose","Date","getTime","prop","values","reverse","all","then","module","exports"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Created by Zhengfeng.Yao on 2017/12/28.\n */\nconst fs = require('fs');\nconst path = require('path');\nconst R = require('ramda');\nconst sourceHandler = require('./utils/source-handler');\nconst scheduler = require('./utils/scheduler');\n// const runTask = require('./utils/runTask');\n\nconst defaultRoot = path.resolve(process.cwd(), 'articles');\n\nconst concat = obj => key => value => obj[key] = R.union(obj[key], [value]);\n\nfunction articlesLoader() {\n if (this.cacheable) {\n this.cacheable();\n }\n\n const callback = this.async();\n const loaderOptions = this.query;\n const root = loaderOptions.root || defaultRoot;\n // const root = path.resolve(process.cwd(), '../../blog/articles');\n const mds = {};\n const categories = {};\n const tags = {};\n const pickedPromises = [];\n\n const markdown = sourceHandler.traverse(root, filePath => {\n const content = fs.readFileSync(filePath).toString();\n pickedPromises.push(new Promise(resolve => {\n scheduler.queue({\n filePath,\n content,\n callback(err, result) {\n const parsedMarkdown = JSON.parse(result);\n const category = parsedMarkdown.meta.category;\n\n mds[filePath] = {\n key: filePath,\n title: parsedMarkdown.meta.title,\n summary: parsedMarkdown.meta.summary,\n content: parsedMarkdown.content,\n category,\n tags: parsedMarkdown.meta.tags,\n date: filePath.split('/').slice(-4, -1).join('-')\n };\n\n concat(categories)(category)(filePath);\n R.forEach(key => concat(tags)(key)(filePath), parsedMarkdown.meta.tags);\n\n resolve();\n }\n });\n }));\n // 调试时使用以下代码\n // runTask({\n // filePath,\n // content,\n // callback(err, result) {\n // const parsedMarkdown = JSON.parse(result);\n // mds[filePath] = {\n // title: parsedMarkdown.meta.title,\n // summary: parsedMarkdown.meta.summary,\n // content: parsedMarkdown.content\n // };\n // const category = parsedMarkdown.meta.category;\n //\n // concat(categories)(category)(filePath);\n // R.forEach(key => concat(tags)(key)(filePath), parsedMarkdown.meta.tags);\n // }\n // });\n });\n\n function done() {\n const mdsArray = R.sortBy(R.compose((date) => new Date(date).getTime(), R.prop('date')))(R.values(mds)).reverse();\n callback(\n null,\n 'module.exports = {' +\n `\\n dates: ${JSON.stringify(markdown)},` +\n `\\n mds: ${JSON.stringify(mds)},` +\n `\\n mdsArray: ${JSON.stringify(mdsArray)},` +\n `\\n categories: ${JSON.stringify(categories)},` +\n `\\n tags: ${JSON.stringify(tags)}` +\n '\\n};'\n );\n }\n\n Promise.all(pickedPromises).then(done);\n // 调试时使用以下代码\n // done();\n}\n\n// articlesLoader();\n\nmodule.exports = articlesLoader;\n"]} | ||
| {"version":3,"sources":["../src/index.js"],"names":["fs","require","path","R","sourceHandler","scheduler","defaultRoot","resolve","process","cwd","concat","obj","key","union","value","articlesLoader","cacheable","callback","async","loaderOptions","query","root","mds","categories","tags","pickedPromises","markdown","traverse","content","readFileSync","filePath","toString","push","queue","err","result","parsedMarkdown","JSON","parse","category","meta","fileKey","split","slice","join","title","summary","date","forEach","done","mdsArray","sortBy","compose","Date","getTime","prop","values","reverse","all","then","module","exports"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Created by Zhengfeng.Yao on 2017/12/28.\n */\nconst fs = require('fs');\nconst path = require('path');\nconst R = require('ramda');\nconst sourceHandler = require('./utils/source-handler');\nconst scheduler = require('./utils/scheduler');\n// const runTask = require('./utils/runTask');\n\nconst defaultRoot = path.resolve(process.cwd(), 'articles');\n\nconst concat = obj => key => value => obj[key] = R.union(obj[key], [value]);\n\nfunction articlesLoader() {\n if (this.cacheable) {\n this.cacheable();\n }\n\n const callback = this.async();\n const loaderOptions = this.query;\n const root = loaderOptions.root || defaultRoot;\n // const root = path.resolve(process.cwd(), '../../blog/articles');\n const mds = {};\n const categories = {};\n const tags = {};\n const pickedPromises = [];\n\n const markdown = sourceHandler.traverse(root, filePath => {\n const content = fs.readFileSync(filePath).toString();\n pickedPromises.push(new Promise(resolve => {\n scheduler.queue({\n filePath,\n content,\n callback(err, result) {\n const parsedMarkdown = JSON.parse(result);\n const category = parsedMarkdown.meta.category;\n const fileKey = '/' + filePath.split('/').slice(-4).join('/');\n\n mds[fileKey] = {\n key: fileKey,\n title: parsedMarkdown.meta.title,\n summary: parsedMarkdown.meta.summary,\n content: parsedMarkdown.content,\n category,\n tags: parsedMarkdown.meta.tags,\n date: filePath.split('/').slice(-4, -1).join('-')\n };\n\n concat(categories)(category)(fileKey);\n R.forEach(key => concat(tags)(key)(fileKey), parsedMarkdown.meta.tags);\n\n resolve();\n }\n });\n }));\n // 调试时使用以下代码\n // runTask({\n // filePath,\n // content,\n // callback(err, result) {\n // const parsedMarkdown = JSON.parse(result);\n // mds[filePath] = {\n // title: parsedMarkdown.meta.title,\n // summary: parsedMarkdown.meta.summary,\n // content: parsedMarkdown.content\n // };\n // const category = parsedMarkdown.meta.category;\n //\n // concat(categories)(category)(filePath);\n // R.forEach(key => concat(tags)(key)(filePath), parsedMarkdown.meta.tags);\n // }\n // });\n });\n\n function done() {\n const mdsArray = R.sortBy(R.compose((date) => new Date(date).getTime(), R.prop('date')))(R.values(mds)).reverse();\n callback(\n null,\n 'module.exports = {' +\n `\\n dates: ${JSON.stringify(markdown)},` +\n `\\n mds: ${JSON.stringify(mds)},` +\n `\\n mdsArray: ${JSON.stringify(mdsArray)},` +\n `\\n categories: ${JSON.stringify(categories)},` +\n `\\n tags: ${JSON.stringify(tags)}` +\n '\\n};'\n );\n }\n\n Promise.all(pickedPromises).then(done);\n // 调试时使用以下代码\n // done();\n}\n\n// articlesLoader();\n\nmodule.exports = articlesLoader;\n"]} |
+1
-1
| { | ||
| "name": "articles-loader", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "description": "博客文章markdown文件的webpack loader,用于收集文章", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
89090
0.29%239
0.42%