-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 70c31de
Showing
52 changed files
with
1,531 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
*/node_modules | ||
*.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM node:8.11.4 | ||
|
||
WORKDIR /app/website | ||
|
||
EXPOSE 3000 35729 | ||
COPY ./docs /app/docs | ||
COPY ./website /app/website | ||
RUN yarn install | ||
|
||
CMD ["yarn", "start"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
version: "3" | ||
|
||
services: | ||
docusaurus: | ||
build: . | ||
ports: | ||
- 3000:3000 | ||
- 35729:35729 | ||
volumes: | ||
- ./docs:/app/docs | ||
- ./website/blog:/app/website/blog | ||
- ./website/core:/app/website/core | ||
- ./website/i18n:/app/website/i18n | ||
- ./website/pages:/app/website/pages | ||
- ./website/static:/app/website/static | ||
- ./website/sidebars.json:/app/website/sidebars.json | ||
- ./website/siteConfig.js:/app/website/siteConfig.js | ||
working_dir: /app/website |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
--- | ||
id: quick-start | ||
title: Quick Start | ||
sidebar_label: Quick Start | ||
--- | ||
|
||
Ara is a framework to easily develop and integrate Micro-frontends using [Airbnb's Hypernova](https://github.com/airbnb/hypernova). We use to call **Nova** to each Hypernova service. | ||
|
||
## Installing Ara CLI | ||
|
||
Ara has it's own CLI to perform common tasks such as create Nova services, and more. | ||
|
||
Install Ara CLI: | ||
|
||
```shell | ||
npm i -g ara-cli | ||
``` | ||
|
||
## Create a Nova service | ||
|
||
Ara CLI supports several templates for different JavaScript libraries such as: | ||
|
||
- Vue.js | ||
- Angular | ||
- Svelte | ||
- Preact | ||
- Hyperapp | ||
|
||
You can create a new Nova service running the following command: | ||
|
||
```shell | ||
ara new:nova novas/global | ||
``` | ||
|
||
The command by default creates a Nova service using Vue.js but you can use another template using the `-t` parameter: | ||
|
||
```shell | ||
ara new:nova novas/global -t vue | ||
``` | ||
|
||
The service created contains the entry point for the Nova server in `src/index.js` and the entry point for the browser in `src/client.js`. | ||
|
||
## Run the Nova service. | ||
|
||
```shell | ||
npm run dev | ||
``` | ||
|
||
This command executes the Nova sever on `http://localhost:3000` and it restarts the server every time the code changes. | ||
|
||
## Test the Nova service | ||
|
||
Once the Nova service is running you can make a `POST` request to `http://localhost:3000` using a payload like: | ||
|
||
```json | ||
{ | ||
"uuid": { | ||
"name": "Example", | ||
"data": { | ||
"title": "Ara Framework" | ||
} | ||
} | ||
} | ||
``` | ||
|
||
You can request more than one view: | ||
|
||
```json | ||
{ | ||
"uuid": { | ||
"name": "Example", | ||
"data": { | ||
"title": "Ara Framework" | ||
} | ||
}, | ||
"uuid-2": { | ||
"name": "Example", | ||
"data": { | ||
"title": "Ara Framework 2" | ||
} | ||
} | ||
} | ||
``` | ||
|
||
The `results` property in the response contains the `html` of view rendered by the Nova. | ||
|
||
Example: | ||
|
||
```json | ||
{ | ||
"success": true, | ||
"error": null, | ||
"results": { | ||
"uuid": { | ||
"name": "Example", | ||
"html": "<div data-hypernova-key=\"Example\" data-hypernova-id=\"4d9e81bd-6413-4661-ab56-ed5bb4f59cae\"><h1 data-server-rendered=\"true\">Ara Framework</h1></div>\n<script type=\"application/json\" data-hypernova-key=\"Example\" data-hypernova-id=\"4d9e81bd-6413-4661-ab56-ed5bb4f59cae\"><!--{\"title\":\"Ara Framework\"}--></script>", | ||
"meta": {}, | ||
"duration": 1.210146, | ||
"statusCode": 200, | ||
"success": true, | ||
"error": null | ||
}, | ||
"uuid-2": { | ||
"name": "Example", | ||
"html": "<div data-hypernova-key=\"Example\" data-hypernova-id=\"dea96da6-ef16-40fd-84ec-85bca4c7bc5d\"><h1 data-server-rendered=\"true\">Ara Framework 2</h1></div>\n<script type=\"application/json\" data-hypernova-key=\"Example\" data-hypernova-id=\"dea96da6-ef16-40fd-84ec-85bca4c7bc5d\"><!--{\"title\":\"Ara Framework 2\"}--></script>", | ||
"meta": {}, | ||
"duration": 0.461026, | ||
"statusCode": 200, | ||
"success": true, | ||
"error": null | ||
} | ||
} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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/). |
Oops, something went wrong.