diff --git a/.gitignore b/.gitignore
index e49727ac..fddad262 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
.DS_Store
.nodemonignore
.sass-cache/
+.bower-*
node_modules/
public/lib
test/coverage/
diff --git a/app/views/404.html b/app/views/404.html
old mode 100755
new mode 100644
index 2f0d9e86..65f8637e
--- a/app/views/404.html
+++ b/app/views/404.html
@@ -1,13 +1,17 @@
-extends layouts/default
+{% extends 'layouts/default.html' %}
-block main
- h1 Oops something went wrong
- br
- span 404
-
-block content
- #error-message-box
- #error-stack-trace
- pre
- code!= error
+{% block main %}
+
Oops something went wrong
+
+ 404
+{% endblock %}
+{% block content %}
+
+{% endblock %}
diff --git a/app/views/500.html b/app/views/500.html
old mode 100755
new mode 100644
index 491b0008..8eba21c9
--- a/app/views/500.html
+++ b/app/views/500.html
@@ -1,12 +1,17 @@
-extends layouts/default
+{% extends 'layouts/default.html' %}
-block main
- h1 Oops something went wrong
- br
- span 500
+{% block main %}
+ Oops something went wrong
+
+ 500
+{% endblock %}
-block content
- #error-message-box
- #error-stack-trace
- pre
- code!= error
+{% block content %}
+
+{% endblock %}
diff --git a/app/views/includes/foot.html b/app/views/includes/foot.html
new file mode 100644
index 00000000..b9c0c047
--- /dev/null
+++ b/app/views/includes/foot.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% if (process.env.NODE_ENV == 'development') %}
+
+
+{% endif %}
diff --git a/app/views/includes/foot.jade b/app/views/includes/foot.jade
deleted file mode 100755
index ba1d6e57..00000000
--- a/app/views/includes/foot.jade
+++ /dev/null
@@ -1,30 +0,0 @@
-//AngularJS
-script(type='text/javascript', src='/lib/angular/angular.js')
-script(type='text/javascript', src='/lib/angular-cookies/angular-cookies.js')
-script(type='text/javascript', src='/lib/angular-resource/angular-resource.js')
-script(type='text/javascript', src='/lib/angular-route/angular-route.js')
-
-//Angular UI
-script(type='text/javascript', src='/lib/angular-bootstrap/ui-bootstrap.js')
-script(type='text/javascript', src='/lib/angular-bootstrap/ui-bootstrap-tpls.js')
-script(type='text/javascript', src='/lib/angular-ui-utils/ui-utils.min.js')
-
-//Application Init
-script(type='text/javascript', src='/js/app.js')
-script(type='text/javascript', src='/js/config.js')
-script(type='text/javascript', src='/js/directives.js')
-script(type='text/javascript', src='/js/filters.js')
-
-//Application Services
-script(type='text/javascript', src='/js/services/global.js')
-script(type='text/javascript', src='/js/services/articles.js')
-
-//Application Controllers
-script(type='text/javascript', src='/js/controllers/articles.js')
-script(type='text/javascript', src='/js/controllers/index.js')
-script(type='text/javascript', src='/js/controllers/header.js')
-script(type='text/javascript', src='/js/init.js')
-
-if (process.env.NODE_ENV == 'development')
- //Livereload script rendered
- script(type='text/javascript', src='http://' + req.host + ':35729/livereload.js')
\ No newline at end of file
diff --git a/app/views/includes/head.html b/app/views/includes/head.html
new file mode 100644
index 00000000..dd491970
--- /dev/null
+++ b/app/views/includes/head.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+ {{appName}} - {{title}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/views/includes/head.jade b/app/views/includes/head.jade
deleted file mode 100755
index 458c122d..00000000
--- a/app/views/includes/head.jade
+++ /dev/null
@@ -1,29 +0,0 @@
-head
- meta(charset='utf-8')
- meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
- meta(name='viewport', content='width=device-width,initial-scale=1')
-
- title= appName+' - '+title
- meta(http-equiv='Content-type', content='text/html;charset=UTF-8')
- meta(name="keywords", content="node.js, express, mongoose, mongodb, angularjs")
- meta(name="description", content="MEAN - A Modern Stack: MongoDB, ExpressJS, AngularJS, NodeJS. (BONUS: Passport User Support).")
-
- link(href='/img/icons/favicon.ico', rel='shortcut icon', type='image/x-icon')
-
- meta(property='fb:app_id', content='APP_ID')
- meta(property='og:title', content='#{appName} - #{title}')
- meta(property='og:description', content='MEAN - A Modern Stack: MongoDB, ExpressJS, AngularJS, NodeJS. (BONUS: Passport User Support).')
- meta(property='og:type', content='website')
- meta(property='og:url', content='APP_URL')
- meta(property='og:image', content='APP_LOGO')
- meta(property='og:site_name', content='MEAN - A Modern Stack')
- meta(property='fb:admins', content='APP_ADMIN')
-
- link(rel='stylesheet', href='/lib/bootstrap/dist/css/bootstrap.min.css')
- //- link(rel='stylesheet', href='/lib/bootstrap/dist/css/bootstrap-responsive.css')
- link(rel='stylesheet', href='/css/common.css')
-
- link(rel='stylesheet', href='/css/views/articles.css')
-
- //if lt IE 9
- script(src='http://html5shim.googlecode.com/svn/trunk/html5.js')
diff --git a/app/views/index.html b/app/views/index.html
old mode 100755
new mode 100644
index c1218989..c559719a
--- a/app/views/index.html
+++ b/app/views/index.html
@@ -1,6 +1,7 @@
-extends layouts/default
-
-block content
- section(data-ng-view)
- script(type="text/javascript").
- window.user = !{user};
+{% extends 'layouts/default.html' %}
+{% block content %}
+
+
+{% endblock %}
diff --git a/app/views/layouts/default.html b/app/views/layouts/default.html
new file mode 100644
index 00000000..115a51eb
--- /dev/null
+++ b/app/views/layouts/default.html
@@ -0,0 +1,13 @@
+
+
+ {% include '../includes/head.html' %}
+
+
+
+
+ {% block content %}{% endblock %}
+
+
+ {% include '../includes/foot.html' %}
+
+
diff --git a/app/views/layouts/default.jade b/app/views/layouts/default.jade
deleted file mode 100755
index 6af83d37..00000000
--- a/app/views/layouts/default.jade
+++ /dev/null
@@ -1,9 +0,0 @@
-doctype html
-html(lang='en', xmlns='http://www.w3.org/1999/xhtml', xmlns:fb='https://www.facebook.com/2008/fbml', itemscope='itemscope', itemtype='http://schema.org/Product')
- include ../includes/head
- body
- .navbar.navbar-inverse.navbar-fixed-top(data-ng-include="'views/header.html'", data-role="navigation")
- section.content
- section.container
- block content
- include ../includes/foot
diff --git a/app/views/users/auth.html b/app/views/users/auth.html
new file mode 100644
index 00000000..74891fdd
--- /dev/null
+++ b/app/views/users/auth.html
@@ -0,0 +1,24 @@
+{% extends '../layouts/default.html' %}
+
+{% block content %}
+
+
+
+ {% if message && message.length %}
+
+
+
+ {{ message }}
+
+
+ {% endif %}
+ {% block auth %}{% endblock %}
+
+
+{% endblock %}
diff --git a/app/views/users/auth.jade b/app/views/users/auth.jade
deleted file mode 100755
index fadb270d..00000000
--- a/app/views/users/auth.jade
+++ /dev/null
@@ -1,21 +0,0 @@
-extends ../layouts/default
-
-block content
- .row
- .col-md-offset-1.col-md-5
- a(href="/auth/facebook")
- img(src="/img/icons/facebook.png")
- a(href="/auth/github")
- img(src="/img/icons/github.png")
- a(href="/auth/twitter")
- img(src="/img/icons/twitter.png")
- a(href="/auth/google")
- img(src="/img/icons/google.png")
- a(href="/auth/linkedin")
- img(src="/img/icons/linkedin.png")
- .col-md-6
- if message && message.length
- .fade.in.alert.alert-error
- button.close(type="button", data-dismiss="alert") ×
- strong #{message}
- block auth
diff --git a/app/views/users/signin.html b/app/views/users/signin.html
old mode 100755
new mode 100644
index 9cd9492f..72b9be84
--- a/app/views/users/signin.html
+++ b/app/views/users/signin.html
@@ -1,20 +1,24 @@
-extends auth
+{% extends 'auth.html' %}
-block auth
- form.signin.form-horizontal(action="/users/session", method="post")
- .form-group
- label.col-md-4.control-label(for='email') Email
- .col-md-8
- input#email.form-control(type='text', name="email", placeholder='Email')
-
- .form-group
- label.col-md-4.control-label(for='password') Password
- .col-md-8
- input#password.form-control(type='password', name="password", placeholder='Password')
-
- .form-group
- .col-md-offset-4.col-md-8
- button.btn.btn-primary(type='submit') Sign in
-
- | or
- a.show-signup(href="/signup") Sign up
+{% block auth %}
+
+{% endblock %}
diff --git a/app/views/users/signup.html b/app/views/users/signup.html
old mode 100755
new mode 100644
index 920f0a65..a539f3f2
--- a/app/views/users/signup.html
+++ b/app/views/users/signup.html
@@ -1,30 +1,36 @@
-extends auth
+{% extends 'auth.html' %}
-block auth
- form.signup.form-horizontal(action="/users", method="post")
- .form-group
- label.col-md-4.control-label(for='name') Full Name
- .col-md-8
- input#name.form-control(type='text', name="name", placeholder='Full name', value=user.name)
-
- .form-group
- label.col-md-4.control-label(for='email') Email
- .col-md-8
- input#email.form-control(type='text', name="email", placeholder='Email', value=user.email)
-
- .form-group
- label.col-md-4.control-label(for='username') Username
- .col-md-8
- input#username.form-control(type='text', name="username", placeholder='Username', value=user.username)
-
- .form-group
- label.col-md-4.control-label(for='password') Password
- .col-md-8
- input#password.form-control(type='password', name="password", placeholder='Password')
-
- .form-group
- .col-md-offset-4.col-md-8
- button.btn.btn-primary(type='submit') Sign up
-
- | or
- a.show-login(href="/signin") login
+{% block auth %}
+
+{% endblock %}
diff --git a/config/env/all.js b/config/env/all.js
index 1fba9f07..807640df 100644
--- a/config/env/all.js
+++ b/config/env/all.js
@@ -7,7 +7,7 @@ module.exports = {
root: rootPath,
port: process.env.PORT || 3000,
db: process.env.MONGOHQ_URL,
- templateEngine: 'jade',
+ templateEngine: 'swig',
// The secret should be set to a non-guessable string that
// is used to compute a session hash
diff --git a/config/env/development.js b/config/env/development.js
index 37b4d713..f5075ab7 100644
--- a/config/env/development.js
+++ b/config/env/development.js
@@ -1,33 +1,33 @@
'use strict';
module.exports = {
- db: "mongodb://localhost/mean-dev",
+ db: 'mongodb://localhost/mean-dev',
app: {
- name: "MEAN - A Modern Stack - Development"
+ name: 'MEAN - A Modern Stack - Development'
},
facebook: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/facebook/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/facebook/callback'
},
twitter: {
- clientID: "CONSUMER_KEY",
- clientSecret: "CONSUMER_SECRET",
- callbackURL: "http://localhost:3000/auth/twitter/callback"
+ clientID: 'CONSUMER_KEY',
+ clientSecret: 'CONSUMER_SECRET',
+ callbackURL: 'http://localhost:3000/auth/twitter/callback'
},
github: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/github/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/github/callback'
},
google: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/google/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/google/callback'
},
linkedin: {
- clientID: "API_KEY",
- clientSecret: "SECRET_KEY",
- callbackURL: "http://localhost:3000/auth/linkedin/callback"
+ clientID: 'API_KEY',
+ clientSecret: 'SECRET_KEY',
+ callbackURL: 'http://localhost:3000/auth/linkedin/callback'
}
-}
\ No newline at end of file
+};
diff --git a/config/env/production.js b/config/env/production.js
index 71c73a4f..151b2016 100644
--- a/config/env/production.js
+++ b/config/env/production.js
@@ -1,33 +1,33 @@
'use strict';
module.exports = {
- db: "mongodb://localhost/mean",
+ db: 'mongodb://localhost/mean',
app: {
- name: "MEAN - A Modern Stack - Production"
+ name: 'MEAN - A Modern Stack - Production'
},
facebook: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/facebook/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/facebook/callback'
},
twitter: {
- clientID: "CONSUMER_KEY",
- clientSecret: "CONSUMER_SECRET",
- callbackURL: "http://localhost:3000/auth/twitter/callback"
+ clientID: 'CONSUMER_KEY',
+ clientSecret: 'CONSUMER_SECRET',
+ callbackURL: 'http://localhost:3000/auth/twitter/callback'
},
github: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/github/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/github/callback'
},
google: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/google/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/google/callback'
},
linkedin: {
- clientID: "API_KEY",
- clientSecret: "SECRET_KEY",
- callbackURL: "http://localhost:3000/auth/linkedin/callback"
+ clientID: 'API_KEY',
+ clientSecret: 'SECRET_KEY',
+ callbackURL: 'http://localhost:3000/auth/linkedin/callback'
}
-}
\ No newline at end of file
+};
diff --git a/config/env/test.js b/config/env/test.js
index 2a213998..dc2a0c50 100644
--- a/config/env/test.js
+++ b/config/env/test.js
@@ -1,29 +1,29 @@
'use strict';
module.exports = {
- db: "mongodb://localhost/mean-test",
+ db: 'mongodb://localhost/mean-test',
port: 3001,
app: {
- name: "MEAN - A Modern Stack - Test"
+ name: 'MEAN - A Modern Stack - Test'
},
facebook: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/facebook/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/facebook/callback'
},
twitter: {
- clientID: "CONSUMER_KEY",
- clientSecret: "CONSUMER_SECRET",
- callbackURL: "http://localhost:3000/auth/twitter/callback"
+ clientID: 'CONSUMER_KEY',
+ clientSecret: 'CONSUMER_SECRET',
+ callbackURL: 'http://localhost:3000/auth/twitter/callback'
},
github: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/github/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/github/callback'
},
google: {
- clientID: "APP_ID",
- clientSecret: "APP_SECRET",
- callbackURL: "http://localhost:3000/auth/google/callback"
+ clientID: 'APP_ID',
+ clientSecret: 'APP_SECRET',
+ callbackURL: 'http://localhost:3000/auth/google/callback'
}
-}
\ No newline at end of file
+};
diff --git a/gruntfile.js b/gruntfile.js
index 1779ab84..9f1c3f58 100644
--- a/gruntfile.js
+++ b/gruntfile.js
@@ -80,7 +80,7 @@ module.exports = function(grunt) {
}
});
- //Load NPM tasks
+ //Load NPM tasks
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-mocha-test');
@@ -97,4 +97,4 @@ module.exports = function(grunt) {
//Test task.
grunt.registerTask('test', ['env:test', 'mochaTest', 'karma:unit']);
-};
\ No newline at end of file
+};
diff --git a/package.json b/package.json
index dc3dc871..800ae83f 100755
--- a/package.json
+++ b/package.json
@@ -57,7 +57,8 @@
"grunt-nodemon": "0.1.2",
"grunt-contrib-watch": "~0.5.3",
"karma-coverage": "~0.1.4",
- "karma": "~0.10.9"
+ "karma": "~0.10.9",
+ "swig": "~1.3.2"
},
"devDependencies": {
"supertest": "0.8.2",