GithubHelp home page GithubHelp logo

univunix / docpad-plugin-api Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 0.0 204 KB

Plugin that injects your custom api into Docpad.

Home Page: http://software.univunix.com/projects/docpad-plugin-api

License: Other

CoffeeScript 0.81% JavaScript 98.65% HTML 0.09% Shell 0.45%
docpad custom api plugin docpad-plugin expressjs

docpad-plugin-api's Introduction

Api Plugin for DocPad

Due to the closing of Docpad project in 1/2/2018, this plugin won't receive any extra feature. Only critical bugs will be solved. Benjamin said that Docpad will get updates, but he will work as a side-project. We will add features if it's necessary.

Travis CI Build Status NPM version NPM downloads Dependency Status Dev Dependency Status

How to use the plugin

First, create your API. You have to use Javascript as language and you can use NodeJS or ExpressJS methods and objects.

Each Javascript file must have this structure:

// Each module.exports MUST BE a function with these two arguments
module.exports = function (opts, baseApiUrl){
  // The ExpressJS server is an attribute of opts.
  var server = opts.server

  // You can use ExpressJS functions (version 3.x)
  server.get(baseApiUrl + '/test', function (req, res, next) {
    return res.json({
      test: 'OK'
    })
  })

  server.get('/bbbb', function (req, res, next) {
    var err = new Error()
    next(err)
  })
}

Second, you need to create the api configuration file. It's in JSON format. This is the new step for newer versions, because you can set different apis using multiple configuration files.

You can name it as you want. In my case, I call it "dpaconfig.json"

{
  "baseApiUrl": "/testone",
  "src": [
    "testapi1/src/test11.js",
    "testapi1/src/test12.js"
  ]
}

Notes about dbaconfig.json file:

  • It's required to set the baseApiUrl and src variables.
  • The src routes have to be relative to Docpad website root folder (the same level as docpad configuration file).

Finally, set the route of each dpaconfig file in Docpad configuration file.

plugins:
  api:
    cfgSrc: [
      'testapi1/dpaconfig.json',
      'testapi2/dpaconfig.json',
      'testapi0/dpaconfig.json'
    ]

Notes about configuration: *You have to set relative routes using Docpad root folder as base.

And we're done. Enjoy your custom api without refactoring to ExpressJS.

Install

Install this DocPad plugin by entering docpad install api into your terminal.

History

Discover the release history by heading on over to the HISTORY.md file.

Contribute

Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

Backers

Maintainers

These amazing people are maintaining this project:

Sponsors

No sponsors yet! Will you be the first?

Contributors

These amazing people have contributed code to this project:

Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

License

Unless stated otherwise all works are:

and licensed under:

docpad-plugin-api's People

Contributors

aglezabad avatar balupton avatar fer2d2 avatar mikeumus avatar robloach avatar vsopvsop avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

docpad-plugin-api's Issues

New file loading system.

This is the current system:

  • The plugin loads an array of file routes, all of them are set in docpad.coffee.
  • All api entries are called from a unique base url.

Proposed new system:

  • We will load multiple JSON files from docpad.coffee.
  • The JSON file contains a list of file routes and a base url. So we can load different apis without mixing them.
  • Also, each JSON file will set specific configuration for each api.

The benefits of the new system are:

  • Loading different apis using different base urls.
  • We can use two versions of the same api without refactoring old version.
  • We can isolate each api, reducing debugging complexity.

Fixing TravisCI configuration.

Due to continuous failures in TravisCI because my configuration is not working, I will research a way to get working. I think that Balupton (Docpad creator) have some scripts for it.

This issue will apply to 2.2.x and 2.1.x branches.

Do you have any suggestion? Write it here.

If you want to suggest new features related with this plugin, you can put them here. I will read them and put them in independent issues if I can do them.

Thank you in advance.

Due to the closing of Docpad project in 1/2/2018, no extra features will be provided to this plugin.

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.