Просмотр исходного кода

implement MarkdownTable.fromDSV

utsushiiro 7 лет назад
Родитель
Сommit
41c9a7f92f

+ 2 - 3
src/client/js/components/PageEditor/HandsontableModal.jsx

@@ -7,7 +7,6 @@ import Collapse from 'react-bootstrap/es/Collapse';
 import Handsontable from 'handsontable';
 import { HotTable } from '@handsontable/react';
 import { debounce } from 'throttle-debounce';
-import csvToMarkdown from 'csv-to-markdown-table';
 
 import DataImportForm from './DataImportForm';
 import MarkdownTable from '../../models/MarkdownTable';
@@ -248,10 +247,10 @@ export default class HandsontableModal extends React.PureComponent {
   importData(dataFormat, data) {
     switch (dataFormat) {
       case 'csv':
-        this.init(MarkdownTable.fromMarkdownString(csvToMarkdown(data, ',', true)));
+        this.init(MarkdownTable.fromDSV(data, ','));
         break;
       case 'tsv':
-        this.init(MarkdownTable.fromMarkdownString(csvToMarkdown(data, '\t', true)));
+        this.init(MarkdownTable.fromDSV(data, '\t'));
         break;
     }
   }

+ 9 - 1
src/client/js/models/MarkdownTable.js

@@ -1,5 +1,6 @@
 import markdownTable from 'markdown-table';
 import stringWidth from 'string-width';
+import csvToMarkdown from 'csv-to-markdown-table';
 
 // https://github.com/markdown-it/markdown-it/blob/d29f421927e93e88daf75f22089a3e732e195bd2/lib/rules_block/table.js#L83
 // https://regex101.com/r/7BN2fR/7
@@ -42,7 +43,14 @@ export default class MarkdownTable {
   }
 
   /**
-   * returns MarkdownTable instance
+   * return a MarkdownTable instance made from a string of delimiter-separated values
+   */
+  static fromDSV(str, delimiter) {
+    return MarkdownTable.fromMarkdownString(csvToMarkdown(str, delimiter, true));
+  }
+
+  /**
+   * return a MarkdownTable instance
    *   ref. https://github.com/wooorm/markdown-table
    * @param {string} str markdown string
    */