feat: add core dev files

This commit is contained in:
endiliey 2018-08-08 00:44:53 +08:00
parent 750804646c
commit 4c36e71d1f
2 changed files with 21 additions and 52 deletions

View file

@ -1,55 +1,12 @@
import React from 'react';
import {render} from 'react-dom';
import {BrowserRouter, Route, Switch, Link} from 'react-router-dom';
import blogMetadata from '@generated/blogMetadata';
import docsMetadata from '@generated/docsMetadata';
import Blog from './blog';
import Docs from './docs';
import ReactDOM from 'react-dom';
import {BrowserRouter} from 'react-router-dom';
const renderBlog = props => {
const metadata = blogMetadata.find(blog => blog.path === props.match.path);
return <Blog content={metadata.content} {...props} />;
};
const renderDocs = props => {
const metadata = docsMetadata.find(doc => doc.path === props.match.path);
return <Docs content={metadata.content} {...props} />;
};
import App from './App';
const Home = () => {
const showLink = path => (
<li>
<Link to={path}>{path}</Link>
</li>
);
const blogLinks = blogMetadata.map(blog => showLink(blog.path));
const docsLinks = docsMetadata.map(doc => showLink(doc.path));
return (
<ul>
{'Available Routes'}
{blogLinks}
{docsLinks}
</ul>
);
};
class App extends React.Component {
render() {
return (
<BrowserRouter>
<div>
<Switch>
<Route exact path="/" component={Home} />
{blogMetadata.map(({path, content}) => (
<Route key={path} exact path={path} render={renderBlog} />
))}
{docsMetadata.map(({path}) => (
<Route key={path} exact path={path} render={renderDocs} />
))}
</Switch>
</div>
</BrowserRouter>
);
}
}
render(<App />, document.getElementById('app'));
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById('app')
);

12
lib/core/devTemplate.ejs Normal file
View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<div id="app"></div>
<script src="<%= htmlWebpackPlugin.files.chunks.main.entry %>"></script>
</body>
</html>