diff --git a/README.md b/README.md index 4ebaef9c8a..7978600e6c 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,10 @@ Check [here](https://www.loc.gov/standards/iso639-2/php/English_list.php) for th 1. Translated lessons must include the page metadata. * `title` should be a translation of the original lesson's `title`. - * `version` should be set to the original English `version` + * `version` should consist of three digits: `major.minor.patch`, so: + * if this is a initial lesson translation, the version should be set to `1.0.0`; + * if you apply the original lesson updates to the translation, the version should be copied from the corresponding state of the original lesson; + * else bump one of the version numbers depending on how important is your change. For example `/ja/lessons/basics/basics.md`: diff --git a/en/index.md b/en/index.md index d1eac134e1..a58c6ca111 100644 --- a/en/index.md +++ b/en/index.md @@ -1,6 +1,5 @@ --- title: Elixir School -redirect_from: / layout: home version: 2.0.0 --- diff --git a/en/lessons/advanced/behaviours.md b/en/lessons/advanced/behaviours.md index 1d1fd02cee..0d27430a01 100644 --- a/en/lessons/advanced/behaviours.md +++ b/en/lessons/advanced/behaviours.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Behaviours -redirect_from: - - /lessons/advanced/behaviours/ --- We learned about Typespecs in the previous lesson, here we'll learn how to require a module to implement those specifications. In Elixir, this functionality is referred to as behaviours. diff --git a/en/lessons/advanced/concurrency.md b/en/lessons/advanced/concurrency.md index bc8f873290..a3b7a94695 100644 --- a/en/lessons/advanced/concurrency.md +++ b/en/lessons/advanced/concurrency.md @@ -1,8 +1,6 @@ --- version: 1.1.0 title: Concurrency -redirect_from: - - /lessons/advanced/concurrency/ --- One of the selling points of Elixir is its support for concurrency. Thanks to the Erlang VM (BEAM), concurrency in Elixir is easier than expected. The concurrency model relies on Actors, a contained process that communicates with other processes through message passing. diff --git a/en/lessons/advanced/erlang.md b/en/lessons/advanced/erlang.md index 9720820631..89d8a15b72 100644 --- a/en/lessons/advanced/erlang.md +++ b/en/lessons/advanced/erlang.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Erlang Interoperability -redirect_from: - - /lessons/advanced/erlang/ --- One of the added benefits to building on top of the Erlang VM (BEAM) is the plethora of existing libraries available to us. Interoperability allows us to leverage those libraries and the Erlang standard lib from our Elixir code. In this lesson we'll look at how to access functionality in the standard lib along with third-party Erlang packages. diff --git a/en/lessons/advanced/error-handling.md b/en/lessons/advanced/error-handling.md index 06f17bc320..6be5c408c7 100644 --- a/en/lessons/advanced/error-handling.md +++ b/en/lessons/advanced/error-handling.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Error Handling -redirect_from: -- /lessons/advanced/error-handling/ --- Although more common to return the `{:error, reason}` tuple, Elixir supports exceptions and in this lesson we'll look at how to handle errors and the different mechanisms available to us. diff --git a/en/lessons/advanced/escripts.md b/en/lessons/advanced/escripts.md index 357d948b0d..389d0e1f32 100644 --- a/en/lessons/advanced/escripts.md +++ b/en/lessons/advanced/escripts.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Executables -redirect_from: - - /lessons/advanced/escripts/ --- To build executables in Elixir we will be using escript. Escript produces an executable that can be run on any system with Erlang installed. diff --git a/en/lessons/advanced/gen-stage.md b/en/lessons/advanced/gen-stage.md index b10f679d89..c5d784d8eb 100644 --- a/en/lessons/advanced/gen-stage.md +++ b/en/lessons/advanced/gen-stage.md @@ -1,8 +1,6 @@ --- version: 1.0.2 title: GenStage -redirect_from: - - /lessons/advanced/gen-stage/ --- In this lesson we're going to take a closer look at the GenStage, what role it serves, and how we can leverage it in our applications. diff --git a/en/lessons/advanced/metaprogramming.md b/en/lessons/advanced/metaprogramming.md index cff50abe2e..c8d746cab6 100644 --- a/en/lessons/advanced/metaprogramming.md +++ b/en/lessons/advanced/metaprogramming.md @@ -1,8 +1,6 @@ --- version: 1.0.2 title: Metaprogramming -redirect_from: - - /lessons/advanced/metaprogramming/ --- Metaprogramming is the process of using code to write code. In Elixir this gives us the ability to extend the language to fit our needs and dynamically change the code. We'll start by looking at how Elixir is represented under the hood, then how to modify it, and finally we can use this knowledge to extend it. diff --git a/en/lessons/advanced/otp-concurrency.md b/en/lessons/advanced/otp-concurrency.md index 5113b51251..e8a0a1a7ce 100644 --- a/en/lessons/advanced/otp-concurrency.md +++ b/en/lessons/advanced/otp-concurrency.md @@ -1,8 +1,6 @@ --- version: 1.0.3 title: OTP Concurrency -redirect_from: - - /lessons/advanced/otp-concurrency/ --- We've looked at the Elixir abstractions for concurrency but sometimes we need greater control and for that we turn to the OTP behaviors that Elixir is built on. diff --git a/en/lessons/advanced/otp-supervisors.md b/en/lessons/advanced/otp-supervisors.md index 9f46faf3c0..8afd10e49a 100644 --- a/en/lessons/advanced/otp-supervisors.md +++ b/en/lessons/advanced/otp-supervisors.md @@ -1,8 +1,6 @@ --- version: 1.1.1 title: OTP Supervisors -redirect_from: - - /lessons/advanced/otp-supervisors/ --- Supervisors are specialized processes with one purpose: monitoring other processes. These supervisors enable us to create fault-tolerant applications by automatically restarting child processes when they fail. diff --git a/en/lessons/advanced/protocols.md b/en/lessons/advanced/protocols.md index 99ef39c1ca..4091511314 100644 --- a/en/lessons/advanced/protocols.md +++ b/en/lessons/advanced/protocols.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Protocols -redirect_from: - - /lessons/advanced/protocols/ --- In this lesson we are going to look at Protocols, what they are, and how we use them in Elixir. diff --git a/en/lessons/advanced/typespec.md b/en/lessons/advanced/typespec.md index aff46bd95c..3fd5fe29eb 100644 --- a/en/lessons/advanced/typespec.md +++ b/en/lessons/advanced/typespec.md @@ -1,8 +1,6 @@ --- version: 1.0.2 title: Specifications and types -redirect_from: - - /lessons/advanced/typespec/ --- In this lesson we will learn about `@spec` and `@type` syntax. `@spec` is more of a syntax complement for writing documentation that could be analyzed by tools. `@type` helps us write more readable and easier to understand code. diff --git a/en/lessons/advanced/umbrella-projects.md b/en/lessons/advanced/umbrella-projects.md index fc3d1b9ea1..52c1946c76 100644 --- a/en/lessons/advanced/umbrella-projects.md +++ b/en/lessons/advanced/umbrella-projects.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Umbrella Projects -redirect_from: - - /lessons/advanced/umbrella-projects/ --- Sometimes a project can get big, really big in fact. The Mix build tool allows us to split our code into multiple apps and make our Elixir projects more manageable as they grow. diff --git a/en/lessons/basics/basics.md b/en/lessons/basics/basics.md index 7ca5829dd8..239ea494d1 100644 --- a/en/lessons/basics/basics.md +++ b/en/lessons/basics/basics.md @@ -1,8 +1,6 @@ --- version: 1.1.2 title: Basics -redirect_from: - - /lessons/basics/basics/ --- Getting started, basic data types, and basic operations. diff --git a/en/lessons/basics/collections.md b/en/lessons/basics/collections.md index 7629710cbc..20fb551287 100644 --- a/en/lessons/basics/collections.md +++ b/en/lessons/basics/collections.md @@ -1,8 +1,6 @@ --- version: 1.2.2 title: Collections -redirect_from: - - /lessons/basics/collections/ --- Lists, tuples, keyword lists, and maps. diff --git a/en/lessons/basics/comprehensions.md b/en/lessons/basics/comprehensions.md index ef7bdd5765..70df2a859d 100644 --- a/en/lessons/basics/comprehensions.md +++ b/en/lessons/basics/comprehensions.md @@ -1,8 +1,6 @@ --- version: 1.1.0 title: Comprehensions -redirect_from: - - /lessons/basics/comprehensions/ --- List comprehensions are syntactic sugar for looping through enumerables in Elixir. In this lesson we'll look at how we can use comprehensions for iteration and generation. diff --git a/en/lessons/basics/control-structures.md b/en/lessons/basics/control-structures.md index 12918bc5de..cfa12421cc 100644 --- a/en/lessons/basics/control-structures.md +++ b/en/lessons/basics/control-structures.md @@ -1,8 +1,6 @@ --- version: 1.1.1 title: Control Structures -redirect_from: - - /lessons/basics/control-structures/ --- In this lesson we will look at the control structures available to us in Elixir. diff --git a/en/lessons/basics/documentation.md b/en/lessons/basics/documentation.md index c68b86bdaa..6383a32755 100644 --- a/en/lessons/basics/documentation.md +++ b/en/lessons/basics/documentation.md @@ -1,8 +1,6 @@ --- version: 1.0.2 title: Documentation -redirect_from: - - /lessons/basics/documentation/ --- Documenting Elixir code. diff --git a/en/lessons/basics/enum.md b/en/lessons/basics/enum.md index 572fe38956..e575ecf5e2 100644 --- a/en/lessons/basics/enum.md +++ b/en/lessons/basics/enum.md @@ -1,8 +1,6 @@ --- version: 1.4.0 title: Enum -redirect_from: - - /lessons/basics/enum/ --- A set of algorithms for enumerating over enumerables. diff --git a/en/lessons/basics/functions.md b/en/lessons/basics/functions.md index d4a24b62a0..ada183b2fb 100644 --- a/en/lessons/basics/functions.md +++ b/en/lessons/basics/functions.md @@ -1,8 +1,6 @@ --- version: 1.1.0 title: Functions -redirect_from: - - /lessons/basics/functions/ --- In Elixir and many functional languages, functions are first class citizens. We will learn about the types of functions in Elixir, what makes them different, and how to use them. diff --git a/en/lessons/basics/iex-helpers.md b/en/lessons/basics/iex-helpers.md index 1fbf9d9f98..61029cf09c 100644 --- a/en/lessons/basics/iex-helpers.md +++ b/en/lessons/basics/iex-helpers.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: IEx Helpers -redirect_from: - - /lessons/basics/iex-helpers/ --- {% include toc.html %} diff --git a/en/lessons/basics/mix-tasks.md b/en/lessons/basics/mix-tasks.md index cd16982027..e1fdbf2da4 100644 --- a/en/lessons/basics/mix-tasks.md +++ b/en/lessons/basics/mix-tasks.md @@ -1,8 +1,6 @@ --- version: 1.0.2 title: Custom Mix Tasks -redirect_from: - - /lessons/basics/mix-tasks/ --- Creating custom Mix tasks for your Elixir projects. diff --git a/en/lessons/basics/mix.md b/en/lessons/basics/mix.md index 441958aa71..6ded67c448 100644 --- a/en/lessons/basics/mix.md +++ b/en/lessons/basics/mix.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Mix -redirect_from: - - /lessons/basics/mix/ --- Before we can dive into the deeper waters of Elixir we first need to learn about Mix. If you're familiar with Ruby, Mix is Bundler, RubyGems, and Rake combined. It's a crucial part of any Elixir project and in this lesson we're going to explore just a few of its great features. To see all that Mix has to offer run `mix help`. diff --git a/en/lessons/basics/modules.md b/en/lessons/basics/modules.md index 2b856b6258..d779a4583c 100644 --- a/en/lessons/basics/modules.md +++ b/en/lessons/basics/modules.md @@ -1,8 +1,6 @@ --- version: 1.2.0 title: Modules -redirect_from: - - /lessons/basics/modules/ --- We know from experience it's unruly to have all of our functions in the same file and scope. In this lesson we're going to cover how to group functions and define a specialized map known as a struct in order to organize our code more efficiently. diff --git a/en/lessons/basics/pattern-matching.md b/en/lessons/basics/pattern-matching.md index faca0c70bc..51675fa3fc 100644 --- a/en/lessons/basics/pattern-matching.md +++ b/en/lessons/basics/pattern-matching.md @@ -1,8 +1,6 @@ --- version: 1.0.2 title: Pattern Matching -redirect_from: - - /lessons/basics/pattern-matching/ --- Pattern matching is a powerful part of Elixir. It allows us to match simple values, data structures, and even functions. In this lesson we will begin to see how pattern matching is used. diff --git a/en/lessons/basics/pipe-operator.md b/en/lessons/basics/pipe-operator.md index 9050847287..e7d66b0ad2 100644 --- a/en/lessons/basics/pipe-operator.md +++ b/en/lessons/basics/pipe-operator.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Pipe Operator -redirect_from: - - /lessons/basics/pipe-operator/ --- The pipe operator `|>` passes the result of an expression as the first parameter of another expression. diff --git a/en/lessons/basics/sigils.md b/en/lessons/basics/sigils.md index c4b1081ecd..3e0eabad01 100644 --- a/en/lessons/basics/sigils.md +++ b/en/lessons/basics/sigils.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Sigils -redirect_from: - - /lessons/basics/sigils/ --- Working with and creating sigils. diff --git a/en/lessons/basics/strings.md b/en/lessons/basics/strings.md index 6c837e3134..1f3fce674e 100644 --- a/en/lessons/basics/strings.md +++ b/en/lessons/basics/strings.md @@ -1,8 +1,6 @@ --- version: 1.1.1 title: Strings -redirect_from: - - /lessons/basics/strings/ --- Strings, Char Lists, Graphemes and Codepoints. diff --git a/en/lessons/basics/testing.md b/en/lessons/basics/testing.md index f2d8f65f74..20c817b2f5 100644 --- a/en/lessons/basics/testing.md +++ b/en/lessons/basics/testing.md @@ -1,8 +1,6 @@ --- version: 1.1.1 title: Testing -redirect_from: - - /lessons/basics/testing/ --- Testing is an important part of developing software. In this lesson we'll look at how to test our Elixir code with ExUnit and some best practices for doing so. diff --git a/en/lessons/libraries/benchee.md b/en/lessons/libraries/benchee.md index 93af93be8c..845cbf5111 100644 --- a/en/lessons/libraries/benchee.md +++ b/en/lessons/libraries/benchee.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Benchee -redirect_from: - - /lessons/libraries/benchee/ --- We can't just guess about which functions are fast and which are slow - we need actual measurements when we're curious. That's where benchmarking comes in. In this lesson, we'll learn about how easy it is to measure the speed of our code. diff --git a/en/lessons/libraries/guardian.md b/en/lessons/libraries/guardian.md index 04d5cd900f..23e5d5dfc0 100644 --- a/en/lessons/libraries/guardian.md +++ b/en/lessons/libraries/guardian.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Guardian (Basics) -redirect_from: - - /lessons/libraries/guardian/ --- [Guardian](https://github.com/ueberauth/guardian) is a widely used authentication library based on [JWT](https://jwt.io/) (JSON Web Tokens). diff --git a/en/lessons/libraries/poolboy.md b/en/lessons/libraries/poolboy.md index e9a349fe1f..7242a9bc4f 100644 --- a/en/lessons/libraries/poolboy.md +++ b/en/lessons/libraries/poolboy.md @@ -1,8 +1,6 @@ --- version: 1.1.1 title: Poolboy -redirect_from: - - /lessons/libraries/poolboy/ --- You can easily exhaust your system resources if you do not limit the maximum number of concurrent processes that your program can spawn. [Poolboy](https://github.com/devinus/poolboy) is a widely used lightweight, generic pooling library for Erlang that addresses this issue. diff --git a/en/lessons/specifics/debugging.md b/en/lessons/specifics/debugging.md index a0732bdf34..d8186baee3 100644 --- a/en/lessons/specifics/debugging.md +++ b/en/lessons/specifics/debugging.md @@ -1,8 +1,6 @@ --- version: 1.0.1 title: Debugging -redirect_from: - - /lessons/specifics/debugging/ --- Bugs are an inherent part of any project, that's why we need debugging. In this lesson we'll learn about debugging Elixir code as well as static analysis tools to help find potential bugs. diff --git a/en/lessons/specifics/ecto.md b/en/lessons/specifics/ecto.md index 29f13963ec..8e8c49d43b 100644 --- a/en/lessons/specifics/ecto.md +++ b/en/lessons/specifics/ecto.md @@ -1,8 +1,6 @@ --- version: 1.2.0 title: Ecto -redirect_from: - - /lessons/specifics/ecto/ --- Ecto is an official Elixir project providing a database wrapper and integrated query language. With Ecto we're able to create migrations, define schemas, insert and update records, and query them. diff --git a/en/lessons/specifics/eex.md b/en/lessons/specifics/eex.md index b1d5fec232..575756c6e0 100644 --- a/en/lessons/specifics/eex.md +++ b/en/lessons/specifics/eex.md @@ -1,8 +1,6 @@ --- version: 1.0.2 title: Embedded Elixir (EEx) -redirect_from: - - /lessons/specifics/eex/ --- Much like Ruby has ERB and Java has JSPs, Elixir has EEx, or Embedded Elixir. With EEx we can embed and evaluate Elixir inside strings. diff --git a/en/lessons/specifics/ets.md b/en/lessons/specifics/ets.md index 81a00750c1..e0a62295d8 100644 --- a/en/lessons/specifics/ets.md +++ b/en/lessons/specifics/ets.md @@ -1,8 +1,6 @@ --- version: 1.1.0 title: Erlang Term Storage (ETS) -redirect_from: - - /lessons/specifics/ets/ --- Erlang Term Storage, commonly referred to as ETS, is a powerful storage engine built into OTP and available to use in Elixir. In this lesson we'll look at how to interface with ETS and how it can be employed in our applications. diff --git a/en/lessons/specifics/mnesia.md b/en/lessons/specifics/mnesia.md index 383b18f53d..fdb730bb22 100644 --- a/en/lessons/specifics/mnesia.md +++ b/en/lessons/specifics/mnesia.md @@ -1,8 +1,6 @@ --- version: 1.0.0 title: Mnesia -redirect_from: - - /lessons/specifics/mnesia/ --- Mnesia is a heavy duty real-time distributed database management system. diff --git a/en/lessons/specifics/plug.md b/en/lessons/specifics/plug.md index 153df613b4..ecb1bb16a5 100644 --- a/en/lessons/specifics/plug.md +++ b/en/lessons/specifics/plug.md @@ -1,8 +1,6 @@ --- version: 1.1.2 title: Plug -redirect_from: - - /lessons/specifics/plug/ --- If you're familiar with Ruby you can think of Plug as Rack with a splash of Sinatra. diff --git a/lessons/advanced/behaviours.md b/lessons/advanced/behaviours.md new file mode 100644 index 0000000000..7daec6567e --- /dev/null +++ b/lessons/advanced/behaviours.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/behaviours/ +--- diff --git a/lessons/advanced/concurrency.md b/lessons/advanced/concurrency.md new file mode 100644 index 0000000000..fe30d9449c --- /dev/null +++ b/lessons/advanced/concurrency.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/concurrency/ +--- diff --git a/lessons/advanced/erlang.md b/lessons/advanced/erlang.md new file mode 100644 index 0000000000..6e33987a76 --- /dev/null +++ b/lessons/advanced/erlang.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/erlang/ +--- diff --git a/lessons/advanced/error-handling.md b/lessons/advanced/error-handling.md new file mode 100644 index 0000000000..2ca9d206e0 --- /dev/null +++ b/lessons/advanced/error-handling.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/error-handling/ +--- diff --git a/lessons/advanced/escripts.md b/lessons/advanced/escripts.md new file mode 100644 index 0000000000..19603caaea --- /dev/null +++ b/lessons/advanced/escripts.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/escripts/ +--- diff --git a/lessons/advanced/gen-stage.md b/lessons/advanced/gen-stage.md new file mode 100644 index 0000000000..f392d79fff --- /dev/null +++ b/lessons/advanced/gen-stage.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/gen-stage/ +--- diff --git a/lessons/advanced/metaprogramming.md b/lessons/advanced/metaprogramming.md new file mode 100644 index 0000000000..b3fba9bcaf --- /dev/null +++ b/lessons/advanced/metaprogramming.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/metaprogramming/ +--- diff --git a/lessons/advanced/otp-concurrency.md b/lessons/advanced/otp-concurrency.md new file mode 100644 index 0000000000..0a925e386a --- /dev/null +++ b/lessons/advanced/otp-concurrency.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/otp-concurrency/ +--- diff --git a/lessons/advanced/otp-supervisors.md b/lessons/advanced/otp-supervisors.md new file mode 100644 index 0000000000..cd468dda28 --- /dev/null +++ b/lessons/advanced/otp-supervisors.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/otp-supervisors/ +--- diff --git a/lessons/advanced/protocols.md b/lessons/advanced/protocols.md new file mode 100644 index 0000000000..7c10d5a7b0 --- /dev/null +++ b/lessons/advanced/protocols.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/protocols/ +--- diff --git a/lessons/advanced/typespec.md b/lessons/advanced/typespec.md new file mode 100644 index 0000000000..c2269692f6 --- /dev/null +++ b/lessons/advanced/typespec.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/typespec/ +--- diff --git a/lessons/advanced/umbrella-projects.md b/lessons/advanced/umbrella-projects.md new file mode 100644 index 0000000000..1c492fa855 --- /dev/null +++ b/lessons/advanced/umbrella-projects.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/advanced/umbrella-projects/ +--- diff --git a/lessons/basics/basics.md b/lessons/basics/basics.md new file mode 100644 index 0000000000..ee34d444d5 --- /dev/null +++ b/lessons/basics/basics.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/basics/ +--- diff --git a/lessons/basics/collections.md b/lessons/basics/collections.md new file mode 100644 index 0000000000..898982a09a --- /dev/null +++ b/lessons/basics/collections.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/collections/ +--- diff --git a/lessons/basics/comprehensions.md b/lessons/basics/comprehensions.md new file mode 100644 index 0000000000..8ae982d476 --- /dev/null +++ b/lessons/basics/comprehensions.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/comprehensions/ +--- diff --git a/lessons/basics/control-structures.md b/lessons/basics/control-structures.md new file mode 100644 index 0000000000..9497a65eae --- /dev/null +++ b/lessons/basics/control-structures.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/control-structures/ +--- diff --git a/lessons/basics/documentation.md b/lessons/basics/documentation.md new file mode 100644 index 0000000000..5732d3df30 --- /dev/null +++ b/lessons/basics/documentation.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/documentation/ +--- diff --git a/lessons/basics/enum.md b/lessons/basics/enum.md new file mode 100644 index 0000000000..2ddf627a8f --- /dev/null +++ b/lessons/basics/enum.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/enum/ +--- diff --git a/lessons/basics/functions.md b/lessons/basics/functions.md new file mode 100644 index 0000000000..4692c915e5 --- /dev/null +++ b/lessons/basics/functions.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/functions/ +--- diff --git a/lessons/basics/iex-helpers.md b/lessons/basics/iex-helpers.md new file mode 100644 index 0000000000..ba034b713d --- /dev/null +++ b/lessons/basics/iex-helpers.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/iex-helpers/ +--- diff --git a/lessons/basics/mix-tasks.md b/lessons/basics/mix-tasks.md new file mode 100644 index 0000000000..61eeb2f7f2 --- /dev/null +++ b/lessons/basics/mix-tasks.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/mix-tasks/ +--- diff --git a/lessons/basics/mix.md b/lessons/basics/mix.md new file mode 100644 index 0000000000..5a5453b8f0 --- /dev/null +++ b/lessons/basics/mix.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/mix/ +--- diff --git a/lessons/basics/modules.md b/lessons/basics/modules.md new file mode 100644 index 0000000000..ac0660d8ab --- /dev/null +++ b/lessons/basics/modules.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/modules/ +--- diff --git a/lessons/basics/pattern-matching.md b/lessons/basics/pattern-matching.md new file mode 100644 index 0000000000..a25301d825 --- /dev/null +++ b/lessons/basics/pattern-matching.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/pattern-matching/ +--- diff --git a/lessons/basics/pipe-operator.md b/lessons/basics/pipe-operator.md new file mode 100644 index 0000000000..fe91e70fbf --- /dev/null +++ b/lessons/basics/pipe-operator.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/pipe-operator/ +--- diff --git a/lessons/basics/sigils.md b/lessons/basics/sigils.md new file mode 100644 index 0000000000..09d139ec54 --- /dev/null +++ b/lessons/basics/sigils.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/sigils/ +--- diff --git a/lessons/basics/strings.md b/lessons/basics/strings.md new file mode 100644 index 0000000000..b87b249484 --- /dev/null +++ b/lessons/basics/strings.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/strings/ +--- diff --git a/lessons/basics/testing.md b/lessons/basics/testing.md new file mode 100644 index 0000000000..845d71d730 --- /dev/null +++ b/lessons/basics/testing.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/basics/testing/ +--- diff --git a/lessons/libraries/benchee.md b/lessons/libraries/benchee.md new file mode 100644 index 0000000000..e0340e597c --- /dev/null +++ b/lessons/libraries/benchee.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/libraries/benchee/ +--- diff --git a/lessons/libraries/bypass.md b/lessons/libraries/bypass.md new file mode 100644 index 0000000000..1093742194 --- /dev/null +++ b/lessons/libraries/bypass.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/libraries/bypass/ +--- diff --git a/lessons/libraries/guardian.md b/lessons/libraries/guardian.md new file mode 100644 index 0000000000..36df93db70 --- /dev/null +++ b/lessons/libraries/guardian.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/libraries/guardian/ +--- diff --git a/lessons/libraries/poolboy.md b/lessons/libraries/poolboy.md new file mode 100644 index 0000000000..875deb1b7b --- /dev/null +++ b/lessons/libraries/poolboy.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/libraries/poolboy/ +--- diff --git a/lessons/specifics/debugging.md b/lessons/specifics/debugging.md new file mode 100644 index 0000000000..3ccd1df55a --- /dev/null +++ b/lessons/specifics/debugging.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/specifics/debugging/ +--- diff --git a/lessons/specifics/ecto.md b/lessons/specifics/ecto.md new file mode 100644 index 0000000000..c907a640cb --- /dev/null +++ b/lessons/specifics/ecto.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/specifics/ecto/ +--- diff --git a/lessons/specifics/eex.md b/lessons/specifics/eex.md new file mode 100644 index 0000000000..c92b93807a --- /dev/null +++ b/lessons/specifics/eex.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/specifics/eex/ +--- diff --git a/lessons/specifics/ets.md b/lessons/specifics/ets.md new file mode 100644 index 0000000000..5731373662 --- /dev/null +++ b/lessons/specifics/ets.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/specifics/ets/ +--- diff --git a/lessons/specifics/mnesia.md b/lessons/specifics/mnesia.md new file mode 100644 index 0000000000..98890fe0cd --- /dev/null +++ b/lessons/specifics/mnesia.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/specifics/mnesia/ +--- diff --git a/lessons/specifics/plug.md b/lessons/specifics/plug.md new file mode 100644 index 0000000000..8442c56bc3 --- /dev/null +++ b/lessons/specifics/plug.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/specifics/plug/ +--- diff --git a/lessons/specifics/registry.md b/lessons/specifics/registry.md new file mode 100644 index 0000000000..38a7d6cb73 --- /dev/null +++ b/lessons/specifics/registry.md @@ -0,0 +1,4 @@ +--- +redirect_to: + - /en/lessons/specifics/registry/ +---