DocFX
MkDocs
Our great sponsors
DocFX | MkDocs | |
---|---|---|
18 | 111 | |
3,848 | 18,123 | |
2.6% | 1.8% | |
9.8 | 9.0 | |
7 days ago | 3 days ago | |
C# | Python | |
MIT License | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
DocFX
-
TSDocs.dev: type docs for any JavaScript library
This is a better looking version of what Java and C# have had for a long time (kudos to the author for that!), is that the inspiration for this tool?
https://docs.oracle.com/javase/8/docs/technotes/tools/window...
https://dotnet.github.io/docfx/
I saw the author mentioned in another comment that they found themselves peeping inside type declaration files "too often". While I do often use sites generated by the above tools to discover new API's that suit my needs, diving into the actual code using a good decompiler is still my first move, as it is often cheaper than seeking out the documentation online, and it will show me the actual implementation as well. So in my opinion there is no shame in looking inside the declaration files!
-
Use Case Driven Development with Low-Code
Tools like DocFx provide the ability to display the programmable functions in HTML pages. They are used with the following commands in the docfx folder:
-
Anybody know if there's a library for the doc engine that MS Docs/Learn uses?
AFAIK they use https://github.com/dotnet/docfx which can be too heavy for your case. We use mdBook for internal documentation (plain .md with mermaid plugin) and then serve it at docs.yourdevenv.com.
- Is there a simple way to auto-generate a wiki / documentation for project code that pulls from comments or <summary> tags?
-
What the latest tool to generate website docs from /// summary comments?
DocFX is a nice solution.
-
How to build a solution like docs.microsoft.com
It uses DocFX
-
Comments in Javascript
Some of the standard and well-maintained Tools for Comments are JSDoc for Javascript, DocFx for .NET, and JavaDoc for Java.
-
Library / Codebase Documentation - Multiple aggregated libraries - How to create? DocFx does not support this?
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.
-
dotnet-ci-pipelines
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/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 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/upload-artifact@v1 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/upload-artifact@v1 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/upload-artifact@v2 if: ${{ env.rIds }} != '' with: name: Release_unix path: Release/post build-win: runs-on: windows-latest steps: - uses: actions/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 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/upload-artifact@v2 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/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 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/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 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/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 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/checkout@v1 - 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/upload-artifact@v1 with: name: CodeDocs path: _site security: runs-on: ubuntu-latest name: Snyk Security Scan steps: - uses: actions/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 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/dotnet@master with: args: --file=MyProject.sln env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
-
Serving DocFX static site from .NET & adding Authentication
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.
MkDocs
- Ask HN: Tips to get started on my own server
-
Enhance Your Project Quality with These Top Python Libraries
MkDocs is a fast, simple and downright gorgeous static site generator that’s geared towards building project documentation. Documentation source files are written in Markdown, and configured with a single YAML configuration file.
-
Top 5 Open-Source Documentation Development Platforms of 2024
MkDocs is a popular static site generator designed explicitly for building project documentation. Its minimalist approach, flexibility, and ease of use have made it a favorite among developers and ideal for non-technical users.
-
5 Best Static Site Generators in Python
MkDocs is a popular static site generator specifically designed for project documentation. It is built on Python's Markdown processing engine and comes with a clean and responsive default theme. MkDocs is easy to configure, and its simplicity makes it an excellent choice for quickly creating documentation for your projects.
-
Creating a knowledge base website for work, do I need a database or can it be only front end designed?
Take a look at https://www.mkdocs.org
- MdBook – Create book from Markdown files. Like Gitbook but implemented in Rust
-
MkDocs Publisher as an alternative for official Obsidian publish.
For last few months, I was developing a set of plugins for MkDocs, that allows you to use GitHub Pages or GitLab Pages as a cheaper alternative to official Obsidian publish. Story behind this tool started quite long time a go, when I was using Nikola (static site tool for blogging) and Obsidian as a post editor. When Nikola stopped working for me on Apple Silicon (due to some problems with one of Python library) I started to look for a new tool. I couldn't find anything good enough and just started to work on my own plugin. From the first idea to current implementation, I build 5 plugins packed as a single Python library. As for Obsidian part, project currently supports:
-
Site-wide Protest, Introducing leagueoflinux.org, and Poll for What to do Next with r/leagueoflinux
The site is built using MkDocs and themed with MkDocs-Material. Being markdown-based, porting over the webpages from the subreddit wiki was fairly painless, and on some pages I've already been able to extend their capabilities with in-line images, buttons and more modern special formatting tools.
-
Ask HN: What is the best product documentation you’ve ever seen?
Visual Studio App Center has excellent documentation: https://learn.microsoft.com/en-us/appcenter/distribution/cod.... It's comprehensive and well structured.
If you're looking for a system that looks as good, mkdocs (https://www.mkdocs.org/) with the mkdocs-material theme (https://squidfunk.github.io/mkdocs-material/) can get you quite close!
-
Knowledge base system choice
I would also look at https://www.mkdocs.org for organising documentation esp if you are used to 'readthedocs' manuals.
What are some alternatives?
sphinx - The Sphinx documentation generator
Sandcastle - Sandcastle Help File Builder (SHFB). A standalone GUI, Visual Studio integration package, and MSBuild tasks providing full configuration and extensibility for building help files with the Sandcastle tools.
pdoc - API Documentation for Python Projects
Hugo - The world’s fastest framework for building websites.
Docusaurus - Easy to maintain open source documentation websites.
BookStack - A platform to create documentation/wiki content built with PHP & Laravel
Swashbuckle - Seamlessly adds a swagger to WebApi projects!
Read the Docs - The source code that powers readthedocs.org
mdBook - Create book from markdown files. Like Gitbook but implemented in Rust
Wiki.js - Wiki.js | A modern and powerful wiki app built on Node.js
VuePress - 📝 Minimalistic Vue-powered static site generator
mkdocs-material - Documentation that simply works