summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/behaviors/markdown/nodes/audio.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/behaviors/markdown/nodes/audio.js')
-rw-r--r--app/assets/javascripts/behaviors/markdown/nodes/audio.js54
1 files changed, 5 insertions, 49 deletions
diff --git a/app/assets/javascripts/behaviors/markdown/nodes/audio.js b/app/assets/javascripts/behaviors/markdown/nodes/audio.js
index 48ac408cf24..146349b118c 100644
--- a/app/assets/javascripts/behaviors/markdown/nodes/audio.js
+++ b/app/assets/javascripts/behaviors/markdown/nodes/audio.js
@@ -1,53 +1,9 @@
-/* eslint-disable class-methods-use-this */
-
-import { Node } from 'tiptap';
-import { defaultMarkdownSerializer } from 'prosemirror-markdown';
+import Playable from './playable';
// Transforms generated HTML back to GFM for Banzai::Filter::AudioLinkFilter
-export default class Audio extends Node {
- get name() {
- return 'audio';
- }
-
- get schema() {
- return {
- attrs: {
- src: {},
- alt: {
- default: null,
- },
- },
- group: 'block',
- draggable: true,
- parseDOM: [
- {
- tag: '.audio-container',
- skip: true,
- },
- {
- tag: '.audio-container p',
- priority: 51,
- ignore: true,
- },
- {
- tag: 'audio[src]',
- getAttrs: el => ({ src: el.getAttribute('src'), alt: el.dataset.title }),
- },
- ],
- toDOM: node => [
- 'audio',
- {
- src: node.attrs.src,
- controls: true,
- 'data-setup': '{}',
- 'data-title': node.attrs.alt,
- },
- ],
- };
- }
-
- toMarkdown(state, node) {
- defaultMarkdownSerializer.nodes.image(state, node);
- state.closeBlock(node);
+export default class Audio extends Playable {
+ constructor() {
+ super();
+ this.mediaType = 'audio';
}
}