markdown-table-util-for-view.ts 1.0 KB

1234567891011121314151617181920212223242526
  1. import MarkdownTable from '~/client/models/MarkdownTable';
  2. export const getMarkdownTableFromLine = (markdown: string, bol: number, eol: number): MarkdownTable => {
  3. const tableLines = markdown.split(/\r\n|\r|\n/).slice(bol - 1, eol).join('\n');
  4. return MarkdownTable.fromMarkdownString(tableLines);
  5. };
  6. /**
  7. * return markdown where the markdown table specified by line number params is replaced to the markdown table specified by table param
  8. */
  9. export const replaceMarkdownTableInMarkdown = (table: MarkdownTable, markdown: string, beginLineNumber: number, endLineNumber: number): string => {
  10. const splitMarkdown = markdown.split(/\r\n|\r|\n/);
  11. const markdownBeforeTable = splitMarkdown.slice(0, beginLineNumber - 1);
  12. const markdownAfterTable = splitMarkdown.slice(endLineNumber);
  13. let newMarkdown = '';
  14. if (markdownBeforeTable.length > 0) {
  15. newMarkdown += `${markdownBeforeTable.join('\n')}\n`;
  16. }
  17. newMarkdown += table;
  18. if (markdownAfterTable.length > 0) {
  19. newMarkdown += `\n${markdownAfterTable.join('\n')}`;
  20. }
  21. return newMarkdown;
  22. };