app/page/blogNew.jsView |
---|
4 | 4 … | const pull = require('pull-stream') |
5 | 5 … | const marksum = require('markdown-summary') |
6 | 6 … | const MediumEditor = require('medium-editor').MediumEditor |
7 | 7 … | const MediumToMD = require('medium-editor-markdown') |
| 8 … | +const CustomHtml = require('medium-editor-custom-async') |
8 | 9 … | |
9 | 10 … | exports.gives = nest('app.page.blogNew') |
10 | 11 … | |
11 | 12 … | exports.needs = nest({ |
33 | 34 … | summary: Value(), |
34 | 35 … | text: Value('') |
35 | 36 … | }) |
36 | 37 … | |
37 | | - const mediumComposer = h('div.editor') |
| 38 … | + const mediumComposer = h('div.editor', { |
| 39 … | + 'ev-input': e => { |
| 40 … | + } |
| 41 … | + }) |
38 | 42 … | const composer = api.message.html.compose( |
39 | 43 … | { |
40 | 44 … | meta, |
41 | 45 … | placeholder: strings.blogNew.actions.writeBlog, |
86 | 90 … | placeholder: strings.blogNew.field.summary |
87 | 91 … | }) |
88 | 92 … | ]), |
89 | 93 … | mediumComposer, |
| 94 … | + h('Button', { |
| 95 … | + 'ev-click': () => { |
| 96 … | + var img = h('img', { src: 'http://localhost:8989/blobs/get/%264TKyoyZmjjtpPvwiSR%2BGQIgrJs8o6XmzfUDZ5p1PP30%3D.sha256' }) |
| 97 … | + |
| 98 … | + |
| 99 … | + mediumComposer.appendChild(img) |
| 100 … | + } |
| 101 … | + }, 'Add Image'), |
90 | 102 … | composer |
91 | 103 … | ]) |
92 | 104 … | ]) |
93 | 105 … | ]) |
94 | 106 … | |
95 | 107 … | function initialiseMedium () { |
96 | 108 … | new MediumEditor(mediumComposer, { |
| 109 … | + elementsContainer: page, |
97 | 110 … | toolbar: { |
98 | 111 … | allowMultiParagraphSelection: true, |
99 | 112 … | buttons: ['bold', 'italic', 'underline', 'anchor', 'h2', 'h3', 'quote'], |
100 | 113 … | diffLeft: 0, |
109 | 122 … | sticky: false, |
110 | 123 … | updateOnEmptySelection: false |
|
111 | 124 … | }, |
112 | 125 … | extensions: { |
113 | | - markdown: new MediumToMD (md => meta.text.set(md)) |
| 126 … | + markdown: new MediumToMD ( |
| 127 … | + { |
| 128 … | + toMarkdownOptions: { |
| 129 … | + converters: [{ |
| 130 … | + filter: 'img', |
| 131 … | + replacement: (content, node) => { |
| 132 … | + var blob = decodeURIComponent(node.src.replace('http://localhost:8989/blobs/get/', '')) |
| 133 … | + return `![](${blob})` |
| 134 … | + } |
| 135 … | + }] |
| 136 … | + }, |
| 137 … | + events: ['input', 'change', 'DOMNodeInserted'] |
| 138 … | + }, |
| 139 … | + md => meta.text.set(md) |
| 140 … | + ) |
114 | 141 … | } |
115 | 142 … | }) |
116 | 143 … | } |
117 | 144 … | initialiseMedium() |