From 55a2f4650c3da1ffba5852a47ac7e5a5601362a3 Mon Sep 17 00:00:00 2001
From: Luigi Morel
Date: Fri, 21 Jun 2024 13:55:47 +0300
Subject: [PATCH 1/2] website with updated modules
---
.cspell.yml | 8 +
.github/dependabot.yml | 20 +-
.github/workflows/node.yml | 46 -
.gitignore | 22 +-
.nvmrc | 1 +
CNAME | 1 -
LICENSE | 222 +-
README.md | 33 +-
assets/scss/_variables_project.scss | 3 -
content/en/_index.html | 77 -
content/en/_index.md | 91 +
content/en/blog/_index.md | 10 +-
content/en/blog/news/_index.md | 6 +-
.../how-to-build-one-effective-middleware.md | 24 +-
content/en/blog/releases/_index.md | 7 +-
content/en/blog/releases/release13.md | 87 +-
content/en/blog/releases/release14.md | 159 +-
content/en/blog/releases/release15.md | 101 +-
content/en/blog/releases/release16.md | 120 +-
content/en/search.md | 1 -
content/es/_index.html | 77 -
content/es/_index.md | 94 +
content/fa/_index.html | 77 -
content/fa/_index.md | 93 +
content/ja/_index.html | 76 -
content/ja/_index.md | 95 +
content/ko-kr/_index.html | 77 -
content/ko-kr/_index.md | 90 +
.../how-to-build-one-effective-middleware.md | 24 +-
content/pt/_index.html | 82 -
content/pt/_index.md | 92 +
content/ru/_index.html | 77 -
content/ru/_index.md | 96 +
content/tr/_index.html | 76 -
content/tr/_index.md | 95 +
content/zh-cn/_index.html | 77 -
content/zh-cn/_index.md | 91 +
content/zh-tw/_index.html | 77 -
content/zh-tw/_index.md | 91 +
go.mod | 10 +-
go.sum | 18 +-
hugo.toml | 6 +-
layouts/404.html | 7 +
layouts/_default/_markup/render-heading.html | 1 +
layouts/partials/footer.html | 39 -
package-lock.json | 1991 +++++++++++++++--
package.json | 60 +-
static/comment.js | 7 -
static/favicons/android-chrome-192x192.png | Bin 26618 -> 0 bytes
static/favicons/android-chrome-512x512.png | Bin 93925 -> 0 bytes
static/favicons/apple-touch-icon.png | Bin 24393 -> 0 bytes
static/favicons/browserconfig.xml | 9 -
static/favicons/favicon-16x16.png | Bin 1415 -> 0 bytes
static/favicons/favicon-32x32.png | Bin 2586 -> 0 bytes
static/favicons/favicon.ico | Bin 15086 -> 0 bytes
static/favicons/mstile-150x150.png | Bin 14776 -> 0 bytes
static/favicons/safari-pinned-tab.svg | 325 ---
static/favicons/site.webmanifest | 19 -
58 files changed, 3427 insertions(+), 1661 deletions(-)
create mode 100644 .cspell.yml
delete mode 100644 .github/workflows/node.yml
create mode 100644 .nvmrc
delete mode 100644 CNAME
delete mode 100644 content/en/_index.html
create mode 100644 content/en/_index.md
delete mode 100644 content/es/_index.html
create mode 100644 content/es/_index.md
delete mode 100644 content/fa/_index.html
create mode 100644 content/fa/_index.md
delete mode 100644 content/ja/_index.html
create mode 100644 content/ja/_index.md
delete mode 100644 content/ko-kr/_index.html
create mode 100644 content/ko-kr/_index.md
delete mode 100644 content/pt/_index.html
create mode 100644 content/pt/_index.md
delete mode 100644 content/ru/_index.html
create mode 100644 content/ru/_index.md
delete mode 100644 content/tr/_index.html
create mode 100644 content/tr/_index.md
delete mode 100644 content/zh-cn/_index.html
create mode 100644 content/zh-cn/_index.md
delete mode 100644 content/zh-tw/_index.html
create mode 100644 content/zh-tw/_index.md
create mode 100644 layouts/404.html
create mode 100644 layouts/_default/_markup/render-heading.html
delete mode 100644 layouts/partials/footer.html
delete mode 100644 static/comment.js
delete mode 100644 static/favicons/android-chrome-192x192.png
delete mode 100644 static/favicons/android-chrome-512x512.png
delete mode 100644 static/favicons/apple-touch-icon.png
delete mode 100644 static/favicons/browserconfig.xml
delete mode 100644 static/favicons/favicon-16x16.png
delete mode 100644 static/favicons/favicon-32x32.png
delete mode 100644 static/favicons/favicon.ico
delete mode 100644 static/favicons/mstile-150x150.png
delete mode 100644 static/favicons/safari-pinned-tab.svg
delete mode 100644 static/favicons/site.webmanifest
diff --git a/.cspell.yml b/.cspell.yml
new file mode 100644
index 000000000..1d9219716
--- /dev/null
+++ b/.cspell.yml
@@ -0,0 +1,8 @@
+# cSpell:ignore textlintrc
+# For settings, see
+# https://www.streetsidesoftware.com/vscode-spell-checker/docs/configuration/
+version: '0.2'
+caseSensitive: true
+words:
+ - Docsy
+ - Gin Web Framework
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 632e8eb25..573e2f0c3 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,10 +1,14 @@
version: 2
updates:
- - package-ecosystem: github-actions
- directory: /
- schedule:
- interval: weekly
- - package-ecosystem: gomod
- directory: /
- schedule:
- interval: weekly
+- package-ecosystem: npm
+ directory: "/"
+ schedule:
+ interval: daily
+ time: '20:00'
+ open-pull-requests-limit: 10
+- package-ecosystem: bundler
+ directory: "/"
+ schedule:
+ interval: daily
+ time: '20:00'
+ open-pull-requests-limit: 10
diff --git a/.github/workflows/node.yml b/.github/workflows/node.yml
deleted file mode 100644
index d1c2b73d7..000000000
--- a/.github/workflows/node.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-name: Run Deploy
-
-on:
- push:
- branches:
- - master
- pull_request:
- branches:
- - master
-
-jobs:
- build:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- node: [ '20' ]
- name: Node ${{ matrix.node }} Setup
- steps:
- - uses: actions/checkout@v4
- - name: Setup node
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node }}
- - name: Install node module
- run: |
- npm install -D --save autoprefixer
- npm install -D --save postcss-cli
- npm audit fix
-
- - name: Setup Hugo
- uses: peaceiris/actions-hugo@v3
- with:
- hugo-version: '0.125.4'
- extended: true
-
- - name: Build
- run: |
- hugo --minify
- echo 'gin-gonic.com' > public/CNAME
-
- - name: Deploy
- uses: peaceiris/actions-gh-pages@v4
- if: github.ref == 'refs/heads/master'
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: ./public
diff --git a/.gitignore b/.gitignore
index 516d63513..40b67f41a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,17 +1,5 @@
-# Binaries for programs and plugins
-*.exe
-*.exe~
-*.dll
-*.so
-*.dylib
-
-# Test binary, build with `go test -c`
-*.test
-
-# Output of the go coverage tool, specifically when used with LiteIDE
-*.out
-
-public
-resources
-node_modules
-.hugo_build.lock
+/public
+resources/
+node_modules/
+package-lock.json
+.hugo_build.lock
\ No newline at end of file
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 000000000..b009dfb9d
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+lts/*
diff --git a/CNAME b/CNAME
deleted file mode 100644
index 8005f2314..000000000
--- a/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-gin-gonic.com
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
index 397ecca79..261eeb9e9 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,201 @@
-MIT License
-
-Copyright (c) 2018 Gin-Gonic
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/README.md b/README.md
index 4a7c3b51e..8ca9d8981 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,24 @@
-
# Gin website
[![Run Deploy](https://github.com/gin-gonic/website/actions/workflows/node.yml/badge.svg)](https://github.com/gin-gonic/website/actions/workflows/node.yml)
-Welcome! This repository houses all the assets required to build the Gin website and documentation. We're pleased that you want to contribute! The website is hosted at https://gin-gonic.com.
+Welcome! This repository houses all the assets required to build the Gin website
+and documentation. We're pleased that you want to contribute! The website is
+hosted at https://gin-gonic.com.
-We use [Hugo](https://gohugo.io/) to format and generate our website, the [Docsy](https://github.com/google/docsy) theme for styling and site structure. Thanks!.
+We use [Hugo](https://gohugo.io/) to format and generate our website, the
+[Docsy](https://github.com/google/docsy) theme for styling and site structure.
+Thanks!.
-**Note:** We only support hugo [v0.75.1 version](https://github.com/gohugoio/hugo/releases/tag/v0.75.1).
+**Note:** We only support hugo
+[v0.75.1 version](https://github.com/gohugoio/hugo/releases/tag/v0.75.1).
## Contribution
- Fork the repository
-You can click the Fork button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called as fork.
+You can click the Fork button in the upper-right area of the screen to create a
+copy of this repository in your GitHub account. This copy is called as fork.
> You need to use the below command to clone code for docsy theme.
@@ -23,15 +28,20 @@ git clone --recurse-submodules --depth 1 https://github.com/google/docsy.git the
- Create one pull request
-Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.
+Make any changes you want in your fork, and when you are ready to send those
+changes to us, go to your fork and create a new pull request to let us know
+about it.
- Merge the pull request
-Once your pull request is created, a Gin reviewer will take responsibility for providing clear, actionable feedback, re-improve and merge.
+Once your pull request is created, a Gin reviewer will take responsibility for
+providing clear, actionable feedback, re-improve and merge.
## Running
-See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions.
+See the
+[official Hugo documentation](https://gohugo.io/getting-started/installing/) for
+Hugo installation instructions.
To run the site locally when you have Hugo installed:
@@ -43,8 +53,11 @@ $ hugo
$ hugo server
```
-This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the site. As you make changes to the source files, Hugo updates the site and forces a browser refresh.
+This will start the local Hugo server on port 1313. Open up your browser to
+http://localhost:1313 to view the site. As you make changes to the source files,
+Hugo updates the site and forces a browser refresh.
## Thanks
-Gin thrives on community participation, and we really appreciate your contributions to our site and our documentation!
+Gin thrives on community participation, and we really appreciate your
+contributions to our site and our documentation!
diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss
index ea30c0e40..256902739 100644
--- a/assets/scss/_variables_project.scss
+++ b/assets/scss/_variables_project.scss
@@ -4,6 +4,3 @@ Add styles or override variables from the theme here.
*/
-$primary: #3176d9 !default;
-$dark: #3176d9 !default;
-
diff --git a/content/en/_index.html b/content/en/_index.html
deleted file mode 100644
index d5a8b9299..000000000
--- a/content/en/_index.html
+++ /dev/null
@@ -1,77 +0,0 @@
-+++
-title = "Gin Web Framework"
-linkTitle = "Gin Web Framework"
-+++
-
-{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" color="orange" >}}
-
The fastest full-featured web framework for Go. Crystal clear.
-
- {{< blocks/link-down color="info" >}}
-
-{{< /blocks/cover >}}
-
-
-{{% blocks/lead color="white" %}}
-
-**What is Gin?**
-
-Gin is a web framework written in Golang.
-
-It features a Martini-like API, but with performance up to 40 times faster than Martini.
-
-If you need performance and productivity, you will love Gin.
-
-{{% /blocks/lead %}}
-
-{{< blocks/section color="light" >}}
-
-{{% blocks/feature icon="fa fa-tachometer-alt" title="Fast" %}}
-Radix tree based routing, small memory foot print. No reflection. Predictable API performance.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-bars" title="Middleware support" %}}
-An incoming HTTP request can be handled by a chain of middleware and the final action.
-For example: Logger, Authorization, GZIP and finally post a message in the DB.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-life-ring" title="Crash-free" %}}
-Gin can catch a panic occurred during a HTTP request and recover it. This way, your server will be always available. It’s also possible to report this panic to Sentry for example!
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="white" >}}
-
-{{% blocks/feature icon="fa fa-check-circle" title="JSON validation" %}}
-Gin can parse and validate the JSON of a request, checking, for example, the existence of required values.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-users-cog" title="Routes grouping" %}}
-Organize your routes better. Authorization required vs non required, different API versions. In addition, groups can be nested infinitely without degrading performance.
-{{% /blocks/feature %}}
-
-
-{{% blocks/feature icon="fa fa-briefcase" title="Error management" %}}
-Gin provides a convenient way to collect all the errors occurred during a HTTP request. Eventually, middleware can write them to a log file, to a database and send them through the network.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="info" >}}
-
-{{% blocks/feature icon="fa fa-images" title="Rendering built-in" %}}
-Gin provides an easy to use API for JSON, XML and HTML rendering.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-code" title="Extendable" %}}
-Creating new middleware is so easy, just check out the sample code.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
diff --git a/content/en/_index.md b/content/en/_index.md
new file mode 100644
index 000000000..45fd10398
--- /dev/null
+++ b/content/en/_index.md
@@ -0,0 +1,91 @@
+---
+title: Gin Web Framework
+linkTitle: Gin Web Framework
+---
+
+{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" >}}
+ Learn More
+
+
+Download
+
+
The fastest full-featured web framework for Go. Crystal clear.
+
+{{< blocks/link-down color="info" >}} {{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**What is Gin?**
+
+Gin is a web framework written in Golang. It features a Martini-like API, but
+with performance up to 40 times faster than Martini. If you need performance and
+productivity, you will love Gin.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Fast" %}}
+
+Radix tree based routing, small memory foot print. No reflection. Predictable
+API performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Middleware support"%}}
+
+An incoming HTTP request can be handled by a chain of middleware and the final
+action. For example: Logger, Authorization, GZIP and finally post a message in
+the DB.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Crash-free" %}}
+
+Gin can catch a panic occurred during a HTTP request and recover it. This way,
+your server will be always available. It’s also possible to report this panic to
+Sentry for example! {{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+
+{{% blocks/feature icon="fa-check-circle" title="JSON validation" %}}
+
+Gin can parse and validate the JSON of a request, checking, for example, the
+existence of required values.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Routes grouping"%}}
+
+Organize your routes better. Authorization required vs non required, different
+API versions. In addition, groups can be nested infinitely without degrading
+performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Error management" %}}
+
+Gin provides a convenient way to collect all the errors occurred during a HTTP
+request. Eventually, middleware can write them to a log file, to a database and
+send them through the network.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Rendering built-in" %}}
+
+Gin provides an easy to use API for JSON, XML and HTML rendering.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Extendable"%}}
+
+Creating new middleware is so easy, just check out the sample code.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/content/en/blog/_index.md b/content/en/blog/_index.md
index bfe08e93d..13fbd0522 100644
--- a/content/en/blog/_index.md
+++ b/content/en/blog/_index.md
@@ -1,13 +1,9 @@
---
-title: "Blog"
-linkTitle: "Blog"
-menu:
- main:
- weight: 30
+title: Blog
+menu: { main: { weight: 30 } }
+linkTitle: Blog
---
-
This is the **blog** section. It has two categories: News and Releases.
Files in these directories will be listed in reverse chronological order.
-
diff --git a/content/en/blog/news/_index.md b/content/en/blog/news/_index.md
index 6d6f3ad0a..c609aa254 100644
--- a/content/en/blog/news/_index.md
+++ b/content/en/blog/news/_index.md
@@ -1,8 +1,4 @@
-
---
-title: "News"
-linkTitle: "News"
+title: News
weight: 20
---
-
-
diff --git a/content/en/blog/news/how-to-build-one-effective-middleware.md b/content/en/blog/news/how-to-build-one-effective-middleware.md
index d93e7cbc3..497dc1f5c 100644
--- a/content/en/blog/news/how-to-build-one-effective-middleware.md
+++ b/content/en/blog/news/how-to-build-one-effective-middleware.md
@@ -1,6 +1,6 @@
---
-title: "How to build one effective middleware?"
-linkTitle: "How to build one effective middleware?"
+title: How to build one effective middleware?
+linkTitle: How to build one effective middleware?
date: 2019-02-26
---
@@ -8,9 +8,14 @@ date: 2019-02-26
The middleware has two parts:
- - part one is what is executed once, when you initialize your middleware. That's where you set up all the global objects, logicals etc. Everything that happens once per application lifetime.
+- part one is what is executed once, when you initialize your middleware. That's
+ where you set up all the global objects, logicals etc. Everything that happens
+ once per application lifetime.
- - part two is what executes on every request. For example, a database middleware you simply inject your "global" database object into the context. Once it's inside the context, you can retrieve it from within other middlewares and your handler function.
+- part two is what executes on every request. For example, a database middleware
+ you simply inject your "global" database object into the context. Once it's
+ inside the context, you can retrieve it from within other middlewares and your
+ handler function.
```go
func funcName(params string) gin.HandlerFunc {
@@ -28,7 +33,7 @@ func funcName(params string) gin.HandlerFunc {
// --->
// The following code is an example
c.Set("TestVar", params)
- c.Next()
+ c.Next()
}
}
```
@@ -84,7 +89,9 @@ func mid2() gin.HandlerFunc {
}
```
-According to [Constituent parts](#Constituent-parts) said, when we run the gin process, **part one** will execute firstly and will print the following information:
+According to [Constituent parts](#Constituent-parts) said, when we run the gin
+process, **part one** will execute firstly and will print the following
+information:
```go
globalMiddleware...1
@@ -104,7 +111,8 @@ mid1...1
mid2...1
```
-When we curl one request `curl -v localhost:8080/rest/n/api/some`, **part two** will execute their middleware and output the following information:
+When we curl one request `curl -v localhost:8080/rest/n/api/some`, **part two**
+will execute their middleware and output the following information:
```go
globalMiddleware...2
@@ -139,5 +147,3 @@ mid1...3
v
globalMiddleware...3
```
-
-
diff --git a/content/en/blog/releases/_index.md b/content/en/blog/releases/_index.md
index 2e7b975d9..e0862723a 100644
--- a/content/en/blog/releases/_index.md
+++ b/content/en/blog/releases/_index.md
@@ -1,8 +1,5 @@
-
---
-title: "Releases"
-linkTitle: "Releases"
+title: Releases
+linkTitle: Releases
weight: 20
---
-
-
diff --git a/content/en/blog/releases/release13.md b/content/en/blog/releases/release13.md
index 43f4656f4..9322d3776 100644
--- a/content/en/blog/releases/release13.md
+++ b/content/en/blog/releases/release13.md
@@ -1,29 +1,70 @@
---
-title: "Gin 1.3.0 is released"
-linkTitle: "Gin 1.3.0 is released"
+title: Gin 1.3.0 is released
+linkTitle: Gin 1.3.0 is released
date: 2018-08-14
---
### CHANGELOG
-- [NEW] Add [`func (*Context) QueryMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.QueryMap), [`func (*Context) GetQueryMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.GetQueryMap), [`func (*Context) PostFormMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.PostFormMap) and [`func (*Context) GetPostFormMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.GetPostFormMap) to support `type map[string]string` as query string or form parameters, see [#1383](https://github.com/gin-gonic/gin/pull/1383)
-- [NEW] Add [`func (*Context) AsciiJSON`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.AsciiJSON), see [#1358](https://github.com/gin-gonic/gin/pull/1358)
-- [NEW] Add `Pusher()` in [`type ResponseWriter`](https://pkg.go.dev/github.com/gin-gonic/gin#ResponseWriter) for supporting http2 push, see [#1273](https://github.com/gin-gonic/gin/pull/1273)
-- [NEW] Add [`func (*Context) DataFromReader`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.DataFromReader) for serving dynamic data, see [#1304](https://github.com/gin-gonic/gin/pull/1304)
-- [NEW] Add [`func (*Context) ShouldBindBodyWith`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBindBodyWith) allowing to call binding multiple times, see [#1341](https://github.com/gin-gonic/gin/pull/1341)
-- [NEW] Support pointers in form binding, see [#1336](https://github.com/gin-gonic/gin/pull/1336)
-- [NEW] Add [`func (*Context) JSONP`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.JSONP), see [#1333](https://github.com/gin-gonic/gin/pull/1333)
-- [NEW] Support default value in form binding, see [#1138](https://github.com/gin-gonic/gin/pull/1138)
-- [NEW] Expose validator engine in [`type StructValidator`](https://pkg.go.dev/github.com/gin-gonic/gin/binding#StructValidator), see [#1277](https://github.com/gin-gonic/gin/pull/1277)
-- [NEW] Add [`func (*Context) ShouldBind`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBind), [`func (*Context) ShouldBindQuery`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBindQuery) and [`func (*Context) ShouldBindJSON`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBindJSON), see [#1047](https://github.com/gin-gonic/gin/pull/1047)
-- [NEW] Add support for `time.Time` location in form binding, see [#1117](https://github.com/gin-gonic/gin/pull/1117)
-- [NEW] Add [`func (*Context) BindQuery`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.BindQuery), see [#1029](https://github.com/gin-gonic/gin/pull/1029)
-- [NEW] Make [jsonite](https://github.com/json-iterator/go) optional with build tags, see [#1026](https://github.com/gin-gonic/gin/pull/1026)
-- [NEW] Show query string in logger, see [#999](https://github.com/gin-gonic/gin/pull/999)
-- [NEW] Add [`func (*Context) SecureJSON`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.SecureJSON), see [#987](https://github.com/gin-gonic/gin/pull/987) and [#993](https://github.com/gin-gonic/gin/pull/993)
-- [DEPRECATE] `func (*Context) GetCookie` for [`func (*Context) Cookie`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.Cookie)
-- [FIX] Don't display color tags if [`func DisableConsoleColor`](https://pkg.go.dev/github.com/gin-gonic/gin#DisableConsoleColor) called, see [#1072](https://github.com/gin-gonic/gin/pull/1072)
-- [FIX] Gin Mode `""` when calling [`func Mode`](https://pkg.go.dev/github.com/gin-gonic/gin#Mode) now returns `const DebugMode`, see [#1250](https://github.com/gin-gonic/gin/pull/1250)
-- [FIX] `Flush()` now doesn't overwrite `responseWriter` status code, see [#1460](https://github.com/gin-gonic/gin/pull/1460)
-
-
+- [NEW] Add
+ [`func (*Context) QueryMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.QueryMap),
+ [`func (*Context) GetQueryMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.GetQueryMap),
+ [`func (*Context) PostFormMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.PostFormMap)
+ and
+ [`func (*Context) GetPostFormMap`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.GetPostFormMap)
+ to support `type map[string]string` as query string or form parameters, see
+ [#1383](https://github.com/gin-gonic/gin/pull/1383)
+- [NEW] Add
+ [`func (*Context) AsciiJSON`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.AsciiJSON),
+ see [#1358](https://github.com/gin-gonic/gin/pull/1358)
+- [NEW] Add `Pusher()` in
+ [`type ResponseWriter`](https://pkg.go.dev/github.com/gin-gonic/gin#ResponseWriter)
+ for supporting http2 push, see
+ [#1273](https://github.com/gin-gonic/gin/pull/1273)
+- [NEW] Add
+ [`func (*Context) DataFromReader`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.DataFromReader)
+ for serving dynamic data, see
+ [#1304](https://github.com/gin-gonic/gin/pull/1304)
+- [NEW] Add
+ [`func (*Context) ShouldBindBodyWith`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBindBodyWith)
+ allowing to call binding multiple times, see
+ [#1341](https://github.com/gin-gonic/gin/pull/1341)
+- [NEW] Support pointers in form binding, see
+ [#1336](https://github.com/gin-gonic/gin/pull/1336)
+- [NEW] Add
+ [`func (*Context) JSONP`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.JSONP),
+ see [#1333](https://github.com/gin-gonic/gin/pull/1333)
+- [NEW] Support default value in form binding, see
+ [#1138](https://github.com/gin-gonic/gin/pull/1138)
+- [NEW] Expose validator engine in
+ [`type StructValidator`](https://pkg.go.dev/github.com/gin-gonic/gin/binding#StructValidator),
+ see [#1277](https://github.com/gin-gonic/gin/pull/1277)
+- [NEW] Add
+ [`func (*Context) ShouldBind`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBind),
+ [`func (*Context) ShouldBindQuery`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBindQuery)
+ and
+ [`func (*Context) ShouldBindJSON`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.ShouldBindJSON),
+ see [#1047](https://github.com/gin-gonic/gin/pull/1047)
+- [NEW] Add support for `time.Time` location in form binding, see
+ [#1117](https://github.com/gin-gonic/gin/pull/1117)
+- [NEW] Add
+ [`func (*Context) BindQuery`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.BindQuery),
+ see [#1029](https://github.com/gin-gonic/gin/pull/1029)
+- [NEW] Make [jsonite](https://github.com/json-iterator/go) optional with build
+ tags, see [#1026](https://github.com/gin-gonic/gin/pull/1026)
+- [NEW] Show query string in logger, see
+ [#999](https://github.com/gin-gonic/gin/pull/999)
+- [NEW] Add
+ [`func (*Context) SecureJSON`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.SecureJSON),
+ see [#987](https://github.com/gin-gonic/gin/pull/987) and
+ [#993](https://github.com/gin-gonic/gin/pull/993)
+- [DEPRECATE] `func (*Context) GetCookie` for
+ [`func (*Context) Cookie`](https://pkg.go.dev/github.com/gin-gonic/gin#Context.Cookie)
+- [FIX] Don't display color tags if
+ [`func DisableConsoleColor`](https://pkg.go.dev/github.com/gin-gonic/gin#DisableConsoleColor)
+ called, see [#1072](https://github.com/gin-gonic/gin/pull/1072)
+- [FIX] Gin Mode `""` when calling
+ [`func Mode`](https://pkg.go.dev/github.com/gin-gonic/gin#Mode) now returns
+ `const DebugMode`, see [#1250](https://github.com/gin-gonic/gin/pull/1250)
+- [FIX] `Flush()` now doesn't overwrite `responseWriter` status code, see
+ [#1460](https://github.com/gin-gonic/gin/pull/1460)
diff --git a/content/en/blog/releases/release14.md b/content/en/blog/releases/release14.md
index 23fd64829..46804251a 100644
--- a/content/en/blog/releases/release14.md
+++ b/content/en/blog/releases/release14.md
@@ -1,6 +1,6 @@
---
-title: "Gin 1.4.0 is released"
-linkTitle: "Gin 1.4.0 is released"
+title: Gin 1.4.0 is released
+linkTitle: Gin 1.4.0 is released
date: 2019-05-08
---
@@ -8,59 +8,114 @@ date: 2019-05-08
#### Feature
-- [NEW] Support for [Go Modules](https://github.com/golang/go/wiki/Modules) [#1569](https://github.com/gin-gonic/gin/pull/1569)
-- [NEW] Refactor of form mapping multipart request [#1829](https://github.com/gin-gonic/gin/pull/1829)
-- [NEW] Supporting file binding [#1264](https://github.com/gin-gonic/gin/pull/1264)
-- [NEW] Add support for mapping arrays [#1797](https://github.com/gin-gonic/gin/pull/1797)
-- [NEW] Make context.Keys available as LogFormatterParams [#1779](https://github.com/gin-gonic/gin/pull/1779)
-- [NEW] Use internal/json for Marshal/Unmarshal [#1791](https://github.com/gin-gonic/gin/pull/1791)
-- [NEW] Support mapping time.Duration [#1794](https://github.com/gin-gonic/gin/pull/1794)
-- [NEW] Refactor form mappings [#1749](https://github.com/gin-gonic/gin/pull/1749)
-- [NEW] Added flag to context.Stream indicates if client disconnected in middle of stream [#1252](https://github.com/gin-gonic/gin/pull/1252)
-- [NEW] Extend context.File to allow for the content-dispositon attachments via a new method context.Attachment [#1260](https://github.com/gin-gonic/gin/pull/1260)
-- [NEW] Add prefix from X-Forwarded-Prefix in redirectTrailingSlash [#1238](https://github.com/gin-gonic/gin/pull/1238)
-- [NEW] Add context.HandlerNames() [#1729](https://github.com/gin-gonic/gin/pull/1729)
-- [NEW] Add response size to LogFormatterParams [#1752](https://github.com/gin-gonic/gin/pull/1752)
-- [NEW] Allow ignoring field on form mapping [#1733](https://github.com/gin-gonic/gin/pull/1733)
-- [NEW] Add a function to force color in console output. [#1724](https://github.com/gin-gonic/gin/pull/1724)
-- [NEW] Binding for URL Params [#1694](https://github.com/gin-gonic/gin/pull/1694)
-- [NEW] Add LoggerWithFormatter method [#1677](https://github.com/gin-gonic/gin/pull/1677)
-- [NEW] RunFd method to run http.Server through a file descriptor [#1609](https://github.com/gin-gonic/gin/pull/1609)
+- [NEW] Support for [Go Modules](https://github.com/golang/go/wiki/Modules)
+ [#1569](https://github.com/gin-gonic/gin/pull/1569)
+- [NEW] Refactor of form mapping multipart request
+ [#1829](https://github.com/gin-gonic/gin/pull/1829)
+- [NEW] Supporting file binding
+ [#1264](https://github.com/gin-gonic/gin/pull/1264)
+- [NEW] Add support for mapping arrays
+ [#1797](https://github.com/gin-gonic/gin/pull/1797)
+- [NEW] Make context.Keys available as LogFormatterParams
+ [#1779](https://github.com/gin-gonic/gin/pull/1779)
+- [NEW] Use internal/json for Marshal/Unmarshal
+ [#1791](https://github.com/gin-gonic/gin/pull/1791)
+- [NEW] Support mapping time.Duration
+ [#1794](https://github.com/gin-gonic/gin/pull/1794)
+- [NEW] Refactor form mappings
+ [#1749](https://github.com/gin-gonic/gin/pull/1749)
+- [NEW] Added flag to context.Stream indicates if client disconnected in middle
+ of stream [#1252](https://github.com/gin-gonic/gin/pull/1252)
+- [NEW] Extend context.File to allow for the content-dispositon attachments via
+ a new method context.Attachment
+ [#1260](https://github.com/gin-gonic/gin/pull/1260)
+- [NEW] Add prefix from X-Forwarded-Prefix in redirectTrailingSlash
+ [#1238](https://github.com/gin-gonic/gin/pull/1238)
+- [NEW] Add context.HandlerNames()
+ [#1729](https://github.com/gin-gonic/gin/pull/1729)
+- [NEW] Add response size to LogFormatterParams
+ [#1752](https://github.com/gin-gonic/gin/pull/1752)
+- [NEW] Allow ignoring field on form mapping
+ [#1733](https://github.com/gin-gonic/gin/pull/1733)
+- [NEW] Add a function to force color in console output.
+ [#1724](https://github.com/gin-gonic/gin/pull/1724)
+- [NEW] Binding for URL Params
+ [#1694](https://github.com/gin-gonic/gin/pull/1694)
+- [NEW] Add LoggerWithFormatter method
+ [#1677](https://github.com/gin-gonic/gin/pull/1677)
+- [NEW] RunFd method to run http.Server through a file descriptor
+ [#1609](https://github.com/gin-gonic/gin/pull/1609)
- [NEW] Yaml binding support [#1618](https://github.com/gin-gonic/gin/pull/1618)
- [NEW] Add PureJSON renderer [#694](https://github.com/gin-gonic/gin/pull/694)
-- [NEW] Set default time format in form binding [#1487](https://github.com/gin-gonic/gin/pull/1487)
-- [NEW] Upgrade dependency libraries [#1491](https://github.com/gin-gonic/gin/pull/1491)
+- [NEW] Set default time format in form binding
+ [#1487](https://github.com/gin-gonic/gin/pull/1487)
+- [NEW] Upgrade dependency libraries
+ [#1491](https://github.com/gin-gonic/gin/pull/1491)
#### Bug fix
-- [FIX] Truncate Latency precision in long running request [#1830](https://github.com/gin-gonic/gin/pull/1830)
-- [FIX] IsTerm flag should not be affected by DisableConsoleColor method. [#1802](https://github.com/gin-gonic/gin/pull/1802)
-- [FIX] Readme updates [#1793](https://github.com/gin-gonic/gin/pull/1793) [#1788](https://github.com/gin-gonic/gin/pull/1788) [1789](https://github.com/gin-gonic/gin/pull/1789)
-- [FIX] StaticFS: Fixed Logging two log lines on 404. [#1805](https://github.com/gin-gonic/gin/pull/1805), [#1804](https://github.com/gin-gonic/gin/pull/1804)
-- [FIX] Moved [examples](https://github.com/gin-gonic/examples) to stand alone Repo [#1775](https://github.com/gin-gonic/gin/pull/1775)
-- [FIX] Support HTTP content negotiation wildcards [#1112](https://github.com/gin-gonic/gin/pull/1112)
-- [FIX] Pass MaxMultipartMemory when FormFile is called [#1600](https://github.com/gin-gonic/gin/pull/1600)
-- [FIX] LoadHTML* tests [#1559](https://github.com/gin-gonic/gin/pull/1559)
-- [FIX] Removed use of sync.pool from HandleContext [#1565](https://github.com/gin-gonic/gin/pull/1565)
-- [FIX] Format output log to os.Stderr [#1571](https://github.com/gin-gonic/gin/pull/1571)
-- [FIX] Make logger use a yellow background and a darkgray text for legibility [#1570](https://github.com/gin-gonic/gin/pull/1570)
-- [FIX] Remove sensitive request information from panic log. [#1370](https://github.com/gin-gonic/gin/pull/1370)
-- [FIX] log.Println() does not print timestamp [#829](https://github.com/gin-gonic/gin/pull/829) [#1560](https://github.com/gin-gonic/gin/pull/1560)
-- [FIX] Add missing copyright and update if/else [#1497](https://github.com/gin-gonic/gin/pull/1497)
+- [FIX] Truncate Latency precision in long running request
+ [#1830](https://github.com/gin-gonic/gin/pull/1830)
+- [FIX] IsTerm flag should not be affected by DisableConsoleColor method.
+ [#1802](https://github.com/gin-gonic/gin/pull/1802)
+- [FIX] Readme updates [#1793](https://github.com/gin-gonic/gin/pull/1793)
+ [#1788](https://github.com/gin-gonic/gin/pull/1788)
+ [1789](https://github.com/gin-gonic/gin/pull/1789)
+- [FIX] StaticFS: Fixed Logging two log lines on 404.
+ [#1805](https://github.com/gin-gonic/gin/pull/1805),
+ [#1804](https://github.com/gin-gonic/gin/pull/1804)
+- [FIX] Moved [examples](https://github.com/gin-gonic/examples) to stand alone
+ Repo [#1775](https://github.com/gin-gonic/gin/pull/1775)
+- [FIX] Support HTTP content negotiation wildcards
+ [#1112](https://github.com/gin-gonic/gin/pull/1112)
+- [FIX] Pass MaxMultipartMemory when FormFile is called
+ [#1600](https://github.com/gin-gonic/gin/pull/1600)
+- [FIX] LoadHTML\* tests [#1559](https://github.com/gin-gonic/gin/pull/1559)
+- [FIX] Removed use of sync.pool from HandleContext
+ [#1565](https://github.com/gin-gonic/gin/pull/1565)
+- [FIX] Format output log to os.Stderr
+ [#1571](https://github.com/gin-gonic/gin/pull/1571)
+- [FIX] Make logger use a yellow background and a darkgray text for legibility
+ [#1570](https://github.com/gin-gonic/gin/pull/1570)
+- [FIX] Remove sensitive request information from panic log.
+ [#1370](https://github.com/gin-gonic/gin/pull/1370)
+- [FIX] log.Println() does not print timestamp
+ [#829](https://github.com/gin-gonic/gin/pull/829)
+ [#1560](https://github.com/gin-gonic/gin/pull/1560)
+- [FIX] Add missing copyright and update if/else
+ [#1497](https://github.com/gin-gonic/gin/pull/1497)
- [FIX] Update msgpack usage [#1498](https://github.com/gin-gonic/gin/pull/1498)
-- [FIX] Use protobuf on render [#1496](https://github.com/gin-gonic/gin/pull/1496)
-- [FIX] Add support for Protobuf format response [#1479](https://github.com/gin-gonic/gin/pull/1479)
-- [FIX] Add BindXML and ShouldBindXML [#1485](https://github.com/gin-gonic/gin/pull/1485)
-- [FIX] CI testing updates [#1671](https://github.com/gin-gonic/gin/pull/1671) [#1670](https://github.com/gin-gonic/gin/pull/1670) [#1682](https://github.com/gin-gonic/gin/pull/1682) [#1669](https://github.com/gin-gonic/gin/pull/1669)
-- [FIX] StaticFS(): Send 404 when path does not exist [#1663](https://github.com/gin-gonic/gin/pull/1663)
-- [FIX] Handle nil body for JSON binding [#1638](https://github.com/gin-gonic/gin/pull/1638)
-- [FIX] Support bind uri param [#1612](https://github.com/gin-gonic/gin/pull/1612)
-- [FIX] recovery: fix issue with syscall import on google app engine [#1640](https://github.com/gin-gonic/gin/pull/1640)
-- [FIX] Make sure the debug log contains line breaks [#1650](https://github.com/gin-gonic/gin/pull/1650)
-- [FIX] Panic stack trace being printed during recovery of broken pipe [#1089](https://github.com/gin-gonic/gin/pull/1089) [#1259](https://github.com/gin-gonic/gin/pull/1259)
-- [FIX] Context.Next() - recheck len of handlers on every iteration. [#1745](https://github.com/gin-gonic/gin/pull/1745)
-- [FIX] Fix all errcheck warnings [#1739](https://github.com/gin-gonic/gin/pull/1739) [#1653](https://github.com/gin-gonic/gin/pull/1653)
-- [FIX] Change color methods to public in the defaultLogger. [#1771](https://github.com/gin-gonic/gin/pull/1771)
-- [FIX] Update writeHeaders method to use http.Header.Set [#1722](https://github.com/gin-gonic/gin/pull/1722)
-- [FIX] context.Copy() race condition [#1020](https://github.com/gin-gonic/gin/pull/1020)
-
+- [FIX] Use protobuf on render
+ [#1496](https://github.com/gin-gonic/gin/pull/1496)
+- [FIX] Add support for Protobuf format response
+ [#1479](https://github.com/gin-gonic/gin/pull/1479)
+- [FIX] Add BindXML and ShouldBindXML
+ [#1485](https://github.com/gin-gonic/gin/pull/1485)
+- [FIX] CI testing updates [#1671](https://github.com/gin-gonic/gin/pull/1671)
+ [#1670](https://github.com/gin-gonic/gin/pull/1670)
+ [#1682](https://github.com/gin-gonic/gin/pull/1682)
+ [#1669](https://github.com/gin-gonic/gin/pull/1669)
+- [FIX] StaticFS(): Send 404 when path does not exist
+ [#1663](https://github.com/gin-gonic/gin/pull/1663)
+- [FIX] Handle nil body for JSON binding
+ [#1638](https://github.com/gin-gonic/gin/pull/1638)
+- [FIX] Support bind uri param
+ [#1612](https://github.com/gin-gonic/gin/pull/1612)
+- [FIX] recovery: fix issue with syscall import on google app engine
+ [#1640](https://github.com/gin-gonic/gin/pull/1640)
+- [FIX] Make sure the debug log contains line breaks
+ [#1650](https://github.com/gin-gonic/gin/pull/1650)
+- [FIX] Panic stack trace being printed during recovery of broken pipe
+ [#1089](https://github.com/gin-gonic/gin/pull/1089)
+ [#1259](https://github.com/gin-gonic/gin/pull/1259)
+- [FIX] Context.Next() - recheck len of handlers on every iteration.
+ [#1745](https://github.com/gin-gonic/gin/pull/1745)
+- [FIX] Fix all errcheck warnings
+ [#1739](https://github.com/gin-gonic/gin/pull/1739)
+ [#1653](https://github.com/gin-gonic/gin/pull/1653)
+- [FIX] Change color methods to public in the defaultLogger.
+ [#1771](https://github.com/gin-gonic/gin/pull/1771)
+- [FIX] Update writeHeaders method to use http.Header.Set
+ [#1722](https://github.com/gin-gonic/gin/pull/1722)
+- [FIX] context.Copy() race condition
+ [#1020](https://github.com/gin-gonic/gin/pull/1020)
diff --git a/content/en/blog/releases/release15.md b/content/en/blog/releases/release15.md
index e4593b3ce..6ff52721e 100644
--- a/content/en/blog/releases/release15.md
+++ b/content/en/blog/releases/release15.md
@@ -1,6 +1,6 @@
---
-title: "Gin 1.5.0 is released"
-linkTitle: "Gin 1.5.0 is released"
+title: Gin 1.5.0 is released
+linkTitle: Gin 1.5.0 is released
date: 2019-11-28
---
@@ -8,40 +8,71 @@ date: 2019-11-28
#### Feature
-- [NEW] Now you can parse the inline lowercase start structure [#1893](https://github.com/gin-gonic/gin/pull/1893)
-- [NEW] **[Break-Backward]** Hold matched route full path in the Context [#1826](https://github.com/gin-gonic/gin/pull/1826)
-- [NEW] Add context param query cache [#1450](https://github.com/gin-gonic/gin/pull/1450)
-- [NEW] Add support of multipart multi files [#1949](https://github.com/gin-gonic/gin/pull/1949)
-- [NEW] Support bind http header param [#1957](https://github.com/gin-gonic/gin/pull/1957)
-- [NEW] Support bind unix time [#1980](https://github.com/gin-gonic/gin/pull/1980)
-- [NEW] Support negative Content-Length in DataFromReader [#1981](https://github.com/gin-gonic/gin/pull/1981)
-- [NEW] Add DisallowUnknownFields() in gin.Context.BindJSON() [#2028](https://github.com/gin-gonic/gin/pull/2028)
-- [NEW] Use specific `net.Listener` with Engine.RunListener() [#2023](https://github.com/gin-gonic/gin/pull/2023)
+- [NEW] Now you can parse the inline lowercase start structure
+ [#1893](https://github.com/gin-gonic/gin/pull/1893)
+- [NEW] **[Break-Backward]** Hold matched route full path in the Context
+ [#1826](https://github.com/gin-gonic/gin/pull/1826)
+- [NEW] Add context param query cache
+ [#1450](https://github.com/gin-gonic/gin/pull/1450)
+- [NEW] Add support of multipart multi files
+ [#1949](https://github.com/gin-gonic/gin/pull/1949)
+- [NEW] Support bind http header param
+ [#1957](https://github.com/gin-gonic/gin/pull/1957)
+- [NEW] Support bind unix time
+ [#1980](https://github.com/gin-gonic/gin/pull/1980)
+- [NEW] Support negative Content-Length in DataFromReader
+ [#1981](https://github.com/gin-gonic/gin/pull/1981)
+- [NEW] Add DisallowUnknownFields() in gin.Context.BindJSON()
+ [#2028](https://github.com/gin-gonic/gin/pull/2028)
+- [NEW] Use specific `net.Listener` with Engine.RunListener()
+ [#2023](https://github.com/gin-gonic/gin/pull/2023)
#### Bug fix
-- [FIX] Use DefaultWriter and DefaultErrorWriter for debug messages [#1891](https://github.com/gin-gonic/gin/pull/1891)
-- [FIX] Some code improvements [#1909](https://github.com/gin-gonic/gin/pull/1909)
-- [FIX] Use encode replace json marshal increase json encoder speed [#1546](https://github.com/gin-gonic/gin/pull/1546)
-- [FIX] Fix context.Params race condition on Copy() [#1841](https://github.com/gin-gonic/gin/pull/1841)
-- [FIX] Improve GetQueryMap performance [#1918](https://github.com/gin-gonic/gin/pull/1918)
-- [FIX] Improve get post data [#1920](https://github.com/gin-gonic/gin/pull/1920)
-- [FIX] Use context instead of x/net/context [#1922](https://github.com/gin-gonic/gin/pull/1922)
-- [FIX] Attempt to fix PostForm cache bug [#1931](https://github.com/gin-gonic/gin/pull/1931)
-- [FIX] **[Break-Backward]** Drop support for go1.8 and go1.9 [#1933](https://github.com/gin-gonic/gin/pull/1933)
-- [FIX] Bugfix for the FullPath feature [#1919](https://github.com/gin-gonic/gin/pull/1919)
-- [FIX] Gin1.5 bytes.Buffer to strings.Builder [#1939](https://github.com/gin-gonic/gin/pull/1939)
-- [FIX] Upgrade github.com/ugorji/go/codec [#1969](https://github.com/gin-gonic/gin/pull/1969)
+- [FIX] Use DefaultWriter and DefaultErrorWriter for debug messages
+ [#1891](https://github.com/gin-gonic/gin/pull/1891)
+- [FIX] Some code improvements
+ [#1909](https://github.com/gin-gonic/gin/pull/1909)
+- [FIX] Use encode replace json marshal increase json encoder speed
+ [#1546](https://github.com/gin-gonic/gin/pull/1546)
+- [FIX] Fix context.Params race condition on Copy()
+ [#1841](https://github.com/gin-gonic/gin/pull/1841)
+- [FIX] Improve GetQueryMap performance
+ [#1918](https://github.com/gin-gonic/gin/pull/1918)
+- [FIX] Improve get post data
+ [#1920](https://github.com/gin-gonic/gin/pull/1920)
+- [FIX] Use context instead of x/net/context
+ [#1922](https://github.com/gin-gonic/gin/pull/1922)
+- [FIX] Attempt to fix PostForm cache bug
+ [#1931](https://github.com/gin-gonic/gin/pull/1931)
+- [FIX] **[Break-Backward]** Drop support for go1.8 and go1.9
+ [#1933](https://github.com/gin-gonic/gin/pull/1933)
+- [FIX] Bugfix for the FullPath feature
+ [#1919](https://github.com/gin-gonic/gin/pull/1919)
+- [FIX] Gin1.5 bytes.Buffer to strings.Builder
+ [#1939](https://github.com/gin-gonic/gin/pull/1939)
+- [FIX] Upgrade github.com/ugorji/go/codec
+ [#1969](https://github.com/gin-gonic/gin/pull/1969)
- [FIX] Simplify code [#2004](https://github.com/gin-gonic/gin/pull/2004)
-- [FIX] Identify terminal on a RISC-V architecture for auto-colored logs [#2019](https://github.com/gin-gonic/gin/pull/2019)
-- [FIX] **[Break-Backward]** Context.JSONP() now expects a semicolon (;) at the end [#2007](https://github.com/gin-gonic/gin/pull/2007)
-- [FIX] **[Break-Backward]** Upgrade validator version to v9 [#1015](https://github.com/gin-gonic/gin/pull/1015)
-- [FIX] Fix some typo [#2079](https://github.com/gin-gonic/gin/pull/2079) [#2080](https://github.com/gin-gonic/gin/pull/2080)
-- [FIX] Relocate binding body tests [#2086](https://github.com/gin-gonic/gin/pull/2086)
-- [FIX] Use Writer in Context.Status [#1606](https://github.com/gin-gonic/gin/pull/1606)
-- [FIX] `Engine.RunUnix()` now returns the error if it can't change the file mode [#2093](https://github.com/gin-gonic/gin/pull/2093)
-- [FIX] `RouterGroup.StaticFS()` leaked files. Now it closes them. [#2118](https://github.com/gin-gonic/gin/pull/2118)
-- [FIX] `Context.Request.FormFile` leaked file, now it closes it [#2114](https://github.com/gin-gonic/gin/pull/2114)
-- [FIX] Ignore walking on `form:"-"` mapping [#1943](https://github.com/gin-gonic/gin/pull/1943)
-- [REFACTOR] **[Break-Backward]** Use encode replace json marshal increase json encoder speed [#1546 ](https://github.com/gin-gonic/gin/pull/1546)
-
+- [FIX] Identify terminal on a RISC-V architecture for auto-colored logs
+ [#2019](https://github.com/gin-gonic/gin/pull/2019)
+- [FIX] **[Break-Backward]** Context.JSONP() now expects a semicolon (;) at the
+ end [#2007](https://github.com/gin-gonic/gin/pull/2007)
+- [FIX] **[Break-Backward]** Upgrade validator version to v9
+ [#1015](https://github.com/gin-gonic/gin/pull/1015)
+- [FIX] Fix some typo [#2079](https://github.com/gin-gonic/gin/pull/2079)
+ [#2080](https://github.com/gin-gonic/gin/pull/2080)
+- [FIX] Relocate binding body tests
+ [#2086](https://github.com/gin-gonic/gin/pull/2086)
+- [FIX] Use Writer in Context.Status
+ [#1606](https://github.com/gin-gonic/gin/pull/1606)
+- [FIX] `Engine.RunUnix()` now returns the error if it can't change the file
+ mode [#2093](https://github.com/gin-gonic/gin/pull/2093)
+- [FIX] `RouterGroup.StaticFS()` leaked files. Now it closes them.
+ [#2118](https://github.com/gin-gonic/gin/pull/2118)
+- [FIX] `Context.Request.FormFile` leaked file, now it closes it
+ [#2114](https://github.com/gin-gonic/gin/pull/2114)
+- [FIX] Ignore walking on `form:"-"` mapping
+ [#1943](https://github.com/gin-gonic/gin/pull/1943)
+- [REFACTOR] **[Break-Backward]** Use encode replace json marshal increase json
+ encoder speed [#1546 ](https://github.com/gin-gonic/gin/pull/1546)
diff --git a/content/en/blog/releases/release16.md b/content/en/blog/releases/release16.md
index 539997c96..cec8b7bdf 100644
--- a/content/en/blog/releases/release16.md
+++ b/content/en/blog/releases/release16.md
@@ -1,60 +1,94 @@
---
-title: "Gin 1.6.0 is released"
-linkTitle: "Gin 1.6.0 is released"
+title: Gin 1.6.0 is released
+linkTitle: Gin 1.6.0 is released
date: 2020-03-22
---
### CHANGELOG
#### BREAKING
- * chore(performance): Improve performance for adding RemoveExtraSlash flag [#2159](https://github.com/gin-gonic/gin/pull/2159)
- * drop support govendor [#2148](https://github.com/gin-gonic/gin/pull/2148)
- * Added support for SameSite cookie flag [#1615](https://github.com/gin-gonic/gin/pull/1615)
+
+- chore(performance): Improve performance for adding RemoveExtraSlash flag
+ [#2159](https://github.com/gin-gonic/gin/pull/2159)
+- drop support govendor [#2148](https://github.com/gin-gonic/gin/pull/2148)
+- Added support for SameSite cookie flag
+ [#1615](https://github.com/gin-gonic/gin/pull/1615)
#### FEATURES
- * add yaml negotitation [#2220](https://github.com/gin-gonic/gin/pull/2220)
- * FileFromFS [#2112](https://github.com/gin-gonic/gin/pull/2112)
+
+- add yaml negotitation [#2220](https://github.com/gin-gonic/gin/pull/2220)
+- FileFromFS [#2112](https://github.com/gin-gonic/gin/pull/2112)
#### BUGFIXES
- * Unix Socket Handling [#2280](https://github.com/gin-gonic/gin/pull/2280)
- * Use json marshall in context json to fix breaking new line issue. Fixes #2209 [#2228](https://github.com/gin-gonic/gin/pull/2228)
- * fix accept incoming network connections [#2216](https://github.com/gin-gonic/gin/pull/2216)
- * Fixed a bug in the calculation of the maximum number of parameters [#2166](https://github.com/gin-gonic/gin/pull/2166)
- * [FIX] allow empty headers on DataFromReader [#2121](https://github.com/gin-gonic/gin/pull/2121)
- * Add mutex for protect Context.Keys map [#1391](https://github.com/gin-gonic/gin/pull/1391)
+
+- Unix Socket Handling [#2280](https://github.com/gin-gonic/gin/pull/2280)
+- Use json marshall in context json to fix breaking new line issue. Fixes #2209
+ [#2228](https://github.com/gin-gonic/gin/pull/2228)
+- fix accept incoming network connections
+ [#2216](https://github.com/gin-gonic/gin/pull/2216)
+- Fixed a bug in the calculation of the maximum number of parameters
+ [#2166](https://github.com/gin-gonic/gin/pull/2166)
+- [FIX] allow empty headers on DataFromReader
+ [#2121](https://github.com/gin-gonic/gin/pull/2121)
+- Add mutex for protect Context.Keys map
+ [#1391](https://github.com/gin-gonic/gin/pull/1391)
#### ENHANCEMENTS
- * Add mitigation for log injection [#2277](https://github.com/gin-gonic/gin/pull/2277)
- * tree: range over nodes values [#2229](https://github.com/gin-gonic/gin/pull/2229)
- * tree: remove duplicate assignment [#2222](https://github.com/gin-gonic/gin/pull/2222)
- * chore: upgrade go-isatty and json-iterator/go [#2215](https://github.com/gin-gonic/gin/pull/2215)
- * path: sync code with httprouter [#2212](https://github.com/gin-gonic/gin/pull/2212)
- * Use zero-copy approach to convert types between string and byte slice [#2206](https://github.com/gin-gonic/gin/pull/2206)
- * Reuse bytes when cleaning the URL paths [#2179](https://github.com/gin-gonic/gin/pull/2179)
- * tree: remove one else statement [#2177](https://github.com/gin-gonic/gin/pull/2177)
- * tree: sync httprouter update (#2173) (#2172) [#2171](https://github.com/gin-gonic/gin/pull/2171)
- * tree: sync part httprouter codes and reduce if/else [#2163](https://github.com/gin-gonic/gin/pull/2163)
- * use http method constant [#2155](https://github.com/gin-gonic/gin/pull/2155)
- * upgrade go-validator to v10 [#2149](https://github.com/gin-gonic/gin/pull/2149)
- * Refactor redirect request in gin.go [#1970](https://github.com/gin-gonic/gin/pull/1970)
- * Add build tag nomsgpack [#1852](https://github.com/gin-gonic/gin/pull/1852)
+
+- Add mitigation for log injection
+ [#2277](https://github.com/gin-gonic/gin/pull/2277)
+- tree: range over nodes values
+ [#2229](https://github.com/gin-gonic/gin/pull/2229)
+- tree: remove duplicate assignment
+ [#2222](https://github.com/gin-gonic/gin/pull/2222)
+- chore: upgrade go-isatty and json-iterator/go
+ [#2215](https://github.com/gin-gonic/gin/pull/2215)
+- path: sync code with httprouter
+ [#2212](https://github.com/gin-gonic/gin/pull/2212)
+- Use zero-copy approach to convert types between string and byte slice
+ [#2206](https://github.com/gin-gonic/gin/pull/2206)
+- Reuse bytes when cleaning the URL paths
+ [#2179](https://github.com/gin-gonic/gin/pull/2179)
+- tree: remove one else statement
+ [#2177](https://github.com/gin-gonic/gin/pull/2177)
+- tree: sync httprouter update (#2173) (#2172)
+ [#2171](https://github.com/gin-gonic/gin/pull/2171)
+- tree: sync part httprouter codes and reduce if/else
+ [#2163](https://github.com/gin-gonic/gin/pull/2163)
+- use http method constant [#2155](https://github.com/gin-gonic/gin/pull/2155)
+- upgrade go-validator to v10
+ [#2149](https://github.com/gin-gonic/gin/pull/2149)
+- Refactor redirect request in gin.go
+ [#1970](https://github.com/gin-gonic/gin/pull/1970)
+- Add build tag nomsgpack [#1852](https://github.com/gin-gonic/gin/pull/1852)
#### DOCS
- * docs(path): improve comments [#2223](https://github.com/gin-gonic/gin/pull/2223)
- * Renew README to fit the modification of SetCookie method [#2217](https://github.com/gin-gonic/gin/pull/2217)
- * Fix spelling [#2202](https://github.com/gin-gonic/gin/pull/2202)
- * Remove broken link from README. [#2198](https://github.com/gin-gonic/gin/pull/2198)
- * Update docs on Context.Done(), Context.Deadline() and Context.Err() [#2196](https://github.com/gin-gonic/gin/pull/2196)
- * Update validator to v10 [#2190](https://github.com/gin-gonic/gin/pull/2190)
- * upgrade go-validator to v10 for README [#2189](https://github.com/gin-gonic/gin/pull/2189)
- * Update to currently output [#2188](https://github.com/gin-gonic/gin/pull/2188)
- * Fix "Custom Validators" example [#2186](https://github.com/gin-gonic/gin/pull/2186)
- * Add project to README [#2165](https://github.com/gin-gonic/gin/pull/2165)
- * docs(benchmarks): for gin v1.5 [#2153](https://github.com/gin-gonic/gin/pull/2153)
- * Changed wording for clarity in README.md [#2122](https://github.com/gin-gonic/gin/pull/2122)
+
+- docs(path): improve comments
+ [#2223](https://github.com/gin-gonic/gin/pull/2223)
+- Renew README to fit the modification of SetCookie method
+ [#2217](https://github.com/gin-gonic/gin/pull/2217)
+- Fix spelling [#2202](https://github.com/gin-gonic/gin/pull/2202)
+- Remove broken link from README.
+ [#2198](https://github.com/gin-gonic/gin/pull/2198)
+- Update docs on Context.Done(), Context.Deadline() and Context.Err()
+ [#2196](https://github.com/gin-gonic/gin/pull/2196)
+- Update validator to v10 [#2190](https://github.com/gin-gonic/gin/pull/2190)
+- upgrade go-validator to v10 for README
+ [#2189](https://github.com/gin-gonic/gin/pull/2189)
+- Update to currently output [#2188](https://github.com/gin-gonic/gin/pull/2188)
+- Fix "Custom Validators" example
+ [#2186](https://github.com/gin-gonic/gin/pull/2186)
+- Add project to README [#2165](https://github.com/gin-gonic/gin/pull/2165)
+- docs(benchmarks): for gin v1.5
+ [#2153](https://github.com/gin-gonic/gin/pull/2153)
+- Changed wording for clarity in README.md
+ [#2122](https://github.com/gin-gonic/gin/pull/2122)
#### MISC
- * ci support go1.14 [#2262](https://github.com/gin-gonic/gin/pull/2262)
- * chore: upgrade depend version [#2231](https://github.com/gin-gonic/gin/pull/2231)
- * Drop support go1.10 [#2147](https://github.com/gin-gonic/gin/pull/2147)
- * fix comment in `mode.go` [#2129](https://github.com/gin-gonic/gin/pull/2129)
+
+- ci support go1.14 [#2262](https://github.com/gin-gonic/gin/pull/2262)
+- chore: upgrade depend version
+ [#2231](https://github.com/gin-gonic/gin/pull/2231)
+- Drop support go1.10 [#2147](https://github.com/gin-gonic/gin/pull/2147)
+- fix comment in `mode.go` [#2129](https://github.com/gin-gonic/gin/pull/2129)
diff --git a/content/en/search.md b/content/en/search.md
index 4cde3a93d..394feea5f 100644
--- a/content/en/search.md
+++ b/content/en/search.md
@@ -2,4 +2,3 @@
title: Search Results
layout: search
---
-
diff --git a/content/es/_index.html b/content/es/_index.html
deleted file mode 100644
index 6095a42f9..000000000
--- a/content/es/_index.html
+++ /dev/null
@@ -1,77 +0,0 @@
-+++
-title = "Gin Web Framework"
-linkTitle = "Gin Web Framework"
-+++
-
-{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" color="orange" >}}
-
Claramente, el framework más rápido para desarrollo web en Go.
-
- {{< blocks/link-down color="info" >}}
-
-{{< /blocks/cover >}}
-
-
-{{% blocks/lead color="white" %}}
-
-**¿Qué es Gin?**
-
-Gin es un framework para desarrollo web escrito en Golang.
-
-Cuenta con una API tipo martini con un rendimiento mucho mayor, hasta 40 veces más rápido.
-
-Si necesitas rendimiento y productividad amarás a Gin.
-
-{{% /blocks/lead %}}
-
-{{< blocks/section color="light" >}}
-
-{{% blocks/feature icon="fa fa-tachometer-alt" title="Veloz" %}}
-Enrutamiento basado en Radix tree, poco consumo de memoria. Sin reflection. Rendimiento predecible del API.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-bars" title="Soporte de middleware" %}}
-Una petición entrante HTTP puede ser manejada por diversos middleware encadenados y la acción final.
-Ejemplo: Logger, Authorization, GZIP y por úlitmo guardar el mensaje en la BD.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-life-ring" title="Libre de crashes" %}}
-Gin puede recibir y recuperarse de un panic ocurrido durante una petición HTTP. Así tu servidor estará siempre disponible. También es posible hacer un reporte del panic, por ejemplo ¡a Sentry!
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="white" >}}
-
-{{% blocks/feature icon="fa fa-check-circle" title="Validación de JSON" %}}
-Gin permite analizar y validar datos JSON en una petición, y por ejemplo, revisar la existencia de datos requeridos.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-users-cog" title="Agrupación de rutas" %}}
-Organiza mejor tus rutas: Rutas con autorización vs rutas públicas, versiones diferentes de API. Adicionalmente los grupos de rutas pueden anidarse ilimitadamente sin afectar el rendimiento.
-{{% /blocks/feature %}}
-
-
-{{% blocks/feature icon="fa fa-briefcase" title="Manejo de errores" %}}
-Gin ofrece una conveniente forma de recopilar los errores ocurridos durante una petición HTTP. Un middleware puede incluso registrarlos en un archivo de logs, la BD o enviarlos por la red.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="info" >}}
-
-{{% blocks/feature icon="fa fa-images" title="Render incluído" %}}
-Gin cuenta con una API fácil de usar para el render de JSON, XML y HTML.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-code" title="Extensible" %}}
-Crear un middleware nuevo es muy sencillo. Sólo debes revisar los códigos de ejemplo.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
diff --git a/content/es/_index.md b/content/es/_index.md
new file mode 100644
index 000000000..8cf501a6a
--- /dev/null
+++ b/content/es/_index.md
@@ -0,0 +1,94 @@
+---
+title: Gin Web Framework
+linkTitle: Gin Web Framework
+---
+
+{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" >}}
+ Ver Más
+
+
+Descargar
+
+
Claramente, el framework más rápido para desarrollo web en Go.
+
+{{< blocks/link-down color="info" >}} {{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**¿Qué es Gin?**
+
+Gin es un framework para desarrollo web escrito en Golang. Cuenta con una API
+tipo martini con un rendimiento mucho mayor, hasta 40 veces más rápido.
+
+Si necesitas rendimiento y productividad amarás a Gin.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Veloz" %}}
+
+Enrutamiento basado en Radix tree, poco consumo de memoria. Sin reflection.
+Rendimiento predecible del API.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Soporte de middleware"%}}
+
+Una petición entrante HTTP puede ser manejada por diversos middleware
+encadenados y la acción final. Ejemplo: Logger, Authorization, GZIP y por úlitmo
+guardar el mensaje en la BD.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Libre de crashes"%}}
+
+Gin puede recibir y recuperarse de un panic ocurrido durante una petición HTTP.
+Así tu servidor estará siempre disponible. También es posible hacer un reporte
+del panic, por ejemplo ¡a Sentry!
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+{{% blocks/feature icon="fa-check-circle" title="Validación de JSON" %}}
+
+Gin permite analizar y validar datos JSON en una petición, y por ejemplo,
+revisar la existencia de datos requeridos.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Agrupación de rutas"%}}
+
+Organiza mejor tus rutas: Rutas con autorización vs rutas públicas, versiones
+diferentes de API. Adicionalmente los grupos de rutas pueden anidarse
+ilimitadamente sin afectar el rendimiento.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Manejo de errores"%}}
+
+Gin ofrece una conveniente forma de recopilar los errores ocurridos durante una
+petición HTTP. Un middleware puede incluso registrarlos en un archivo de logs,
+la BD o enviarlos por la red.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Render incluído" %}}
+
+Gin cuenta con una API fácil de usar para el render de JSON, XML y HTML.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Extensible" %}}
+
+Crear un middleware nuevo es muy sencillo. Sólo debes revisar los códigos de
+ejemplo.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/content/fa/_index.html b/content/fa/_index.html
deleted file mode 100644
index e856f95c3..000000000
--- a/content/fa/_index.html
+++ /dev/null
@@ -1,77 +0,0 @@
-+++
-title = "Gin Web Framework"
-linkTitle = "Gin Web Framework"
-+++
-
-{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" color="orange" >}}
-
The fastest full-featured web framework for Go. Crystal clear.
-
- {{< blocks/link-down color="info" >}}
-
-{{< /blocks/cover >}}
-
-
-{{% blocks/lead color="white" %}}
-
-**Gin چیست?**
-
-جین یک فریم ورک وبه که با زبان گو ساخته شده.
-
- .جین یک فریم ورک شبیه به مارتینه(یکی دیگه از وب فریم ورک های گو) ولی با پرفورمنس بهتر . چیزی حدود 40 برار سریع تر
-
- اگه شما نیازمند پرفورمنس و کارایی بالا(بهره بری بالا) هستید عاشق جین میشید.
-
-{{% /blocks/lead %}}
-
-{{< blocks/section color="light" >}}
-
-{{% blocks/feature icon="fa fa-tachometer-alt" title="Fast" %}}
-Radix tree based routing(مسیریابی مبتنی بر درخت ردیکس), small memory foot print. No reflection(بدون تامل). Predictable API performance.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-bars" title="Middleware support" %}}
-An incoming HTTP request can be handled by a chain of middleware and the final action.
-For example: Logger, Authorization, GZIP and finally post a message in the DB.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-life-ring" title="Crash-free" %}}
-Gin can catch a panic occurred during a HTTP request and recover it. This way, your server will be always available. It’s also possible to report this panic to Sentry for example!
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="white" >}}
-
-{{% blocks/feature icon="fa fa-check-circle" title="JSON validation" %}}
-Gin can parse and validate the JSON of a request, checking, for example, the existence of required values.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-users-cog" title="Routes grouping" %}}
-Organize your routes better. Authorization required vs non required, different API versions. In addition, groups can be nested infinitely without degrading performance.
-{{% /blocks/feature %}}
-
-
-{{% blocks/feature icon="fa fa-briefcase" title="Error management" %}}
-Gin provides a convenient way to collect all the errors occurred during a HTTP request. Eventually, middleware can write them to a log file, to a database and send them through the network.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="info" >}}
-
-{{% blocks/feature icon="fa fa-images" title="Rendering built-in" %}}
-Gin provides an easy to use API for JSON, XML and HTML rendering.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-code" title="Extendable" %}}
-Creating new middleware is so easy, just check out the sample code.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
diff --git a/content/fa/_index.md b/content/fa/_index.md
new file mode 100644
index 000000000..0d74cd88c
--- /dev/null
+++ b/content/fa/_index.md
@@ -0,0 +1,93 @@
+---
+title: Gin Web Framework
+linkTitle: Gin Web Framework
+---
+
+{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" >}}
+ Learn More
+
+
+Download
+
+
The fastest full-featured web framework for Go. Crystal clear.
+
+{{< blocks/link-down color="info" >}} {{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**Gin چیست?**
+
+جین یک فریم ورک وبه که با زبان گو ساخته شده.
+
+.جین یک فریم ورک شبیه به مارتینه(یکی دیگه از وب فریم ورک های گو) ولی با پرفورمنس
+بهتر . چیزی حدود 40 برار سریع تر
+
+اگه شما نیازمند پرفورمنس و کارایی بالا(بهره بری بالا) هستید عاشق جین میشید.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Fast" %}}
+
+Radix tree based routing(مسیریابی مبتنی بر درخت ردیکس), small memory foot print.
+No reflection(بدون تامل). Predictable API performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Middleware support"%}}.
+
+An incoming HTTP request can be handled by a chain of middleware and the final
+action. For example: Logger, Authorization, GZIP and finally post a message in
+the DB.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Crash-free" %}}
+
+Gin can catch a panic occurred during a HTTP request and recover it. This way,
+your server will be always available. It’s also possible to report this panic to
+Sentry for example! {{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+{{% blocks/feature icon="fa-check-circle" title="JSON validation" %}}
+
+Gin can parse and validate the JSON of a request, checking, for example, the
+existence of required values.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Routes grouping"%}}
+
+Organize your routes better. Authorization required vs non required, different
+API versions. In addition, groups can be nested infinitely without degrading
+performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Error management" %}}
+
+Gin provides a convenient way to collect all the errors occurred during a HTTP
+request. Eventually, middleware can write them to a log file, to a database and
+send them through the network.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Rendering built-in" %}}
+
+Gin provides an easy to use API for JSON, XML and HTML rendering.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Extendable"%}}
+
+Creating new middleware is so easy, just check out the sample code.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/content/ja/_index.html b/content/ja/_index.html
deleted file mode 100644
index 776fa4548..000000000
--- a/content/ja/_index.html
+++ /dev/null
@@ -1,76 +0,0 @@
-+++
-title = "Gin Web Framework"
-linkTitle = "Gin Web Framework"
-+++
-
-{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" color="orange" >}}
-
The fastest full-featured web framework for Go. Crystal clear.
-
- {{< blocks/link-down color="info" >}}
-
-{{< /blocks/cover >}}
-
-
-{{% blocks/lead color="white" %}}
-
-**What is Gin?**
-
-Gin is a web framework written in Golang.
-
-It features a martini-like API with much better performance, up to 40 times faster.
-
-If you need performance and good productivity, you will love Gin.
-
-{{% /blocks/lead %}}
-
-{{< blocks/section color="light" >}}
-
-{{% blocks/feature icon="fa fa-tachometer-alt" title="Fast" %}}
-Radix tree based routing, small memory foot print. No reflection. Predictable API performance.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-bars" title="Middleware support" %}}
-A incoming HTTP request can be handled by a chain of middlewares and the final action.
-For example: Logger, Authorization, GZIP and finally post a message in the DB.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-life-ring" title="Crash-free" %}}
-Gin can catch a panic occurred during a HTTP request and recover it. This way, your server will be always available. It’s also possible to report this panic to Sentry for example!
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="white" >}}
-
-{{% blocks/feature icon="fa fa-check-circle" title="JSON validation" %}}
-Gin can parse and validate the JSON of a request, checking for example the existence of required values.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-users-cog" title="Routes grouping" %}}
-Organize your routes better. Authorization required vs non required, different API versions. In addition, the groups can be nested unlimitedly without degrading performance.
-{{% /blocks/feature %}}
-
-
-{{% blocks/feature icon="fa fa-briefcase" title="Error management" %}}
-Gin provides a convenient way to collect all the errors occurred during a HTTP request. Eventually, a middleware can write them to a log file, to a database and send them through the network.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="info" >}}
-
-{{% blocks/feature icon="fa fa-images" title="Rendering built-in" %}}
-Gin provides an easy to use API for JSON, XML and HTML rendering.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-code" title="Extendable" %}}
-Creating a new middleware is so easy, just check out the sample codes.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
diff --git a/content/ko-kr/_index.md b/content/ko-kr/_index.md
new file mode 100644
index 000000000..290c6db5b
--- /dev/null
+++ b/content/ko-kr/_index.md
@@ -0,0 +1,90 @@
+---
+title: Gin Web Framework
+linkTitle: Gin Web Framework
+---
+
+{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" >}}
+ Learn More
+
+
+Download
+
+
The fastest full-featured web framework for Go. Crystal clear.
+
+{{< blocks/link-down color="info" >}} {{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**What is Gin?**
+
+Gin is a web framework written in Golang. It features a Martini-like API, but
+with performance up to 40 times faster than Martini. If you need performance and
+productivity, you will love Gin.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Fast" %}}
+
+Radix tree based routing, small memory foot print. No reflection. Predictable
+API performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Middleware support"%}}
+
+An incoming HTTP request can be handled by a chain of middleware and the final
+action. For example: Logger, Authorization, GZIP and finally post a message in
+the DB.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Crash-free" %}}
+
+Gin can catch a panic occurred during a HTTP request and recover it. This way,
+your server will be always available. It’s also possible to report this panic to
+Sentry for example! {{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+{{% blocks/feature icon="fa-check-circle" title="JSON validation" %}}
+
+Gin can parse and validate the JSON of a request, checking, for example, the
+existence of required values.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Routes grouping"%}}
+
+Organize your routes better. Authorization required vs non required, different
+API versions. In addition, groups can be nested infinitely without degrading
+performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Error management" %}}
+
+Gin provides a convenient way to collect all the errors occurred during a HTTP
+request. Eventually, middleware can write them to a log file, to a database and
+send them through the network.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Rendering built-in" %}}
+
+Gin provides an easy to use API for JSON, XML and HTML rendering.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Extendable"%}}
+
+Creating new middleware is so easy, just check out the sample code.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/content/ko-kr/blog/news/how-to-build-one-effective-middleware.md b/content/ko-kr/blog/news/how-to-build-one-effective-middleware.md
index d93e7cbc3..2bbf61612 100644
--- a/content/ko-kr/blog/news/how-to-build-one-effective-middleware.md
+++ b/content/ko-kr/blog/news/how-to-build-one-effective-middleware.md
@@ -1,6 +1,6 @@
---
-title: "How to build one effective middleware?"
-linkTitle: "How to build one effective middleware?"
+title: 'How to build one effective middleware?'
+linkTitle: 'How to build one effective middleware?'
date: 2019-02-26
---
@@ -8,9 +8,14 @@ date: 2019-02-26
The middleware has two parts:
- - part one is what is executed once, when you initialize your middleware. That's where you set up all the global objects, logicals etc. Everything that happens once per application lifetime.
+- part one is what is executed once, when you initialize your middleware. That's
+ where you set up all the global objects, logicals etc. Everything that happens
+ once per application lifetime.
- - part two is what executes on every request. For example, a database middleware you simply inject your "global" database object into the context. Once it's inside the context, you can retrieve it from within other middlewares and your handler function.
+- part two is what executes on every request. For example, a database middleware
+ you simply inject your "global" database object into the context. Once it's
+ inside the context, you can retrieve it from within other middlewares and your
+ handler function.
```go
func funcName(params string) gin.HandlerFunc {
@@ -28,7 +33,7 @@ func funcName(params string) gin.HandlerFunc {
// --->
// The following code is an example
c.Set("TestVar", params)
- c.Next()
+ c.Next()
}
}
```
@@ -84,7 +89,9 @@ func mid2() gin.HandlerFunc {
}
```
-According to [Constituent parts](#Constituent-parts) said, when we run the gin process, **part one** will execute firstly and will print the following information:
+According to [Constituent parts](#Constituent-parts) said, when we run the gin
+process, **part one** will execute firstly and will print the following
+information:
```go
globalMiddleware...1
@@ -104,7 +111,8 @@ mid1...1
mid2...1
```
-When we curl one request `curl -v localhost:8080/rest/n/api/some`, **part two** will execute their middleware and output the following information:
+When we curl one request `curl -v localhost:8080/rest/n/api/some`, **part two**
+will execute their middleware and output the following information:
```go
globalMiddleware...2
@@ -139,5 +147,3 @@ mid1...3
v
globalMiddleware...3
```
-
-
diff --git a/content/pt/_index.html b/content/pt/_index.html
deleted file mode 100644
index 3dd3e758a..000000000
--- a/content/pt/_index.html
+++ /dev/null
@@ -1,82 +0,0 @@
-+++
-title = "A Abstração de Web Gin"
-linkTitle = "A Abstração de Web Gin"
-+++
-
-{{< blocks/cover title="A Abstração de Web Gin" image_anchor="top" height="full" color="orange">}}
-
A mais rápida e completa abstração de web em Go. Transparente.
-
- {{< blocks/link-down color="info">}}
-
- {{< /blocks/cover>}}
-
-
- {{% blocks/lead color="white" %}}
-
- **O que é a Gin?**
-
- A Gin é uma abstração de web escrita em Golang.
-
- Ela apresenta uma API parecida com a Martini, mais com desempenho mais alto, 40 vezes mais rápida do que a Martini.
-
- Se precisas de desempenho e produtividade, amarás a Gin.
-
- {{% /blocks/lead %}}
-
- {{< blocks/section color="light">}}
-
- {{% blocks/feature icon="fa fa-tachometer-alt" title="Fast" %}}
- Árvore de roteamento baseada em Radix, pouco consumo de memória. Sem reflexão. Desempenho de API previsível.
- {{% /blocks/feature %}}
-
- {{% blocks/feature icon="fa fa-bars" title="Suporte à Intermediário" %}}
- Uma requisição futura de HTTP pode ser manipulada por uma cadeia de intermediários e pela ação final.
- Por exemplo: Registador, Autorização, GZIP e finalmente publicar uma mensagem na BD.
- {{% /blocks/feature %}}
-
- {{% blocks/feature icon="fa fa-life-ring" title="Livre de Avaria" %}}
- A Gin pode capturar um pânico que ocorreu durante uma requisição de HTTP e recuperá-lo. Deste maneira, o teu
- servidor estará sempre disponível. Também é possível informar este pânico ao Sentry por exemplo!
- {{% /blocks/feature %}}
-
- {{< /blocks/section>}}
-
- {{< blocks/section color="white">}}
-
- {{% blocks/feature icon="fa fa-check-circle" title="Validação de JSON" %}}
- A Gin pode analisar e validar o JSON de uma requisição, verificando, por exemplo, a existência de valores
- obrigatórios.
- {{% /blocks/feature %}}
-
- {{% blocks/feature icon="fa fa-users-cog" title="Agrupamento de Rotas" %}}
- Organiza melhor as tuas rotas. Autorização obrigatória vs não obrigatória, diferentes versões de API. Além
- disso, grupos podem ser encaixados infinitamente sem a degradação do desempenho.
- {{% /blocks/feature %}}
-
-
- {{% blocks/feature icon="fa fa-briefcase" title="Gestão de Erro" %}}
- A Gin fornece uma maneira conveniente de coletar todos os erros ocorridos durante uma requisição de HTTP.
- Eventualmente, o intermediário pode escrevê-los em um ficheiro de registo, em uma base de dados e enviá-los
- através da rede.
- {{% /blocks/feature %}}
-
- {{< /blocks/section>}}
-
- {{< blocks/section color="info">}}
-
- {{% blocks/feature icon="fa fa-images" title="Interpretação Embutida" %}}
- A Gin fornece uma API fácil de utilizar para interpretação de JSON, XML e HTML.
- {{% /blocks/feature %}}
-
- {{% blocks/feature icon="fa fa-code" title="Extensível" %}}
- A criação de um novo intermediário é tão fácil, apenas consulte o código de exemplo.
- {{% /blocks/feature %}}
-
- {{< /blocks/section>}}
diff --git a/content/pt/_index.md b/content/pt/_index.md
new file mode 100644
index 000000000..12c734ed4
--- /dev/null
+++ b/content/pt/_index.md
@@ -0,0 +1,92 @@
+---
+title: A Abstração de Web Gin
+linkTitle: A Abstração de Web Gin
+---
+
+{{< blocks/cover title="A Abstração de Web Gin" image_anchor="top" height="full" >}}
+ Aprenda mais
+
+
+Descarregar
+
+
A mais rápida e completa abstração de web em Go. Transparente.
+
+{{< blocks/link-down color="info" >}} {{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**O que é a Gin?**
+
+A Gin é uma abstração de web escrita em Golang. Ela apresenta uma API parecida
+com a Martini, mais com desempenho mais alto, 40 vezes mais rápida do que a
+Martini. Se precisas de desempenho e produtividade, amarás a Gin.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Fast" %}}
+
+Árvore de roteamento baseada em Radix, pouco consumo de memória. Sem reflexão.
+Desempenho de API previsível.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Suporte à Intermediário"%}}
+
+Uma requisição futura de HTTP pode ser manipulada por uma cadeia de
+intermediários e pela ação final. Por exemplo: Registador, Autorização, GZIP e
+finalmente publicar uma mensagem na BD. {{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Livre de Avaria" %}}
+
+A Gin pode capturar um pânico que ocorreu durante uma requisição de HTTP e
+recuperá-lo. Deste maneira, o teu servidor estará sempre disponível. Também é
+possível informar este pânico ao Sentry por exemplo!
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+
+{{% blocks/feature icon="fa-check-circle" title="Validação de JSON" %}}
+
+A Gin pode analisar e validar o JSON de uma requisição, verificando, por
+exemplo, a existência de valores obrigatórios.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Agrupamento de Rotas"%}}
+
+Organiza melhor as tuas rotas. Autorização obrigatória vs não obrigatória,
+diferentes versões de API. Além disso, grupos podem ser encaixados infinitamente
+sem a degradação do desempenho.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Gestão de Erro" %}}
+
+A Gin fornece uma maneira conveniente de coletar todos os erros ocorridos
+durante uma requisição de HTTP. Eventualmente, o intermediário pode escrevê-los
+em um ficheiro de registo, em uma base de dados e enviá-los através da rede.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Interpretação Embutida" %}}
+
+A Gin fornece uma API fácil de utilizar para interpretação de JSON, XML e HTML.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Extensível"%}}
+
+A criação de um novo intermediário é tão fácil, apenas consulte o código de
+exemplo.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/content/ru/_index.html b/content/ru/_index.html
deleted file mode 100644
index 85c54d4f2..000000000
--- a/content/ru/_index.html
+++ /dev/null
@@ -1,77 +0,0 @@
-+++
-title = "Gin Web Framework"
-linkTitle = "Gin Web Framework"
-+++
-
-{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" color="orange" >}}
-
Самый быстрый полнофункциональный веб-фреймворк для Go. Кристально чистый.
-
- {{< blocks/link-down color="info" >}}
-
-{{< /blocks/cover >}}
-
-
-{{% blocks/lead color="white" %}}
-
-**Что такое Gin?**
-
-Gin - это веб-фреймворк, написанный на языке Golang.
-
-В нем реализован API, похожий на Martini, но производительность в 40 раз выше, чем у Martini.
-
-Если вам нужна производительность и продуктивность, Gin вам понравится.
-
-{{% /blocks/lead %}}
-
-{{< blocks/section color="light" >}}
-
-{{% blocks/feature icon="fa fa-tachometer-alt" title="Fast" %}}
-Маршрутизация на основе радиксного дерева, малый объем памяти. Никаких отражений. Предсказуемая производительность API.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-bars" title="Middleware support" %}}
-Входящий HTTP-запрос может быть обработан цепочкой промежуточного ПО (Middleware) и конечным действием.
-Например: Логгер, авторизация, GZIP и, наконец, публикация сообщения в БД.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-life-ring" title="Crash-free" %}}
-Gin может поймать панику, возникшую во время HTTP-запроса, и восстановить ее. Таким образом, ваш сервер будет всегда доступен. Также можно сообщить об этой панике, например, в Sentry!
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="white" >}}
-
-{{% blocks/feature icon="fa fa-check-circle" title="JSON validation" %}}
-Gin может анализировать и проверять JSON-запросы, например, на наличие необходимых значений.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-users-cog" title="Routes grouping" %}}
-Организуйте свои маршруты лучше. Требуется и не требуется авторизация, разные версии API. Кроме того, группы могут быть вложены бесконечно без снижения производительности.
-{{% /blocks/feature %}}
-
-
-{{% blocks/feature icon="fa fa-briefcase" title="Error management" %}}
-Gin обеспечивает удобный способ сбора всех ошибок, возникших во время HTTP-запроса. В конечном итоге промежуточное ПО (Middleware) может записывать их в файл журнала, в базу данных и отправлять через сеть.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="info" >}}
-
-{{% blocks/feature icon="fa fa-images" title="Rendering built-in" %}}
-Gin предоставляет простой в использовании API для рендеринга JSON, XML и HTML.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-code" title="Extendable" %}}
-Создать новое промежуточное программное обеспечение очень просто, просто посмотрите пример кода.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
diff --git a/content/ru/_index.md b/content/ru/_index.md
new file mode 100644
index 000000000..e7e7ff29c
--- /dev/null
+++ b/content/ru/_index.md
@@ -0,0 +1,96 @@
+---
+title: Gin Web Framework
+linkTitle: Gin Web Framework
+---
+
+{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" >}}
+ Подробнее
+
+
+Скачать
+
+
Самый быстрый полнофункциональный веб-фреймворк для Go. Кристально чистый.
+{{< blocks/link-down color="info" >}}
+{{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**Что такое Gin?**
+
+Gin - это веб-фреймворк, написанный на языке Golang.
+
+В нем реализован API, похожий на Martini, но производительность в 40 раз выше,
+чем у Martini.
+
+Если вам нужна производительность и продуктивность, Gin вам понравится.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Fast" %}}
+
+Маршрутизация на основе радиксного дерева, малый объем памяти. Никаких
+отражений. Предсказуемая производительность API.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Middleware support"%}}
+
+Входящий HTTP-запрос может быть обработан цепочкой промежуточного ПО
+(Middleware) и конечным действием. Например: Логгер, авторизация, GZIP и,
+наконец, публикация сообщения в БД.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Crash-free" %}}
+
+Gin может поймать панику, возникшую во время HTTP-запроса, и восстановить ее.
+Таким образом, ваш сервер будет всегда доступен. Также можно сообщить об этой
+панике, например, в Sentry!
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+{{% blocks/feature icon="fa-check-circle" title="JSON validation" %}}
+
+Gin может анализировать и проверять JSON-запросы, например, на наличие
+необходимых значений.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Routes grouping"%}}
+
+Организуйте свои маршруты лучше. Требуется и не требуется авторизация, разные
+версии API. Кроме того, группы могут быть вложены бесконечно без снижения
+производительности.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Error management" %}}
+
+Gin обеспечивает удобный способ сбора всех ошибок, возникших во время
+HTTP-запроса. В конечном итоге промежуточное ПО (Middleware) может записывать их
+в файл журнала, в базу данных и отправлять через сеть.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Rendering built-in" %}}
+
+Gin предоставляет простой в использовании API для рендеринга JSON, XML и HTML.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Extendable"%}}
+
+Создать новое промежуточное программное обеспечение очень просто, просто
+посмотрите пример кода.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/content/tr/_index.html b/content/tr/_index.html
deleted file mode 100644
index 04904a8b3..000000000
--- a/content/tr/_index.html
+++ /dev/null
@@ -1,76 +0,0 @@
-+++
-title = "Gin Web Framework"
-linkTitle = "Gin Web Framework"
-+++
-
-{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" color="orange" >}}
-
Go ile yazılmış, en hızlı, tam teşekküllü ve kristal berraklığında bir web çerçevesi.
-
- {{< blocks/link-down color="info" >}}
-
-{{< /blocks/cover >}}
-
-
-{{% blocks/lead color="white" %}}
-
-**Gin nedir??**
-
-Gin, Golang'da yazılmış bir web çerçevesidir.
-
-Martini benzeri bir API'ye sahiptir, ancak performans açısından Martini'den 40 kata kadar daha hızlıdır.
-
-Performans ve üretkenliğe ihtiyacınız varsa Gin'i seveceksiniz.
-
-{{% /blocks/lead %}}
-
-{{< blocks/section color="light" >}}
-
-{{% blocks/feature icon="fa fa-tachometer-alt" title="Hızlı" %}}
-Radix ağacı tabanlı routing, küçük bellek ayak izi. Reflection yok. Öngörülebilir API performansı.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-bars" title="Middleware desteği" %}}
-Gelen bir HTTP isteği, bir middleware zinciri ve son eylem tarafından işlenebilir. Örneğin: Logger, Authorization, GZIP ve son olarak veritabanına bir mesaj gönderin.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-life-ring" title="Çökmeye Dirençli" %}}
-Gin, bir HTTP isteği sırasında oluşan bir paniği yakalayabilir ve düzeltebilir. Bu şekilde sunucunuz her zaman çalışacaktır. Ayrıca bir paniği Sentry'ye bildirmek de mümkündür.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="white" >}}
-
-{{% blocks/feature icon="fa fa-check-circle" title="JSON doğrulama" %}}
-Gin, bir isteğin JSON'ını ayrıştırabilir ve doğrulayabilir. Örneğin gerekli değerlerin varlığını kontrol edebilir.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-users-cog" title="Route gruplama" %}}
-Routelarınızı daha iyi düzenleyin. Authorization gerektiren veya gerektirmeyen, farklı API sürümlerini kolayca düzenleyin. Ayrıca, gruplar performansı düşürmeden sınırsız olarak iç içe yerleştirilebilir.
-{{% /blocks/feature %}}
-
-
-{{% blocks/feature icon="fa fa-briefcase" title="Hata yönetimi" %}}
-Gin, bir HTTP isteği sırasında meydana gelen tüm hataları toplamak için uygun bir yol sağlar. Sonunda, middleware bunları bir log dosyasına veya bir veritabanına yazabilir ve ağ üzerinden gönderebilir.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
-
-{{< blocks/section color="info" >}}
-
-{{% blocks/feature icon="fa fa-images" title="Hazır rendering" %}}
-Gin, JSON, XML ve HTML işleme için kullanımı kolay bir API sağlar.
-{{% /blocks/feature %}}
-
-{{% blocks/feature icon="fa fa-code" title="Genişletilebilir" %}}
-Yeni middleware oluşturmak çok kolaydır, sadece örnek kodları inceleyin.
-{{% /blocks/feature %}}
-
-{{< /blocks/section >}}
diff --git a/content/tr/_index.md b/content/tr/_index.md
new file mode 100644
index 000000000..023d21bec
--- /dev/null
+++ b/content/tr/_index.md
@@ -0,0 +1,95 @@
+---
+title: Gin Web Framework
+linkTitle: Gin Web Framework
+---
+
+{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" >}}
+ Daha Fazla Öğren
+
+
+İndir
+
+
Go ile yazılmış, en hızlı, tam teşekküllü ve kristal berraklığında bir web çerçevesi.
+
+{{< blocks/link-down color="info" >}} {{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**Gin nedir??**
+
+Gin, Golang'da yazılmış bir web çerçevesidir.
+
+Martini benzeri bir API'ye sahiptir, ancak performans açısından Martini'den 40
+kata kadar daha hızlıdır.
+
+Performans ve üretkenliğe ihtiyacınız varsa Gin'i seveceksiniz.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Hızlı" %}}
+
+Radix ağacı tabanlı routing, küçük bellek ayak izi. Reflection yok.
+Öngörülebilir API performansı.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Middleware desteği" %}}
+
+Gelen bir HTTP isteği, bir middleware zinciri ve son eylem tarafından
+işlenebilir. Örneğin: Logger, Authorization, GZIP ve son olarak veritabanına bir
+mesaj gönderin.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Çökmeye Dirençli" %}}
+
+Gin, bir HTTP isteği sırasında oluşan bir paniği yakalayabilir ve düzeltebilir.
+Bu şekilde sunucunuz her zaman çalışacaktır. Ayrıca bir paniği Sentry'ye
+bildirmek de mümkündür.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+{{% blocks/feature icon="fa-check-circle" title="JSON doğrulama" %}}
+
+Gin, bir isteğin JSON'ını ayrıştırabilir ve doğrulayabilir. Örneğin gerekli
+değerlerin varlığını kontrol edebilir.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Route gruplama" %}}
+
+Routelarınızı daha iyi düzenleyin. Authorization gerektiren veya gerektirmeyen,
+farklı API sürümlerini kolayca düzenleyin. Ayrıca, gruplar performansı
+düşürmeden sınırsız olarak iç içe yerleştirilebilir.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Hata yönetimi" %}}
+
+Gin, bir HTTP isteği sırasında meydana gelen tüm hataları toplamak için uygun
+bir yol sağlar. Sonunda, middleware bunları bir log dosyasına veya bir
+veritabanına yazabilir ve ağ üzerinden gönderebilir.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Hazır rendering" %}}
+
+Gin, JSON, XML ve HTML işleme için kullanımı kolay bir API sağlar.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Genişletilebilir" %}}
+
+Yeni middleware oluşturmak çok kolaydır, sadece örnek kodları inceleyin.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/content/zh-cn/_index.html b/content/zh-cn/_index.html
deleted file mode 100644
index 8610720a4..000000000
--- a/content/zh-cn/_index.html
+++ /dev/null
@@ -1,77 +0,0 @@
-+++
-title = "Gin Web Framework"
-linkTitle = "Gin Web Framework"
-+++
-
-{{< blocks/cover title="Gin Web Framework" image_anchor="top" height="full" color="orange" >}}
-
The fastest full-featured web framework for Go. Crystal clear.
+
+{{< blocks/link-down color="info" >}} {{< /blocks/cover >}}
+
+{{% blocks/lead color="white" %}}
+
+**What is Gin?**
+
+Gin is a web framework written in Golang. It features a Martini-like API, but
+with performance up to 40 times faster than Martini. If you need performance and
+productivity, you will love Gin.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section color="light" type="row" %}}
+{{% blocks/feature icon="fa-tachometer-alt" title="Fast" %}}
+
+Radix tree based routing, small memory foot print. No reflection. Predictable
+API performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-bars" title="Middleware support"%}}
+
+An incoming HTTP request can be handled by a chain of middleware and the final
+action. For example: Logger, Authorization, GZIP and finally post a message in
+the DB.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-life-ring" title="Crash-free" %}}
+
+Gin can catch a panic occurred during a HTTP request and recover it. This way,
+your server will be always available. It’s also possible to report this panic to
+Sentry for example! {{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="white" type="row" %}}
+
+{{% blocks/feature icon="fa-check-circle" title="JSON validation" %}}
+
+Gin can parse and validate the JSON of a request, checking, for example, the
+existence of required values.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-users-cog" title="Routes grouping"%}}
+
+Organize your routes better. Authorization required vs non required, different
+API versions. In addition, groups can be nested infinitely without degrading
+performance.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-briefcase" title="Error management" %}}
+
+Gin provides a convenient way to collect all the errors occurred during a HTTP
+request. Eventually, middleware can write them to a log file, to a database and
+send them through the network.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="info" type="row" %}}
+
+{{% blocks/feature icon="fa-images" title="Rendering built-in" %}}
+
+Gin provides an easy to use API for JSON, XML and HTML rendering.
+
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-code" title="Extendable"%}}
+
+Creating new middleware is so easy, just check out the sample code.
+
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
diff --git a/go.mod b/go.mod
index 0e69b2a75..884c85570 100644
--- a/go.mod
+++ b/go.mod
@@ -1,9 +1,5 @@
-module github.com/gin-gonic/website
+module github.com/google/docsy-example
-go 1.22.2
+go 1.12
-require (
- github.com/google/docsy v0.9.2-0.20240426161215-e9eca0fcb3b5 // indirect
- github.com/FortAwesome/Font-Awesome v0.0.0-20240402185447-c0f460dca7f7 // indirect
- github.com/twbs/bootstrap v5.3.3+incompatible // indirect
-)
+require github.com/google/docsy v0.10.1-0.20240529105443-333c2f8d4172 // indirect - v0.10.0-12-g333c2f8
diff --git a/go.sum b/go.sum
index 9b580b446..c74f991fe 100644
--- a/go.sum
+++ b/go.sum
@@ -1,12 +1,10 @@
-github.com/FortAwesome/Font-Awesome v0.0.0-20240108205627-a1232e345536/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo=
-github.com/FortAwesome/Font-Awesome v0.0.0-20240402185447-c0f460dca7f7 h1:2aWEKCRLqQ9nPyXaz4/IYtRrDr3PzEiX0DUSUr2/EDs=
github.com/FortAwesome/Font-Awesome v0.0.0-20240402185447-c0f460dca7f7/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo=
-github.com/FortAwesome/Font-Awesome v4.7.0+incompatible h1:3trjm7NtX5NXlju1AxSWSzedDMq2hsfH78Qtqrc8EgY=
-github.com/FortAwesome/Font-Awesome v4.7.0+incompatible/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo=
-github.com/google/docsy v0.9.1 h1:+jqges1YCd+yHeuZ1BUvD8V8mEGVtPxULg5j/vaJ984=
-github.com/google/docsy v0.9.1/go.mod h1:saOqKEUOn07Bc0orM/JdIF3VkOanHta9LU5Y53bwN2U=
-github.com/google/docsy v0.9.2-0.20240426161215-e9eca0fcb3b5 h1:EDs9FRTZ75agHdnMeO3HjfqJV10jKpdsM6XEARy/FsM=
-github.com/google/docsy v0.9.2-0.20240426161215-e9eca0fcb3b5/go.mod h1:c0nIAqmRTOuJ01F85U/wJPQtc3Zj9N58Kea9bOT2AJc=
-github.com/twbs/bootstrap v5.2.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
-github.com/twbs/bootstrap v5.3.3+incompatible h1:goFoqinzdHfkeegpFP7pvhbd0g+A3O2hbU3XCjuNrEQ=
+github.com/google/docsy v0.10.0 h1:6tMDacPwAyRWNCfvsn/9qGOZDQ8b0aRzjRZvnZPY5dg=
+github.com/google/docsy v0.10.0/go.mod h1:c0nIAqmRTOuJ01F85U/wJPQtc3Zj9N58Kea9bOT2AJc=
+github.com/google/docsy v0.10.1-0.20240516225026-36746913371a h1:Fmx4SmmyWZf4q3rq9jhVWr6/h2MKEi4+61irjQO2ylI=
+github.com/google/docsy v0.10.1-0.20240516225026-36746913371a/go.mod h1:c0nIAqmRTOuJ01F85U/wJPQtc3Zj9N58Kea9bOT2AJc=
+github.com/google/docsy v0.10.1-0.20240528200232-6549143cf323 h1:T4UiGpcrIgiuyQj0tc7BtJwv6u736J8Jnl4QZno0fk4=
+github.com/google/docsy v0.10.1-0.20240528200232-6549143cf323/go.mod h1:c0nIAqmRTOuJ01F85U/wJPQtc3Zj9N58Kea9bOT2AJc=
+github.com/google/docsy v0.10.1-0.20240529105443-333c2f8d4172 h1:1gAAuOfHRok/hJqfF+wpjOYqlH0d76dwUsskLEnOzxo=
+github.com/google/docsy v0.10.1-0.20240529105443-333c2f8d4172/go.mod h1:c0nIAqmRTOuJ01F85U/wJPQtc3Zj9N58Kea9bOT2AJc=
github.com/twbs/bootstrap v5.3.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
diff --git a/hugo.toml b/hugo.toml
index f97f392a5..2d2f14e02 100644
--- a/hugo.toml
+++ b/hugo.toml
@@ -151,7 +151,7 @@ time_format_blog = "02.01.2006"
# Everything below this are Site Params
[params]
-copyright = "Gin Team"
+copyright = "Gin Team All Rights Reserved"
#privacy_policy = "https://policies.google.com/privacy"
# First one is picked as the Twitter card image if not set on page.
@@ -217,7 +217,7 @@ no = 'Sorry to hear that. Please home page.
+
You can learn how to make a 404 page like this in Custom 404 Pages.