1const express = require("express");
3const babel = require('@babel/core')
4const React = require('react')
5const { renderToStaticMarkup } = require('react-dom/server')
6const mdx = require('@mdx-js/mdx')
7const { MDXProvider, mdx: createElement } = require('@mdx-js/react')
9const expressMiddleWare = router => {
10 router.use(express.text())
11 router.use("/mdx", async (req, res) => {
12 const rendered = await renderWithReact(req.body)
17const transform = code =>
18 babel.transform(code, {
20 '@babel/plugin-transform-react-jsx',
21 '@babel/plugin-proposal-object-rest-spread'
25const renderWithReact = async mdxCode => {
26 const jsx = await mdx(mdxCode, { skipExport: true })
27 const code = transform(jsx)
28 const fn = new Function(
31 `${code}; return React.createElement(MDXContent)`
33 const element = fn(React, createElement)
36 React.createElement('h1', { style: { color: 'tomato' } }, children)
38 const elementWithProvider = React.createElement(
43 const result = renderToStaticMarkup(elementWithProvider)
47module.exports = expressMiddleWare;
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list