pebblebed
Version:
Simplified interactions with Google Datastore for NodeJS
117 lines (102 loc) • 2.66 kB
JavaScript
import fs from "fs";
import path from "path";
import React, { Component } from "react";
import { markdown } from "markdown";
import { PebbleTree } from "./src/PebbleTree";
// import { PebbleTreeFactory } from "./src/PebbleTree";
const util = require("util");
const marked = require("marked");
// const pebbleTree = createTree(path.join(__dirname, "./src/structure"));
/*const PebbleTree = new PebbleTreeFactory({
debug: true,
});
PebbleTree.createTree(path.join(__dirname, "./src/structure"));*/
const tree = PebbleTree.getTree();
const components = PebbleTree.getComponentMap();
console.log(util.inspect(tree, {
showHidden: false,
depth: 6,
}));
console.log(util.inspect(components, {
showHidden: false,
depth: 6,
}));
export default {
getSiteProps: () => ({
title: "Pebblebed",
}),
getRoutes: async () => {
return [
{
path: "/",
component: "src/containers/Home",
},
{
path: "/docs",
component: "src/containers/Docs",
getProps: () => ({
})
/*getProps: () => ({
posts,
}),
children: docsObject.map(docs => ({
path: `/docs/${docs.id}`,
component: 'src/containers/Post',
getProps: () => ({
post,
}),
})),*/
},
{
is404: true,
component: "src/containers/404",
},
];
},
renderToHtml: (render, Comp, meta) => {
// const sheet = new ServerStyleSheet()
const html = render(<Comp />);
// const html = render(sheet.collectStyles(<Comp />))
// meta.styleTags = sheet.getStyleElement()
return html;
},
Document: class CustomHtml extends Component {
render() {
const { Html, Head, Body, children, renderMeta } = this.props;
// {renderMeta.styleTags}
return (
<Html>
<Head>
<meta charSet="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</Head>
<Body>
{children}
</Body>
</Html>
);
}
},
webpack: config => {
const renderer = new marked.Renderer();
config.devtool = "cheap-module-source-map";
config.node = {
fs: "empty",
};
config.module.rules[0].oneOf.unshift({
test: /\.md$/,
use: [
{
loader: "html-loader",
},
{
loader: "markdown-loader",
options: {
renderer,
},
},
],
});
return config;
},
};