mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-10 07:37:19 +02:00
chore: move to monorepo (#1297)
* chore: move to monorepo * lint all js file * simplify circleCI * fix failing tests * fix tests due to folder rename * fix test since v1 website is renamed
This commit is contained in:
parent
6b1d2e8c9c
commit
1f91d19a8c
619 changed files with 12713 additions and 26817 deletions
77
packages/docusaurus-1.x/lib/core/BlogPageLayout.js
Normal file
77
packages/docusaurus-1.x/lib/core/BlogPageLayout.js
Normal file
|
@ -0,0 +1,77 @@
|
|||
/**
|
||||
* 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 React = require('react');
|
||||
const BlogPost = require('./BlogPost.js');
|
||||
const BlogSidebar = require('./BlogSidebar.js');
|
||||
const Container = require('./Container.js');
|
||||
const MetadataBlog = require('./MetadataBlog.js');
|
||||
const Site = require('./Site.js');
|
||||
const utils = require('./utils.js');
|
||||
|
||||
// used to generate entire blog pages, i.e. collection of truncated blog posts
|
||||
class BlogPageLayout extends React.Component {
|
||||
getPageURL(page) {
|
||||
let url = `${this.props.config.baseUrl}blog/`;
|
||||
if (page > 0) {
|
||||
url += `page${page + 1}/`;
|
||||
}
|
||||
return url;
|
||||
}
|
||||
|
||||
render() {
|
||||
const perPage = this.props.metadata.perPage;
|
||||
const page = this.props.metadata.page;
|
||||
return (
|
||||
<Site
|
||||
title="Blog"
|
||||
language="en"
|
||||
config={this.props.config}
|
||||
className="blog"
|
||||
metadata={{blog: true, blogListing: true}}>
|
||||
<div className="docMainWrapper wrapper">
|
||||
<BlogSidebar
|
||||
language={this.props.language}
|
||||
config={this.props.config}
|
||||
/>
|
||||
<Container className="mainContainer postContainer blogContainer">
|
||||
<div className="posts">
|
||||
{MetadataBlog.slice(page * perPage, (page + 1) * perPage).map(
|
||||
post => (
|
||||
<BlogPost
|
||||
post={post}
|
||||
content={post.content}
|
||||
truncate
|
||||
key={
|
||||
utils.getPath(post.path, this.props.config.cleanUrl) +
|
||||
post.title
|
||||
}
|
||||
config={this.props.config}
|
||||
/>
|
||||
),
|
||||
)}
|
||||
<div className="docs-prevnext">
|
||||
{page > 0 && (
|
||||
<a className="docs-prev" href={this.getPageURL(page - 1)}>
|
||||
← Prev
|
||||
</a>
|
||||
)}
|
||||
{MetadataBlog.length > (page + 1) * perPage && (
|
||||
<a className="docs-next" href={this.getPageURL(page + 1)}>
|
||||
Next →
|
||||
</a>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</Container>
|
||||
</div>
|
||||
</Site>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = BlogPageLayout;
|
Loading…
Add table
Add a link
Reference in a new issue