Convert Markdown to HTML with markdown-it
Markdown is a markup language designed to format plain text and maintain human readability. For publishing, Markdown content is usually converted to a more advanced language, such as HTML. SurveyJS supports Markdown via third-party Markdown-to-HTML JavaScript converters. This demo shows SurveyJS integration with the markdown-it
converter.
To enable Markdown support in your survey, implement a function that handles the onTextMarkdown
event. The function's second parameter, options
, has the text
property that contains a string value with Markdown content. Pass this value to the markdown-it
converter to get HTML markup. Assign the result to the options.html
property.
markdown-it
can support HTML tags in the source if you enable thehtml
property when instantiating the converter. However, this feature is considered unsafe because the converter allows any HTML markup to pass through, even if it contains malicious code. To ensure that the resulting HTML markup is safe, it must be processed through a sanitizer. This demo does not use any third-party sanitizer, as the SurveyJS Form Library includes basic sanitizing capabilities. However, these capabilities do not guarantee 100% protection against malicious code injections. We highly recommend using a dedicated sanitizing library in production code.
Now you can add formatting to your string values. Refer to the Markdown Cheat Sheet to get acquainted with Markdown syntax. This demo shows a Matrix question. Markdown is used to render statements in the rows in italic. You can combine Markdown syntax with raw HTML in string values. In this demo, <br>
tags are used to insert line breaks into column header texts.