| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- 'use strict'
 
- const crypto = require('crypto')
 
- const path = require('path')
 
- const qs = require('querystring')
 
- const _ = require('lodash')
 
- module.exports = {
 
-   /**
 
-    * Parse raw url path and make it safe
 
-    *
 
-    * @param      {String}  urlPath  The url path
 
-    * @return     {String}  Safe entry path
 
-    */
 
-   parsePath (urlPath) {
 
-     urlPath = qs.unescape(urlPath)
 
-     let wlist = new RegExp('[^a-z0-9' + appdata.regex.cjk + appdata.regex.arabic + '/-]', 'g')
 
-     urlPath = _.toLower(urlPath).replace(wlist, '')
 
-     if (urlPath === '/') {
 
-       urlPath = 'home'
 
-     }
 
-     let urlParts = _.filter(_.split(urlPath, '/'), (p) => { return !_.isEmpty(p) })
 
-     return _.join(urlParts, '/')
 
-   },
 
-   /**
 
-    * Gets the full original path of a document.
 
-    *
 
-    * @param      {String}  entryPath  The entry path
 
-    * @return     {String}  The full path.
 
-    */
 
-   getFullPath (entryPath) {
 
-     return path.join(appdata.repoPath, entryPath + '.md')
 
-   },
 
-   /**
 
-    * Gets the full cache path of a document.
 
-    *
 
-    * @param      {String}    entryPath  The entry path
 
-    * @return     {String}  The full cache path.
 
-    */
 
-   getCachePath (entryPath) {
 
-     return path.join(appdata.cachePath, crypto.createHash('md5').update(entryPath).digest('hex') + '.json')
 
-   },
 
-   /**
 
-    * Gets the entry path from full path.
 
-    *
 
-    * @param      {String}  fullPath  The full path
 
-    * @return     {String}  The entry path
 
-    */
 
-   getEntryPathFromFullPath (fullPath) {
 
-     let absRepoPath = path.resolve(ROOTPATH, appdata.repoPath)
 
-     return _.chain(fullPath).replace(absRepoPath, '').replace('.md', '').replace(new RegExp('\\\\', 'g'), '/').value()
 
-   }
 
- }
 
 
  |