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'),

@ -1,70 +1,65 @@
{ {
"name": "nodebb", "name": "nodebb",
"license": "GPLv3 or later", "license": "GPLv3 or later",
"description": "NodeBB Forum", "description": "NodeBB Forum",
"version": "0.0.6", "version": "0.0.6",
"homepage": "http://www.nodebb.org", "homepage": "http://www.nodebb.org",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/designcreateplay/NodeBB/" "url": "https://github.com/designcreateplay/NodeBB/"
}, },
"main": "app.js", "main": "app.js",
"dependencies": { "dependencies": {
"socket.io": "~0.9.16", "socket.io": "~0.9.16",
"redis": "0.8.3", "redis": "0.8.3",
"express": "3.2.0", "express": "3.2.0",
"express-namespace": "0.1.1", "express-namespace": "0.1.1",
"emailjs": "0.3.4", "emailjs": "0.3.4",
"cookie": "0.0.6", "cookie": "0.0.6",
"connect-redis": "1.4.5", "connect-redis": "1.4.5",
"passport": "0.1.17", "passport": "0.1.17",
"passport-local": "0.1.6", "passport-local": "0.1.6",
"passport-twitter": "0.1.5", "passport-twitter": "0.1.5",
"passport-google-oauth": "0.1.5", "passport-google-oauth": "0.1.5",
"passport-facebook": "0.1.5", "passport-facebook": "0.1.5",
"less-middleware": "0.1.12", "less-middleware": "0.1.12",
"marked": "0.2.8", "marked": "0.2.8",
"bcrypt": "0.7.5", "bcrypt": "0.7.5",
"async": "0.2.8", "async": "0.2.8",
"node-imagemagick": "0.1.8", "node-imagemagick": "0.1.8",
"gravatar": "1.0.6", "gravatar": "1.0.6",
"nconf": "~0.6.7", "nconf": "~0.6.7",
"sitemap": "~0.6.0", "sitemap": "~0.6.0",
"cheerio": "~0.12.0", "cheerio": "~0.12.0",
"request": "~2.25.0", "request": "~2.25.0",
"reds": "~0.2.4", "reds": "~0.2.4",
"winston": "~0.7.2", "winston": "~0.7.2",
"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": { },
"url": "https://github.com/designcreateplay/NodeBB/issues" "bugs": {
}, "url": "https://github.com/designcreateplay/NodeBB/issues"
"engines": { },
"node": ">=0.8" "engines": {
}, "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ı",
{ "email": "baris@designcreateplay.com"
"name": "Barış Soner Uşaklı", }, {
"email": "baris@designcreateplay.com" "name": "Damian Bushong",
}, "url": "https://github.com/damianb"
{ }, {
"name": "Damian Bushong", "name": "Matt Smith",
"url": "https://github.com/damianb" "url": "https://github.com/soimafreak"
}, }]
{
"name": "Matt Smith",
"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