Socket
Book a DemoInstallSign in
Socket

docula-ui-express

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

docula-ui-express

Express.js bindings for Docula project

latest
npmnpm
Version
0.0.49
Version published
Weekly downloads
3
-70%
Maintainers
1
Weekly downloads
 
Created
Source

docula-ui-express (https://docu.la)

Docula is a knowledge base system based on open technologies. Keep your data in GitHub, but still have a rich UI, search and other services.

Features

  • GitHub repository cloning and change detection.
  • Documentation files in Markdown
  • API documentation files in OpenAPI Json or YAML
  • Category-based organization of supported documentation.
  • Organizing metadata model in Redis data store.
  • Storing files content in Redis file store.
  • Indexing files content in ElasticSearch.
  • Providing necessary node.js programming layout to build external APIs or User Interfaces.
  • Providing React-base UI application for read access to a repository.
  • Providing support for easy integration into existing Express.js based web sites.

Docula-UI-Express glues together other Docula modules to create rich UI and REST API to be included into an Express.js-based app

Other Docula modules:

  • Docula-Core - core functionality to build services based on Docula
  • Docula-UI-React - React.js components for a Docula user interface

Install

Requires Node.js v5.9.1 or higher. Requires Redis. ElasticSearch is optional.

Using NPM

$ npm install docula-ui-express --save

How To Use Docula-ui-express

const Docula = require('docula-core');
const DoculaExpress = require('docula-ui-express');
const express = require('express');
const app = express();

const API_BASE = '/api/';
const REPO_PATH = '/var/docula/repositories/yourrepo';

const docula = new Docula({
  git: {
    remote_url: 'https://github.com/yourorg/yourrepo',
    local_path: REPO_PATH
  }
});

app.use(API_BASE, DoculaExpress.api(docula));

app.use('/', DoculaExpress.ui({
  apiBase: API_BASE,
  disqusKey: DISQUS_KEY
  assets: {
    sourceDir: REPO_PATH
  }
}));

app.listen(8080, function() {
  console.info(`App listening on port 8080`);
  docula.refresh();
});

Categories

{
    "x-categories": [
        {
          "id": "categoryId",
          "title": "Category"
        },
        {
          "id": "categoryId2",
          "title": "Category2"
        }
    ]
 }

Code Examples

{
    "x-engine": {
        "php": {
          "title": "PHP",
          "is_default": true
        },
        "java": {
          "title": "Java",
          "is_default": false
        }
     }
 }
 
 "paths": {
     "/endpoint": {
         "post": {
            "x-engine-example": {
                "php": "{\n php code \n}",
                "java": "{\n java code \n}"
            }
         }
     }
 }

Docula Core configuration

see Docula-Core

UI configuration

  • apiBase - base URL where API resides
  • assets - static files management configuration
    • sourceDir - folder path where static files reside.
    • extensions - (default: ['png', 'jpg', 'jpeg', 'svg', 'gif', 'bmp']) - a list of file extensions which would be ignored by a serverside router, and so instead of returning "index.html" app would look for this file in sourceDir. This is necessary if you want to keep images or other attachments along with the articles in a repository.

Api Endpoints

(post) /invalidate: Clone or update GitHub repository

(get) /category: List categories tree

(get) /category/{path}: Get a list of articles under Category specified by path

(get) /article/{path}: Get full content of an article specified by path

(get) /search?query={text}: Search articles (works only is ES is enabled)

Tests

Tests for Docula-Ui-Express can be run using the command:

gulp test

FAQs

Package last updated on 04 Jan 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts