|
|
@ -5,20 +5,20 @@ |
|
|
|
v-spacer |
|
|
|
v-btn.animated.fadeInRight(flat, @click='closeAllModal') |
|
|
|
v-icon(left) remove_circle_outline |
|
|
|
span Back to Editor |
|
|
|
span {{$t('editor:backToEditor')}} |
|
|
|
template(v-else) |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn(icon, slot='activator', @click='toggleMarkup({ start: `**` })').mx-0 |
|
|
|
v-icon format_bold |
|
|
|
span Bold |
|
|
|
span {{$t('editor:markup.bold')}} |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p1s(icon, slot='activator', @click='toggleMarkup({ start: `*` })').mx-0 |
|
|
|
v-icon format_italic |
|
|
|
span Italic |
|
|
|
span {{$t('editor:markup.italic')}} |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p2s(icon, slot='activator', @click='toggleMarkup({ start: `~~` })').mx-0 |
|
|
|
v-icon format_strikethrough |
|
|
|
span Strikethrough |
|
|
|
span {{$t('editor:markup.strikethrough')}} |
|
|
|
v-menu(offset-y, open-on-hover) |
|
|
|
v-btn.animated.fadeIn.wait-p3s(icon, slot='activator').mx-0 |
|
|
|
v-icon text_fields |
|
|
@ -27,16 +27,16 @@ |
|
|
|
v-list-tile(@click='setHeaderLine(n)', :key='idx') |
|
|
|
v-list-tile-action |
|
|
|
v-icon(:size='24 - (idx - 1) * 2') title |
|
|
|
v-list-tile-title Heading {{n}} |
|
|
|
v-list-tile-title {{$t('editor:markup.heading', { level: n })}} |
|
|
|
v-divider(v-if='idx < 5') |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p4s(icon, slot='activator', @click='toggleMarkup({ start: `~` })').mx-0 |
|
|
|
v-icon vertical_align_bottom |
|
|
|
span Subscript |
|
|
|
span {{$t('editor:markup.subscript')}} |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p5s(icon, slot='activator', @click='toggleMarkup({ start: `^` })').mx-0 |
|
|
|
v-icon vertical_align_top |
|
|
|
span Superscript |
|
|
|
span {{$t('editor:markup.superscript')}} |
|
|
|
v-menu(offset-y, open-on-hover) |
|
|
|
v-btn.animated.fadeIn.wait-p6s(icon, slot='activator').mx-0 |
|
|
|
v-icon format_quote |
|
|
@ -44,98 +44,98 @@ |
|
|
|
v-list-tile(@click='insertBeforeEachLine({ content: `> `})') |
|
|
|
v-list-tile-action |
|
|
|
v-icon format_quote |
|
|
|
v-list-tile-title Blockquote |
|
|
|
v-list-tile-title {{$t('editor:markup.blockquote')}} |
|
|
|
v-divider |
|
|
|
v-list-tile(@click='insertBeforeEachLine({ content: `> `, after: `{.is-info}`})') |
|
|
|
v-list-tile-action |
|
|
|
v-icon(color='blue') format_quote |
|
|
|
v-list-tile-title Info Blockquote |
|
|
|
v-list-tile-title {{$t('editor:markup.blockquoteInfo')}} |
|
|
|
v-divider |
|
|
|
v-list-tile(@click='insertBeforeEachLine({ content: `> `, after: `{.is-success}`})') |
|
|
|
v-list-tile-action |
|
|
|
v-icon(color='success') format_quote |
|
|
|
v-list-tile-title Success Blockquote |
|
|
|
v-list-tile-title {{$t('editor:markup.blockquoteSuccess')}} |
|
|
|
v-divider |
|
|
|
v-list-tile(@click='insertBeforeEachLine({ content: `> `, after: `{.is-warning}`})') |
|
|
|
v-list-tile-action |
|
|
|
v-icon(color='warning') format_quote |
|
|
|
v-list-tile-title Warning Blockquote |
|
|
|
v-list-tile-title {{$t('editor:markup.blockquoteWarning')}} |
|
|
|
v-divider |
|
|
|
v-list-tile(@click='insertBeforeEachLine({ content: `> `, after: `{.is-danger}`})') |
|
|
|
v-list-tile-action |
|
|
|
v-icon(color='error') format_quote |
|
|
|
v-list-tile-title Error Blockquote |
|
|
|
v-list-tile-title {{$t('editor:markup.blockquoteError')}} |
|
|
|
v-divider |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p7s(icon, slot='activator', @click='insertBeforeEachLine({ content: `- `})').mx-0 |
|
|
|
v-icon format_list_bulleted |
|
|
|
span Unordered List |
|
|
|
span {{$t('editor:markup.unorderedList')}} |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p8s(icon, slot='activator', @click='insertBeforeEachLine({ content: `1. `})').mx-0 |
|
|
|
v-icon format_list_numbered |
|
|
|
span Ordered List |
|
|
|
span {{$t('editor:markup.orderedList')}} |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p9s(icon, slot='activator', @click='toggleMarkup({ start: "`" })').mx-0 |
|
|
|
v-icon space_bar |
|
|
|
span Inline Code |
|
|
|
span {{$t('editor:markup.inlineCode')}} |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p10s(icon, slot='activator', @click='toggleMarkup({ start: `<kbd>`, end: `</kbd>` })').mx-0 |
|
|
|
v-icon font_download |
|
|
|
span Keyboard Key |
|
|
|
span {{$t('editor:markup.keyboardKey')}} |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p11s(icon, slot='activator', @click='insertAfter({ content: `---`, newLine: true })').mx-0 |
|
|
|
v-icon remove |
|
|
|
span Horizontal Bar |
|
|
|
span {{$t('editor:markup.horizontalBar')}} |
|
|
|
template(v-if='$vuetify.breakpoint.mdAndUp') |
|
|
|
v-spacer |
|
|
|
v-tooltip(bottom, color='primary') |
|
|
|
v-btn.animated.fadeIn.wait-p11s(icon, slot='activator', @click='previewShown = !previewShown').mx-0 |
|
|
|
v-icon flip |
|
|
|
span Hide / Show Preview Pane |
|
|
|
span {{$t('editor:markup.togglePreviewPane')}} |
|
|
|
.editor-markdown-main |
|
|
|
.editor-markdown-sidebar |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft(icon, slot='activator', dark, disabled).mx-0 |
|
|
|
v-icon link |
|
|
|
span Insert Link |
|
|
|
span {{$t('editor:markup.insertLink')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p1s(icon, slot='activator', dark, @click='toggleModal(`editorModalMedia`)').mx-0 |
|
|
|
v-icon(:color='activeModal === `editorModalMedia` ? `teal` : ``') burst_mode |
|
|
|
span Insert Assets |
|
|
|
span {{$t('editor:markup.insertAssets')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p2s(icon, slot='activator', dark, @click='toggleModal(`editorModalBlocks`)').mx-0 |
|
|
|
v-icon(:color='activeModal === `editorModalBlocks` ? `teal` : ``') dashboard |
|
|
|
span Insert Block |
|
|
|
span {{$t('editor:markup.insertBlock')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p3s(icon, slot='activator', dark, disabled).mx-0 |
|
|
|
v-icon code |
|
|
|
span Insert Code Block |
|
|
|
span {{$t('editor:markup.insertCodeBlock')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p4s(icon, slot='activator', dark, disabled).mx-0 |
|
|
|
v-icon play_circle_outline |
|
|
|
span Insert Video / Audio |
|
|
|
span {{$t('editor:markup.insertVideoAudio')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p5s(icon, slot='activator', dark, disabled).mx-0 |
|
|
|
v-icon multiline_chart |
|
|
|
span Insert Diagram |
|
|
|
span {{$t('editor:markup.insertDiagram')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p6s(icon, slot='activator', dark, disabled).mx-0 |
|
|
|
v-icon functions |
|
|
|
span Insert Math Expression |
|
|
|
span {{$t('editor:markup.insertMathExpression')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p7s(icon, slot='activator', dark, disabled).mx-0 |
|
|
|
v-icon border_outer |
|
|
|
span Table Helper |
|
|
|
span {{$t('editor:markup.tableHelper')}} |
|
|
|
template(v-if='$vuetify.breakpoint.mdAndUp') |
|
|
|
v-spacer |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p8s(icon, slot='activator', dark, @click='toggleFullscreen').mx-0 |
|
|
|
v-icon crop_free |
|
|
|
span Distraction Free Mode |
|
|
|
span {{$t('editor:markup.distractionFreeMode')}} |
|
|
|
v-tooltip(right, color='teal') |
|
|
|
v-btn.animated.fadeInLeft.wait-p9s(icon, slot='activator', dark, @click='toggleHelp').mx-0 |
|
|
|
v-icon(:color='helpShown ? `teal` : ``') help |
|
|
|
span Markdown Formatting Help |
|
|
|
span {{$t('editor:markup.markdownFormattingHelp')}} |
|
|
|
.editor-markdown-editor |
|
|
|
codemirror(ref='cm', v-model='code', :options='cmOptions', @ready='onCmReady', @input='onCmInput') |
|
|
|
transition(name='editor-markdown-preview') |
|
|
@ -249,7 +249,8 @@ export default { |
|
|
|
}, |
|
|
|
props: { |
|
|
|
save: { |
|
|
|
type: Function |
|
|
|
type: Function, |
|
|
|
default: () => {} |
|
|
|
} |
|
|
|
}, |
|
|
|
data() { |
|
|
@ -387,7 +388,7 @@ export default { |
|
|
|
if (!end) { end = start } |
|
|
|
if (!this.cm.doc.somethingSelected()) { |
|
|
|
return this.$store.commit('showNotification', { |
|
|
|
message: 'You must select something first!', |
|
|
|
message: this.$t('editor:markup.noSelectionError'), |
|
|
|
style: 'warning', |
|
|
|
icon: 'warning' |
|
|
|
}) |
|
|
|