EJS Site Builder is a javascript site generator. It wants you do live and breath javascript. EJS is a javascript templating langauge which lends itself very well to the goals of EJS Site Builder.
Yes. EJS Site Builder leaves it up to you to parse your own data files and pass them to your EJS templates using your generate scripts.
It's very easy to parse markdown in this way. Have a look at the generate script used to make these EJS Site Builder Docs. See how it uses the awesome markdown-it module to parse markdown files:
The sky is the limit. For example, if you wanted to create "sections" in your markdown files that rendered to different sections of your templates, you could use markdown-it custom containers and pass what you receive into your template variables.
Yes, but not as first class citizens. See the question above regarding Markdown. Instead of using the markdown-it NPM module in your generate scripts, you could find an NPM module for the templating language of your choice, whether it be handlebars, liquid, nunjucks etc.
It's highly recommended that you only use other templating languages out of necessity, like if you have thousands of existing template content files that you want to render with EJS Site Builder.
EJS has a massive advantage that it is natively supported by EJS Site Builder, works with EJS Site Builder's built-in dependency tracking, is fast, simple, and lets you write all your site generation logic in javascript, instead of switching back and forth between other template languages.
See shortcodes for details.
It's functionlly tested using CliFry a CLI unit testing utility written during the creation of EJS Site Builder.