vuepress / vuepress-community

:bulb: Community supported ecosystem for VuePress
https://vuepress-community.netlify.app
MIT License
81 stars 62 forks source link

[Bug Report] #2

Closed shaunc closed 4 years ago

shaunc commented 4 years ago

Environment

Describe the bug

According to https://github.com/markdown-it/markdown-it-container/issues/6#issuecomment-213789283 I should be able to use nested containers by using extra marker symbols. However, This fails in VuePress.

Steps To Reproduce

In config

    [
      'vuepress-plugin-container',
      {
        type: 'feature',
        before: title => `<div class="feature"><h3>${title}</h3>`,
        after: '</div>',
      },
    ],
    [
      'vuepress-plugin-container',
      {
        type: 'featureSet',
        before: title => 
          `<div class="feature-set"><h2 v-if="${title}">${title}</h2>`,
        after: '</div>',
      },
    ]

In Markdown


:::: featureSet What it is

::: feature Feature

  Yes -- of course.

:::

::::

Result

$ vuepress build docs
wait Extracting site metadata...
tip Apply local theme at /Users/shauncutts/src/factfiber/factfiber.ai/packages/ai-site/docs/.vuepress/theme...
tip Apply theme local (extends @vuepress/theme-default) ...
tip Apply plugin container (i.e. "vuepress-plugin-container") ...
tip Apply plugin @vuepress/register-components (i.e. "@vuepress/plugin-register-components") ...
tip Apply plugin @vuepress/active-header-links (i.e. "@vuepress/plugin-active-header-links") ...
tip Apply plugin @vuepress/search (i.e. "@vuepress/plugin-search") ...
tip Apply plugin @vuepress/nprogress (i.e. "@vuepress/plugin-nprogress") ...

● Client █████████████████████████ chunk asset optimization (92%) OptimizeCssAssetsWebpackPlugin 

✖ Server
  Compiled with some errors in 5.47s

✖ Client
  Compiled with some errors in 8.55s

✖ Server
  Compiled with some errors in 5.47s

(undefined) ./docs/Readme.md?vue&type=template&id=69dd0401& (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"../../../../../.config/yarn/global/node_modules/@vuepress/core/node_modules/.cache/vuepress","cacheIdentifier":"5d084cb4-vue-loader-template"}!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/cache-loader/dist/cjs.js??ref--1-0!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/vue-loader/lib??ref--1-1!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/markdown-loader??ref--1-2!./docs/Readme.md?vue&type=template&id=69dd0401&)
Module build failed (from /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/vue-loader/lib/loaders/templateLoader.js):
SyntaxError: Unexpected token (1:310)
    at Parser.pp$4.raise (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2757:13)
    at Parser.pp.unexpected (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:647:8)
    at Parser.pp.expect (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:641:26)
    at Parser.pp$3.parseParenAndDistinguishExpression (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2228:38)
    at Parser.pp$3.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2163:41)
    at Parser.<anonymous> (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6003:24)
    at Parser.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6129:31)
    at Parser.pp$3.parseExprSubscripts (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2047:19)
    at Parser.pp$3.parseMaybeUnary (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2024:17)
    at Parser.pp$3.parseExprOps (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1966:19)
    at Parser.pp$3.parseMaybeConditional (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1949:19)
    at Parser.pp$3.parseMaybeAssign (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1925:19)
    at Parser.pp$3.parseExprList (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2663:20)
    at Parser.pp$3.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2175:26)
    at Parser.<anonymous> (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6003:24)
    at Parser.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6129:31)
    at Parser.pp$3.parseExprSubscripts (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2047:19)
    at Parser.pp$3.parseMaybeUnary (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2024:17)
    at Parser.pp$3.parseExprOps (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1966:19)
    at Parser.pp$3.parseMaybeConditional (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1949:19)
    at Parser.pp$3.parseMaybeAssign (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1925:19)
    at Parser.pp$3.parseExprList (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2663:20)
 @ ./docs/Readme.md?vue&type=template&id=69dd0401& 1:0-706 1:0-706
 @ ./docs/Readme.md
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/.temp/internal/page-components.js
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/util.js
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/app.js
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/clientEntry.js
 @ multi /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/clientEntry.js
