Add post written in javascript to demonstrate new js frontmatter capability

This commit is contained in:
Kyle Mathews 2016-12-09 16:15:42 -08:00
parent 066a0cea86
commit e333cb1aad
5 changed files with 393 additions and 289 deletions

View file

@ -0,0 +1,28 @@
const React = require('react')
const DatePicker = require('./single-date-picker')
require('react-dates/css/variables.scss')
require('react-dates/css/styles.scss')
class Post extends React.Component {
render () {
return (
<div>
<h1>{this.props.route.page.data.title}</h1>
<p>Word to the javascript yos</p>
<p>This is the best I think</p>
<p>Cause you can now do stuff like... embed a date picker in your blog posts!</p>
<DatePicker />
<br />
<br />
<p>(No doubt a secret dream of yours)</p>
</div>
)
}
}
export default Post
exports.data = {
title: "A post written in Javascript!",
date: "2016-12-09T12:40:32.169Z",
}

View file

@ -0,0 +1,41 @@
import React from 'react';
import SingleDatePicker from 'react-dates/lib/components/SingleDatePicker';
class SingleDatePickerWrapper extends React.Component {
constructor(props) {
super(props);
this.state = {
focused: false,
date: null,
};
this.onDateChange = this.onDateChange.bind(this);
this.onFocusChange = this.onFocusChange.bind(this);
}
onDateChange(date) {
this.setState({ date });
}
onFocusChange({ focused }) {
this.setState({ focused });
}
render() {
const { focused, date } = this.state;
return (
<SingleDatePicker
{...this.props}
id="date_input"
date={date}
focused={focused}
onDateChange={this.onDateChange}
onFocusChange={this.onFocusChange}
/>
);
}
}
export default SingleDatePickerWrapper;

View file

@ -17,7 +17,8 @@ class BlogIndex extends React.Component {
access(page, 'data.date')
).reverse()
sortedPages.forEach((page) => {
if (access(page, 'file.ext') === 'md' && !include(page.path, '/404')) {
// Posts are those with md extension that are not 404 pages OR have a date (meaning they're a react component post).
if (access(page, 'file.ext') === 'md' && !include(page.path, '/404') || access(page, 'data.date')) {
const title = access(page, 'data.title') || page.path
pageLinks.push(
<li