├── public ├── favicon.png ├── images │ ├── thumb.jpg │ ├── user-01.png │ ├── user-02.png │ ├── user-03.png │ ├── m-farmerboy.jpg │ └── sample-image.jpg ├── css │ ├── img │ │ ├── search-icon.png │ │ ├── search-icon_@2x.png │ │ ├── header-content-bg.png │ │ └── header-content-bg_@2x.png │ ├── font-awesome │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ └── fontawesome-webfont.woff │ │ ├── less │ │ │ ├── fixed-width.less │ │ │ ├── core.less │ │ │ ├── bordered-pulled.less │ │ │ ├── rotated-flipped.less │ │ │ ├── larger.less │ │ │ ├── list.less │ │ │ ├── font-awesome.less │ │ │ ├── stacked.less │ │ │ ├── path.less │ │ │ ├── mixins.less │ │ │ ├── spinning.less │ │ │ └── variables.less │ │ └── scss │ │ │ ├── _fixed-width.scss │ │ │ ├── _core.scss │ │ │ ├── _bordered-pulled.scss │ │ │ ├── _larger.scss │ │ │ ├── _rotated-flipped.scss │ │ │ ├── _list.scss │ │ │ ├── font-awesome.scss │ │ │ ├── _stacked.scss │ │ │ ├── _path.scss │ │ │ ├── _mixins.scss │ │ │ ├── _spinning.scss │ │ │ └── _variables.scss │ ├── fonts │ │ ├── opensans │ │ │ ├── OpenSans-Bold-webfont.eot │ │ │ ├── OpenSans-Bold-webfont.ttf │ │ │ ├── OpenSans-Bold-webfont.woff │ │ │ ├── OpenSans-Light-webfont.eot │ │ │ ├── OpenSans-Light-webfont.ttf │ │ │ ├── OpenSans-Italic-webfont.eot │ │ │ ├── OpenSans-Italic-webfont.ttf │ │ │ ├── OpenSans-Italic-webfont.woff │ │ │ ├── OpenSans-Light-webfont.woff │ │ │ ├── OpenSans-Regular-webfont.eot │ │ │ ├── OpenSans-Regular-webfont.ttf │ │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ │ ├── OpenSans-BoldItalic-webfont.ttf │ │ │ ├── OpenSans-ExtraBold-webfont.eot │ │ │ ├── OpenSans-ExtraBold-webfont.ttf │ │ │ ├── OpenSans-ExtraBold-webfont.woff │ │ │ ├── OpenSans-Regular-webfont.woff │ │ │ ├── OpenSans-Semibold-webfont.eot │ │ │ ├── OpenSans-Semibold-webfont.ttf │ │ │ ├── OpenSans-Semibold-webfont.woff │ │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ │ ├── OpenSans-LightItalic-webfont.eot │ │ │ ├── OpenSans-LightItalic-webfont.ttf │ │ │ ├── OpenSans-LightItalic-webfont.woff │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.eot │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.ttf │ │ │ ├── OpenSans-SemiboldItalic-webfont.eot │ │ │ ├── OpenSans-SemiboldItalic-webfont.ttf │ │ │ ├── OpenSans-SemiboldItalic-webfont.woff │ │ │ └── OpenSans-ExtraBoldItalic-webfont.woff │ │ └── merriweather │ │ │ ├── merriweather-bold-webfont.eot │ │ │ ├── merriweather-bold-webfont.ttf │ │ │ ├── merriweather-black-webfont.eot │ │ │ ├── merriweather-black-webfont.ttf │ │ │ ├── merriweather-black-webfont.woff │ │ │ ├── merriweather-bold-webfont.woff │ │ │ ├── merriweather-italic-webfont.eot │ │ │ ├── merriweather-italic-webfont.ttf │ │ │ ├── merriweather-italic-webfont.woff │ │ │ ├── merriweather-light-webfont.eot │ │ │ ├── merriweather-light-webfont.ttf │ │ │ ├── merriweather-light-webfont.woff │ │ │ ├── merriweather-regular-webfont.eot │ │ │ ├── merriweather-regular-webfont.ttf │ │ │ ├── merriweather-regular-webfont.woff │ │ │ ├── merriweather-bolditalic-webfont.eot │ │ │ ├── merriweather-bolditalic-webfont.ttf │ │ │ ├── merriweather-bolditalic-webfont.woff │ │ │ ├── merriweather-heavyitalic-webfont.eot │ │ │ ├── merriweather-heavyitalic-webfont.ttf │ │ │ ├── merriweather-heavyitalic-webfont.woff │ │ │ ├── merriweather-lightitalic-webfont.eot │ │ │ ├── merriweather-lightitalic-webfont.ttf │ │ │ └── merriweather-lightitalic-webfont.woff │ ├── style.css │ ├── media-queries.css │ └── fonts.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── js │ ├── main.js │ ├── jquery-migrate-1.2.1.min.js │ └── modernizr.js ├── views ├── error.ejs ├── README.md ├── login.ejs ├── register.ejs ├── newpost.ejs ├── profile.ejs ├── index.ejs ├── archives.ejs ├── single.ejs └── page.ejs ├── README.md ├── package.json ├── .gitignore ├── models └── user.js ├── bin └── www ├── article-provider.js ├── routes ├── users.js └── index.js └── app.js /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/favicon.png -------------------------------------------------------------------------------- /public/images/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/images/thumb.jpg -------------------------------------------------------------------------------- /views/error.ejs: -------------------------------------------------------------------------------- 1 |

<%= message %>

2 |

<%= error.status %>

3 |
<%= error.stack %>
4 | -------------------------------------------------------------------------------- /public/images/user-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/images/user-01.png -------------------------------------------------------------------------------- /public/images/user-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/images/user-02.png -------------------------------------------------------------------------------- /public/images/user-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/images/user-03.png -------------------------------------------------------------------------------- /public/images/m-farmerboy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/images/m-farmerboy.jpg -------------------------------------------------------------------------------- /public/css/img/search-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/img/search-icon.png -------------------------------------------------------------------------------- /public/images/sample-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/images/sample-image.jpg -------------------------------------------------------------------------------- /public/css/img/search-icon_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/img/search-icon_@2x.png -------------------------------------------------------------------------------- /public/css/img/header-content-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/img/header-content-bg.png -------------------------------------------------------------------------------- /public/css/img/header-content-bg_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/img/header-content-bg_@2x.png -------------------------------------------------------------------------------- /public/css/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Bold-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Light-webfont.ttf -------------------------------------------------------------------------------- /public/css/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/css/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/css/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Italic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Regular-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-BoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-BoldItalic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-ExtraBold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-ExtraBold-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-ExtraBold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-ExtraBold-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-ExtraBold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-ExtraBold-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Semibold-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Semibold-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-Semibold-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-bold-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-bold-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-LightItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-LightItalic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /public/css/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-black-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-black-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-black-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-black-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-black-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-black-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-bold-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-italic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-italic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-italic-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-light-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-light-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-light-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-regular-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-regular-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-SemiboldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-SemiboldItalic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-SemiboldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-SemiboldItalic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-SemiboldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-SemiboldItalic-webfont.woff -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-regular-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-bolditalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-bolditalic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-bolditalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-bolditalic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-bolditalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-bolditalic-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-heavyitalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-heavyitalic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-heavyitalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-heavyitalic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-heavyitalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-heavyitalic-webfont.woff -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-lightitalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-lightitalic-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-lightitalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-lightitalic-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/merriweather/merriweather-lightitalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/DIscussion-Forum/master/public/css/fonts/merriweather/merriweather-lightitalic-webfont.woff -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | * Clone this repo and open terminal in the cloned folder 4 | * Run `sudo npm install` 5 | * Make Sure Mongodb service is running 6 | * Run `npm start` 7 | * Open localhost:3000 in your browser -------------------------------------------------------------------------------- /views/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | * Clone this repo and open terminal in the cloned folder 4 | * Run `sudo npm install` 5 | * Make Sure Mongodb service is running 6 | * Run `npm start` 7 | * Open localhost:3000 in your browser -------------------------------------------------------------------------------- /public/css/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font-family: FontAwesome; 7 | font-style: normal; 8 | font-weight: normal; 9 | line-height: 1; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font-family: FontAwesome; 7 | font-style: normal; 8 | font-weight: normal; 9 | line-height: 1; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: -@fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "spinning"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "spinning"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 9 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 10 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 11 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 9 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 10 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 11 | //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon-rotate(@degrees, @rotation) { 5 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 6 | -webkit-transform: rotate(@degrees); 7 | -moz-transform: rotate(@degrees); 8 | -ms-transform: rotate(@degrees); 9 | -o-transform: rotate(@degrees); 10 | transform: rotate(@degrees); 11 | } 12 | 13 | .fa-icon-flip(@horiz, @vert, @rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 15 | -webkit-transform: scale(@horiz, @vert); 16 | -moz-transform: scale(@horiz, @vert); 17 | -ms-transform: scale(@horiz, @vert); 18 | -o-transform: scale(@horiz, @vert); 19 | transform: scale(@horiz, @vert); 20 | } 21 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon-rotate($degrees, $rotation) { 5 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); 6 | -webkit-transform: rotate($degrees); 7 | -moz-transform: rotate($degrees); 8 | -ms-transform: rotate($degrees); 9 | -o-transform: rotate($degrees); 10 | transform: rotate($degrees); 11 | } 12 | 13 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); 15 | -webkit-transform: scale($horiz, $vert); 16 | -moz-transform: scale($horiz, $vert); 17 | -ms-transform: scale($horiz, $vert); 18 | -o-transform: scale($horiz, $vert); 19 | transform: scale($horiz, $vert); 20 | } 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "discussionforum", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./bin/www" 7 | }, 8 | "dependencies": { 9 | "bcrypt": "^1.0.2", 10 | "bcryptjs": "^2.4.3", 11 | "body-parser": "~1.17.1", 12 | "connect-flash": "*", 13 | "cookie-parser": "~1.4.3", 14 | "debug": "~2.6.3", 15 | "ejs": "~2.5.6", 16 | "express": "~4.15.2", 17 | "express-messages": "*", 18 | "express-session": "*", 19 | "express-validator": "*", 20 | "html-truncate": "^1.2.2", 21 | "moment": "*", 22 | "mongodb": "*", 23 | "mongoose": "*", 24 | "mongoose-paginate": "^5.0.3", 25 | "morgan": "~1.8.1", 26 | "multer": "*", 27 | "passport": "^0.3.2", 28 | "passport-http": "*", 29 | "passport-local": "^1.0.0", 30 | "serve-favicon": "~2.4.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/spinning.less: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: spin 2s infinite linear; 6 | -moz-animation: spin 2s infinite linear; 7 | -o-animation: spin 2s infinite linear; 8 | animation: spin 2s infinite linear; 9 | } 10 | 11 | @-moz-keyframes spin { 12 | 0% { -moz-transform: rotate(0deg); } 13 | 100% { -moz-transform: rotate(359deg); } 14 | } 15 | @-webkit-keyframes spin { 16 | 0% { -webkit-transform: rotate(0deg); } 17 | 100% { -webkit-transform: rotate(359deg); } 18 | } 19 | @-o-keyframes spin { 20 | 0% { -o-transform: rotate(0deg); } 21 | 100% { -o-transform: rotate(359deg); } 22 | } 23 | @-ms-keyframes spin { 24 | 0% { -ms-transform: rotate(0deg); } 25 | 100% { -ms-transform: rotate(359deg); } 26 | } 27 | @keyframes spin { 28 | 0% { transform: rotate(0deg); } 29 | 100% { transform: rotate(359deg); } 30 | } 31 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_spinning.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: spin 2s infinite linear; 6 | -moz-animation: spin 2s infinite linear; 7 | -o-animation: spin 2s infinite linear; 8 | animation: spin 2s infinite linear; 9 | } 10 | 11 | @-moz-keyframes spin { 12 | 0% { -moz-transform: rotate(0deg); } 13 | 100% { -moz-transform: rotate(359deg); } 14 | } 15 | @-webkit-keyframes spin { 16 | 0% { -webkit-transform: rotate(0deg); } 17 | 100% { -webkit-transform: rotate(359deg); } 18 | } 19 | @-o-keyframes spin { 20 | 0% { -o-transform: rotate(0deg); } 21 | 100% { -o-transform: rotate(359deg); } 22 | } 23 | @-ms-keyframes spin { 24 | 0% { -ms-transform: rotate(0deg); } 25 | 100% { -ms-transform: rotate(359deg); } 26 | } 27 | @keyframes spin { 28 | 0% { transform: rotate(0deg); } 29 | 100% { transform: rotate(359deg); } 30 | } 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # Typescript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | -------------------------------------------------------------------------------- /models/user.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | var bcrypt = require('bcryptjs'); 3 | 4 | // User Schema 5 | var UserSchema = mongoose.Schema({ 6 | username: { 7 | type: String, 8 | index:true 9 | }, 10 | password: { 11 | type: String 12 | }, 13 | email: { 14 | type: String 15 | }, 16 | name: { 17 | type: String 18 | } 19 | }); 20 | 21 | var User = module.exports = mongoose.model('User', UserSchema); 22 | 23 | module.exports.createUser = function(newUser, callback){ 24 | bcrypt.genSalt(10, function(err, salt) { 25 | bcrypt.hash(newUser.password, salt, function(err, hash) { 26 | newUser.password = hash; 27 | newUser.save(callback); 28 | }); 29 | }); 30 | } 31 | 32 | module.exports.getUserByUsername = function(username, callback){ 33 | var query = {username: username}; 34 | User.findOne(query, callback); 35 | } 36 | 37 | module.exports.getUserById = function(id, callback){ 38 | User.findById(id, callback); 39 | } 40 | 41 | module.exports.comparePassword = function(candidatePassword, hash, callback){ 42 | bcrypt.compare(candidatePassword, hash, function(err, isMatch) { 43 | if(err) throw err; 44 | callback(null, isMatch); 45 | }); 46 | } -------------------------------------------------------------------------------- /public/css/style.css: -------------------------------------------------------------------------------- 1 | /* Space out content a bit */ 2 | body { 3 | padding-top: 20px; 4 | padding-bottom: 20px; 5 | } 6 | 7 | /* Everything but the jumbotron gets side spacing for mobile first views */ 8 | .header, 9 | .marketing, 10 | .footer { 11 | padding-right: 15px; 12 | padding-left: 15px; 13 | } 14 | 15 | /* Custom page header */ 16 | .header { 17 | padding-bottom: 20px; 18 | border-bottom: 1px solid #e5e5e5; 19 | } 20 | /* Make the masthead heading the same height as the navigation */ 21 | .header h3 { 22 | margin-top: 0; 23 | margin-bottom: 0; 24 | line-height: 40px; 25 | } 26 | 27 | /* Custom page footer */ 28 | .footer { 29 | padding-top: 19px; 30 | color: #777; 31 | border-top: 1px solid #e5e5e5; 32 | } 33 | 34 | /* Customize container */ 35 | @media (min-width: 768px) { 36 | .container { 37 | max-width: 730px; 38 | } 39 | } 40 | .container-narrow > hr { 41 | margin: 30px 0; 42 | } 43 | 44 | /* Main marketing message and sign up button */ 45 | .jumbotron { 46 | text-align: center; 47 | border-bottom: 1px solid #e5e5e5; 48 | } 49 | .jumbotron .btn { 50 | padding: 14px 24px; 51 | font-size: 21px; 52 | } 53 | 54 | /* Supporting marketing content */ 55 | .marketing { 56 | margin: 40px 0; 57 | } 58 | .marketing p + h4 { 59 | margin-top: 28px; 60 | } 61 | 62 | /* Responsive: Portrait tablets and up */ 63 | @media screen and (min-width: 768px) { 64 | /* Remove the padding we set earlier */ 65 | .header, 66 | .marketing, 67 | .footer { 68 | padding-right: 0; 69 | padding-left: 0; 70 | } 71 | /* Space out the masthead */ 72 | .header { 73 | margin-bottom: 30px; 74 | } 75 | /* Remove the bottom border on the jumbotron for visual effect */ 76 | .jumbotron { 77 | border-bottom: 0; 78 | } 79 | } 80 | 81 | .page-header{ 82 | margin-top:0; 83 | } 84 | 85 | footer{ 86 | margin-top:40px; 87 | } -------------------------------------------------------------------------------- /bin/www: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /** 4 | * Module dependencies. 5 | */ 6 | 7 | var app = require('../app'); 8 | var debug = require('debug')('discussionforum:server'); 9 | var http = require('http'); 10 | 11 | /** 12 | * Get port from environment and store in Express. 13 | */ 14 | 15 | var port = normalizePort(process.env.PORT || '3000'); 16 | app.set('port', port); 17 | 18 | /** 19 | * Create HTTP server. 20 | */ 21 | 22 | var server = http.createServer(app); 23 | 24 | /** 25 | * Listen on provided port, on all network interfaces. 26 | */ 27 | 28 | server.listen(port); 29 | server.on('error', onError); 30 | server.on('listening', onListening); 31 | 32 | /** 33 | * Normalize a port into a number, string, or false. 34 | */ 35 | 36 | function normalizePort(val) { 37 | var port = parseInt(val, 10); 38 | 39 | if (isNaN(port)) { 40 | // named pipe 41 | return val; 42 | } 43 | 44 | if (port >= 0) { 45 | // port number 46 | return port; 47 | } 48 | 49 | return false; 50 | } 51 | 52 | /** 53 | * Event listener for HTTP server "error" event. 54 | */ 55 | 56 | function onError(error) { 57 | if (error.syscall !== 'listen') { 58 | throw error; 59 | } 60 | 61 | var bind = typeof port === 'string' 62 | ? 'Pipe ' + port 63 | : 'Port ' + port; 64 | 65 | // handle specific listen errors with friendly messages 66 | switch (error.code) { 67 | case 'EACCES': 68 | console.error(bind + ' requires elevated privileges'); 69 | process.exit(1); 70 | break; 71 | case 'EADDRINUSE': 72 | console.error(bind + ' is already in use'); 73 | process.exit(1); 74 | break; 75 | default: 76 | throw error; 77 | } 78 | } 79 | 80 | /** 81 | * Event listener for HTTP server "listening" event. 82 | */ 83 | 84 | function onListening() { 85 | var addr = server.address(); 86 | var bind = typeof addr === 'string' 87 | ? 'pipe ' + addr 88 | : 'port ' + addr.port; 89 | debug('Listening on ' + bind); 90 | } 91 | -------------------------------------------------------------------------------- /views/login.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Login 5 | 6 | 7 | 8 | 9 |
10 |
11 | 23 |

