Extract blog post truncation logic and add tests (#640)

This commit is contained in:
Yangshun Tay 2018-05-06 09:15:18 -07:00 committed by GitHub
parent 5b3f54741e
commit 8d676e6a5a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 192 additions and 30 deletions

View file

@ -8,32 +8,32 @@
const MarkdownBlock = require('./MarkdownBlock.js');
const React = require('react');
const utils = require('./utils');
// 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('<!--truncate-->').length > 1) {
hasSplit = (
<div className="read-more">
<a
className="button"
href={this.props.config.baseUrl + 'blog/' + this.props.post.path}>
Read More
</a>
</div>
);
}
if (this.props.truncate) {
content = content.split('<!--truncate-->')[0];
return (
<article className="post-content">
<MarkdownBlock>{content}</MarkdownBlock>
{hasSplit}
<MarkdownBlock>
{utils.extractBlogPostBeforeTruncate(this.props.content)}
</MarkdownBlock>
{utils.blogPostHasTruncateMarker(this.props.content) && (
<div className="read-more">
<a
className="button"
href={
this.props.config.baseUrl + 'blog/' + this.props.post.path
}>
Read More
</a>
</div>
)}
</article>
);
}
return <MarkdownBlock>{content}</MarkdownBlock>;
return <MarkdownBlock>{this.props.content}</MarkdownBlock>;
}
renderAuthorPhoto() {