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(core): newpage command cli #1215

Closed
wants to merge 7 commits into from

Conversation

webmasterish
Copy link

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.)

Browsers testing not applicable as this is a cli command.

  • 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:

This feature was originally discussed in Blog support roadmap.

I had initially created vuepress-new-page for testing this feature and it worked as intended.

The newpage command is more flexible than the original one I did, and has more features; here's some prominent ones:

  • slug and path are auto generated from page title option --title
  • pages can be in their own directories or in any path you provide through the --path option
  • set page frontmatter by using --frontmatter option
  • use you own template --template "path/to/custom/template"
  • auto fill page content with lorem text by simply passing --content "%%lorem%%"

Usage examples:

// basic
vuepress newpage --title "Basic Page"

// home page
vuepress newpage --path "README.md" --frontmatter.home true

// page content populated by lorem
vuepress newpage -t "Test styles" -c "%%lorem%%"

Other static site generators having a similar command:

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.

Thanks, but it should be included in a plugin instead of the core.

FYI: PluginAPI > extendcli

@ulivz ulivz closed this Jan 24, 2019
@webmasterish
Copy link
Author

So, you consider vuepress eject, a command that if it ever gets used it will be once per project, a necessary one that should be included in core, while a command for creating pages, a definitive recurring task in every project, should be added through a plugin made and maintained by a third party; interesting.

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