CsvToTable.js 642 B

12345678910111213141516171819202122
  1. import csvToMarkdownTable from 'csv-to-markdown-table';
  2. export default class CsvToTable {
  3. process(markdown) {
  4. // see: https://regex101.com/r/WR6IvX/3
  5. return markdown.replace(/:::\s*(\S+)[\r\n]((.|[\r\n])*?)[\r\n]:::/gm, (all, group1, group2) => {
  6. switch (group1) {
  7. case 'tsv':
  8. return csvToMarkdownTable(group2, '\t');
  9. case 'tsv-h':
  10. return csvToMarkdownTable(group2, '\t', true);
  11. case 'csv':
  12. return csvToMarkdownTable(group2, ',');
  13. case 'csv-h':
  14. return csvToMarkdownTable(group2, ',', true);
  15. default:
  16. return all;
  17. }
  18. });
  19. }
  20. }