1 | const ejs = require('ejs')
|
2 |
|
3 | const DEFAULT_TEMPLATE = `
|
4 | <!DOCTYPE html>
|
5 | <html lang="en">
|
6 | <head>
|
7 | <meta charset="UTF-8">
|
8 | <script>//inject_meta</script>
|
9 | <title><script>//inject_title</script></title>
|
10 | <script>//inject_component_styles</script>
|
11 | </head>
|
12 | <body>
|
13 | <div id="root">
|
14 | <div><script>//inject_html</script></div>
|
15 | </div>
|
16 | <script>//inject_redux_state</script>
|
17 | <script>//inject_js</script>
|
18 | </body>
|
19 | </html>
|
20 | `
|
21 |
|
22 | export default (template = DEFAULT_TEMPLATE, inject = {}) => {
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | try {
|
28 | for (let key in inject) {
|
29 | if (typeof inject[key] === 'function')
|
30 | inject[key] = inject[key](template)
|
31 | }
|
32 | } catch (e) {
|
33 | console.log(e)
|
34 | }
|
35 |
|
36 | return ejs.render(
|
37 | template, {
|
38 | inject,
|
39 | }, {}
|
40 | )
|
41 | }
|