-
Notifications
You must be signed in to change notification settings - Fork 21
CLI user-experience improvements #1150
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
Merged
Merged
+1,390
−231
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced Jan 19, 2026
9671b3e to
a9c1fe0
Compare
efdee12 to
2c9bd2e
Compare
a9c1fe0 to
5a57dcf
Compare
2c9bd2e to
54623ff
Compare
Implementation of a simple abstraction for console output for improved separation of concerns and testing.
The instanceof condition will never be true for string literals, test typeof alias is a String instead.
Commander.js preAction method signature is (thisCommand, actionCommand) while the actionCommand parameter is unused by most commands it is included for API consistency with Commander.js hooks.
The quire version command is incomplete functionality, while quire-11ty is installed directly into a project directory alongside content there is not a path for users to change the quire-11ty version after starting a project and ensure non-breaking changes or loss of user customization. Quire v1 hides the cli command to change the project quire-11ty version is hidden.
Though version command is renamed to 'use' the command remains hidden.
Encapsulate parsing options defined using the array-syntax to transform them into an Option object that can be passed to the addOption method.
When the --build is set and build outputs are missig build will be run first, before generating epub or pdf output. This flag expands possible programmatic uses of the quire-cli.
The regesitered command name remains 'settings' to benefit non-developer audience while the command module renaming aligns with many other cli tools (git, npm, et cetera) and benefits developers.
TODO plan a more comprehensive implementation of the quire help <topic>
The isQuire function was moved to lib/project/detect.js and the tests were duplicated there. The orphaned test file imported a non-existent source file, causing CI failures.
eb9450d to
2b9bc08
Compare
These files were replaced by lib/logger/index.js in the squash merge of feature/log-output-refined into main. The rebase incorrectly replayed a commit that added these files.
Update esmock configuration to use #lib/logger/index.js instead of the removed #src/lib/logger.js path.
The rebase incorrectly replaced the MissingBuildOutputError with a manual error construction. This restores the proper error class usage and updates the test to expect the correct error code.
Same fix as epub command - the rebase incorrectly replaced the MissingBuildOutputError with manual error construction.
Implementation was missing PDF path information. Now returns: - pdf.exists: boolean indicating if any PDF output exists - pdf.paths: array of existing PDF file paths - pdf.mtime: most recent modification time among PDF files
TODO: the quire serve command should run a local http server for the build output.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull-Request Stacked on #1149
Purpose
The Quire CLI has four users groups, or audiences, for whom there are overlapping use cases and for whom the cli needs to provide an understandable and effective interface. These audiences/users are:
The changes in this pull-request address concerns across all four of these user groups and the overlapping workflows in order to make the CLI a more effective and reliable tool for each.
Added
quire help) outputdocs/workflows.mdAreplaced in PR Feature: Help Topics System #1162quire help workflowssubcommandChanged
--11tyoption frombuildandpreviewcommand help output; this is an internal implementation detail option that should not be shown to most users.the
preActionmethod signature is(thisCommand, actionCommand)and while theactionCommandparameter is unused by most commands it is included for API consistency with Commander.js hooks.quire confcommand toquire settings, which benefits non-developers;commands/confmodules tocommands/configThe registered command name remains 'settings' and the command modules are renamed in the code to align with other cli tools.
versioncommand touseand hides this command;Having a command named
versionand aquire --versionoption was confusing.The quire version command is incomplete functionality, while
quire-11tyis installed directly into a project directory alongside content there is not a path for users to change thequire-11tyversion after starting a project and ensure non-breaking changes or loss of user customization. Quire v1 hides the cli command to change the projectquire-11tyversion is hidden.epubandpdfcommand option--libto--engine;The option name
--libis less clear for both non-technical users and developers familiar with other tools,--engineis more idiomatic; the--liboption is deprecated but hidden, making the renamed option a non-breaking change.