mediawiki-extensions-Math/texvccheck
Tim Landscheidt 352abc726f Do not ignore all .mli files in texvccheck
The pattern "*.mli" was incorrectly added to texvccheck/.gitignore by
4c9dc2f08e with the comment "Compiled
source".  As with d9a7da14f1, .mli files
define the interfaces for the corresponding .ml module and thus should
not be ignored.

The only exception to this is parser.mli which is generated by the
ocamlyacc from the parser.mly definition, so this change only ignores
those files.

Change-Id: I263df70e58fb14a7228c32d5c985ff7f1b841891
2016-12-25 13:39:20 +00:00
..
.gitignore Do not ignore all .mli files in texvccheck 2016-12-25 13:39:20 +00:00
lexer.mll Breakdown of texvc 2013-12-14 18:34:15 +00:00
Makefile Breakdown of texvc 2013-12-14 18:34:15 +00:00
parser.mly Remove unused empty production for litsq_zq in texvccheck 2014-07-23 16:06:13 +00:00
README Begining -> beginning 2015-12-11 18:37:10 +00:00
test.pl Fix perl script permissions and shebang 2015-07-01 13:27:22 +00:00
tex.mli Breakdown of texvc 2013-12-14 18:34:15 +00:00
texutil.ml Regularize spacing in texvc and texvccheck 2014-10-12 22:04:41 +02:00
texvccheck.ml Fix comment in texvccheck.ml 2014-07-23 15:55:32 +00:00
util.ml Breakdown of texvc 2013-12-14 18:34:15 +00:00

== About texvccheck ==

texvc takes the user input validates it and replaces MediaWiki specific functions.
Input data is parsed and scrutinized for safety.

texvc was written by Tomasz Wegrzanowski for use with MediaWiki; it's
included as part of the MediaWiki package (http://www.mediawiki.org) and is
under the GPL license.

texvc-lite, was extracted from the original texvc program in 2013 by
Moritz Schubotz and uses only the sanitizing and customization part.

The list of all commands can be viewed by browsing the source files.
Most commands are listed at
http://sdrv.ms/15w2gVw
there is also a tool for convenient whitelisting of special commands
that are used in local wikis.

Please report bugs at: https://bugzilla.wikimedia.org/
with "MediaWiki extensions" as product and "Math" as component.

== Setup ==

=== Requirements ===

OCaml 3.06 or later is required to compile texvc; this can be acquired from
http://caml.inria.fr/ if your system doesn't have it available.

The makefile requires GNU make.

In Ubuntu Precise, all dependencies can be installed using:

  $ sudo apt-get install ocaml

=== Installation ===

Run 'make' (or 'gmake' if GNU make is not your default make). This should
produce the texvccheck executable.

By default,
MediaWiki will search in this directory for texvc, if you moved it elsewhere,
you'll have to modify $wgTexvc and set it to the path of the texvc executable.

== Usage ==

Normally texvc is called from MediaWiki's Math modules and everything
Just Works. It can be run manually for testing or for use in another app.

=== Command-line parameters ===

    texvccheck '\TeX input string'

Be sure to properly quote the TeX code!

Example:

    texvc "y=x+2"

=== Output format ===

The output is the sanitized and customized tex string.

texvc output format is like this:
    +%s		ok
    S		syntax error
    E		lexing error
    F%s		unknown function %s
    -		other error

== Hacking ==

Before you start hacking on the math package its good to know the workflow,
which is basically:

1. texvc gets called by Math/Math.body.php (check out the line beginning with "$cmd")
2. texvc does its magic, which is basically to check for invalid latex code.
3. texvc takes the user input validates it and replaces MediaWiki specific functions