1
1
mirror of https://github.com/c8r/x0.git synced 2024-07-14 16:50:34 +03:00

Merge branch 'master' into next-docs

This commit is contained in:
Brent Jackson 2018-06-25 18:50:04 -04:00
commit 49667ee34c
13 changed files with 95 additions and 17 deletions

View File

@ -27,11 +27,46 @@ npm install -g @compositor/x0
Read more about x0 in our [blog post](https://compositor.io/blog/x0-making-react-component-development-stupid-simple/).
## Getting Started
x0 renders a directory of React components, automatically handling routing based on filename.
Create a `docs` folder and add an `index.js` file.
```jsx
// index.js
import React from 'react'
export default class extends React.Component {
render () {
return (
<h1>Hello</h1>
)
}
}
```
Start a development server by running:
```sh
x0 docs --open
```
To add more pages, add a new component for each route. For example, create an about page:
```jsx
// about.js
import React from 'react'
export default props =>
<h1>About</h1>
```
The about page should now render when navigating to <http://localhost:8080/about>.
## Isolated development environment
```sh
x0 components
x0 docs
```
Options:
@ -44,7 +79,7 @@ Options:
```
```sh
x0 components -op 8080
x0 docs -op 8080
```
@ -53,13 +88,13 @@ x0 components -op 8080
Export static HTML and client-side bundle
```sh
x0 build components
x0 build docs
```
Export static HTML without bundle
```sh
x0 build components --static
x0 build docs --static
```
Options

34
create-x0/cli.js Executable file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env node
const path = require('path')
const init = require('initit')
const chalk = require('chalk')
const [ name ] = process.argv.slice(2)
const template = 'c8r/x0/examples/basic'
if (!name) {
console.log('name is required: $ create-x0 my-project')
process.exit(1)
}
console.log('Creating x0 project ', chalk.green(name))
console.log()
init({
name,
template,
})
.then(res => {
console.log(
chalk.green(
'Successfully created new x0 project'
)
)
process.exit(0)
})
.catch(err => {
console.log(
chalk.red(err)
)
process.exit(1)
})

15
create-x0/package.json Normal file
View File

@ -0,0 +1,15 @@
{
"name": "create-x0",
"version": "1.0.0-1",
"description": "Create an x0 starter project",
"bin": {
"create-x0": "./cli.js"
},
"keywords": [],
"author": "Brent Jackson",
"license": "MIT",
"dependencies": {
"chalk": "^2.4.1",
"initit": "^1.0.0-2"
}
}

View File

@ -11,7 +11,7 @@ npm install
npm start
```
Editing `index.js` will live update in the development server.
Editing `src/index.js` will live update in the development server.
## Static Build

View File

@ -2,8 +2,8 @@
"name": "x0-basic-example",
"private": true,
"scripts": {
"start": "x0 . -o",
"build": "x0 build ."
"start": "x0 src -o",
"build": "x0 build src"
},
"dependencies": {
"@compositor/x0": "^5.0.0"

View File

@ -1,6 +1,6 @@
{
"name": "@compositor/x0",
"version": "6.0.0-4",
"version": "6.0.0",
"description": "Document & develop React components without breaking a sweat",
"main": "index.js",
"bin": {

View File

@ -56,6 +56,8 @@ export const code = ({
return (
<Pre
p={3}
mt={4}
mb={4}
bg='gray'
children={children}
/>

View File

@ -20,7 +20,6 @@ import {
browserEnv()
// make sure this doesn't conflict with webpack tests
global.DIRNAME = 'beep'
const renderJSON = el => render(el).toJSON()
@ -221,7 +220,6 @@ test('SidebarLayout renders', t => {
)
t.snapshot(json)
})
// console.log(require('util').inspect(json, { depth: null }))
const blacklist = {
pre: true

View File

@ -9,9 +9,3 @@ Generated by [AVA](https://ava.li).
> Snapshot 1
'<!DOCTYPE html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="generator" content="Compositor x0"><title>x0</title><style>*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif}</style></head><div id="root"><div class="sc-bxivhb dUiVDW"><h1>Hello</h1></div></div><script src="/bundle.js"></script>'
## static uses getInitialProps method
> Snapshot 1
'<!DOCTYPE html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="generator" content="Compositor x0"><title>x0</title><style>*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif}</style></head><div id="root"><div class="sc-bxivhb dUiVDW"><h1>Hello</h1></div></div><script src="/bundle.js"></script>'

Binary file not shown.

View File

@ -278,7 +278,7 @@ Generated by [AVA](https://ava.li).
> Snapshot 1
<pre
className="sc-kGXeez YhsQM"
className="sc-kGXeez hIJWeT"
/>
## scope.h1 renders

Binary file not shown.