Giter Club home page Giter Club logo

herbsshelf's Introduction

CI build codecov

herbsshelf

Welcome to the shelf!

This is a self-generate documentation, here you can see all the flow of information in the application.

You can use the lateral panel to navigate into Use Cases of this application.

Installing

    $ npm install @herbsjs/herbsshelf

Functioning

To use the shelf you will need to pass a list of usecases to it, it will read them and return a string from an HTML document with the generated documentation.

Using

The quickest way to use the herbs shelf is to create a rest route in your api and expose the documentation generated by the shelf.

Consider a file called _uclist.js with this inside

module.exports = (injection) => {
    return [
        { usecase: require('./myUseCaseFile').myUseCaseName(injection), tags: { group: 'GroupOne' } },
        { usecase: require('./myUseCase2File').myUseCase2Name(injection), tags: { group: 'GroupOne' } },
        { usecase: require('./myUseCase3File').myUseCase3Name(injection), tags: { group: 'GroupTwo' } },
    ]
}

In your app or server file, import the shelf dependecy and the list of usecases

const usecases = require('../../domain/usecases/_uclist')
const renderShelfHTML = require('herbsshelf')

And call the shelf into you prefered rest route

 this.app.get('/herbsshelf', (req, res, next) => {
    res.setHeader('Content-Type', 'text/html')
    const shelf = renderShelfHTML('Project Name', usecases(), entities)
    res.write(shelf)
    res.end()
})

If your project has a readme.md, this content should be shown at the beginning of the project. If you want to use a custom readme, you can specify on startup:

const shelf = renderShelfHTML('Project Name', usecases(), entities, './custom-readme.md')

You can see the full functionality into the TODO-LIST ON HERBS repository

TODO

  • Self-documentation
  • Add templates and injection of css file
  • Entities of gotu support
  • Playground functionality
  • GraphQL documentation sample

Contribute

Come with us to make an awesome herbsshelf.

Now, if you do not have the technical knowledge and also have intended to help us, do not feel shy, click here to open an issue and collaborate their ideas, the contribution may be a criticism or a compliment (why not?)

If you would like to help contribute to this repository, please see CONTRIBUTING

License

herbsshelf is released under the MIT license

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.