containers.js 802 B

12345678910111213141516171819202122232425
  1. /* eslint-disable @typescript-eslint/no-var-requires */
  2. const mdContainer = require('markdown-it-container');
  3. module.exports = md => {
  4. md.use(mdContainer, 'demo', {
  5. validate(params) {
  6. return params.trim().match(/^demo\s*(.*)$/);
  7. },
  8. render(tokens, idx) {
  9. const m = tokens[idx].info.trim().match(/^demo\s*(.*)$/);
  10. if (tokens[idx].nesting === 1) {
  11. const description = m && m.length > 1 ? m[1] : '';
  12. const content = tokens[idx + 1].type === 'fence' ? tokens[idx + 1].content : '';
  13. return `<demo-block>
  14. ${description ? `<div>${md.render(description)}</div>` : ''}
  15. <!--nutui-demo: ${content}:nutui-demo-->
  16. `;
  17. }
  18. return '</demo-block>';
  19. }
  20. });
  21. md.use(mdContainer, 'tip');
  22. md.use(mdContainer, 'warning');
  23. };