-
Notifications
You must be signed in to change notification settings - Fork 832
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: New extensibility model based on libraries #8306
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks awesome! Some little comments on the API surface
0237289
to
d937381
Compare
d937381
to
f59060e
Compare
Codecov ReportBase: 72.79% // Head: 73.25% // Increases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #8306 +/- ##
==========================================
+ Coverage 72.79% 73.25% +0.46%
==========================================
Files 953 955 +2
Lines 38680 38627 -53
Branches 7191 7186 -5
==========================================
+ Hits 28158 28298 +140
+ Misses 8387 8204 -183
+ Partials 2135 2125 -10
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
cd8d8d3
to
fde1265
Compare
This is a new extensibility model by shipping docfx as a library. It changes the extensibility model from runtime to build time:
Microsoft.DocAsCode
is a new library package with public APIs to build a project with the exact same behavior as executing thedocfx
CLI.docfx
package is a thin command line wrapper aroundMicrosoft.DocAsCode
.Microsoft.DocAsCode
packagedotnet-script
orcake
.memberpage
are shipped as ordinary NuGet libraries, to use an extension, add it to the project using<PackageReference>
.Microsoft.DocAsCode
with additional APIs for customization.See
samples/extensions
folder on an EXE project sample.This approach solves the problems of sharing+consuming extensions and assembly loading issues with the plugin approach.
Loading plugins dynamically was removed with this change.
The initial APIs exposed by this PR are:
cc @vicancy