├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug-dotnet.md │ ├── bug-template.md │ ├── bug.md │ └── feature-request.md ├── actions │ └── build │ │ └── action.yml ├── codecov.yml ├── dependabot.yml ├── release.yml └── workflows │ ├── ci.yml │ ├── dependabot.yml │ ├── lint.yml │ ├── nightly.yml │ ├── release.yml │ ├── reports.yml │ └── snapshot.yml ├── .gitignore ├── .vsconfig ├── .xrefmap.json ├── CODE-OF-CONDUCT.md ├── CONTRIBUTING.md ├── Directory.Build.props ├── Directory.Packages.props ├── Dockerfile ├── LICENSE ├── README.md ├── RELEASENOTE.md ├── SECURITY.MD ├── SpellingExclusions.dic ├── THIRD-PARTY-NOTICES.TXT ├── docfx.sln ├── docs ├── codesnippet │ └── Rtf │ │ ├── Hyperlink │ │ └── RtfDocumentProcessor.cs │ │ ├── RtfBuildStep.cs │ │ └── RtfDocumentProcessor.cs ├── docfx.json ├── docs │ ├── additional-languages.md │ ├── api-page.yml │ ├── basic-concepts.md │ ├── config.md │ ├── dotnet-api-docs.md │ ├── dotnet-yaml-format.md │ ├── links-and-cross-references.md │ ├── markdown.md │ ├── media │ │ ├── Program.cs │ │ ├── pdf-cover-page.png │ │ └── pdf-toc-page.png │ ├── pdf.md │ ├── publish-azure-devops.md │ ├── rest-api-docs.md │ ├── table-of-contents.md │ ├── template.md │ └── toc.yml ├── extensions │ ├── images │ │ ├── cake-contrib-addin-large.png │ │ ├── darkfx.screenshot.png │ │ ├── default.green.screenshot.png │ │ ├── default.screenshot.png │ │ ├── discordfx.screenshot.png │ │ ├── docfx.plantuml.plugin.screenshot.png │ │ ├── docfxquickstart.screenshot.png │ │ ├── docfxtocgenerator.screenshot.png │ │ ├── doclanguagetranslator.screenshot.png │ │ ├── doclinkchecker.screenshot.png │ │ ├── material.screenshot.png │ │ ├── mathew.screenshot.png │ │ ├── memberpage.default.screenshot.png │ │ ├── minimal.screenshot.png │ │ ├── modern.screenshot.png │ │ ├── rest.operationpage.default.screenshot.png │ │ ├── rest.tagpage.default.screenshot.png │ │ ├── roel4ez-feather.screenshot.png │ │ ├── roel4ez-modal.screenshot.png │ │ ├── singulinkfx.screenshot.png │ │ └── unityfx.png │ ├── packages.yml │ ├── templates.yml │ ├── toc.yml │ └── tools.yml ├── images │ └── output-example.png ├── index.md ├── reference │ ├── docfx-cli-reference │ │ ├── docfx-build.md │ │ ├── docfx-download.md │ │ ├── docfx-init.md │ │ ├── docfx-merge.md │ │ ├── docfx-metadata.md │ │ ├── docfx-pdf.md │ │ ├── docfx-serve.md │ │ ├── docfx-template.md │ │ ├── docfx.md │ │ ├── overview.md │ │ └── toc.yml │ ├── docfx-environment-variables-reference.md │ └── docfx-json-reference.md ├── spec │ ├── docfx_document_schema.md │ ├── docfx_flavored_markdown.md │ ├── images │ │ ├── docfx_workflow.png │ │ ├── docfx_workflow.vsdx │ │ ├── docfx_workflow_highlevel.png │ │ └── sdp_workflow.png │ ├── metadata_dotnet_spec.md │ ├── metadata_format_spec.md │ ├── sdp_design_spec.md │ └── triple_slash_comments_spec.md ├── template │ ├── dashboard.html.tmpl │ ├── public │ │ ├── main.css │ │ └── main.js │ └── schemas │ │ └── Dashboard.schema.json ├── toc.yml └── tutorial │ ├── advanced_support_hyperlink.md │ ├── docfx_getting_started.md │ ├── howto_add_a_customized_post_processor.md │ ├── howto_build_your_own_type_of_documentation_with_custom_plug-in.md │ ├── howto_create_custom_template.md │ ├── howto_filter_out_unwanted_apis_attributes.md │ ├── images │ ├── simple_web_page.png │ ├── toc_web_page.png │ └── web_page_with_extra_property.png │ ├── intro_overwrite_files.md │ ├── intro_rest_api_documentation.md │ ├── intro_template.md │ ├── intro_toc.md │ ├── links_and_cross_references.md │ └── walkthrough │ ├── advanced_walkthrough.md │ ├── walkthrough_create_a_docfx_project.md │ ├── walkthrough_create_a_docfx_project_2.md │ ├── walkthrough_generate_pdf.md │ └── walkthrough_overview.md ├── samples ├── Directory.Build.props ├── common │ └── Example.cs ├── csharp │ ├── docfx.json │ └── src │ │ ├── CSharp.csproj │ │ ├── CSharp10.cs │ │ ├── CSharp11.cs │ │ ├── CSharp12.cs │ │ ├── CSharp8.cs │ │ └── CSharp9.cs ├── extensions │ ├── README.md │ ├── api │ │ └── .gitignore │ ├── build │ │ ├── Program.cs │ │ └── build.csproj │ ├── docfx.json │ ├── index.md │ ├── src │ │ └── ExampleClass.cs │ └── toc.yml └── seed │ ├── articles │ ├── csharp_coding_standards.md │ ├── docfx_getting_started.md │ ├── engineering_guidelines.md │ ├── images │ │ └── seed.jpg │ ├── markdown.md │ ├── media │ │ └── Program.cs │ └── toc.yml │ ├── docfx.json │ ├── dotnet │ ├── assembly │ │ ├── BuildFromAssembly.csproj │ │ └── Class1.cs │ ├── csharp │ │ └── CSharp.cs │ ├── docs.xml │ ├── project │ │ ├── Project.Core │ │ │ ├── BuildFromProject.Core.csproj │ │ │ └── Class1.cs │ │ └── Project │ │ │ ├── BuildFromProject.csproj │ │ │ ├── Class1.cs │ │ │ ├── Inheritdoc.cs │ │ │ └── Namespace.cs │ ├── solution │ │ ├── BuildFromSolution.sln │ │ ├── CatLibrary.Core │ │ │ ├── BaseClass.cs │ │ │ └── CatLibrary.Core.csproj │ │ └── CatLibrary │ │ │ ├── CatLibrary.csproj │ │ │ └── Class1.cs │ └── vb │ │ └── Class1.vb │ ├── index.md │ ├── pdf │ ├── cover.md │ └── toc.yml │ ├── restapi │ ├── contacts_swagger2.json │ ├── petstore.swagger.json │ └── toc.md │ ├── specs │ ├── Cat.CalculateFood.md │ ├── Cat.md │ ├── CatLibrary.IAnimal.md │ ├── petstore-operations.addPet.footer.md │ ├── petstore-operations.footer.md │ ├── petstore-operations.md │ ├── petstore-operations.tag.pet.md │ └── petstore-operations.tag.store.md │ ├── template │ ├── public │ │ ├── bicep.js │ │ └── main.js │ └── token.json │ └── toc.yml ├── schemas ├── docfx.schema.json ├── filterconfig.schema.json ├── toc.schema.json ├── v1.0 │ └── schema.json └── xrefmap.schema.json ├── src ├── Directory.Build.props ├── Docfx.App │ ├── Build │ │ └── Docfx.App.props │ ├── BuildOptions.cs │ ├── Config │ │ ├── BuildJsonConfig.cs │ │ ├── DocfxConfig.cs │ │ ├── FileMetadataPairs.cs │ │ ├── FileMetadataPairsConverter.NewtonsoftJson.cs │ │ ├── FileMetadataPairsConverter.SystemTextJson.cs │ │ ├── FileMetadataPairsConverter.cs │ │ ├── FileMetadataPairsItem.cs │ │ ├── GroupConfig.cs │ │ ├── ListWithStringFallback.cs │ │ ├── ListWithStringFallbackConverter.NewtonsoftJson.cs │ │ ├── ListWithStringFallbackConverter.SystemTextJson.cs │ │ ├── ListWithStringFallbackConverter.cs │ │ ├── MergeJsonConfig.cs │ │ ├── MergeJsonConfigConverter.NewtonsoftJson.cs │ │ ├── MergeJsonConfigConverter.SystemTextJson.cs │ │ ├── MergeJsonConfigConverter.cs │ │ ├── MergeJsonItemConfig.cs │ │ └── MetadataMergeParameters.cs │ ├── Docfx.App.csproj │ ├── Docset.cs │ ├── Helpers │ │ ├── DocumentBuilderWrapper.cs │ │ ├── MetadataMerger.cs │ │ ├── PdfPigTypeExtensions.cs │ │ └── PlaywrightHelper.cs │ ├── PdfBuilder.cs │ ├── RunBuild.cs │ ├── RunMerge.cs │ ├── RunMetadata.cs │ └── RunServe.cs ├── Docfx.Build.Common │ ├── BaseDocumentBuildStep.cs │ ├── DisposableDocumentProcessor.cs │ ├── Docfx.Build.Common.csproj │ ├── MarkdownReader.cs │ ├── ModelAttributeHandlers │ │ ├── HandleModelAttributesContext.cs │ │ ├── Handlers │ │ │ ├── BaseModelAttributeHandler.cs │ │ │ ├── CompositeModelAttributeHandler.cs │ │ │ ├── HandleGenericItemsHelper.cs │ │ │ ├── IModelAttributeHandler.cs │ │ │ ├── MarkdownContentHandler.cs │ │ │ ├── UniqueIdentityHandler.cs │ │ │ └── UrlContentHandler.cs │ │ └── ReflectionHelper.cs │ ├── Reference │ │ ├── ApplyOverwriteDocument.cs │ │ ├── BuildReferenceDocumentBase.cs │ │ ├── OverwriteDocumentModel.cs │ │ ├── OverwriteDocumentReader.cs │ │ └── ReferenceDocumentProcessorBase.cs │ └── YamlHtmlPart.cs ├── Docfx.Build.ManagedReference │ ├── ApplyOverwriteDocumentForMREF.cs │ ├── ApplyPlatformVersion.cs │ ├── BuildManagedReferenceDocument.cs │ ├── BuildOutputs │ │ ├── ApiBuildOutput.cs │ │ ├── ApiBuildOutputUtility.cs │ │ ├── ApiExceptionInfoBuildOutput.cs │ │ ├── ApiLanguageValuePair.cs │ │ ├── ApiLinkInfoBuildOutput.cs │ │ ├── ApiNames.cs │ │ ├── ApiParameterBuildOutput.cs │ │ ├── ApiReferenceBuildOutput.cs │ │ └── ApiSyntaxBuildOutput.cs │ ├── Docfx.Build.ManagedReference.csproj │ ├── FillMetadata.cs │ ├── FillReferenceInformation.cs │ ├── ManagedReferenceDocumentProcessor.cs │ ├── MergeManagedReferenceDocument.cs │ ├── SplitClassPageToMemberLevel.cs │ └── ValidateManagedReferenceDocumentMetadata.cs ├── Docfx.Build.OperationLevelRestApi │ ├── Docfx.Build.OperationLevelRestApi.csproj │ └── SplitRestApiToOperationLevel.cs ├── Docfx.Build.OverwriteDocuments │ ├── Constants.cs │ ├── Docfx.Build.OverwriteDocuments.csproj │ ├── ExtendedModels │ │ ├── MarkdownFragment.cs │ │ └── MarkdownProperty.cs │ ├── MarkdownFragmentsCreator.cs │ ├── MarkdownFragmentsException.cs │ ├── Models │ │ ├── MarkdownFragmentModel.cs │ │ └── MarkdownPropertyModel.cs │ ├── OPathSegment.cs │ ├── OverwriteDocumentModelCreator.cs │ ├── OverwriteUtility.cs │ └── Rules │ │ ├── IOverwriteBlockRule.cs │ │ ├── InlineCodeHeadingRule.cs │ │ ├── L1InlineCodeHeadingRule.cs │ │ ├── L2InlineCodeHeadingRule.cs │ │ └── YamlCodeBlockRule.cs ├── Docfx.Build.RestApi │ ├── ApplyOverwriteDocumentForRestApi.cs │ ├── BuildRestApiDocument.cs │ ├── Docfx.Build.RestApi.csproj │ ├── RestApiDocumentProcessor.cs │ ├── RestApiHelper.cs │ ├── Swagger │ │ ├── InfoObject.cs │ │ ├── Internals │ │ │ ├── JsonLocation │ │ │ │ ├── IJsonLocation.cs │ │ │ │ ├── JsonIndexLocation.cs │ │ │ │ ├── JsonLocationHelper.cs │ │ │ │ ├── JsonLocationInfo.cs │ │ │ │ └── JsonObjectLocation.cs │ │ │ ├── SwaggerArray.cs │ │ │ ├── SwaggerFormattedReference.cs │ │ │ ├── SwaggerJsonBuilder.cs │ │ │ ├── SwaggerLoopReferenceObject.cs │ │ │ ├── SwaggerObject.cs │ │ │ ├── SwaggerObjectBase.cs │ │ │ ├── SwaggerObjectConverter.cs │ │ │ ├── SwaggerObjectType.cs │ │ │ ├── SwaggerReferenceObject.cs │ │ │ └── SwaggerValue.cs │ │ ├── OperationObject.cs │ │ ├── ParameterObject.cs │ │ ├── PathItemObject.cs │ │ ├── PathsObject.cs │ │ ├── ResponseObject.cs │ │ ├── SwaggerJsonParser.cs │ │ ├── SwaggerModel.cs │ │ └── TagItemObject.cs │ ├── SwaggerModelConverter.cs │ └── ValidateRestApiDocumentMetadata.cs ├── Docfx.Build.SchemaDriven │ ├── ApplyOverwriteDocument.cs │ ├── ApplyOverwriteFragments.cs │ ├── BuildSchemaDrivenDocument.cs │ ├── Docfx.Build.SchemaDriven.csproj │ ├── Exceptions │ │ ├── InvalidJsonPointerException.cs │ │ ├── InvalidOverwriteDocumentException.cs │ │ ├── InvalidSchemaException.cs │ │ └── SchemaKeywordNotSupportedException.cs │ ├── ISchemaFragmentsHandler.cs │ ├── Models │ │ ├── BaseSchema.cs │ │ ├── ContentAnchorParser.cs │ │ ├── ContentType.cs │ │ ├── DocumentSchema.cs │ │ ├── IContentAnchorParser.cs │ │ ├── JsonPointer.cs │ │ ├── MergeType.cs │ │ ├── OverwriteModelType.cs │ │ └── ReferenceType.cs │ ├── OverwriteApplier.cs │ ├── Processors │ │ ├── FileIncludeInterpreter.cs │ │ ├── FileInterpreter.cs │ │ ├── FragmentsValidationInterpreter.cs │ │ ├── Helper.cs │ │ ├── HrefInterpreter.cs │ │ ├── IInterpreter.cs │ │ ├── IProcessContext.cs │ │ ├── MarkdownAstInterpreter.cs │ │ ├── MarkdownInterpreter.cs │ │ ├── MarkdownWithContentAnchorInterpreter.cs │ │ ├── MergeTypeInterpreter.cs │ │ ├── Merger.cs │ │ ├── ProcessContext.cs │ │ ├── SchemaProcessor.cs │ │ ├── XrefInterpreter.cs │ │ └── XrefPropertiesInterpreter.cs │ ├── SchemaDrivenDocumentProcessor.cs │ ├── SchemaExtensions.cs │ ├── SchemaFragmentsIterator.cs │ ├── ValidateFragmentsHandler.cs │ └── Validators │ │ └── SchemaValidator.cs ├── Docfx.Build.TagLevelRestApi │ ├── Docfx.Build.TagLevelRestApi.csproj │ └── SplitRestApiToTagLevel.cs ├── Docfx.Build.UniversalReference │ ├── ApplyOverwriteDocumentForUref.cs │ ├── BuildOutputs │ │ ├── ApiBuildOutput.cs │ │ ├── ApiExceptionInfoBuildOutput.cs │ │ ├── ApiInheritanceTreeBuildOutput.cs │ │ ├── ApiLanguageValuePair.cs │ │ ├── ApiLanguageValuePairWithLevel.cs │ │ ├── ApiLinkInfoBuildOutput.cs │ │ ├── ApiNames.cs │ │ ├── ApiParameterBuildOutput.cs │ │ └── ApiSyntaxBuildOutput.cs │ ├── BuildUniversalReferenceDocument.cs │ ├── Docfx.Build.UniversalReference.csproj │ ├── FillReferenceInformation.cs │ ├── ModelConverter.cs │ ├── UniversalReferenceConstants.cs │ └── UniversalReferenceDocumentProcessor.cs ├── Docfx.Build │ ├── ApiPage │ │ ├── ApiPage.cs │ │ ├── ApiPageHtmlTemplate.cs │ │ ├── ApiPageMarkdownTemplate.cs │ │ └── ApiPageProcessor.cs │ ├── CompilePhaseHandler.cs │ ├── CompositionContainer.cs │ ├── Conceptual │ │ ├── BuildConceptualDocument.cs │ │ ├── ConceptualDocumentProcessor.cs │ │ ├── ValidateConceptualDocumentMetadata.cs │ │ └── WordCounter.cs │ ├── Docfx.Build.csproj │ ├── DocumentBuildContext.cs │ ├── DocumentBuildParameters.cs │ ├── DocumentBuilder.cs │ ├── FileCollection.cs │ ├── FileMetadata.cs │ ├── FileMetadataHelper.cs │ ├── FileMetadataItem.cs │ ├── HostService.cs │ ├── HostServiceCreator.cs │ ├── HtmlTemplate.cs │ ├── InternalManifestItem.cs │ ├── InvalidPreprocessorException.cs │ ├── LinkPhaseHandler.cs │ ├── ManifestItemWithContext.cs │ ├── ManifestProcessor.cs │ ├── ManifestUtility.cs │ ├── MarkupResultUtility.cs │ ├── OneOfJsonConverterFactory.cs │ ├── PostProcessors │ │ ├── ExtractSearchIndex.cs │ │ ├── HtmlDocumentHandler.cs │ │ ├── HtmlPostProcessor.cs │ │ ├── IHtmlDocumentHandler.cs │ │ ├── PostProcessor.cs │ │ ├── PostProcessorsManager.cs │ │ ├── RemoveDebugInfo.cs │ │ ├── SearchIndexItem.cs │ │ ├── SitemapGenerator.cs │ │ └── ValidateBookmark.cs │ ├── ResourceFileReaders │ │ ├── CompositeResourceReader.cs │ │ ├── EmptyResourceReader.cs │ │ ├── LocalFileResourceReader.cs │ │ ├── ResourceFileReader.cs │ │ └── ResourceInfo.cs │ ├── ResourceFiles │ │ ├── IResourceFileConfig.cs │ │ ├── ResourceDocumentProcessor.cs │ │ └── ValidateResourceMetadata.cs │ ├── Settings │ │ ├── ApplyTemplateOptions.cs │ │ ├── ApplyTemplateSettings.cs │ │ └── ExportSettings.cs │ ├── SingleDocumentBuilder.cs │ ├── SystemMetadata.cs │ ├── SystemMetadataGenerator.cs │ ├── TableOfContents │ │ ├── BuildTocDocument.cs │ │ ├── HrefType.cs │ │ ├── MarkdownTocReader.cs │ │ ├── TocDocumentProcessor.cs │ │ ├── TocFileType.cs │ │ ├── TocHelper.cs │ │ ├── TocItemInfo.cs │ │ ├── TocResolver.cs │ │ ├── TocRestructureUtility.cs │ │ └── Utility.cs │ ├── TemplateProcessors │ │ ├── Preprocessors │ │ │ ├── ITemplatePreprocessor.cs │ │ │ ├── JintProcessorHelper.cs │ │ │ ├── PreprocessorLoader.cs │ │ │ ├── PreprocessorWithResourcePool.cs │ │ │ ├── TemplateJintPreprocessor.cs │ │ │ └── TemplateUtility.cs │ │ ├── Template.cs │ │ ├── TemplateBundle.cs │ │ ├── TemplateCollection.cs │ │ ├── TemplateManager.cs │ │ ├── TemplateModelTransformer.cs │ │ ├── TemplatePageLoader.cs │ │ ├── TemplateProcessor.cs │ │ ├── TemplateProcessorUtility.cs │ │ ├── TemplateResourceInfo.cs │ │ ├── TemplateType.cs │ │ └── ViewRenderers │ │ │ ├── ITemplateRenderer.cs │ │ │ ├── MustacheTemplateRenderer.cs │ │ │ ├── ParseTemplateHelper.cs │ │ │ ├── RendererLoader.cs │ │ │ ├── RendererWithResourcePool.cs │ │ │ └── ResourceTemplateLoader.cs │ ├── TransformModelOptions.cs │ ├── XRefMaps │ │ ├── BasicXRefMapReader.cs │ │ ├── IXRefContainer.cs │ │ ├── IXRefContainerReader.cs │ │ ├── XRefArchive.cs │ │ ├── XRefArchiveBuilder.cs │ │ ├── XRefArchiveMode.cs │ │ ├── XRefArchiveReader.cs │ │ ├── XRefCollection.cs │ │ ├── XRefMap.cs │ │ ├── XRefMapDownloader.cs │ │ ├── XRefMapReader.cs │ │ ├── XRefMapRedirection.cs │ │ ├── XRefRedirectionReader.cs │ │ └── XRefSpecUidComparer.cs │ └── XrefDetails.cs ├── Docfx.Common │ ├── CollectionExtensions.cs │ ├── CollectionUtility.cs │ ├── CommandUtility.cs │ ├── CompositeDictionary.cs │ ├── Docfx.Common.csproj │ ├── EntityMergers │ │ ├── DictionaryMerger.cs │ │ ├── IMergeContext.cs │ │ ├── IMergeHandler.cs │ │ ├── IMerger.cs │ │ ├── JArrayMerger.cs │ │ ├── JObjectMerger.cs │ │ ├── KeyedListMerger.cs │ │ ├── MergeBehaviorOption.cs │ │ ├── MergeContext.cs │ │ ├── MergeOptionAttribute.cs │ │ ├── MergePlacement.cs │ │ ├── MergerDecorator.cs │ │ ├── MergerFacade.cs │ │ └── ReflectionEntityMerger.cs │ ├── Exceptions │ │ └── DocfxException.cs │ ├── FileAbstractLayer │ │ ├── EmptyFileReader.cs │ │ ├── FileAbstractLayer.cs │ │ ├── FileAbstractLayerBuilder.cs │ │ ├── FileAbstractLayerExtensions.cs │ │ ├── FileWriterBase.cs │ │ ├── IFileReader.cs │ │ ├── IFileWriter.cs │ │ ├── ManifestFileHelper.cs │ │ ├── ManifestFileReader.cs │ │ ├── ManifestFileWriter.cs │ │ ├── PathMapping.cs │ │ ├── RealFileReader.cs │ │ └── RealFileWriter.cs │ ├── FileItems.cs │ ├── FileItemsConverter.cs │ ├── FileLinkInfo.cs │ ├── FileMapping.cs │ ├── FileMappingItem.cs │ ├── FileModelParser.cs │ ├── Git │ │ ├── GitDetail.cs │ │ └── GitUtility.cs │ ├── IItemWithMetadata.cs │ ├── Json │ │ ├── FileMappingConverter.NewtonsoftJson.cs │ │ ├── FileMappingConverter.SystemTextJson.cs │ │ ├── FileMappingConverter.cs │ │ ├── JsonUtility.cs │ │ ├── NewtonsoftJson │ │ │ ├── ConvertToObjectHelper.cs │ │ │ ├── JObjectDictionaryToObjectDictionaryConverter.cs │ │ │ └── NewtonsoftJsonUtility.cs │ │ └── System.Text.Json │ │ │ ├── ObjectToInferredTypesConverter.cs │ │ │ └── SystemTextJsonUtility.cs │ ├── Loggers │ │ ├── CompositeLogListener.cs │ │ ├── ConsoleLogListener.cs │ │ ├── ErrorCodes.cs │ │ ├── ILogItem.cs │ │ ├── ILoggerListener.cs │ │ ├── LogLevel.cs │ │ ├── Logger.cs │ │ ├── LoggerFileScope.cs │ │ ├── ReportLogListener.cs │ │ ├── SuggestionCodes.cs │ │ └── WarningCodes.cs │ ├── LruList.cs │ ├── Path │ │ ├── FilePathComparer.cs │ │ ├── PathUtility.cs │ │ └── RelativePath.cs │ ├── ResourcePools │ │ ├── ResourceLease.cs │ │ ├── ResourcePool.cs │ │ └── ResourcePoolManager.cs │ ├── StringExtension.cs │ ├── TreeIterator.cs │ ├── UriUtility.cs │ ├── XrefUtility.cs │ ├── YamlDeserializerWithFallback.cs │ ├── YamlMime.cs │ └── YamlUtility.cs ├── Docfx.DataContracts.Common │ ├── Attributes │ │ ├── MarkdownContentAttribute.cs │ │ ├── MarkdownContentIgnoreAttribute.cs │ │ ├── UniqueIdentityReferenceAttribute.cs │ │ ├── UniqueIdentityReferenceIgnoreAttribute.cs │ │ ├── UrlContentAttribute.cs │ │ └── UrlContentIgnoreAttribute.cs │ ├── Constants.cs │ ├── Docfx.DataContracts.Common.csproj │ ├── ExternalReferences │ │ ├── ExternalReferencePackageCollection.cs │ │ ├── ExternalReferencePackageReader.cs │ │ └── ExternalReferencePackageWriter.cs │ ├── IOverwriteDocumentViewModel.cs │ ├── JTokenConverter.cs │ ├── ReferenceViewModel.cs │ ├── SourceDetail.cs │ ├── SpecViewModel.cs │ └── TocItemViewModel.cs ├── Docfx.DataContracts.RestApi │ ├── Docfx.DataContracts.RestApi.csproj │ ├── RestApiChildItemViewModel.cs │ ├── RestApiItemViewModelBase.cs │ ├── RestApiParameterViewModel.cs │ ├── RestApiResponseExampleViewModel.cs │ ├── RestApiResponseViewModel.cs │ ├── RestApiRootItemViewModel.cs │ └── RestApiTagViewModel.cs ├── Docfx.DataContracts.UniversalReference │ ├── ApiParameter.cs │ ├── ArgumentInfo.cs │ ├── AttributeInfo.cs │ ├── Docfx.DataContracts.UniversalReference.csproj │ ├── ExceptionInfo.cs │ ├── InheritanceTree.cs │ ├── ItemViewModel.cs │ ├── LinkInfo.cs │ ├── NamedArgumentInfo.cs │ ├── PageViewModel.cs │ └── SyntaxDetailViewModel.cs ├── Docfx.Dotnet │ ├── CompilationHelper.cs │ ├── Docfx.Dotnet.csproj │ ├── DotnetApiCatalog.ApiPage.cs │ ├── DotnetApiCatalog.Compile.cs │ ├── DotnetApiCatalog.ManagedReference.cs │ ├── DotnetApiCatalog.Toc.cs │ ├── DotnetApiCatalog.cs │ ├── DotnetApiOptions.cs │ ├── ExtensionMethods │ │ └── ISymbolExtensions.cs │ ├── FileInformation.cs │ ├── FileType.cs │ ├── Filters │ │ ├── AttributeFilterData.cs │ │ ├── AttributeFilterInfo.cs │ │ ├── ConfigFilterRule.cs │ │ ├── ConfigFilterRuleExcludeItem.cs │ │ ├── ConfigFilterRuleIncludeItem.cs │ │ ├── ConfigFilterRuleItem.cs │ │ ├── ConfigFilterRuleItemUnion.cs │ │ ├── ExtendedSymbolKind.cs │ │ ├── RoslynFilterData.cs │ │ └── SymbolFilterData.cs │ ├── ManagedReference │ │ ├── ApiReferenceViewModel.cs │ │ ├── ExtractMetadataConfig.cs │ │ ├── ExtractMetadataException.cs │ │ ├── MetadataItem.cs │ │ ├── MetadataModel.cs │ │ ├── Models │ │ │ ├── AdditionalNotes.cs │ │ │ ├── ApiParameter.cs │ │ │ ├── ArgumentInfo.cs │ │ │ ├── AttributeInfo.cs │ │ │ ├── ExceptionInfo.cs │ │ │ ├── ItemViewModel.cs │ │ │ ├── LinkInfo.cs │ │ │ ├── MemberType.cs │ │ │ ├── NamedArgumentInfo.cs │ │ │ ├── PageViewModel.cs │ │ │ ├── SyntaxDetailViewModel.cs │ │ │ └── SyntaxLanguage.cs │ │ ├── ReferenceItem.cs │ │ ├── Resolvers │ │ │ ├── BuildMembers.cs │ │ │ ├── BuildToc.cs │ │ │ ├── IResolverPipeline.cs │ │ │ ├── LayoutCheckAndCleanup.cs │ │ │ ├── NormalizeSyntax.cs │ │ │ ├── ResolveReference.cs │ │ │ ├── ResolverContext.cs │ │ │ ├── SetDerivedClass.cs │ │ │ ├── SetParent.cs │ │ │ └── YamlMetadataResolver.cs │ │ ├── SyntaxDetail.cs │ │ └── Visitors │ │ │ ├── SpecIdCoreVisitor.cs │ │ │ ├── SpecIdHelper.cs │ │ │ ├── SymbolVisitorAdapter.cs │ │ │ ├── TypeGenericParameterNameVisitor.cs │ │ │ ├── VisitorHelper.cs │ │ │ └── YamlModelGenerator.cs │ ├── MetadataJsonConfig.cs │ ├── Parsers │ │ ├── XHtmlWriter.cs │ │ ├── XmlComment.cs │ │ ├── XmlCommentParserContext.cs │ │ └── XmlCommentTransformer.cs │ ├── Resources │ │ ├── XmlCommentTransform.xsl │ │ └── defaultfilterconfig.yml │ ├── SourceLink │ │ ├── PortableCustomDebugInfoKinds.cs │ │ ├── SourceLinkMap.cs │ │ └── SymbolSourceDocumentFinder.cs │ ├── SymbolFilter.cs │ ├── SymbolFormatter.Symbols.cs │ ├── SymbolFormatter.Syntax.cs │ ├── SymbolFormatter.cs │ ├── SymbolHelper.cs │ ├── SymbolUrlResolver.Langword.cs │ ├── SymbolUrlResolver.MSLearn.cs │ ├── SymbolUrlResolver.MSLearnAssemblies.cs │ ├── SymbolUrlResolver.SourceLink.cs │ ├── SymbolUrlResolver.cs │ └── YamlViewModelExtensions.cs ├── Docfx.Glob │ ├── Docfx.Glob.csproj │ ├── FileGlob.cs │ ├── GlobMatcher.cs │ └── GlobUtility.cs ├── Docfx.MarkdigEngine.Extensions │ ├── Aggregator │ │ ├── BlockAggregateContext.cs │ │ ├── BlockAggregator.cs │ │ ├── IBlockAggregator.cs │ │ ├── MarkdownDocumentAggregatorVisitor.cs │ │ └── TabGroupAggregator.cs │ ├── CodeSnippet │ │ ├── CodeRange.cs │ │ ├── CodeSnippet.cs │ │ ├── CodeSnippetExtension.cs │ │ ├── CodeSnippetExtractor.cs │ │ ├── CodeSnippetParser.cs │ │ └── HtmlCodeSnippetRenderer.cs │ ├── Constants.cs │ ├── Docfx.MarkdigEngine.Extensions.csproj │ ├── ExtensionsHelper.cs │ ├── HeadingId │ │ ├── HeadingIdExtension.cs │ │ └── HeadingIdRewriter.cs │ ├── Inclusion │ │ ├── InclusionBlock │ │ │ ├── HtmlInclusionBlockRenderer.cs │ │ │ ├── InclusionBlock.cs │ │ │ └── InclusionBlockParser.cs │ │ ├── InclusionContext.cs │ │ ├── InclusionExtension.cs │ │ └── InclusionInline │ │ │ ├── HtmlInclusionInlineRenderer.cs │ │ │ ├── InclusionInline.cs │ │ │ └── InclusionInlineParser.cs │ ├── InlineOnly │ │ └── InlineOnlyExtension.cs │ ├── Interactive │ │ ├── CodeSnippetInteractiveRewriter.cs │ │ ├── FencedCodeInteractiveRewriter.cs │ │ ├── InteractiveBaseRewriter.cs │ │ └── InteractiveCodeExtension.cs │ ├── LineNumber │ │ └── LineNumberExtension.cs │ ├── MarkdigExtensionSetting.cs │ ├── MarkdigExtensionSettingConverter.NewtonsoftJson.cs │ ├── MarkdigExtensionSettingConverter.SystemTextJson.cs │ ├── MarkdigExtensionSettingConverter.cs │ ├── MarkdownContext.cs │ ├── MarkdownExtensions.cs │ ├── MonikerRange │ │ ├── MonikerRangeBlock.cs │ │ ├── MonikerRangeExtension.cs │ │ ├── MonikerRangeParser.cs │ │ └── MonikerRangeRender.cs │ ├── NestedColumn │ │ ├── NestedColumn.cs │ │ ├── NestedColumnExtension.cs │ │ ├── NestedColumnParser.cs │ │ └── NestedColumnRenderer.cs │ ├── Noloc │ │ ├── NolocExtension.cs │ │ ├── NolocInline.cs │ │ ├── NolocParser.cs │ │ └── NolocRender.cs │ ├── PlantUml │ │ ├── PlantUmlCodeBlockRenderer.cs │ │ └── PlantUmlExtension.cs │ ├── QuoteSectionNote │ │ ├── QuoteSectionNoteBlock.cs │ │ ├── QuoteSectionNoteExtension.cs │ │ ├── QuoteSectionNoteParser.cs │ │ └── QuoteSectionNoteRender.cs │ ├── ResolveLink │ │ └── ResolveLinkExtension.cs │ ├── Rewriter │ │ ├── IMarkdownObjectRewriter.cs │ │ ├── IMarkdownObjectRewriterProvider.cs │ │ └── MarkdownDocumentVisitor.cs │ ├── Row │ │ ├── Row.cs │ │ ├── RowExtension.cs │ │ ├── RowParser.cs │ │ └── RowRender.cs │ ├── TabGroup │ │ ├── ActiveAndVisibleRewriter.cs │ │ ├── HtmlTabContentBlockRenderer.cs │ │ ├── HtmlTabGroupBlockRenderer.cs │ │ ├── HtmlTabTitleBlockRenderer.cs │ │ ├── TabContentBlock.cs │ │ ├── TabGroupBlock.cs │ │ ├── TabGroupExtension.cs │ │ ├── TabGroupIdRewriter.cs │ │ ├── TabItemBlock.cs │ │ └── TabTitleBlock.cs │ ├── TripleColon │ │ ├── ChromelessFormExtension.cs │ │ ├── CodeExtension.cs │ │ ├── ImageExtension.cs │ │ ├── TripleColonBlock.cs │ │ ├── TripleColonBlockParser.cs │ │ ├── TripleColonBlockRenderer.cs │ │ ├── TripleColonExtension.cs │ │ ├── TripleColonInline.cs │ │ ├── TripleColonInlineParser.cs │ │ ├── TripleColonInlineRenderer.cs │ │ ├── VideoExtension.cs │ │ └── ZoneExtension.cs │ └── Xref │ │ ├── HtmlXrefInlineRender.cs │ │ ├── XrefInline.cs │ │ ├── XrefInlineExtension.cs │ │ ├── XrefInlineParser.cs │ │ └── XrefInlineShortParser.cs ├── Docfx.MarkdigEngine │ ├── Docfx.MarkdigEngine.csproj │ ├── MarkdigMarkdownService.cs │ ├── MarkdownServiceParameters.cs │ └── YamlHeader │ │ ├── YamlHeaderExtension.cs │ │ └── YamlHeaderRenderer.cs ├── Docfx.Plugins │ ├── DefaultFileAbstractLayer.cs │ ├── Docfx.Plugins.csproj │ ├── DocumentException.cs │ ├── DocumentExceptionExtensions.cs │ ├── DocumentType.cs │ ├── EnvironmentContext.cs │ ├── FileAbstractLayerExtensions.cs │ ├── FileAndType.cs │ ├── FileModel.cs │ ├── GroupInfo.cs │ ├── ICompositionContainer.cs │ ├── ICustomHrefGenerator.cs │ ├── IDocumentBuildContext.cs │ ├── IDocumentBuildStep.cs │ ├── IDocumentProcessor.cs │ ├── IFileAbstractLayer.cs │ ├── IFileLinkInfo.cs │ ├── IHostService.cs │ ├── IInputMetadataValidator.cs │ ├── IMarkdownService.cs │ ├── IPostProcessor.cs │ ├── LinkSourceInfo.cs │ ├── Manifest.cs │ ├── ManifestGroupInfo.cs │ ├── ManifestItem.cs │ ├── MarkupResult.cs │ ├── OutputFileInfo.cs │ ├── PageChangeFrequency.cs │ ├── ProcessingPriority.cs │ ├── RootedFileAbstractLayer.cs │ ├── SaveResult.cs │ ├── SitemapElementOptions.cs │ ├── SitemapOptions.cs │ ├── SourceFileInfo.cs │ ├── TocInfo.cs │ ├── TreeItem.cs │ ├── TreeItemActionType.cs │ ├── TreeItemKeyType.cs │ ├── TreeItemRestructure.cs │ ├── UidDefinition.cs │ └── XRefSpec.cs ├── Docfx.YamlSerialization │ ├── Docfx.YamlSerialization.csproj │ ├── ExtensibleMemberAttribute.cs │ ├── Helpers │ │ ├── ReflectionExtensions.cs │ │ ├── ReflectionUtility.cs │ │ ├── Regexes.cs │ │ ├── TypeConverterCache.cs │ │ └── YamlTypeConverters.cs │ ├── NodeDeserializers │ │ ├── EmitArrayNodeDeserializer.cs │ │ ├── EmitGenericCollectionNodeDeserializer.cs │ │ ├── EmitGenericDictionaryNodeDeserializer.cs │ │ └── ExtensibleObjectNodeDeserializer.cs │ ├── NodeTypeResolvers │ │ └── ScalarYamlNodeTypeResolver.cs │ ├── ObjectDescriptors │ │ └── BetterObjectDescriptor.cs │ ├── ObjectFactories │ │ └── DefaultEmitObjectFactory.cs │ ├── ObjectGraphTraversalStrategies │ │ ├── FullObjectGraphTraversalStrategy.cs │ │ └── RoundtripObjectGraphTraversalStrategy.cs │ ├── ObjectGraphVisitors │ │ └── ExclusiveObjectGraphVisitor.cs │ ├── SerializationOptions.cs │ ├── TypeInspectors │ │ ├── EmitTypeInspector.cs │ │ ├── ExtensibleNamingConventionTypeInspector.cs │ │ ├── ExtensibleReadableAndWritablePropertiesTypeInspector.cs │ │ ├── ExtensibleTypeInspectorSkeleton.cs │ │ ├── ExtensibleYamlAttributesTypeInspector.cs │ │ └── IExtensibleTypeInspector.cs │ ├── YamlDeserializer.cs │ └── YamlSerializer.cs └── docfx │ ├── Extensions │ └── ArrayOptionConverter.cs │ ├── Models │ ├── BuildCommand.cs │ ├── BuildCommandOptions.cs │ ├── CancellableCommandBase.cs │ ├── CommandHelper.cs │ ├── DefaultCommand.cs │ ├── DownloadCommand.cs │ ├── DownloadCommandOptions.cs │ ├── InitCommand.cs │ ├── InitCommandOptions.cs │ ├── LogOptions.cs │ ├── MergeCommand.cs │ ├── MergeCommandOptions.cs │ ├── MetadataCommand.cs │ ├── MetadataCommandOptions.cs │ ├── PdfCommand.cs │ ├── PdfCommandOptions.cs │ ├── ServeCommand.cs │ └── TemplateCommand.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ └── docfx.csproj ├── templates ├── .editorconfig ├── .eslintrc.js ├── .gitignore ├── .stylelintrc.json ├── README.md ├── build.js ├── common │ ├── ManagedReference.common.js │ ├── RestApi.common.js │ ├── UniversalReference.common.js │ ├── common.js │ └── partials │ │ ├── classSubtitle.tmpl.partial │ │ └── namespaceSubtitle.tmpl.partial ├── default(zh-cn) │ ├── partials │ │ └── title.tmpl.partial │ └── token.json ├── default │ ├── ManagedReference.extension.js │ ├── ManagedReference.html.primary.js │ ├── ManagedReference.html.primary.tmpl │ ├── Redirection.html.primary.tmpl │ ├── RestApi.extension.js │ ├── RestApi.html.primary.js │ ├── RestApi.html.primary.tmpl │ ├── UniversalReference.extension.js │ ├── UniversalReference.html.primary.js │ ├── UniversalReference.html.primary.tmpl │ ├── conceptual.extension.js │ ├── conceptual.html.primary.js │ ├── conceptual.html.primary.tmpl │ ├── favicon.ico │ ├── layout │ │ └── _master.tmpl │ ├── logo.svg │ ├── partials │ │ ├── affix.tmpl.partial │ │ ├── breadcrumb.tmpl.partial │ │ ├── class.header.tmpl.partial │ │ ├── class.memberpage.tmpl.partial │ │ ├── class.tmpl.partial │ │ ├── collection.tmpl.partial │ │ ├── customMREFContent.tmpl.partial │ │ ├── dd-li.tmpl.partial │ │ ├── enum.tmpl.partial │ │ ├── footer.tmpl.partial │ │ ├── head.tmpl.partial │ │ ├── item.tmpl.partial │ │ ├── li.tmpl.partial │ │ ├── logo.tmpl.partial │ │ ├── namespace.tmpl.partial │ │ ├── navbar.tmpl.partial │ │ ├── rest.child.tmpl.partial │ │ ├── rest.definition.tmpl.partial │ │ ├── rest.tmpl.partial │ │ ├── scripts.tmpl.partial │ │ ├── searchResults.tmpl.partial │ │ ├── title.tmpl.partial │ │ ├── toc.tmpl.partial │ │ └── uref │ │ │ ├── class.header.tmpl.partial │ │ │ ├── class.tmpl.partial │ │ │ ├── enum.tmpl.partial │ │ │ ├── inheritance.tmpl.partial │ │ │ ├── namespace.tmpl.partial │ │ │ └── parameters.tmpl.partial │ ├── search-stopwords.json │ ├── src │ │ ├── docfx.vendor.js │ │ └── search-worker.js │ ├── styles │ │ ├── docfx.css │ │ ├── docfx.js │ │ ├── main.css │ │ └── main.js │ ├── toc.extension.js │ ├── toc.html.primary.js │ ├── toc.html.primary.tmpl │ ├── toc.json.js │ ├── toc.json.tmpl │ └── token.json ├── modern │ ├── ApiPage.html.primary.js │ ├── ApiPage.html.primary.tmpl │ ├── layout │ │ └── _master.tmpl │ ├── partials │ │ ├── class.header.tmpl.partial │ │ ├── class.memberpage.tmpl.partial │ │ ├── class.tmpl.partial │ │ ├── collection.tmpl.partial │ │ ├── customMREFContent.tmpl.partial │ │ ├── enum.tmpl.partial │ │ ├── item.tmpl.partial │ │ └── namespace.tmpl.partial │ ├── public │ │ ├── main.css │ │ └── main.js │ └── src │ │ ├── docfx.scss │ │ ├── docfx.ts │ │ ├── dotnet.scss │ │ ├── helper.test.ts │ │ ├── helper.ts │ │ ├── highlight.scss │ │ ├── highlight.ts │ │ ├── layout.scss │ │ ├── main.js │ │ ├── markdown.scss │ │ ├── markdown.ts │ │ ├── mixins.scss │ │ ├── nav.scss │ │ ├── nav.ts │ │ ├── options.d.ts │ │ ├── search-worker.ts │ │ ├── search.scss │ │ ├── search.ts │ │ ├── theme.ts │ │ ├── toc.scss │ │ └── toc.ts ├── package-lock.json ├── package.json ├── statictoc │ ├── ManagedReference.html.primary.js │ ├── RestApi.html.primary.js │ ├── UniversalReference.html.primary.js │ ├── conceptual.html.primary.js │ ├── partials │ │ ├── dd-li.tmpl.partial │ │ ├── li.tmpl.partial │ │ ├── navbar-li.tmpl.partial │ │ ├── navbar.tmpl.partial │ │ └── toc.tmpl.partial │ ├── statictoc.util.js │ └── toc.tmpl.js └── tsconfig.json ├── test ├── .editorconfig ├── Directory.Build.props ├── Directory.Packages.props ├── Docfx.Build.Common.Tests │ ├── Docfx.Build.Common.Tests.csproj │ ├── FileLinkInfoTest.cs │ ├── MarkdownReaderTest.cs │ ├── ModelAttributeHandlerTest.cs │ └── ReflectionHelperTest.cs ├── Docfx.Build.ManagedReference.Tests │ ├── Docfx.Build.ManagedReference.Tests.csproj │ ├── ManagedReferenceDocumentProcessorTest.cs │ └── TestData │ │ ├── mref │ │ ├── CatLibrary.Cat-2.yml │ │ ├── FileWithNoContent.yml │ │ ├── Namespace1.Class1`2.#ctor.yml │ │ ├── Namespace1.Class1`2.yml │ │ └── System.String.yml │ │ ├── overwrite │ │ ├── mref.overwrite.default.md │ │ ├── mref.overwrite.invalid.md │ │ ├── mref.overwrite.invalid.ref.md │ │ ├── mref.overwrite.multi.uid.md │ │ ├── mref.overwrite.not.predefined.md │ │ ├── mref.overwrite.overload.md │ │ ├── mref.overwrite.parameters.md │ │ ├── mref.overwrite.remarks.md │ │ └── mref.overwrite.simple.md │ │ └── template │ │ └── ManagedReference.html.tmpl ├── Docfx.Build.OverwriteDocuments.Tests │ ├── Docfx.Build.OverwriteDocuments.Tests.csproj │ ├── MarkdownFragmentsCreatorTest.cs │ ├── OverwriteDocumentModelCreatorTest.cs │ ├── OverwriteUtilityTest.cs │ └── TestData │ │ └── System.String.yml.md ├── Docfx.Build.RestApi.Tests │ ├── Docfx.Build.RestApi.Tests.csproj │ ├── RestApiDocumentProcessorTest.cs │ ├── SwaggerJsonParserTest.cs │ └── TestData │ │ ├── contacts-operations.md │ │ ├── overwrite │ │ ├── rest.overwrite.default.md │ │ ├── rest.overwrite.invalid.links.first.md │ │ ├── rest.overwrite.invalid.links.second.md │ │ ├── rest.overwrite.invalid.md │ │ ├── rest.overwrite.multi.uid.md │ │ ├── rest.overwrite.not.predefined.md │ │ ├── rest.overwrite.parameters.md │ │ ├── rest.overwrite.remarks.md │ │ ├── rest.overwrite.simple.md │ │ ├── rest.overwrite.tags.md │ │ └── rest.overwrite.unmergeable.md │ │ └── swagger │ │ ├── contacts.json │ │ ├── contactsForExternalRef.json │ │ ├── externalLoopRef_A.json │ │ ├── externalLoopRef_B.json │ │ ├── externalRefNotExist.json │ │ ├── externalRefWithDefinition.json │ │ ├── externalRefWithRefInside.json │ │ ├── loopref_swagger2.json │ │ ├── pathParameters_swagger2.json │ │ ├── ref.json │ │ ├── refWithRefInside.json │ │ ├── ref_swagger2.json │ │ ├── resolveKeywordWithRefInside.json │ │ ├── simple_swagger2.json │ │ └── tag_swagger2.json ├── Docfx.Build.RestApi.WithPlugins.Tests │ ├── Docfx.Build.RestApi.WithPlugins.Tests.csproj │ ├── SplitRestApiToOperationLevelTest.cs │ ├── SplitRestApiToTagLevelTest.cs │ └── TestData │ │ ├── swagger │ │ ├── petstore.json │ │ └── toc.yml │ │ └── template │ │ └── RestApi.html.tmpl ├── Docfx.Build.SchemaDriven.Tests │ ├── Docfx.Build.SchemaDriven.Tests.csproj │ ├── JsonPointerTest.cs │ ├── MarkdownFragmentsValidationTest.cs │ ├── MergeMarkdownFragmentsTest.cs │ ├── SchemaDrivenProcessorTest.cs │ ├── SchemaFragmentsIteratorTest.cs │ ├── SchemaMergerTest.cs │ └── TestData │ │ ├── inputs │ │ ├── CatLibrary.ICat.yml │ │ ├── EmptyUidReference.yml │ │ ├── FragmentsValidation.yml │ │ ├── FragmentsValidation.yml.md │ │ ├── Suppressions.yml │ │ └── Suppressions.yml.md │ │ └── schemas │ │ ├── contextobject.test.schema.json │ │ ├── fragments.validation.schema.json │ │ ├── general.test.schema.json │ │ ├── mref.test.schema.json │ │ └── rest.mixed.schema.json ├── Docfx.Build.Tests │ ├── ConceptualDocumentProcessorTest.cs │ ├── Docfx.Build.Tests.csproj │ ├── DocumentBuilderTest.cs │ ├── DocumentProcessors │ │ ├── YamlDocumentModel.cs │ │ └── YamlDocumentProcessor.cs │ ├── ExtractSearchIndexFromHtmlTest.cs │ ├── FileMetadataHelperTest.cs │ ├── HtmlTemplateTest.cs │ ├── JintProcessorHelperTest.cs │ ├── MarkdownTocReaderTest.cs │ ├── PostProcessors │ │ ├── Data │ │ │ ├── manifest_basic.json │ │ │ ├── manifest_incremental.json │ │ │ ├── manifest_incremental_split_case.json │ │ │ └── manifest_incremental_with_directory.json │ │ └── SitemapGeneratorTests.cs │ ├── RemoveDebugInfoTest.cs │ ├── TemplateManagerUnitTest.DotnetToolMode.cs │ ├── TemplateManagerUnitTest.cs │ ├── TemplatePageLoaderUnitTest.cs │ ├── TemplatePreprocessorLoaderUnitTest.cs │ ├── TemplateProcessorUnitTest.cs │ ├── TemplateRendererLoaderUnitTest.cs │ ├── TestData │ │ ├── System.Console.csyml │ │ ├── System.ConsoleColor.csyml │ │ ├── snippets │ │ │ └── dataflowdegreeofparallelism.cs │ │ ├── xrefmap.json │ │ ├── xrefmap.json.gz │ │ ├── xrefmap.yml │ │ └── xrefmap.yml.gz │ ├── TocDocumentProcessorTest.cs │ ├── TocRestructureTest.cs │ ├── ValidateBookmarkTest.cs │ ├── WordCounterUnitTest.cs │ ├── XRefArchiveBuilderTest.cs │ ├── XRefMapDownloaderTest.cs │ ├── XRefMapSerializationTest.cs │ └── tmpl │ │ └── tmpl1 │ │ ├── sub │ │ └── file1 │ │ └── tmpl1.dot.$ ├── Docfx.Build.UniversalReference.Tests │ ├── Docfx.Build.UniversalReference.Tests.csproj │ ├── TestData │ │ ├── overwrite │ │ │ └── cntk.core.Value.md │ │ └── yml │ │ │ ├── azure.ApplicationTokenCredentials.yml │ │ │ ├── cntk.core.Value.yml │ │ │ ├── cntk.core.yml │ │ │ ├── cntk.debugging.yml │ │ │ └── invalid.yml │ └── UniversalReferenceDocumentProcessorTest.cs ├── Docfx.Common.Tests │ ├── CollectionUtilityTest.cs │ ├── CompositeDictionaryTest.cs │ ├── ConvertToObjectHelperTest.cs │ ├── Docfx.Common.Tests.csproj │ ├── FileAbstractLayerTest.cs │ ├── FileAbstractLayerWithEnvironmentVariableTest.cs │ ├── GitUtilityTest.cs │ ├── GitUtilityWithSourceRepoUrlTest.cs │ ├── JObjectMergerTest.cs │ ├── PathUtilityTest.cs │ ├── ReflectionEntityMergerTest.cs │ ├── RelativePathTest.cs │ ├── UriUtilityTest.cs │ ├── YamlDeserializerWithFallbackTest.cs │ └── YamlSerializationTest.cs ├── Docfx.Dotnet.Tests │ ├── ApiFilterUnitTest.cs │ ├── DefinitionMergeUnitTest.cs │ ├── Docfx.Dotnet.Tests.csproj │ ├── GenerateMetadataFromAssemblyTest.cs │ ├── GenerateMetadataFromCSUnitTest.cs │ ├── GenerateMetadataFromVBUnitTest.cs │ ├── SymbolUrlResolverUnitTest.cs │ ├── TestData │ │ ├── BaseClassForTestClass1.dll │ │ ├── CatLibrary.dll │ │ ├── CatLibrary2.dll │ │ ├── System.Console.csyml │ │ ├── System.ConsoleColor.csyml │ │ ├── TupleLibrary.dll │ │ ├── dotnet-xrefmap.txt │ │ ├── filterconfig.yml │ │ ├── filterconfig_attribute.yml │ │ └── filterconfig_docs_sample.yml │ ├── TestDataReferences │ │ └── System.ValueTuple.dll │ └── XmlCommentUnitTest.cs ├── Docfx.Glob.Tests │ ├── Docfx.Glob.Tests.csproj │ ├── GlobFileTest.cs │ └── GlobMatcherTest.cs ├── Docfx.MarkdigEngine.Extensions.Tests │ ├── AggregatorTest.cs │ ├── ChromelessFormsTest.cs │ ├── CodeSnippetTest.cs │ ├── CodeTest.cs │ ├── Docfx.MarkdigEngine.Extensions.Tests.csproj │ ├── GeneralTest.cs │ ├── ImageTest.cs │ ├── InteractiveCodeTest.cs │ ├── LineNumberTest.cs │ ├── MarkdigBuiltinExtensionTests │ │ ├── AutoIdentifierTest.cs │ │ ├── AutoLinkTest.cs │ │ ├── EmojiTest.cs │ │ ├── EmphasisExtraTest.cs │ │ ├── MediaLinksTest.cs │ │ ├── PipeTableTest.cs │ │ └── SmartyPantsTest.cs │ ├── MathematicsTest.cs │ ├── MonikerRangeTest.cs │ ├── NolocTest.cs │ ├── PlantUmlTest.cs │ ├── QuoteSectionNoteTest.cs │ ├── RenderZoneTest.cs │ ├── RowsTest.cs │ ├── TabGroupTest.cs │ ├── TestUtility.cs │ ├── TripleColonTest.cs │ ├── VideoTest.cs │ └── XrefTest.cs ├── Docfx.MarkdigEngine.Tests │ ├── Docfx.MarkdigEngine.Tests.csproj │ ├── InclusionTest.cs │ ├── MarkdigServiceTest.cs │ ├── TestUtility │ │ ├── TestLoggerListener.cs │ │ └── TestUtility.cs │ └── YamlHeaderTest.cs ├── Docfx.Tests.Common │ ├── Docfx.Tests.Common.csproj │ ├── TestBase.cs │ ├── TestListenerScope.cs │ └── TestLoggerListener.cs ├── docfx.Snapshot.Tests │ ├── ModuleInitializer.cs │ ├── PercyTest.cs │ ├── SamplesTest.CSharp │ │ ├── api │ │ │ ├── CSharp10.ConstantInterpolatedStrings.html.view.verified.json │ │ │ ├── CSharp10.Issue7737.html.view.verified.json │ │ │ ├── CSharp10.ParameterlessStructConstructors.html.view.verified.json │ │ │ ├── CSharp10.ReadOnlyRecordStruct.html.view.verified.json │ │ │ ├── CSharp10.RecordClass.html.view.verified.json │ │ │ ├── CSharp10.RecordStruct.html.view.verified.json │ │ │ ├── CSharp10.html.view.verified.json │ │ │ ├── CSharp11.CheckedUserDefinedOperators-1.html.view.verified.json │ │ │ ├── CSharp11.RequiredModifier.html.view.verified.json │ │ │ ├── CSharp11.ScopedModifier.html.view.verified.json │ │ │ ├── CSharp11.StaticAbstractMembersInInterfaces.IGetNext-1.html.view.verified.json │ │ │ ├── CSharp11.StaticAbstractMembersInInterfaces.RepeatSequence.html.view.verified.json │ │ │ ├── CSharp11.StaticAbstractMembersInInterfaces.html.view.verified.json │ │ │ ├── CSharp11.html.view.verified.json │ │ │ ├── CSharp12.CollectionExpressions.html.view.verified.json │ │ │ ├── CSharp12.DefaultLambdaParameters.html.view.verified.json │ │ │ ├── CSharp12.InlineArrays.html.view.verified.json │ │ │ ├── CSharp12.PrimaryConstructors.BankAccount.html.view.verified.json │ │ │ ├── CSharp12.PrimaryConstructors.CheckAccount.html.view.verified.json │ │ │ ├── CSharp12.PrimaryConstructors.Distance.html.view.verified.json │ │ │ ├── CSharp12.PrimaryConstructors.html.view.verified.json │ │ │ ├── CSharp12.RefReadOnlyParameters.html.view.verified.json │ │ │ ├── CSharp12.html.view.verified.json │ │ │ ├── CSharp8.DefaultInterfaceMembers.IA.html.view.verified.json │ │ │ ├── CSharp8.DefaultInterfaceMembers.Nested.html.view.verified.json │ │ │ ├── CSharp8.DefaultInterfaceMembers.html.view.verified.json │ │ │ ├── CSharp8.DisposableRefStructs.html.view.verified.json │ │ │ ├── CSharp8.Issue4007.html.view.verified.json │ │ │ ├── CSharp8.Misc.html.view.verified.json │ │ │ ├── CSharp8.NullableReferenceTypes.html.view.verified.json │ │ │ ├── CSharp8.ReadOnlyMembers.html.view.verified.json │ │ │ ├── CSharp8.html.view.verified.json │ │ │ ├── CSharp9.FunctionPointers.html.view.verified.json │ │ │ ├── CSharp9.InitOnlySetters.html.view.verified.json │ │ │ ├── CSharp9.NativeSizedIntegers.html.view.verified.json │ │ │ ├── CSharp9.RecordTypes.Person.html.view.verified.json │ │ │ ├── CSharp9.RecordTypes.Teacher.html.view.verified.json │ │ │ ├── CSharp9.RecordTypes.html.view.verified.json │ │ │ ├── CSharp9.html.view.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ └── toc.verified.json │ │ ├── search-stopwords.verified.json │ │ └── xrefmap.verified.yml │ ├── SamplesTest.Extensions │ │ ├── api │ │ │ ├── MyExample.ExampleClass.-ctor.html.view.verified.json │ │ │ ├── MyExample.ExampleClass.MyEvent.html.view.verified.json │ │ │ ├── MyExample.ExampleClass.MyMethod.html.view.verified.json │ │ │ ├── MyExample.ExampleClass.MyProperty.html.view.verified.json │ │ │ ├── MyExample.ExampleClass.html.view.verified.json │ │ │ ├── MyExample.html.view.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ └── toc.verified.json │ │ ├── index.html.view.verified.json │ │ ├── toc.html.view.verified.json │ │ ├── toc.json.view.verified.json │ │ ├── toc.verified.json │ │ └── xrefmap.verified.yml │ ├── SamplesTest.Seed │ │ ├── api │ │ │ ├── BuildFromAssembly.Class1.html.view.verified.json │ │ │ ├── BuildFromAssembly.Issue5432.html.view.verified.json │ │ │ ├── BuildFromAssembly.html.view.verified.json │ │ │ ├── BuildFromCSharpSourceCode.CSharp.html.view.verified.json │ │ │ ├── BuildFromCSharpSourceCode.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.IIssue8948.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8665.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8696Attribute.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8948.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue9260.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Test-1.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.html.view.verified.json │ │ │ ├── BuildFromProject.Dog.html.view.verified.json │ │ │ ├── BuildFromProject.IInheritdoc.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class1-1.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class2.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue7035.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue7484.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue8101.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue8129.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.IJsonApiOptions.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.JsonApiOptions.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.A.A.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.A.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.B.B.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.B.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8725.html.view.verified.json │ │ │ ├── BuildFromProject.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.BaseClass1.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.Class1.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.html.view.verified.json │ │ │ ├── CatLibrary.Cat-2.html.view.verified.json │ │ │ ├── CatLibrary.CatException-1.html.view.verified.json │ │ │ ├── CatLibrary.Complex-2.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ColorType.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChild.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChildInterface.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeDelegate.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.html.view.verified.json │ │ │ ├── CatLibrary.Core.ExplicitLayoutClass.html.view.verified.json │ │ │ ├── CatLibrary.Core.Issue231.html.view.verified.json │ │ │ ├── CatLibrary.Core.html.view.verified.json │ │ │ ├── CatLibrary.FakeDelegate-1.html.view.verified.json │ │ │ ├── CatLibrary.IAnimal.html.view.verified.json │ │ │ ├── CatLibrary.ICat.html.view.verified.json │ │ │ ├── CatLibrary.ICatExtension.html.view.verified.json │ │ │ ├── CatLibrary.MRefDelegate-3.html.view.verified.json │ │ │ ├── CatLibrary.MRefNormalDelegate.html.view.verified.json │ │ │ ├── CatLibrary.Tom.html.view.verified.json │ │ │ ├── CatLibrary.TomFromBaseClass.html.view.verified.json │ │ │ ├── CatLibrary.html.view.verified.json │ │ │ ├── MRef.Demo.Enumeration.ColorType.html.view.verified.json │ │ │ ├── MRef.Demo.Enumeration.html.view.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ ├── toc.pdf.verified.json │ │ │ └── toc.verified.json │ │ ├── apipage │ │ │ ├── BuildFromAssembly.Class1.html.view.verified.json │ │ │ ├── BuildFromAssembly.Issue5432.html.view.verified.json │ │ │ ├── BuildFromAssembly.html.view.verified.json │ │ │ ├── BuildFromCSharpSourceCode.CSharp.html.view.verified.json │ │ │ ├── BuildFromCSharpSourceCode.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.IIssue8948.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8665.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8696Attribute.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8948.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue9260.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Test-1.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.html.view.verified.json │ │ │ ├── BuildFromProject.Dog.html.view.verified.json │ │ │ ├── BuildFromProject.IInheritdoc.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class1-1.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class2.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue7035.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue7484.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue8101.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue8129.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.IJsonApiOptions.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.JsonApiOptions.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.A.A.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.A.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.B.B.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.B.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8725.html.view.verified.json │ │ │ ├── BuildFromProject.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.BaseClass1.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.Class1.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.html.view.verified.json │ │ │ ├── CatLibrary.Cat-2.html.view.verified.json │ │ │ ├── CatLibrary.CatException-1.html.view.verified.json │ │ │ ├── CatLibrary.Complex-2.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ColorType.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChild.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChildInterface.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeDelegate.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.html.view.verified.json │ │ │ ├── CatLibrary.Core.ExplicitLayoutClass.html.view.verified.json │ │ │ ├── CatLibrary.Core.Issue231.html.view.verified.json │ │ │ ├── CatLibrary.Core.html.view.verified.json │ │ │ ├── CatLibrary.FakeDelegate-1.html.view.verified.json │ │ │ ├── CatLibrary.IAnimal.html.view.verified.json │ │ │ ├── CatLibrary.ICat.html.view.verified.json │ │ │ ├── CatLibrary.ICatExtension.html.view.verified.json │ │ │ ├── CatLibrary.MRefDelegate-3.html.view.verified.json │ │ │ ├── CatLibrary.MRefNormalDelegate.html.view.verified.json │ │ │ ├── CatLibrary.Tom.html.view.verified.json │ │ │ ├── CatLibrary.TomFromBaseClass.html.view.verified.json │ │ │ ├── CatLibrary.html.view.verified.json │ │ │ ├── MRef.Demo.Enumeration.ColorType.html.view.verified.json │ │ │ ├── MRef.Demo.Enumeration.html.view.verified.json │ │ │ ├── MRef.Demo.html.view.verified.json │ │ │ ├── MRef.html.view.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ ├── toc.pdf.verified.json │ │ │ └── toc.verified.json │ │ ├── articles │ │ │ ├── csharp_coding_standards.html.view.verified.json │ │ │ ├── docfx_getting_started.html.view.verified.json │ │ │ ├── engineering_guidelines.html.view.verified.json │ │ │ ├── markdown.html.view.verified.json │ │ │ ├── seed.pdf.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ └── toc.verified.json │ │ ├── index.html.view.verified.json │ │ ├── index.verified.json │ │ ├── md │ │ │ ├── BuildFromAssembly.Class1.html.view.verified.json │ │ │ ├── BuildFromAssembly.Issue5432.html.view.verified.json │ │ │ ├── BuildFromAssembly.html.view.verified.json │ │ │ ├── BuildFromCSharpSourceCode.CSharp.html.view.verified.json │ │ │ ├── BuildFromCSharpSourceCode.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.IIssue8948.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8665.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8696Attribute.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue8948.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Issue9260.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.Test-1.html.view.verified.json │ │ │ ├── BuildFromProject.Class1.html.view.verified.json │ │ │ ├── BuildFromProject.Dog.html.view.verified.json │ │ │ ├── BuildFromProject.IInheritdoc.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class1-1.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class2.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue6366.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue7035.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue7484.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue8101.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue8129.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.IJsonApiOptions.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.JsonApiOptions.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.Issue9736.html.view.verified.json │ │ │ ├── BuildFromProject.Inheritdoc.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.A.A.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.A.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.B.B.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.B.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8540.html.view.verified.json │ │ │ ├── BuildFromProject.Issue8725.html.view.verified.json │ │ │ ├── BuildFromProject.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.BaseClass1.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.Class1.html.view.verified.json │ │ │ ├── BuildFromVBSourceCode.html.view.verified.json │ │ │ ├── CatLibrary.Cat-2.html.view.verified.json │ │ │ ├── CatLibrary.CatException-1.html.view.verified.json │ │ │ ├── CatLibrary.Complex-2.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ColorType.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChild.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChildInterface.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeDelegate.html.view.verified.json │ │ │ ├── CatLibrary.Core.ContainersRefType.html.view.verified.json │ │ │ ├── CatLibrary.Core.ExplicitLayoutClass.html.view.verified.json │ │ │ ├── CatLibrary.Core.Issue231.html.view.verified.json │ │ │ ├── CatLibrary.Core.html.view.verified.json │ │ │ ├── CatLibrary.FakeDelegate-1.html.view.verified.json │ │ │ ├── CatLibrary.IAnimal.html.view.verified.json │ │ │ ├── CatLibrary.ICat.html.view.verified.json │ │ │ ├── CatLibrary.ICatExtension.html.view.verified.json │ │ │ ├── CatLibrary.MRefDelegate-3.html.view.verified.json │ │ │ ├── CatLibrary.MRefNormalDelegate.html.view.verified.json │ │ │ ├── CatLibrary.Tom.html.view.verified.json │ │ │ ├── CatLibrary.TomFromBaseClass.html.view.verified.json │ │ │ ├── CatLibrary.html.view.verified.json │ │ │ ├── MRef.Demo.Enumeration.ColorType.html.view.verified.json │ │ │ ├── MRef.Demo.Enumeration.html.view.verified.json │ │ │ ├── MRef.Demo.html.view.verified.json │ │ │ ├── MRef.html.view.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ ├── toc.pdf.verified.json │ │ │ └── toc.verified.json │ │ ├── pdf │ │ │ ├── cover.html.view.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ ├── toc.pdf.verified.json │ │ │ └── toc.verified.json │ │ ├── restapi │ │ │ ├── contacts.html.view.verified.json │ │ │ ├── petstore.html.view.verified.json │ │ │ ├── toc.html.view.verified.json │ │ │ ├── toc.json.view.verified.json │ │ │ ├── toc.pdf.verified.json │ │ │ └── toc.verified.json │ │ ├── toc.html.view.verified.json │ │ ├── toc.json.view.verified.json │ │ ├── toc.pdf.verified.json │ │ ├── toc.verified.json │ │ └── xrefmap.verified.yml │ ├── SamplesTest.SeedMarkdown │ │ ├── BuildFromAssembly.Class1.verified.md │ │ ├── BuildFromAssembly.Issue5432.verified.md │ │ ├── BuildFromAssembly.verified.md │ │ ├── BuildFromCSharpSourceCode.CSharp.verified.md │ │ ├── BuildFromCSharpSourceCode.verified.md │ │ ├── BuildFromProject.Class1.IIssue8948.verified.md │ │ ├── BuildFromProject.Class1.Issue8665.verified.md │ │ ├── BuildFromProject.Class1.Issue8696Attribute.verified.md │ │ ├── BuildFromProject.Class1.Issue8948.verified.md │ │ ├── BuildFromProject.Class1.Issue9260.verified.md │ │ ├── BuildFromProject.Class1.Test-1.verified.md │ │ ├── BuildFromProject.Class1.verified.md │ │ ├── BuildFromProject.Dog.verified.md │ │ ├── BuildFromProject.IInheritdoc.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class1-1.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue6366.Class2.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue6366.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue7035.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue7484.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue8101.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue8129.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue9736.IJsonApiOptions.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue9736.JsonApiOptions.verified.md │ │ ├── BuildFromProject.Inheritdoc.Issue9736.verified.md │ │ ├── BuildFromProject.Inheritdoc.verified.md │ │ ├── BuildFromProject.Issue8540.A.A.verified.md │ │ ├── BuildFromProject.Issue8540.A.verified.md │ │ ├── BuildFromProject.Issue8540.B.B.verified.md │ │ ├── BuildFromProject.Issue8540.B.verified.md │ │ ├── BuildFromProject.Issue8540.verified.md │ │ ├── BuildFromProject.Issue8725.verified.md │ │ ├── BuildFromProject.verified.md │ │ ├── BuildFromVBSourceCode.BaseClass1.verified.md │ │ ├── BuildFromVBSourceCode.Class1.verified.md │ │ ├── BuildFromVBSourceCode.verified.md │ │ ├── CatLibrary.Cat-2.verified.md │ │ ├── CatLibrary.CatException-1.verified.md │ │ ├── CatLibrary.Complex-2.verified.md │ │ ├── CatLibrary.Core.ContainersRefType.ColorType.verified.md │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChild.verified.md │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeChildInterface.verified.md │ │ ├── CatLibrary.Core.ContainersRefType.ContainersRefTypeDelegate.verified.md │ │ ├── CatLibrary.Core.ContainersRefType.verified.md │ │ ├── CatLibrary.Core.ExplicitLayoutClass.verified.md │ │ ├── CatLibrary.Core.Issue231.verified.md │ │ ├── CatLibrary.Core.verified.md │ │ ├── CatLibrary.FakeDelegate-1.verified.md │ │ ├── CatLibrary.IAnimal.verified.md │ │ ├── CatLibrary.ICat.verified.md │ │ ├── CatLibrary.ICatExtension.verified.md │ │ ├── CatLibrary.MRefDelegate-3.verified.md │ │ ├── CatLibrary.MRefNormalDelegate.verified.md │ │ ├── CatLibrary.Tom.verified.md │ │ ├── CatLibrary.TomFromBaseClass.verified.md │ │ ├── CatLibrary.verified.md │ │ ├── MRef.Demo.Enumeration.ColorType.verified.md │ │ ├── MRef.Demo.Enumeration.verified.md │ │ ├── MRef.Demo.verified.md │ │ ├── MRef.verified.md │ │ └── toc.verified.yml │ ├── SamplesTest.cs │ └── docfx.Snapshot.Tests.csproj └── docfx.Tests │ ├── Assets │ ├── docfx.json_build │ │ └── docfx.json │ ├── docfx.json_empty │ │ └── docfx.json │ ├── docfx.json_invalid_format │ │ └── docfx.json │ ├── docfx.json_invalid_key │ │ └── docfx.json │ ├── docfx.json_metadata │ │ ├── docfx.json │ │ └── docfxWithFilter.json │ ├── docfx.json_metadata_build │ │ └── docfx.json │ ├── docfx.sample.1.json │ ├── filter.yaml.sample │ ├── multi-frameworks-test.csproj.sample.1 │ ├── ref.csproj.sample.1 │ ├── template │ │ └── plugins │ │ │ ├── CustomPostProcessor.cs │ │ │ ├── Directory.Build.props │ │ │ ├── plugins.csproj │ │ │ └── plugins.dll │ ├── test-multinamespace-withgaps.cs.sample.1 │ ├── test-multinamespace.cs.sample.1 │ ├── test.cs.sample.1 │ ├── test.csproj.sample.1 │ ├── test.dll.sample.1 │ ├── test.vb.sample.1 │ └── test.vbproj.sample.1 │ ├── Attributes │ └── WindowsOnlyFactAttribute.cs │ ├── CommandLineTest.cs │ ├── CompositeCommandTest.cs │ ├── DocsetBuildTest.cs │ ├── JsonConverterTest.cs │ ├── JsonSchemaTest.cs │ ├── MetadataCommandTest.cs │ ├── SerializationTests │ ├── JsonSerializationEncoderTest.cs │ ├── JsonSerializationTest.BuildJsonConfig.cs │ ├── JsonSerializationTest.DocfxConfig.cs │ ├── JsonSerializationTest.FileMapping.cs │ ├── JsonSerializationTest.FileMetadataPairs.cs │ ├── JsonSerializationTest.ListWithStringFallback.cs │ ├── JsonSerializationTest.Manifest.cs │ ├── JsonSerializationTest.MarkdownServiceProperties.cs │ ├── JsonSerializationTest.MergeJsonConfig.cs │ ├── JsonSerializationTest.MetadataJsonConfig.cs │ ├── JsonSerializationTest.TocItemViewModel.cs │ ├── JsonSerializationTest.XRefMap.cs │ ├── JsonSerializationTest.cs │ ├── Shared │ │ └── CustomEqualityEquivalencyStep.cs │ ├── TestData │ │ ├── ApiPage │ │ │ ├── ApiPage.yml │ │ │ ├── BuildFromAssembly.Class1.yml │ │ │ ├── BuildFromAssembly.Issue5432.yml │ │ │ └── BuildFromProject.Class1.Issue8696Attribute.yml │ │ ├── BuildJsonConfig │ │ │ └── buildJsonConfig_01.json │ │ ├── ConfigFilterRule │ │ │ ├── filterconfig_01.yml │ │ │ └── filterconfig_02.yml │ │ ├── DocfxConfig │ │ │ ├── docfx_01.json │ │ │ └── docfx_02.json │ │ ├── FileMapping │ │ │ ├── filemapping_01.json │ │ │ ├── filemapping_02.json │ │ │ ├── filemapping_03.json │ │ │ ├── filemapping_04.json │ │ │ └── filemapping_05.json │ │ ├── FileMetadataPairs │ │ │ └── fileMetadataPairs_01.json │ │ ├── ListWithStringFallback │ │ │ ├── ListWithStringFallback_01.json │ │ │ ├── ListWithStringFallback_02.json │ │ │ └── ListWithStringFallback_03.json │ │ ├── ManagedReference │ │ │ ├── BuildFromAssembly.yml │ │ │ ├── BuildFromCSharpSourceCode.CSharp.yml │ │ │ └── api.yml │ │ ├── Manifest │ │ │ ├── manifest_01.json │ │ │ └── manifest_02.json │ │ ├── MarkdownServiceProperties │ │ │ ├── markdownServiceProperties_01.json │ │ │ └── markdownServiceProperties_02.json │ │ ├── MergeJsonConfig │ │ │ ├── mergeJsonConfig_01.json │ │ │ └── mergeJsonConfig_02.json │ │ ├── MetadataJsonConfig │ │ │ ├── metadataJsonConfig_01.json │ │ │ └── metadataJsonConfig_02.json │ │ ├── TestData.cs │ │ ├── TestDataAttribute.cs │ │ ├── TocItemViewModel │ │ │ ├── Json │ │ │ │ ├── toc_01.json │ │ │ │ ├── toc_02.json │ │ │ │ ├── toc_03.json │ │ │ │ ├── toc_04.json │ │ │ │ └── toc_05.json │ │ │ └── Yaml │ │ │ │ ├── toc_01.yml │ │ │ │ ├── toc_02.yml │ │ │ │ ├── toc_03.yml │ │ │ │ └── toc_04.yml │ │ ├── UniversalReference │ │ │ ├── azure.ApplicationTokenCredentials.yml │ │ │ ├── cntk.core.Value.yml │ │ │ ├── cntk.core.yml │ │ │ └── cntk.debugging.yml │ │ └── XRefMap │ │ │ ├── xrefmap_01.json │ │ │ ├── xrefmap_01.yml │ │ │ ├── xrefmap_02.json │ │ │ └── xrefmap_02.yml │ ├── YamlSerializationTest.ApiPage.cs │ ├── YamlSerializationTest.FilterConfig.cs │ ├── YamlSerializationTest.ManagedReference.cs │ ├── YamlSerializationTest.TocItemViewModel.cs │ ├── YamlSerializationTest.UniversalReference.cs │ ├── YamlSerializationTest.XRefMap.cs │ └── YamlSerializationTest.cs │ ├── Utilities │ ├── JsonSchemaUtility.cs │ └── PathHelper.cs │ └── docfx.Tests.csproj └── testEnvironments.json /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=crlf 2 | *.sh eol=lf 3 | *.png filter=lfs diff=lfs merge=lfs -text 4 | .xrefmap.json filter=lfs diff=lfs merge=lfs -text 5 | # Use LF for templates files. 6 | templates/** eol=lf 7 | 8 | # VerifyTests 9 | *.verified.txt text eol=lf working-tree-encoding=UTF-8 -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Report a bug 3 | about: Create a general bug report 4 | title: '[Bug] My bug' 5 | labels: bug 6 | assignees: '' 7 | --- 8 | 9 | **Describe the bug** 10 | A clear and concise description of what the bug is. 11 | 12 | **To Reproduce** 13 | Steps to reproduce the behavior: 14 | 1. ... 15 | 2. ... 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Context (please complete the following information):** 21 | - OS: Windows 22 | - Docfx version: [e.g. 2.59.0] 23 | 24 | **Additional context** 25 | Add any other context about the problem here. 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '[Feature Request] My awesome feature' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 11 | 12 | **Describe the solution you'd like** 13 | A clear and concise description of what you want to happen. 14 | 15 | **Describe alternatives you've considered** 16 | A clear and concise description of any alternative solutions or features you've considered. 17 | 18 | **Additional context** 19 | Add any other context or screenshots about the feature request here. 20 | -------------------------------------------------------------------------------- /.github/codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | status: 3 | project: 4 | default: 5 | informational: true 6 | patch: 7 | default: 8 | informational: true 9 | comment: false 10 | github_checks: 11 | annotations: false 12 | -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | labels: 4 | - ignore-for-release 5 | authors: 6 | - dependabot 7 | categories: 8 | - title: 💥 Breaking Changes 9 | labels: 10 | - breaking-change 11 | - title: 🎉 New Features 12 | labels: 13 | - new-feature 14 | - title: 🐞 Bug Fixes 15 | labels: 16 | - bug-fix 17 | - title: 🚀 Performance Improvements 18 | labels: 19 | - performance 20 | - title: 🔧 Engineering 21 | labels: 22 | - engineering 23 | - title: 📄 Documentation 24 | labels: 25 | - documentation 26 | - title: 💪 Other Changes 27 | labels: 28 | - "*" 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | obj 3 | drop 4 | temp 5 | node_modules 6 | .vs 7 | .vscode 8 | _site 9 | _site_pdf 10 | docs/api 11 | samples/**/api 12 | src/Docfx.App/templates 13 | test/**/TestResults 14 | 15 | *.user 16 | *.log 17 | *.cache 18 | *.received.* 19 | *.diff.* 20 | .settings 21 | .DS_Store 22 | .idea 23 | launchSettings.json 24 | *.sublime-workspace 25 | *.nuget.targets 26 | *.code-workspace 27 | *.binlog 28 | -------------------------------------------------------------------------------- /.xrefmap.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6be25d30905470da151864d29c082b427c4417fc707573719add4caf16d72c38 3 | size 138088712 4 | -------------------------------------------------------------------------------- /CODE-OF-CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | This project has adopted the code of conduct defined by the Contributor Covenant 4 | to clarify expected behavior in our community. 5 | 6 | For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). 7 | -------------------------------------------------------------------------------- /docs/docs/media/pdf-cover-page.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f44741c7d5810d4a16a33c0c8be24001a60be02b95c118357ba24115b5875e9b 3 | size 12221 4 | -------------------------------------------------------------------------------- /docs/docs/media/pdf-toc-page.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7a9b8ef4baea3690edac4b6f78e15f401b6947a53f546a63ebbfd8a46a58903b 3 | size 36314 4 | -------------------------------------------------------------------------------- /docs/extensions/images/cake-contrib-addin-large.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4bf04aa40272bd37589ff0a16ecd7a45cbcd72bdb69b1af11f6d384262cb3e2a 3 | size 66188 4 | -------------------------------------------------------------------------------- /docs/extensions/images/darkfx.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e9a95d24e034f3420aa82a07747bc060bcea636721d1b9dd829c735d8a02c28f 3 | size 517479 4 | -------------------------------------------------------------------------------- /docs/extensions/images/default.green.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0452d9f2a23a2aa1df1a1d096114750fb58f82ddda381958a34a6e204cc8da34 3 | size 173587 4 | -------------------------------------------------------------------------------- /docs/extensions/images/default.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f2faadcb35627eec0a0e2a4421a9441a9cb1c219c4637f80cc883e6a9efcd98d 3 | size 337926 4 | -------------------------------------------------------------------------------- /docs/extensions/images/discordfx.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:578edacbfd3534bae482153e54dbaf2e34cb3e05033987520f4a152518cbafd6 3 | size 77984 4 | -------------------------------------------------------------------------------- /docs/extensions/images/docfx.plantuml.plugin.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f7381c50ababc2b41c0dd19d2a959fdebd4bfeb1ae8784dba2ff1363c23ce3c1 3 | size 47328 4 | -------------------------------------------------------------------------------- /docs/extensions/images/docfxquickstart.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6b091e9d8e6a2bbe45c622a3722d57f20bb8bf1140387dbdc7a74ca1306fbede 3 | size 247915 4 | -------------------------------------------------------------------------------- /docs/extensions/images/docfxtocgenerator.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3547648c11631ba11b9acab9586fbad518b71571cd65d77870137c0effa53600 3 | size 28643 4 | -------------------------------------------------------------------------------- /docs/extensions/images/doclanguagetranslator.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26ddf3f960608a2676231fc0bb94273178da34adedc0f62b98025282587369a9 3 | size 71798 4 | -------------------------------------------------------------------------------- /docs/extensions/images/doclinkchecker.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b2f9c30407985d1c412d5116375f42f9a0e2ec995437099e34c787efa9c3dc0a 3 | size 45582 4 | -------------------------------------------------------------------------------- /docs/extensions/images/material.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fc07b4da33b91a575dbd1363d0f280e14bfb06b189237fa519c5f7e8431bcc26 3 | size 1477399 4 | -------------------------------------------------------------------------------- /docs/extensions/images/mathew.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cb8c9ed0a1a8a3fc2ccadf13b2e66e616715268c9609cc397442c26341cb2994 3 | size 188525 4 | -------------------------------------------------------------------------------- /docs/extensions/images/memberpage.default.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b2f6dc5d589662518b49435887b21a6dbb84b02ea3f3d58160e31587819bfc0b 3 | size 85964 4 | -------------------------------------------------------------------------------- /docs/extensions/images/minimal.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e0ca6093acebb1150630a0c181604e75f629239ededdfa3c61b104bf381ec4d0 3 | size 69476 4 | -------------------------------------------------------------------------------- /docs/extensions/images/modern.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:28c97ac042c5a648f26ea53b9f1e006f978c661a22e2466ddbeea7378fd224f5 3 | size 314433 4 | -------------------------------------------------------------------------------- /docs/extensions/images/rest.operationpage.default.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:70b8be718a92ac13a88e196096d10b0f8da76b359d3b558df72a32def29423d0 3 | size 58244 4 | -------------------------------------------------------------------------------- /docs/extensions/images/rest.tagpage.default.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f69d3145084cd4d3e18c19551c6b0b03c8aa33333b11dc1e79ba92613ee33c9 3 | size 33150 4 | -------------------------------------------------------------------------------- /docs/extensions/images/roel4ez-feather.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5b1b744b8afa26c1355b7d0db288d5e11d0505fc496806c043c2945a181027f2 3 | size 1686144 4 | -------------------------------------------------------------------------------- /docs/extensions/images/roel4ez-modal.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8785e214e9f8df6d4c4300d8c2cb37ae4205e49fa76cba82da6160d2a4ae8ce0 3 | size 2236657 4 | -------------------------------------------------------------------------------- /docs/extensions/images/singulinkfx.screenshot.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3ddea76e20a644dc5f8f4e1eb48ca786947f75087ac8c51b0cb381f3b8801a95 3 | size 146326 4 | -------------------------------------------------------------------------------- /docs/extensions/images/unityfx.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a1ffb32aa2cbe541632a68c1730d68ac8ce9cffe474cfdf2e9cb1af17cf2e773 3 | size 62719 4 | -------------------------------------------------------------------------------- /docs/extensions/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Templates 2 | href: templates.yml 3 | - name: Packages 4 | href: packages.yml 5 | - name: Tools 6 | href: tools.yml -------------------------------------------------------------------------------- /docs/images/output-example.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9f7386398587274165eaea7b7d8e9c0a99e3f00531c1eea4c7f478fe18563fb8 3 | size 3552426 4 | -------------------------------------------------------------------------------- /docs/reference/docfx-cli-reference/docfx-init.md: -------------------------------------------------------------------------------- 1 | # docfx init 2 | 3 | ## Name 4 | 5 | `docfx init [OPTIONS]` - Generate an initial docfx.json following the instructions. 6 | 7 | ## Usage 8 | 9 | ```pwsh 10 | docfx init [OPTIONS] 11 | ``` 12 | 13 | Run `docfx init --help` or `docfx -h` to get a list of all available options. 14 | 15 | ## Options 16 | 17 | - **-h|--help** 18 | 19 | Prints help information 20 | 21 | - **-y|--yes** 22 | 23 | Yes to all questions 24 | 25 | - **-o|--output** 26 | 27 | Specify the output directory of the generated files 28 | 29 | ## Examples 30 | 31 | - Generate an initial docfx files to current directory with default configurations. 32 | 33 | ```pwsh 34 | docfx init --yes 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/reference/docfx-cli-reference/toc.yml: -------------------------------------------------------------------------------- 1 | - href: overview.md 2 | - href: docfx.md 3 | - href: docfx-metadata.md 4 | - href: docfx-build.md 5 | - href: docfx-pdf.md 6 | - href: docfx-serve.md 7 | - href: docfx-init.md 8 | - href: docfx-template.md 9 | - href: docfx-download.md 10 | - href: docfx-merge.md 11 | -------------------------------------------------------------------------------- /docs/spec/docfx_flavored_markdown.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../docs/markdown.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/spec/images/docfx_workflow.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e8a73577f5cb1ec647d8fbc8068621ba12ae28bee84b73c239a222d7defec36f 3 | size 161125 4 | -------------------------------------------------------------------------------- /docs/spec/images/docfx_workflow.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/docs/spec/images/docfx_workflow.vsdx -------------------------------------------------------------------------------- /docs/spec/images/docfx_workflow_highlevel.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7361f91f8c2bb1026091e99b9116d62d3ca04bee7af72ada12e672a6d3a5125a 3 | size 60439 4 | -------------------------------------------------------------------------------- /docs/spec/images/sdp_workflow.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a392bb5e6a5dc4f421bc8c1f1fb3c13f88f1770d86c63c12e461a22558c7583a 3 | size 155109 4 | -------------------------------------------------------------------------------- /docs/spec/metadata_dotnet_spec.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../docs/dotnet-api-docs.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/spec/triple_slash_comments_spec.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../docs/dotnet-api-docs.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/template/public/main.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the .NET Foundation under one or more agreements. 3 | * The .NET Foundation licenses this file to you under the MIT license. 4 | */ 5 | 6 | /* Checkout https://getbootstrap.com/docs/5.3/customize/color/ for more customization options */ 7 | body { 8 | --bs-link-color-rgb: 66, 184, 131 !important; 9 | --bs-link-hover-color-rgb: 64, 180, 128 !important; 10 | } 11 | -------------------------------------------------------------------------------- /docs/template/public/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the .NET Foundation under one or more agreements. 3 | * The .NET Foundation licenses this file to you under the MIT license. 4 | */ 5 | 6 | export default { 7 | iconLinks: [ 8 | { 9 | icon: 'github', 10 | href: 'https://github.com/dotnet/docfx', 11 | title: 'GitHub' 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /docs/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Docs 2 | href: docs/ 3 | - name: API 4 | href: api/ 5 | - name: Extensions 6 | href: extensions/ 7 | -------------------------------------------------------------------------------- /docs/tutorial/docfx_getting_started.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../index.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/howto_filter_out_unwanted_apis_attributes.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../docs/dotnet-api-docs.html#filter-apis 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/images/simple_web_page.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:513fb5041ab18c9d005804063f48d0f12a763b2cd39d250d0f0cc78b6c2632f4 3 | size 18359 4 | -------------------------------------------------------------------------------- /docs/tutorial/images/toc_web_page.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f0391ad53dddcaf30f38b0cd625a8309c174bc2f057be4f860d66be0d81fb42c 3 | size 17000 4 | -------------------------------------------------------------------------------- /docs/tutorial/images/web_page_with_extra_property.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1469f90818a23bbdd82883f5c381940989ea3af14b6ae619dee6a6ece5d5f63d 3 | size 25711 4 | -------------------------------------------------------------------------------- /docs/tutorial/intro_rest_api_documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../docs/rest-api-docs.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/intro_toc.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../docs/table-of-contents.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/links_and_cross_references.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../docs/links-and-cross-references.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/walkthrough/advanced_walkthrough.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../../docs/template.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/walkthrough/walkthrough_create_a_docfx_project.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../../index.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/walkthrough/walkthrough_create_a_docfx_project_2.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../../docs/dotnet-api-docs.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/walkthrough/walkthrough_generate_pdf.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../../docs/pdf.html 3 | --- 4 | -------------------------------------------------------------------------------- /docs/tutorial/walkthrough/walkthrough_overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | redirect_url: ../../index.html 3 | --- 4 | -------------------------------------------------------------------------------- /samples/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | 8 | $(NoWarn);NU1507 9 | 10 | -------------------------------------------------------------------------------- /samples/csharp/docfx.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": [ 3 | { 4 | "src": [ 5 | "src/*.csproj" 6 | ], 7 | "dest": "api" 8 | } 9 | ], 10 | "build": { 11 | "content": [ 12 | { 13 | "files": [ 14 | "api/**/*.yml", 15 | "toc.yml" 16 | ] 17 | } 18 | ], 19 | "dest": "_site", 20 | "exportViewModel": true 21 | } 22 | } -------------------------------------------------------------------------------- /samples/csharp/src/CSharp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | preview 6 | enable 7 | enable 8 | true 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /samples/extensions/README.md: -------------------------------------------------------------------------------- 1 | # Customize docfx with extensions 2 | 3 | This sample shows how to use docfx as a library. It uses the `Docfx.App` package to build the project instead of using the global `docfx` commandline tool. To build the project, run the following command in this directory: 4 | 5 | ```bash 6 | dotnet run --project build 7 | ``` 8 | 9 | This sample creates a standalone executable to integrate with the `Docfx.App` package and extensions. You can also use [dotnet script](https://github.com/dotnet-script/dotnet-script#installing) or other interactive scripting tools for integration. 10 | -------------------------------------------------------------------------------- /samples/extensions/api/.gitignore: -------------------------------------------------------------------------------- 1 | ############### 2 | # temp file # 3 | ############### 4 | *.yml 5 | .manifest 6 | -------------------------------------------------------------------------------- /samples/extensions/build/Program.cs: -------------------------------------------------------------------------------- 1 | using Docfx; 2 | using Docfx.Dotnet; 3 | using Markdig; 4 | 5 | await DotnetApiCatalog.GenerateManagedReferenceYamlFiles("docfx.json", new() 6 | { 7 | // Exclude API named "MyField" 8 | IncludeApi = symbol => symbol.Name is "MyField" ? SymbolIncludeState.Exclude : default, 9 | }); 10 | 11 | await Docset.Build("docfx.json", new() 12 | { 13 | // Enable citation markdown extension 14 | ConfigureMarkdig = pipeline => pipeline.UseCitations(), 15 | }); 16 | -------------------------------------------------------------------------------- /samples/extensions/build/build.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net8.0 6 | enable 7 | enable 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /samples/extensions/index.md: -------------------------------------------------------------------------------- 1 | # This is the **HOMEPAGE**. 2 | 3 | Refer to [Markdown](http://daringfireball.net/projects/markdown/) for how to write markdown files. 4 | 5 | ## Quick Start Notes: 6 | 1. Add images to the *images* folder if the file is referencing an image. 7 | 8 | ## Markdown Extensions 9 | 10 | This is a ""citation of someone"" 11 | -------------------------------------------------------------------------------- /samples/extensions/src/ExampleClass.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MyExample 4 | { 5 | internal class ExampleClass 6 | { 7 | public event Action MyEvent; 8 | 9 | public string MyField; 10 | 11 | public string MyProperty { get; internal set; } 12 | 13 | public ExampleClass() 14 | { 15 | 16 | } 17 | 18 | private string MyMethod() 19 | { 20 | return "Hello World!"; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /samples/extensions/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Api Documentation 2 | href: api/ 3 | -------------------------------------------------------------------------------- /samples/seed/articles/images/seed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/samples/seed/articles/images/seed.jpg -------------------------------------------------------------------------------- /samples/seed/articles/toc.yml: -------------------------------------------------------------------------------- 1 | pdfFileName: seed.pdf 2 | pdfCoverPage: pdf/cover.html 3 | items: 4 | - href: docfx_getting_started.md 5 | - name: Engineering Docs 6 | expanded: true 7 | items: 8 | - name: Section 1 9 | - href: engineering_guidelines.md 10 | - href: csharp_coding_standards.md 11 | - href: markdown.md 12 | - name: Microsoft Docs 13 | href: https://docs.microsoft.com/en-us/ 14 | -------------------------------------------------------------------------------- /samples/seed/dotnet/assembly/BuildFromAssembly.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | true 8 | true 9 | CS1591 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /samples/seed/dotnet/csharp/CSharp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Collections.Generic; 4 | using System.Threading.Tasks; 5 | 6 | namespace BuildFromCSharpSourceCode; 7 | 8 | public class CSharp 9 | { 10 | public static void Main(string[] args) 11 | { 12 | Console.WriteLine("Hello World!"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /samples/seed/dotnet/docs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | This is remarks. 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /samples/seed/dotnet/project/Project.Core/BuildFromProject.Core.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | latest 6 | enable 7 | enable 8 | true 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /samples/seed/dotnet/project/Project.Core/Class1.cs: -------------------------------------------------------------------------------- 1 | namespace BuildFromProject; 2 | 3 | public interface IClass1 4 | { 5 | void XmlCommentIncludeTag(); 6 | } -------------------------------------------------------------------------------- /samples/seed/dotnet/project/Project/BuildFromProject.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | latest 6 | enable 7 | enable 8 | true 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /samples/seed/dotnet/project/Project/Namespace.cs: -------------------------------------------------------------------------------- 1 | namespace BuildFromProject.Issue8540.A 2 | { 3 | public class A {} 4 | } 5 | 6 | namespace BuildFromProject.Issue8540.B 7 | { 8 | public class B {} 9 | } 10 | 11 | namespace InternalNamespace 12 | { 13 | class A {} 14 | 15 | namespace InternalNamespace2 16 | { 17 | class B {} 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /samples/seed/dotnet/solution/CatLibrary.Core/CatLibrary.Core.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | net8.0 4 | 5 | 6 | -------------------------------------------------------------------------------- /samples/seed/dotnet/solution/CatLibrary/CatLibrary.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | net8.0 4 | true 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /samples/seed/pdf/cover.md: -------------------------------------------------------------------------------- 1 | 14 |
15 |

