+
+
+ {title}
+
+
+
+
+
+
+
+ {script && }
+ {analytics.google.trackingId &&
+
+ }
+ {analytics.google.trackingId &&
+
+ }
+
+
+ );
+}
+
+Html.propTypes = {
+ title: PropTypes.string.isRequired,
+ description: PropTypes.string.isRequired,
+ style: PropTypes.string.isRequired,
+ script: PropTypes.string,
+ children: PropTypes.string,
+};
+
+export default Html;
diff --git a/src/config.js b/src/config.js
index 7ead528bf..5bf4a39e6 100644
--- a/src/config.js
+++ b/src/config.js
@@ -8,7 +8,6 @@
*/
/* eslint-disable max-len */
-/* jscs:disable maximumLineLength */
export const port = process.env.PORT || 3000;
export const host = process.env.WEBSITE_HOSTNAME || `localhost:${port}`;
@@ -18,7 +17,9 @@ export const databaseUrl = process.env.DATABASE_URL || 'sqlite:database.sqlite';
export const analytics = {
// https://analytics.google.com/
- google: { trackingId: process.env.GOOGLE_TRACKING_ID || 'UA-XXXXX-X' },
+ google: {
+ trackingId: process.env.GOOGLE_TRACKING_ID, // UA-XXXXX-X
+ },
};
diff --git a/src/content/about.jade b/src/content/about.jade
deleted file mode 100644
index 32933efc6..000000000
--- a/src/content/about.jade
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: About Us
-component: ContentPage
----
-p.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean consequat
- tortor fermentum mi fermentum dignissim. Nullam vel ipsum ut ligula elementum
- lobortis. Maecenas aliquam, massa laoreet lacinia pretium, nisi urna venenatis
- tortor, nec imperdiet tellus libero efficitur metus. Fusce semper posuere
- ligula, et facilisis metus bibendum interdum. Mauris at mauris sit amet sem
- pharetra commodo a eu leo. Nam at est non risus cursus maximus. Nam feugiat
- augue libero, id consectetur tortor bibendum non. Quisque nec fringilla lorem.
- Nullam efficitur vulputate mauris, nec maximus leo dignissim id.
-p.
- In hac habitasse platea dictumst. Duis sagittis dui ac ex suscipit maximus.
- Morbi pellentesque venenatis felis sed convallis. Nulla varius, nibh vitae
- placerat tempus, mauris sem elementum ipsum, eget sollicitudin nisl est vel
- purus. Fusce malesuada odio velit, non cursus leo fermentum id. Cras pharetra
- sodales fringilla. Etiam quis est a dolor egestas pellentesque. Maecenas non
- scelerisque purus, congue cursus arcu. Donec vel dapibus mi. Mauris maximus
- posuere placerat. Sed et libero eu nibh tristique mollis a eget lectus. Donec
- interdum augue sollicitudin vehicula hendrerit. Vivamus justo orci, molestie
- ac sollicitudin ac, lobortis at tellus. Etiam rhoncus ullamcorper risus eu
- tempor. Sed porttitor, neque ac efficitur gravida, arcu lacus pharetra dui, in
- consequat elit tellus auctor nulla. Donec placerat elementum diam, vitae
- imperdiet lectus luctus at.
-p.
- Nullam eu feugiat mi. Quisque nec tristique nisl, dignissim dictum leo. Nam
- non quam nisi. Donec rutrum turpis ac diam blandit, id pulvinar mauris
- suscipit. Pellentesque tincidunt libero ultricies risus iaculis, sit amet
- consequat velit blandit. Fusce quis varius nulla. Nullam nisi nisi, suscipit
- ut magna quis, feugiat porta nibh. Sed id enim lectus. Suspendisse elementum
- justo sapien, sit amet consequat orci accumsan et. Aliquam ornare ullamcorper
- sem sed finibus. Nullam ac lacus pulvinar, egestas felis ut, accumsan est.
-p.
- Pellentesque sagittis vehicula sem quis luctus. Proin sodales magna in lorem
- hendrerit aliquam. Integer eu varius orci. Vestibulum ante ipsum primis in
- faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum ante ipsum
- primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut at mauris
- nibh. Suspendisse maximus ac eros at vestibulum.
-p.
- Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque egestas
- tortor et dui consequat faucibus. Nunc vitae odio ornare, venenatis ligula a,
- vulputate nisl. Aenean congue varius ex, sit amet bibendum odio posuere at.
- Nulla facilisi. In finibus, nulla vitae tincidunt ornare, sapien nulla
- fermentum mauris, sed consectetur tortor arcu eget arcu. Vestibulum vel quam
- enim.
diff --git a/src/content/about.md b/src/content/about.md
new file mode 100644
index 000000000..63457210c
--- /dev/null
+++ b/src/content/about.md
@@ -0,0 +1,46 @@
+---
+title: About Us
+component: ContentPage
+---
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean consequat
+tortor fermentum mi fermentum dignissim. Nullam vel ipsum ut ligula elementum
+lobortis. Maecenas aliquam, massa laoreet lacinia pretium, nisi urna venenatis
+tortor, nec imperdiet tellus libero efficitur metus. Fusce semper posuere
+ligula, et facilisis metus bibendum interdum. Mauris at mauris sit amet sem
+pharetra commodo a eu leo. Nam at est non risus cursus maximus. Nam feugiat
+augue libero, id consectetur tortor bibendum non. Quisque nec fringilla lorem.
+Nullam efficitur vulputate mauris, nec maximus leo dignissim id.
+
+In hac habitasse platea dictumst. Duis sagittis dui ac ex suscipit maximus.
+Morbi pellentesque venenatis felis sed convallis. Nulla varius, nibh vitae
+placerat tempus, mauris sem elementum ipsum, eget sollicitudin nisl est vel
+purus. Fusce malesuada odio velit, non cursus leo fermentum id. Cras pharetra
+sodales fringilla. Etiam quis est a dolor egestas pellentesque. Maecenas non
+scelerisque purus, congue cursus arcu. Donec vel dapibus mi. Mauris maximus
+posuere placerat. Sed et libero eu nibh tristique mollis a eget lectus. Donec
+interdum augue sollicitudin vehicula hendrerit. Vivamus justo orci, molestie
+ac sollicitudin ac, lobortis at tellus. Etiam rhoncus ullamcorper risus eu
+tempor. Sed porttitor, neque ac efficitur gravida, arcu lacus pharetra dui, in
+consequat elit tellus auctor nulla. Donec placerat elementum diam, vitae
+imperdiet lectus luctus at.
+
+Nullam eu feugiat mi. Quisque nec tristique nisl, dignissim dictum leo. Nam
+non quam nisi. Donec rutrum turpis ac diam blandit, id pulvinar mauris
+suscipit. Pellentesque tincidunt libero ultricies risus iaculis, sit amet
+consequat velit blandit. Fusce quis varius nulla. Nullam nisi nisi, suscipit
+ut magna quis, feugiat porta nibh. Sed id enim lectus. Suspendisse elementum
+justo sapien, sit amet consequat orci accumsan et. Aliquam ornare ullamcorper
+sem sed finibus. Nullam ac lacus pulvinar, egestas felis ut, accumsan est.
+
+Pellentesque sagittis vehicula sem quis luctus. Proin sodales magna in lorem
+hendrerit aliquam. Integer eu varius orci. Vestibulum ante ipsum primis in
+faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum ante ipsum
+primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut at mauris
+nibh. Suspendisse maximus ac eros at vestibulum.
+
+Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque egestas
+tortor et dui consequat faucibus. Nunc vitae odio ornare, venenatis ligula a,
+vulputate nisl. Aenean congue varius ex, sit amet bibendum odio posuere at.
+Nulla facilisi. In finibus, nulla vitae tincidunt ornare, sapien nulla
+fermentum mauris, sed consectetur tortor arcu eget arcu. Vestibulum vel quam
+enim.
diff --git a/src/content/index.jade b/src/content/index.jade
deleted file mode 100644
index e4a72bab0..000000000
--- a/src/content/index.jade
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: React.js Starter Kit
-component: ContentPage
----
-div
- div
- h3 Runtime Components
- dl
- dt React
- dd A JavaScript library for building user interfaces, developed by Facebook
- dt Flux
- dd Application architecture for building user interfaces
- div
- h3 Development Tools
- dl
- dt Webpack
- dd Compiles front-end source code into modules / bundles
- dt BrowserSync
- dd A lightweight HTTP server for development
- div
- h3 Fork me on GitHub
- p github.com/kriasoft/react-starter-kit
diff --git a/src/content/index.md b/src/content/index.md
new file mode 100644
index 000000000..eb389bf32
--- /dev/null
+++ b/src/content/index.md
@@ -0,0 +1,19 @@
+---
+title: React.js Starter Kit
+component: ContentPage
+---
+### Runtime Components
+
+[React](https://facebook.github.io/react/) - A JavaScript library for building user interfaces, developed by Facebook
+
+[Flux](http://facebook.github.io/flux/) - Application architecture for building user interfaces
+
+### Development Tools
+
+[Webpack](http://webpack.github.io/) - Compiles front-end source code into modules / bundles
+
+[BrowserSync](http://www.browsersync.io/) - A lightweight HTTP server for development
+
+### Fork me on GitHub
+
+[github.com/kriasoft/react-starter-kit](https://github.com/kriasoft/react-starter-kit)
diff --git a/src/content/privacy.jade b/src/content/privacy.jade
deleted file mode 100644
index faa260db0..000000000
--- a/src/content/privacy.jade
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: Privacy Policy
-component: ContentPage
----
-mixin breadcrumb
- ol
- li Home
- li Privacy
-
-p.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean consequat
- tortor fermentum mi fermentum dignissim. Nullam vel ipsum ut ligula elementum
- lobortis. Maecenas aliquam, massa laoreet lacinia pretium, nisi urna venenatis
- tortor, nec imperdiet tellus libero efficitur metus. Fusce semper posuere
- ligula, et facilisis metus bibendum interdum. Mauris at mauris sit amet sem
- pharetra commodo a eu leo. Nam at est non risus cursus maximus. Nam feugiat
- augue libero, id consectetur tortor bibendum non. Quisque nec fringilla lorem.
- Nullam efficitur vulputate mauris, nec maximus leo dignissim id.
-p.
- In hac habitasse platea dictumst. Duis sagittis dui ac ex suscipit maximus.
- Morbi pellentesque venenatis felis sed convallis. Nulla varius, nibh vitae
- placerat tempus, mauris sem elementum ipsum, eget sollicitudin nisl est vel
- purus. Fusce malesuada odio velit, non cursus leo fermentum id. Cras pharetra
- sodales fringilla. Etiam quis est a dolor egestas pellentesque. Maecenas non
- scelerisque purus, congue cursus arcu. Donec vel dapibus mi. Mauris maximus
- posuere placerat. Sed et libero eu nibh tristique mollis a eget lectus. Donec
- interdum augue sollicitudin vehicula hendrerit. Vivamus justo orci, molestie
- ac sollicitudin ac, lobortis at tellus. Etiam rhoncus ullamcorper risus eu
- tempor. Sed porttitor, neque ac efficitur gravida, arcu lacus pharetra dui, in
- consequat elit tellus auctor nulla. Donec placerat elementum diam, vitae
- imperdiet lectus luctus at.
-p.
- Nullam eu feugiat mi. Quisque nec tristique nisl, dignissim dictum leo. Nam
- non quam nisi. Donec rutrum turpis ac diam blandit, id pulvinar mauris
- suscipit. Pellentesque tincidunt libero ultricies risus iaculis, sit amet
- consequat velit blandit. Fusce quis varius nulla. Nullam nisi nisi, suscipit
- ut magna quis, feugiat porta nibh. Sed id enim lectus. Suspendisse elementum
- justo sapien, sit amet consequat orci accumsan et. Aliquam ornare ullamcorper
- sem sed finibus. Nullam ac lacus pulvinar, egestas felis ut, accumsan est.
-p.
- Pellentesque sagittis vehicula sem quis luctus. Proin sodales magna in lorem
- hendrerit aliquam. Integer eu varius orci. Vestibulum ante ipsum primis in
- faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum ante ipsum
- primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut at mauris
- nibh. Suspendisse maximus ac eros at vestibulum.
-p.
- Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque egestas
- tortor et dui consequat faucibus. Nunc vitae odio ornare, venenatis ligula a,
- vulputate nisl. Aenean congue varius ex, sit amet bibendum odio posuere at.
- Nulla facilisi. In finibus, nulla vitae tincidunt ornare, sapien nulla
- fermentum mauris, sed consectetur tortor arcu eget arcu. Vestibulum vel quam
- enim.
diff --git a/src/content/privacy.md b/src/content/privacy.md
new file mode 100644
index 000000000..922c20a04
--- /dev/null
+++ b/src/content/privacy.md
@@ -0,0 +1,46 @@
+---
+title: Privacy Policy
+component: ContentPage
+---
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean consequat
+tortor fermentum mi fermentum dignissim. Nullam vel ipsum ut ligula elementum
+lobortis. Maecenas aliquam, massa laoreet lacinia pretium, nisi urna venenatis
+tortor, nec imperdiet tellus libero efficitur metus. Fusce semper posuere
+ligula, et facilisis metus bibendum interdum. Mauris at mauris sit amet sem
+pharetra commodo a eu leo. Nam at est non risus cursus maximus. Nam feugiat
+augue libero, id consectetur tortor bibendum non. Quisque nec fringilla lorem.
+Nullam efficitur vulputate mauris, nec maximus leo dignissim id.
+
+In hac habitasse platea dictumst. Duis sagittis dui ac ex suscipit maximus.
+Morbi pellentesque venenatis felis sed convallis. Nulla varius, nibh vitae
+placerat tempus, mauris sem elementum ipsum, eget sollicitudin nisl est vel
+purus. Fusce malesuada odio velit, non cursus leo fermentum id. Cras pharetra
+sodales fringilla. Etiam quis est a dolor egestas pellentesque. Maecenas non
+scelerisque purus, congue cursus arcu. Donec vel dapibus mi. Mauris maximus
+posuere placerat. Sed et libero eu nibh tristique mollis a eget lectus. Donec
+interdum augue sollicitudin vehicula hendrerit. Vivamus justo orci, molestie
+ac sollicitudin ac, lobortis at tellus. Etiam rhoncus ullamcorper risus eu
+tempor. Sed porttitor, neque ac efficitur gravida, arcu lacus pharetra dui, in
+consequat elit tellus auctor nulla. Donec placerat elementum diam, vitae
+imperdiet lectus luctus at.
+
+Nullam eu feugiat mi. Quisque nec tristique nisl, dignissim dictum leo. Nam
+non quam nisi. Donec rutrum turpis ac diam blandit, id pulvinar mauris
+suscipit. Pellentesque tincidunt libero ultricies risus iaculis, sit amet
+consequat velit blandit. Fusce quis varius nulla. Nullam nisi nisi, suscipit
+ut magna quis, feugiat porta nibh. Sed id enim lectus. Suspendisse elementum
+justo sapien, sit amet consequat orci accumsan et. Aliquam ornare ullamcorper
+sem sed finibus. Nullam ac lacus pulvinar, egestas felis ut, accumsan est.
+
+Pellentesque sagittis vehicula sem quis luctus. Proin sodales magna in lorem
+hendrerit aliquam. Integer eu varius orci. Vestibulum ante ipsum primis in
+faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum ante ipsum
+primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut at mauris
+nibh. Suspendisse maximus ac eros at vestibulum.
+
+Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque egestas
+tortor et dui consequat faucibus. Nunc vitae odio ornare, venenatis ligula a,
+vulputate nisl. Aenean congue varius ex, sit amet bibendum odio posuere at.
+Nulla facilisi. In finibus, nulla vitae tincidunt ornare, sapien nulla
+fermentum mauris, sed consectetur tortor arcu eget arcu. Vestibulum vel quam
+enim.
diff --git a/src/data/queries/content.js b/src/data/queries/content.js
index ffd9e84f2..d8aaef8ba 100644
--- a/src/data/queries/content.js
+++ b/src/data/queries/content.js
@@ -10,7 +10,6 @@
import fs from 'fs';
import { join } from 'path';
import Promise from 'bluebird';
-import jade from 'jade';
import fm from 'front-matter';
import MarkdownIt from 'markdown-it';
@@ -23,7 +22,7 @@ import ContentType from '../types/ContentType';
const md = new MarkdownIt();
-// A folder with Jade/Markdown/HTML content pages
+// A folder with Markdown/HTML content pages
const CONTENT_DIR = join(__dirname, './content');
// Extract 'front matter' metadata and generate HTML
@@ -31,9 +30,6 @@ const parseContent = (path, fileContent, extension) => {
const fmContent = fm(fileContent);
let htmlContent;
switch (extension) {
- case '.jade':
- htmlContent = jade.render(fmContent.body);
- break;
case '.md':
htmlContent = md.render(fmContent.body);
break;
@@ -73,7 +69,7 @@ async function resolveExtension(path, extension) {
}
async function resolveFileName(path) {
- const extensions = ['.jade', '.md', '.html'];
+ const extensions = ['.md', '.html'];
for (const extension of extensions) {
const maybeFileName = await resolveExtension(path, extension);
diff --git a/src/routes/error/ErrorPage.js b/src/routes/error/ErrorPage.js
index c1830865b..d56d3e096 100644
--- a/src/routes/error/ErrorPage.js
+++ b/src/routes/error/ErrorPage.js
@@ -11,7 +11,7 @@ import React, { PropTypes } from 'react';
import withStyles from 'isomorphic-style-loader/lib/withStyles';
import s from './ErrorPage.css';
-function ErrorPage({ error }, context) {
+export function ErrorPage({ error }, context) {
let title = 'Error';
let content = 'Sorry, a critical error occurred on this page.';
let errorMessage = null;
@@ -23,7 +23,9 @@ function ErrorPage({ error }, context) {
errorMessage =