Skip to content

Commit f73e148

Browse files
committed
Support for guest posts
1 parent 9821f65 commit f73e148

File tree

4 files changed

+42
-14
lines changed

4 files changed

+42
-14
lines changed

site/_core/BlogLayout.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@
66
* LICENSE file in the root directory of this source tree.
77
*/
88

9-
var path = require('path');
109
var React = require('react');
1110
var Site = require('./Site');
12-
var Marked = require('./Marked');
1311
var BlogSidebar = require('./BlogSidebar');
12+
var BlogPost = require('./BlogPost');
1413

1514
var BlogLayout = React.createClass({
1615
render: function() {
@@ -20,12 +19,7 @@ var BlogLayout = React.createClass({
2019
<Site section="blog" title={page.title}>
2120
<section className="content wrap documentationContent">
2221
<BlogSidebar site={site} page={page} />
23-
<div className="inner-content">
24-
<h1>{page.title}</h1>
25-
<p>{new Date(page.date).toLocaleDateString()} by {page.byline}</p>
26-
<hr />
27-
<Marked>{page.content}</Marked>
28-
</div>
22+
<BlogPost post={page} isPermalink={true} />
2923
</section>
3024
</Site>
3125
);

site/_core/BlogPost.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* Copyright (c) 2015, Facebook, Inc.
3+
* All rights reserved.
4+
*
5+
* This source code is licensed under the license found in the
6+
* LICENSE file in the root directory of this source tree.
7+
*/
8+
9+
var React = require('react');
10+
var Marked = require('./Marked');
11+
12+
var BlogPost = React.createClass({
13+
render: function() {
14+
var post = this.props.post;
15+
var isPermalink = this.props.isPermalink;
16+
return (
17+
<div className="inner-content">
18+
<h1>{isPermalink ? post.title : <a href={post.url}>{post.title}</a>}</h1>
19+
<p>{new Date(post.date).toLocaleDateString()} by {post.byline}</p>
20+
{post.guestBio ? <hr /> : null}
21+
{post.guestBio && <p className="guestBio">{
22+
`This guest article contributed by ${post.byline}, ${post.guestBio}.`
23+
}</p>}
24+
<Marked>{post.content}</Marked>
25+
</div>
26+
);
27+
}
28+
});
29+
30+
module.exports = BlogPost;

site/blog/index.html.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var React = require('react');
1111
var Site = require('../_core/Site');
1212
var Marked = require('../_core/Marked');
1313
var BlogSidebar = require('../_core/BlogSidebar');
14+
var BlogPost = require('../_core/BlogPost');
1415

1516
var BlogIndex = React.createClass({
1617
render: function() {
@@ -24,12 +25,7 @@ var BlogIndex = React.createClass({
2425
<section className="content wrap documentationContent">
2526
<BlogSidebar site={site} />
2627
{posts.map(post =>
27-
<div className="inner-content" key={post.permalink}>
28-
<h1><a href={post.url}>{post.title}</a></h1>
29-
<p>{new Date(post.date).toLocaleDateString()} by {post.byline}</p>
30-
<hr />
31-
<Marked url={post.url}>{post.content}</Marked>
32-
</div>
28+
<BlogPost post={post} isPermalink={false} key={post.permalink} />
3329
)}
3430
</section>
3531
</Site>

site/css/graphql.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,14 @@ section.black content {
520520
padding-bottom: 18px;
521521
}
522522

523+
.guestBio {
524+
background: #f9f0f3;
525+
border-top: solid 2px #e0c3c8;
526+
font-style: italic;
527+
margin: 1em -10px;
528+
padding: 10px;
529+
}
530+
523531
.blogContent {
524532
*zoom: 1;
525533
padding-top: 20px;

0 commit comments

Comments
 (0)