{"version":3,"sources":["jsdelivr-header.js","/npm/vuepress-theme-indigo-material@1.0.22/index.js"],"names":[],"mappings":"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","file":"/npm/vuepress-theme-indigo-material@1.0.22/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/vuepress-theme-indigo-material@1.0.22/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const path = require('path');\r\nconst moment = require('moment');\r\nconst fs = require('fs');\r\n\r\nmodule.exports = (options, ctx) => ({\r\n  plugins: [\r\n    [\r\n      '@vuepress/last-updated',\r\n      {\r\n        transformer: timestamp => {\r\n          const moment = require('moment');\r\n          moment.locale('zh-CN');\r\n          return moment(timestamp).format(\r\n            'YYYY-MM-DD HH:mm:ss'\r\n          );\r\n        }\r\n      }\r\n    ]\r\n  ],\r\n  enhanceAppFiles: path.resolve(__dirname, 'enhanceApp.js'),\r\n  chainMarkdown(config) {\r\n    config\r\n      .plugin('anchor')\r\n      .tap(([options]) => [\r\n        Object.assign(options, {\r\n          level: [1, 2, 3, 4, 5, 6]\r\n        })\r\n      ]);\r\n  },\r\n  alias: {\r\n    imStyles: path.resolve(__dirname, 'styles'),\r\n    imRouter: path.resolve(__dirname, 'router'),\r\n    imComponents: path.resolve(__dirname, 'components'),\r\n    imData: path.resolve(__dirname, 'data'),\r\n    imUtils: path.resolve(__dirname, 'utils')\r\n  },\r\n  async ready() {\r\n    //生成客户端所需的数据\r\n    //只处理posts文件夹下的文件\r\n    const postsFilter = val =>\r\n      val.path.slice(1, 6) === 'posts';\r\n    //排序函数\r\n    const postsSorter = (prev, next) => {\r\n      const prevTime =\r\n        new Date(prev.frontmatter.date).getTime() ||\r\n        new Date(prev.lastUpdated).getTime() ||\r\n        new Date().getTime();\r\n      const nextTime =\r\n        new Date(next.frontmatter.date).getTime() ||\r\n        new Date(next.lastUpdated).getTime() ||\r\n        new Date().getTime();\r\n      return prevTime - nextTime > 0 ? -1 : 1;\r\n    };\r\n    const { pages } = ctx;\r\n    //格式化 lastUpdated\r\n    function changeDate(dateStr) {\r\n      if (dateStr.length === undefined) {\r\n        let str = JSON.stringify(dateStr, null, 2);\r\n        return str.slice(1, 11) + ' ' + str.slice(12, -6);\r\n      } else {\r\n        return dateStr;\r\n      }\r\n    }\r\n    //进一步个性化 lastUpdated,全部文章页中使用\r\n    function changeTime(dateStr) {\r\n      let str = '';\r\n      str = dateStr.slice(0, 7);\r\n      const arr = str.split('-');\r\n      let result = [\r\n        arr[0] + '-' + arr[1],\r\n        Number(arr[0]) + Number(arr[1])\r\n      ];\r\n      return result;\r\n    }\r\n    //开始格式化和排序\r\n    const posts = pages.filter(postsFilter);\r\n    posts.sort(postsSorter);\r\n\r\n    //存放最终数据的变量\r\n    let archived = [];\r\n    let tagsList = {};\r\n    let poList = [];\r\n    let search = [];\r\n\r\n    posts.forEach((val, index) => {\r\n      //遍历posts目录生成包含所有文章信息的 archived\r\n      let page = {};\r\n      let sear = {};\r\n      let {\r\n        excerpt,\r\n        lastUpdated,\r\n        path,\r\n        _strippedContent\r\n      } = val;\r\n      let { tags, title } = val.frontmatter;\r\n      if (_strippedContent) {\r\n        _strippedContent = _strippedContent\r\n          .replace(/[\\n\\r]/g, ' ')\r\n          .replace(/\\s+/, ' ');\r\n      }\r\n      if (_strippedContent) {\r\n        excerpt =\r\n          excerpt ||\r\n          (_strippedContent.slice(0, 200)\r\n            ? _strippedContent.slice(0, 200) + '......'\r\n            : false) ||\r\n          '';\r\n        excerpt = excerpt.replace(/#/g, '');\r\n      } else {\r\n        excerpt = '';\r\n      }\r\n\r\n      lastUpdated =\r\n        val.frontmatter.date ||\r\n        lastUpdated ||\r\n        moment().format('YYYY-MM-DD HH:mm:ss');\r\n      lastUpdated = changeDate(lastUpdated);\r\n      tags = tags || '';\r\n      title = title || '你忘记写title字段了';\r\n\r\n      page.excerpt = excerpt;\r\n      page.tags = tags;\r\n      page.id = index;\r\n      page.title = title;\r\n      page.lastUpdated = lastUpdated;\r\n      page.path = path;\r\n\r\n      sear.title = title;\r\n      sear.path = path;\r\n      sear.strippedContent = _strippedContent;\r\n\r\n      archived.push(page);\r\n      search.push(sear);\r\n\r\n      //生成标签页的数据\r\n      //剔除不需要的数据\r\n      const t = {};\r\n      t.lastUpdated = lastUpdated;\r\n      t.tags = tags;\r\n      t.id = index;\r\n      t.title = title;\r\n      t.path = path;\r\n\r\n      if (!tags) {\r\n        if (!tagsList['未分类']) {\r\n          tagsList['未分类'] = [{ name: '未分类' }];\r\n        }\r\n        tagsList['未分类'].push(t);\r\n      } else {\r\n        tags.forEach(tag => {\r\n          if (tag === undefined) {\r\n            if (!tagsList['未分类']) {\r\n              tagsList['未分类'] = [{ name: '未分类' }];\r\n            }\r\n            tagsList['未分类'].push(t);\r\n          }\r\n          if (!tagsList[tag]) {\r\n            tagsList[tag] = [{ name: tag }];\r\n          }\r\n          tagsList[tag].push(t);\r\n        });\r\n      }\r\n    });\r\n\r\n    //生成全部文章页所需要的数据\r\n    let index = 0;\r\n    archived.forEach((val, i) => {\r\n      let result1 = changeTime(val.lastUpdated);\r\n      if (archived.length === 1) {\r\n        poList[0] = [result1[0]];\r\n        return poList[0].push(val);\r\n      }\r\n      if (i + 1 !== archived.length) {\r\n        var result2 = changeTime(\r\n          archived[i + 1].lastUpdated\r\n        );\r\n      } else {\r\n        var result2 = changeTime(\r\n          archived[i - 1].lastUpdated\r\n        );\r\n      }\r\n      if (!poList[index]) {\r\n        poList[index] = [result1[0]];\r\n      }\r\n      if (!poList[index]) {\r\n        poList[index] = [result2[0]];\r\n      }\r\n      poList[index].push(val);\r\n      if (result1[1] !== result2[1]) {\r\n        index++;\r\n      }\r\n    });\r\n\r\n    const dataPath = path.resolve(__dirname, 'data');\r\n    console.log('正在写入本地数据,加快在客户端的速度~~');\r\n\r\n    fs.writeFile(\r\n      `${dataPath}/content.js`,\r\n      `export default ${JSON.stringify(\r\n        archived,\r\n        null,\r\n        2\r\n      )};`,\r\n      error => {\r\n        if (error)\r\n          return console.log(\r\n            '写入首页content文件失败,原因是' + error.message\r\n          );\r\n        console.log('写入首页content文件成功');\r\n      }\r\n    );\r\n\r\n    fs.writeFile(\r\n      `${dataPath}/tagsList.js`,\r\n      `export default ${JSON.stringify(\r\n        tagsList,\r\n        null,\r\n        2\r\n      )};`,\r\n      error => {\r\n        if (error)\r\n          return console.log(\r\n            '写入标签页tagsList文件失败,原因是' +\r\n              error.message\r\n          );\r\n        console.log('写入标签页tagsList文件成功');\r\n      }\r\n    );\r\n\r\n    fs.writeFile(\r\n      `${dataPath}/search.js`,\r\n      `export default ${JSON.stringify(search, null, 2)};`,\r\n      error => {\r\n        if (error)\r\n          return console.log(\r\n            '写入搜索search文件失败,原因是' + error.message\r\n          );\r\n        console.log('写入搜索search文件成功');\r\n      }\r\n    );\r\n\r\n    fs.writeFile(\r\n      `${dataPath}/poList.js`,\r\n      `export default ${JSON.stringify(poList, null, 2)};`,\r\n      error => {\r\n        if (error)\r\n          return console.log(\r\n            '写入归档页poList文件失败,原因是' +\r\n              error.message\r\n          );\r\n        console.log('写入归档页poList文件成功');\r\n      }\r\n    );\r\n  }\r\n});\r\n"]}