Skip to content

Conversation

Slashgear
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
    There is no dedicated documentation for async options for now
  • 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:

I am working on a project where I use vuepress alpha.47. I am trying to fetch dynamically information for $page data base on a frontmatter value.

Here is the code of the plugin I am trying to introduce in my project.

const { fetchUser } = require('./service');

module.exports = () => {
  const authors = {};

  return {
    name: "github",

    async extendPageData($page) {
      if($page.frontmatter.type === "post") {
        const githubProfile = $page.frontmatter.github_profile;

        if(!authors[githubProfile]){
          const fetched = await fetchUser(githubProfile); 
          authors[githubProfile] = fetched;

          $page.frontmatter.gh = fetched;
          return $page;
        }
      }
      return $page;
    }
  }
};

But extendPageData is not async ready for now.
So this is my contribution to make is async ready 🎉

Tested locally with yarn link

@flozero
Copy link
Collaborator

flozero commented Aug 9, 2019

Hello ! @Slashgear is it needed again ? You want to add the possibility to make async request on that that's the need behind ?

@Slashgear
Copy link
Contributor Author

Yep, that was the need hidden behind.

It was needed for one of my project, but without answer I had to switch from static site generator.
😞

@flozero
Copy link
Collaborator

flozero commented Aug 10, 2019

sorry to hear that. as we create the core team we need a bit time to establish the needs and work on it.

@kefranabg kefranabg mentioned this pull request Aug 19, 2019
18 tasks
@flozero flozero self-assigned this Sep 5, 2019
@flozero
Copy link
Collaborator

flozero commented Sep 5, 2019

Thank's for your work @Slashgear i have to look a bit about async stuff and test here but it look great !

@flozero flozero added type: enhancement Request to enhance an existing feature status: core team assigned Core team member assigned version: 1.x Relates to version 1 of VuePress labels Sep 5, 2019
Copy link
Collaborator

@kefranabg kefranabg left a comment

Choose a reason for hiding this comment

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

@Slashgear Thank you for this PR

I just made a test and everything seems to work as expected 👍
Sorry for the delay 😉

I just think we should update the documentation to let users know that extendPageData is also working as an async function. I can take care of this update if you want, just let me know !

@Slashgear
Copy link
Contributor Author

@kefranabg I don't have the time now to do it :-)

So, go for it 😄

@kefranabg kefranabg merged commit 543fd6c into vuejs:master Sep 10, 2019
@vue-bot
Copy link

vue-bot commented Sep 10, 2019

Hey @Slashgear, thank you for your time and effort spent on this PR, contributions like yours help make Vue better for everyone. Cheers! 💚

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: core team assigned Core team member assigned type: enhancement Request to enhance an existing feature version: 1.x Relates to version 1 of VuePress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants