README.md

# Yameru
Yameru language and library for Elixir

Yameru is a Setting Description Language
___which human read___ and ___computer readable___ inspired by yaml.

## Features
Yameru is made to write humans knowledge up with more friendly language.

Yameru syntax specialize in strings;
most strings can be written with no escaping, even if it is key.

```yameru
What's New : FIFA World Cup finished.
Belgium vs Japan : 3-2
```

Any non-string type scalars are sandwitched with brackets.
Currently Yameru supports integer, float, boolean, iso8601.

```yameru
integer : [10 000]
float   : [1.0e4]
boolean : [yes]
iso8601 : [2018-07-03]
```

As block elements, dictionary, sequence and preformed text is supported. 
Dictionary and sequence can be top level block.

```yameru
dictionary:
    key: value
sequence:
    - value
text: /
    Preformed Text
```

Yameru doesn't have comment syntax;
all knowledge are written as value.
If you want to supplement some value, you can use tuple syntax shown below.

```yameru
limit : [10:55:00]
    because: the ladder are put back 5 minutes before departure.
```

## Library
I made Yameru for dsl in application I developing.
So an Elixir library leads this language.

Currently the library supports only loading.

```elixir
# load yameru file
{:ok, map} = Yameru.load "sample/sample.yameru"

# any value is `{scalar, block}` form
{title, nil} = map["title"]
```

## Installation
Yameru library for elixir can be installed
by adding `yameru` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:yameru, "~> 0.1.0"}
  ]
end
```

Documentation is: [https://hexdocs.pm/yameru](https://hexdocs.pm/yameru).