(undefined) ./docs/Readme.md?vue&type=template&id=69dd0401& (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"../../../../../.config/yarn/global/node_modules/@vuepress/core/node_modules/.cache/vuepress","cacheIdentifier":"c08e08ac-vue-loader-template"}!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/cache-loader/dist/cjs.js??ref--1-0!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/vue-loader/lib??ref--1-1!/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/markdown-loader??ref--1-2!./docs/Readme.md?vue&type=template&id=69dd0401&)
Module build failed (from /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/vue-loader/lib/loaders/templateLoader.js):
SyntaxError: Unexpected token (1:310)
    at Parser.pp$4.raise (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2757:13)
    at Parser.pp.unexpected (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:647:8)
    at Parser.pp.expect (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:641:26)
    at Parser.pp$3.parseParenAndDistinguishExpression (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2228:38)
    at Parser.pp$3.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2163:41)
    at Parser.<anonymous> (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6003:24)
    at Parser.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6129:31)
    at Parser.pp$3.parseExprSubscripts (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2047:19)
    at Parser.pp$3.parseMaybeUnary (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2024:17)
    at Parser.pp$3.parseExprOps (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1966:19)
    at Parser.pp$3.parseMaybeConditional (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1949:19)
    at Parser.pp$3.parseMaybeAssign (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1925:19)
    at Parser.pp$3.parseExprList (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2663:20)
    at Parser.pp$3.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2175:26)
    at Parser.<anonymous> (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6003:24)
    at Parser.parseExprAtom (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:6129:31)
    at Parser.pp$3.parseExprSubscripts (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2047:19)
    at Parser.pp$3.parseMaybeUnary (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2024:17)
    at Parser.pp$3.parseExprOps (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1966:19)
    at Parser.pp$3.parseMaybeConditional (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1949:19)
    at Parser.pp$3.parseMaybeAssign (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:1925:19)
    at Parser.pp$3.parseExprList (/Users/shauncutts/.config/yarn/global/node_modules/vue-template-es2015-compiler/buble.js:2663:20)
 @ ./docs/Readme.md?vue&type=template&id=69dd0401& 1:0-706 1:0-706
 @ ./docs/Readme.md
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/.temp/internal/page-components.js
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/util.js
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/app.js
 @ /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/serverEntry.js
 @ multi /Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/client/serverEntry.js
Error: Failed to compile with errors.
    at webpack (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/lib/node/build/index.js:186:16)
    at finalCallback (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/MultiCompiler.js:254:12)
    at runWithDependencies.err (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/MultiCompiler.js:277:6)
    at done (/Users/shauncutts/.config/yarn/global/node_modules/neo-async/async.js:2931:13)
    at runCompilers (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/MultiCompiler.js:181:48)
    at err (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/MultiCompiler.js:188:7)
    at compiler.run (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/MultiCompiler.js:270:7)
    at finalCallback (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/Compiler.js:257:39)
    at hooks.done.callAsync.err (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/Compiler.js:273:13)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:33:1)
    at AsyncSeriesHook.lazyCompileHook (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/Hook.js:154:20)
    at onCompiled (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/Compiler.js:271:21)
    at hooks.afterCompile.callAsync.err (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/Compiler.js:681:15)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/Hook.js:154:20)
    at compilation.seal.err (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/Compiler.js:678:31)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:9:1)
    at AsyncSeriesHook.lazyCompileHook (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/Hook.js:154:20)
    at hooks.optimizeAssets.callAsync.err (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/Compilation.js:1423:35)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:9:1)
    at AsyncSeriesHook.lazyCompileHook (/Users/shauncutts/.config/yarn/global/node_modules/tapable/lib/Hook.js:154:20)
    at hooks.optimizeChunkAssets.callAsync.err (/Users/shauncutts/.config/yarn/global/node_modules/@vuepress/core/node_modules/webpack/lib/Compilation.js:1414:32)

Expected behavior

I would expect nested divs to be rendered without a compile error.

Additional context

I also tried changing the marker, but this doesn't work either, with seemingly the same error.

shaunc commented 4 years ago

UPDATE The problem was actually the use of v-if in the configured before function for featureSet. I can confirm that nested containers work either with mark change or extra characters if before returns plain html. :)

lock[bot] commented 4 years ago

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.