Baris Usakli 12 years ago
commit 4fce06677f

1
.gitignore vendored

@ -6,6 +6,7 @@ npm-debug.log
node_modules/ node_modules/
sftp-config.json sftp-config.json
config.json config.json
public/src/nodebb.min.js
public/config.json public/config.json
public/css/*.css public/css/*.css
public/themes/* public/themes/*

@ -24,8 +24,11 @@
nconf.argv().env(); nconf.argv().env();
var fs = require('fs'), var fs = require('fs'),
async = require('async'),
winston = require('winston'), winston = require('winston'),
pkg = require('./package.json'), pkg = require('./package.json'),
path = require('path'),
uglifyjs = require('uglify-js'),
meta; meta;
// Runtime environment // Runtime environment
@ -69,6 +72,61 @@
winston.info('Base Configuration OK.'); winston.info('Base Configuration OK.');
} }
// Minify JS
var toMinify = [
'/vendor/jquery/js/jquery.js',
'/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js',
'/vendor/jquery/js/jquery.timeago.js',
'/vendor/bootstrap/js/bootstrap.min.js',
'/src/app.js',
'/vendor/requirejs/require.js',
'/vendor/bootbox/bootbox.min.js',
'/src/templates.js',
'/src/ajaxify.js',
'/src/jquery.form.js',
'/src/utils.js'
],
minified, mtime;
toMinify = toMinify.map(function (jsPath) {
return path.join(__dirname + '/public', jsPath);
});
async.parallel({
mtime: function (next) {
async.map(toMinify, fs.stat, function (err, stats) {
async.reduce(stats, 0, function (memo, item, callback) {
mtime = +new Date(item.mtime);
callback(null, mtime > memo ? mtime : memo);
}, next);
});
},
minFile: function (next) {
var minFile = path.join(__dirname, 'public/src/nodebb.min.js');
if (!fs.existsSync(minFile)) {
winston.warn('No minified client-side library found');
return next(null, 0);
}
fs.stat(minFile, function (err, stat) {
next(err, +new Date(stat.mtime));
});
}
}, function (err, results) {
if (results.minFile > results.mtime) {
winston.info('No changes to client-side libraries -- skipping minification');
} else {
winston.info('Minifying client-side libraries');
minified = uglifyjs.minify(toMinify);
fs.writeFile(path.join(__dirname, '/public/src', 'nodebb.min.js'), minified.code, function (err) {
if (!err) {
winston.info('Minified client-side libraries');
} else {
winston.error('Problem minifying client-side libraries, exiting.');
process.exit();
}
});
}
});
meta.configs.init(function () { meta.configs.init(function () {
// Initial setup for Redis & Reds // Initial setup for Redis & Reds
var reds = require('reds'), var reds = require('reds'),

@ -37,7 +37,8 @@
"nodebb-plugin-mentions": "~0.1.0", "nodebb-plugin-mentions": "~0.1.0",
"nodebb-plugin-markdown": "~0.1.0", "nodebb-plugin-markdown": "~0.1.0",
"rss": "~0.2.0", "rss": "~0.2.0",
"prompt": "~0.2.11" "prompt": "~0.2.11",
"uglify-js": "~2.4.0"
}, },
"bugs": { "bugs": {
"url": "https://github.com/designcreateplay/NodeBB/issues" "url": "https://github.com/designcreateplay/NodeBB/issues"
@ -45,26 +46,20 @@
"engines": { "engines": {
"node": ">=0.8" "node": ">=0.8"
}, },
"contributors": [ "contributors": [{
{
"name": "Andrew Rodrigues", "name": "Andrew Rodrigues",
"email": "andrew@designcreateplay.com" "email": "andrew@designcreateplay.com"
}, }, {
{
"name": "Julian Lam", "name": "Julian Lam",
"email": "julian@designcreateplay.com" "email": "julian@designcreateplay.com"
}, }, {
{
"name": "Barış Soner Uşaklı", "name": "Barış Soner Uşaklı",
"email": "baris@designcreateplay.com" "email": "baris@designcreateplay.com"
}, }, {
{
"name": "Damian Bushong", "name": "Damian Bushong",
"url": "https://github.com/damianb" "url": "https://github.com/damianb"
}, }, {
{
"name": "Matt Smith", "name": "Matt Smith",
"url": "https://github.com/soimafreak" "url": "https://github.com/soimafreak"
} }]
]
} }

@ -8,27 +8,16 @@
<script> <script>
var RELATIVE_PATH = "{relative_path}"; var RELATIVE_PATH = "{relative_path}";
</script> </script>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="{relative_path}/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js"></script>
<script src="{relative_path}/vendor/jquery/js/jquery.timeago.js"></script>
<script src="{relative_path}/vendor/bootstrap/js/bootstrap.min.js"></script>
<script src="{relative_path}/socket.io/socket.io.js"></script> <script src="{relative_path}/socket.io/socket.io.js"></script>
<script src="{relative_path}/src/app.js"></script> <script src="{relative_path}/src/nodebb.min.js"></script>
<script src="{relative_path}/vendor/requirejs/require.js"></script>
<script src="{relative_path}/vendor/bootbox/bootbox.min.js"></script>
<script> <script>
require.config({ require.config({
baseUrl: "{relative_path}/src/modules", baseUrl: "{relative_path}/src/modules",
waitSeconds: 3 waitSeconds: 3
}); });
</script> </script>
<script src="{relative_path}/src/templates.js"></script>
<script src="{relative_path}/src/ajaxify.js"></script>
<script src="{relative_path}/src/jquery.form.js"></script>
<script src="{relative_path}/src/utils.js"></script>
<link rel="stylesheet" type="text/css" href="{relative_path}/css/nodebb.css" /> <link rel="stylesheet" type="text/css" href="{relative_path}/css/nodebb.css" />
</head> </head>
<body> <body>

File diff suppressed because it is too large Load Diff

@ -48,20 +48,14 @@ var express = require('express'),
metaString = utils.buildMetaTags(defaultMetaTags.concat(options.metaTags || [])), metaString = utils.buildMetaTags(defaultMetaTags.concat(options.metaTags || [])),
templateValues = { templateValues = {
cssSrc: meta.config['theme:src'] || nconf.get('relative_path') + '/vendor/bootstrap/css/bootstrap.min.css', cssSrc: meta.config['theme:src'] || nconf.get('relative_path') + '/vendor/bootstrap/css/bootstrap.min.css',
title: meta.config['title'] || 'NodeBB', title: meta.config.title || 'NodeBB',
browserTitle: meta.config['title'] || 'NodeBB', browserTitle: meta.config.title || 'NodeBB',
csrf: options.res.locals.csrf_token, csrf: options.res.locals.csrf_token,
relative_path: nconf.get('relative_path'), relative_path: nconf.get('relative_path'),
meta_tags: metaString meta_tags: metaString
}; };
// meta.build_title(options.title, (options.req.user ? options.req.user.uid : 0), function(err, title) { callback(null, templates.header.parse(templateValues));
// if (!err) templateValues.browserTitle = title;
// callback(null, templates['header'].parse(templateValues));
// });
callback(null, templates['header'].parse(templateValues));
}; };
// Middlewares // Middlewares
@ -69,7 +63,8 @@ var express = require('express'),
app.use(express.favicon(path.join(__dirname, '../', 'public', 'favicon.ico'))); app.use(express.favicon(path.join(__dirname, '../', 'public', 'favicon.ico')));
app.use(require('less-middleware')({ app.use(require('less-middleware')({
src: path.join(__dirname, '../', 'public'), src: path.join(__dirname, '../', 'public'),
prefix: nconf.get('relative_path') prefix: nconf.get('relative_path'),
yuicompress: true
})); }));
app.use(nconf.get('relative_path'), express.static(path.join(__dirname, '../', 'public'))); app.use(nconf.get('relative_path'), express.static(path.join(__dirname, '../', 'public')));
app.use(express.bodyParser()); // Puts POST vars in request.body app.use(express.bodyParser()); // Puts POST vars in request.body

Loading…
Cancel
Save