diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..f8e16fe --- /dev/null +++ b/.babelrc @@ -0,0 +1,7 @@ +{ + "presets": ["@babel/env", "@babel/typescript", "@babel/react"], + "plugins": [ + "@babel/proposal-class-properties", + "@babel/proposal-object-rest-spread" + ] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6cacc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +example/build +/build +dist/ +.netlify + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..984658c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 9 + - 8 diff --git a/README.md b/README.md new file mode 100644 index 0000000..b1d9b20 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# LIBRARY_NAME + +LIBRARY_NAME is a library that... + +A simple "Hello world" would look like this: + +```js +// src/App.js +import new-react-lib from 'new-react-lib' + +export default props => ( +
+) +``` diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..5395ea7 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,12 @@ +.DS_Store + +node_modules + +lib/core/metadata.js +lib/core/MetadataBlog.js + +website/translated_docs +website/build/ +website/yarn.lock +website/node_modules +website/i18n/* diff --git a/docs/docs/introduction.md b/docs/docs/introduction.md new file mode 100644 index 0000000..eafe465 --- /dev/null +++ b/docs/docs/introduction.md @@ -0,0 +1,16 @@ +--- +id: introduction +title: Introduction +--- + +LIBRARY_NAME is a library that... A simple "Hello world" would look like this: + +``` +// src/App.js + +import new-react-lib from 'new-react-lib' + +export default props => ( + +) +``` diff --git a/docs/website/README.md b/docs/website/README.md new file mode 100644 index 0000000..f3da77f --- /dev/null +++ b/docs/website/README.md @@ -0,0 +1,193 @@ +This website was created with [Docusaurus](https://docusaurus.io/). + +# What's In This Document + +* [Get Started in 5 Minutes](#get-started-in-5-minutes) +* [Directory Structure](#directory-structure) +* [Editing Content](#editing-content) +* [Adding Content](#adding-content) +* [Full Documentation](#full-documentation) + +# Get Started in 5 Minutes + +1. Make sure all the dependencies for the website are installed: + +```sh +# Install dependencies +$ yarn +``` +2. Run your dev server: + +```sh +# Start the site +$ yarn start +``` + +## Directory Structure + +Your project file structure should look something like this + +``` +my-docusaurus/ + docs/ + doc-1.md + doc-2.md + doc-3.md + website/ + blog/ + 2016-3-11-oldest-post.md + 2017-10-24-newest-post.md + core/ + node_modules/ + pages/ + static/ + css/ + img/ + package.json + sidebar.json + siteConfig.js +``` + +# Editing Content + +## Editing an existing docs page + +Edit docs by navigating to `docs/` and editing the corresponding document: + +`docs/doc-to-be-edited.md` + +```markdown +--- +id: page-needs-edit +title: This Doc Needs To Be Edited +--- + +Edit me... +``` + +For more information about docs, click [here](https://docusaurus.io/docs/en/navigation) + +## Editing an existing blog post + +Edit blog posts by navigating to `website/blog` and editing the corresponding post: + +`website/blog/post-to-be-edited.md` +```markdown +--- +id: post-needs-edit +title: This Blog Post Needs To Be Edited +--- + +Edit me... +``` + +For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog) + +# Adding Content + +## Adding a new docs page to an existing sidebar + +1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`: + +```md +--- +id: newly-created-doc +title: This Doc Needs To Be Edited +--- + +My new content here.. +``` + +1. Refer to that doc's ID in an existing sidebar in `website/sidebar.json`: + +```javascript +// Add newly-created-doc to the Getting Started category of docs +{ + "docs": { + "Getting Started": [ + "quick-start", + "newly-created-doc" // new doc here + ], + ... + }, + ... +} +``` + +For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation) + +## Adding a new blog post + +1. Make sure there is a header link to your blog in `website/siteConfig.js`: + +`website/siteConfig.js` +```javascript +headerLinks: [ + ... + { blog: true, label: 'Blog' }, + ... +] +``` + +2. Create the blog post with the format `YYYY-MM-DD-My-Blog-Post-Title.md` in `website/blog`: + +`website/blog/2018-05-21-New-Blog-Post.md` + +```markdown +--- +author: Frank Li +authorURL: https://twitter.com/foobarbaz +authorFBID: 503283835 +title: New Blog Post +--- + +Lorem Ipsum... +``` + +For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog) + +## Adding items to your site's top navigation bar + +1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`: + +`website/siteConfig.js` +```javascript +{ + headerLinks: [ + ... + /* you can add docs */ + { doc: 'my-examples', label: 'Examples' }, + /* you can add custom pages */ + { page: 'help', label: 'Help' }, + /* you can add external links */ + { href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' }, + ... + ], + ... +} +``` + +For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation) + +## Adding custom pages + +1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`: +1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element: + +`website/siteConfig.js` +```javascript +{ + headerLinks: [ + ... + { page: 'my-new-custom-page', label: 'My New Custom Page' }, + ... + ], + ... +} +``` + +For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages). + +# Full Documentation + +Full documentation can be found on the [website](https://docusaurus.io/). diff --git a/docs/website/blog/2017-10-24-new-version-1.0.0.md b/docs/website/blog/2017-10-24-new-version-1.0.0.md new file mode 100644 index 0000000..40d7f9b --- /dev/null +++ b/docs/website/blog/2017-10-24-new-version-1.0.0.md @@ -0,0 +1,6 @@ +--- +title: New Version +author: Dev +--- + +This blog post is a Release Note diff --git a/docs/website/core/Footer.js b/docs/website/core/Footer.js new file mode 100644 index 0000000..cd6d339 --- /dev/null +++ b/docs/website/core/Footer.js @@ -0,0 +1,91 @@ +/** + * 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') + +class Footer extends React.Component { + docUrl(doc, language) { + const { baseUrl } = this.props.config + const { docsUrl } = this.props.config + const docsPart = `${docsUrl ? `${docsUrl}/` : ''}` + const langPart = `${language ? `${language}/` : ''}` + return `${baseUrl}${docsPart}${langPart}${doc}` + } + + pageUrl(doc, language) { + const { baseUrl } = this.props.config + return baseUrl + (language ? `${language}/` : '') + doc + } + + render() { + return ( + + ) + } +} + +module.exports = Footer diff --git a/docs/website/package.json b/docs/website/package.json new file mode 100644 index 0000000..4f3814f --- /dev/null +++ b/docs/website/package.json @@ -0,0 +1,15 @@ +{ + "scripts": { + "examples": "docusaurus-examples", + "start": "docusaurus-start", + "build": "docusaurus-build", + "publish-gh-pages": "docusaurus-publish", + "write-translations": "docusaurus-write-translations", + "version": "docusaurus-version", + "rename-version": "docusaurus-rename-version" + }, + "devDependencies": { + "docusaurus": "^1.9.0", + "react": "^16.8.6" + } +} diff --git a/docs/website/pages/en/help.js b/docs/website/pages/en/help.js new file mode 100644 index 0000000..8b00a2c --- /dev/null +++ b/docs/website/pages/en/help.js @@ -0,0 +1,28 @@ +/** + * 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 CompLibrary = require('../../core/CompLibrary.js') + +const { Container } = CompLibrary + +function Help(props) { + return ( +