Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove jade dependency #711

Merged
merged 1 commit into from
Jul 10, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
"graphql": "0.6.0",
"history": "3.0.0",
"isomorphic-style-loader": "1.0.0",
"jade": "1.11.0",
"jsonwebtoken": "7.0.0",
"markdown-it": "6.0.5",
"node-fetch": "1.5.3",
Expand Down Expand Up @@ -75,7 +74,6 @@
"gaze": "^1.0.0",
"git-repository": "^0.1.4",
"glob": "^7.0.3",
"jade-loader": "^0.8.0",
"json-loader": "^0.5.4",
"mkdirp": "^0.5.1",
"mocha": "^2.5.3",
Expand Down
6 changes: 4 additions & 2 deletions src/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ let renderComplete = (state, callback) => {

// Google Analytics tracking. Don't send 'pageview' event after
// the initial rendering, as it was already sent
window.ga('send', 'pageview');
if (window.ga) {
window.ga('send', 'pageview');
}

callback(true);
};
Expand Down Expand Up @@ -109,7 +111,7 @@ function run() {
query: location.query,
state: location.state,
context,
render: render.bind(undefined, container, location.state),
render: render.bind(undefined, container, location.state), // eslint-disable-line react/jsx-no-bind, max-len
}).catch(err => console.error(err)); // eslint-disable-line no-console
}

Expand Down
42 changes: 42 additions & 0 deletions src/components/Html.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import React, { PropTypes } from 'react';
import { analytics } from '../config';

function Html({ title, description, style, script, children }) {
return (
<html className="no-js" lang="">
<head>
<meta charSet="utf-8" />
<meta httpEquiv="x-ua-compatible" content="ie=edge" />
<title>{title}</title>
<meta name="description" content={description} />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
<style id="css" dangerouslySetInnerHTML={{ __html: style }} />
</head>
<body>
<div id="app" dangerouslySetInnerHTML={{ __html: children }} />
{script && <script src={script} />}
{analytics.google.trackingId &&
<script
dangerouslySetInnerHTML={{ __html:
'window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;' +
`ga('create','${analytics.google.trackingId}','auto');ga('send','pageview')` }}
/>
}
{analytics.google.trackingId &&
<script src="https://www.google-analytics.com/analytics.js" async defer />
}
</body>
</html>
);
}

Html.propTypes = {
title: PropTypes.string.isRequired,
description: PropTypes.string.isRequired,
style: PropTypes.string.isRequired,
script: PropTypes.string,
Copy link

@aimuzov aimuzov Jun 18, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why script didn't required?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I disabled the script in case of server side errors, otherwise the client.js bundle redraws the page without any errors and the developer can fail to notice it.

To remedy this, the server should return the current state to the client, but this is another task)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@frenzzy I'm understood, thank you!

children: PropTypes.string,
};

export default Html;
5 changes: 3 additions & 2 deletions src/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -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}`;
Expand All @@ -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
},

};

Expand Down
47 changes: 0 additions & 47 deletions src/content/about.jade

This file was deleted.

46 changes: 46 additions & 0 deletions src/content/about.md
Original file line number Diff line number Diff line change
@@ -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.
22 changes: 0 additions & 22 deletions src/content/index.jade

This file was deleted.

19 changes: 19 additions & 0 deletions src/content/index.md
Original file line number Diff line number Diff line change
@@ -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)
52 changes: 0 additions & 52 deletions src/content/privacy.jade

This file was deleted.

46 changes: 46 additions & 0 deletions src/content/privacy.md
Original file line number Diff line number Diff line change
@@ -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.
8 changes: 2 additions & 6 deletions src/data/queries/content.js
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand All @@ -23,17 +22,14 @@ 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
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;
Expand Down Expand Up @@ -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);
Expand Down
6 changes: 4 additions & 2 deletions src/routes/error/ErrorPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -23,7 +23,9 @@ function ErrorPage({ error }, context) {
errorMessage = <pre>{error.stack}</pre>;
}

context.setTitle(title);
if (context.setTitle) {
context.setTitle(title);
}

return (
<div>
Expand Down
Loading