<commit_before>[![Build Status](https://secure.travis-ci.org/Fannon/mobo.png?branch=master)](http://travis-ci.org/Fannon/mobo)

<p align="center">
    <img src ="http://fannon.de/p/mobo-intro/img/logo.png" />
</p>

## Why mobo?
mobo is a command line tool that generates Semantic MediaWiki structure from object oriented JSON Schema files.
It is built to provide a fast, automated and DRY (don't repeat yourself) model development workflow. 

## Features
With mobo your model is written in plain [JSON Schema](http://json-schema.org/) on your local filesystem. 
mobo converts, validates, visualizes (through a WebGui and a visual Graph Explorer) and uploads your development model in realtime to your wiki. 

## Getting Started
### Requirements
* [Node.js](http://nodejs.org/) is required for mobo to install/run.
* A Semantic MediaWiki Installation is required as upload target. Semantic Forms is required, the HeaderTabs and TemplateData extension are supported.
* Your wiki needs a bot account that provides the login data you need to specify in your settings.json. The Bot should have the "bot" and possibly the "administrator" (if you want to upload special pages) privileges.
* Your wiki needs to have the API enabled with write access. This is enabled by default since MW 1.14, but if not adjust your LocalSettings.php:

```php
// WARNING: This opens public write access. 
// If you don't want this, you'll need to setup additional restrictions.
$wgEnableAPI = true;
$wgEnableWriteAPI = true;
$wgCrossSiteAJAXdomains = array( '*' );
```

### Installation
mobo should be installed on the machine you're developing your model on. It doesn't have to be installed on the server itself.

First install mobo and create a default project structure:
```sh
$ npm install -g mobo               # Installs mobo globally. If this fails: "sudo npm install -g mobo"<commit_msg>* DOCUMENTATION++<commit_after>[![Build Status](https://secure.travis-ci.org/Fannon/mobo.png?branch=master)](http://travis-ci.org/Fannon/mobo)

<p align="center">
    <img src ="http://fannon.de/p/mobo-intro/img/logo.png" />
</p>

## About mobo
mobo is a command line tool that generates Semantic MediaWiki structure from object oriented [JSON Schema](http://json-schema.org/) files.
It is built to provide a fast, automated and DRY (don't repeat yourself) model development workflow. 

mobo converts, validates, visualizes and uploads your development model in realtime to your wiki. 

## Getting Started
### Requirements
* [Node.js](http://nodejs.org/) is required for mobo to install/run.
* A Semantic MediaWiki Installation is required as upload target. Semantic Forms is required, the HeaderTabs and TemplateData extension are supported.
* Your wiki needs a bot account that provides the login data you need to specify in your settings.json. The Bot should have the "bot" and possibly the "administrator" (if you want to upload special pages) privileges.
* Your wiki needs to have the API enabled with write access. This is enabled by default since MW 1.14, but if not adjust your LocalSettings.php:

```php
// WARNING: This opens public write access. 
// If you don't want this, you'll need to setup additional restrictions.
$wgEnableAPI = true;
$wgEnableWriteAPI = true;
$wgCrossSiteAJAXdomains = array( '*' );
```

### Installation
mobo should be installed on the machine you're developing your model on. It doesn't have to be installed on the server itself.

First install mobo and create a default project structure:
```sh
$ npm install -g mobo               # Installs mobo globally. If this fails: "sudo npm install -g mobo"
{'fraction_non_alphanumeric': 0.09234608985024959, 'fraction_numerical': 0.0016638935108153079, 'mean_word_length': 4.320058997050148, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1610281', 'n_tokens_mistral': 1053, 'n_tokens_neox': 983, 'n_words': 463}