Sha256: 91f905eab4ff52b5cd1a5a3929fb1328dcd3d73536b42cdc6f20c22cadcf7347

Contents?: true

Size: 1.23 KB

Versions: 13

Compression:

Stored size: 1.23 KB

Contents

/*global Showdown*/

/**
 * Monitor a textarea and render a live preview of its content parsed as
 * Markdown. The textarea needs to have the data attribute
 * data-gts-preview-target set, and it should be an id of an element elsewhere
 * in the document. The target element needs to contain at least a div element,
 * which is where the preview will be rendered.
 * 
 * When previewing, the target will be hidden when the textarea is empty, and
 * shown with block display when there is content.
 */
this.gts.liveMarkdownPreview = function liveMarkdownPreview(textarea) {
    var attr = textarea.getAttribute("data-gts-preview-target");
    var target = document.getElementById(attr);
    if (!target || typeof Showdown === "undefined") { return; }
    var converter = new Showdown.converter();
    var previous, content;

    function setPreview(preview) {
        target.style.display = preview ? "block" : "none";
        target.getElementsByTagName("div")[0].innerHTML = preview;
    }

    function updatePreview() {
        content = textarea.value;
        if (content !== previous) {
            previous = content;
            setPreview(converter.makeHtml(content));
        }
        setTimeout(updatePreview, 20);
    }

    updatePreview();
};

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
dolt-0.29.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.28.1 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.28.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.27.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.26.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.25.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.24.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.23.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.22.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.21.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.20.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.19.0 vendor/ui/js/src/components/live-markdown-preview.js
dolt-0.18.0 vendor/ui/js/src/components/live-markdown-preview.js