Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(@plugin-blog): fix blog layout rendering error (close: #1073) #1095

Merged
merged 2 commits into from
Dec 13, 2018

Conversation

Mrminfive
Copy link
Contributor

Summary

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Docs
  • Build-related changes
  • Other, please describe:

If changing the UI of default theme, please provide the before/after screenshot:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

The PR fulfills these requirements:

  • When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)

You have tested in the following browsers: (Providing a detailed version will be better.)

  • Chrome
  • Firefox
  • Safari
  • Edge
  • IE

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature
  • Related documents have been updated
  • Related tests have been updated

To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.

Other information:

The new page of the blog plugin cannot be used because the getSiteData method has been executed before the plugin ready.

Copy link
Member

@ulivz ulivz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work, just some small tweaks

@@ -111,7 +111,7 @@ module.exports = class AppContext {
})
)

await this.pluginAPI.options.ready.apply()
await this.pluginAPI.options.ready.asyncApply()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually the apply method of a asynchronous option was a alias of asyncApply: https://github.com/vuejs/vuepress/blob/master/packages/%40vuepress/core/lib/plugin-api/abstract/AsyncOption.js#L93


if (typeof this.frontmatter.layout === 'string') {
this._hasInitLayout = true
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use datatypes: { isString } from shared-utils directly.

rawFrontmatter[key] = rawFrontmatter[key] || frontmatter[key]
if (!pageCtx._hasInitLayout) {
rawFrontmatter[key] = frontmatter[key]
}
Copy link
Member

@ulivz ulivz Dec 12, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it would block the apply of other attrs (e.g. permalink ) in frontmatter ? actually I think the following override strategy should be right —— we should respect all the attrs which has been set in user's frontmatter.

if (!frontmatter[key]) {
  rawFrontmatter[key] = frontmatter[key]
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I ignored this question.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if (!frontmatter[key]) {
rawFrontmatter[key] || frontmatter[key]
}

Is this setting a bit problematic?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

= instead of ||

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I corrected this by the way.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cool

@ulivz
Copy link
Member

ulivz commented Dec 12, 2018

Another FYI, actually the blog and theme-blog package are still WIP so there are set private at package.json

Copy link
Member

@ulivz ulivz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ulivz ulivz merged commit f8469eb into vuejs:master Dec 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants