From fdc9cb6784ba3eb0aed4e48b8755d3b0dee945a9 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Wed, 4 Sep 2019 15:45:18 +0200 Subject: [PATCH] fix(core): update --- .vscode/launch.json | 29 +++++++++++++++++++++++++++++ test/test.ts | 18 +++++++++++++++++- ts/index.ts | 13 +++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..112db52 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,29 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "current file", + "type": "node", + "request": "launch", + "args": [ + "${relativeFile}" + ], + "runtimeArgs": ["-r", "@gitzone/tsrun"], + "cwd": "${workspaceRoot}", + "protocol": "inspector", + "internalConsoleOptions": "openOnSessionStart" + }, + { + "name": "test.ts", + "type": "node", + "request": "launch", + "args": [ + "test/test.ts" + ], + "runtimeArgs": ["-r", "@gitzone/tsrun"], + "cwd": "${workspaceRoot}", + "protocol": "inspector", + "internalConsoleOptions": "openOnSessionStart" + } + ] +} diff --git a/test/test.ts b/test/test.ts index 70f0096..c8cd712 100644 --- a/test/test.ts +++ b/test/test.ts @@ -23,7 +23,23 @@ tap.test('should stringify data', async () => { }); tap.test('should parse a normal frontmatter file', async () => { - + const normalFile = `--- +heythere: awesome +--- +really +`; + let result = testSmartfm.parse(normalFile); + expect(result.data.heythere).to.equal('awesome') +}); + +tap.test('should parse a commented out frontmatter file', async () => { + const commentedFile = `# --- +# heythere: awesome +# --- +really +`; + let result = testSmartfm.parseFromComments('# ', commentedFile); + console.log(result); }); tap.start(); diff --git a/ts/index.ts b/ts/index.ts index ebf5407..59dd53d 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -29,4 +29,17 @@ export class Smartfm { parse(stringToParse: string) { return grayMatter(stringToParse); } + + /** + * parse from commnets + */ + parseFromComments(commentStart: string, stringToParse: string) { + const diffFunc = (diffMe, diffBy) => diffMe.split(diffBy).join(''); + let lines = stringToParse.split('\n'); + lines = lines.map(line => { + return diffFunc(line, commentStart); + }); + const cleanedString = lines.join('\n'); + return this.parse(cleanedString); + } }