<commit_before># Contribution Guidelines

## General
Please ensure your pull request adheres to the following guidelines:

* New lessons or improvements to existing lessons are welcome.
* Please check your spelling and grammar.
* Open an issue to handle translations if adding a new lesson or modifying an existing one. An example can be found [here](https://github.com/elixirschool/elixirschool/issues/529)
* Please adhere to our [style guide](https://github.com/elixirschool/elixirschool/wiki/Lesson-Styleguide)

## A Note on Lesson Versions

All lessons should include the follow front matter:

```markdown
---
version: 2.0.0
title: Ecto
---
```

Change the `version` attribute according to the following rules:

* MAJOR — You (re)wrote the whole thing. Your new content will need some translation.
* MINOR — Added or removed some content, few sentences, etc.
* PATCH — Spelling, typos. Probably not translated stuff.

Fun fact! The version changes are important because we use that to programmatically determine and inform translators of new content that requires translation.

## Adding a New Lesson
To add a new lesson, create the file under the appropriate directory in `en/lessons` (or `<language_code>/lessons`) if you are not writing your new lesson in English).

Then, update `_data/content.yml` with the name of your new lesson under the appropriate section.

If you've added a new section (i.e. a new directory under `/lessons`), add the section name under the `sections` key of `_data/locales/en.yml` or `_data/locales/<language_code>.yml` if the section + lesson you added are not in English.

Thank you for your contributions!<commit_msg>add 'gotcha' for liquid tag syntax vs. elixir tuple issue (#1638)<commit_after># Contribution Guidelines

## General
Please ensure your pull request adheres to the following guidelines:

* New lessons or improvements to existing lessons are welcome.
* Please check your spelling and grammar.
* Open an issue to handle translations if adding a new lesson or modifying an existing one. An example can be found [here](https://github.com/elixirschool/elixirschool/issues/529)
* Please adhere to our [style guide](https://github.com/elixirschool/elixirschool/wiki/Lesson-Styleguide)

## A Note on Lesson Versions

All lessons should include the follow front matter:

```markdown
---
version: 2.0.0
title: Ecto
---
```

Change the `version` attribute according to the following rules:

* MAJOR — You (re)wrote the whole thing. Your new content will need some translation.
* MINOR — Added or removed some content, few sentences, etc.
* PATCH — Spelling, typos. Probably not translated stuff.

Fun fact! The version changes are important because we use that to programmatically determine and inform translators of new content that requires translation.

## Adding a New Lesson
To add a new lesson, create the file under the appropriate directory in `en/lessons` (or `<language_code>/lessons`) if you are not writing your new lesson in English).

Then, update `_data/content.yml` with the name of your new lesson under the appropriate section.

If you've added a new section (i.e. a new directory under `/lessons`), add the section name under the `sections` key of `_data/locales/en.yml` or `_data/locales/<language_code>.yml` if the section + lesson you added are not in English.

Thank you for your contributions!

## Gotcha

Look out for Liquid templating weirdness!

If you have a code snippet that includes the following syntax: `{%{message: "error message"}, :error}`, i.e. if you have a tuple where the first element is a map, WATCH OUT! That set of characters, `{%` is actually the start of a liquid tag! Instead, wrap your backticked code block in `{% raw % }` `{% endraw %}`
{'fraction_non_alphanumeric': 0.07991418610887638, 'fraction_numerical': 0.004290694556181282, 'mean_word_length': 4.550595238095238, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 4, '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': '3341250', 'n_tokens_mistral': 1043, 'n_tokens_neox': 992, 'n_words': 511}