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

feat($markdown): refine markdown api #1337

Merged
merged 1 commit into from Feb 24, 2019
Merged

feat($markdown): refine markdown api #1337

merged 1 commit into from Feb 24, 2019

Conversation

shigma
Copy link
Collaborator

@shigma shigma commented Feb 24, 2019

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:

feat: support env.loader

User can get access to markdown-loader using env.loader. Example:

module.exports = (md, options) => {
  md.renderer.rules.my_rule = (tokens, index, options, env) => {
    const { src } = tokens[index]
    env.loader.addDependency(src)
    if (!fs.existSync(src)) {
      env.loader.emitWarning(`File Not Found: ${src}.`)
    }
  }
}

refactor: refine link bahavior

Every token is an instance of Token. Its prototype should not be removed, otherwise other plugins will run into error if any instance method is called (such as token.attrIndex('href')).

@shigma shigma requested a review from ulivz February 24, 2019 06:54
@ulivz
Copy link
Member

ulivz commented Feb 24, 2019

Did the example have a typo?

env.emitWarning(`File Not Found: ${src}.`) ---> env.loader.emitWarning(`File Not Found: ${src}.`)

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.

None yet

2 participants