Skip to content

Commit

Permalink
fix(content): failed ci on windows and enhance file name detection re…
Browse files Browse the repository at this point in the history
…gex (#680)
  • Loading branch information
jefrydco committed Dec 15, 2020
1 parent 9e8d32f commit f445444
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 24 deletions.
6 changes: 3 additions & 3 deletions packages/content/parsers/markdown/handlers/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ utils.parseThematicBlock = function (lang) {

const language = lang.replace(/[{|[](.+)/, '').match(/^[^ \t]+(?=[ \t]|$)/)
const lineHighlightTokens = lang.replace(/[[](.+)/, '').split('{')
const filenameTokens = lang.split('[')
const filenameTokens = lang.match(/\[(.+)\]/)

return {
language: language ? language[0] : null,
lineHighlights: lineHighlightTokens[1] ? lineHighlightTokens[1].replace('}', '') : null,
fileName: filenameTokens[1] ? filenameTokens[1].replace(']', '') : null
lineHighlights: lineHighlightTokens[1] ? lineHighlightTokens[1].replace(/}.*/, '') : null,
fileName: Array.isArray(filenameTokens) ? filenameTokens[1] : null
}
}

Expand Down
2 changes: 1 addition & 1 deletion packages/content/test/fixture/content/highlighter.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: Highlighter
console.log('Highlighter')
```

```ts{1}[index.ts]
```typescript {1}[index.ts]
// @errors: 2322
function sum(a: number, b: number): string {
return true
Expand Down
44 changes: 24 additions & 20 deletions packages/content/test/highlighter.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ describe("highlighter", () => {
expect(nuxtContent).toMatchInlineSnapshot(`
"<div class=\\"nuxt-content-highlight\\"><pre class=\\"line-numbers language-js\\"><code><span class=\\"token console class-name\\">console</span><span class=\\"token punctuation\\">.</span><span class=\\"token method function property-access\\">log</span><span class=\\"token punctuation\\">(</span><span class=\\"token string\\">'Highlighter'</span><span class=\\"token punctuation\\">)</span>
</code></pre></div>
<div class=\\"nuxt-content-highlight\\"><span class=\\"filename\\">index.ts</span><pre class=\\"line-numbers language-ts\\" data-line=\\"1\\"><code><span class=\\"token comment\\">// @errors: 2322</span>
<div class=\\"nuxt-content-highlight\\"><span class=\\"filename\\">index.ts</span><pre class=\\"line-numbers language-typescript\\" data-line=\\"1\\"><code><span class=\\"token comment\\">// @errors: 2322</span>
<span class=\\"token keyword\\">function</span> <span class=\\"token function\\">sum</span><span class=\\"token punctuation\\">(</span>a<span class=\\"token operator\\">:</span> <span class=\\"token builtin\\">number</span><span class=\\"token punctuation\\">,</span> b<span class=\\"token operator\\">:</span> <span class=\\"token builtin\\">number</span><span class=\\"token punctuation\\">)</span><span class=\\"token operator\\">:</span> <span class=\\"token builtin\\">string</span> <span class=\\"token punctuation\\">{</span>
<span class=\\"token keyword\\">return</span> <span class=\\"token boolean\\">true</span>
<span class=\\"token punctuation\\">}</span>
Expand Down Expand Up @@ -97,7 +97,7 @@ describe("highlighter", () => {
expect(nuxtContent).toMatchInlineSnapshot(`
"<div class=\\"nuxt-content-highlight\\"><pre><code class=\\"hljs js\\"><span class=\\"hljs-built_in\\">console</span>.log(<span class=\\"hljs-string\\">'Highlighter'</span>)
</code></pre></div>
<div class=\\"nuxt-content-highlight\\"><pre><code class=\\"hljs ts\\"><span class=\\"hljs-comment\\">// @errors: 2322</span>
<div class=\\"nuxt-content-highlight\\"><pre><code class=\\"hljs typescript\\"><span class=\\"hljs-comment\\">// @errors: 2322</span>
<span class=\\"hljs-function\\"><span class=\\"hljs-keyword\\">function</span> <span class=\\"hljs-title\\">sum</span>(<span class=\\"hljs-params\\">a: <span class=\\"hljs-built_in\\">number</span>, b: <span class=\\"hljs-built_in\\">number</span></span>): <span class=\\"hljs-title\\">string</span> </span>{
<span class=\\"hljs-keyword\\">return</span> <span class=\\"hljs-literal\\">true</span>
}
Expand All @@ -122,7 +122,9 @@ describe("highlighter", () => {
if (!lang || lang === "null") {
lang = "typescript"
}
return highlighter.codeToHtml(rawCode, lang)
return highlighter
.codeToHtml(rawCode, lang)
.replace(/<a[^>]*>([^<]+)<\/a>/g, "")
}
}
}
Expand Down Expand Up @@ -150,10 +152,10 @@ describe("highlighter", () => {
test("renders correctly", () => {
expect(nuxtContent).toMatchInlineSnapshot(`
"<div class=\\"nuxt-content-highlight\\"><pre class=\\"shiki\\" style=\\"background-color:#2e3440ff;\\"><code><span class=\\"line\\"><span style=\\"color:#D8DEE9;\\">console</span><span style=\\"color:#ECEFF4;\\">.</span><span style=\\"color:#88C0D0;\\">log</span><span style=\\"color:#D8DEE9FF;\\">(</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#A3BE8C;\\">Highlighter</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#D8DEE9FF;\\">)</span></span></code></pre></div>
<div class=\\"nuxt-content-highlight\\"><pre class=\\"shiki\\" style=\\"background-color:#2e3440ff;\\"><code><span class=\\"line\\"><span style=\\"color:#D8DEE9FF;\\">// @errors: 2322</span></span>
<span class=\\"line\\"><span style=\\"color:#D8DEE9FF;\\">function sum(a: number, b: number): string {</span></span>
<span class=\\"line\\"><span style=\\"color:#D8DEE9FF;\\"> return true</span></span>
<span class=\\"line\\"><span style=\\"color:#D8DEE9FF;\\">}</span></span></code></pre></div>"
<div class=\\"nuxt-content-highlight\\"><pre class=\\"shiki\\" style=\\"background-color:#2e3440ff;\\"><code><span class=\\"line\\"><span style=\\"color:#616E88;\\">// @errors: 2322</span></span>
<span class=\\"line\\"><span style=\\"color:#81A1C1;\\">function</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#88C0D0;\\">sum</span><span style=\\"color:#ECEFF4;\\">(</span><span style=\\"color:#D8DEE9;\\">a</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">,</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#D8DEE9;\\">b</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">)</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">string</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#ECEFF4;\\">{</span></span>
<span class=\\"line\\"><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">return</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">true</span></span>
<span class=\\"line\\"><span style=\\"color:#ECEFF4;\\">}</span></span></code></pre></div>"
`)
})
})
Expand Down Expand Up @@ -187,7 +189,7 @@ describe("highlighter", () => {
{},
highlighter,
twoslashResults
)
).replace(/<a[^>]*>([^<]+)<\/a>/g, "")
}
}
}
Expand All @@ -212,12 +214,12 @@ describe("highlighter", () => {
)
})

test.skip("renders correctly", () => {
test("renders correctly", () => {
expect(nuxtContent).toMatchInlineSnapshot(`
"<div class=\\"nuxt-content-highlight\\"><pre class=\\"shiki twoslash lsp\\"><div class=\\"code-container\\"><code><span style=\\"color:#8FBCBB;\\"><span data-lsp=\\"var console: Console\\" class=\\"data-lsp\\">console</span></span><span style=\\"color:#ECEFF4;\\">.</span><span style=\\"color:#88C0D0;\\"><span data-lsp=\\"(method) Console.log(...data: any[]): void\\" class=\\"data-lsp\\">log</span></span><span style=\\"color:#D8DEE9FF;\\">(</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#A3BE8C;\\">Highlighter</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#D8DEE9FF;\\">)</span></code><a href=\\"https://www.typescriptlang.org/play/#code/MYewdgziA2CmB00QHMAUByAEgS2QC2lzwBdYAndASgCgg\\">Try</a></div></pre></div>
"<div class=\\"nuxt-content-highlight\\"><pre class=\\"shiki twoslash lsp\\"><div class=\\"code-container\\"><code><span style=\\"color:#8FBCBB;\\"><span data-lsp=\\"var console: Console\\" class=\\"data-lsp\\">console</span></span><span style=\\"color:#ECEFF4;\\">.</span><span style=\\"color:#88C0D0;\\"><span data-lsp=\\"(method) Console.log(...data: any[]): void\\" class=\\"data-lsp\\">log</span></span><span style=\\"color:#D8DEE9FF;\\">(</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#A3BE8C;\\">Highlighter</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#D8DEE9FF;\\">)</span></code></div></pre></div>
<div class=\\"nuxt-content-highlight\\"><pre class=\\"shiki twoslash lsp\\"><div class=\\"code-container\\"><code><span style=\\"color:#81A1C1;\\">function</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#88C0D0;\\"><span data-lsp=\\"function sum(a: number, b: number): string\\" class=\\"data-lsp\\">sum</span></span><span style=\\"color:#ECEFF4;\\">(</span><span style=\\"color:#D8DEE9;\\"><span data-lsp=\\"(parameter) a: number\\" class=\\"data-lsp\\">a</span></span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">,</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#D8DEE9;\\"><span data-lsp=\\"(parameter) b: number\\" class=\\"data-lsp\\">b</span></span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">)</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">string</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#ECEFF4;\\">{</span>
<span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">return</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">true</span>
<span class=\\"error\\"><span>Type 'boolean' is not assignable to type 'string'.</span><span class=\\"code\\">2322</span></span><span class=\\"error-behind\\">Type 'boolean' is not assignable to type 'string'.</span><span style=\\"color:#ECEFF4;\\">}</span></code><a href=\\"https://www.typescriptlang.org/play/#code/PTAEAEFMCdoe2gZwFygEwGY1oFADMBXAOwGMAXASziNEQIFsAKAQ1SIYCMYAaUDtzjACUqRGWgUiAc1ABvHKFDRIZAtBriCkHAF8cQA\\">Try</a></div></pre></div>"
<span class=\\"error\\"><span>Type 'boolean' is not assignable to type 'string'.</span><span class=\\"code\\">2322</span></span><span class=\\"error-behind\\">Type 'boolean' is not assignable to type 'string'.</span><span style=\\"color:#ECEFF4;\\">}</span></code></div></pre></div>"
`)
})
})
Expand Down Expand Up @@ -278,7 +280,7 @@ describe("highlighter", () => {
)
})

test.skip("renders correctly", () => {
test("renders correctly", () => {
expect(nuxtContent).toMatchInlineSnapshot(`
"<div class=\\"highlighted-using-highlightjs\\"><pre><code class=\\"hljs undefined\\"><span class=\\"hljs-built_in\\">console</span>.log(<span class=\\"hljs-string\\">'Highlighter'</span>)
</code></pre></div>
Expand Down Expand Up @@ -312,7 +314,9 @@ describe("highlighter", () => {
if (!lang || lang === "null") {
lang = "typescript"
}
const code = highlighter.codeToHtml(rawCode, lang)
const code = highlighter
.codeToHtml(rawCode, lang)
.replace(/<a[^>]*>([^<]+)<\/a>/g, "")
return h(
node,
"div",
Expand Down Expand Up @@ -346,10 +350,10 @@ describe("highlighter", () => {
)
})

test.skip("renders correctly", () => {
test("renders correctly", () => {
expect(nuxtContent).toMatchInlineSnapshot(`
"<div class=\\"highlighted-using-shiki\\"><pre class=\\"shiki\\" style=\\"background-color:#2e3440;\\"><code><span class=\\"line\\"><span style=\\"color:#D8DEE9;\\">console</span><span style=\\"color:#ECEFF4;\\">.</span><span style=\\"color:#88C0D0;\\">log</span><span style=\\"color:#D8DEE9FF;\\">(</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#A3BE8C;\\">Highlighter</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#D8DEE9FF;\\">)</span></span></code></pre></div>
<div class=\\"highlighted-using-shiki index.ts\\" data-line=\\"1\\"><pre class=\\"shiki\\" style=\\"background-color:#2e3440;\\"><code><span class=\\"line\\"><span style=\\"color:#616E88;\\">// @errors: 2322</span></span>
"<div class=\\"highlighted-using-shiki\\"><pre class=\\"shiki\\" style=\\"background-color:#2e3440ff;\\"><code><span class=\\"line\\"><span style=\\"color:#D8DEE9;\\">console</span><span style=\\"color:#ECEFF4;\\">.</span><span style=\\"color:#88C0D0;\\">log</span><span style=\\"color:#D8DEE9FF;\\">(</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#A3BE8C;\\">Highlighter</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#D8DEE9FF;\\">)</span></span></code></pre></div>
<div class=\\"highlighted-using-shiki index.ts\\" data-line=\\"1\\"><pre class=\\"shiki\\" style=\\"background-color:#2e3440ff;\\"><code><span class=\\"line\\"><span style=\\"color:#616E88;\\">// @errors: 2322</span></span>
<span class=\\"line\\"><span style=\\"color:#81A1C1;\\">function</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#88C0D0;\\">sum</span><span style=\\"color:#ECEFF4;\\">(</span><span style=\\"color:#D8DEE9;\\">a</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">,</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#D8DEE9;\\">b</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">)</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">string</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#ECEFF4;\\">{</span></span>
<span class=\\"line\\"><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">return</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">true</span></span>
<span class=\\"line\\"><span style=\\"color:#ECEFF4;\\">}</span></span></code></pre></div>"
Expand Down Expand Up @@ -391,7 +395,7 @@ describe("highlighter", () => {
{},
highlighter,
twoslashResults
)
).replace(/<a[^>]*>([^<]+)<\/a>/g, "")
return h(
node,
"div",
Expand Down Expand Up @@ -428,12 +432,12 @@ describe("highlighter", () => {
)
})

test.skip("renders correctly", () => {
test("renders correctly", () => {
expect(nuxtContent).toMatchInlineSnapshot(`
"<div class=\\"highlighted-using-shiki-twoslash\\"><pre class=\\"shiki twoslash lsp\\"><div class=\\"code-container\\"><code><span style=\\"color:#8FBCBB;\\"><span data-lsp=\\"var console: Console\\" class=\\"data-lsp\\">console</span></span><span style=\\"color:#ECEFF4;\\">.</span><span style=\\"color:#88C0D0;\\"><span data-lsp=\\"(method) Console.log(...data: any[]): void\\" class=\\"data-lsp\\">log</span></span><span style=\\"color:#D8DEE9FF;\\">(</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#A3BE8C;\\">Highlighter</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#D8DEE9FF;\\">)</span></code><a href=\\"https://www.typescriptlang.org/play/#code/MYewdgziA2CmB00QHMAUByAEgS2QC2lzwBdYAndASgCgg\\">Try</a></div></pre></div>
"<div class=\\"highlighted-using-shiki-twoslash\\"><pre class=\\"shiki twoslash lsp\\"><div class=\\"code-container\\"><code><span style=\\"color:#8FBCBB;\\"><span data-lsp=\\"var console: Console\\" class=\\"data-lsp\\">console</span></span><span style=\\"color:#ECEFF4;\\">.</span><span style=\\"color:#88C0D0;\\"><span data-lsp=\\"(method) Console.log(...data: any[]): void\\" class=\\"data-lsp\\">log</span></span><span style=\\"color:#D8DEE9FF;\\">(</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#A3BE8C;\\">Highlighter</span><span style=\\"color:#ECEFF4;\\">'</span><span style=\\"color:#D8DEE9FF;\\">)</span></code></div></pre></div>
<div class=\\"highlighted-using-shiki-twoslash index.ts\\" data-line=\\"1\\"><pre class=\\"shiki twoslash lsp\\"><div class=\\"code-container\\"><code><span style=\\"color:#81A1C1;\\">function</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#88C0D0;\\"><span data-lsp=\\"function sum(a: number, b: number): string\\" class=\\"data-lsp\\">sum</span></span><span style=\\"color:#ECEFF4;\\">(</span><span style=\\"color:#D8DEE9;\\"><span data-lsp=\\"(parameter) a: number\\" class=\\"data-lsp\\">a</span></span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">,</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#D8DEE9;\\"><span data-lsp=\\"(parameter) b: number\\" class=\\"data-lsp\\">b</span></span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">number</span><span style=\\"color:#ECEFF4;\\">)</span><span style=\\"color:#81A1C1;\\">:</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#8FBCBB;\\">string</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#ECEFF4;\\">{</span>
<span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">return</span><span style=\\"color:#D8DEE9FF;\\"> </span><span style=\\"color:#81A1C1;\\">true</span>
<span class=\\"error\\"><span>Type 'boolean' is not assignable to type 'string'.</span><span class=\\"code\\">2322</span></span><span class=\\"error-behind\\">Type 'boolean' is not assignable to type 'string'.</span><span style=\\"color:#ECEFF4;\\">}</span></code><a href=\\"https://www.typescriptlang.org/play/#code/PTAEAEFMCdoe2gZwFygEwGY1oFADMBXAOwGMAXASziNEQIFsAKAQ1SIYCMYAaUDtzjACUqRGWgUiAc1ABvHKFDRIZAtBriCkHAF8cQA\\">Try</a></div></pre></div>"
<span class=\\"error\\"><span>Type 'boolean' is not assignable to type 'string'.</span><span class=\\"code\\">2322</span></span><span class=\\"error-behind\\">Type 'boolean' is not assignable to type 'string'.</span><span style=\\"color:#ECEFF4;\\">}</span></code></div></pre></div>"
`)
})
})
Expand Down

0 comments on commit f445444

Please sign in to comment.