Code Monkey home page Code Monkey logo

coredox's Introduction

Build Status MIT licensed

Create .NET code documentation with ease

coreDox is a documentation tool to create .NET code documentation. The tool creates a model of a given solution and passes it to the registered export plugins. The plugins transform the model to a defined output. coreDox comes with a html export plugin which demonstrate the possibilities of the tool.

coreDox is a complete rewrite of sharpDox for .NET Core.

Why rewrite?

sharpDox used roslyn to compile a given solution and to analyze the code. If sharpDox was integrated in a build process, the build server had to compile the solution twice. Once for the build itself and a second time for sharpDox. This is useless overhead and codeDox tries to eliminate this by using cecil to analyze precompiled *.dlls, *.pdbs & *.xmls (for the code documentation).

It would be possible to accomplish this without a complete rewrite, but sharpDox was started as a learning project and has grown within the last few years in such a way that I don't like the code base anymore.

The aim of coreDox is to create a cleaner and more maintainable solution. I hope that this will also attract some more people to contribute to coreDox.

Project structure

coreDox

CLI to use coreDox.
The commands are:

  • new --doc [doc-folder] creates a new documentation project in the given path
  • build --doc [doc-folder] builds the documentation located in the given path
  • watch --doc [doc-folder] watches the documentation located in the given path, starts a web server to view it, and rebuilds the documentation on changes

coreDox.Core

Contains the whole model and all contracts of coreDox. The project can be referenced to create custom exporters for coreDox.

This project also contains the core functionality of coreDox. The functionality is structured into different services:

  • ConfigService Service to manage documentation configs
  • ContentService Service to load additional pages in the pages folder of a documentation project and for parsing the toc file
  • ExporterService Service to manage registered exporters
  • ParserService Service to parse the XML documentation and IL Code of a compiled .NET Project
  • PluginDiscoveryService This service is responsible for the discovery of all coreDox plugins
  • ServiceLocator Used to get an instance of a service

coreDox.Parser

This projects contains the XML Documentation Parser and IL Code parser (using Cecil). Used by the ParserService in coreDox.Core.

coreDox.Exporter.Html

The default exporter for coreDox. Exports the parsed project to a html page.

Documentation Projects

The new command creates a new documentation project into the given folder. A documentation folder is structured in the following way:

  • layout contains the themes for the built documentation - contains one folder for each exporter
  • pages contains all additional pages integrated in the documentation - referenced in the toc.md
  • assets all additional assets like images of icons - used in pages and layouts
  • toc.md the table of contents for the documentation
  • config.yaml the config for the build process of the documentation

coredox's People

Contributors

geaz avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.