CsvToTable.js 710 B

1234567891011121314151617181920212223242526
  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. break;
  10. case 'tsv-h':
  11. return csvToMarkdownTable(group2, '\t', true);
  12. break;
  13. case 'csv':
  14. return csvToMarkdownTable(group2, ',');
  15. break;
  16. case 'csv-h':
  17. return csvToMarkdownTable(group2, ',', true);
  18. break;
  19. default:
  20. return all;
  21. }
  22. });
  23. }
  24. }