summaryrefslogtreecommitdiffstats
path: root/lib/utils/location.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils/location.js')
-rw-r--r--lib/utils/location.js139
1 files changed, 0 insertions, 139 deletions
diff --git a/lib/utils/location.js b/lib/utils/location.js
deleted file mode 100644
index 00d8004..0000000
--- a/lib/utils/location.js
+++ /dev/null
@@ -1,139 +0,0 @@
-var url = require('url');
-var path = require('path');
-
-// Is the url an external url
-function isExternal(href) {
- try {
- return Boolean(url.parse(href).protocol) && !isDataURI(href);
- } catch(err) {
- return false;
- }
-}
-
-// Is the url an iniline data-uri
-function isDataURI(href) {
- try {
- return Boolean(url.parse(href).protocol) && (url.parse(href).protocol === 'data:');
- } catch(err) {
- return false;
- }
-}
-
-// Inverse of isExternal
-function isRelative(href) {
- return !isExternal(href);
-}
-
-// Return true if the link is an achor
-function isAnchor(href) {
- try {
- var parsed = url.parse(href);
- return !!(!parsed.protocol && !parsed.path && parsed.hash);
- } catch(err) {
- return false;
- }
-}
-
-// Normalize a path to be a link
-function normalize(s) {
- return path.normalize(s).replace(/\\/g, '/');
-}
-
-/**
- * Flatten a path, it removes the leading "/"
- *
- * @param {String} href
- * @return {String}
- */
-function flatten(href) {
- href = normalize(href);
- if (href[0] == '/') {
- href = normalize(href.slice(1));
- }
-
- return href;
-}
-
-/**
- * Convert a relative path to absolute
- *
- * @param {String} href
- * @param {String} dir: directory parent of the file currently in rendering process
- * @param {String} outdir: directory parent from the html output
- * @return {String}
- */
-function toAbsolute(_href, dir, outdir) {
- if (isExternal(_href) || isDataURI(_href)) {
- return _href;
- }
-
- outdir = outdir == undefined? dir : outdir;
-
- _href = normalize(_href);
- dir = normalize(dir);
- outdir = normalize(outdir);
-
- // Path "_href" inside the base folder
- var hrefInRoot = normalize(path.join(dir, _href));
- if (_href[0] == '/') {
- hrefInRoot = normalize(_href.slice(1));
- }
-
- // Make it relative to output
- _href = path.relative(outdir, hrefInRoot);
-
- // Normalize windows paths
- _href = normalize(_href);
-
- return _href;
-}
-
-/**
- * Convert an absolute path to a relative path for a specific folder (dir)
- * ('test/', 'hello.md') -> '../hello.md'
- *
- * @param {String} dir: current directory
- * @param {String} file: absolute path of file
- * @return {String}
- */
-function relative(dir, file) {
- var isDirectory = file.slice(-1) === '/';
- return normalize(path.relative(dir, file)) + (isDirectory? '/': '');
-}
-
-/**
- * Convert an absolute path to a relative path for a specific folder (dir)
- * ('test/test.md', 'hello.md') -> '../hello.md'
- *
- * @param {String} baseFile: current file
- * @param {String} file: absolute path of file
- * @return {String}
- */
-function relativeForFile(baseFile, file) {
- return relative(path.dirname(baseFile), file);
-}
-
-/**
- * Compare two paths, return true if they are identical
- * ('README.md', './README.md') -> true
- *
- * @param {String} p1: first path
- * @param {String} p2: second path
- * @return {Boolean}
- */
-function areIdenticalPaths(p1, p2) {
- return normalize(p1) === normalize(p2);
-}
-
-module.exports = {
- areIdenticalPaths: areIdenticalPaths,
- isDataURI: isDataURI,
- isExternal: isExternal,
- isRelative: isRelative,
- isAnchor: isAnchor,
- normalize: normalize,
- toAbsolute: toAbsolute,
- relative: relative,
- relativeForFile: relativeForFile,
- flatten: flatten
-};