LoginApp

24 |
25 | 26 | 27 |
28 |
29 | <% if(success_msg!=0){ %> 30 |
<%= success_msg %>
31 | <% } %> 32 | 33 | <% if(error_msg!=0){ %> 34 |
<%= error_msg %>
35 | <% } %> 36 | 37 | <% if(error!=0){ %> 38 |
<%= error %>
39 | <% } %> 40 | 41 | 42 |
43 |
44 | 45 | 46 |
47 |
48 | 49 | 50 |
51 | 52 |
53 |
54 | 55 | 56 |
57 | 58 | 61 | 62 |
63 | 64 | 65 | -------------------------------------------------------------------------------- /public/js/main.js: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------------- 2 | /* 3 | /* Main JS 4 | /* 5 | ----------------------------------------------------------------------------------- */ 6 | 7 | (function($) { 8 | 9 | 10 | /* Mobile Menu 11 | ------------------------------------------------------ */ 12 | var toggle_button = $("", { 13 | id: "toggle-btn", 14 | html : "Menu", 15 | title: "Menu", 16 | href : "#" } 17 | ); 18 | var nav_wrap = $('nav#nav-wrap') 19 | var nav = $("ul#nav"); 20 | 21 | /* if JS is enabled, remove the two a.mobile-btns 22 | and dynamically prepend a.toggle-btn to #nav-wrap */ 23 | nav_wrap.find('a.mobile-btn').remove(); 24 | nav_wrap.prepend(toggle_button); 25 | 26 | toggle_button.on("click", function(e) { 27 | e.preventDefault(); 28 | nav.slideToggle("fast"); 29 | }); 30 | 31 | if (toggle_button.is(':visible')) nav.addClass('mobile'); 32 | $(window).resize(function(){ 33 | if (toggle_button.is(':visible')) nav.addClass('mobile'); 34 | else nav.removeClass('mobile'); 35 | }); 36 | 37 | $('ul#nav li a').on("click", function(){ 38 | if (nav.hasClass('mobile')) nav.fadeOut('fast'); 39 | }); 40 | 41 | 42 | /* Smooth Scrolling 43 | ------------------------------------------------------ */ 44 | $('.smoothscroll').on('click', function (e) { 45 | 46 | e.preventDefault(); 47 | 48 | var target = this.hash, 49 | $target = $(target); 50 | 51 | $('html, body').stop().animate({ 52 | 'scrollTop': $target.offset().top 53 | }, 800, 'swing', function () { 54 | window.location.hash = target; 55 | }); 56 | 57 | }); 58 | 59 | 60 | /* Back To Top Button 61 | ------------------------------------------------------- */ 62 | var pxShow = 300; //height on which the button will show 63 | var fadeInTime = 400; //how slow/fast you want the button to show 64 | var fadeOutTime = 400; //how slow/fast you want the button to hide 65 | var scrollSpeed = 300; //how slow/fast you want the button to scroll to top. can be a value, 'slow', 'normal' or 'fast' 66 | 67 | // Show or hide the sticky footer button 68 | $(window).scroll(function() { 69 | 70 | if ($(window).scrollTop() >= pxShow) { 71 | $("#go-top").fadeIn(fadeInTime); 72 | } else { 73 | $("#go-top").fadeOut(fadeOutTime); 74 | } 75 | 76 | }); 77 | 78 | 79 | })(jQuery); -------------------------------------------------------------------------------- /views/register.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Register 5 | 6 | 7 | 8 | 9 |
10 |
11 | 23 |

Discussion-Forum

24 |
25 | 26 | 27 |
28 |
29 | <% if(success_msg!=0){ %> 30 |
<%= success_msg %>
31 | <% } %> 32 | 33 | <% if(error_msg!=0){ %> 34 |
<%= error_msg %>
35 | <% } %> 36 | 37 | <% if(error!=0){ %> 38 |
<%= error %>
39 | <% } %> 40 | 41 | 42 | 43 |
44 |
45 | 46 | 47 |
48 |
49 | 50 | 51 |
52 |
53 | 54 | 55 |
56 |
57 | 58 | 59 |
60 |
61 | 62 | 63 |
64 | 65 |
66 |
67 | 68 | 69 |
70 | 71 | 74 | 75 |
76 | 77 | 78 | -------------------------------------------------------------------------------- /article-provider.js: -------------------------------------------------------------------------------- 1 | var Db = require('mongodb').Db; 2 | var Connection = require('mongodb').Connection; 3 | var Server = require('mongodb').Server; 4 | var BSON = require('mongodb').BSON; 5 | var ObjectID = require('mongodb').ObjectID; 6 | 7 | ArticleProvider = function(host, port) { 8 | this.db= new Db('article-provider', new Server(host, port, {auto_reconnect: true}, {})); 9 | this.db.open(function(){}); 10 | }; 11 | 12 | 13 | ArticleProvider.prototype.getCollection= function(callback) { 14 | this.db.collection('articles', function(error, article_collection) { 15 | if( error ) callback(error); 16 | else callback(null, article_collection); 17 | }); 18 | }; 19 | 20 | ArticleProvider.prototype.findAll = function(callback) { 21 | this.getCollection(function(error, article_collection) { 22 | if( error ) callback(error) 23 | else { 24 | article_collection.find().toArray(function(error, results) { 25 | if( error ) callback(error) 26 | else callback(null, results) 27 | }); 28 | } 29 | }); 30 | }; 31 | 32 | 33 | ArticleProvider.prototype.findById = function(id, callback) { 34 | this.getCollection(function(error, article_collection) { 35 | if( error ) callback(error) 36 | else { 37 | article_collection.findOne({_id: article_collection.db.bson_serializer.ObjectID.createFromHexString(id)}, function(error, result) { 38 | if( error ) callback(error) 39 | else callback(null, result) 40 | }); 41 | } 42 | }); 43 | }; 44 | 45 | ArticleProvider.prototype.save = function(articles, callback) { 46 | this.getCollection(function(error, article_collection) { 47 | if( error ) callback(error) 48 | else { 49 | if( typeof(articles.length)=="undefined") 50 | articles = [articles]; 51 | 52 | for( var i =0;i< articles.length;i++ ) { 53 | article = articles[i]; 54 | article.created_at = new Date(); 55 | if( article.comments === undefined ) article.comments = []; 56 | for(var j =0;j< article.comments.length; j++) { 57 | article.comments[j].created_at = new Date(); 58 | } 59 | } 60 | 61 | article_collection.insert(articles, function() { 62 | callback(null, articles); 63 | }); 64 | } 65 | }); 66 | }; 67 | ArticleProvider.prototype.remove = function(articles,rtitle,ruser, callback) { 68 | this.getCollection(function(error, article_collection) { 69 | if( error ) callback(error) 70 | else { 71 | article_collection.remove( { title: rtitle,user: ruser }, function() { 72 | callback(null, articles); 73 | }); 74 | } 75 | }); 76 | }; 77 | ArticleProvider.prototype.addCommentToArticle = function(articleId, comment, callback) { 78 | this.getCollection(function(error, article_collection) { 79 | if( error ) callback( error ); 80 | else { 81 | article_collection.update( 82 | {_id: article_collection.db.bson_serializer.ObjectID.createFromHexString(articleId)}, 83 | {"$push": {comments: comment}}, 84 | function(error, article){ 85 | if( error ) callback(error); 86 | else callback(null, article) 87 | }); 88 | } 89 | }); 90 | }; 91 | 92 | exports.ArticleProvider = ArticleProvider; -------------------------------------------------------------------------------- /routes/users.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var passport = require('passport'); 4 | var LocalStrategy = require('passport-local').Strategy; 5 | var flash = require('connect-flash'); 6 | var messages = require("express-messages"); 7 | 8 | var User = require('../models/user'); 9 | 10 | 11 | 12 | 13 | 14 | // Register 15 | router.get('/register', function(req, res, next){ 16 | if(req.isAuthenticated()) 17 | res.render('register',{isauth:1}); 18 | else 19 | res.render('register',{isauth:0}); 20 | }); 21 | 22 | // Login 23 | router.get('/login', function(req, res, next){ 24 | if(req.isAuthenticated()) 25 | res.render('login',{isauth:1}); 26 | else 27 | res.render('login',{isauth:0}); 28 | }); 29 | 30 | // Register User 31 | router.post('/register', function(req, res){ 32 | var name = req.body.name; 33 | var email = req.body.email; 34 | var username = req.body.username; 35 | var password = req.body.password; 36 | var password2 = req.body.password2; 37 | var error = {}; 38 | // Validation 39 | req.checkBody('name', 'Name is required').notEmpty(); 40 | req.checkBody('email', 'Email is required').notEmpty(); 41 | req.checkBody('email', 'Email is not valid').isEmail(); 42 | req.checkBody('username', 'Username is required').notEmpty(); 43 | req.checkBody('password', 'Password is required').notEmpty(); 44 | req.checkBody('password2', 'Passwords do not match').equals(req.body.password); 45 | 46 | errors = req.validationErrors(); 47 | 48 | if(errors){ 49 | req.flash('error_msg', "Validation Errors,Please Recheck"); 50 | res.redirect('/users/register'); 51 | } else { 52 | var newUser = new User({ 53 | name: name, 54 | email:email, 55 | username: username, 56 | password: password 57 | }); 58 | 59 | User.createUser(newUser, function(err, user){ 60 | if(err) throw err; 61 | console.log(user); 62 | }); 63 | 64 | req.flash('success_msg', 'You are registered and can now login'); 65 | 66 | res.redirect('/users/login'); 67 | } 68 | }); 69 | 70 | passport.use(new LocalStrategy( 71 | function(username, password, done) { 72 | User.getUserByUsername(username, function(err, user){ 73 | if(err) throw err; 74 | if(!user){ 75 | return done(null, false, {message: 'Unknown User'}); 76 | } 77 | 78 | User.comparePassword(password, user.password, function(err, isMatch){ 79 | if(err) throw err; 80 | if(isMatch){ 81 | return done(null, user); 82 | } else { 83 | return done(null, false, {message: 'Invalid password'}); 84 | } 85 | }); 86 | }); 87 | })); 88 | 89 | passport.serializeUser(function(user, done) { 90 | done(null, user.id); 91 | }); 92 | 93 | passport.deserializeUser(function(id, done) { 94 | User.getUserById(id, function(err, user) { 95 | done(err, user); 96 | }); 97 | }); 98 | 99 | router.post('/login', 100 | passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}), 101 | function(req, res) { 102 | res.redirect('/'); 103 | }); 104 | 105 | router.get('/logout', function(req, res,next){ 106 | req.logout(); 107 | 108 | req.flash('success_msg', 'You are logged out'); 109 | 110 | res.redirect('/'); 111 | }); 112 | 113 | module.exports = router; 114 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var path = require('path'); 3 | var favicon = require('serve-favicon'); 4 | var logger = require('morgan'); 5 | var cookieParser = require('cookie-parser'); 6 | var bodyParser = require('body-parser'); 7 | var session = require('express-session'); 8 | var multer = require('multer'); 9 | var mongoose = require('mongoose'); 10 | var upload = multer({ dest: 'uploads/' }) 11 | var moment = require('moment'); 12 | var expressValidator = require('express-validator'); 13 | var flash = require('connect-flash'); 14 | var messages = require("express-messages"); 15 | var passport = require('passport'); 16 | var LocalStrategy = require('passport-local').Strategy; 17 | var mongo = require('mongodb'); 18 | mongoose.connect('localhost:27017/discussionforum'); 19 | var db = mongoose.connection; 20 | 21 | 22 | 23 | var index = require('./routes/index'); 24 | var users = require('./routes/users'); 25 | 26 | var app = express(); 27 | 28 | // view engine setup 29 | app.set('views', path.join(__dirname, 'views')); 30 | app.set('view engine', 'ejs'); 31 | 32 | 33 | 34 | 35 | // uncomment after placing your favicon in /public 36 | //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 37 | app.use(logger('dev')); 38 | app.use(bodyParser.json()); 39 | app.use(bodyParser.urlencoded({ extended: false })); 40 | app.use(cookieParser()); 41 | app.use(express.static(path.join(__dirname, 'public'))); 42 | 43 | //express session 44 | app.use(session({ 45 | secret: 'secret', 46 | saveUninitialized: true, 47 | resave: true 48 | })); 49 | 50 | // Passport init 51 | app.use(passport.initialize()); 52 | app.use(passport.session()); 53 | 54 | //express-validator 55 | app.use(expressValidator({ 56 | errorFormatter: function(param, msg, value) { 57 | var namespace = param.split('.') 58 | , root = namespace.shift() 59 | , formParam = root; 60 | 61 | while(namespace.length) { 62 | formParam += '[' + namespace.shift() + ']'; 63 | } 64 | return { 65 | param : formParam, 66 | msg : msg, 67 | value : value 68 | }; 69 | } 70 | })); 71 | 72 | //connect flash 73 | app.use(flash()); 74 | app.use(function (req, res, next) { 75 | res.locals.messages = messages(req, res); 76 | next(); 77 | }); 78 | 79 | 80 | 81 | // Make db accessible to our router 82 | app.use(function(req,res,next){ 83 | req.db = db; 84 | next(); 85 | }); 86 | 87 | // Global Vars 88 | app.use(function (req, res, next) { 89 | res.locals.success_msg = req.flash('success_msg'); 90 | res.locals.error_msg = req.flash('error_msg'); 91 | res.locals.error = req.flash('error'); 92 | res.locals.user = req.user || null; 93 | res.locals.isauth = 0; 94 | res.locals.str = ""; 95 | res.locals.arr = []; 96 | res.locals.l = 0; 97 | res.locals.flag = -1; 98 | 99 | 100 | 101 | next(); 102 | }); 103 | 104 | app.use('/', index); 105 | app.use('/users', users); 106 | 107 | // catch 404 and forward to error handler 108 | app.use(function(req, res, next) { 109 | var err = new Error('Not Found'); 110 | err.status = 404; 111 | next(err); 112 | }); 113 | 114 | // error handler 115 | app.use(function(err, req, res, next) { 116 | // set locals, only providing error in development 117 | res.locals.message = err.message; 118 | res.locals.error = req.app.get('env') === 'development' ? err : {}; 119 | 120 | // render the error page 121 | res.status(err.status || 500); 122 | res.render('error'); 123 | }); 124 | 125 | 126 | 127 | module.exports = app; 128 | -------------------------------------------------------------------------------- /routes/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var truncate = require('html-truncate'); 4 | var paginate = require('mongoose-paginate'); 5 | // article 6 | var ArticleProvider = require('../article-provider').ArticleProvider; 7 | var User = require('../models/user'); 8 | //article 9 | var articleProvider = new ArticleProvider('localhost', 27017); 10 | function ensureAuthenticated(req, res, next){ 11 | if(req.isAuthenticated()){ 12 | return next(); 13 | } else { 14 | req.flash('error_msg','You are not logged in'); 15 | res.redirect('/users/login'); 16 | } 17 | } 18 | 19 | 20 | 21 | /* GET home page. */ 22 | router.get('/', function(req, res, next) { 23 | if(req.isAuthenticated()){ 24 | articleProvider.findAll( function(error,docs){ 25 | res.render('index', { isauth:1,articles:docs}); 26 | }) 27 | } 28 | else 29 | { 30 | articleProvider.findAll( function(error,docs){ 31 | res.render('index', { isauth:0,articles:docs}); 32 | }) 33 | } 34 | 35 | 36 | }); 37 | 38 | router.get('/posts/:id?', function(req, res, next) { 39 | if(req.isAuthenticated()){ 40 | articleProvider.findAll( function(error,docs){ 41 | res.render('tagsindex', { isauth:1,articles:docs,tag:req.param('id')}); 42 | }) 43 | } 44 | else 45 | { 46 | articleProvider.findAll( function(error,docs){ 47 | res.render('tagsindex', { isauth:0,articles:docs,tag:req.param('id')}); 48 | }) 49 | } 50 | 51 | 52 | }); 53 | 54 | router.get('/newpost',ensureAuthenticated, function(req, res, next) { 55 | if(req.isAuthenticated()){ 56 | articleProvider.findAll( function(error,docs){ 57 | res.render('newpost', { isauth:1,articles:docs}); 58 | }) 59 | 60 | } 61 | else 62 | { 63 | articleProvider.findAll( function(error,docs){ 64 | res.render('newpost', { isauth:0,articles:docs}); 65 | }) 66 | } 67 | }); 68 | router.post('/newpost', function(req, res){ 69 | articleProvider.save({ 70 | title: req.param('title'), 71 | body: req.param('body'), 72 | truncbody : truncate(req.param('body'),300), 73 | tags: req.param('tags'), 74 | user: req.param('user') 75 | }, function( error, docs) { 76 | res.redirect('/') 77 | }); 78 | }); 79 | 80 | 81 | router.get('/profile',ensureAuthenticated, function(req, res, next) { 82 | if(req.isAuthenticated()){ 83 | articleProvider.findAll( function(error,docs){ 84 | res.render('profile', { isauth:1,articles:docs}); 85 | }) 86 | 87 | } 88 | else 89 | { 90 | articleProvider.findAll( function(error,docs){ 91 | res.render('profile', { isauth:0,articles:docs}); 92 | }) 93 | } 94 | }); 95 | 96 | router.post('/profile',ensureAuthenticated, function(req, res, next) { 97 | var rtitle = req.param('rtitle') ; 98 | var ruser = req.param('ruser'); 99 | articleProvider.findAll( function(error,docs){ 100 | articleProvider.remove(docs,rtitle,ruser, function( error, docs) { 101 | res.redirect('/') 102 | }); 103 | }) 104 | }); 105 | 106 | router.get('/page',ensureAuthenticated, function(req, res, next) { 107 | if(req.isAuthenticated()){ 108 | articleProvider.findAll( function(error,docs){ 109 | res.render('page', { isauth:1,articles:docs}); 110 | }) 111 | 112 | } 113 | else 114 | { 115 | articleProvider.findAll( function(error,docs){ 116 | res.render('page', { isauth:0,articles:docs}); 117 | }) 118 | } 119 | }); 120 | 121 | 122 | router.get('/blog',ensureAuthenticated, function(req, res, next) { 123 | if(req.isAuthenticated()){ 124 | articleProvider.findAll( function(error,docs){ 125 | res.render('blog', { isauth:1,articles:docs}); 126 | }) 127 | 128 | } 129 | else 130 | { 131 | articleProvider.findAll( function(error,docs){ 132 | res.render('blog', { isauth:0,articles:docs}); 133 | }) 134 | } 135 | }); 136 | 137 | 138 | router.get('/archives',ensureAuthenticated, function(req, res, next) { 139 | if(req.isAuthenticated()){ 140 | articleProvider.findAll( function(error,docs){ 141 | res.render('archives', { isauth:1,articles:docs}); 142 | }) 143 | 144 | } 145 | else 146 | { 147 | articleProvider.findAll( function(error,docs){ 148 | res.render('archives', { isauth:0,articles:docs}); 149 | }) 150 | } 151 | }); 152 | 153 | 154 | router.get('/:id?', function(req, res) { 155 | if(req.isAuthenticated()){ 156 | articleProvider.findAll( function(error,docs){ 157 | res.render('single', { isauth:1,articles:docs,id:req.params.id}); 158 | }) 159 | } 160 | else 161 | { 162 | articleProvider.findAll( function(error,docs){ 163 | res.render('single', { isauth:0,articles:docs,id:req.params.id}); 164 | }) 165 | } 166 | }); 167 | 168 | 169 | router.post('/addComment', function(req, res) { 170 | articleProvider.addCommentToArticle(req.param('_id'), { 171 | person: req.param('person'), 172 | comment: req.param('comment'), 173 | created_at: new Date() 174 | } , function( error, docs) { 175 | res.redirect('/' + req.param('_id')) 176 | }); 177 | }); 178 | 179 | 180 | module.exports = router; 181 | -------------------------------------------------------------------------------- /public/js/jquery-migrate-1.2.1.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */ 2 | jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window); -------------------------------------------------------------------------------- /views/newpost.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | Keep It Simple. 12 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 |
40 | 41 |
42 | 43 |
44 | 45 |

Keep It Simple.

46 |

Put your awesome slogan here...

47 | 48 |
49 | 50 |
51 | 52 | 99 | 100 |
101 | 102 | 104 |
105 |
106 |
107 |
108 | New Post: 109 | Title:
110 | 111 | 112 |
113 | Tags:
114 | 115 | <% for(var i=0;i 116 | <% str="" %> 117 | <% if(articles[i].tags){ %> 118 | <% for(var j=0;j 119 | <% flag=-1 %> 120 | <% if(articles[i].tags[j].length==1){ %> 121 | <% str=str+articles[i].tags[j] %> 122 | <% if(!articles[i].tags[j+1]){ %> 123 | <% for(var k=0;k 124 | <% if(str==arr[k]){flag=0} %> 125 | <% } %> 126 | <% if(flag==-1){arr[l]=str;l=l+1} %> 127 | <% } %> 128 | <% } %> 129 | <% if(str==""){ %> 130 | <% for(var k=0;k 131 | <% if(articles[i].tags[j]==arr[k]){flag=0} %> 132 | <% } %> 133 | <% if(flag==-1){arr[l]=articles[i].tags[j];l=l+1} %> 134 | 135 | <% } %> 136 | <% } %> 137 | 138 | <% } %> 139 | <% } %> 140 | <% for(var m=0;m 141 | <% if(arr[m]){ %> 142 | <%= arr[m] %> 143 | <% } %> 144 | <% } %> 145 |
146 | 147 | Body:
148 | 149 |

150 | 151 |
152 |
153 |
154 |
155 | 156 | 158 | 224 | 225 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /public/css/media-queries.css: -------------------------------------------------------------------------------- 1 | /* 2 | ===================================================================== 3 | * Keep It Simple Media Queries 4 | * url: styleshout.com 5 | * 07-12-2014 6 | /* ================================================================== */ 7 | 8 | 9 | /* screenwidth less than or equal 1024px 10 | --------------------------------------------------------------------- */ 11 | @media only screen and (max-width: 1024px) { 12 | 13 | /* header styles 14 | -------------------------------------------------------------- */ 15 | header h1#logo-text { 16 | top: 114px; 17 | left: 18px; 18 | } 19 | header h1#logo-text a { 20 | font: normal 68px Georgia, Serif; 21 | letter-spacing: -4px; 22 | } 23 | 24 | /* sidebar 25 | -------------------------------------------------------------- */ 26 | #sidebar { padding-left: 18px; } 27 | 28 | } 29 | 30 | /* screenwidth less than or equal 900px 31 | --------------------------------------------------------------------- */ 32 | @media only screen and (max-width: 900px) { 33 | 34 | /* header styles 35 | -------------------------------------------------------------- */ 36 | header .header-content { 37 | background: #fff url(img/header-content-bg.png) no-repeat right top; 38 | background-size: 330px 234px; 39 | } 40 | header h1#logo-text a { 41 | font: normal 60px Georgia, Serif; 42 | } 43 | header p#intro { 44 | font: 15px/24px 'opensans-light', Georgia, Serif; 45 | top: 183px; 46 | left: 30px; 47 | } 48 | 49 | } 50 | 51 | /* screenwidth less than 768px - mobile/smaller tablets 52 | ---------------------------------------------------------------------- */ 53 | @media only screen and (max-width: 767px) { 54 | 55 | /* header styles 56 | -------------------------------------------------------------- */ 57 | header, 58 | header .header-content { 59 | height: 276px; 60 | } 61 | header .header-content { 62 | background: #fff url(img/header-content-bg.png) no-repeat 50% top; 63 | padding: 0; 64 | border: none; 65 | } 66 | header h1#logo-text, 67 | header p#intro { 68 | width: 100%; 69 | text-align: center; 70 | position: static; 71 | } 72 | header h1#logo-text { padding-top: 108px; } 73 | header h1#logo-text a { 74 | font: normal 56px Georgia, Serif; 75 | letter-spacing: -3.5px; 76 | } 77 | header p#intro { 78 | font: 15px/24px 'opensans-light', Georgia, Serif; 79 | } 80 | 81 | /* mobile navigation 82 | -------------------------------------------------------------------- */ 83 | #nav-wrap { 84 | z-index: 999; 85 | float: none; 86 | position: absolute; 87 | top: 0; 88 | right: 0; 89 | border-top: 6px solid #9FCC7F; 90 | } 91 | #nav-wrap > a { 92 | text-align: left; 93 | border: none; 94 | font-size: 12px; 95 | height: 54px; 96 | line-height: 54px; 97 | 98 | font: 0/0 a; 99 | text-shadow: none; 100 | color: transparent; 101 | 102 | float: right; 103 | position: relative; 104 | top: 0px; 105 | right: 36px; 106 | } 107 | #nav-wrap > a:before { 108 | font-family: 'FontAwesome'; 109 | content: "\f0c9"; 110 | color: #666666; 111 | margin: 0; 112 | font-size: 25px; 113 | line-height: 54px; 114 | text-align: left; 115 | display: block; 116 | float: right; 117 | } 118 | 119 | /* hide menu panel */ 120 | #nav-wrap ul#nav { 121 | padding: 12px 30px 60px 30px; 122 | margin: 0; 123 | height: auto; 124 | display: none; 125 | clear: both; 126 | /*width: auto; */ 127 | width: 100%; 128 | 129 | float: none; 130 | position: relative; 131 | top: 0; 132 | right: 0; 133 | } 134 | 135 | /* display toggle buttons */ 136 | .no-js #nav-wrap:not( :target ) > a:first-of-type, 137 | .no-js #nav-wrap:target > a:last-of-type { 138 | display: block; 139 | } 140 | .js #nav-wrap a { display: block; } 141 | 142 | /* display menu panels - no JS*/ 143 | .no-js #nav-wrap:target ul#nav { 144 | display: block; 145 | } 146 | 147 | /* remove float left on 1st level list items */ 148 | ul#nav > li { float: none; } 149 | 150 | ul#nav > li { 151 | display: block; 152 | height: auto; 153 | text-align: left; 154 | border-bottom: 1px dotted #D3D5DA; 155 | padding: 6px 0; 156 | } 157 | ul#nav > li:first-child { 158 | border-top: 1px dotted #D3D5DA; 159 | } 160 | 161 | ul#nav li a { 162 | display: block; 163 | width: auto; 164 | padding: 0; 165 | padding: 12px 0; 166 | line-height: 16px; /* reset line-height from 40px */ 167 | border: none; 168 | } 169 | ul#nav li.current > a { 170 | background: none; 171 | border-radius: none; 172 | border: none; 173 | padding: 12px 0; 174 | color: #111; 175 | } 176 | 177 | ul#nav li.has-children > a:after { 178 | content: "+"; 179 | display: inline; 180 | padding-left: 8px; 181 | color: #9FCC7F; 182 | font-weight: bold; 183 | font-size: 18px; 184 | 185 | position: absolute; 186 | right: 10px; 187 | top: 15px; 188 | } 189 | 190 | /* sub menu */ 191 | ul#nav ul { 192 | position: static; /* change position to static */ 193 | border-radius: none; 194 | border: none; 195 | padding-bottom: 0; 196 | } 197 | 198 | /* sub menu anchor links */ 199 | ul#nav ul li a { padding: 6px 15px 6px 8px; } 200 | 201 | /* on hover */ 202 | ul#nav li.has-children:hover > a:after { content: "-"; } 203 | 204 | /* content 205 | -------------------------------------------------------------- */ 206 | #content-wrap { padding-top: 0; } 207 | #content-wrap #main { padding-right: 30px;} 208 | 209 | .page h2, 210 | .entry h2, 211 | .entry h2 a { 212 | font: 28px/36px 'opensans-semibold', sans-serif; 213 | letter-spacing: -.5px; 214 | } 215 | 216 | .entry h2, 217 | .entry .entry-meta, 218 | .page h2 { 219 | text-align: center; 220 | } 221 | 222 | /* sidebar 223 | -------------------------------------------------------------- */ 224 | #sidebar { padding-left: 30px; } 225 | 226 | /* categories */ 227 | #sidebar .widget_categories ul { margin-bottom: 12px; } 228 | #sidebar .widget_categories ul li { 229 | display: inline-block; 230 | margin-right: 6px; 231 | } 232 | 233 | /* entry 234 | -------------------------------------------------------------- */ 235 | .entry .entry-meta ul { margin-top: 9px; } 236 | .entry .entry-meta ul li { } 237 | 238 | /* tags */ 239 | .tags { text-align: center; } 240 | 241 | /* post-nav */ 242 | .post-nav { margin-top: 18px; } 243 | .post-nav li { 244 | display: block; 245 | margin: 0 0 18px 0; 246 | width: 100%; 247 | } 248 | .post-nav li.next { 249 | float: none; 250 | text-align: center; 251 | } 252 | .post-nav li.prev { 253 | float: none; 254 | text-align: center; 255 | } 256 | 257 | /* Comments */ 258 | #comments h3 { 259 | text-align: center; 260 | margin-left: 0; 261 | } 262 | 263 | /* Comments List */ 264 | ol.commentlist { 265 | width: 100%; 266 | margin-left: 0; 267 | } 268 | .commentlist > li { padding-left: 0; } 269 | .commentlist li .avatar { display: none; } 270 | 271 | /* comment form */ 272 | #comments form { 273 | margin-left: 0; 274 | border-bottom: 1px solid #E8E8E8; 275 | } 276 | #comments form input, 277 | #comments form textarea, 278 | #comments form select, 279 | #comments form label { 280 | width: 100%; 281 | float: none; 282 | } 283 | #comments form label { padding-left: 0; } 284 | #comments form div { margin-bottom: 0; } 285 | #comments form input { margin-bottom: 0; } 286 | #comments form .message label { display: block; } 287 | #comments form button.submit { width: 100%; } 288 | 289 | /* page navigation */ 290 | .pagenav { text-align: center; } 291 | 292 | 293 | /* page 294 | -------------------------------------------------------------- */ 295 | .page { border-bottom: 1px solid #E8E8E8; } 296 | 297 | 298 | /* footer 299 | -------------------------------------------------------------- */ 300 | footer .social-links { margin-bottom: 36px; } 301 | footer .social-links li { 302 | font-size: 28px; 303 | line-height: 42px; 304 | margin: 0 8px; 305 | } 306 | footer .navigate { margin-bottom: 30px; } 307 | footer .navigate li { 308 | display: inline-block; 309 | margin-right: 18px; 310 | line-height: 30px; 311 | } 312 | footer .copyright { 313 | border-top: 1px solid #DFDBDB; 314 | padding: 24px 30px 6px 30px; 315 | } 316 | 317 | /* Go To Top Button */ 318 | #go-top { right: 20px; } 319 | #go-top a { 320 | width: 42px; 321 | height: 42px; 322 | line-height: 42px; 323 | } 324 | 325 | } 326 | 327 | 328 | /* screenwidth less than or equal 480px - mobile wide 329 | -------------------------------------------------------------------------- */ 330 | @media only screen and (max-width: 480px) { 331 | 332 | /* header styles 333 | -------------------------------------------------------------- */ 334 | header h1#logo-text { padding-top: 105px; } 335 | header h1#logo-text a { font: normal 52px Georgia, Serif; } 336 | header p#intro { font: 14px/24px 'opensans-light', Georgia, Serif; } 337 | 338 | /* mobile navigation 339 | --------------------------------------------------------------- */ 340 | #nav-wrap > a { right: 30px; } 341 | #nav-wrap { width: 100%; } 342 | #nav-wrap ul#nav { width: 100%; } 343 | 344 | } 345 | 346 | /* screenwidth less than or equal 420px - mobile narrow 347 | -------------------------------------------------------------------------- */ 348 | @media only screen and (max-width: 420px) { 349 | 350 | /* header styles 351 | -------------------------------------------------------------- */ 352 | header, 353 | header .header-content { 354 | height: 260px; 355 | } 356 | header .header-content { 357 | background: #fff url(img/header-content-bg.png) no-repeat 50% top; 358 | background-size: 300px 213px; 359 | } 360 | header h1#logo-text a { 361 | font: normal 46px Georgia, Serif; 362 | } 363 | header p#intro { 364 | font: 13px/24px 'opensans-light', Georgia, Serif; 365 | } 366 | 367 | /* content 368 | -------------------------------------------------------------- */ 369 | #content-wrap { margin-top: -24px; } 370 | 371 | } 372 | 373 | /* make sure the menu is visible on larger screens 374 | -------------------------------------------------------------------------- */ 375 | 376 | @media only screen and (min-width: 768px) { 377 | 378 | #nav-wrap ul#nav { display: block !important; } 379 | 380 | } 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | -------------------------------------------------------------------------------- /public/css/fonts.css: -------------------------------------------------------------------------------- 1 | /* Generated by Font Squirrel (http://www.fontsquirrel.com) */ 2 | 3 | /* 4 | * Merriweather 5 | ================================================================================ */ 6 | 7 | @font-face { 8 | font-family: 'merriweather-heavy'; 9 | src: url('fonts/merriweather/merriweather-black-webfont.eot'); 10 | src: url('fonts/merriweather/merriweather-black-webfont.eot?#iefix') format('embedded-opentype'), 11 | url('fonts/merriweather/merriweather-black-webfont.woff') format('woff'), 12 | url('fonts/merriweather/merriweather-black-webfont.ttf') format('truetype'), 13 | url('fonts/merriweather/merriweather-black-webfont.svg#merriweatherheavy') format('svg'); 14 | font-weight: normal; 15 | font-style: normal; 16 | } 17 | @font-face { 18 | font-family: 'merriweather-bold'; 19 | src: url('fonts/merriweather/merriweather-bold-webfont.eot'); 20 | src: url('fonts/merriweather/merriweather-bold-webfont.eot?#iefix') format('embedded-opentype'), 21 | url('fonts/merriweather/merriweather-bold-webfont.woff') format('woff'), 22 | url('fonts/merriweather/merriweather-bold-webfont.ttf') format('truetype'), 23 | url('fonts/merriweather/merriweather-bold-webfont.svg#merriweatherbold') format('svg'); 24 | font-weight: normal; 25 | font-style: normal; 26 | } 27 | @font-face { 28 | font-family: 'merriweather-bold-italic'; 29 | src: url('fonts/merriweather/merriweather-bolditalic-webfont.eot'); 30 | src: url('fonts/merriweather/merriweather-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), 31 | url('fonts/merriweather/merriweather-bolditalic-webfont.woff') format('woff'), 32 | url('fonts/merriweather/merriweather-bolditalic-webfont.ttf') format('truetype'), 33 | url('fonts/merriweather/merriweather-bolditalic-webfont.svg#merriweatherbold_italic') format('svg'); 34 | font-weight: normal; 35 | font-style: normal; 36 | } 37 | @font-face { 38 | font-family: 'merriweather-heavy-italic'; 39 | src: url('fonts/merriweather/merriweather-heavyitalic-webfont.eot'); 40 | src: url('fonts/merriweather/merriweather-heavyitalic-webfont.eot?#iefix') format('embedded-opentype'), 41 | url('fonts/merriweather/merriweather-heavyitalic-webfont.woff') format('woff'), 42 | url('fonts/merriweather/merriweather-heavyitalic-webfont.ttf') format('truetype'), 43 | url('fonts/merriweather/merriweather-heavyitalic-webfont.svg#merriweatherheavy_italic') format('svg'); 44 | font-weight: normal; 45 | font-style: normal; 46 | } 47 | @font-face { 48 | font-family: 'merriweather-italic'; 49 | src: url('fonts/merriweather/merriweather-italic-webfont.eot'); 50 | src: url('fonts/merriweather/merriweather-italic-webfont.eot?#iefix') format('embedded-opentype'), 51 | url('fonts/merriweather/merriweather-italic-webfont.woff') format('woff'), 52 | url('fonts/merriweather/merriweather-italic-webfont.ttf') format('truetype'), 53 | url('fonts/merriweather/merriweather-italic-webfont.svg#merriweatheritalic') format('svg'); 54 | font-weight: normal; 55 | font-style: normal; 56 | } 57 | @font-face { 58 | font-family: 'merriweather-light'; 59 | src: url('fonts/merriweather/merriweather-light-webfont.eot'); 60 | src: url('fonts/merriweather/merriweather-light-webfont.eot?#iefix') format('embedded-opentype'), 61 | url('fonts/merriweather/merriweather-light-webfont.woff') format('woff'), 62 | url('fonts/merriweather/merriweather-light-webfont.ttf') format('truetype'), 63 | url('fonts/merriweather/merriweather-light-webfont.svg#merriweatherlight') format('svg'); 64 | font-weight: normal; 65 | font-style: normal; 66 | } 67 | @font-face { 68 | font-family: 'merriweather-light-italic'; 69 | src: url('fonts/merriweather/merriweather-lightitalic-webfont.eot'); 70 | src: url('fonts/merriweather/merriweather-lightitalic-webfont.eot?#iefix') format('embedded-opentype'), 71 | url('fonts/merriweather/merriweather-lightitalic-webfont.woff') format('woff'), 72 | url('fonts/merriweather/merriweather-lightitalic-webfont.ttf') format('truetype'), 73 | url('fonts/merriweather/merriweather-lightitalic-webfont.svg#merriweatherlight_italic') format('svg'); 74 | font-weight: normal; 75 | font-style: normal; 76 | } 77 | @font-face { 78 | font-family: 'merriweather-regular'; 79 | src: url('fonts/merriweather/merriweather-regular-webfont.eot'); 80 | src: url('fonts/merriweather/merriweather-regular-webfont.eot?#iefix') format('embedded-opentype'), 81 | url('fonts/merriweather/merriweather-regular-webfont.woff') format('woff'), 82 | url('fonts/merriweather/merriweather-regular-webfont.ttf') format('truetype'), 83 | url('fonts/merriweather/merriweather-regular-webfont.svg#merriweatherregular') format('svg'); 84 | font-weight: normal; 85 | font-style: normal; 86 | } 87 | 88 | /* 89 | * Open Sans 90 | ================================================================================ */ 91 | @font-face { 92 | font-family: 'opensans-regular'; 93 | src: url('fonts/opensans/OpenSans-Regular-webfont.eot'); 94 | src: url('fonts/opensans/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), 95 | url('fonts/opensans/OpenSans-Regular-webfont.woff') format('woff'), 96 | url('fonts/opensans/OpenSans-Regular-webfont.ttf') format('truetype'), 97 | url('fonts/opensans/OpenSans-Regular-webfont.svg#open_sansregular') format('svg'); 98 | font-weight: normal; 99 | font-style: normal; 100 | } 101 | @font-face { 102 | font-family: 'opensans-italic'; 103 | src: url('fonts/opensans/OpenSans-Italic-webfont.eot'); 104 | src: url('fonts/opensans/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'), 105 | url('fonts/opensans/OpenSans-Italic-webfont.woff') format('woff'), 106 | url('fonts/opensans/OpenSans-Italic-webfont.ttf') format('truetype'), 107 | url('fonts/opensans/OpenSans-Italic-webfont.svg#open_sansitalic') format('svg'); 108 | font-weight: normal; 109 | font-style: normal; 110 | } 111 | @font-face { 112 | font-family: 'opensans-light'; 113 | src: url('fonts/opensans/OpenSans-Light-webfont.eot'); 114 | src: url('fonts/opensans/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), 115 | url('fonts/opensans/OpenSans-Light-webfont.woff') format('woff'), 116 | url('fonts/opensans/OpenSans-Light-webfont.ttf') format('truetype'), 117 | url('fonts/opensans/OpenSans-Light-webfont.svg#open_sanslight') format('svg'); 118 | font-weight: normal; 119 | font-style: normal; 120 | } 121 | @font-face { 122 | font-family: 'opensans-light-italic'; 123 | src: url('fonts/opensans/OpenSans-LightItalic-webfont.eot'); 124 | src: url('fonts/opensans/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), 125 | url('fonts/opensans/OpenSans-LightItalic-webfont.woff') format('woff'), 126 | url('fonts/opensans/OpenSans-LightItalic-webfont.ttf') format('truetype'), 127 | url('fonts/opensans/OpenSans-LightItalic-webfont.svg#open_sanslight_italic') format('svg'); 128 | font-weight: normal; 129 | font-style: normal; 130 | } 131 | @font-face { 132 | font-family: 'opensans-semibold'; 133 | src: url('fonts/opensans/OpenSans-Semibold-webfont.eot'); 134 | src: url('fonts/opensans/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), 135 | url('fonts/opensans/OpenSans-Semibold-webfont.woff') format('woff'), 136 | url('fonts/opensans/OpenSans-Semibold-webfont.ttf') format('truetype'), 137 | url('fonts/opensans/OpenSans-Semibold-webfont.svg#open_sanssemibold') format('svg'); 138 | font-weight: normal; 139 | font-style: normal; 140 | } 141 | @font-face { 142 | font-family: 'opensans-semibold-italic'; 143 | src: url('fonts/opensans/OpenSans-SemiboldItalic-webfont.eot'); 144 | src: url('fonts/opensans/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'), 145 | url('fonts/opensans/OpenSans-SemiboldItalic-webfont.woff') format('woff'), 146 | url('fonts/opensans/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'), 147 | url('fonts/opensans/OpenSans-SemiboldItalic-webfont.svg#open_sanssemibold_italic') format('svg'); 148 | font-weight: normal; 149 | font-style: normal; 150 | } 151 | @font-face { 152 | font-family: 'opensans-bold'; 153 | src: url('fonts/opensans/OpenSans-Bold-webfont.eot'); 154 | src: url('fonts/opensans/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'), 155 | url('fonts/opensans/OpenSans-Bold-webfont.woff') format('woff'), 156 | url('fonts/opensans/OpenSans-Bold-webfont.ttf') format('truetype'), 157 | url('fonts/opensans/OpenSans-Bold-webfont.svg#open_sansbold') format('svg'); 158 | font-weight: normal; 159 | font-style: normal; 160 | } 161 | @font-face { 162 | font-family: 'opensans-bold-italic'; 163 | src: url('fonts/opensans/OpenSans-BoldItalic-webfont.eot'); 164 | src: url('fonts/opensans/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), 165 | url('fonts/opensans/OpenSans-BoldItalic-webfont.woff') format('woff'), 166 | url('fonts/opensans/OpenSans-BoldItalic-webfont.ttf') format('truetype'), 167 | url('fonts/opensans/OpenSans-BoldItalic-webfont.svg#open_sansbold_italic') format('svg'); 168 | font-weight: normal; 169 | font-style: normal; 170 | } 171 | @font-face { 172 | font-family: 'opensans-extrabold'; 173 | src: url('fonts/opensans/OpenSans-ExtraBold-webfont.eot'); 174 | src: url('fonts/opensans/OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'), 175 | url('fonts/opensans/OpenSans-ExtraBold-webfont.woff') format('woff'), 176 | url('fonts/opensans/OpenSans-ExtraBold-webfont.ttf') format('truetype'), 177 | url('fonts/opensans/OpenSans-ExtraBold-webfont.svg#open_sansextrabold') format('svg'); 178 | font-weight: normal; 179 | font-style: normal; 180 | } 181 | @font-face { 182 | font-family: 'opensans-extrabold-italic'; 183 | src: url('fonts/opensans/OpenSans-ExtraBoldItalic-webfont.eot'); 184 | src: url('fonts/opensans/OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'), 185 | url('fonts/opensans/OpenSans-ExtraBoldItalic-webfont.woff') format('woff'), 186 | url('fonts/opensans/OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'), 187 | url('fonts/opensans/OpenSans-ExtraBoldItalic-webfont.svg#open_sansextrabold_italic') format('svg'); 188 | font-weight: normal; 189 | font-style: normal; 190 | } 191 | 192 | 193 | 194 | /* 195 | * FIXED for Font-Face Chrome Rendering 196 | ================================================================================ */ 197 | @media screen and (-webkit-min-device-pixel-ratio:0) { 198 | 199 | @font-face { 200 | font-family: 'opensans-semibold'; 201 | src: url('fonts/opensans/OpenSans-Semibold-webfont.svg#open_sanssemibold') format('svg'); 202 | } 203 | 204 | @font-face { 205 | font-family: 'merriweather-bold'; 206 | src: url('fonts/merriweather/merriweather-bold-webfont.svg#merriweatherbold') format('svg'); 207 | } 208 | 209 | 210 | } -------------------------------------------------------------------------------- /views/profile.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | Keep It Simple. 12 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 |
40 | 41 |
42 | 43 |
44 | 45 |

Keep It Simple.

46 |

Put your awesome slogan here...

47 | 48 |
49 | 50 |
51 | 52 | 92 | 93 |
94 | 95 |
96 | 97 |
98 | 99 |
100 | 101 |

Profile

102 |
103 | 104 |

Welcome <%= user.username %>

105 |
    106 |
  • Name: <%= user.name %>
  • 107 |
  • Username: <%= user.username %>
  • 108 |
  • EmailID: <%= user.email %>
  • 109 |
110 |

Posts

111 |
112 | <% for(var i=0;i 113 | <% if(articles[i].user==user.username){ %> 114 | 115 |
116 | 117 |
118 | 119 |

120 | <%= articles[i].title %> 121 |

122 | 123 | 150 | 151 |
152 | 153 |
154 |

<%= articles[i].truncbody %>

155 |
156 |
157 |

158 |

159 | 160 | 161 |                      162 |                      163 |                      164 |                      165 |                      166 |                      167 |                      168 |                      169 |                      170 |                      171 |                      172 |                      173 | 174 |
175 |

176 |
177 |
178 |
179 | 180 |
181 |
182 | <% } %> 183 | <% } %> 184 |
185 | 186 |
187 | 188 | 189 |
190 | 191 | 192 | 194 | 260 | 261 | 262 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | -------------------------------------------------------------------------------- /public/css/font-awesome/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | @fa-font-path: "../fonts"; 5 | //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts"; // for referencing Bootstrap CDN font files directly 6 | @fa-css-prefix: fa; 7 | @fa-version: "4.0.3"; 8 | @fa-border-color: #eee; 9 | @fa-inverse: #fff; 10 | @fa-li-width: (30em / 14); 11 | 12 | @fa-var-glass: "\f000"; 13 | @fa-var-music: "\f001"; 14 | @fa-var-search: "\f002"; 15 | @fa-var-envelope-o: "\f003"; 16 | @fa-var-heart: "\f004"; 17 | @fa-var-star: "\f005"; 18 | @fa-var-star-o: "\f006"; 19 | @fa-var-user: "\f007"; 20 | @fa-var-film: "\f008"; 21 | @fa-var-th-large: "\f009"; 22 | @fa-var-th: "\f00a"; 23 | @fa-var-th-list: "\f00b"; 24 | @fa-var-check: "\f00c"; 25 | @fa-var-times: "\f00d"; 26 | @fa-var-search-plus: "\f00e"; 27 | @fa-var-search-minus: "\f010"; 28 | @fa-var-power-off: "\f011"; 29 | @fa-var-signal: "\f012"; 30 | @fa-var-cog: "\f013"; 31 | @fa-var-trash-o: "\f014"; 32 | @fa-var-home: "\f015"; 33 | @fa-var-file-o: "\f016"; 34 | @fa-var-clock-o: "\f017"; 35 | @fa-var-road: "\f018"; 36 | @fa-var-download: "\f019"; 37 | @fa-var-arrow-circle-o-down: "\f01a"; 38 | @fa-var-arrow-circle-o-up: "\f01b"; 39 | @fa-var-inbox: "\f01c"; 40 | @fa-var-play-circle-o: "\f01d"; 41 | @fa-var-repeat: "\f01e"; 42 | @fa-var-refresh: "\f021"; 43 | @fa-var-list-alt: "\f022"; 44 | @fa-var-lock: "\f023"; 45 | @fa-var-flag: "\f024"; 46 | @fa-var-headphones: "\f025"; 47 | @fa-var-volume-off: "\f026"; 48 | @fa-var-volume-down: "\f027"; 49 | @fa-var-volume-up: "\f028"; 50 | @fa-var-qrcode: "\f029"; 51 | @fa-var-barcode: "\f02a"; 52 | @fa-var-tag: "\f02b"; 53 | @fa-var-tags: "\f02c"; 54 | @fa-var-book: "\f02d"; 55 | @fa-var-bookmark: "\f02e"; 56 | @fa-var-print: "\f02f"; 57 | @fa-var-camera: "\f030"; 58 | @fa-var-font: "\f031"; 59 | @fa-var-bold: "\f032"; 60 | @fa-var-italic: "\f033"; 61 | @fa-var-text-height: "\f034"; 62 | @fa-var-text-width: "\f035"; 63 | @fa-var-align-left: "\f036"; 64 | @fa-var-align-center: "\f037"; 65 | @fa-var-align-right: "\f038"; 66 | @fa-var-align-justify: "\f039"; 67 | @fa-var-list: "\f03a"; 68 | @fa-var-outdent: "\f03b"; 69 | @fa-var-indent: "\f03c"; 70 | @fa-var-video-camera: "\f03d"; 71 | @fa-var-picture-o: "\f03e"; 72 | @fa-var-pencil: "\f040"; 73 | @fa-var-map-marker: "\f041"; 74 | @fa-var-adjust: "\f042"; 75 | @fa-var-tint: "\f043"; 76 | @fa-var-pencil-square-o: "\f044"; 77 | @fa-var-share-square-o: "\f045"; 78 | @fa-var-check-square-o: "\f046"; 79 | @fa-var-arrows: "\f047"; 80 | @fa-var-step-backward: "\f048"; 81 | @fa-var-fast-backward: "\f049"; 82 | @fa-var-backward: "\f04a"; 83 | @fa-var-play: "\f04b"; 84 | @fa-var-pause: "\f04c"; 85 | @fa-var-stop: "\f04d"; 86 | @fa-var-forward: "\f04e"; 87 | @fa-var-fast-forward: "\f050"; 88 | @fa-var-step-forward: "\f051"; 89 | @fa-var-eject: "\f052"; 90 | @fa-var-chevron-left: "\f053"; 91 | @fa-var-chevron-right: "\f054"; 92 | @fa-var-plus-circle: "\f055"; 93 | @fa-var-minus-circle: "\f056"; 94 | @fa-var-times-circle: "\f057"; 95 | @fa-var-check-circle: "\f058"; 96 | @fa-var-question-circle: "\f059"; 97 | @fa-var-info-circle: "\f05a"; 98 | @fa-var-crosshairs: "\f05b"; 99 | @fa-var-times-circle-o: "\f05c"; 100 | @fa-var-check-circle-o: "\f05d"; 101 | @fa-var-ban: "\f05e"; 102 | @fa-var-arrow-left: "\f060"; 103 | @fa-var-arrow-right: "\f061"; 104 | @fa-var-arrow-up: "\f062"; 105 | @fa-var-arrow-down: "\f063"; 106 | @fa-var-share: "\f064"; 107 | @fa-var-expand: "\f065"; 108 | @fa-var-compress: "\f066"; 109 | @fa-var-plus: "\f067"; 110 | @fa-var-minus: "\f068"; 111 | @fa-var-asterisk: "\f069"; 112 | @fa-var-exclamation-circle: "\f06a"; 113 | @fa-var-gift: "\f06b"; 114 | @fa-var-leaf: "\f06c"; 115 | @fa-var-fire: "\f06d"; 116 | @fa-var-eye: "\f06e"; 117 | @fa-var-eye-slash: "\f070"; 118 | @fa-var-exclamation-triangle: "\f071"; 119 | @fa-var-plane: "\f072"; 120 | @fa-var-calendar: "\f073"; 121 | @fa-var-random: "\f074"; 122 | @fa-var-comment: "\f075"; 123 | @fa-var-magnet: "\f076"; 124 | @fa-var-chevron-up: "\f077"; 125 | @fa-var-chevron-down: "\f078"; 126 | @fa-var-retweet: "\f079"; 127 | @fa-var-shopping-cart: "\f07a"; 128 | @fa-var-folder: "\f07b"; 129 | @fa-var-folder-open: "\f07c"; 130 | @fa-var-arrows-v: "\f07d"; 131 | @fa-var-arrows-h: "\f07e"; 132 | @fa-var-bar-chart-o: "\f080"; 133 | @fa-var-twitter-square: "\f081"; 134 | @fa-var-facebook-square: "\f082"; 135 | @fa-var-camera-retro: "\f083"; 136 | @fa-var-key: "\f084"; 137 | @fa-var-cogs: "\f085"; 138 | @fa-var-comments: "\f086"; 139 | @fa-var-thumbs-o-up: "\f087"; 140 | @fa-var-thumbs-o-down: "\f088"; 141 | @fa-var-star-half: "\f089"; 142 | @fa-var-heart-o: "\f08a"; 143 | @fa-var-sign-out: "\f08b"; 144 | @fa-var-linkedin-square: "\f08c"; 145 | @fa-var-thumb-tack: "\f08d"; 146 | @fa-var-external-link: "\f08e"; 147 | @fa-var-sign-in: "\f090"; 148 | @fa-var-trophy: "\f091"; 149 | @fa-var-github-square: "\f092"; 150 | @fa-var-upload: "\f093"; 151 | @fa-var-lemon-o: "\f094"; 152 | @fa-var-phone: "\f095"; 153 | @fa-var-square-o: "\f096"; 154 | @fa-var-bookmark-o: "\f097"; 155 | @fa-var-phone-square: "\f098"; 156 | @fa-var-twitter: "\f099"; 157 | @fa-var-facebook: "\f09a"; 158 | @fa-var-github: "\f09b"; 159 | @fa-var-unlock: "\f09c"; 160 | @fa-var-credit-card: "\f09d"; 161 | @fa-var-rss: "\f09e"; 162 | @fa-var-hdd-o: "\f0a0"; 163 | @fa-var-bullhorn: "\f0a1"; 164 | @fa-var-bell: "\f0f3"; 165 | @fa-var-certificate: "\f0a3"; 166 | @fa-var-hand-o-right: "\f0a4"; 167 | @fa-var-hand-o-left: "\f0a5"; 168 | @fa-var-hand-o-up: "\f0a6"; 169 | @fa-var-hand-o-down: "\f0a7"; 170 | @fa-var-arrow-circle-left: "\f0a8"; 171 | @fa-var-arrow-circle-right: "\f0a9"; 172 | @fa-var-arrow-circle-up: "\f0aa"; 173 | @fa-var-arrow-circle-down: "\f0ab"; 174 | @fa-var-globe: "\f0ac"; 175 | @fa-var-wrench: "\f0ad"; 176 | @fa-var-tasks: "\f0ae"; 177 | @fa-var-filter: "\f0b0"; 178 | @fa-var-briefcase: "\f0b1"; 179 | @fa-var-arrows-alt: "\f0b2"; 180 | @fa-var-users: "\f0c0"; 181 | @fa-var-link: "\f0c1"; 182 | @fa-var-cloud: "\f0c2"; 183 | @fa-var-flask: "\f0c3"; 184 | @fa-var-scissors: "\f0c4"; 185 | @fa-var-files-o: "\f0c5"; 186 | @fa-var-paperclip: "\f0c6"; 187 | @fa-var-floppy-o: "\f0c7"; 188 | @fa-var-square: "\f0c8"; 189 | @fa-var-bars: "\f0c9"; 190 | @fa-var-list-ul: "\f0ca"; 191 | @fa-var-list-ol: "\f0cb"; 192 | @fa-var-strikethrough: "\f0cc"; 193 | @fa-var-underline: "\f0cd"; 194 | @fa-var-table: "\f0ce"; 195 | @fa-var-magic: "\f0d0"; 196 | @fa-var-truck: "\f0d1"; 197 | @fa-var-pinterest: "\f0d2"; 198 | @fa-var-pinterest-square: "\f0d3"; 199 | @fa-var-google-plus-square: "\f0d4"; 200 | @fa-var-google-plus: "\f0d5"; 201 | @fa-var-money: "\f0d6"; 202 | @fa-var-caret-down: "\f0d7"; 203 | @fa-var-caret-up: "\f0d8"; 204 | @fa-var-caret-left: "\f0d9"; 205 | @fa-var-caret-right: "\f0da"; 206 | @fa-var-columns: "\f0db"; 207 | @fa-var-sort: "\f0dc"; 208 | @fa-var-sort-asc: "\f0dd"; 209 | @fa-var-sort-desc: "\f0de"; 210 | @fa-var-envelope: "\f0e0"; 211 | @fa-var-linkedin: "\f0e1"; 212 | @fa-var-undo: "\f0e2"; 213 | @fa-var-gavel: "\f0e3"; 214 | @fa-var-tachometer: "\f0e4"; 215 | @fa-var-comment-o: "\f0e5"; 216 | @fa-var-comments-o: "\f0e6"; 217 | @fa-var-bolt: "\f0e7"; 218 | @fa-var-sitemap: "\f0e8"; 219 | @fa-var-umbrella: "\f0e9"; 220 | @fa-var-clipboard: "\f0ea"; 221 | @fa-var-lightbulb-o: "\f0eb"; 222 | @fa-var-exchange: "\f0ec"; 223 | @fa-var-cloud-download: "\f0ed"; 224 | @fa-var-cloud-upload: "\f0ee"; 225 | @fa-var-user-md: "\f0f0"; 226 | @fa-var-stethoscope: "\f0f1"; 227 | @fa-var-suitcase: "\f0f2"; 228 | @fa-var-bell-o: "\f0a2"; 229 | @fa-var-coffee: "\f0f4"; 230 | @fa-var-cutlery: "\f0f5"; 231 | @fa-var-file-text-o: "\f0f6"; 232 | @fa-var-building-o: "\f0f7"; 233 | @fa-var-hospital-o: "\f0f8"; 234 | @fa-var-ambulance: "\f0f9"; 235 | @fa-var-medkit: "\f0fa"; 236 | @fa-var-fighter-jet: "\f0fb"; 237 | @fa-var-beer: "\f0fc"; 238 | @fa-var-h-square: "\f0fd"; 239 | @fa-var-plus-square: "\f0fe"; 240 | @fa-var-angle-double-left: "\f100"; 241 | @fa-var-angle-double-right: "\f101"; 242 | @fa-var-angle-double-up: "\f102"; 243 | @fa-var-angle-double-down: "\f103"; 244 | @fa-var-angle-left: "\f104"; 245 | @fa-var-angle-right: "\f105"; 246 | @fa-var-angle-up: "\f106"; 247 | @fa-var-angle-down: "\f107"; 248 | @fa-var-desktop: "\f108"; 249 | @fa-var-laptop: "\f109"; 250 | @fa-var-tablet: "\f10a"; 251 | @fa-var-mobile: "\f10b"; 252 | @fa-var-circle-o: "\f10c"; 253 | @fa-var-quote-left: "\f10d"; 254 | @fa-var-quote-right: "\f10e"; 255 | @fa-var-spinner: "\f110"; 256 | @fa-var-circle: "\f111"; 257 | @fa-var-reply: "\f112"; 258 | @fa-var-github-alt: "\f113"; 259 | @fa-var-folder-o: "\f114"; 260 | @fa-var-folder-open-o: "\f115"; 261 | @fa-var-smile-o: "\f118"; 262 | @fa-var-frown-o: "\f119"; 263 | @fa-var-meh-o: "\f11a"; 264 | @fa-var-gamepad: "\f11b"; 265 | @fa-var-keyboard-o: "\f11c"; 266 | @fa-var-flag-o: "\f11d"; 267 | @fa-var-flag-checkered: "\f11e"; 268 | @fa-var-terminal: "\f120"; 269 | @fa-var-code: "\f121"; 270 | @fa-var-reply-all: "\f122"; 271 | @fa-var-mail-reply-all: "\f122"; 272 | @fa-var-star-half-o: "\f123"; 273 | @fa-var-location-arrow: "\f124"; 274 | @fa-var-crop: "\f125"; 275 | @fa-var-code-fork: "\f126"; 276 | @fa-var-chain-broken: "\f127"; 277 | @fa-var-question: "\f128"; 278 | @fa-var-info: "\f129"; 279 | @fa-var-exclamation: "\f12a"; 280 | @fa-var-superscript: "\f12b"; 281 | @fa-var-subscript: "\f12c"; 282 | @fa-var-eraser: "\f12d"; 283 | @fa-var-puzzle-piece: "\f12e"; 284 | @fa-var-microphone: "\f130"; 285 | @fa-var-microphone-slash: "\f131"; 286 | @fa-var-shield: "\f132"; 287 | @fa-var-calendar-o: "\f133"; 288 | @fa-var-fire-extinguisher: "\f134"; 289 | @fa-var-rocket: "\f135"; 290 | @fa-var-maxcdn: "\f136"; 291 | @fa-var-chevron-circle-left: "\f137"; 292 | @fa-var-chevron-circle-right: "\f138"; 293 | @fa-var-chevron-circle-up: "\f139"; 294 | @fa-var-chevron-circle-down: "\f13a"; 295 | @fa-var-html5: "\f13b"; 296 | @fa-var-css3: "\f13c"; 297 | @fa-var-anchor: "\f13d"; 298 | @fa-var-unlock-alt: "\f13e"; 299 | @fa-var-bullseye: "\f140"; 300 | @fa-var-ellipsis-h: "\f141"; 301 | @fa-var-ellipsis-v: "\f142"; 302 | @fa-var-rss-square: "\f143"; 303 | @fa-var-play-circle: "\f144"; 304 | @fa-var-ticket: "\f145"; 305 | @fa-var-minus-square: "\f146"; 306 | @fa-var-minus-square-o: "\f147"; 307 | @fa-var-level-up: "\f148"; 308 | @fa-var-level-down: "\f149"; 309 | @fa-var-check-square: "\f14a"; 310 | @fa-var-pencil-square: "\f14b"; 311 | @fa-var-external-link-square: "\f14c"; 312 | @fa-var-share-square: "\f14d"; 313 | @fa-var-compass: "\f14e"; 314 | @fa-var-caret-square-o-down: "\f150"; 315 | @fa-var-caret-square-o-up: "\f151"; 316 | @fa-var-caret-square-o-right: "\f152"; 317 | @fa-var-eur: "\f153"; 318 | @fa-var-gbp: "\f154"; 319 | @fa-var-usd: "\f155"; 320 | @fa-var-inr: "\f156"; 321 | @fa-var-jpy: "\f157"; 322 | @fa-var-rub: "\f158"; 323 | @fa-var-krw: "\f159"; 324 | @fa-var-btc: "\f15a"; 325 | @fa-var-file: "\f15b"; 326 | @fa-var-file-text: "\f15c"; 327 | @fa-var-sort-alpha-asc: "\f15d"; 328 | @fa-var-sort-alpha-desc: "\f15e"; 329 | @fa-var-sort-amount-asc: "\f160"; 330 | @fa-var-sort-amount-desc: "\f161"; 331 | @fa-var-sort-numeric-asc: "\f162"; 332 | @fa-var-sort-numeric-desc: "\f163"; 333 | @fa-var-thumbs-up: "\f164"; 334 | @fa-var-thumbs-down: "\f165"; 335 | @fa-var-youtube-square: "\f166"; 336 | @fa-var-youtube: "\f167"; 337 | @fa-var-xing: "\f168"; 338 | @fa-var-xing-square: "\f169"; 339 | @fa-var-youtube-play: "\f16a"; 340 | @fa-var-dropbox: "\f16b"; 341 | @fa-var-stack-overflow: "\f16c"; 342 | @fa-var-instagram: "\f16d"; 343 | @fa-var-flickr: "\f16e"; 344 | @fa-var-adn: "\f170"; 345 | @fa-var-bitbucket: "\f171"; 346 | @fa-var-bitbucket-square: "\f172"; 347 | @fa-var-tumblr: "\f173"; 348 | @fa-var-tumblr-square: "\f174"; 349 | @fa-var-long-arrow-down: "\f175"; 350 | @fa-var-long-arrow-up: "\f176"; 351 | @fa-var-long-arrow-left: "\f177"; 352 | @fa-var-long-arrow-right: "\f178"; 353 | @fa-var-apple: "\f179"; 354 | @fa-var-windows: "\f17a"; 355 | @fa-var-android: "\f17b"; 356 | @fa-var-linux: "\f17c"; 357 | @fa-var-dribbble: "\f17d"; 358 | @fa-var-skype: "\f17e"; 359 | @fa-var-foursquare: "\f180"; 360 | @fa-var-trello: "\f181"; 361 | @fa-var-female: "\f182"; 362 | @fa-var-male: "\f183"; 363 | @fa-var-gittip: "\f184"; 364 | @fa-var-sun-o: "\f185"; 365 | @fa-var-moon-o: "\f186"; 366 | @fa-var-archive: "\f187"; 367 | @fa-var-bug: "\f188"; 368 | @fa-var-vk: "\f189"; 369 | @fa-var-weibo: "\f18a"; 370 | @fa-var-renren: "\f18b"; 371 | @fa-var-pagelines: "\f18c"; 372 | @fa-var-stack-exchange: "\f18d"; 373 | @fa-var-arrow-circle-o-right: "\f18e"; 374 | @fa-var-arrow-circle-o-left: "\f190"; 375 | @fa-var-caret-square-o-left: "\f191"; 376 | @fa-var-dot-circle-o: "\f192"; 377 | @fa-var-wheelchair: "\f193"; 378 | @fa-var-vimeo-square: "\f194"; 379 | @fa-var-try: "\f195"; 380 | @fa-var-plus-square-o: "\f196"; 381 | 382 | -------------------------------------------------------------------------------- /public/css/font-awesome/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | $fa-font-path: "../fonts" !default; 5 | //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts" !default; // for referencing Bootstrap CDN font files directly 6 | $fa-css-prefix: fa !default; 7 | $fa-version: "4.0.3" !default; 8 | $fa-border-color: #eee !default; 9 | $fa-inverse: #fff !default; 10 | $fa-li-width: (30em / 14) !default; 11 | 12 | $fa-var-glass: "\f000"; 13 | $fa-var-music: "\f001"; 14 | $fa-var-search: "\f002"; 15 | $fa-var-envelope-o: "\f003"; 16 | $fa-var-heart: "\f004"; 17 | $fa-var-star: "\f005"; 18 | $fa-var-star-o: "\f006"; 19 | $fa-var-user: "\f007"; 20 | $fa-var-film: "\f008"; 21 | $fa-var-th-large: "\f009"; 22 | $fa-var-th: "\f00a"; 23 | $fa-var-th-list: "\f00b"; 24 | $fa-var-check: "\f00c"; 25 | $fa-var-times: "\f00d"; 26 | $fa-var-search-plus: "\f00e"; 27 | $fa-var-search-minus: "\f010"; 28 | $fa-var-power-off: "\f011"; 29 | $fa-var-signal: "\f012"; 30 | $fa-var-cog: "\f013"; 31 | $fa-var-trash-o: "\f014"; 32 | $fa-var-home: "\f015"; 33 | $fa-var-file-o: "\f016"; 34 | $fa-var-clock-o: "\f017"; 35 | $fa-var-road: "\f018"; 36 | $fa-var-download: "\f019"; 37 | $fa-var-arrow-circle-o-down: "\f01a"; 38 | $fa-var-arrow-circle-o-up: "\f01b"; 39 | $fa-var-inbox: "\f01c"; 40 | $fa-var-play-circle-o: "\f01d"; 41 | $fa-var-repeat: "\f01e"; 42 | $fa-var-refresh: "\f021"; 43 | $fa-var-list-alt: "\f022"; 44 | $fa-var-lock: "\f023"; 45 | $fa-var-flag: "\f024"; 46 | $fa-var-headphones: "\f025"; 47 | $fa-var-volume-off: "\f026"; 48 | $fa-var-volume-down: "\f027"; 49 | $fa-var-volume-up: "\f028"; 50 | $fa-var-qrcode: "\f029"; 51 | $fa-var-barcode: "\f02a"; 52 | $fa-var-tag: "\f02b"; 53 | $fa-var-tags: "\f02c"; 54 | $fa-var-book: "\f02d"; 55 | $fa-var-bookmark: "\f02e"; 56 | $fa-var-print: "\f02f"; 57 | $fa-var-camera: "\f030"; 58 | $fa-var-font: "\f031"; 59 | $fa-var-bold: "\f032"; 60 | $fa-var-italic: "\f033"; 61 | $fa-var-text-height: "\f034"; 62 | $fa-var-text-width: "\f035"; 63 | $fa-var-align-left: "\f036"; 64 | $fa-var-align-center: "\f037"; 65 | $fa-var-align-right: "\f038"; 66 | $fa-var-align-justify: "\f039"; 67 | $fa-var-list: "\f03a"; 68 | $fa-var-outdent: "\f03b"; 69 | $fa-var-indent: "\f03c"; 70 | $fa-var-video-camera: "\f03d"; 71 | $fa-var-picture-o: "\f03e"; 72 | $fa-var-pencil: "\f040"; 73 | $fa-var-map-marker: "\f041"; 74 | $fa-var-adjust: "\f042"; 75 | $fa-var-tint: "\f043"; 76 | $fa-var-pencil-square-o: "\f044"; 77 | $fa-var-share-square-o: "\f045"; 78 | $fa-var-check-square-o: "\f046"; 79 | $fa-var-arrows: "\f047"; 80 | $fa-var-step-backward: "\f048"; 81 | $fa-var-fast-backward: "\f049"; 82 | $fa-var-backward: "\f04a"; 83 | $fa-var-play: "\f04b"; 84 | $fa-var-pause: "\f04c"; 85 | $fa-var-stop: "\f04d"; 86 | $fa-var-forward: "\f04e"; 87 | $fa-var-fast-forward: "\f050"; 88 | $fa-var-step-forward: "\f051"; 89 | $fa-var-eject: "\f052"; 90 | $fa-var-chevron-left: "\f053"; 91 | $fa-var-chevron-right: "\f054"; 92 | $fa-var-plus-circle: "\f055"; 93 | $fa-var-minus-circle: "\f056"; 94 | $fa-var-times-circle: "\f057"; 95 | $fa-var-check-circle: "\f058"; 96 | $fa-var-question-circle: "\f059"; 97 | $fa-var-info-circle: "\f05a"; 98 | $fa-var-crosshairs: "\f05b"; 99 | $fa-var-times-circle-o: "\f05c"; 100 | $fa-var-check-circle-o: "\f05d"; 101 | $fa-var-ban: "\f05e"; 102 | $fa-var-arrow-left: "\f060"; 103 | $fa-var-arrow-right: "\f061"; 104 | $fa-var-arrow-up: "\f062"; 105 | $fa-var-arrow-down: "\f063"; 106 | $fa-var-share: "\f064"; 107 | $fa-var-expand: "\f065"; 108 | $fa-var-compress: "\f066"; 109 | $fa-var-plus: "\f067"; 110 | $fa-var-minus: "\f068"; 111 | $fa-var-asterisk: "\f069"; 112 | $fa-var-exclamation-circle: "\f06a"; 113 | $fa-var-gift: "\f06b"; 114 | $fa-var-leaf: "\f06c"; 115 | $fa-var-fire: "\f06d"; 116 | $fa-var-eye: "\f06e"; 117 | $fa-var-eye-slash: "\f070"; 118 | $fa-var-exclamation-triangle: "\f071"; 119 | $fa-var-plane: "\f072"; 120 | $fa-var-calendar: "\f073"; 121 | $fa-var-random: "\f074"; 122 | $fa-var-comment: "\f075"; 123 | $fa-var-magnet: "\f076"; 124 | $fa-var-chevron-up: "\f077"; 125 | $fa-var-chevron-down: "\f078"; 126 | $fa-var-retweet: "\f079"; 127 | $fa-var-shopping-cart: "\f07a"; 128 | $fa-var-folder: "\f07b"; 129 | $fa-var-folder-open: "\f07c"; 130 | $fa-var-arrows-v: "\f07d"; 131 | $fa-var-arrows-h: "\f07e"; 132 | $fa-var-bar-chart-o: "\f080"; 133 | $fa-var-twitter-square: "\f081"; 134 | $fa-var-facebook-square: "\f082"; 135 | $fa-var-camera-retro: "\f083"; 136 | $fa-var-key: "\f084"; 137 | $fa-var-cogs: "\f085"; 138 | $fa-var-comments: "\f086"; 139 | $fa-var-thumbs-o-up: "\f087"; 140 | $fa-var-thumbs-o-down: "\f088"; 141 | $fa-var-star-half: "\f089"; 142 | $fa-var-heart-o: "\f08a"; 143 | $fa-var-sign-out: "\f08b"; 144 | $fa-var-linkedin-square: "\f08c"; 145 | $fa-var-thumb-tack: "\f08d"; 146 | $fa-var-external-link: "\f08e"; 147 | $fa-var-sign-in: "\f090"; 148 | $fa-var-trophy: "\f091"; 149 | $fa-var-github-square: "\f092"; 150 | $fa-var-upload: "\f093"; 151 | $fa-var-lemon-o: "\f094"; 152 | $fa-var-phone: "\f095"; 153 | $fa-var-square-o: "\f096"; 154 | $fa-var-bookmark-o: "\f097"; 155 | $fa-var-phone-square: "\f098"; 156 | $fa-var-twitter: "\f099"; 157 | $fa-var-facebook: "\f09a"; 158 | $fa-var-github: "\f09b"; 159 | $fa-var-unlock: "\f09c"; 160 | $fa-var-credit-card: "\f09d"; 161 | $fa-var-rss: "\f09e"; 162 | $fa-var-hdd-o: "\f0a0"; 163 | $fa-var-bullhorn: "\f0a1"; 164 | $fa-var-bell: "\f0f3"; 165 | $fa-var-certificate: "\f0a3"; 166 | $fa-var-hand-o-right: "\f0a4"; 167 | $fa-var-hand-o-left: "\f0a5"; 168 | $fa-var-hand-o-up: "\f0a6"; 169 | $fa-var-hand-o-down: "\f0a7"; 170 | $fa-var-arrow-circle-left: "\f0a8"; 171 | $fa-var-arrow-circle-right: "\f0a9"; 172 | $fa-var-arrow-circle-up: "\f0aa"; 173 | $fa-var-arrow-circle-down: "\f0ab"; 174 | $fa-var-globe: "\f0ac"; 175 | $fa-var-wrench: "\f0ad"; 176 | $fa-var-tasks: "\f0ae"; 177 | $fa-var-filter: "\f0b0"; 178 | $fa-var-briefcase: "\f0b1"; 179 | $fa-var-arrows-alt: "\f0b2"; 180 | $fa-var-users: "\f0c0"; 181 | $fa-var-link: "\f0c1"; 182 | $fa-var-cloud: "\f0c2"; 183 | $fa-var-flask: "\f0c3"; 184 | $fa-var-scissors: "\f0c4"; 185 | $fa-var-files-o: "\f0c5"; 186 | $fa-var-paperclip: "\f0c6"; 187 | $fa-var-floppy-o: "\f0c7"; 188 | $fa-var-square: "\f0c8"; 189 | $fa-var-bars: "\f0c9"; 190 | $fa-var-list-ul: "\f0ca"; 191 | $fa-var-list-ol: "\f0cb"; 192 | $fa-var-strikethrough: "\f0cc"; 193 | $fa-var-underline: "\f0cd"; 194 | $fa-var-table: "\f0ce"; 195 | $fa-var-magic: "\f0d0"; 196 | $fa-var-truck: "\f0d1"; 197 | $fa-var-pinterest: "\f0d2"; 198 | $fa-var-pinterest-square: "\f0d3"; 199 | $fa-var-google-plus-square: "\f0d4"; 200 | $fa-var-google-plus: "\f0d5"; 201 | $fa-var-money: "\f0d6"; 202 | $fa-var-caret-down: "\f0d7"; 203 | $fa-var-caret-up: "\f0d8"; 204 | $fa-var-caret-left: "\f0d9"; 205 | $fa-var-caret-right: "\f0da"; 206 | $fa-var-columns: "\f0db"; 207 | $fa-var-sort: "\f0dc"; 208 | $fa-var-sort-asc: "\f0dd"; 209 | $fa-var-sort-desc: "\f0de"; 210 | $fa-var-envelope: "\f0e0"; 211 | $fa-var-linkedin: "\f0e1"; 212 | $fa-var-undo: "\f0e2"; 213 | $fa-var-gavel: "\f0e3"; 214 | $fa-var-tachometer: "\f0e4"; 215 | $fa-var-comment-o: "\f0e5"; 216 | $fa-var-comments-o: "\f0e6"; 217 | $fa-var-bolt: "\f0e7"; 218 | $fa-var-sitemap: "\f0e8"; 219 | $fa-var-umbrella: "\f0e9"; 220 | $fa-var-clipboard: "\f0ea"; 221 | $fa-var-lightbulb-o: "\f0eb"; 222 | $fa-var-exchange: "\f0ec"; 223 | $fa-var-cloud-download: "\f0ed"; 224 | $fa-var-cloud-upload: "\f0ee"; 225 | $fa-var-user-md: "\f0f0"; 226 | $fa-var-stethoscope: "\f0f1"; 227 | $fa-var-suitcase: "\f0f2"; 228 | $fa-var-bell-o: "\f0a2"; 229 | $fa-var-coffee: "\f0f4"; 230 | $fa-var-cutlery: "\f0f5"; 231 | $fa-var-file-text-o: "\f0f6"; 232 | $fa-var-building-o: "\f0f7"; 233 | $fa-var-hospital-o: "\f0f8"; 234 | $fa-var-ambulance: "\f0f9"; 235 | $fa-var-medkit: "\f0fa"; 236 | $fa-var-fighter-jet: "\f0fb"; 237 | $fa-var-beer: "\f0fc"; 238 | $fa-var-h-square: "\f0fd"; 239 | $fa-var-plus-square: "\f0fe"; 240 | $fa-var-angle-double-left: "\f100"; 241 | $fa-var-angle-double-right: "\f101"; 242 | $fa-var-angle-double-up: "\f102"; 243 | $fa-var-angle-double-down: "\f103"; 244 | $fa-var-angle-left: "\f104"; 245 | $fa-var-angle-right: "\f105"; 246 | $fa-var-angle-up: "\f106"; 247 | $fa-var-angle-down: "\f107"; 248 | $fa-var-desktop: "\f108"; 249 | $fa-var-laptop: "\f109"; 250 | $fa-var-tablet: "\f10a"; 251 | $fa-var-mobile: "\f10b"; 252 | $fa-var-circle-o: "\f10c"; 253 | $fa-var-quote-left: "\f10d"; 254 | $fa-var-quote-right: "\f10e"; 255 | $fa-var-spinner: "\f110"; 256 | $fa-var-circle: "\f111"; 257 | $fa-var-reply: "\f112"; 258 | $fa-var-github-alt: "\f113"; 259 | $fa-var-folder-o: "\f114"; 260 | $fa-var-folder-open-o: "\f115"; 261 | $fa-var-smile-o: "\f118"; 262 | $fa-var-frown-o: "\f119"; 263 | $fa-var-meh-o: "\f11a"; 264 | $fa-var-gamepad: "\f11b"; 265 | $fa-var-keyboard-o: "\f11c"; 266 | $fa-var-flag-o: "\f11d"; 267 | $fa-var-flag-checkered: "\f11e"; 268 | $fa-var-terminal: "\f120"; 269 | $fa-var-code: "\f121"; 270 | $fa-var-reply-all: "\f122"; 271 | $fa-var-mail-reply-all: "\f122"; 272 | $fa-var-star-half-o: "\f123"; 273 | $fa-var-location-arrow: "\f124"; 274 | $fa-var-crop: "\f125"; 275 | $fa-var-code-fork: "\f126"; 276 | $fa-var-chain-broken: "\f127"; 277 | $fa-var-question: "\f128"; 278 | $fa-var-info: "\f129"; 279 | $fa-var-exclamation: "\f12a"; 280 | $fa-var-superscript: "\f12b"; 281 | $fa-var-subscript: "\f12c"; 282 | $fa-var-eraser: "\f12d"; 283 | $fa-var-puzzle-piece: "\f12e"; 284 | $fa-var-microphone: "\f130"; 285 | $fa-var-microphone-slash: "\f131"; 286 | $fa-var-shield: "\f132"; 287 | $fa-var-calendar-o: "\f133"; 288 | $fa-var-fire-extinguisher: "\f134"; 289 | $fa-var-rocket: "\f135"; 290 | $fa-var-maxcdn: "\f136"; 291 | $fa-var-chevron-circle-left: "\f137"; 292 | $fa-var-chevron-circle-right: "\f138"; 293 | $fa-var-chevron-circle-up: "\f139"; 294 | $fa-var-chevron-circle-down: "\f13a"; 295 | $fa-var-html5: "\f13b"; 296 | $fa-var-css3: "\f13c"; 297 | $fa-var-anchor: "\f13d"; 298 | $fa-var-unlock-alt: "\f13e"; 299 | $fa-var-bullseye: "\f140"; 300 | $fa-var-ellipsis-h: "\f141"; 301 | $fa-var-ellipsis-v: "\f142"; 302 | $fa-var-rss-square: "\f143"; 303 | $fa-var-play-circle: "\f144"; 304 | $fa-var-ticket: "\f145"; 305 | $fa-var-minus-square: "\f146"; 306 | $fa-var-minus-square-o: "\f147"; 307 | $fa-var-level-up: "\f148"; 308 | $fa-var-level-down: "\f149"; 309 | $fa-var-check-square: "\f14a"; 310 | $fa-var-pencil-square: "\f14b"; 311 | $fa-var-external-link-square: "\f14c"; 312 | $fa-var-share-square: "\f14d"; 313 | $fa-var-compass: "\f14e"; 314 | $fa-var-caret-square-o-down: "\f150"; 315 | $fa-var-caret-square-o-up: "\f151"; 316 | $fa-var-caret-square-o-right: "\f152"; 317 | $fa-var-eur: "\f153"; 318 | $fa-var-gbp: "\f154"; 319 | $fa-var-usd: "\f155"; 320 | $fa-var-inr: "\f156"; 321 | $fa-var-jpy: "\f157"; 322 | $fa-var-rub: "\f158"; 323 | $fa-var-krw: "\f159"; 324 | $fa-var-btc: "\f15a"; 325 | $fa-var-file: "\f15b"; 326 | $fa-var-file-text: "\f15c"; 327 | $fa-var-sort-alpha-asc: "\f15d"; 328 | $fa-var-sort-alpha-desc: "\f15e"; 329 | $fa-var-sort-amount-asc: "\f160"; 330 | $fa-var-sort-amount-desc: "\f161"; 331 | $fa-var-sort-numeric-asc: "\f162"; 332 | $fa-var-sort-numeric-desc: "\f163"; 333 | $fa-var-thumbs-up: "\f164"; 334 | $fa-var-thumbs-down: "\f165"; 335 | $fa-var-youtube-square: "\f166"; 336 | $fa-var-youtube: "\f167"; 337 | $fa-var-xing: "\f168"; 338 | $fa-var-xing-square: "\f169"; 339 | $fa-var-youtube-play: "\f16a"; 340 | $fa-var-dropbox: "\f16b"; 341 | $fa-var-stack-overflow: "\f16c"; 342 | $fa-var-instagram: "\f16d"; 343 | $fa-var-flickr: "\f16e"; 344 | $fa-var-adn: "\f170"; 345 | $fa-var-bitbucket: "\f171"; 346 | $fa-var-bitbucket-square: "\f172"; 347 | $fa-var-tumblr: "\f173"; 348 | $fa-var-tumblr-square: "\f174"; 349 | $fa-var-long-arrow-down: "\f175"; 350 | $fa-var-long-arrow-up: "\f176"; 351 | $fa-var-long-arrow-left: "\f177"; 352 | $fa-var-long-arrow-right: "\f178"; 353 | $fa-var-apple: "\f179"; 354 | $fa-var-windows: "\f17a"; 355 | $fa-var-android: "\f17b"; 356 | $fa-var-linux: "\f17c"; 357 | $fa-var-dribbble: "\f17d"; 358 | $fa-var-skype: "\f17e"; 359 | $fa-var-foursquare: "\f180"; 360 | $fa-var-trello: "\f181"; 361 | $fa-var-female: "\f182"; 362 | $fa-var-male: "\f183"; 363 | $fa-var-gittip: "\f184"; 364 | $fa-var-sun-o: "\f185"; 365 | $fa-var-moon-o: "\f186"; 366 | $fa-var-archive: "\f187"; 367 | $fa-var-bug: "\f188"; 368 | $fa-var-vk: "\f189"; 369 | $fa-var-weibo: "\f18a"; 370 | $fa-var-renren: "\f18b"; 371 | $fa-var-pagelines: "\f18c"; 372 | $fa-var-stack-exchange: "\f18d"; 373 | $fa-var-arrow-circle-o-right: "\f18e"; 374 | $fa-var-arrow-circle-o-left: "\f190"; 375 | $fa-var-caret-square-o-left: "\f191"; 376 | $fa-var-dot-circle-o: "\f192"; 377 | $fa-var-wheelchair: "\f193"; 378 | $fa-var-vimeo-square: "\f194"; 379 | $fa-var-try: "\f195"; 380 | $fa-var-plus-square-o: "\f196"; 381 | 382 | -------------------------------------------------------------------------------- /views/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | Keep It Simple. 12 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 |
40 | 41 |
42 | 43 |
44 | 45 |

Keep It Simple.

46 |

Put your awesome slogan here...

47 | 48 |
49 | 50 |
51 | 52 | 100 | 101 |
102 | 103 | 105 |
106 | 107 |
108 | 109 |
110 | 111 | <% for(var i=0;i 112 | 113 |
114 | 115 |
116 | 117 |

118 | <%= articles[i].title %> 119 |

120 | 121 | 148 | 149 |
150 | 151 |
152 |

<%= articles[i].truncbody %>

153 |
154 |
155 |

156 | 157 | 158 | 159 |

160 |
161 |
162 |
163 | 164 |
165 |
166 | <% } %> 167 | 168 | 169 | 170 |
171 | 172 | 255 | 256 |
257 | 258 |
259 | 260 | 261 | 263 | 329 | 330 | 331 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | -------------------------------------------------------------------------------- /public/js/modernizr.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.7.1 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function C(a){j.cssText=a}function D(a,b){return C(n.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a){var e=a[d];if(!F(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),H(e,b,c))}function J(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return I("flexWrap")},s.flexboxlegacy=function(){return I("boxDirection")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!I("indexedDB",a)},s.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(j.backgroundColor,"rgba")},s.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(j.backgroundColor,"rgba")||F(j.backgroundColor,"hsla")},s.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return I("backgroundSize")},s.borderimage=function(){return I("borderImage")},s.borderradius=function(){return I("borderRadius")},s.boxshadow=function(){return I("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return D("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return I("animationName")},s.csscolumns=function(){return I("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),F(j.backgroundImage,"gradient")},s.cssreflections=function(){return I("boxReflect")},s.csstransforms=function(){return!!I("transform")},s.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return I("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var K in s)B(s,K)&&(x=K.toLowerCase(),e[x]=s[K](),v.push((e[x]?"":"no-")+x));return e.input||J(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)B(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},C(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.hasEvent=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=y,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | Keep It Simple. 12 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 |
40 | 41 |
42 | 43 |
44 | 45 |

Keep It Simple.

46 |

Put your awesome slogan here...

47 | 48 |
49 | 50 |
51 | 52 | 98 | 99 |
100 | 101 | 103 |
104 | 105 |
106 | 107 |
108 | 109 |
110 | 111 |

Archives.

112 | 113 |

Lorem ipsum Nisi enim est proident est magna occaecat dolore proident eu ex sunt consectetur consectetur dolore enim nisi exercitation adipisicing magna culpa commodo deserunt ut do Ut occaecat. Lorem ipsum Veniam consequat quis.

114 | 115 | 152 | 153 |
154 | 155 |
156 | 157 |

Archives By Category.

158 | 159 | 167 | 168 | 169 |
170 | 171 |
172 | 173 |

Site Map.

174 | 175 | 183 | 184 |
185 | 186 |
187 | 188 |
189 | 190 |
191 | 192 | 193 | 277 | 278 |
279 | 280 |
281 | 282 | 283 | 285 |
286 | 287 |
288 | 289 |
290 | 299 |
300 | 301 |
302 | 303 |

About Keep It Simple

304 | 305 |

This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. 306 | Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem 307 | nibh id elit. 308 |

309 | 310 |

Lorem ipsum Sed nulla deserunt voluptate elit occaecat culpa cupidatat sit irure sint 311 | sint incididunt cupidatat esse in Ut sed commodo tempor consequat culpa fugiat incididunt.

312 | 313 |
314 | 315 |
316 | 317 |

Photostream

318 | 319 |
    320 |
  • thumbnail
  • 321 |
  • thumbnail
  • 322 |
  • thumbnail
  • 323 |
  • thumbnail
  • 324 |
  • thumbnail
  • 325 |
  • thumbnail
  • 326 |
  • thumbnail
  • 327 |
  • thumbnail
  • 328 |
329 | 330 |
331 | 332 |
333 | 334 | 335 | 342 |
343 | 344 | 345 | 346 |
347 | 348 |
349 | 350 |
351 | 352 | 353 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | -------------------------------------------------------------------------------- /views/single.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | Keep It Simple. 12 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 |
40 | 41 |
42 | 43 |
44 | 45 |

Keep It Simple.

46 |

Put your awesome slogan here...

47 | 48 |
49 | 50 |
51 | 52 | 98 | 99 |
100 | 101 | 103 | <% for(var i=0;i 104 | <% if(articles[i]._id == id) { %> 105 |
106 | 107 |
108 | 109 |
110 | 111 |
112 | 113 |
114 | 115 |

116 | <%= articles[i].title %> 117 |

118 | 119 | 131 | 132 |
133 | 140 |
141 |

<%= articles[i].body %>

142 |
143 | 144 |

145 | Tagged in : 146 | <% if(articles[i].tags) { %> 147 | <% if(articles[i].tags.length!=[]){ %> 148 | <%= articles[i].tags %>, 149 | <% } %> 150 | <% }else{%> 151 | <% for(var j=0;i 152 | <% if(articles[i].tags[j]==""){%> 153 | <%= articles[i].tags[j] %>, 154 | <% } %> 155 | <% } %> 156 | <% } %> 157 |

158 | 159 | 163 | 164 |
165 | <% } %><% } %> 166 | 167 | 169 |
170 |

Comments

171 |
172 | 190 | 191 | 192 | 193 | 194 | 195 | 196 |
197 | 198 | 199 |
200 | 201 | 202 | 286 | 287 |
288 | 289 |
290 | 291 | 293 |
294 | 295 |
296 | 297 |
298 | 307 |
308 | 309 |
310 | 311 |

About Keep It Simple

312 | 313 |

This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. 314 | Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem 315 | nibh id elit. 316 |

317 | 318 |

Lorem ipsum Sed nulla deserunt voluptate elit occaecat culpa cupidatat sit irure sint 319 | sint incididunt cupidatat esse in Ut sed commodo tempor consequat culpa fugiat incididunt.

320 | 321 |
322 | 323 |
324 | 325 |

Photostream

326 | 327 |
    328 |
  • thumbnail
  • 329 |
  • thumbnail
  • 330 |
  • thumbnail
  • 331 |
  • thumbnail
  • 332 |
  • thumbnail
  • 333 |
  • thumbnail
  • 334 |
  • thumbnail
  • 335 |
  • thumbnail
  • 336 |
337 | 338 |
339 | 340 |
341 | 342 | 343 | 350 |
351 | 352 | 353 | 354 |
355 | 356 |
357 | 358 |
359 | 360 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | -------------------------------------------------------------------------------- /views/page.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | Keep It Simple. 12 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 |
40 | 41 |
42 | 43 |
44 | 45 |

Keep It Simple.

46 |

Put your awesome slogan here...

47 | 48 |
49 | 50 |
51 | 52 | 98 | 99 |
100 | 101 | 103 |
104 | 105 |
106 | 107 |
108 | 109 |
110 | 111 |

112 | Sample Page. 113 |

114 | 115 |

Lorem ipsum Nisi enim est proident est magna occaecat dolore proident eu ex sunt consectetur consectetur dolore enim nisi exercitation adipisicing magna culpa commodo deserunt ut do Ut occaecat. Lorem ipsum Veniam consequat quis aliquip dolore minim ex labore dolor Excepteur Duis velit in officia Excepteur officia officia officia cillum ut elit in fugiat incididunt ea ad Ut ut ea ea dolor ex dolor eu magna voluptate irure consectetur.

116 | 117 |

Duis ex ad cupidatat tempor Excepteur cillum cupidatat fugiat nostrud cupidatat dolor sunt sint sit nisi est eu exercitation incididunt adipisicing veniam velit id fugiat enim mollit amet anim veniam dolor dolor irure velit commodo cillum sit nulla ullamco magna amet magna cupidatat qui labore cillum sit in tempor veniam consequat non laborum adipisicing aliqua ea nisi sint ut quis proident ullamco ut dolore culpa occaecat ut laboris in sit minim cupidatat ut dolor voluptate enim veniam consequat occaecat fugiat in adipisicing in amet Ut nulla nisi non ut enim aliqua laborum mollit quis nostrud sed sed.

118 | 119 |

Lorem ipsum Nisi enim est proident est magna occaecat dolore proident eu ex sunt consectetur consectetur dolore enim nisi exercitation adipisicing magna culpa commodo deserunt ut do Ut occaecat. Lorem ipsum Veniam consequat quis aliquip dolore minim ex labore dolor Excepteur Duis velit in officia Excepteur officia officia officia cillum ut elit in fugiat incididunt ea ad Ut ut ea ea dolor ex dolor eu magna voluptate irure consectetur.

120 | 121 |
122 | 123 |
124 | 125 |
Our Process.
126 | 127 |

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, 128 | eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 129 | voluptatem quia voluptas sit aspernatur aut odit aut fugit. 130 |

131 | 132 |
133 | 134 |
135 | 136 |
Our Approach.
137 | 138 |

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, 139 | eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 140 | voluptatem quia voluptas sit aspernatur aut odit aut fugit. 141 |

142 | 143 |
144 | 145 |
146 | 147 |
148 | 149 |
150 | 151 |
Our Goal.
152 | 153 |

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, 154 | eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 155 | voluptatem quia voluptas sit aspernatur aut odit aut fugit. 156 |

157 | 158 |
159 | 160 |
161 | 162 |
Our Mission.
163 | 164 |

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, 165 | eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 166 | voluptatem quia voluptas sit aspernatur aut odit aut fugit. 167 |

168 | 169 |
170 | 171 |
172 | 173 |
174 | 175 |
176 | 177 | 178 | 262 | 263 |
264 | 265 |
266 | 267 | 268 | 270 |
271 | 272 |
273 | 274 |
275 | 284 |
285 | 286 |
287 | 288 |

About Keep It Simple

289 | 290 |

This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. 291 | Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem 292 | nibh id elit. 293 |

294 | 295 |

Lorem ipsum Sed nulla deserunt voluptate elit occaecat culpa cupidatat sit irure sint 296 | sint incididunt cupidatat esse in Ut sed commodo tempor consequat culpa fugiat incididunt.

297 | 298 |
299 | 300 |
301 | 302 |

Photostream

303 | 304 |
    305 |
  • thumbnail
  • 306 |
  • thumbnail
  • 307 |
  • thumbnail
  • 308 |
  • thumbnail
  • 309 |
  • thumbnail
  • 310 |
  • thumbnail
  • 311 |
  • thumbnail
  • 312 |
  • thumbnail
  • 313 |
314 | 315 |
316 | 317 |
318 | 319 | 320 | 327 |
328 | 329 | 330 | 331 |
332 | 333 |
334 | 335 |
336 | 337 | 338 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | --------------------------------------------------------------------------------