/** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const MarkdownBlock = require('./MarkdownBlock.js'); const React = require('react'); // inner blog component for the article itself, without sidebar/header/footer class BlogPost extends React.Component { renderContent() { let content = this.props.content; let hasSplit = false; if (content.split('').length > 1) { hasSplit = (
Read More
); } if (this.props.truncate) { content = content.split('')[0]; return (
{content} {hasSplit}
); } return {content}; } renderAuthorPhoto() { const post = this.props.post; const className = 'authorPhoto' + (post.author && post.authorTitle ? ' authorPhoto-big' : ''); if (post.authorFBID) { return (
); } else if (post.authorImage) { return (
); } else { return null; } } renderTitle() { const post = this.props.post; return (

{post.title}

); } renderPostHeader() { const post = this.props.post; const match = post.path.match(/([0-9]+)\/([0-9]+)\/([0-9]+)/); // Because JavaScript sucks at date handling :( const year = match[1]; const month = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', ][parseInt(match[2], 10) - 1]; const day = parseInt(match[3], 10); return (
{this.renderTitle()}

{month} {day}, {year}

{post.author ? (

{post.author} {post.authorTitle}

) : null} {this.renderAuthorPhoto()}
); } render() { return (
{this.renderPostHeader()} {this.renderContent()}
); } } module.exports = BlogPost;