Skip to content

Commit

Permalink
misc(v2): change blog front matter to snake_case
Browse files Browse the repository at this point in the history
  • Loading branch information
yangshun committed Nov 14, 2019
1 parent 472a1a6 commit 33638f4
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ author: Gao Wei
authorTitle: Docusaurus Core Team
authorURL: https://github.com/wgao19
authorImageURL: https://avatars1.githubusercontent.com/u/2055384?v=4
authorTwitter: wgao19
tags: [hola, docusaurus]
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ author: Endilie Yacop Sucipto
authorTitle: Maintainer of Docusaurus
authorURL: https://github.com/endiliey
authorImageURL: https://avatars1.githubusercontent.com/u/17883920?s=460&v=4
authorTwitter: endiliey
tags: [hello, docusaurus]
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ author: Yangshun Tay
authorTitle: Front End Engineer @ Facebook
authorURL: https://github.com/yangshun
authorImageURL: https://avatars0.githubusercontent.com/u/1315101?s=400&v=4
authorTwitter: yangshunz
tags: [facebook, hello, docusaurus]
---

Expand Down
19 changes: 14 additions & 5 deletions packages/docusaurus-plugin-content-blog/src/blogUtils.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
/**
* 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.
*/

import fs from 'fs-extra';
import globby from 'globby';
import path from 'path';
Expand All @@ -11,7 +18,7 @@ export function truncate(fileString: string, truncateMarker: RegExp | string) {
}

// YYYY-MM-DD-{name}.mdx?
// prefer named capture, but old node version do not support
// prefer named capture, but old Node version does not support.
const FILENAME_PATTERN = /^(\d{4}-\d{1,2}-\d{1,2})-?(.*?).mdx?$/;

function toUrl({date, link}: DateLink) {
Expand Down Expand Up @@ -93,7 +100,8 @@ export async function generateBlogPosts(

await Promise.all(
blogFiles.map(async (relativeSource: string) => {
// Cannot use path.join() as it resolves '../' and removes the '@site'. Let webpack loader resolve it.
// Cannot use path.join() as it resolves '../' and removes the '@site'.
// Let webpack loader resolve it.
const source = path.join(blogDir, relativeSource);
const aliasedSource = `@site/${path.relative(siteDir, source)}`;
const blogFileName = path.basename(relativeSource);
Expand All @@ -102,19 +110,19 @@ export async function generateBlogPosts(
const {frontMatter, excerpt} = parse(fileString);

let date;
// extract date and title from filename
// Extract date and title from filename.
const match = blogFileName.match(FILENAME_PATTERN);
let linkName = blogFileName.replace(/\.mdx?$/, '');
if (match) {
const [, dateString, name] = match;
date = new Date(dateString);
linkName = name;
}
// prefer usedefined date
// Prefer user-defined date.
if (frontMatter.date) {
date = new Date(frontMatter.date);
}
// use file create time for blog
// Use file create time for blog.
date = date || (await fs.stat(source)).birthtime;
frontMatter.title = frontMatter.title || linkName;

Expand All @@ -135,6 +143,7 @@ export async function generateBlogPosts(
});
}),
);

blogPosts.sort(
(a, b) => b.metadata.date.getTime() - a.metadata.date.getTime(),
);
Expand Down
1 change: 1 addition & 0 deletions packages/docusaurus-plugin-content-blog/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import fs from 'fs-extra';
import _ from 'lodash';
import path from 'path';
Expand Down
41 changes: 22 additions & 19 deletions packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,21 @@ import MDXComponents from '@theme/MDXComponents';

import styles from './styles.module.css';

const MONTHS = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
];

function BlogPostItem(props) {
const {
children,
Expand All @@ -23,32 +38,20 @@ function BlogPostItem(props) {
isBlogPostPage = false,
} = props;
const {date, permalink, tags} = metadata;
const {author, authorURL, authorTitle, authorFBID, title} = frontMatter;
const {author, title} = frontMatter;

const authorURL = frontMatter.author_url || frontMatter.authorURL;
const authorTitle = frontMatter.author_title || frontMatter.authorTitle;
const authorImageURL =
frontMatter.author_image_url || frontMatter.authorImageURL;

const renderPostHeader = () => {
const TitleHeading = isBlogPostPage ? 'h1' : 'h2';
const match = date.substring(0, 10).split('-');
const year = match[0];
const month = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
][parseInt(match[1], 10) - 1];
const month = MONTHS[parseInt(match[1], 10) - 1];
const day = parseInt(match[2], 10);

const authorImageURL = authorFBID
? `https://graph.facebook.com/${authorFBID}/picture/?height=200&width=200`
: frontMatter.authorImageURL;

return (
<header>
<TitleHeading
Expand Down
3 changes: 1 addition & 2 deletions website/docs/blog.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ title: Welcome Docusaurus v2
author: Dattatreya Tripathy
authorTitle: Contributor of Docusaurus 2
authorURL: https://github.com/dt97
authorTwitter: CuriousDT
tags: [hello, docusaurus-v2]
---
Welcome to this blog. This blog is created with [**Docusaurus 2 alpha**](https://v2.docusaurus.io/).
Expand All @@ -47,7 +46,7 @@ The only required field is `title`; however, we provide options to add author in

- `author` - The author name to be displayed.
- `authorURL` - The URL that the author's name will be linked to. This could be a GitHub, Twitter, Facebook account URL, etc.
- `authorImageURL` - The URL to the author's image. (Note: If you use both `authorFBID` and `authorImageURL`, `authorFBID` will take precedence. Don't include `authorFBID` if you want `authorImageURL` to appear.)
- `authorImageURL` - The URL to the author's image.
- `title` - The blog post title.
- `tags` - A list of strings to tag to your post.

Expand Down

0 comments on commit 33638f4

Please sign in to comment.