Markdown Matrix

Use markdown to render column title in several lines

                        

    
        Survey.StylesManager.applyTheme("default");
    


var json = {
   questions: [
    {
     type: "matrix",
     name: "factors",
     title: "Please indicate how **important** *these factors* are when deciding on your vacation destination?",
     columns: [{value: 1, text: "Not <br /> important <br /> 1"}, 
        {value: 2, text: "<br /><br />2"}, 
        {value: 3, text: "<br /><br />3"}, 
        {value: 4, text: "<br /><br />4"}, 
        {value: 5, text: "<br /><br />5"}, 
        {value: 6, text: "<br /><br />6"}, 
        {value:7, text: "Very<br /> important <br /> 7"}],
     rows: [
        {value: "luxuries", text: "*Indulgent luxuries*"},
        {value: "beaches", text: "Quality beaches"},
        {value: "cultural", text: "*Cultural activities*"},
        {value: "cuisine", text: "Unique cuisine",},
        {value: "wildlife", text: "*Interaction with local wildlife*"},
        {value: "nightlife", text: "Nightlife"},
        {value: "shopping", text: "*Shopping*"}
     ]
  }
 ]
};

window.survey = new Survey.Model(json);


survey.onComplete.add(function(result) {
    document.querySelector('#surveyResult').innerHTML = "result: " + JSON.stringify(result.data);
});

var myCss = { matrix: {root: "table table-striped"}};

//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;
});

$("#surveyElement").Survey({ 
    model: survey ,css: myCss

});


                    
<!DOCTYPE html>
<html>
<head>
    <title>Use markdown to render column title in several lines, jQuery Survey Library Example</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://unpkg.com/jquery"></script>
<script src="https://surveyjs.azureedge.net/1.0.55/survey.jquery.js"></script>
<link href="https://surveyjs.azureedge.net/1.0.55/survey.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="./index.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.6.4/showdown.min.js"></script>
</head>
<body>
                <div id="surveyElement">
            </div>
    <div id="surveyResult"></div>

<script type="text/javascript" src="./index.js"></script>

</body>
</html>

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.