# nyaml documentation

The `nyaml` tool offers a user-friendly command-line interface for converting between XML and YAML representations of NeXus definitions written in the NeXus Definition Language (NXDL). While the official NeXus definitions are maintained in `XML,` authoring them in YAML provides a more concise and readable alternative. `nyaml` bridges this gap, allowing developers to work in YAML while ensuring compatibility with the official XML format.

The tool supports both NeXus application definitions and base classes. It can be installed via `pip` and includes comprehensive documentation and tutorials to assist users in writing NeXus definitions using YAML.

<div markdown="block" class="home-grid">
<div markdown="block">

### Tutorial

Tutorials to write different parts and a full NeXus application or base class

- [Writing a NeXus definition in YAML](tutorials/tutorials.md)

</div>
<div markdown="block">

### How-to guides

How-to install and use the nyaml tool

- [Getting started with `nyaml`](howtos/howto.md)

</div>

<div markdown="block">

### Learn

An introduction to NeXus and its use in the light of YAML format using the `nyaml` tool.

- [An introduction to NeXus](https://manual.nexusformat.org/index.html)
- [Motivation behind the nyaml tool](learn/explanations.md)
- [Workflow of the nyaml tool with examples](learn/workflow.md)


</div>
<div markdown="block">
### References
The list of references used in this documentation

- [References](references/references.md)
</div>

</div>

<h2>Project and community</h2>

Any questions or suggestions? [Get in touch!](https://www.fair-di.eu/fairmat/about-fairmat/team-fairmat)

[The work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - 460197019 (FAIRmat).](https://gepris.dfg.de/gepris/projekt/460197019?language=en)