"title": "Spus", | "title": "Spus", | ||||
"base_url": "http://example.com", | "base_url": "http://example.com", | ||||
"port": 8081, | "port": 8081, | ||||
# PostrgeSQL credentials | |||||
"db": { | "db": { | ||||
"host": "localhost", | "host": "localhost", | ||||
"user": "dbuser", | "user": "dbuser", | ||||
"password": "dbpass", | "password": "dbpass", | ||||
"database": "spus" | "database": "spus" | ||||
}, | }, | ||||
# HTTPS settings | |||||
"use_https": false, | "use_https": false, | ||||
"https": { | "https": { | ||||
"key": "", | "key": "", | ||||
"cert": "" | "cert": "" | ||||
}, | }, | ||||
# Open Web Analytics settings | |||||
"use_owa": false, | |||||
"owa": { | |||||
"base_url": "", | |||||
"site_id": "" | |||||
}, | |||||
# Scrypt settings for password hashing | |||||
"scrypt": { | "scrypt": { | ||||
"maxtime": 1 | "maxtime": 1 | ||||
}, | }, | ||||
# Should we minify resources? | |||||
"minify": true, | "minify": true, | ||||
# Timeout in milliseconds before a session is destroyed | |||||
"session_timeout": 1800000, | "session_timeout": 1800000, | ||||
# Various directories | |||||
"dir": { | "dir": { | ||||
"imgs": "imgs", | "imgs": "imgs", | ||||
"web": "web" | "web": "web" | ||||
}, | }, | ||||
# In debug mode, an uncaught exception will stop the program and display | |||||
# a neat stack trace. | |||||
"debug": false, | "debug": false, | ||||
# To invalidate cache, we add "?$n" to static resource requests | |||||
# (scripts, CSS, etc.), where "$n" is an incrementing number. | |||||
# `max_runs` is how big $n can be before we reset to 0. | |||||
"max_runs": 9999, | "max_runs": 9999, | ||||
# Time in seconds before static content caches are invalidated | |||||
"cache_max_age": 2628000, | "cache_max_age": 2628000, | ||||
# Time in seconds before image caches are invalidated | |||||
"cache_max_age_images": 2628000, | "cache_max_age_images": 2628000, | ||||
# How long time it should take before anonymous images are deleted | |||||
"purge_collections_timeout": "2 days", | "purge_collections_timeout": "2 days", | ||||
# Time in milliseconds between each time we query the database for old | |||||
# anonymous pictures | |||||
"purge_collections_interval": 1800000 | "purge_collections_interval": 1800000 | ||||
} | } |
return minifyHtml(src, { | return minifyHtml(src, { | ||||
removeComments: true, | removeComments: true, | ||||
collapseWhitespace: true, | collapseWhitespace: true, | ||||
minifyJS: true | |||||
}); | }); | ||||
} | } | ||||
var localRegex = new RegExp(regexStr); | var localRegex = new RegExp(regexStr); | ||||
var globalRegex = new RegExp(regexStr, "g"); | var globalRegex = new RegExp(regexStr, "g"); | ||||
function getObjVal(obj, str) { | |||||
var val = obj[str]; | |||||
if (val !== undefined) | |||||
return val; | |||||
var parts = str.split("."); | |||||
val = obj; | |||||
for (var i = 0; i < parts.length; ++i) { | |||||
val = val[parts[i]]; | |||||
if (val === undefined) | |||||
return undefined; | |||||
} | |||||
return val; | |||||
} | |||||
function getVal(str, env) { | function getVal(str, env) { | ||||
if (vals.env.test(str)) { | if (vals.env.test(str)) { | ||||
var parts = str.split("#"); | var parts = str.split("#"); | ||||
if (typeof ns === "function") | if (typeof ns === "function") | ||||
return ns(parts[1]); | return ns(parts[1]); | ||||
else if (ns !== undefined) | else if (ns !== undefined) | ||||
return ns[parts[1]]; | |||||
return getObjVal(ns, parts[1]); | |||||
else | else | ||||
throw new Error("No: "+str); | throw new Error("No: "+str); | ||||
} else if (vals.string.test(str)) { | } else if (vals.string.test(str)) { |
var loader = require("./lib/loader.js"); | var loader = require("./lib/loader.js"); | ||||
var Context = require("./lib/context.js"); | var Context = require("./lib/context.js"); | ||||
var conf = JSON.parse(fs.readFileSync("conf.json")); | |||||
var conf = JSON.parse(fs.readFileSync("conf.json", "utf8").replace(/^\s*#.+/gm, "")); | |||||
var endpoints = { | var endpoints = { | ||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" defer></script> | <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" defer></script> | ||||
<script src="/global.js?{{conf#current_run}}" defer></script> | <script src="/global.js?{{conf#current_run}}" defer></script> | ||||
<script src="/{{env#view}}/script.js?{{conf#current_run}}" defer></script> | <script src="/{{env#view}}/script.js?{{conf#current_run}}" defer></script> | ||||
{{conf#use_owa ? template#open-web-analytics : ''}} |
<script type="text/javascript"> | |||||
//<![CDATA[ | |||||
var owa_baseUrl = '{{conf#owa.base_url}}'; | |||||
var owa_cmds = owa_cmds || []; | |||||
owa_cmds.push(['setSiteId', '{{conf#owa.site_id}}']); | |||||
owa_cmds.push(['trackPageView']); | |||||
owa_cmds.push(['trackClicks']); | |||||
owa_cmds.push(['trackDomStream']); | |||||
(function() { | |||||
var _owa = document.createElement('script'); _owa.type = 'text/javascript'; _owa.async = true; | |||||
owa_baseUrl = ('https:' == document.location.protocol ? window.owa_baseSecUrl || owa_baseUrl.replace(/http:/, 'https:') : owa_baseUrl ); | |||||
_owa.src = owa_baseUrl + 'modules/base/js/owa.tracker-combined-min.js'; | |||||
var _owa_s = document.getElementsByTagName('script')[0]; _owa_s.parentNode.insertBefore(_owa, _owa_s); | |||||
}()); | |||||
//]]> | |||||
</script> |