Use markdown to render images in title and question elements

Source code: Survey setup
Survey.defaultBootstrapCss.navigationButton = "btn btn-primary";
Survey.Survey.cssType = "bootstrap";
var survey = new Survey.Model({ questions: [ 
    { type: "radiogroup", hasOther: true, isRequired: true, name: "favoritePet",
     title: "What is your favorite pet ![A parrot](/images/markdown/image_16x16.svg =16x16) ?",
   choices: [ 
       { value: "dog", text: "Dog: ![A dog](/images/markdown/dog.svg =14x14)" }, 
       {value: "cat", text: "Cat: ![A cat](/images/markdown/cat.svg =14x14)"}, 
       {value: "parrot",text: "Parrot ![A parrot](/images/markdown/parrot.svg =14x14)"} ]}
   ]
});
//Create showdown mardown converter
var converter = new showdown.Converter();
survey.onTextMarkdown.add(function(survey, options){
    //convert the mardown text to html
    var str = converter.makeHtml(options.text);
    //remove root paragraphs <p></p>
    str = str.substring(3);
    str = str.substring(0, str.length - 4);
    //set html
    options.html = str;
});


function onAngularComponentInit() {
    Survey.SurveyNG.render("surveyElement", {
        model:survey
    });
}
var HelloApp =
    ng.core
        .Component({
            selector: 'ng-app',
            template: '<div id="surveyContainer" class="survey-container contentcontainer codecontainer">' +
            '<div id="surveyElement"></div></div>'
        })
        .Class({
            constructor: function() {
            },
            ngOnInit: function() {
                onAngularComponentInit();
            }
        });
document.addEventListener('DOMContentLoaded', function() {
    ng.platformBrowserDynamic.bootstrap(HelloApp);
});



SurveyJS supports markdown via onTextMarkDown event. You may use any JavaScript markdown library. In this example, we are using Showdown markdown. You may use all features that this or other libraries have.