Переглянути джерело

Fonction pour skipper les 1er lignes d'un document

Loquicom 5 роки тому
батько
коміт
c177ddf2a6
2 змінених файлів з 23 додано та 1 видалено
  1. 2 1
      src/coauth/parser/parser.js
  2. 21 0
      src/coauth/parser/skip.js

+ 2 - 1
src/coauth/parser/parser.js

@@ -1,5 +1,6 @@
 const Saxophone = require('saxophone');
 const file = require('../../file');
+const skip = require('./skip');
 
 const TAGS = [
     'phdthesis',
@@ -48,7 +49,7 @@ const parser = class Parser {
             }
         }
         this.callback = callback;
-        file.fs.createReadStream(this.source, {start: 77}).pipe(this.sax);
+        file.fs.createReadStream(this.source, {start: skip.begin(this.source, '<!DOCTYPE')}).pipe(this.sax);
     }
 
     from(source) {

+ 21 - 0
src/coauth/parser/skip.js

@@ -0,0 +1,21 @@
+const LineReader = require('n-readlines');
+
+module.exports.begin = function (file, search) {
+    let stop = false;
+    let count = 0;
+    const liner = new LineReader(file);
+    do {
+        let line = '';
+        if (!(line = liner.next())) {
+            return 0;
+        }
+        line = line.toString();
+        if (line.includes(search)) {
+            stop = true;
+        } else {
+            count++;
+        }
+        count += line.length;
+    } while (!stop);
+    return count;
+};