http-markup-server
Advanced tools
Comparing version 0.0.2 to 0.0.3
@@ -5,4 +5,4 @@ #!/usr/bin/env node | ||
* | ||
* Author: Viacheslav Lotsmanov | ||
* License: GNU/GPLv3 by Free Software Foundation | ||
* Author: Viacheslav Lotsmanov <lotsmanov89@gmail.com> | ||
* License: GPLv3 | ||
* https://github.com/unclechu/node-http-markup-server/blob/master/LICENSE | ||
@@ -19,3 +19,3 @@ */ | ||
var config = JSON.parse( fs.readFileSync('http-markup-server.config.json') ); | ||
var config = JSON.parse(fs.readFileSync('http-markup-server.config.json')); | ||
@@ -28,52 +28,31 @@ var port = config.port; | ||
// parsing command-line arguments | ||
process.argv.slice(2).forEach(function (arg) { | ||
if (/^--port=/.test(arg)) { | ||
port = arg.substr('--port='.length); | ||
} else if (/^--host=/.test(arg)) { | ||
host = arg.substr('--host='.length); | ||
} else if (/^--browse=/.test(arg)) { | ||
openInBrowser = arg.substr('--browse='.length).toLowerCase(); | ||
if (openInBrowser == 'yes' || openInBrowser == 'y' || openInBrowser == '1') { | ||
if (~['yes', 'y', '1'].indexOf(openInBrowser)) { | ||
openInBrowser = true; | ||
} else if (openInBrowser == 'no' || openInBrowser == 'n' || openInBrowser == '0') { | ||
} else if (~['no', 'n', '0'].indexOf(openInBrowser)) { | ||
openInBrowser = false; | ||
} | ||
} else { | ||
throw new Error('Unknown argument "'+ arg +'"'); | ||
} | ||
}); | ||
app.configure(function () { | ||
config.static.forEach(function (val) { | ||
config.static.forEach(function (val) { | ||
app.use('/' + val, express.static(val)); | ||
app.use('/' + val, express.static(val)); | ||
if (config.favicon && config.favicon === 'string') { | ||
app.use(express.favicon( config.favicon )); | ||
} else if (config.favicon) { | ||
app.use(express.favicon('favicon.ico')); | ||
} | ||
}); | ||
if (config.favicon && config.favicon === 'string') { | ||
app.use(express.favicon( config.favicon )); | ||
} else if (config.favicon) { | ||
app.use(express.favicon('favicon.ico')); | ||
} | ||
}); | ||
@@ -87,3 +66,2 @@ | ||
app.get('*', function (req, res) { | ||
var fullUrl = url.resolve('http://' + req.headers.host, req.url); | ||
@@ -99,3 +77,2 @@ var location = url.parse(fullUrl); | ||
if (pathname.substr(-1) === '/') { | ||
curTplFilename = indexFiles.shift(); | ||
@@ -105,19 +82,12 @@ tpl = path.join(pathname, curTplFilename); | ||
dir = true; | ||
} else { | ||
if (path.extname(pathname) === '') { | ||
res.send('403 Forbidden', 403); | ||
res.status(403).send('403 Forbidden'); | ||
if (config.security_log) console.warn('Hacking attempt!', req); | ||
return; | ||
} else { | ||
var found = false; | ||
config.allowable_extensions.forEach(function (ext) { | ||
if (path.extname(pathname) === ext) { | ||
found = true; | ||
@@ -127,17 +97,11 @@ curTplFilename = path.basename(pathname); | ||
if (tpl.charAt(0) === '/') tpl = tpl.substr(1); | ||
} | ||
}); | ||
if (!found) { | ||
res.send('403 Forbidden', 403); | ||
res.status(403).send('403 Forbidden'); | ||
if (config.security_log) console.warn('Hacking attempt!', req); | ||
return; | ||
} | ||
} | ||
} | ||
@@ -159,5 +123,3 @@ | ||
function tryRender() { | ||
app.render(tpl, { | ||
RELATIVE_ROOT: relativeRoot, // relative path to root | ||
@@ -167,3 +129,2 @@ location: location, | ||
curNavPos: function curNavPos(withIndexPage) { | ||
if (withIndexPage === undefined) withIndexPage = true; | ||
@@ -176,18 +137,11 @@ withIndexPage = withIndexPage ? true : false; | ||
if (res.substr(-filename.length) === filename) { | ||
res = res.slice(0, -filename.length); | ||
} | ||
return res; | ||
}, | ||
}, function (err, html) { | ||
if (err) { | ||
if (err.toString().search(/failed to lookup view/i) !== -1) { | ||
if (dir && indexFiles.length > 0) { | ||
curTplFilename = indexFiles.shift(); | ||
@@ -198,17 +152,18 @@ tpl = path.join(pathname, curTplFilename); | ||
return; | ||
} else { | ||
res.status(404).send('404 Not Found'); | ||
res.send('404 Not Found', 404); | ||
if (config.security_log) console.warn('404 status.', req); | ||
if (config.security_log) { | ||
console.warn('404 status.', req); | ||
} | ||
return; | ||
} | ||
} else { | ||
res | ||
.status(500) | ||
.send('500 Internal Server Error\n' + err.toString()); | ||
res.send('500 Internal Server Error\n' + err.toString(), 500); | ||
console.error(err); | ||
return; | ||
} | ||
@@ -218,28 +173,22 @@ } | ||
res.send(html); | ||
}); | ||
} | ||
} tryRender(); | ||
tryRender(); | ||
}); | ||
app.listen(port, host, function () { | ||
var URL = 'http://'; | ||
if (host) { | ||
console.log('Listening on %s:%d', host, port); | ||
URL += host; | ||
} else { | ||
console.log('Listening on *:%d', port); | ||
URL += '127.0.0.1'; | ||
} | ||
if (port !== 80) URL += ':' + port; | ||
if (openInBrowser) { | ||
spawn('xdg-open', [URL], { stdio: 'ignore' }) | ||
@@ -249,7 +198,3 @@ .on('error', function (err) { | ||
}); | ||
} | ||
}); | ||
// vim: set ts=4 sw=4 et : |
{ | ||
"name": "http-markup-server", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "HTTP-server for markup (using express framework and ejs template engine)", | ||
"dependencies": { | ||
"express": "~3.5.1", | ||
"ejs": "~1.0.0" | ||
"express": "^4.16.3", | ||
"ejs": "^2.6.1" | ||
}, | ||
@@ -12,5 +12,2 @@ "engines": { | ||
}, | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1" | ||
}, | ||
"repository": { | ||
@@ -38,9 +35,7 @@ "type": "git", | ||
"main": "bin/http-markup-server.js", | ||
"author": { | ||
"name": "Viacheslav Lotsmanov" | ||
}, | ||
"author": "Viacheslav Lotsmanov <lotsmanov89@gmail.com>", | ||
"homepage": "https://github.com/unclechu/node-http-markup-server", | ||
"licenses": [ | ||
{ | ||
"type": "GNU/GPLv3 by Free Software Foundation", | ||
"type": "GPLv3", | ||
"url": "https://github.com/unclechu/node-http-markup-server/blob/master/LICENSE" | ||
@@ -47,0 +42,0 @@ } |
Node.JS HTTP Markup Server | ||
========================== | ||
HTTP-server for markup (using [express](http://expressjs.com/) framework and [ejs](http://embeddedjs.com/) template engine) | ||
HTTP-server for markup (using [express](http://expressjs.com/) framework and | ||
[ejs](http://embeddedjs.com/) template engine) | ||
[![NPM](https://nodei.co/npm/http-markup-server.png)](https://nodei.co/npm/http-markup-server/) | ||
**WARNING!** This is a dead project. | ||
Any updates usually is just for supressing vulnerability alerts. | ||
Install | ||
======= | ||
```shell | ||
# npm install -g http-markup-server | ||
```bash | ||
npm install -g http-markup-server | ||
``` | ||
@@ -18,5 +22,8 @@ | ||
Copy [config file (http-markup-server.config.json)](./http-markup-server.config.json) to your markup directory and start the server: | ||
```shell | ||
$ http-markup-server | ||
Copy | ||
[config file (http-markup-server.config.json)](http-markup-server.config.json) | ||
to your markup directory and start the server: | ||
```bash | ||
http-markup-server | ||
``` | ||
@@ -27,2 +34,2 @@ | ||
[GNU/GPLv3 by Free Software Foundation](./LICENSE) | ||
[GPLv3](LICENSE) |
Sorry, the diff of this file is not supported yet
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
42908
165
1
34
6
+ Addedaccepts@1.3.8(transitive)
+ Addedarray-flatten@1.1.1(transitive)
+ Addedbody-parser@1.20.3(transitive)
+ Addedbytes@3.1.2(transitive)
+ Addedcall-bind-apply-helpers@1.0.2(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedcontent-disposition@0.5.4(transitive)
+ Addedcontent-type@1.0.5(transitive)
+ Addedcookie@0.7.1(transitive)
+ Addedcookie-signature@1.0.6(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddepd@2.0.0(transitive)
+ Addeddestroy@1.2.0(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedee-first@1.1.1(transitive)
+ Addedejs@2.7.4(transitive)
+ Addedencodeurl@1.0.22.0.0(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedescape-html@1.0.3(transitive)
+ Addedetag@1.8.1(transitive)
+ Addedexpress@4.21.2(transitive)
+ Addedfinalhandler@1.3.1(transitive)
+ Addedforwarded@0.2.0(transitive)
+ Addedfresh@0.5.2(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.2.7(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhttp-errors@2.0.0(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedipaddr.js@1.9.1(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedmedia-typer@0.3.0(transitive)
+ Addedmerge-descriptors@1.0.3(transitive)
+ Addedmethods@1.1.2(transitive)
+ Addedmime@1.6.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedms@2.0.02.1.3(transitive)
+ Addednegotiator@0.6.3(transitive)
+ Addedobject-inspect@1.13.4(transitive)
+ Addedon-finished@2.4.1(transitive)
+ Addedparseurl@1.3.3(transitive)
+ Addedpath-to-regexp@0.1.12(transitive)
+ Addedproxy-addr@2.0.7(transitive)
+ Addedqs@6.13.0(transitive)
+ Addedrange-parser@1.2.1(transitive)
+ Addedraw-body@2.5.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsend@0.19.0(transitive)
+ Addedserve-static@1.16.2(transitive)
+ Addedsetprototypeof@1.2.0(transitive)
+ Addedside-channel@1.1.0(transitive)
+ Addedside-channel-list@1.0.0(transitive)
+ Addedside-channel-map@1.0.1(transitive)
+ Addedside-channel-weakmap@1.0.2(transitive)
+ Addedstatuses@2.0.1(transitive)
+ Addedtoidentifier@1.0.1(transitive)
+ Addedtype-is@1.6.18(transitive)
+ Addedunpipe@1.0.0(transitive)
+ Addedutils-merge@1.0.1(transitive)
+ Addedvary@1.1.2(transitive)
- Removedbasic-auth-connect@1.0.0(transitive)
- Removedbatch@0.5.0(transitive)
- Removedbuffer-crc32@0.2.1(transitive)
- Removedbytes@0.2.10.3.0(transitive)
- Removedcommander@1.3.2(transitive)
- Removedcompressible@1.0.0(transitive)
- Removedcompression@1.0.0(transitive)
- Removedconnect@2.14.5(transitive)
- Removedconnect-timeout@1.0.0(transitive)
- Removedcookie@0.1.00.1.2(transitive)
- Removedcookie-parser@1.0.1(transitive)
- Removedcookie-signature@1.0.3(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removedcsurf@1.1.0(transitive)
- Removeddebug@0.7.40.8.00.8.1(transitive)
- Removedejs@1.0.0(transitive)
- Removederrorhandler@1.0.0(transitive)
- Removedexpress@3.5.3(transitive)
- Removedexpress-session@1.0.2(transitive)
- Removedfresh@0.2.2(transitive)
- Removedisarray@0.0.1(transitive)
- Removedkeypress@0.1.0(transitive)
- Removedmerge-descriptors@0.0.2(transitive)
- Removedmethod-override@1.0.0(transitive)
- Removedmethods@0.1.0(transitive)
- Removedmime@1.2.11(transitive)
- Removedmkdirp@0.4.0(transitive)
- Removedmorgan@1.0.0(transitive)
- Removedmultiparty@2.2.0(transitive)
- Removednegotiator@0.3.00.4.2(transitive)
- Removedparseurl@1.0.1(transitive)
- Removedpause@0.0.1(transitive)
- Removedqs@0.6.6(transitive)
- Removedrange-parser@1.0.0(transitive)
- Removedraw-body@1.1.4(transitive)
- Removedreadable-stream@1.1.14(transitive)
- Removedresponse-time@1.0.0(transitive)
- Removedscmp@0.0.3(transitive)
- Removedsend@0.3.0(transitive)
- Removedserve-index@1.0.1(transitive)
- Removedserve-static@1.1.0(transitive)
- Removedsetimmediate@1.0.1(transitive)
- Removedstatic-favicon@1.0.2(transitive)
- Removedstream-counter@0.2.0(transitive)
- Removedstring_decoder@0.10.31(transitive)
- Removeduid2@0.0.30.0.4(transitive)
- Removedutils-merge@1.0.0(transitive)
- Removedvhost@1.0.0(transitive)
Updatedejs@^2.6.1
Updatedexpress@^4.16.3