DocFX

Static site generator for .NET API documentation. (by dotnet)

DocFX Alternatives

Similar projects and alternatives to DocFX

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better DocFX alternative or higher similarity.

Suggest an alternative to DocFX

Reviews and mentions

Posts with mentions or reviews of DocFX. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-06.
  • Library / Codebase Documentation - Multiple aggregated libraries - How to create? DocFx does not support this?
    5 projects | reddit.com/r/csharp | 6 Jan 2022
    We would really prefer to use a somewhat generic pre-made tool for this (such as DocFX) compared to rolling our own solution. We can roll our own solution... But would prefer not to so that we can minimize development and maintenance overhead.
  • CSharp Docuementation Site
    1 project | reddit.com/r/csharp | 28 Nov 2021
    i use docfx from microsoft to generate documentation for all my oss libraries.
  • dotnet-ci-pipelines
    3 projects | dev.to | 10 Nov 2021
    name: .NET Core # use https://marketplace.visualstudio.com/items?itemName=me-dutour-mathieu.vscode-github-actions to validate yml in vscode env: NUGET_PACKAGES_DIRECTORY: '.nupkg' RESHARPER_CLI_NAME: 'JetBrains.ReSharper.CommandLineTools.Unix' RESHARPER_CLI_VERSION: "2019.2.3" DOCKER_DRIVER: overlay CONTAINER_IMAGE: codeclimate/codeclimate CONTAINER_TAG: '0.85.2' rIds: ${{ secrets.rIds }} dotnetVersion: 3.1.102 on: pull_request: branches: - master push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - name: Setup .NET Core uses: actions/[email protected] with: dotnet-version: ${{ env.dotnetVersion}} - name: Build with dotnet run: | export DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet publish -c Release - name: Tests run: | cp MyProject.Repository.Test/Data/appSettings.gitlab.json MyProject.Repository.Test/Data/AppSettings.json dotnet test --logger "junit" /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput='./TestResults/' - name: Coverage Report run: | dotnet --version dotnet tool install dotnet-reportgenerator-globaltool --tool-path tools ./tools/reportgenerator "-reports:**/TestResults/coverage.opencover.xml;" "-targetdir:Reports" -reportTypes:TextSummary; ./tools/reportgenerator "-reports:**/TestResults/coverage.opencover.xml;" "-targetdir:Reports" -reportTypes:Html; ./tools/reportgenerator "-reports:**/TestResults/coverage.opencover.xml;" "-targetdir:Reports" -reportTypes:Badges; cat ./Reports/Summary.txt - uses: actions/[email protected] with: name: CodeCoverage path: Reports - name: Resharper Code Quality run: | # apt update && apt install -y curl zip unzip curl -LO "https://download.jetbrains.com/resharper/ReSharperUltimate.$RESHARPER_CLI_VERSION/$RESHARPER_CLI_NAME.$RESHARPER_CLI_VERSION.zip" unzip -q $RESHARPER_CLI_NAME.$RESHARPER_CLI_VERSION.zip -d "resharper" mkdir -p CodeQuality files=(*.sln) sh ./resharper/dupfinder.sh "${files[0]}" --output=CodeQuality/dupfinderReport.html --format=Html sh ./resharper/inspectcode.sh "${files[0]}" --output=CodeQuality/inspectcodeReport.html --format=Html - uses: actions/[email protected] with: name: CodeQuality path: CodeQuality - name: prerelease if: ${{ env.rIds }} != '' run: | echo 'build, obfuscate, and release' dotnet tool install Obfuscar.GlobalTool --tool-path tools --version 2.2.28 bash scripts/extractRelease.sh export rIds=${{ env.rIds }} bash ./scripts/pipeline.sh bash ./scripts/finalRelease.sh - name: upload release uses: actions/[email protected] if: ${{ env.rIds }} != '' with: name: Release_unix path: Release/post build-win: runs-on: windows-latest steps: - uses: actions/[email protected] - name: Setup .NET Core uses: actions/[email protected] with: dotnet-version: ${{ env.dotnetVersion}} - name: Build with dotnet run: | set DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet publish -c Release - name: Tests run: | copy MyProject.Repository.Test/Data/appSettings.gitlab.json MyProject.Repository.Test/Data/AppSettings.json dotnet test --logger "junit" /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput='.\TestResults\' - name: prerelease if: ${{ env.rIds }} != '' run: | echo "build, obfuscate, and release" dotnet tool install Obfuscar.GlobalTool --tool-path tools --version 2.2.28 .\scripts\extractRelease.cmd set rIds=$env:rIds .\scripts\pipeline.cmd .\scripts\finalRelease.cmd - name: upload release uses: actions/[email protected] if: ${{ env.rIds }} != '' with: name: Release_win path: Release\post unit_test_db_mssql: runs-on: ubuntu-latest # Service containers to run with `runner-job` services: # Label used to access the service container localhost_mysql: # Docker Hub image image: mcr.microsoft.com/mssql/server:2019-latest # ports: # Opens tcp port 6379 on the host and service container - 1433:1433 env: GIT_SUBMODULE_STRATEGY: recursive ACCEPT_EULA: Y SA_PASSWORD: yourStrong(!)Password steps: - uses: actions/[email protected] - name: Setup .NET Core uses: actions/[email protected] with: dotnet-version: ${{ env.dotnetVersion}} - name: enabledb run: cp ./MyProject.Repository.Test/Data/appSettings.bitbucket.mssql.json ./MyProject.Repository.Test/Data/AppSettings.json - name: Tests run: | cd MyProject.Repository.Test dotnet test --logger "junit" /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput='./TestResults/' unit_test_db_postgres: runs-on: ubuntu-latest # Service containers to run with `runner-job` services: # Label used to access the service container redis: # Docker Hub image image: postgres:11 # ports: - 5432:5432 # Provide the password for postgres env: POSTGRES_DB: mockDb POSTGRES_USER: postgres POSTGRES_PASSWORD: "mysecretpassword" POSTGRES_HOST_AUTH_METHOD: trust # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/[email protected] - name: Setup .NET Core uses: actions/[email protected] with: dotnet-version: ${{ env.dotnetVersion}} - name: enabledb run: cp ./MyProject.Repository.Test/Data/appSettings.devops.postgres.json ./MyProject.Repository.Test/Data/AppSettings.json - name: Tests run: | cd MyProject.Repository.Test dotnet test --logger "junit" /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput='./TestResults/' unit_test_db_mysql: runs-on: ubuntu-latest # Service containers to run with `runner-job` services: # Label used to access the service container redis: # Docker Hub image image: mysql:5.7.29 # ports: - 3306:3306 env: MYSQL_DATABASE: "mockDb" MYSQL_ROOT_PASSWORD: "mysecretpw" steps: - uses: actions/[email protected] - name: Setup .NET Core uses: actions/[email protected] with: dotnet-version: ${{ env.dotnetVersion}} - name: enabledb run: cp ./MyProject.Repository.Test/Data/appSettings.devops.mysql.json ./MyProject.Repository.Test/Data/AppSettings.json - name: Tests run: | cd MyProject.Repository.Test dotnet test --logger "junit" /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput='./TestResults/' code_docs: runs-on: windows-latest name: code documentation steps: - uses: actions/[email protected] - name: docfx run: | curl -LO "https://github.com/dotnet/docfx/releases/download/v2.48/docfx.zip" powershell.exe -NoP -NonI -Command "Expand-Archive '.\docfx.zip' '.\docfx\'" ./docfx/docfx.exe - uses: actions/[email protected] with: name: CodeDocs path: _site security: runs-on: ubuntu-latest name: Snyk Security Scan steps: - uses: actions/[email protected] - name: Setup .NET Core uses: actions/[email protected] with: dotnet-version: ${{ env.dotnetVersion}} - name: Build with dotnet run: | export DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet build - name: Run Snyk to check for vulnerabilities uses: snyk/actions/[email protected] with: args: --file=MyProject.sln env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
  • What platform is Microsoft Docs hosted on?
    1 project | reddit.com/r/microsoft | 1 Sep 2021
    My best guess would be that there's a CI/CD pipeline in GitHub that utilizes DocFX to convert the Markdown files to HTML. The constructed HTML files are then placed in an Azure Storage account that configured for Static Website Hosting combined with Azure CDN
  • Upgrade your Value Objects in 10 Steps
    1 project | dev.to | 17 Aug 2021
    tag. There are a number of other useful tags for XML comments which are especially valuable if you use tools like DocFX to automatically generate a documentation website with details and examples. /// /// Converts a string into a coordinate object /// /// A string containing a coordinate to convert /// A coordinate equivelant to the string contained in /// A format exception will be thrown if the structure of the string is unexpected /// /// This demonstrates basic usage of the Parse method: /// /// var c = Coordinate.Parse("1,2"); /// /// public Coordinate Parse(string s) Enter fullscreen mode Exit fullscreen mode Putting it all together We started with a simple class: public class Coordinate { public int X { get; set; } public int Y { get; set; } } Enter fullscreen mode Exit fullscreen mode This might be fine for a simple serialization bucket, but once our upgrades are all done, we've got a class worthy of inclusion in a world-class .NET library. Here's the end result (with comments omitted for brevity): [DebuggerDisplay("({X},{Y})")] public readonly struct Coordinate : IEquatable, IFormattable { public Coordinate(int x, int y) => (X, Y) = (x, y); public int X { get; } public int Y { get; } public override bool Equals(object obj) => obj is Coordinate coordinate && Equals(coordinate); public bool Equals(Coordinate other) => (X, Y) == (other.X, other.Y); public override int GetHashCode() => HashCode.Combine(X, Y); public override string ToString() => ToString(null, null); public string ToString(string format, IFormatProvider formatProvider) { return X.ToString(format, formatProvider) + "," + Y.ToString(format, formatProvider); } public void Deconstruct(out int x, out int y) => (x, y) = (X, Y); public static Coordinate Parse(string s) => CoordinateParser.Parse(s); public static bool TryParse(string s, out Coordinate c) => CoordinateParser.TryParse(s, out c); public static explicit operator Vector(Coordinate c) => Vector.FromCoordinate(c); public static bool operator ==(Coordinate left, Coordinate right) => left.Equals(right); public static bool operator !=(Coordinate left, Coordinate right) => !(left == right); public static Coordinate operator +(Coordinate c) => c; // doesn't do anything, but complements minus public static Coordinate operator -(Coordinate c) => new Coordinate(-c.X, -c.Y); public static Coordinate operator ++(Coordinate c) => new Coordinate(c.X+1, c.Y+1); public static Coordinate operator --(Coordinate c) => new Coordinate(c.X-1, c.Y-1); public static Coordinate operator +(Coordinate left, Coordinate right) => new Coordinate(left.X + right.Y, left.X + right.Y); public static Coordinate operator -(Coordinate left, Coordinate right) => new Coordinate(left.X - right.X, left.Y - right.Y); public static Coordinate operator *(Coordinate left, Coordinate right) => new Coordinate(left.X * right.Y, left.X * right.Y); public static Coordinate operator /(Coordinate left, Coordinate right) => new Coordinate(left.X / right.Y, left.X / right.Y); public static Coordinate operator %(Coordinate left, Coordinate right) => new Coordinate(left.X % right.Y, left.X % right.Y); } Enter fullscreen mode Exit fullscreen mode Ultimately, how far down the road you want to go is a judgement call. For some cases, the first version of the type is all that's required and exactly what's needed. But, if you're writing a library or core domain code, it's probably worth breaking out all the stops to make the experience smoother and more predictable for your users.
  • Serving DocFX static site from .NET & adding Authentication
    3 projects | dev.to | 16 Jun 2021
    For those of you who are new to DocFX, DocFX is static site generator from source code files and markdown. it is mainly used for documentation, however it is important to mention that it is flexible to be used for many different purposes. some use it for blogging, profile site,... really its up to you to define what to use it for. for more information on DocFX you can visit their official website.
  • Is there csharp equivalent to javadoc?
    1 project | reddit.com/r/csharp | 27 Apr 2021
  • Started to learn markdown which is pretty cool, how would I create a table of contents like this:
    1 project | reddit.com/r/Markdown | 15 Apr 2021
    It depends on what tool you want to use. DocFx generates the overview.
  • Infrastructure
    1 project | reddit.com/r/technicalwriting | 10 Jan 2021
    DocFX is the open source part of this: https://github.com/dotnet/docfx

Stats

Basic DocFX repo stats
9
2,917
8.2
2 days ago

dotnet/docfx is an open source project licensed under MIT License which is an OSI approved license.

Less time debugging, more time building
Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
scoutapm.com
Find remote jobs at our new job board 99remotejobs.com. There are 29 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.