summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/content_editor/services/asset_resolver.js
blob: 942457b96648ae3f457f38b915ffc5ce74eb766a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
import { memoize } from 'lodash';

export default ({ renderMarkdown }) => ({
  resolveUrl: memoize(async (canonicalSrc) => {
    const html = await renderMarkdown(`[link](${canonicalSrc})`);
    if (!html) return canonicalSrc;

    const parser = new DOMParser();
    const { body } = parser.parseFromString(html, 'text/html');

    return body.querySelector('a').getAttribute('href');
  }),
});