diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index e9d1b5095..b1ecdfba3 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -24,7 +24,7 @@ If applicable, add screenshots to help explain your problem.
- OS: [e.g. ubuntu, windows]
**iris.Version**
-- e.g. v12.2.0-beta4 or master
+- e.g. v12.2.0 or master
Please make sure the bug is reproducible over the `master` branch:
diff --git a/.gitignore b/.gitignore
index 2a8d73745..f15262a5c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+.idea
.vscode
.directory
coverage.out
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 92197ef13..dbf1a8224 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -26,7 +26,7 @@ Instructions can be found at: https://github.com/kataras/iris/issues/796
### Writing
-Write an article about Iris in https://medium.com, https://dev.to or if you're being a hackathon at https://hackernoon.com, some [examples](https://github.com/kataras/iris/wiki/Publications).
+Write an article about Iris in https://medium.com, https://dev.to or if you're being a hackathon at https://hackernoon.com and send us the link on iris-go@outlook.com.
### Social networks
diff --git a/FAQ.md b/FAQ.md
index 776047fa1..9a102d2b6 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -19,18 +19,18 @@ Add a `badge` to your open-source projects powered by [Iris](https://iris-go.com
## How to upgrade
```sh
-go get -u github.com/kataras/iris/v12@master
+go get github.com/kataras/iris/v12@latest
```
-Go version 1.13 and above is required.
+Go version 1.20 and above is required.
## Learning
-More than 180 practical examples, tutorials and articles at:
+More than 280 practical examples, tutorials and articles at:
- https://www.iris-go.com/docs
- https://www.iris-go.com/#ebookDonateForm
-- https://github.com/kataras/iris/wiki/Starter-kits
+
- https://github.com/kataras/iris/tree/master/_examples
- https://pkg.go.dev/github.com/kataras/iris/v12@master
diff --git a/HISTORY.md b/HISTORY.md
index 05cee57e4..f22a8e9ce 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,5 +1,3 @@
-
-
# Changelog
### Looking for free and real-time support?
@@ -19,14 +17,35 @@
Developers are not forced to upgrade if they don't really need it. Upgrade whenever you feel ready.
-**How to upgrade**: Open your command-line and execute this command: `go get github.com/kataras/iris/v12@latest`.
+**How to upgrade**: Open your command-line and execute this command: `go get github.com/kataras/iris/v12@latest` and `go mod tidy -compat=1.20`.
-# Next
+# Sa, 11 March 2023 | v12.2.0
This release introduces new features and some breaking changes.
The codebase for Dependency Injection, Internationalization and localization and more have been simplified a lot (fewer LOCs and easier to read and follow up).
+## 24 Dec 2022
+
+All new features have been tested in production and seem to work fine. Fixed all reported and reproducible bugs. The `v12.2.0-beta7` is the latest beta release of v12.2.0. Expect the final public and stable release of v12.2.0 shortly after February 2023.
+
## Fixes and Improvements
+
+- Add `iris.TrimParamFilePart` to handle cases like [#2024](https://github.com/kataras/iris/issues/2024) and improve the [_examples/routing/dynamic-path/main.go](_examples/routing/dynamic-path/main.go#L356) example to include that case as well.
+
+- **Breaking-change**: HTML template functions `yield`, `part`, `partial`, `partial_r` and `render` now accept (and require for some cases) a second argument of the binding data context too. Convert: `{{ yield }}` to `{{ yield . }}`, `{{ render "templates/mytemplate.html" }}` to `{{ render "templates/mytemplate.html" . }}`, `{{ partial "partials/mypartial.html" }}` to `{{ partial "partials/mypartial.html" . }}` and so on.
+
+- Add new `URLParamSeparator` to the configuration. Defaults to "," but can be set to an empty string to disable splitting query values on `Context.URLParamSlice` method.
+
+- [PR #1992](https://github.com/kataras/iris/pull/1992): Added support for third party packages on [httptest](https://github.com/kataras/iris/tree/master/httptest). An example using 3rd-party module named [Ginkgo](github.com/onsi/ginkgo) can be found [here](https://github.com/kataras/iris/blob/master/_examples/testing/ginkgotest).
+
+- Add `Context.Render` method for compatibility.
+
+- Support of embedded [locale files](https://github.com/kataras/iris/blob/master/_examples/i18n/template-embedded/main.go) using standard `embed.FS` with the new `LoadFS` function.
+- Support of direct embedded view engines (`HTML, Blocks, Django, Handlebars, Pug, Amber, Jet` and `Ace`) with `embed.FS` or `fs.FS` (in addition to `string` and `http.FileSystem` types).
+- Add support for `embed.FS` and `fs.FS` on `app.HandleDir`.
+
+- Add `iris.Patches()` package-level function to customize Iris Request Context REST (and more to come) behavior.
+- Minor fixes.
- Enable setting a custom "go-redis" client through `SetClient` go redis driver method or `Client` struct field on sessions/database/redis driver as requested at [chat](https://chat.iris-go.com).
- Ignore `"csrf.token"` form data key when missing on `ctx.ReadForm` by default as requested at [#1941](https://github.com/kataras/iris/issues/1941).
@@ -713,7 +732,7 @@ Prior to this version the `iris.Context` was the only one dependency that has be
| `uint, uint8, uint16, uint32, uint64`, | |
| `float, float32, float64`, | |
| `bool`, | |
-| `slice` | [Path Parameter](https://github.com/kataras/iris/wiki/Routing-path-parameter-types) |
+| `slice` | [Path Parameter](https://github.com/kataras/iris/blob/master/_examples/routing/dynamic-path/main.go#L20) |
| Struct | [Request Body](https://github.com/kataras/iris/tree/master/_examples/request-body) of `JSON`, `XML`, `YAML`, `Form`, `URL Query`, `Protobuf`, `MsgPack` |
Here is a preview of what the new Hero handlers look like:
@@ -985,7 +1004,7 @@ Various improvements and linting.
# Su, 29 December 2019 | v12.1.4
-Minor fix on serving [embedded files](https://github.com/kataras/iris/wiki/File-server).
+Minor fix on serving embedded files.
# We, 25 December 2019 | v12.1.3
@@ -1050,15 +1069,13 @@ All known issues.
### Internationalization and localization
-Support for i18n is now a **builtin feature** and is being respected across your entire application, per say [sitemap](https://github.com/kataras/iris/wiki/Sitemap) and [views](https://github.com/kataras/iris/blob/master/_examples/i18n/basic/main.go#L50).
-
-Refer to the wiki section: https://github.com/kataras/iris/wiki/Sitemap for details.
+Support for i18n is now a **builtin feature** and is being respected across your entire application, per say [sitemap](https://github.com/kataras/iris/blob/master/_examples/routing/sitemap/main.go) and [views](https://github.com/kataras/iris/blob/master/_examples/i18n/basic/main.go#L50).
### Sitemaps
Iris generates and serves one or more [sitemap.xml](https://www.sitemaps.org/protocol.html) for your static routes.
-Navigate through: https://github.com/kataras/iris/wiki/Sitemap for more.
+Navigate through: https://github.com/kataras/iris/blob/master/_examples/routing/sitemap/main.go for more.
## New Examples
@@ -1110,7 +1127,7 @@ This minor version contains improvements on the Problem Details for HTTP APIs im
- Add `ProblemOptions` with `RetryAfter` as requested at: https://github.com/kataras/iris/issues/1335#issuecomment-521330994.
- Add `iris.JSON` alias for `context#JSON` options type.
-[Example](https://github.com/kataras/iris/blob/45d7c6fedb5adaef22b9730592255f7bb375e809/_examples/routing/http-errors/main.go#L85) and [wikis](https://github.com/kataras/iris/wiki/Routing-error-handlers#the-problem-type) updated.
+[Example](https://github.com/kataras/iris/blob/45d7c6fedb5adaef22b9730592255f7bb375e809/_examples/routing/http-errors/main.go#L85) updated.
References:
diff --git a/HISTORY_ES.md b/HISTORY_ES.md
deleted file mode 100644
index 20cc33980..000000000
--- a/HISTORY_ES.md
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-# Registro de cambios
-
-### ¿Buscando soporte gratuito y en tiempo real?
-
- https://github.com/kataras/iris/issues
- https://chat.iris-go.com
-
-### ¿Buscando versiones anteriores?
-
- https://github.com/kataras/iris/releases
-
-### ¿Quieres ser contratado?
-
- https://facebook.com/iris.framework
-
-### ¿Debo actualizar mi versión de Iris?
-
-Los desarrolladores no están obligados a actualizar si realmente no lo necesitan. Actualice siempre que se sienta listo.
-
-**Cómo actualizar**: Abra su línea de comandos y ejecute este comando: `go get github.com/kataras/iris/v12@latest`.
-
-# Su, 16 February 2020 | v12.1.8
-
-Not translated yet, please navigate to the [english version](HISTORY.md#su-16-february-2020--v1218) instead.
-
-# Sábado, 26 de octubre 2019 | v12.0.0
-
-- Add version suffix of the **import path**, learn why and see what people voted at [issue #1370](https://github.com/kataras/iris/issues/1370)
-
-![](https://iris-go.com/images/vote-v12-version-suffix_26_oct_2019.png)
-
-
-- Todos los errores ahora son compatibles con `errors.Is`, `errors.As` y `fmt.Errorf` de go1.13 y ha sido creado un nuevo paquete `core/errgroup`
-- Corrección [#1383](https://github.com/kataras/iris/issues/1383)
-- Informar en cualquier sistema si no se logró encontrar directorio de plantillas para las vistas.
-- Se removió el método `Party#GetReport`, se mantuvo `Party#GetReporter` que es un `error` y `errgroup.Group`.
-- Se removieron métodos obsoletos del enrutador como StaticWeb y StaticEmbedded_XXX
-- `Context#CheckIfModifiedSince` ahora returna tipo error `context.ErrPreconditionFailed` cuando no se cumplen condiciones del cliente. Uso: `if errors.Is(err, context.ErrPreconditionFailed) { ... }`
-- Se agregó `SourceFileName` y `SourceLineNumber` a `Route`, informan la posición exacta de su registro dentro del código fuente de su proyecto.
-- Se corrige bug sobre enlace de ruta del paquete MVC, ver [PR #1364](https://github.com/kataras/iris/pull/1364)
-- Se agregó `mvc/Application#SortByNumMethods` solicitado en [#1343](https://github.com/kataras/iris/issues/1343#issuecomment-524868164)
-- Código de estado `103 Early Hints` agregado.
-- Se corrigió rendimiento de `session.UpdateExpiration` en nas de 200 mil registros con nuevo radix reportado en [problema #1328](https://github.com/kataras/iris/issues/1328)
-- Nuevo campo de configuración de la base de datos de sesión de redis: `Driver: redis.Redigo()` o `redis.Radix()`, ver [ejemplos actualizados](_examples/sessions/database/redis/)
-- Se agregó soporte de Clusters para la base de datos de sesión redis: radix (`Driver: redis: Radix ()`) como se solicitó en [problema #1339](https://github.com/kataras/iris/issues/1339)
-- Se creó traducción en iraní [README_FA](README_FA.md) en [PR #1360](https://github.com/kataras/iris/pull/1360)
-- Se creó traducción en koreano [README_KO](README_KO.md) en [PR #1356](https://github.com/kataras/iris/pull/1356)
-- Se creó traducción en español [README_ES](README_ES.md) y [HISTORY_ES](HISTORY_ES.md) en [PR #1344](https://github.com/kataras/iris/pull/1344).
-
-iris-contrib/middleare y ejemplos se actualizaron para utilizar la nueva ruta de importación `github.com/kataras/iris/v12`.
-
-# Viernes, 16 de agosto 2019 | v11.2.8
-
-- Establecer `Cookie.SameSite` como `Lax` cuando el uso compartido de sesiones de subdominios esté habilitado[*](https://github.com/kataras/iris/commit/6bbdd3db9139f9038641ce6f00f7b4bab6e62550)
-- Agregados y actualizados todos los [Handlers experimentales](https://github.com/kataras/iris/tree/master/_examples/experimental-handlers)
-- Nueva función `XMLMap` que envuelve un `map[string]interface{}` y la convierte en un contenido xml válido para representarlo a través del método `Context.XML`
-- Se agregaron nuevos campos `ProblemOptions.XML` y ` RenderXML` para renderizar `Problem` como XML(application/problem+xml) en lugar de JSON("application/problem+json) y enriquezca el `Negotiate` para aceptar fácilmente el mime type `application/problem+xml`.
-
-Registro de commits: https://github.com/kataras/iris/compare/v11.2.7...v11.2.8
-
-# Jueves, 15 de agosto 2019 | v11.2.7
-
-Esta versión menor contiene mejoras en los Detalles del problema para las API HTTP implementadas en [v11.2.5](#lunes-12-de-agosto-2019--v1125).
-
-- Ajuste https://github.com/kataras/iris/issues/1335#issuecomment-521319721
-- Agregado `ProblemOptions` con `RetryAfter` como se solicitó en: https://github.com/kataras/iris/issues/1335#issuecomment-521330994.
-- Agregado alias `iris.JSON` para el tipo de opciones `context#JSON`.
-
-[Ejemplos](https://github.com/kataras/iris/blob/45d7c6fedb5adaef22b9730592255f7bb375e809/_examples/routing/http-errors/main.go#L85) y [wikis](https://github.com/kataras/iris/wiki/Routing-error-handlers#the-problem-type) actualizados.
-
-Referencias:
-
-- https://tools.ietf.org/html/rfc7231#section-7.1.3
-- https://tools.ietf.org/html/rfc7807
-
-Registro de commits: https://github.com/kataras/iris/compare/v11.2.6...v11.2.7
-
-# Miércoles, 14 de agosto 2019 | v11.2.6
-
-Permitir [manejar más de una ruta con las mismas rutas y tipos de parámetros pero diferentes funciones de validación de macros](https://github.com/kataras/iris/issues/1058#issuecomment-521110639).
-
-```go
-app.Get("/{alias:string regexp(^[a-z0-9]{1,10}\\.xml$)}", PanoXML)
-app.Get("/{alias:string regexp(^[a-z0-9]{1,10}$)}", Tour)
-```
-
-Registro de commits: https://github.com/kataras/iris/compare/v11.2.5...v11.2.6
-
-# Lunes, 12 de agosto 2019 | v11.2.5
-
-- [Nueva característica: Detalle del problemas para las APIs HTTP](https://github.com/kataras/iris/pull/1336)
-- [Agregado Context.AbsoluteURI](https://github.com/kataras/iris/pull/1336/files#diff-15cce7299aae8810bcab9b0bf9a2fdb1R2368)
-
-Registro de commits: https://github.com/kataras/iris/compare/v11.2.4...v11.2.5
-
-# Viernes, 09 de agosto 2019 | v11.2.4
-
-- Ajustes [iris.Jet: no view engine found for '.jet' or '.html'](https://github.com/kataras/iris/issues/1327)
-- Ajustes [ctx.ViewData no funciona con JetEngine](https://github.com/kataras/iris/issues/1330)
-- **Nueva característica**: [Override de métodos HTTP](https://github.com/kataras/iris/issues/1325)
-- Ajustes [Bajo rendimiento en session.UpdateExpiration en más de 200 mil keys con nueva librería radix](https://github.com/kataras/iris/issues/1328) al introducir el campo de configuración `sessions.Config.Driver` que se establece de forma predeterminada en `Redigo()` pero también se puede establecer en `Radix()`, futuras adiciones son bienvenidas.
-
-Registro de commits: https://github.com/kataras/iris/compare/v11.2.3...v11.2.4
-
-# Martes, 30 de julio 2019 | v11.2.3
-
-- [Nueva característica: Manejar diferentes tipos de parámetros en la misma ruta](https://github.com/kataras/iris/issues/1315)
-- [Nueva característica: Negociación de contenido](https://github.com/kataras/iris/issues/1319)
-- [Context.ReadYAML](https://github.com/kataras/iris/tree/master/_examples/request-body/read-yaml)
-- Ajustes https://github.com/kataras/neffos/issues/1#issuecomment-515698536
-
-# Miércoles, 24 de julio 2019 | v11.2.2
-
-Sesiones como middleware:
-
-```go
-import "github.com/kataras/iris/v12/sessions"
-// [...]
-
-app := iris.New()
-sess := sessions.New(sessions.Config{...})
-
-app.Get("/path", func(ctx iris.Context){
- session := sessions.Get(ctx)
- // [work with session...]
-})
-```
-
-- Agregado `Session.Len() int` para devolver el número total de valores/entradas almacenados.
-- Permitir que `Context.HTML` y `Context.Text` acepten tambien un argumento `args ...interface{}` opcional y variable.
-
-## v11.1.1
-
-- https://github.com/kataras/iris/issues/1298
-- https://github.com/kataras/iris/issues/1207
-
-# Martes, 23 de julio 2019 | v11.2.0
-
-Lea sobre la nueva versión liberada en: https://www.facebook.com/iris.framework/posts/3276606095684693
diff --git a/LICENSE b/LICENSE
index 81f37db63..de4e4a3e7 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
BSD 3-Clause License
-Copyright (c) 2016-2022, Gerasimos (Makis) Maropoulos
+Copyright (c) 2016-2023, Gerasimos (Makis) Maropoulos
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/README.md b/README.md
index 1f1fc2b21..4c4c96f44 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,12 @@
-
-
-
-
-# Iris Web Framework
-
-[![build status](https://img.shields.io/github/workflow/status/kataras/iris/CI/master?style=for-the-badge)](https://github.com/kataras/iris/actions) [![view examples](https://img.shields.io/badge/examples%20-270-a83adf.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=cc2b5e&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community) [![donate](https://img.shields.io/badge/support-Iris-blue.svg?style=for-the-badge&logo=paypal)](https://iris-go.com/donate)
+[![build status](https://img.shields.io/github/actions/workflow/status/kataras/iris/ci.yml?branch=master&style=for-the-badge)](https://github.com/kataras/iris/actions/workflows/ci.yml) [![view examples](https://img.shields.io/badge/examples%20-285-a83adf.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=cc2b5e&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community) [![donate](https://img.shields.io/badge/support-Iris-blue.svg?style=for-the-badge&logo=paypal)](https://iris-go.com/donate)
@@ -21,7 +14,6 @@ Iris is a fast, simple yet fully featured and very efficient web framework for G
It provides a beautifully expressive and easy to use foundation for your next website or API.
-
```go
package main
@@ -217,265 +209,324 @@ Learn what [others saying about Iris](https://www.iris-go.com/#review) and **[st
With your help, we can improve Open Source web development for everyone!
-> [@github](https://github.com/github) is now sponsoring you for $550.00 one time.
->
-> A note from your new sponsor:
->
-> To celebrate Maintainer Month we want to thank you for all you do for the open source community. Check out our blog post to learn more about how GitHub is investing in maintainers. https://github.blog/2022-06-24-thank-you-to-our-maintainers/
-
-> Donations from [China](https://github.com/kataras/iris/issues/1870#issuecomment-1101418349) are now accepted!
-
## 📖 Learning Iris
-### Create a new project
+### Installation
+
+The only requirement is the [Go Programming Language](https://go.dev/dl/).
+
+#### Create a new project
```sh
$ mkdir myapp
$ cd myapp
$ go mod init myapp
-$ go get github.com/kataras/iris/v12@master # or @v12.2.0-beta4
+$ go get github.com/kataras/iris/v12@latest # or @v12.2.0
```
Install on existing project
```sh
$ cd myapp
-$ go get github.com/kataras/iris/v12@master
+$ go get github.com/kataras/iris/v12@latest
```
**Run**
```sh
-$ go mod tidy -compat=1.19
+$ go mod tidy -compat=1.20 # -compat="1.20" for windows.
$ go run .
```
diff --git a/README_ES.md b/README_ES.md
index d08bd2b1f..5cc2e0eba 100644
--- a/README_ES.md
+++ b/README_ES.md
@@ -1,6 +1,6 @@
# Iris Web Framework
-[![build status](https://img.shields.io/github/workflow/status/kataras/iris/CI/master?style=for-the-badge)](https://github.com/kataras/iris/actions) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
+[![build status](https://img.shields.io/github/actions/workflow/status/kataras/iris/ci.yml?branch=master&style=for-the-badge)](https://github.com/kataras/iris/actions/workflows/ci.yml) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
Iris es un framework web rápido, simple pero con muchas funcionalidades y muy eficiente para Go. Proporciona una base bellamente expresiva y fácil de usar para su próximo sitio web o API.
@@ -47,7 +47,7 @@ $ go run ejemplo.go
-Iris contiene un extenso y completo **[wiki](https://github.com/kataras/iris/wiki)** que facilita comenzar con el framework.
+Iris contiene un extenso y completo **[wiki](https://www.iris-go.com/#ebookDonateForm)** que facilita comenzar con el framework.
Para obtener una documentación técnica más detallada, puede dirigirse a nuestros [godocs](https://pkg.go.dev/github.com/kataras/iris/v12@v12.2.0). Y para código ejecutable siempre puede visitar el subdirectorio del repositorio [\_examples](_examples/).
diff --git a/README_FA.md b/README_FA.md
index a5df3f46a..bf4ced560 100644
--- a/README_FA.md
+++ b/README_FA.md
@@ -1,5 +1,5 @@
-
+
## خبرها
> این شاخه تحت توسعه است. برای رفتن به شاخه نسخه بعدی [v12.2.0](HISTORY.md#Next) یا اگر به دنبال یک انتشار پایدار هستید, به جای آن به شاخه [v12.1.8 branch](https://github.com/kataras/iris/tree/v12.1.8) مراجعه کنید.
@@ -8,9 +8,9 @@
> با توجه به بالا بودن حجم کار، ممکن است در پاسخ به [سوالات](https://github.com/kataras/iris/issues) شما تاخیری وجود داشته باشد.
-# چارچوب وب آیریس
+# Iris Web Framework
-[![build status](https://img.shields.io/github/workflow/status/kataras/iris/CI/master?style=for-the-badge)](https://github.com/kataras/iris/actions) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
+[![build status](https://img.shields.io/github/actions/workflow/status/kataras/iris/ci.yml?branch=master&style=for-the-badge)](https://github.com/kataras/iris/actions/workflows/ci.yml) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
آیریس یک چارچوب وب پر سرعت ، ساده و در عین حال کاملاً برجسته و بسیار کارآمد برای Go است.
@@ -242,7 +242,7 @@ Venkatt Guhesan" title="vguhesan" with="75" style="width:75px;max-width:75px;hei
$ mkdir myapp
$ cd myapp
$ go mod init myapp
-$ go get github.com/kataras/iris/v12@master # or @v12.2.0-beta4
+$ go get github.com/kataras/iris/v12@latest # or @v12.2.0
```
@@ -251,7 +251,7 @@ $ go get github.com/kataras/iris/v12@master # or @v12.2.0-beta4
```sh
$ cd myapp
-$ go get github.com/kataras/iris/v12@master
+$ go get github.com/kataras/iris/v12@latest
```
@@ -261,9 +261,9 @@ $ go get github.com/kataras/iris/v12@master
```txt
module myapp
-go 1.19
+go 1.20
-require github.com/kataras/iris/v12 master
+require github.com/kataras/iris/v12 v12.2.0-beta4.0.20220920072528-ff81f370625a
```
![](https://www.iris-go.com/images/gifs/install-create-iris.gif)
diff --git a/README_FR.md b/README_FR.md
index 881e86cb5..fc8468ce4 100644
--- a/README_FR.md
+++ b/README_FR.md
@@ -1,6 +1,6 @@
# Iris Web Framework
-[![build status](https://img.shields.io/github/workflow/status/kataras/iris/CI/master?style=for-the-badge)](https://github.com/kataras/iris/actions) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
+[![build status](https://img.shields.io/github/actions/workflow/status/kataras/iris/ci.yml?branch=master&style=for-the-badge)](https://github.com/kataras/iris/actions/workflows/ci.yml) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
@@ -20,7 +20,7 @@ Lisez [ce que les développeurs pensent d'Iris](https://iris-go.com/testimonials
Un simple Hello World
```sh
-# https://github.com/kataras/iris/wiki/Installation
+# https://www.iris-go.com/#ebookDonateForm
$ go get github.com/kataras/iris/v12@latest
# assume the following code in example.go file
$ cat example.go
@@ -53,7 +53,7 @@ $ go run example.go
-Iris possède un **[wiki](https://github.com/kataras/iris/wiki)** complet et précis qui vous permettra d'implémenter ses fonctionnalités rapidement et facilement.
+Iris possède un **[wiki](https://www.iris-go.com/#ebookDonateForm)** complet et précis qui vous permettra d'implémenter ses fonctionnalités rapidement et facilement.
diff --git a/README_GR.md b/README_GR.md
index f06aa1182..63e80b4eb 100644
--- a/README_GR.md
+++ b/README_GR.md
@@ -1,6 +1,6 @@
# Iris Web Framework
-[![build status](https://img.shields.io/github/workflow/status/kataras/iris/CI/master?style=for-the-badge)](https://github.com/kataras/iris/actions) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
+[![build status](https://img.shields.io/github/actions/workflow/status/kataras/iris/ci.yml?branch=master&style=for-the-badge)](https://github.com/kataras/iris/actions/workflows/ci.yml) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
Το Iris είναι ένα γρήγορο, απλό αλλά και πλήρως λειτουργικό και πολύ αποδοτικό web framework για τη Go γλώσσα προγραμματισμού. Παρέχει ένα εκφραστικό και εύχρηστο υπόβαθρο για την επόμενη ιστοσελίδα σας.
@@ -51,7 +51,7 @@ $ go run example.go
-Το Iris περιέχει εκτενείς και λεπτομερείς **[wiki](https://github.com/kataras/iris/wiki)** καθιστώντας το εύκολο στην εκμάθηση.
+Το Iris περιέχει εκτενείς και λεπτομερείς **[book](https://www.iris-go.com/#ebookDonateForm)** καθιστώντας το εύκολο στην εκμάθηση.
Για λεπτομερέστερη τεχνική τεκμηρίωση μπορείτε να κατευθυνθείτε προς τα [godocs](https://pkg.go.dev/github.com/kataras/iris/v12@v12.2.0) μας. Και για εκτελέσιμο κώδικα μπορείτε πάντα να επισκέπτεστε τα [παραδείγματα](_examples/).
diff --git a/README_KO.md b/README_KO.md
index a61b44589..2990c2f00 100644
--- a/README_KO.md
+++ b/README_KO.md
@@ -1,6 +1,6 @@
# Iris Web Framework
-[![build status](https://img.shields.io/github/workflow/status/kataras/iris/CI/master?style=for-the-badge)](https://github.com/kataras/iris/actions) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
+[![build status](https://img.shields.io/github/actions/workflow/status/kataras/iris/ci.yml?branch=master&style=for-the-badge)](https://github.com/kataras/iris/actions/workflows/ci.yml) [![FOSSA Status](https://img.shields.io/badge/LICENSE%20SCAN-PASSING❤️-CD2956?style=for-the-badge&logo=fossa)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkataras%2Firis?ref=badge_shield) [![view examples](https://img.shields.io/badge/learn%20by-examples-0C8EC5.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=7E18DD&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community)
Iris는 단순하고 빠르며 좋은 성능과 모든 기능을 갖춘 Go언어용 웹 프레임워크입니다. 당신의 웹사이트나 API를 위해서 아름답고 사용하기 쉬운 기반을 제공합니다.
@@ -47,7 +47,7 @@ $ go run example.go
-Iris는 광범위하고 꼼꼼한 **[wiki](https://github.com/kataras/iris/wiki)** 를 가지고 있기 때문에 쉽게 프레임워크를 시작할 수 있습니다.
+Iris는 광범위하고 꼼꼼한 **[wiki](https://www.iris-go.com/#ebookDonateForm)** 를 가지고 있기 때문에 쉽게 프레임워크를 시작할 수 있습니다.
더 자세한 기술문서를 보시려면 [godocs](https://pkg.go.dev/github.com/kataras/iris/v12@v12.2.0)를 방문하세요. 그리고 실행가능한 예제코드는 [\_examples](_examples/) 하위 디렉토리에 있습니다.
diff --git a/README_PT_BR.md b/README_PT_BR.md
new file mode 100644
index 000000000..de1d3b405
--- /dev/null
+++ b/README_PT_BR.md
@@ -0,0 +1,522 @@
+
+
+# Iris Web Framework
+
+[![build status](https://img.shields.io/github/actions/workflow/status/kataras/iris/ci.yml?branch=master&style=for-the-badge)](https://github.com/kataras/iris/actions/workflows/ci.yml) [![view examples](https://img.shields.io/badge/examples%20-270-a83adf.svg?style=for-the-badge&logo=go)](https://github.com/kataras/iris/tree/master/_examples) [![chat](https://img.shields.io/gitter/room/iris_go/community.svg?color=cc2b5e&logo=gitter&style=for-the-badge)](https://gitter.im/iris_go/community) [![donate](https://img.shields.io/badge/support-Iris-blue.svg?style=for-the-badge&logo=paypal)](https://iris-go.com/donate)
+
+
+
+Iris é um framework web rápido, simples, mas completo e muito eficiente para Go.
+
+Ele fornece uma base lindamente expressiva e fácil de usar para seu próximo site ou API.
+
+
+```go
+package main
+
+import "github.com/kataras/iris/v12"
+
+func main() {
+ app := iris.New()
+ app.Use(iris.Compression)
+
+ app.Get("/", func(ctx iris.Context) {
+ ctx.HTML("Hello %s!", "World")
+ })
+
+ app.Listen(":8080")
+}
+```
+
+
+
+Como um [Desenvolvedor Go](https://twitter.com/dkuye/status/1532087942696554497) disse uma vez, **Iris abrangeu tudo e se manteve forte ao longo dos anos**.
+
+Alguns dos recursos que o Iris Web Framework oferece:
+
+* HTTP/2 (Push, mesmo para dados incorporados)
+* Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
+* Versionamento de API
+* Model-View-Controller
+* Websockets
+* gRPC
+* Auto-HTTPS
+* Suporte integrado para ngrok para colocar seu aplicativo na internet da maneira mais rápida
+* Router único com caminho dinâmico como parametro com tipos padrões como :uuid, :string, :int... e a habilidade de criar o seu próprio router
+* Compressão
+* View Engines (HTML, Django, Amber, Handlebars, Pug/Jade e mais)
+* Cria seu próprio Servidor de Arquivo e hospeda seu próprio servidor WebDAV
+* Cache
+* Localização (i18n, sitemap)
+* Sessões
+* Respostas Ricas (HTML, Text, Markdown, XML, YAML, Binary, JSON, JSONP, Protocol Buffers, MessagePack, Content Negotiation, Streaming, Server-Sent Events e mais)
+* Compressão de resposta (gzip, deflate, brotli, snappy, s2)
+* Requisições Ricas (Bind URL Query, Headers, Form, Text, XML, YAML, Binary, JSON, Validation, Protocol Buffers, MessagePack e mais)
+* Injeção de dependência (MVC, Handlers, API Routers)
+* Suite de testes
+* E o mais importante... você obtém respostas rápidas e suporte desde o 1º dia até agora - são seis anos completos!
+
+Aprenda com [o que os outros falam sobre Iris](https://www.iris-go.com/#review) e **[marque com uma estrela](https://github.com/kataras/iris/stargazers)** esse projeto de código aberto para apoiar o seu potencial.
+
+[![](https://iris-go.com/images/reviews.gif)](https://iris-go.com/testimonials/)
+
+[![Benchmarks: Jul 18, 2020 at 10:46am (UTC)](https://iris-go.com/images/benchmarks.svg)](https://github.com/kataras/server-benchmarks)
+
+## 👑 Apoiadores
+
+Com a sua ajuda, nós podemos melhorar o desenvolvimento web de Código Aberto para todos !
+
+> [@github](https://github.com/github) agora está patrocinando você por $550,00 uma vez.
+>
+> Uma nota do seu novo patrocinador:
+>
+> Para comemorar o Mês do Mantenedor, queremos agradecer por tudo que você faz pela comunidade de código aberto. Confira nossa postagem no blog para saber mais sobre como o GitHub está investindo em mantenedores
+
+> Doações direto da [China](https://github.com/kataras/iris/issues/1870#issuecomment-1101418349) agora são aceitas!
+
+
", err.Error())
+ return
+ }
}
diff --git a/_benchmarks/view/blocks/views/layouts/main.html b/_benchmarks/view/blocks/views/layouts/main.html
index 934080b2f..7686db908 100644
--- a/_benchmarks/view/blocks/views/layouts/main.html
+++ b/_benchmarks/view/blocks/views/layouts/main.html
@@ -1 +1 @@
-{{.Title}}{{ template "content" . }}
\ No newline at end of file
+{{.Title}}{{ template "content" . }}
\ No newline at end of file
diff --git a/_benchmarks/view/django/main.go b/_benchmarks/view/django/main.go
index 4c625c492..ad6cc0341 100644
--- a/_benchmarks/view/django/main.go
+++ b/_benchmarks/view/django/main.go
@@ -21,5 +21,8 @@ func index(ctx iris.Context) {
// On Django this is ignored: ctx.ViewLayout("layouts/main")
// Layouts are only rendered from inside the index page itself
// using the "extends" keyword.
- ctx.View("index", data)
+ if err := ctx.View("index", data); err != nil {
+ ctx.HTML("
", err.Error())
+ return
+ }
}
diff --git a/_benchmarks/view/handlebars/views/layouts/main.html b/_benchmarks/view/handlebars/views/layouts/main.html
index 50a79f87e..c37a0de86 100644
--- a/_benchmarks/view/handlebars/views/layouts/main.html
+++ b/_benchmarks/view/handlebars/views/layouts/main.html
@@ -1 +1 @@
-{{Title}}{{ yield }}
\ No newline at end of file
+{{Title}}{{ yield . }}
\ No newline at end of file
diff --git a/_benchmarks/view/html/main.go b/_benchmarks/view/html/main.go
index 214c4b112..494f1c76c 100644
--- a/_benchmarks/view/html/main.go
+++ b/_benchmarks/view/html/main.go
@@ -20,5 +20,8 @@ func index(ctx iris.Context) {
}
ctx.ViewLayout("layouts/main")
- ctx.View("index", data)
+ if err := ctx.View("index", data); err != nil {
+ ctx.HTML("
%s
", err.Error())
+ return
+ }
}
diff --git a/_benchmarks/view/html/views/layouts/main.html b/_benchmarks/view/html/views/layouts/main.html
index 379a5ffad..398a0aadb 100644
--- a/_benchmarks/view/html/views/layouts/main.html
+++ b/_benchmarks/view/html/views/layouts/main.html
@@ -1 +1 @@
-{{.Title}}{{ yield }}
\ No newline at end of file
+{{.Title}}{{ yield . }}
\ No newline at end of file
diff --git a/_benchmarks/view/jet/main.go b/_benchmarks/view/jet/main.go
index c58887597..aa28cdf65 100644
--- a/_benchmarks/view/jet/main.go
+++ b/_benchmarks/view/jet/main.go
@@ -21,5 +21,8 @@ func index(ctx iris.Context) {
// On Jet this is ignored: ctx.ViewLayout("layouts/main")
// Layouts are only rendered from inside the index page itself
// using the "extends" keyword.
- ctx.View("index", data)
+ if err := ctx.View("index", data); err != nil {
+ ctx.HTML("
%s
", err.Error())
+ return
+ }
}
diff --git a/_benchmarks/view/pug/main.go b/_benchmarks/view/pug/main.go
index fd4e340e6..aa1affcac 100644
--- a/_benchmarks/view/pug/main.go
+++ b/_benchmarks/view/pug/main.go
@@ -22,5 +22,8 @@ func index(ctx iris.Context) {
// On Pug this is ignored: ctx.ViewLayout("layouts/main")
// Layouts are only rendered from inside the index page itself
// using the "extends" keyword.
- ctx.View("index", data)
+ if err := ctx.View("index", data); err != nil {
+ ctx.HTML("