diff --git a/lib/readmefile.js b/lib/readmefile.js index b073526..005b2bf 100644 --- a/lib/readmefile.js +++ b/lib/readmefile.js @@ -36,15 +36,23 @@ function getReadmeFileName() { } function readReadmeFile(readmeFile) { let content = (0, fs_1.readFileSync)(readmeFile).toString(); - const regex = /(?:.|\n)*?/; + const regex = /\n{0,1}(?:.|\n)*?\n{0,1}/; const index = regex.exec(content)?.index; + let contentPre = '', contentPost = ''; if (index === undefined) { - if (!content.endsWith('\n')) { - content += '\n'; - } - return [content, '']; + contentPre = content; } - content = content.replace(regex, ''); - return [content.slice(0, index), content.slice(index)]; + else { + content = content.replace(regex, ''); + contentPre = content.slice(0, index); + contentPost = content.slice(index); + } + if (!contentPre.endsWith('\n')) { + contentPre += '\n'; + } + if (!contentPost.endsWith('\n')) { + contentPost += '\n'; + } + return [contentPre, contentPost]; } //# sourceMappingURL=readmefile.js.map \ No newline at end of file diff --git a/lib/readmefile.js.map b/lib/readmefile.js.map index 1ef245e..a7e003f 100644 --- a/lib/readmefile.js.map +++ b/lib/readmefile.js.map @@ -1 +1 @@ -{"version":3,"file":"readmefile.js","sourceRoot":"","sources":["../src/readmefile.ts"],"names":[],"mappings":";;;AAAA,2BAA6D;AAQ7D,SAAgB,gBAAgB,CAAC,QAAsB;IACnD,IAAI,UAAU,GAAG,iBAAiB,EAAE,CAAA;IACpC,IAAI,UAAU,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;QAEzD,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE9D,IAAI,eAAe,GAAG;;;;EAI5B,YAAY;;CAEb,CAAA;QAEO,IAAI,OAAO,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClE,IAAA,kBAAa,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;KACrC;AACL,CAAC;AAlBD,4CAkBC;AAED,SAAS,kBAAkB,CAAC,UAAsB;IAC9C,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAA;IAChC,IAAI,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACvC,IAAI,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,MAAM,MAAM,GAAG,MAAM,EAAE,CAAA;AAC/E,CAAC;AAED,SAAS,iBAAiB;IACtB,IAAI,KAAK,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAA;IAC5B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QACpB,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAA;SACd;KACJ;IACD,OAAO,IAAI,CAAA;AACf,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACtC,IAAI,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAA;IACjD,MAAM,KAAK,GACP,kEAAkE,CAAA;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;IAExC,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,IAAI,IAAI,CAAA;SAClB;QACD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;KACvB;IAED,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AAC1D,CAAC"} \ No newline at end of file +{"version":3,"file":"readmefile.js","sourceRoot":"","sources":["../src/readmefile.ts"],"names":[],"mappings":";;;AAAA,2BAA6D;AAQ7D,SAAgB,gBAAgB,CAAC,QAAsB;IACnD,IAAI,UAAU,GAAG,iBAAiB,EAAE,CAAA;IACpC,IAAI,UAAU,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;QAEzD,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE9D,IAAI,eAAe,GAAG;;;;EAI5B,YAAY;;CAEb,CAAA;QAEO,IAAI,OAAO,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClE,IAAA,kBAAa,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;KACrC;AACL,CAAC;AAlBD,4CAkBC;AAED,SAAS,kBAAkB,CAAC,UAAsB;IAC9C,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAA;IAChC,IAAI,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACvC,IAAI,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,MAAM,MAAM,GAAG,MAAM,EAAE,CAAA;AAC/E,CAAC;AAED,SAAS,iBAAiB;IACtB,IAAI,KAAK,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAA;IAC5B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QACpB,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAA;SACd;KACJ;IACD,OAAO,IAAI,CAAA;AACf,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACtC,IAAI,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAA;IACjD,MAAM,KAAK,GACP,gFAAgF,CAAA;IACpF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;IAExC,IAAI,UAAU,GAAG,EAAE,EACf,WAAW,GAAG,EAAE,CAAA;IAEpB,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,UAAU,GAAG,OAAO,CAAA;KACvB;SAAM;QACH,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACpC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KACrC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC5B,UAAU,IAAI,IAAI,CAAA;KACrB;IACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC7B,WAAW,IAAI,IAAI,CAAA;KACtB;IAED,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AACpC,CAAC"} \ No newline at end of file diff --git a/src/readmefile.ts b/src/readmefile.ts index 9342043..5e930bc 100644 --- a/src/readmefile.ts +++ b/src/readmefile.ts @@ -46,16 +46,26 @@ function getReadmeFileName(): string | null { function readReadmeFile(readmeFile: string): [string, string] { let content = readFileSync(readmeFile).toString() const regex = - /(?:.|\n)*?/ + /\n{0,1}(?:.|\n)*?\n{0,1}/ const index = regex.exec(content)?.index + let contentPre = '', + contentPost = '' + if (index === undefined) { - if (!content.endsWith('\n')) { - content += '\n' - } - return [content, ''] + contentPre = content + } else { + content = content.replace(regex, '') + contentPre = content.slice(0, index) + contentPost = content.slice(index) } - content = content.replace(regex, '') - return [content.slice(0, index), content.slice(index)] + if (!contentPre.endsWith('\n')) { + contentPre += '\n' + } + if (!contentPost.endsWith('\n')) { + contentPost += '\n' + } + + return [contentPre, contentPost] }