zamm 0.1.7

A literate programming tool for Yin and Yang
Documentation
# ZAMM

[![Build Status](https://travis-ci.com/amosjyng/zamm.svg?branch=main)](https://travis-ci.com/amosjyng/zamm)

This is a literate programming code generation tool for the [Yin](https://crates.io/crates/zamm_yin) and [Yang](https://crates.io/crates/zamm_yang) crates.

It builds an intermediate code-generation binary from the provided Markdown file (`yin.md` by default) and runs the binary in the current directory.

## Install

```sh
cargo install zamm
```

Note that on Windows, you will need to follow the instructions [here](https://github.com/sfackler/rust-openssl/tree/5948898e54882c0bedd12d87569eb4dbee5bbca7#windows-msvc) to set up OpenSSL.

## Usage

```text
zamm 0.0.1
Amos Ng <me@amos.ng>
Literate code generation for Yin and Yang.

USAGE:
    zamm <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    build      Generate code from an input file
    clean      Clean up autogenerated files
    help       Prints this message or the help of the given subcommand(s)
    release    Prepare repo for a Cargo release
    test       Make sure the project will pass CI tests
```

You can look at the `yin.md` for both [Yin](https://github.com/amosjyng/yin/blob/main/yin.md) and [Yang](https://github.com/amosjyng/yang/blob/main/yin.md) for examples on this literate programming style.

To use this tool, simply navigate to the project directory and run

```sh
zamm build
```

The code will be generated inside the current directory.

### Overriding the main input file

To add overrides to the main input file, create another README file named `zamm_override.md`. This can be useful for using a local version of Yin or Yang to build the other one, without having the local path committed to Git. The Cargo equivalent is [here](https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html), although that requires changes to the same file and therefore cannot be Git-ignored quite as easily.