16 |

DOCFX PDF SAMPLE

17 |
-------------------------------------------------------------------------------- /samples/seed/pdf/toc.yml: -------------------------------------------------------------------------------- 1 | order: 200 2 | items: 3 | - name: Articles 4 | href: ../articles/toc.yml 5 | - name: API Documentation 6 | href: ../obj/api/toc.yml 7 | - name: REST API 8 | href: ../restapi/toc.md 9 | -------------------------------------------------------------------------------- /samples/seed/restapi/toc.md: -------------------------------------------------------------------------------- 1 | # [Pet Store API](petstore.swagger.json) 2 | # [Contacts API](contacts_swagger2.json) 3 | -------------------------------------------------------------------------------- /samples/seed/specs/Cat.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: CatLibrary.Cat`2 3 | remarks: '*THIS* is remarks overridden in *MARKDWON* file' 4 | --- 5 | 6 | This is a class talking about [CAT](https://en.wikipedia.org/wiki/Cat). 7 | 8 | >**NOTE** 9 | > This is a CAT class 10 | > 11 | 12 | Refer to @CatLibrary.IAnimal to see other animals. 13 | -------------------------------------------------------------------------------- /samples/seed/specs/CatLibrary.IAnimal.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: CatLibrary.IAnimal 3 | remarks: '*THIS* is remarks overridden in *MARKDWON* file' 4 | --- 5 | 6 | ### Welcome to the **Animal** world! 7 | -------------------------------------------------------------------------------- /samples/seed/specs/petstore-operations.addPet.footer.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: petstore.swagger.io/v2/Swagger Petstore/1.0.0/addPet 3 | footer: *content 4 | --- 5 | > NOTE: Add pet only when you needs. 6 | -------------------------------------------------------------------------------- /samples/seed/specs/petstore-operations.footer.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: petstore.swagger.io/v2/Swagger Petstore/1.0.0 3 | title: Pet Store APIs 4 | footer: *content 5 | --- 6 | 7 | ### See Alsos 8 | 9 | See other REST APIs: 10 | * [Contacts API](../restapi/contacts_swagger2.json) 11 | 12 | -------------------------------------------------------------------------------- /samples/seed/specs/petstore-operations.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: petstore.swagger.io/v2/Swagger Petstore/1.0.0 3 | title: Pet Store APIs 4 | --- 5 | 6 | Describe APIs in Pet Store 7 | -------------------------------------------------------------------------------- /samples/seed/specs/petstore-operations.tag.pet.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: petstore.swagger.io/v2/Swagger Petstore/1.0.0/tag/pet 3 | description: *content 4 | --- 5 | 6 | Description for pet tag -------------------------------------------------------------------------------- /samples/seed/specs/petstore-operations.tag.store.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: petstore.swagger.io/v2/Swagger Petstore/1.0.0/tag/store 3 | --- 4 | 5 | Additional description for store tag -------------------------------------------------------------------------------- /samples/seed/template/public/main.js: -------------------------------------------------------------------------------- 1 | import { bicep } from './bicep.js' 2 | 3 | export default { 4 | iconLinks: [ 5 | { 6 | icon: 'github', 7 | href: 'https://github.com/dotnet/docfx', 8 | title: 'GitHub' 9 | }, 10 | { 11 | icon: 'twitter', 12 | href: 'https://twitter.com/', 13 | title: 'Twitter' 14 | } 15 | ], 16 | lunrLanguages: ['en', 'ru'], 17 | start() { 18 | console.log('started'); 19 | }, 20 | configureHljs (hljs) { 21 | hljs.registerLanguage('bicep', bicep); 22 | }, 23 | } 24 | 25 | -------------------------------------------------------------------------------- /samples/seed/template/token.json: -------------------------------------------------------------------------------- 1 | { 2 | "todo": "MY TODO" 3 | } -------------------------------------------------------------------------------- /samples/seed/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Home 2 | href: index.md 3 | - name: Articles 4 | href: articles/ 5 | - name: API Documentation 6 | items: 7 | - name: .NET API 8 | href: obj/api/ 9 | - name: .NET API (markdown) 10 | href: obj/md/ 11 | - name: .NET API (apipage) 12 | href: obj/apipage/ 13 | - name: REST API 14 | href: restapi/ 15 | -------------------------------------------------------------------------------- /src/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Docfx.App/Build/Docfx.App.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | False 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Docfx.App/BuildOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig; 5 | 6 | #nullable enable 7 | 8 | namespace Docfx; 9 | 10 | /// 11 | /// Provides options to be used with . 12 | /// 13 | public class BuildOptions 14 | { 15 | /// 16 | /// Configures the markdig markdown pipeline. 17 | /// 18 | public Func? ConfigureMarkdig { get; init; } 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.App/Config/DocfxConfig.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | #nullable enable 5 | 6 | using Docfx.Common; 7 | 8 | namespace Docfx; 9 | 10 | class DocfxConfig 11 | { 12 | public MetadataJsonConfig? metadata { get; init; } 13 | 14 | public MergeJsonConfig? merge { get; set; } 15 | 16 | public BuildJsonConfig? build { get; init; } 17 | 18 | public Dictionary? rules { get; init; } 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.App/Config/FileMetadataPairsConverter.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx; 5 | 6 | /// 7 | /// JsonConverter for FileMetadataPairs 8 | /// 9 | internal partial class FileMetadataPairsConverter 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.App/Config/ListWithStringFallbackConverter.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx; 5 | 6 | 7 | internal partial class ListWithStringFallbackConverter 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.App/Config/MergeJsonConfigConverter.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx; 5 | 6 | /// 7 | /// JsonConverter for . 8 | /// 9 | internal partial class MergeJsonConfigConverter 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.App/Config/MetadataMergeParameters.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Collections.Immutable; 5 | 6 | using Docfx.Build.Engine; 7 | 8 | namespace Docfx; 9 | 10 | internal class MetadataMergeParameters 11 | { 12 | public FileCollection Files { get; set; } 13 | public string OutputBaseDir { get; set; } 14 | public ImmutableDictionary Metadata { get; set; } = ImmutableDictionary.Empty; 15 | public FileMetadata FileMetadata { get; set; } 16 | public ImmutableList TocMetadata { get; set; } 17 | } 18 | -------------------------------------------------------------------------------- /src/Docfx.App/RunMetadata.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Dotnet; 5 | 6 | namespace Docfx; 7 | 8 | /// 9 | /// Helper class to generate metadata. 10 | /// 11 | internal static class RunMetadata 12 | { 13 | /// 14 | /// Generate metadata with specified settings. 15 | /// 16 | public static void Exec(MetadataJsonConfig config, DotnetApiOptions options, string configDirectory, string outputDirectory = null) 17 | { 18 | DotnetApiCatalog.Exec(config, options, configDirectory, outputDirectory).GetAwaiter().GetResult(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Build.Common/Docfx.Build.Common.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/Docfx.Build.Common/ModelAttributeHandlers/Handlers/IModelAttributeHandler.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Common; 5 | 6 | public interface IModelAttributeHandler 7 | { 8 | object Handle(object obj, HandleModelAttributesContext context); 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.Build.ManagedReference/BuildOutputs/ApiLanguageValuePair.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text.Json.Serialization; 5 | using Newtonsoft.Json; 6 | using YamlDotNet.Serialization; 7 | 8 | namespace Docfx.Build.ManagedReference.BuildOutputs; 9 | 10 | public class ApiLanguageValuePair 11 | { 12 | [YamlMember(Alias = "lang")] 13 | [JsonProperty("lang")] 14 | [JsonPropertyName("lang")] 15 | public string Language { get; set; } 16 | 17 | [YamlMember(Alias = "value")] 18 | [JsonProperty("value")] 19 | [JsonPropertyName("value")] 20 | public string Value { get; set; } 21 | } 22 | -------------------------------------------------------------------------------- /src/Docfx.Build.ManagedReference/Docfx.Build.ManagedReference.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Docfx.Build.OperationLevelRestApi/Docfx.Build.OperationLevelRestApi.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/Constants.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.OverwriteDocuments; 5 | 6 | public class Constants 7 | { 8 | public const string OPathStringDataName = "opathString"; 9 | public const string OPathLineNumberDataName = "opathLineNumber"; 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/Docfx.Build.OverwriteDocuments.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/Models/MarkdownFragmentModel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax; 5 | 6 | namespace Docfx.Build.OverwriteDocuments; 7 | 8 | public class MarkdownFragmentModel 9 | { 10 | public string Uid { get; set; } 11 | 12 | public Block UidSource { get; set; } 13 | 14 | public string YamlCodeBlock { get; set; } 15 | 16 | public Block YamlCodeBlockSource { get; set; } 17 | 18 | public List Contents { get; set; } 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/Models/MarkdownPropertyModel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax; 5 | 6 | namespace Docfx.Build.OverwriteDocuments; 7 | 8 | public class MarkdownPropertyModel 9 | { 10 | public string PropertyName { get; set; } 11 | 12 | public Block PropertyNameSource { get; set; } 13 | 14 | public List PropertyValue { get; set; } 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/OPathSegment.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.OverwriteDocuments; 5 | 6 | public class OPathSegment 7 | { 8 | public string SegmentName { get; set; } 9 | 10 | public string Key { get; set; } 11 | 12 | public string Value { get; set; } 13 | 14 | public string OriginalSegmentString { get; set; } 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/Rules/IOverwriteBlockRule.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax; 5 | 6 | namespace Docfx.Build.OverwriteDocuments; 7 | 8 | public interface IOverwriteBlockRule 9 | { 10 | string TokenName { get; } 11 | 12 | bool Parse(Block block, out string value); 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/Rules/L1InlineCodeHeadingRule.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.OverwriteDocuments; 5 | 6 | public sealed class L1InlineCodeHeadingRule : InlineCodeHeadingRule 7 | { 8 | public override string TokenName => "L1InlineCodeHeading"; 9 | 10 | protected override bool NeedCheckLevel => true; 11 | 12 | protected override int Level => 1; 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Build.OverwriteDocuments/Rules/L2InlineCodeHeadingRule.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.OverwriteDocuments; 5 | 6 | public sealed class L2InlineCodeHeadingRule : InlineCodeHeadingRule 7 | { 8 | public override string TokenName => "L2InlineCodeHeading"; 9 | 10 | protected override bool NeedCheckLevel => true; 11 | 12 | protected override int Level => 2; 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Docfx.Build.RestApi.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/JsonLocation/IJsonLocation.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text; 5 | 6 | namespace Docfx.Build.RestApi.Swagger.Internals; 7 | 8 | internal interface IJsonLocation 9 | { 10 | void WriteTo(StringBuilder sb); 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/JsonLocation/JsonIndexLocation.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text; 5 | 6 | namespace Docfx.Build.RestApi.Swagger.Internals; 7 | 8 | internal class JsonIndexLocation : IJsonLocation 9 | { 10 | private readonly int _position; 11 | 12 | public JsonIndexLocation(int position) 13 | { 14 | _position = position; 15 | } 16 | 17 | public void WriteTo(StringBuilder sb) 18 | { 19 | sb.Append('/'); 20 | sb.Append(_position); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/JsonLocation/JsonObjectLocation.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text; 5 | 6 | namespace Docfx.Build.RestApi.Swagger.Internals; 7 | 8 | internal class JsonObjectLocation : IJsonLocation 9 | { 10 | private readonly string _propertyName; 11 | 12 | public JsonObjectLocation(string propertyName) 13 | { 14 | _propertyName = propertyName; 15 | } 16 | 17 | public void WriteTo(StringBuilder sb) 18 | { 19 | sb.Append('/'); 20 | sb.Append(RestApiHelper.FormatDefinitionSinglePath(_propertyName)); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/SwaggerArray.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.RestApi.Swagger.Internals; 5 | 6 | internal class SwaggerArray : SwaggerObjectBase 7 | { 8 | public override SwaggerObjectType ObjectType => SwaggerObjectType.Array; 9 | 10 | public List Array { get; set; } = []; 11 | 12 | public override SwaggerObjectBase Clone() 13 | { 14 | var clone = (SwaggerArray)MemberwiseClone(); 15 | clone.Array = Array.Select(a => a.Clone()).ToList(); 16 | clone.ReferencesResolved = false; 17 | return clone; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/SwaggerFormattedReference.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.RestApi.Swagger.Internals; 5 | 6 | internal class SwaggerFormattedReference 7 | { 8 | public SwaggerFormattedReferenceType Type { get; set; } 9 | 10 | public string ExternalFilePath { get; set; } 11 | 12 | public string Path { get; set; } 13 | 14 | public string Name { get; set; } 15 | } 16 | 17 | internal enum SwaggerFormattedReferenceType 18 | { 19 | InternalReference, 20 | ExternalEmbeddedReference, 21 | ExternalReference 22 | } 23 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/SwaggerLoopReferenceObject.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.RestApi.Swagger.Internals; 5 | 6 | internal class SwaggerLoopReferenceObject : SwaggerObject 7 | { 8 | public override SwaggerObjectType ObjectType => SwaggerObjectType.LoopReference; 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/SwaggerObjectBase.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.RestApi.Swagger.Internals; 5 | 6 | internal abstract class SwaggerObjectBase 7 | { 8 | public abstract SwaggerObjectType ObjectType { get; } 9 | 10 | public bool ReferencesResolved { get; set; } 11 | 12 | public string Location { get; set; } 13 | 14 | public abstract SwaggerObjectBase Clone(); 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/Internals/SwaggerValue.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Newtonsoft.Json.Linq; 5 | 6 | namespace Docfx.Build.RestApi.Swagger.Internals; 7 | 8 | internal class SwaggerValue : SwaggerObjectBase 9 | { 10 | public override SwaggerObjectType ObjectType => SwaggerObjectType.ValueType; 11 | 12 | public JToken Token { get; set; } 13 | 14 | public override SwaggerObjectBase Clone() 15 | { 16 | var clone = (SwaggerValue)MemberwiseClone(); 17 | clone.ReferencesResolved = false; 18 | return clone; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Build.RestApi/Swagger/PathsObject.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.RestApi.Swagger; 5 | 6 | public class PathsObject : Dictionary 7 | { 8 | } 9 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Exceptions/InvalidJsonPointerException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Plugins; 5 | 6 | namespace Docfx.Exceptions; 7 | 8 | public class InvalidJsonPointerException : DocumentException 9 | { 10 | public InvalidJsonPointerException() : this("The value of json pointer is not valid") 11 | { 12 | } 13 | 14 | public InvalidJsonPointerException(string message) : base(message) 15 | { 16 | } 17 | 18 | public InvalidJsonPointerException(string message, Exception innerException) : base(message, innerException) 19 | { 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Exceptions/InvalidOverwriteDocumentException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Exceptions; 5 | 6 | public class InvalidOverwriteDocumentException : DocfxException 7 | { 8 | public InvalidOverwriteDocumentException(string message) : base(message) 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Exceptions/InvalidSchemaException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Plugins; 5 | 6 | namespace Docfx.Exceptions; 7 | 8 | public class InvalidSchemaException : DocumentException 9 | { 10 | public InvalidSchemaException(string message) : base(message) 11 | { 12 | } 13 | 14 | public InvalidSchemaException(string message, Exception innerException) : base(message, innerException) 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Exceptions/SchemaKeywordNotSupportedException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Exceptions; 5 | 6 | public class SchemaKeywordNotSupportedException : DocfxException 7 | { 8 | public SchemaKeywordNotSupportedException(string keyword) : base($"{keyword} keyword is not supported in current schema driven document processor") 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/ISchemaFragmentsHandler.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Build.OverwriteDocuments; 5 | 6 | using YamlDotNet.RepresentationModel; 7 | 8 | namespace Docfx.Build.SchemaDriven; 9 | 10 | public interface ISchemaFragmentsHandler 11 | { 12 | void HandleUid(string uidKey, YamlMappingNode node, Dictionary fragments, BaseSchema schema, string oPathPrefix, string uid); 13 | 14 | void HandleProperty(string propertyKey, YamlMappingNode node, Dictionary fragments, BaseSchema schema, string oPathPrefix, string uid); 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Models/ContentType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.SchemaDriven; 5 | 6 | public enum ContentType 7 | { 8 | Default, 9 | Uid, 10 | Xref, 11 | Href, 12 | File, 13 | Markdown 14 | } 15 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Models/IContentAnchorParser.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.SchemaDriven; 5 | 6 | public interface IContentAnchorParser 7 | { 8 | string Parse(string input); 9 | 10 | bool ContainsAnchor { get; } 11 | 12 | string Content { get; } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Models/MergeType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.SchemaDriven; 5 | 6 | public enum MergeType 7 | { 8 | Merge, 9 | Key, 10 | Replace, 11 | Ignore 12 | } 13 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Models/OverwriteModelType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.SchemaDriven; 5 | 6 | public enum OverwriteModelType 7 | { 8 | Classic, 9 | MarkdownFragments 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Models/ReferenceType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.SchemaDriven; 5 | 6 | public enum ReferenceType 7 | { 8 | None, 9 | File 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Processors/IInterpreter.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.SchemaDriven.Processors; 5 | 6 | public interface IInterpreter 7 | { 8 | bool CanInterpret(BaseSchema schema); 9 | object Interpret(BaseSchema schema, object value, IProcessContext context, string path); 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Build.SchemaDriven/Processors/MergeTypeInterpreter.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.SchemaDriven.Processors; 5 | 6 | public class MergeTypeInterpreter : IInterpreter 7 | { 8 | public int Order => 1; 9 | public bool CanInterpret(BaseSchema schema) 10 | { 11 | // TODO implement 12 | return false; 13 | } 14 | 15 | public object Interpret(BaseSchema schema, object value, IProcessContext context, string path) 16 | { 17 | // TODO implement 18 | return value; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Build.TagLevelRestApi/Docfx.Build.TagLevelRestApi.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Docfx.Build.UniversalReference/BuildOutputs/ApiLanguageValuePair.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text.Json.Serialization; 5 | using Newtonsoft.Json; 6 | using YamlDotNet.Serialization; 7 | 8 | namespace Docfx.Build.UniversalReference; 9 | 10 | public class ApiLanguageValuePair 11 | { 12 | [YamlMember(Alias = "lang")] 13 | [JsonProperty("lang")] 14 | [JsonPropertyName("lang")] 15 | public string Language { get; set; } 16 | 17 | [YamlMember(Alias = "value")] 18 | [JsonProperty("value")] 19 | [JsonPropertyName("value")] 20 | public T Value { get; set; } 21 | } 22 | -------------------------------------------------------------------------------- /src/Docfx.Build.UniversalReference/BuildOutputs/ApiLanguageValuePairWithLevel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text.Json.Serialization; 5 | using Newtonsoft.Json; 6 | using YamlDotNet.Serialization; 7 | 8 | namespace Docfx.Build.UniversalReference; 9 | 10 | public class ApiLanguageValuePairWithLevel : ApiLanguageValuePair 11 | { 12 | [YamlMember(Alias = "level")] 13 | [JsonProperty("level")] 14 | [JsonPropertyName("level")] 15 | public int Level { get; set; } 16 | } 17 | -------------------------------------------------------------------------------- /src/Docfx.Build.UniversalReference/Docfx.Build.UniversalReference.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Docfx.Build.UniversalReference/UniversalReferenceConstants.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Common; 5 | 6 | namespace Docfx.Build.UniversalReference; 7 | 8 | internal static class UniversalReferenceConstants 9 | { 10 | public const string UniversalReference = "UniversalReference"; 11 | public const string UniversalReferenceYamlMime = YamlMime.YamlMimePrefix + UniversalReference; 12 | } 13 | -------------------------------------------------------------------------------- /src/Docfx.Build/InvalidPreprocessorException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Exceptions; 5 | 6 | namespace Docfx.Build.Engine; 7 | 8 | public class InvalidPreprocessorException : DocfxException 9 | { 10 | public InvalidPreprocessorException(string message) : base(message) 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Build/PostProcessors/IHtmlDocumentHandler.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Plugins; 5 | using HtmlAgilityPack; 6 | 7 | namespace Docfx.Build.Engine; 8 | 9 | public interface IHtmlDocumentHandler 10 | { 11 | Manifest PreHandle(Manifest manifest); 12 | void Handle(HtmlDocument document, ManifestItem manifestItem, string inputFile, string outputFile); 13 | Manifest PostHandle(Manifest manifest); 14 | } 15 | -------------------------------------------------------------------------------- /src/Docfx.Build/PostProcessors/PostProcessor.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Plugins; 5 | 6 | namespace Docfx.Build.Engine; 7 | 8 | sealed class PostProcessor 9 | { 10 | public string ContractName { get; set; } 11 | 12 | public IPostProcessor Processor { get; set; } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Build/ResourceFileReaders/EmptyResourceReader.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | public sealed class EmptyResourceReader : ResourceFileReader 7 | { 8 | private static readonly IEnumerable Empty = Array.Empty(); 9 | 10 | public override bool IsEmpty => true; 11 | public override string Name => "Empty"; 12 | 13 | public override IEnumerable Names => Empty; 14 | 15 | public override Stream GetResourceStream(string name) 16 | { 17 | return Stream.Null; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.Build/ResourceFileReaders/ResourceInfo.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | public class ResourceInfo 7 | { 8 | public string Path { get; } 9 | public string Content { get; } 10 | public ResourceInfo(string path, string content) 11 | { 12 | Path = path; 13 | Content = content; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Build/ResourceFiles/IResourceFileConfig.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.ResourceFiles; 5 | 6 | public interface IResourceFileConfig 7 | { 8 | bool IsResourceFile(string fileExtension); 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.Build/Settings/ApplyTemplateOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | [Flags] 7 | public enum ApplyTemplateOptions 8 | { 9 | None = 0, 10 | ExportRawModel = 1, 11 | ExportViewModel = 2, 12 | TransformDocument = 4, 13 | All = ExportRawModel | ExportViewModel | TransformDocument 14 | } 15 | -------------------------------------------------------------------------------- /src/Docfx.Build/TableOfContents/HrefType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.TableOfContents; 5 | 6 | enum HrefType 7 | { 8 | AbsolutePath, 9 | RelativeFile, 10 | RelativeFolder, 11 | MarkdownTocFile, 12 | YamlTocFile, 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Build/TableOfContents/TocFileType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.TableOfContents; 5 | 6 | enum TocFileType 7 | { 8 | None, 9 | Markdown, 10 | Yaml 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Build/TemplateProcessors/Preprocessors/ITemplatePreprocessor.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | public interface ITemplatePreprocessor 7 | { 8 | bool ContainsGetOptions { get; } 9 | 10 | bool ContainsModelTransformation { get; } 11 | 12 | object GetOptions(object model); 13 | 14 | object TransformModel(object model); 15 | 16 | string Path { get; } 17 | 18 | string Name { get; } 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.Build/TemplateProcessors/TemplateType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | public enum TemplateType 7 | { 8 | Default, 9 | 10 | /// 11 | /// Primary template type means documents processed by this template will be responsible for hyperlink 12 | /// 13 | Primary, 14 | 15 | /// 16 | /// Auxiliary template type means documents processed by this template will not be referenced by other documents 17 | /// 18 | Auxiliary, 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.Build/TemplateProcessors/ViewRenderers/ITemplateRenderer.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | public interface ITemplateRenderer 7 | { 8 | string Render(object model); 9 | 10 | IEnumerable Dependencies { get; } 11 | 12 | string Path { get; } 13 | 14 | string Name { get; } 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Build/TransformModelOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text.Json.Serialization; 5 | using Newtonsoft.Json; 6 | 7 | namespace Docfx.Build.Engine; 8 | 9 | public class TransformModelOptions 10 | { 11 | [JsonProperty(PropertyName = "isShared")] 12 | [JsonPropertyName("isShared")] 13 | public bool IsShared { get; set; } 14 | 15 | [JsonProperty(PropertyName = "bookmarks")] 16 | [JsonPropertyName("bookmarks")] 17 | public Dictionary Bookmarks { get; set; } 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.Build/XRefMaps/IXRefContainer.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | public interface IXRefContainer 7 | { 8 | bool IsEmbeddedRedirections { get; } 9 | IEnumerable GetRedirections(); 10 | IXRefContainerReader GetReader(); 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Build/XRefMaps/IXRefContainerReader.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Plugins; 5 | 6 | namespace Docfx.Build.Engine; 7 | 8 | public interface IXRefContainerReader 9 | { 10 | XRefSpec Find(string uid); 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Build/XRefMaps/XRefArchiveMode.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Build.Engine; 5 | 6 | public enum XRefArchiveMode 7 | { 8 | Read, 9 | Create, 10 | Update, 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Build/XRefMaps/XRefMapRedirection.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text.Json.Serialization; 5 | using Newtonsoft.Json; 6 | using YamlDotNet.Serialization; 7 | 8 | namespace Docfx.Build.Engine; 9 | 10 | public class XRefMapRedirection 11 | { 12 | [YamlMember(Alias = "uidPrefix")] 13 | [JsonProperty("uidPrefix")] 14 | [JsonPropertyName("uidPrefix")] 15 | public string UidPrefix { get; set; } 16 | 17 | [YamlMember(Alias = "href")] 18 | [JsonProperty("href")] 19 | [JsonPropertyName("href")] 20 | public string Href { get; set; } 21 | } 22 | -------------------------------------------------------------------------------- /src/Docfx.Build/XRefMaps/XRefSpecUidComparer.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Plugins; 5 | 6 | namespace Docfx.Build.Engine; 7 | 8 | public sealed class XRefSpecUidComparer : Comparer 9 | { 10 | public static readonly XRefSpecUidComparer Instance = new(); 11 | 12 | public override int Compare(XRefSpec x, XRefSpec y) 13 | { 14 | return StringComparer.InvariantCulture.Compare(x.Uid, y.Uid); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Docfx.Common/EntityMergers/IMergeContext.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common.EntityMergers; 5 | 6 | public interface IMergeContext 7 | { 8 | IMerger Merger { get; } 9 | object this[string key] { get; } 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Common/EntityMergers/IMergeHandler.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common.EntityMergers; 5 | 6 | public interface IMergeHandler 7 | { 8 | void Merge(ref object source, object overrides, IMergeContext context); 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.Common/EntityMergers/IMerger.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common.EntityMergers; 5 | 6 | public interface IMerger 7 | { 8 | void Merge(ref object source, object overrides, Type type, IMergeContext context); 9 | bool TestKey(object source, object overrides, Type type, IMergeContext context); 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Common/Exceptions/DocfxException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Exceptions; 5 | 6 | public class DocfxException : Exception 7 | { 8 | private const string DefaultMessage = "Error happens when running docfx"; 9 | 10 | public DocfxException() : this(DefaultMessage) 11 | { 12 | } 13 | 14 | public DocfxException(string message) : base(message ?? DefaultMessage) 15 | { 16 | } 17 | 18 | public DocfxException(string message, Exception innerException) : base(message ?? DefaultMessage, innerException) 19 | { 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Docfx.Common/FileAbstractLayer/EmptyFileReader.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common; 5 | 6 | internal sealed class EmptyFileReader : IFileReader 7 | { 8 | public static readonly EmptyFileReader Instance = new(); 9 | 10 | private EmptyFileReader() 11 | { 12 | } 13 | 14 | public PathMapping? FindFile(RelativePath file) => null; 15 | 16 | public IEnumerable EnumerateFiles() => []; 17 | 18 | public string GetExpectedPhysicalPath(RelativePath file) => null; 19 | } 20 | -------------------------------------------------------------------------------- /src/Docfx.Common/FileAbstractLayer/PathMapping.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common; 5 | 6 | public readonly struct PathMapping 7 | { 8 | public PathMapping(RelativePath logicalPath, string physicalPath) 9 | { 10 | ArgumentNullException.ThrowIfNull(logicalPath); 11 | ArgumentNullException.ThrowIfNull(physicalPath); 12 | 13 | LogicalPath = logicalPath.GetPathFromWorkingFolder(); 14 | PhysicalPath = physicalPath; 15 | } 16 | 17 | public RelativePath LogicalPath { get; } 18 | 19 | public string PhysicalPath { get; } 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Common/FileItems.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx; 5 | 6 | [System.Text.Json.Serialization.JsonConverter(typeof(FileItemsConverter))] 7 | public class FileItems : List 8 | { 9 | private static readonly IEnumerable Empty = new List(); 10 | public FileItems(string file) 11 | { 12 | Add(file); 13 | } 14 | 15 | public FileItems(IEnumerable files) : base(files ?? Empty) 16 | { 17 | } 18 | 19 | public static explicit operator FileItems(string input) 20 | { 21 | return new FileItems(input); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Docfx.Common/IItemWithMetadata.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | 5 | namespace Docfx.Common; 6 | 7 | 8 | /// 9 | /// An item that contains metadate 10 | /// 11 | internal interface IItemWithMetadata 12 | { 13 | 14 | /// 15 | /// Gets the metadata. 16 | /// 17 | /// The metadata. 18 | Dictionary Metadata { get; } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Common/Json/FileMappingConverter.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx; 5 | 6 | internal partial class FileMappingConverter 7 | { 8 | } 9 | -------------------------------------------------------------------------------- /src/Docfx.Common/Loggers/ILogItem.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common; 5 | 6 | public interface ILogItem 7 | { 8 | LogLevel LogLevel { get; } 9 | string Message { get; } 10 | string File { get; } 11 | string Line { get; } 12 | string Code { get; } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Common/Loggers/ILoggerListener.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common; 5 | 6 | public interface ILoggerListener : IDisposable 7 | { 8 | void WriteLine(ILogItem item); 9 | void Flush(); 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Common/Loggers/LogLevel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common; 5 | 6 | public enum LogLevel 7 | { 8 | Diagnostic = -1, 9 | Verbose, 10 | Info, 11 | Suggestion, 12 | Warning, 13 | Error, 14 | } 15 | -------------------------------------------------------------------------------- /src/Docfx.Common/Loggers/SuggestionCodes.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common; 5 | 6 | public static class SuggestionCodes 7 | { 8 | public static class Build 9 | { 10 | public const string EmptyInputFiles = "EmptyInputFiles"; 11 | public const string EmptyInputContents = "EmptyInputContents"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Common/ResourcePools/ResourcePool.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Common; 5 | 6 | public static class ResourcePool 7 | { 8 | public static ResourcePoolManager Create(Func creator, int maxResourceCount) 9 | where T : class 10 | { 11 | return new ResourcePoolManager(creator, maxResourceCount); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.Common/Attributes/MarkdownContentAttribute.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.Common; 5 | 6 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] 7 | public class MarkdownContentAttribute : Attribute 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.Common/Attributes/MarkdownContentIgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.Common; 5 | 6 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] 7 | public class MarkdownContentIgnoreAttribute : Attribute 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.Common/Attributes/UniqueIdentityReferenceAttribute.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.Common; 5 | 6 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] 7 | public class UniqueIdentityReferenceAttribute : Attribute 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.Common/Attributes/UniqueIdentityReferenceIgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.Common; 5 | 6 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] 7 | public class UniqueIdentityReferenceIgnoreAttribute : Attribute 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.Common/Attributes/UrlContentAttribute.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.Common; 5 | 6 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] 7 | public class UrlContentAttribute : Attribute 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.Common/Attributes/UrlContentIgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.Common; 5 | 6 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)] 7 | public class UrlContentIgnoreAttribute : Attribute 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.Common/Docfx.DataContracts.Common.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.RestApi/Docfx.DataContracts.RestApi.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/Docfx.DataContracts.UniversalReference/Docfx.DataContracts.UniversalReference.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/FileType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal enum FileType 7 | { 8 | NotSupported, 9 | Solution, 10 | Project, 11 | VBSourceCode, 12 | CSSourceCode, 13 | Assembly, 14 | } 15 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/Filters/AttributeFilterData.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal class AttributeFilterData 7 | { 8 | public string Id { get; set; } 9 | 10 | public IEnumerable ConstructorArguments { get; set; } 11 | 12 | public IDictionary ConstructorNamedArguments { get; set; } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/Filters/ConfigFilterRuleExcludeItem.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using YamlDotNet.Serialization; 5 | 6 | namespace Docfx.Dotnet; 7 | 8 | internal class ConfigFilterRuleExcludeItem : ConfigFilterRuleItem 9 | { 10 | [YamlIgnore] 11 | public override bool CanVisit 12 | { 13 | get 14 | { 15 | return false; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/Filters/ConfigFilterRuleIncludeItem.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using YamlDotNet.Serialization; 5 | 6 | namespace Docfx.Dotnet; 7 | 8 | internal class ConfigFilterRuleIncludeItem : ConfigFilterRuleItem 9 | { 10 | [YamlIgnore] 11 | public override bool CanVisit 12 | { 13 | get 14 | { 15 | return true; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/Filters/SymbolFilterData.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal class SymbolFilterData 7 | { 8 | public string Id { get; set; } 9 | 10 | public ExtendedSymbolKind? Kind { get; set; } 11 | 12 | public IEnumerable Attributes { get; set; } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/ApiReferenceViewModel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal class ApiReferenceViewModel : SortedDictionary 7 | { 8 | } 9 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/ExtractMetadataException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Exceptions; 5 | 6 | internal class ExtractMetadataException : DocfxException 7 | { 8 | public ExtractMetadataException(string message) : base(message) 9 | { 10 | } 11 | 12 | public ExtractMetadataException(string message, Exception innerException) : base(message, innerException) 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/MetadataModel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal class MetadataModel 7 | { 8 | public MetadataItem TocYamlViewModel { get; set; } 9 | public List Members { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/Models/MemberType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.ManagedReference; 5 | 6 | public enum MemberType 7 | { 8 | Default, 9 | Toc, 10 | Assembly, 11 | Namespace, 12 | Class, 13 | Interface, 14 | Struct, 15 | Delegate, 16 | Enum, 17 | Field, 18 | Property, 19 | Event, 20 | Constructor, 21 | Method, 22 | Operator, 23 | Container, 24 | AttachedEvent, 25 | AttachedProperty 26 | } 27 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/Models/SyntaxLanguage.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.DataContracts.ManagedReference; 5 | 6 | public enum SyntaxLanguage 7 | { 8 | Default, 9 | CSharp, 10 | VB, 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/Resolvers/BuildToc.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal class BuildToc : IResolverPipeline 7 | { 8 | public void Run(MetadataModel yaml, ResolverContext context) 9 | { 10 | yaml.TocYamlViewModel = yaml.TocYamlViewModel.ShrinkToSimpleTocWithNamespaceNotEmpty(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/Resolvers/IResolverPipeline.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal interface IResolverPipeline 7 | { 8 | void Run(MetadataModel yaml, ResolverContext context); 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/Resolvers/ResolverContext.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Dotnet; 5 | 6 | internal class ResolverContext 7 | { 8 | public Dictionary References { get; set; } 9 | 10 | public Dictionary Members { get; set; } 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/ManagedReference/Resolvers/SetParent.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Common; 5 | 6 | namespace Docfx.Dotnet; 7 | 8 | internal class SetParent : IResolverPipeline 9 | { 10 | public void Run(MetadataModel yaml, ResolverContext context) 11 | { 12 | TreeIterator.Preorder(yaml.TocYamlViewModel, null, 13 | s => s.IsInvalid ? null : s.Items, 14 | (current, parent) => 15 | { 16 | current.Parent = parent; 17 | return true; 18 | }); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Dotnet/Parsers/XmlCommentParserContext.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.DataContracts.Common; 5 | 6 | namespace Docfx.Dotnet; 7 | 8 | internal class XmlCommentParserContext 9 | { 10 | public bool SkipMarkup { get; init; } 11 | 12 | public Action AddReferenceDelegate { get; init; } 13 | 14 | public Func ResolveCode { get; init; } 15 | 16 | public SourceDetail Source { get; init; } 17 | } 18 | -------------------------------------------------------------------------------- /src/Docfx.Glob/Docfx.Glob.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Aggregator/IBlockAggregator.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.MarkdigEngine.Extensions; 5 | 6 | public interface IBlockAggregator 7 | { 8 | bool Aggregate(BlockAggregateContext context); 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/CodeSnippet/CodeRange.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.MarkdigEngine.Extensions; 5 | 6 | public class CodeRange 7 | { 8 | public int Start { get; set; } 9 | public int End { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Constants.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.MarkdigEngine.Extensions; 5 | 6 | internal static class Constants 7 | { 8 | public static readonly string FencedCodePrefix = "lang-"; 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Docfx.MarkdigEngine.Extensions.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Inclusion/InclusionInline/InclusionInline.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax.Inlines; 5 | 6 | namespace Docfx.MarkdigEngine.Extensions; 7 | 8 | public class InclusionInline : ContainerInline 9 | { 10 | public string Title { get; set; } 11 | 12 | public string IncludedFilePath { get; set; } 13 | 14 | public object ResolvedFilePath { get; set; } 15 | 16 | public string GetRawToken() => $"[!include[{Title}]({IncludedFilePath})]"; 17 | } 18 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/MonikerRange/MonikerRangeBlock.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Parsers; 5 | using Markdig.Syntax; 6 | 7 | namespace Docfx.MarkdigEngine.Extensions; 8 | 9 | public class MonikerRangeBlock : ContainerBlock 10 | { 11 | public string MonikerRange { get; set; } 12 | public int ColonCount { get; set; } 13 | public bool Closed { get; set; } 14 | public MonikerRangeBlock(BlockParser parser) : base(parser) 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/MonikerRange/MonikerRangeRender.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Renderers; 5 | using Markdig.Renderers.Html; 6 | 7 | namespace Docfx.MarkdigEngine.Extensions; 8 | 9 | public class MonikerRangeRender : HtmlObjectRenderer 10 | { 11 | protected override void Write(HtmlRenderer renderer, MonikerRangeBlock obj) 12 | { 13 | renderer.Write(""); 14 | renderer.WriteChildren(obj); 15 | renderer.WriteLine(""); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/NestedColumn/NestedColumn.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Parsers; 5 | using Markdig.Syntax; 6 | 7 | namespace Docfx.MarkdigEngine.Extensions; 8 | 9 | public class NestedColumnBlock : ContainerBlock 10 | { 11 | public NestedColumnBlock(BlockParser parser) : base(parser) 12 | { 13 | } 14 | 15 | public int ColonCount { get; set; } 16 | 17 | public string ColumnWidth { get; set; } 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Noloc/NolocInline.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax.Inlines; 5 | 6 | namespace Docfx.MarkdigEngine.Extensions; 7 | 8 | public class NolocInline : LeafInline 9 | { 10 | public string Text { get; set; } 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Noloc/NolocRender.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Renderers; 5 | using Markdig.Renderers.Html; 6 | 7 | namespace Docfx.MarkdigEngine.Extensions; 8 | 9 | public class NolocRender : HtmlObjectRenderer 10 | { 11 | protected override void Write(HtmlRenderer renderer, NolocInline obj) 12 | { 13 | renderer.Write(obj.Text); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Rewriter/IMarkdownObjectRewriter.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax; 5 | 6 | namespace Docfx.MarkdigEngine.Extensions; 7 | 8 | public interface IMarkdownObjectRewriter 9 | { 10 | void PreProcess(IMarkdownObject markdownObject); 11 | 12 | IMarkdownObject Rewrite(IMarkdownObject markdownObject); 13 | 14 | void PostProcess(IMarkdownObject markdownObject); 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Rewriter/IMarkdownObjectRewriterProvider.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Collections.Immutable; 5 | 6 | namespace Docfx.MarkdigEngine.Extensions; 7 | 8 | public interface IMarkdownObjectRewriterProvider 9 | { 10 | ImmutableArray GetRewriters(); 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Row/Row.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Parsers; 5 | using Markdig.Syntax; 6 | 7 | namespace Docfx.MarkdigEngine.Extensions; 8 | 9 | public class RowBlock : ContainerBlock 10 | { 11 | public int ColonCount { get; set; } 12 | public RowBlock(BlockParser parser) : base(parser) 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Row/RowRender.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Renderers; 5 | using Markdig.Renderers.Html; 6 | 7 | namespace Docfx.MarkdigEngine.Extensions; 8 | 9 | public class RowRender : HtmlObjectRenderer 10 | { 11 | protected override void Write(HtmlRenderer renderer, RowBlock obj) 12 | { 13 | renderer.Write("
"); 14 | renderer.WriteChildren(obj); 15 | renderer.WriteLine("
"); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/TabGroup/HtmlTabTitleBlockRenderer.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Renderers; 5 | using Markdig.Renderers.Html; 6 | 7 | namespace Docfx.MarkdigEngine.Extensions; 8 | 9 | public class HtmlTabTitleBlockRenderer : HtmlObjectRenderer 10 | { 11 | protected override void Write(HtmlRenderer renderer, TabTitleBlock block) 12 | { 13 | foreach (var inline in block.Inline) 14 | { 15 | renderer.Render(inline); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/TabGroup/TabContentBlock.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax; 5 | 6 | namespace Docfx.MarkdigEngine.Extensions; 7 | 8 | public class TabContentBlock : ContainerBlock 9 | { 10 | public TabContentBlock(List blocks) 11 | : base(null) 12 | { 13 | foreach (var item in blocks) 14 | { 15 | Add(item); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/TabGroup/TabTitleBlock.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax; 5 | 6 | namespace Docfx.MarkdigEngine.Extensions; 7 | 8 | public class TabTitleBlock : LeafBlock 9 | { 10 | public TabTitleBlock() : base(null) 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine.Extensions/Xref/XrefInline.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Markdig.Syntax.Inlines; 5 | 6 | namespace Docfx.MarkdigEngine.Extensions; 7 | 8 | public class XrefInline : LeafInline 9 | { 10 | public string Href { get; set; } 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.MarkdigEngine/Docfx.MarkdigEngine.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/Docfx.Plugins.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/DocumentException.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public class DocumentException : Exception 7 | { 8 | public DocumentException() { } 9 | public DocumentException(string message) : base(message) { } 10 | public DocumentException(string message, Exception inner) : base(message, inner) { } 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/DocumentType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public enum DocumentType 7 | { 8 | Article, 9 | Overwrite, 10 | Resource, 11 | Metadata, 12 | MarkdownFragments, 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/FileAbstractLayerExtensions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public static class FileAbstractLayerExtensions 7 | { 8 | public static StreamReader OpenReadText(this IFileAbstractLayer fal, string file) => 9 | new(fal.OpenRead(file)); 10 | 11 | public static string ReadAllText(this IFileAbstractLayer fal, string file) 12 | { 13 | using var reader = OpenReadText(fal, file); 14 | return reader.ReadToEnd(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/GroupInfo.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public class GroupInfo 7 | { 8 | public string Name { get; set; } 9 | 10 | public string Destination { get; set; } 11 | 12 | public Dictionary Metadata { get; set; } = []; 13 | } 14 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/ICompositionContainer.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public interface ICompositionContainer 7 | { 8 | T GetExport(); 9 | T GetExport(string name); 10 | IEnumerable GetExports(); 11 | IEnumerable GetExports(string name); 12 | } 13 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/ICustomHrefGenerator.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public interface ICustomHrefGenerator 7 | { 8 | string GenerateHref(IFileLinkInfo href); 9 | } 10 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/IDocumentBuildStep.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Collections.Immutable; 5 | 6 | namespace Docfx.Plugins; 7 | 8 | public interface IDocumentBuildStep 9 | { 10 | string Name { get; } 11 | int BuildOrder { get; } 12 | IEnumerable Prebuild(ImmutableList models, IHostService host); 13 | void Build(FileModel model, IHostService host); 14 | void Postbuild(ImmutableList models, IHostService host); 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/IDocumentProcessor.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Collections.Immutable; 5 | 6 | namespace Docfx.Plugins; 7 | 8 | public interface IDocumentProcessor 9 | { 10 | string Name { get; } 11 | IEnumerable BuildSteps { get; } 12 | ProcessingPriority GetProcessingPriority(FileAndType file); 13 | FileModel Load(FileAndType file, ImmutableDictionary metadata); 14 | 15 | SaveResult Save(FileModel model); 16 | 17 | void UpdateHref(FileModel model, IDocumentBuildContext context); 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/IFileAbstractLayer.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public interface IFileAbstractLayer 7 | { 8 | IEnumerable GetAllInputFiles(); 9 | 10 | bool Exists(string file); 11 | 12 | Stream OpenRead(string file); 13 | 14 | Stream Create(string file); 15 | 16 | void Copy(string sourceFileName, string destFileName); 17 | 18 | string GetPhysicalPath(string file); 19 | 20 | string GetExpectedPhysicalPath(string file); 21 | } 22 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/IInputMetadataValidator.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Collections.Immutable; 5 | 6 | namespace Docfx.Plugins; 7 | 8 | public interface IInputMetadataValidator 9 | { 10 | void Validate(string sourceFile, ImmutableDictionary metadata); 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/IMarkdownService.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public interface IMarkdownService 7 | { 8 | string Name { get; } 9 | 10 | MarkupResult Markup(string src, string path); 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/LinkSourceInfo.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public readonly struct LinkSourceInfo 7 | { 8 | public string Target { get; init; } 9 | public string Anchor { get; init; } 10 | public string SourceFile { get; init; } 11 | public int LineNumber { get; init; } 12 | } 13 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/PageChangeFrequency.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public enum PageChangeFrequency 7 | { 8 | Always, 9 | Hourly, 10 | Daily, 11 | Weekly, 12 | Monthly, 13 | Yearly, 14 | Never, 15 | } 16 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/ProcessingPriority.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.ComponentModel; 5 | 6 | namespace Docfx.Plugins; 7 | 8 | public enum ProcessingPriority 9 | { 10 | NotSupported = -1, 11 | [EditorBrowsable(EditorBrowsableState.Never)] 12 | Lowest = 0, 13 | Low = 64, 14 | BelowNormal = 128, 15 | Normal = 256, 16 | AboveNormal = 512, 17 | High = 1024, 18 | [EditorBrowsable(EditorBrowsableState.Never)] 19 | Highest = int.MaxValue, 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/SitemapOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text.Json.Serialization; 5 | using Newtonsoft.Json; 6 | 7 | namespace Docfx.Plugins; 8 | 9 | public class SitemapOptions : SitemapElementOptions 10 | { 11 | [JsonProperty("fileOptions")] 12 | [JsonPropertyName("fileOptions")] 13 | public Dictionary FileOptions { get; set; } 14 | } 15 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/SourceFileInfo.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public class SourceFileInfo 7 | { 8 | public string DocumentType { get; private set; } 9 | 10 | public string SourceRelativePath { get; private set; } 11 | 12 | public static SourceFileInfo FromManifestItem(ManifestItem manifestItem) 13 | { 14 | return new SourceFileInfo 15 | { 16 | DocumentType = manifestItem.Type, 17 | SourceRelativePath = manifestItem.SourceRelativePath, 18 | }; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/TocInfo.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public class TocInfo 7 | { 8 | public string TocFileKey { get; init; } 9 | 10 | public int Order { get; init; } 11 | } 12 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/TreeItem.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Text.Json.Serialization; 5 | using Newtonsoft.Json; 6 | 7 | namespace Docfx.Plugins; 8 | 9 | public class TreeItem 10 | { 11 | [JsonProperty("items")] 12 | [JsonPropertyName("items")] 13 | public List Items { get; set; } 14 | 15 | [Newtonsoft.Json.JsonExtensionData] 16 | [System.Text.Json.Serialization.JsonExtensionData] 17 | public Dictionary Metadata { get; set; } = []; 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/TreeItemActionType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public enum TreeItemActionType 7 | { 8 | ReplaceSelf, 9 | DeleteSelf, 10 | AppendChild, 11 | PrependChild, 12 | InsertAfter, 13 | InsertBefore, 14 | } 15 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/TreeItemKeyType.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.Plugins; 5 | 6 | public enum TreeItemKeyType 7 | { 8 | TopicUid, 9 | TopicHref 10 | } 11 | -------------------------------------------------------------------------------- /src/Docfx.Plugins/TreeItemRestructure.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Collections.Immutable; 5 | 6 | namespace Docfx.Plugins; 7 | 8 | public class TreeItemRestructure 9 | { 10 | public string Key { get; set; } 11 | 12 | public TreeItemKeyType TypeOfKey { get; set; } 13 | 14 | public TreeItemActionType ActionType { get; set; } 15 | 16 | public IImmutableList RestructuredItems { get; set; } 17 | 18 | /// 19 | /// Specifies which files trigger the restructure 20 | /// 21 | public IImmutableList SourceFiles { get; set; } 22 | } 23 | -------------------------------------------------------------------------------- /src/Docfx.YamlSerialization/Docfx.YamlSerialization.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | enable 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Docfx.YamlSerialization/ExtensibleMemberAttribute.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | namespace Docfx.YamlSerialization; 5 | 6 | [AttributeUsage(AttributeTargets.Property)] 7 | public sealed class ExtensibleMemberAttribute : Attribute 8 | { 9 | public string Prefix { get; } 10 | 11 | public ExtensibleMemberAttribute() 12 | : this(string.Empty) 13 | { 14 | } 15 | 16 | public ExtensibleMemberAttribute(string prefix) 17 | { 18 | Prefix = prefix; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Docfx.YamlSerialization/Helpers/YamlTypeConverters.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using YamlDotNet.Serialization; 5 | using YamlDotNet.Serialization.Converters; 6 | 7 | namespace Docfx.YamlSerialization.Helpers; 8 | 9 | internal static class YamlTypeConverters 10 | { 11 | private static readonly IEnumerable _builtInTypeConverters = 12 | new IYamlTypeConverter[] 13 | { 14 | new GuidConverter(false), 15 | }; 16 | 17 | public static IEnumerable BuiltInConverters => _builtInTypeConverters; 18 | } 19 | -------------------------------------------------------------------------------- /src/Docfx.YamlSerialization/TypeInspectors/IExtensibleTypeInspector.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using YamlDotNet.Serialization; 5 | 6 | namespace Docfx.YamlSerialization.TypeInspectors; 7 | 8 | public interface IExtensibleTypeInspector : ITypeInspector 9 | { 10 | IPropertyDescriptor? GetProperty(Type type, object? container, string name); 11 | } 12 | -------------------------------------------------------------------------------- /src/docfx/Models/DownloadCommandOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.ComponentModel; 5 | using Spectre.Console.Cli; 6 | 7 | namespace Docfx; 8 | 9 | [Description("Download remote xref map file and create an xref archive in local.")] 10 | internal class DownloadCommandOptions : CommandSettings 11 | { 12 | [Description("Path to the archive file")] 13 | [CommandArgument(0, "")] 14 | public string ArchiveFile { get; set; } 15 | 16 | [Description("Specify the url of xrefmap.")] 17 | [CommandOption("-x|--xref")] 18 | public string Uri { get; set; } 19 | } 20 | -------------------------------------------------------------------------------- /src/docfx/Models/MergeCommandOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.ComponentModel; 5 | using Spectre.Console.Cli; 6 | 7 | namespace Docfx; 8 | 9 | [Description("Merge .net base API in YAML files and toc files.")] 10 | internal class MergeCommandOptions : LogOptions 11 | { 12 | [Description("Specify the output folder")] 13 | [CommandOption("-o|--output")] 14 | public string OutputFolder { get; set; } 15 | 16 | [Description("Path to docfx.json")] 17 | [CommandArgument(0, "[config]")] 18 | public string Config { get; set; } 19 | } 20 | -------------------------------------------------------------------------------- /src/docfx/Models/PdfCommandOptions.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.ComponentModel; 5 | using Spectre.Console.Cli; 6 | 7 | namespace Docfx; 8 | 9 | [Description("Generate pdf file")] 10 | internal class PdfCommandOptions : LogOptions 11 | { 12 | [Description("Specify the output base directory")] 13 | [CommandOption("-o|--output", IsHidden = true)] 14 | public string OutputFolder { get; set; } 15 | 16 | [Description("Path to docfx.json")] 17 | [CommandArgument(0, "[config]")] 18 | public string ConfigFile { get; set; } 19 | } 20 | -------------------------------------------------------------------------------- /templates/.editorconfig: -------------------------------------------------------------------------------- 1 | root = false 2 | 3 | # Settings for Docfx template files 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_size = 2 8 | -------------------------------------------------------------------------------- /templates/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | module.exports = { 5 | env: { 6 | browser: true 7 | }, 8 | ignorePatterns: ['**/*.js'], 9 | extends: ['standard', 'eslint:recommended', 'plugin:@typescript-eslint/recommended'], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['@typescript-eslint'], 12 | root: true, 13 | rules: { 14 | 'space-before-function-paren': ['warn', 'never'], 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /templates/.gitignore: -------------------------------------------------------------------------------- 1 | *.min.js 2 | *.min.css 3 | *.map 4 | *.woff 5 | *.woff2 6 | 7 | glyphicons-*.* 8 | 9 | dist 10 | fonts 11 | node_modules 12 | -------------------------------------------------------------------------------- /templates/.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard-scss", 3 | "ignoreFiles": [ 4 | "**/*.ts", 5 | "**/*.js" 6 | ], 7 | "rules": { 8 | "selector-class-pattern": null, 9 | "media-feature-range-notation": null, 10 | "font-family-no-missing-generic-family-keyword": [ true, { 11 | "ignoreFontFamilies": [ 12 | "bootstrap-icons" 13 | ] 14 | }], 15 | "property-no-unknown": [ true, { 16 | "ignoreProperties": [ "navigation" ] 17 | }], 18 | "scss/at-rule-no-unknown": [ true, { 19 | "ignoreAtRules": [ "view-transition" ] 20 | }] 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /templates/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the source code for website themes used by docfx.exe. 2 | -------------------------------------------------------------------------------- /templates/default/ManagedReference.extension.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | /** 5 | * This method will be called at the start of exports.transform in ManagedReference.html.primary.js 6 | */ 7 | exports.preTransform = function (model) { 8 | return model; 9 | } 10 | 11 | /** 12 | * This method will be called at the end of exports.transform in ManagedReference.html.primary.js 13 | */ 14 | exports.postTransform = function (model) { 15 | return model; 16 | } 17 | -------------------------------------------------------------------------------- /templates/default/ManagedReference.html.primary.tmpl: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | {{!master(layout/_master.tmpl)}} 3 | 4 | {{#isNamespace}} 5 | {{>partials/namespace}} 6 | {{/isNamespace}} 7 | 8 | {{#_splitReference}} 9 | {{#isClass}} 10 | {{>partials/class.memberpage}} 11 | {{/isClass}} 12 | {{/_splitReference}} 13 | {{^_splitReference}} 14 | {{#isClass}} 15 | {{>partials/class}} 16 | {{/isClass}} 17 | {{/_splitReference}} 18 | 19 | {{#isEnum}} 20 | {{>partials/enum}} 21 | {{/isEnum}} 22 | {{>partials/customMREFContent}} 23 | -------------------------------------------------------------------------------- /templates/default/Redirection.html.primary.tmpl: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /templates/default/RestApi.extension.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | /** 5 | * This method will be called at the start of exports.transform in RestApi.html.primary.js 6 | */ 7 | exports.preTransform = function (model) { 8 | return model; 9 | } 10 | 11 | /** 12 | * This method will be called at the end of exports.transform in RestApi.html.primary.js 13 | */ 14 | exports.postTransform = function (model) { 15 | return model; 16 | } 17 | -------------------------------------------------------------------------------- /templates/default/RestApi.html.primary.tmpl: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | {{!master(layout/_master.tmpl)}} 3 | {{>partials/rest}} 4 | -------------------------------------------------------------------------------- /templates/default/UniversalReference.extension.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | /** 5 | * This method will be called at the start of exports.transform in UniversalReference.html.primary.js 6 | */ 7 | exports.preTransform = function (model) { 8 | return model; 9 | } 10 | 11 | /** 12 | * This method will be called at the end of exports.transform in UniversalReference.html.primary.js 13 | */ 14 | exports.postTransform = function (model) { 15 | return model; 16 | } 17 | -------------------------------------------------------------------------------- /templates/default/UniversalReference.html.primary.tmpl: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | {{!master(layout/_master.tmpl)}} 3 | 4 | {{#isNamespace}} 5 | {{>partials/uref/namespace}} 6 | {{/isNamespace}} 7 | {{#isClass}} 8 | {{>partials/uref/class}} 9 | {{/isClass}} 10 | {{#isEnum}} 11 | {{>partials/enum}} 12 | {{/isEnum}} 13 | -------------------------------------------------------------------------------- /templates/default/conceptual.extension.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | /** 5 | * This method will be called at the start of exports.transform in conceptual.html.primary.js 6 | */ 7 | exports.preTransform = function (model) { 8 | return model; 9 | } 10 | 11 | /** 12 | * This method will be called at the end of exports.transform in conceptual.html.primary.js 13 | */ 14 | exports.postTransform = function (model) { 15 | return model; 16 | } 17 | -------------------------------------------------------------------------------- /templates/default/conceptual.html.primary.tmpl: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | {{!master(layout/_master.tmpl)}} 3 | {{{rawTitle}}} 4 | {{{conceptual}}} 5 | -------------------------------------------------------------------------------- /templates/default/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/templates/default/favicon.ico -------------------------------------------------------------------------------- /templates/default/partials/breadcrumb.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | 10 | -------------------------------------------------------------------------------- /templates/default/partials/customMREFContent.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | {{!Add your own custom template for the content for ManagedReference here}} 3 | {{#_splitReference}} 4 | {{#isCollection}} 5 | {{>partials/collection}} 6 | {{/isCollection}} 7 | {{#isItem}} 8 | {{>partials/item}} 9 | {{/isItem}} 10 | {{/_splitReference}} 11 | -------------------------------------------------------------------------------- /templates/default/partials/dd-li.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{#items}} 2 |
  • {{name}}
  • 3 | {{/items}} 4 | -------------------------------------------------------------------------------- /templates/default/partials/footer.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 |
    4 |
    5 | 14 |
    15 | -------------------------------------------------------------------------------- /templates/default/partials/item.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | {{>partials/class.header}} 4 | -------------------------------------------------------------------------------- /templates/default/partials/logo.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /templates/default/partials/namespace.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 |

    {{>partials/title}}

    4 |
    {{{summary}}}
    5 |
    {{{conceptual}}}
    6 |
    {{{remarks}}}
    7 | {{#children}} 8 |

    {{>partials/namespaceSubtitle}}

    9 | {{#children}} 10 |

    11 |
    {{{summary}}}
    12 | {{/children}} 13 | {{/children}} 14 | -------------------------------------------------------------------------------- /templates/default/partials/scripts.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /templates/default/partials/searchResults.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 |
    4 |
    {{__global.searchResults}}
    5 |
    6 |

    7 |
    8 |
      9 |
      10 | -------------------------------------------------------------------------------- /templates/default/partials/toc.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | 9 | -------------------------------------------------------------------------------- /templates/default/partials/uref/inheritance.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{#inheritance}} 2 | {{>partials/uref/inheritance}} 3 | {{/inheritance}} 4 |
      {{{type.specName.0.value}}}
      5 | -------------------------------------------------------------------------------- /templates/default/src/docfx.vendor.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | require('@default/bootstrap/dist/css/bootstrap.css') 5 | require('@default/highlight.js/styles/github.css') 6 | 7 | window.$ = window.jQuery = require('jquery') 8 | 9 | require('@default/bootstrap') 10 | require('@default/twbs-pagination') 11 | require('@default/mark.js/src/jquery') 12 | 13 | const AnchorJS = require('@default/anchor-js') 14 | window.anchors = new AnchorJS() 15 | 16 | window.hljs = require('@default/highlight.js') 17 | require('@default/url/src/url.js') 18 | -------------------------------------------------------------------------------- /templates/default/styles/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/templates/default/styles/main.css -------------------------------------------------------------------------------- /templates/default/styles/main.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | -------------------------------------------------------------------------------- /templates/default/toc.extension.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | /** 5 | * This method will be called at the start of exports.transform in toc.html.js and toc.json.js 6 | */ 7 | exports.preTransform = function (model) { 8 | return model; 9 | } 10 | 11 | /** 12 | * This method will be called at the end of exports.transform in toc.html.js and toc.json.js 13 | */ 14 | exports.postTransform = function (model) { 15 | return model; 16 | } 17 | -------------------------------------------------------------------------------- /templates/default/toc.json.tmpl: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | {{{content}}} 4 | -------------------------------------------------------------------------------- /templates/modern/ApiPage.html.primary.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | exports.transform = function (model) { 5 | return model; 6 | } 7 | -------------------------------------------------------------------------------- /templates/modern/ApiPage.html.primary.tmpl: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | {{!master(layout/_master.tmpl)}} 3 | 4 | {{{content}}} 5 | -------------------------------------------------------------------------------- /templates/modern/partials/collection.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | {{>partials/class}} 4 | -------------------------------------------------------------------------------- /templates/modern/partials/customMREFContent.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | {{!Add your own custom template for the content for ManagedReference here}} 3 | {{#_splitReference}} 4 | {{#isCollection}} 5 | {{>partials/collection}} 6 | {{/isCollection}} 7 | {{#isItem}} 8 | {{>partials/item}} 9 | {{/isItem}} 10 | {{/_splitReference}} 11 | -------------------------------------------------------------------------------- /templates/modern/partials/enum.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | {{>partials/class.header}} 4 | 5 | {{#seealso.0}} 6 |

      {{__global.seealso}}

      7 |
      8 | {{/seealso.0}} 9 | {{#seealso}} 10 | {{#isCref}} 11 |
      {{{type.specName.0.value}}}
      12 | {{/isCref}} 13 | {{^isCref}} 14 |
      {{{url}}}
      15 | {{/isCref}} 16 | {{/seealso}} 17 | {{#seealso.0}} 18 |
      19 | {{/seealso.0}} 20 | -------------------------------------------------------------------------------- /templates/modern/partials/item.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | {{>partials/class.header}} 4 | -------------------------------------------------------------------------------- /templates/modern/partials/namespace.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 |

      {{>partials/title}}

      4 |
      {{{summary}}}
      5 |
      {{{conceptual}}}
      6 |
      {{{remarks}}}
      7 | 8 | {{#children}} 9 |

      {{>partials/namespaceSubtitle}}

      10 | {{#children}} 11 |
      12 |
      13 |
      {{{summary}}}
      14 |
      15 | {{/children}} 16 | {{/children}} 17 | -------------------------------------------------------------------------------- /templates/modern/public/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/templates/modern/public/main.css -------------------------------------------------------------------------------- /templates/modern/public/main.js: -------------------------------------------------------------------------------- 1 | export default {} 2 | -------------------------------------------------------------------------------- /templates/modern/src/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the .NET Foundation under one or more agreements. 3 | * The .NET Foundation licenses this file to you under the MIT license. 4 | */ 5 | 6 | export default {} 7 | -------------------------------------------------------------------------------- /templates/modern/src/mixins.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the .NET Foundation under one or more agreements. 3 | * The .NET Foundation licenses this file to you under the MIT license. 4 | */ 5 | 6 | @mixin adjust-icon { 7 | font-family: bootstrap-icons; 8 | position: relative; 9 | margin-right: 0.5em; 10 | top: 0.2em; 11 | font-size: 1.25em; 12 | font-weight: normal; 13 | } 14 | 15 | @mixin underline-on-hover { 16 | text-decoration: none; 17 | 18 | &:hover, &:focus { 19 | text-decoration: underline; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /templates/modern/src/search.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the .NET Foundation under one or more agreements. 3 | * The .NET Foundation licenses this file to you under the MIT license. 4 | */ 5 | 6 | @use "bootstrap/scss/bootstrap"; 7 | 8 | #search-results { 9 | line-height: 1.8; 10 | 11 | >.search-list { 12 | font-size: .9em; 13 | color: bootstrap.$secondary; 14 | } 15 | 16 | >.sr-items { 17 | flex: 1; 18 | 19 | .sr-item { 20 | margin-bottom: 1.5em; 21 | 22 | >.item-title { 23 | font-size: x-large; 24 | } 25 | 26 | >.item-href { 27 | color: #093; 28 | font-size: small; 29 | } 30 | 31 | >.item-brief { 32 | font-size: small; 33 | } 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /templates/statictoc/partials/dd-li.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{#items}} 2 |
    • {{name}}
    • 3 | {{/items}} 4 | -------------------------------------------------------------------------------- /templates/statictoc/partials/li.tmpl.partial: -------------------------------------------------------------------------------- 1 | {{!Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license.}} 2 | 3 | 21 | -------------------------------------------------------------------------------- /templates/statictoc/toc.tmpl.js: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | exports.getOptions = function (model) { 4 | return { 5 | isShared: true 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /templates/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "removeComments": true, 4 | "resolveJsonModule": true, 5 | "esModuleInterop": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = false 3 | 4 | [*.cs] 5 | csharp_style_unused_value_expression_statement_preference = discard_variable:silent # IDE0058: Remove unnecessary expression value 6 | csharp_style_unused_value_assignment_preference = discard_variable:silent # IDE0059: Remove unnecessary value assignment 7 | 8 | dotnet_diagnostic.CA1816.severity = none # CA1816: Call GC.SuppressFinalize correctly 9 | dotnet_diagnostic.CA1861.severity = none # CA1861: Avoid constant arrays as arguments 10 | dotnet_diagnostic.CA1869.severity = none # CA1869: Cache and reuse 'JsonSerializerOptions' instances 11 | 12 | dotnet_diagnostic.SYSLIB1045.severity = silent # SYSLIB1045: Convert to 'GeneratedRegexAttribute'. 13 | -------------------------------------------------------------------------------- /test/Docfx.Build.Common.Tests/Docfx.Build.Common.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/Docfx.Build.ManagedReference.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/mref/FileWithNoContent.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Build.ManagedReference.Tests/TestData/mref/FileWithNoContent.yml -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/mref/Namespace1.Class1`2.#ctor.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: Namespace1.Class1`2.#ctor 4 | commentId: M:Class1`2.#ctor 5 | id: '#ctor' 6 | parent: Class1`2 7 | langs: 8 | - csharp 9 | - vb 10 | name: Class1() 11 | nameWithType: Class1.Class1() 12 | fullName: Namespace1.Class1.Class1() 13 | type: Constructor 14 | assemblies: 15 | - TestLibrary 16 | namespace: Namespace1 17 | summary: "\nDefault constructor.\n" 18 | example: [] 19 | syntax: 20 | content: public Class1() 21 | content.vb: Public Sub New 22 | overload: Namespace1.Class1`2.#ctor* 23 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/mref/System.String.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: System.String 4 | langs: 5 | - cpp 6 | - csharp 7 | - fsharp 8 | - vb 9 | syntax: 10 | content: public sealed class String 11 | content.vb: Public NotInheritable Class String 12 | content.cpp: public ref class String sealed 13 | content.fsharp: type String 14 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.default.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "CatLibrary.Cat`2.#ctor" 3 | summary: Overwrite summary 4 | --- 5 | 6 | Overwrite content -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.invalid.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "CatLibrary.Cat`2.#ctor" 3 | children: *content 4 | --- 5 | 6 | Overwrite content -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.invalid.ref.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: System.String 3 | summary: *content 4 | --- 5 | 6 | This is overwrite summary for invalid xref and @invalidRef. 7 | 8 | Another ref -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.multi.uid.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: CatLibrary.Cat`2 3 | summary: Overwrite summary 4 | --- 5 | 6 | Overwrite content1 7 | 8 | --- 9 | uid: CatLibrary.Cat`2 10 | summary: *content 11 | --- 12 | 13 | Overwrite "content2" 14 | 15 | --- 16 | uid: CatLibrary.Cat`2 17 | not_defined_property: *content 18 | --- 19 | 20 | Overwrite 'content3' -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.not.predefined.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: CatLibrary.Cat`2 3 | not_defined_property: *content 4 | --- 5 | 6 | Overwrite content 7 | 8 | --- 9 | uid: "CatLibrary.Cat`2.#ctor" 10 | not_defined_property: *content 11 | --- 12 | 13 | Overwrite content -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.overload.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "CatLibrary.Cat`2.#ctor*" 3 | summary: Overwrite summary 4 | --- 5 | 6 | Overwrite content 7 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.parameters.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: CatLibrary.Cat`2.CatLibrary#IAnimal#Eat``1(``0) 3 | syntax: 4 | parameters: 5 | - id: a 6 | description: The overwritten description for a 7 | typeParameters: 8 | - id: Tool 9 | description: *content 10 | --- 11 | 12 | This is overwritten type parameters 13 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.remarks.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "CatLibrary.Cat`2.#ctor(`0)" 3 | remarks: *content 4 | --- 5 | 6 | Remarks content 7 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/overwrite/mref.overwrite.simple.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: CatLibrary.Cat`2 3 | summary: *content 4 | --- 5 | 6 | Overwrite content 7 | -------------------------------------------------------------------------------- /test/Docfx.Build.ManagedReference.Tests/TestData/template/ManagedReference.html.tmpl: -------------------------------------------------------------------------------- 1 | {{{summary}}}{{{remarks}}} -------------------------------------------------------------------------------- /test/Docfx.Build.OverwriteDocuments.Tests/Docfx.Build.OverwriteDocuments.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.default.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | summary: Overwrite summary 4 | --- 5 | 6 | Overwrite content 7 | 8 | --- 9 | uid: another_uid_has_nothing_to_do_with_rest 10 | summary: [] 11 | --- 12 | Hello -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.invalid.links.first.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | summary: *content 4 | --- 5 | 6 | Summary content [summary](a.md) 7 | 8 | --- 9 | uid: graph.windows.net/myorganization/Contacts/1.0 10 | remarks: *content 11 | --- 12 | 13 | Remarks content [remarks](b.md) -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.invalid.links.second.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | --- 4 | 5 | Conceptual content [Conceptual](a.md) 6 | 7 | [Conceptual](a.md) 8 | 9 | --- 10 | uid: graph.windows.net/myorganization/Contacts/2.0 11 | --- 12 | 13 | Another uid content [Another](a.md) -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.invalid.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | children: *content 4 | --- 5 | 6 | Overwrite content -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.multi.uid.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | summary: Overwrite summary 4 | --- 5 | 6 | Overwrite content1 7 | 8 | --- 9 | uid: graph.windows.net/myorganization/Contacts/1.0 10 | summary: *content 11 | --- 12 | 13 | Overwrite "content2" 14 | 15 | --- 16 | uid: graph.windows.net/myorganization/Contacts/1.0 17 | not_defined_property: *content 18 | --- 19 | 20 | Overwrite 'content3' -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.not.predefined.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | not_defined_property: *content 4 | --- 5 | 6 | Overwrite content -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.remarks.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | remarks: *content 4 | --- 5 | 6 | Remarks content 7 | -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.simple.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | summary: *content 4 | --- 5 | 6 | Overwrite content 7 | -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.tags.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0/tag/contact 3 | description: *content 4 | --- 5 | 6 | Overwrite *description* content 7 | 8 | --- 9 | uid: graph.windows.net/myorganization/Contacts/1.0/tag/pet store 10 | --- 11 | 12 | Overwrite **conceptual** content -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/overwrite/rest.overwrite.unmergeable.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: graph.windows.net/myorganization/Contacts/1.0 3 | htmlId: *content 4 | --- 5 | 6 | Overwrite content -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/swagger/externalLoopRef_B.json: -------------------------------------------------------------------------------- 1 | { 2 | "swagger": "2.0", 3 | "info": { 4 | "title": "Contacts", 5 | "version": "2.0.0" 6 | }, 7 | "paths": {}, 8 | "host": "graph.windows.net", 9 | "basePath": "/myorganization", 10 | "definitions": { 11 | "Provision%ing|Error": { 12 | "properties": { 13 | "errorDetail": { 14 | "type": "array", 15 | "items": { 16 | "$ref": "externalLoopRef_A.json#/definitions/contact" 17 | } 18 | } 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.Tests/TestData/swagger/refWithRefInside.json: -------------------------------------------------------------------------------- 1 | { 2 | "parameters": { 3 | "in": "body", 4 | "name": "body", 5 | "description": "Pet object that needs to be added to the store", 6 | "required": true, 7 | "schema": { 8 | "$ref": "#/definitions/Tag" 9 | } 10 | }, 11 | "definitions": { 12 | "Tag": { 13 | "type": "object", 14 | "properties": { 15 | "id": { 16 | "type": "integer", 17 | "format": "int64" 18 | }, 19 | "name": { 20 | "type": "string" 21 | } 22 | }, 23 | "xml": { 24 | "name": "Tag" 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.WithPlugins.Tests/TestData/swagger/toc.yml: -------------------------------------------------------------------------------- 1 | - name: petstore reference 2 | href: petstore.json -------------------------------------------------------------------------------- /test/Docfx.Build.RestApi.WithPlugins.Tests/TestData/template/RestApi.html.tmpl: -------------------------------------------------------------------------------- 1 | {{{summary}}} -------------------------------------------------------------------------------- /test/Docfx.Build.SchemaDriven.Tests/Docfx.Build.SchemaDriven.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/Docfx.Build.SchemaDriven.Tests/TestData/inputs/EmptyUidReference.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: EmptyUidReference 4 | children: 5 | - '' -------------------------------------------------------------------------------- /test/Docfx.Build.SchemaDriven.Tests/TestData/inputs/FragmentsValidation.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:FragmentsValidation 2 | uid: management.azure.com.advisor.fragmentsValidation 3 | name: FragmentsValidation 4 | operations: 5 | - id: management.azure.com.advisor.fragmentsValidation.create 6 | -------------------------------------------------------------------------------- /test/Docfx.Build.SchemaDriven.Tests/TestData/inputs/Suppressions.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:RESTMixedTest 2 | uid: management.azure.com.advisor.suppressions 3 | name: Suppressions 4 | operations: 5 | - id: management.azure.com.advisor.suppressions.create 6 | definitions: 7 | - name: Application 1 8 | kind: object 9 | properties: 10 | - name: id 11 | description: this will be overwritten in MarkdownFragments 12 | types: 13 | - uid: string 14 | - name: displayName 15 | types: 16 | - uid: string 17 | - name: CloudError 18 | kind: object 19 | properties: 20 | - name: error 21 | types: 22 | - uid: CloudErrorBody -------------------------------------------------------------------------------- /test/Docfx.Build.Tests/PostProcessors/Data/manifest_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | { 4 | "type": "Conceptual", 5 | "source_relative_path": "index.md", 6 | "output": { 7 | ".html": { 8 | "relative_path": "index.html" 9 | }, 10 | ".mta.json": { 11 | "relative_path": "index.mta.json" 12 | } 13 | }, 14 | "is_incremental": true 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /test/Docfx.Build.Tests/TestData/xrefmap.json: -------------------------------------------------------------------------------- 1 | { 2 | "references": [ 3 | { 4 | "fullName": "str", 5 | "href": "https://docs.python.org/3.5/library/stdtypes.html#str", 6 | "name": "str", 7 | "uid": "str" 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /test/Docfx.Build.Tests/TestData/xrefmap.json.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Build.Tests/TestData/xrefmap.json.gz -------------------------------------------------------------------------------- /test/Docfx.Build.Tests/TestData/xrefmap.yml: -------------------------------------------------------------------------------- 1 | references: 2 | - fullName: str 3 | href: https://docs.python.org/3.5/library/stdtypes.html#str 4 | name: str 5 | uid: str -------------------------------------------------------------------------------- /test/Docfx.Build.Tests/TestData/xrefmap.yml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Build.Tests/TestData/xrefmap.yml.gz -------------------------------------------------------------------------------- /test/Docfx.Build.Tests/tmpl/tmpl1/sub/file1: -------------------------------------------------------------------------------- 1 | Override: This is file inside a subfolder -------------------------------------------------------------------------------- /test/Docfx.Build.Tests/tmpl/tmpl1/tmpl1.dot.$: -------------------------------------------------------------------------------- 1 | Override: This is file with complex filename characters -------------------------------------------------------------------------------- /test/Docfx.Build.UniversalReference.Tests/Docfx.Build.UniversalReference.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/Docfx.Build.UniversalReference.Tests/TestData/overwrite/cntk.core.Value.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: cntk.core.Value 3 | summary: summary of cntk.core.Value 4 | --- 5 | **conceptual** of `cntk.core.Value` 6 | -------------------------------------------------------------------------------- /test/Docfx.Build.UniversalReference.Tests/TestData/yml/invalid.yml: -------------------------------------------------------------------------------- 1 | #YamlMime:UniversalReference 2 | api_name: [] 3 | items: 4 | - _type: module 5 | children: 6 | - cntk.debugging.dump_function 7 | - cntk.debugging.dump_signature 8 | fullName: cntk.debugging 9 | langs: 10 | - python 11 | module: cntk.debugging 12 | name: debugging 13 | source: 14 | id: debugging 15 | path: cntk/debugging/__init__.py 16 | remote: 17 | branch: master 18 | path: cntk/debugging/__init__.py 19 | repo: https://github.com/Microsoft/CNTK 20 | startLine: 0 21 | type: Namespace 22 | uid: "" -------------------------------------------------------------------------------- /test/Docfx.Common.Tests/Docfx.Common.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/Docfx.Dotnet.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestData/BaseClassForTestClass1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Dotnet.Tests/TestData/BaseClassForTestClass1.dll -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestData/CatLibrary.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Dotnet.Tests/TestData/CatLibrary.dll -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestData/CatLibrary2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Dotnet.Tests/TestData/CatLibrary2.dll -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestData/TupleLibrary.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Dotnet.Tests/TestData/TupleLibrary.dll -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestData/filterconfig.yml: -------------------------------------------------------------------------------- 1 | apiRules: 2 | - exclude: 3 | uidRegex: ^Test1\.Test2$ 4 | type: Namespace 5 | - include: 6 | uidRegex: ^Test1\.Class3\.Class4$ 7 | type: Type 8 | - include: 9 | uidRegex: ^Test1\.Class3\.Func2.*$ 10 | type: Member 11 | - exclude: 12 | uidRegex: ^Test1\.Class3.*$ 13 | type: Member 14 | - exclude: 15 | hasAttribute: 16 | uid: System.ComponentModel.EditorBrowsableAttribute 17 | ctorArguments: 18 | - System.ComponentModel.EditorBrowsableState.Never 19 | - exclude: 20 | hasAttribute: 21 | uid: System.ObsoleteAttribute 22 | -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestData/filterconfig_attribute.yml: -------------------------------------------------------------------------------- 1 | attributeRules: 2 | - exclude: 3 | uidRegex: ^System\.Runtime\.InteropServices\.ComVisibleAttribute$ 4 | type: Type -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestData/filterconfig_docs_sample.yml: -------------------------------------------------------------------------------- 1 | apiRules: 2 | - include: 3 | uidRegex: ^Microsoft\.DevDiv\.SpecialCase 4 | - exclude: 5 | uidRegex: ^Microsoft\.DevDiv 6 | -------------------------------------------------------------------------------- /test/Docfx.Dotnet.Tests/TestDataReferences/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/Docfx.Dotnet.Tests/TestDataReferences/System.ValueTuple.dll -------------------------------------------------------------------------------- /test/Docfx.Glob.Tests/Docfx.Glob.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/Docfx.MarkdigEngine.Extensions.Tests/Docfx.MarkdigEngine.Extensions.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/Docfx.MarkdigEngine.Tests/Docfx.MarkdigEngine.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /test/Docfx.MarkdigEngine.Tests/TestUtility/TestLoggerListener.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Common; 5 | 6 | namespace Docfx.MarkdigEngine.Tests; 7 | 8 | internal class TestLoggerListener : ILoggerListener 9 | { 10 | public List Items { get; } = []; 11 | 12 | public void Dispose() 13 | { 14 | } 15 | 16 | public void Flush() 17 | { 18 | } 19 | 20 | public void WriteLine(ILogItem item) 21 | { 22 | Items.Add(item); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/Docfx.Tests.Common/Docfx.Tests.Common.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/ModuleInitializer.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using System.Runtime.CompilerServices; 5 | using DiffEngine; 6 | 7 | namespace Docfx.Tests; 8 | 9 | public static class ModuleInitializer 10 | { 11 | [ModuleInitializer] 12 | public static void Initialize() 13 | { 14 | BuildServerDetector.Detected = Environment.GetEnvironmentVariable("BUILD_SERVER") == "true"; 15 | VerifyDiffPlex.Initialize(VerifyTests.DiffPlex.OutputType.Compact); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.Extensions/toc.json.view.verified.json: -------------------------------------------------------------------------------- 1 | { 2 | "content": "{\"items\":[{\"name\":\"Api Documentation\",\"href\":\"api/MyExample.html\",\"tocHref\":\"api/toc.html\",\"topicHref\":\"api/MyExample.html\",\"topicUid\":\"MyExample\"}]}" 3 | } -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.Extensions/toc.verified.json: -------------------------------------------------------------------------------- 1 |  2 | {"items":[{"name":"Api Documentation","href":"api/MyExample.html","tocHref":"api/toc.html","topicHref":"api/MyExample.html","topicUid":"MyExample"}]} 3 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.Seed/restapi/toc.json.view.verified.json: -------------------------------------------------------------------------------- 1 | { 2 | "content": "{\"order\":100,\"items\":[{\"name\":\"Pet Store API\",\"href\":\"petstore.html\",\"topicHref\":\"petstore.html\"},{\"name\":\"Contacts API\",\"href\":\"contacts.html\",\"topicHref\":\"contacts.html\"}],\"pdf\":true,\"pdfTocPage\":true}" 3 | } -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.Seed/restapi/toc.verified.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": 100, 3 | "items": [ 4 | { 5 | "name": "Pet Store API", 6 | "href": "petstore.html", 7 | "topicHref": "petstore.html" 8 | }, 9 | { 10 | "name": "Contacts API", 11 | "href": "contacts.html", 12 | "topicHref": "contacts.html" 13 | } 14 | ], 15 | "pdf": true, 16 | "pdfTocPage": true 17 | } -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromAssembly.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace BuildFromAssembly 2 | 3 | ### Classes 4 | 5 | [Class1](BuildFromAssembly.Class1.md) 6 | 7 | This is a test class. 8 | 9 | ### Structs 10 | 11 | [Issue5432](BuildFromAssembly.Issue5432.md) 12 | 13 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromCSharpSourceCode.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace BuildFromCSharpSourceCode 2 | 3 | ### Classes 4 | 5 | [CSharp](BuildFromCSharpSourceCode.CSharp.md) 6 | 7 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromProject.Class1.IIssue8948.verified.md: -------------------------------------------------------------------------------- 1 | # Interface Class1.IIssue8948 2 | 3 | Namespace: [BuildFromProject](BuildFromProject.md) 4 | Assembly: BuildFromProject.dll 5 | 6 | ```csharp 7 | public interface Class1.IIssue8948 8 | ``` 9 | 10 | ## Methods 11 | 12 | ### DoNothing\(\) 13 | 14 | Does nothing with generic type T. 15 | 16 | ```csharp 17 | void DoNothing() 18 | ``` 19 | 20 | #### Type Parameters 21 | 22 | `T` 23 | 24 | A generic type. 25 | 26 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromProject.IInheritdoc.verified.md: -------------------------------------------------------------------------------- 1 | # Interface IInheritdoc 2 | 3 | Namespace: [BuildFromProject](BuildFromProject.md) 4 | Assembly: BuildFromProject.dll 5 | 6 | ```csharp 7 | public interface IInheritdoc 8 | ``` 9 | 10 | ## Methods 11 | 12 | ### Issue7629\(\) 13 | 14 | This method should do something... 15 | 16 | ```csharp 17 | void Issue7629() 18 | ``` 19 | 20 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromProject.Issue8540.A.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace BuildFromProject.Issue8540.A 2 | 3 | ### Classes 4 | 5 | [A](BuildFromProject.Issue8540.A.A.md) 6 | 7 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromProject.Issue8540.B.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace BuildFromProject.Issue8540.B 2 | 3 | ### Classes 4 | 5 | [B](BuildFromProject.Issue8540.B.B.md) 6 | 7 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromProject.Issue8540.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace BuildFromProject.Issue8540 2 | 3 | ### Namespaces 4 | 5 | [BuildFromProject.Issue8540.A](BuildFromProject.Issue8540.A.md) 6 | 7 | [BuildFromProject.Issue8540.B](BuildFromProject.Issue8540.B.md) 8 | 9 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/BuildFromVBSourceCode.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace BuildFromVBSourceCode 2 | 3 | ### Classes 4 | 5 | [BaseClass1](BuildFromVBSourceCode.BaseClass1.md) 6 | 7 | This is the BaseClass 8 | 9 | [Class1](BuildFromVBSourceCode.Class1.md) 10 | 11 | This is summary from vb class... 12 | 13 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/CatLibrary.Core.ContainersRefType.ColorType.verified.md: -------------------------------------------------------------------------------- 1 | # Enum ContainersRefType.ColorType 2 | 3 | Namespace: [CatLibrary.Core](CatLibrary.Core.md) 4 | Assembly: CatLibrary.Core.dll 5 | 6 | Enumeration ColorType 7 | 8 | ```csharp 9 | public enum ContainersRefType.ColorType 10 | ``` 11 | 12 | ## Fields 13 | 14 | `Red = 0` 15 | 16 | red 17 | 18 | 19 | 20 | `Blue = 1` 21 | 22 | blue 23 | 24 | 25 | 26 | `Yellow = 2` 27 | 28 | yellow 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/CatLibrary.Core.ContainersRefType.ContainersRefTypeChildInterface.verified.md: -------------------------------------------------------------------------------- 1 | # Interface ContainersRefType.ContainersRefTypeChildInterface 2 | 3 | Namespace: [CatLibrary.Core](CatLibrary.Core.md) 4 | Assembly: CatLibrary.Core.dll 5 | 6 | ```csharp 7 | public interface ContainersRefType.ContainersRefTypeChildInterface 8 | ``` 9 | 10 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/CatLibrary.Core.ContainersRefType.ContainersRefTypeDelegate.verified.md: -------------------------------------------------------------------------------- 1 | # Delegate ContainersRefType.ContainersRefTypeDelegate 2 | 3 | Namespace: [CatLibrary.Core](CatLibrary.Core.md) 4 | Assembly: CatLibrary.Core.dll 5 | 6 | Delegate ContainersRefTypeDelegate 7 | 8 | ```csharp 9 | public delegate void ContainersRefType.ContainersRefTypeDelegate() 10 | ``` 11 | 12 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/CatLibrary.MRefNormalDelegate.verified.md: -------------------------------------------------------------------------------- 1 | # Delegate MRefNormalDelegate 2 | 3 | Namespace: [CatLibrary](CatLibrary.md) 4 | Assembly: CatLibrary.dll 5 | 6 | Delegate in the namespace 7 | 8 | ```csharp 9 | public delegate void MRefNormalDelegate(List pics, out string name) 10 | ``` 11 | 12 | #### Parameters 13 | 14 | `pics` [List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\> 15 | 16 | a name list of pictures. 17 | 18 | `name` [string](https://learn.microsoft.com/dotnet/api/system.string) 19 | 20 | give out the needed name. 21 | 22 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/MRef.Demo.Enumeration.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace MRef.Demo.Enumeration 2 | 3 | ### Enums 4 | 5 | [ColorType](MRef.Demo.Enumeration.ColorType.md) 6 | 7 | Enumeration ColorType 8 | 9 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/MRef.Demo.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace MRef.Demo 2 | 3 | ### Namespaces 4 | 5 | [MRef.Demo.Enumeration](MRef.Demo.Enumeration.md) 6 | 7 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/SamplesTest.SeedMarkdown/MRef.verified.md: -------------------------------------------------------------------------------- 1 | # Namespace MRef 2 | 3 | ### Namespaces 4 | 5 | [MRef.Demo](MRef.Demo.md) 6 | 7 | -------------------------------------------------------------------------------- /test/docfx.Snapshot.Tests/docfx.Snapshot.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net8.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/docfx.json_empty/docfx.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/docfx.json_invalid_format/docfx.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { } 3 | } -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/docfx.json_invalid_key/docfx.json: -------------------------------------------------------------------------------- 1 | { 2 | "invalid": {} 3 | } 4 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/docfx.json_metadata/docfx.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": [ 3 | { 4 | "src": [ 5 | { 6 | "files": [ "**/*.csproj" ], 7 | "exclude": [ "**/bin/**", "**/obj/**" ], // `exclude` is also relative to `src` 8 | "src": "../src" 9 | } 10 | ], 11 | "dest": "obj/docfx/api/dotnet" 12 | }, 13 | { 14 | "src": [ 15 | { 16 | "files": [ "**/*.js" ], 17 | "src": "../src" 18 | } 19 | ], 20 | "dest": "obj/docfx/api/js" // throw error when dest is not unique 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/docfx.json_metadata/docfxWithFilter.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": [ 3 | { 4 | "src": [ 5 | { 6 | "files": [ "**/*.csproj" ], 7 | "exclude": [ "**/bin/**", "**/obj/**" ], // `exclude` is also relative to `src` 8 | "src": "../src" 9 | } 10 | ], 11 | "dest": ".", 12 | "filter": "filter.yaml" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/filter.yaml.sample: -------------------------------------------------------------------------------- 1 | apiRules: 2 | - exclude: 3 | uidRegex: ^Foo\.Bar\. 4 | type: Member 5 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/multi-frameworks-test.csproj.sample.1: -------------------------------------------------------------------------------- 1 |  2 | 3 | net8.0;netstandard2.0 4 | true 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/ref.csproj.sample.1: -------------------------------------------------------------------------------- 1 |  2 | 3 | net8.0 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/template/plugins/Directory.Build.props: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/template/plugins/plugins.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | false 8 | false 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/template/plugins/plugins.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/docfx.Tests/Assets/template/plugins/plugins.dll -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/test.cs.sample.1: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Foo 5 | { 6 | public class Bar 7 | { 8 | public unsafe List FooBar(int[] arg1, byte* arg2, TArg arg3, List arg4) 9 | { 10 | return null; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/test.csproj.sample.1: -------------------------------------------------------------------------------- 1 |  2 | 3 | net8.0 4 | true 5 | 6 | 7 | 8 | ClassLibrary1 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/test.dll.sample.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnet/docfx/db31f42a632c1bfe2d71e7c2c1201c845c3c8ea7/test/docfx.Tests/Assets/test.dll.sample.1 -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/test.vb.sample.1: -------------------------------------------------------------------------------- 1 | Namespace Foo 2 | Public Class Bar 3 | Public Function FooBar(Of TArg)(arg1 As Integer(), arg2 As Byte, arg3 As TArg, arg4 As List(Of TArg())) As List(Of String) 4 | Return Nothing 5 | End Function 6 | End Class 7 | End Namespace -------------------------------------------------------------------------------- /test/docfx.Tests/Assets/test.vbproj.sample.1: -------------------------------------------------------------------------------- 1 |  2 | 3 | net8.0 4 | testVBproj1 5 | test.sample.1 6 | On 7 | Binary 8 | Off 9 | On 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.BuildJsonConfig.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_BuildJsonConfig(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.DocfxConfig.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_DocfxConfig(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.FileMapping.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_FileMapping(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.FileMetadataPairs.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_FileMetadataPairs(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.ListWithStringFallback.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_ListWithStringFallback(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.Manifest.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Plugins; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_Manifest(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.MergeJsonConfig.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_MergeJsonConfig(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.MetadataJsonConfig.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_MetadataJsonConfig(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.TocItemViewModel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.DataContracts.Common; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_TocItemViewModel(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/JsonSerializationTest.XRefMap.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Build.Engine; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class JsonSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void JsonSerializationTest_XRefMap(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateJsonRoundTrip(model); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/ApiPage/ApiPage.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ApiPage 2 | title: Class Class1 3 | body: 4 | - api1: Class Class1 5 | id: BuildFromAssembly_Class1 6 | metadata: 7 | uid: BuildFromAssembly.Class1 8 | commentId: T:BuildFromAssembly.Class1 9 | languageId: csharp 10 | metadata: 11 | description: This is a test class. 12 | listOfString: 13 | - aaa 14 | - bbb 15 | - ccc 16 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/ConfigFilterRule/filterconfig_01.yml: -------------------------------------------------------------------------------- 1 | apiRules: 2 | - exclude: 3 | uidRegex: Test1 4 | hasAttribute: 5 | ctorArguments: 6 | - System.ComponentModel.EditorBrowsableState.Never 7 | ctorNamedArguments: {} 8 | - exclude: 9 | uidRegex: Test2 10 | type: Type, Member 11 | hasAttribute: 12 | ctorArguments: 13 | - System.ComponentModel.EditorBrowsableState.Never 14 | ctorNamedArguments: {} 15 | attributeRules: [] 16 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/FileMapping/filemapping_01.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dummy", 3 | "files": [ 4 | "**/*.{md,yml}" 5 | ], 6 | "exclude": [ 7 | "_site/**", 8 | "obj/**" 9 | ], 10 | "src": "./src", 11 | "dest": "./dest", 12 | "group": "dummy", 13 | "rootTocPath": "dummy", 14 | "case": true, 15 | "noNegate": true, 16 | "noExpand": true, 17 | "noEscape": true, 18 | "noGlobStar": false, 19 | "dot": true 20 | } 21 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/FileMapping/filemapping_02.json: -------------------------------------------------------------------------------- 1 | "file1.md" 2 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/FileMapping/filemapping_03.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "files": [ "file1", "file2" ], 4 | "dest": "dest1" 5 | }, 6 | { 7 | "files": "file3", 8 | "dest": "dest2" 9 | }, 10 | { 11 | "files": [ "file4", "file5" ], 12 | "exclude": "file5", 13 | "src": "folder1" 14 | }, 15 | { 16 | "files": "Example.yml", 17 | "src": "v1.0", 18 | "dest": "v1.0/api", 19 | "group": "v1.0" 20 | }, 21 | { 22 | "files": "Example.yml", 23 | "src": "v2.0", 24 | "dest": "v2.0/api", 25 | "group": "v2.0" 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/FileMapping/filemapping_05.json: -------------------------------------------------------------------------------- 1 | [ 2 | "reference1.dll", 3 | { 4 | "files": [ "reference2.dll", "reference3.dll" ] 5 | }, 6 | "reference4.dll" 7 | ] 8 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/FileMetadataPairs/fileMetadataPairs_01.json: -------------------------------------------------------------------------------- 1 | { 2 | "priority": { 3 | "**.md": 2.5, 4 | "spec/**.md": 3 5 | }, 6 | "keywords": { 7 | "obj/docfx/**": [ 8 | "API", 9 | "Reference" 10 | ], 11 | "spec/**.md": [ 12 | "Spec", 13 | "Conceptual" 14 | ] 15 | }, 16 | "_noindex": { 17 | "articles/**/article.md": true 18 | }, 19 | "others": { 20 | "nested": { 21 | "null": null, 22 | "val": "dummy", 23 | "datetime": "2024-01-01:T00:00:00", 24 | "double": 1.2345, 25 | "array": [ 1, 2, 3, 4 ] 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/ListWithStringFallback/ListWithStringFallback_01.json: -------------------------------------------------------------------------------- 1 | "string_item1" 2 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/ListWithStringFallback/ListWithStringFallback_02.json: -------------------------------------------------------------------------------- 1 | [ 2 | "array_item_01", 3 | "array_item_02", 4 | "array_item_03" 5 | ] 6 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/ListWithStringFallback/ListWithStringFallback_03.json: -------------------------------------------------------------------------------- 1 | { 2 | "object_item_01": "1", 3 | "object_item_02": "2", 4 | "object_item_03": "3" 5 | } 6 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/ManagedReference/api.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: dummy1 4 | source: 5 | remote: 6 | path: dummy1.cs 7 | branch: main 8 | repo: https://github.com/dotnet/docfx 9 | - uid: dummy2 10 | source: 11 | remote: 12 | path: dummy2.cs 13 | branch: main 14 | repo: https://github.com/dotnet/docfx 15 | references: 16 | - uid: System.String 17 | name: string 18 | isExternal: true 19 | href: https://learn.microsoft.com/dotnet/api/system.string 20 | shouldSkipMarkup: false 21 | memberLayout: separatePages 22 | additionalMetadata1: 1 23 | additionalMetadata2: 2 24 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/MarkdownServiceProperties/markdownServiceProperties_02.json: -------------------------------------------------------------------------------- 1 | { 2 | "markdigExtensions": [ 3 | "FootNotes", 4 | // Comment1 5 | { "Emojis": "default" }, 6 | { "AutoIdentifiers": "default" }, 7 | { 8 | // Comment2 9 | "MediaLinks": { 10 | "width": "800", // Comment3 11 | "height": "400" 12 | } 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/MergeJsonConfig/mergeJsonConfig_01.json: -------------------------------------------------------------------------------- 1 | { 2 | "content": [ 3 | { 4 | "files": "*.yml", 5 | "src": "obj/netstandard2.0/api" 6 | }, 7 | { 8 | "files": "*.yml", 9 | "src": "obj/net8/api" 10 | } 11 | ], 12 | "globalMetadata": {}, 13 | "fileMetadata": { 14 | "platform": { 15 | "obj/netstandard2.0/api/*.yml": [ 16 | "netstandard2.0" 17 | ], 18 | "obj/net8/api/*.yml": [ 19 | "net8" 20 | ] 21 | } 22 | }, 23 | "dest": "obj/api", 24 | "tocMetadata": [] 25 | } 26 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/TocItemViewModel/Json/toc_01.json: -------------------------------------------------------------------------------- 1 | { 2 | "sorted": true, 3 | "items": [ 4 | ], 5 | "custom": [ 6 | { 7 | "prop1": true, 8 | "prop2": "dummy" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/TocItemViewModel/Yaml/toc_01.yml: -------------------------------------------------------------------------------- 1 | sorted: true 2 | items: [] 3 | custom: 4 | - prop1: "true" 5 | prop2: "dummy" 6 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/XRefMap/xrefmap_02.json: -------------------------------------------------------------------------------- 1 | { 2 | "sorted": true, 3 | "hrefUpdated": false, 4 | "baseUrl": "http://localhost", 5 | "redirections": [ 6 | { 7 | "uidPrefix": "dummy", 8 | "href": "dummy" 9 | } 10 | ], 11 | "references": [ 12 | { 13 | "dummy1": "dummy1", 14 | "uid": "dummy", 15 | "href": "dummy" 16 | } 17 | ], 18 | "dummy": "dummy" 19 | } 20 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/TestData/XRefMap/xrefmap_02.yml: -------------------------------------------------------------------------------- 1 | sorted: "true" 2 | hrefUpdated: "false" 3 | baseUrl: "http://localhost" 4 | redirections: 5 | - uidPrefix: "dummy" 6 | href: "dummy" 7 | references: 8 | - dummy1: "dummy1" 9 | uid: "dummy" 10 | href: "dummy" 11 | dummy: "dummy" 12 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/YamlSerializationTest.ManagedReference.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.DataContracts.ManagedReference; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class YamlSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void YamlSerializationTest_ManagedReference(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateYamlRoundTrip(model); 19 | ValidateYamlJsonRoundTrip(model); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/YamlSerializationTest.TocItemViewModel.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.DataContracts.Common; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class YamlSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void YamlSerializationTest_TocItemViewModel(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateYamlRoundTrip(model); 19 | ValidateYamlJsonRoundTrip(model); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/YamlSerializationTest.UniversalReference.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.DataContracts.UniversalReference; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class YamlSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void YamlSerializationTest_Universal(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateYamlRoundTrip(model); 19 | ValidateYamlJsonRoundTrip(model); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/docfx.Tests/SerializationTests/YamlSerializationTest.XRefMap.cs: -------------------------------------------------------------------------------- 1 | // Licensed to the .NET Foundation under one or more agreements. 2 | // The .NET Foundation licenses this file to you under the MIT license. 3 | 4 | using Docfx.Build.Engine; 5 | 6 | namespace docfx.Tests; 7 | 8 | public partial class YamlSerializationTest 9 | { 10 | [Theory] 11 | [TestData] 12 | public void YamlSerializationTest_XRefMap(string path) 13 | { 14 | // Arrange 15 | var model = TestData.Load(path); 16 | 17 | // Act/Assert 18 | ValidateYamlRoundTrip(model); 19 | ValidateYamlJsonRoundTrip(model); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/docfx.Tests/docfx.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /testEnvironments.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1", 3 | "environments": [ 4 | { 5 | "name": "WSL-Ubuntu", 6 | "type": "wsl", 7 | "wslDistribution": "Ubuntu" 8 | } 9 | ] 10 | } 11 | --------------------------------------------------------------------------------