wiki: clean up markdown

Normalized heading levels, updated titles, fixed a few link syntax problems.

We might delete some of these as outdated at some point.

For golang/go#61940.
diff --git a/AVX512.md b/AVX512.md
index dd1130a..655841a 100644
--- a/AVX512.md
+++ b/AVX512.md
@@ -1,3 +1,7 @@
+---
+title: AVX512
+---
+
 Go 1.11 release introduces [AVX-512](https://en.wikipedia.org/wiki/AVX-512) support.  
 This page describes how to use new features as well as some important encoder details.
 
@@ -284,4 +288,4 @@
         ADDL        $16, DX            //; add         edx, 0x10
         CMPL        DX, $1024          //; cmp         edx, 0x400
         JB          top                //; jb          top
-```
\ No newline at end of file
+```
diff --git a/Articles.md b/Articles.md
index eaf47eb..fbea707 100644
--- a/Articles.md
+++ b/Articles.md
@@ -1,3 +1,7 @@
+---
+title: Articles
+---
+
 
 Please keep all entries in reverse chronological order (most recent first)
 
@@ -261,4 +265,4 @@
   * [Go: 90% 완벽?!, 100% of the time 슬라이드 번역 ](http://100coding.com/go/slide)
   * [Go 동시성 패턴 advanced 영상 번역](http://www.youtube.com/watch?v=4g2skln42eo)
   * [Go + Revel + Gorp 간단 게시판 만들기](http://100coding.com/go/tutorial/1)
-  * [Go + Revel + Gorm 으로 만드는 블로그](https://github.com/jaehue/goblog/wiki/Hello-World)
\ No newline at end of file
+  * [Go + Revel + Gorm 으로 만드는 블로그](https://github.com/jaehue/goblog/wiki/Hello-World)
diff --git a/AssemblyPolicy.md b/AssemblyPolicy.md
index a8841e7..2f48292 100644
--- a/AssemblyPolicy.md
+++ b/AssemblyPolicy.md
@@ -1,3 +1,7 @@
+---
+title: AssemblyPolicy
+---
+
 This document describes when and how to add assembly code to the Go cryptography packages.
 
 In general, the rules are:
@@ -12,4 +16,4 @@
 * The code must be tested in our CI. This means there need to be builders that support the instructions, and if there are multiple (or fallback) paths they must be tested separately. (Tip: use `GODEBUG=cpu.X=off` to disable detection of CPU features.)
 * Document in the Go code why the implementation requires assembly (specific performance benefit, access to instructions, etc), so we can reevaluate as the compiler improves.
 
-Not all assembly currently in the standard library adheres to this policy. Changes to existing assembly will be discouraged until that implementation is updated to be compliant. New assembly must be compliant.
\ No newline at end of file
+Not all assembly currently in the standard library adheres to this policy. Changes to existing assembly will be discouraged until that implementation is updated to be compliant. New assembly must be compliant.
diff --git a/Benchmarks.md b/Benchmarks.md
index 23c593c..44da2e3 100644
--- a/Benchmarks.md
+++ b/Benchmarks.md
@@ -1,3 +1,7 @@
+---
+title: Benchmarks
+---
+
 These are benchmarks collected from the community used to measure the effects of changes to the Go core (compiler, runtime, garbage collector, and libraries). They should have the following properties:
 
  - they matter; someone cares, perhaps in a dollars-and-cents way, that they run well
@@ -65,3 +69,4 @@
  | eolian_dsp | | `buddin.us/eolian/dsp` | `Benchmark` | |
  | ethereum_whisperv5 | | `github.com/ethereum/go-ethereum/whisper/whisperv5` | `Benchmark` | |
  | kanzi | | `github.com/flanglet/kanzi/go/src/kanzi/benchmark` | `Benchmark` | |
+
diff --git a/Blogs.md b/Blogs.md
index e8d35c7..714e12f 100644
--- a/Blogs.md
+++ b/Blogs.md
@@ -1,3 +1,7 @@
+---
+title: Blogs
+---
+
 A set of blogs dedicated to Go.
 
 NOTE: Please don't add individual blog entries to this page. Those belong in [articles](Articles) instead.
@@ -84,3 +88,4 @@
 * [No Headback](http://xargin.com/)
 * [Go 语言基础](https://github.com/weirubo/learn_go)
 * [chai2010 的博客](https://chai2010.cn/)
+
diff --git a/Books.md b/Books.md
index c4fe8b5..b406269 100644
--- a/Books.md
+++ b/Books.md
@@ -1,3 +1,7 @@
+---
+title: Books
+---
+
 Other book lists:
 
 * [Awesome Go Books](https://github.com/dariubs/GoBooks)
@@ -21,7 +25,7 @@
 - [Polish](#polish)
 - [Persian](#persian)
 
-# English
+### English
   * **Go Programming**
     * Author: John P. Baugh
     * Publication Date: June 16, 2010
@@ -664,7 +668,7 @@
     * Reference: http://microservicesingo.com/
     * Status: [Cancelled per O'Reilly Employee](http://support.oreilly.com/oreilly/topics/availability-of-microservices-in-go-use-go-to-build-scalable-backends-by-matthew-campbell)
 
-# Chinese
+### Chinese
   * **Go语言·云动力**
     * Author: 樊虹剑(fango)
     * Publication Date: 2012-06
@@ -734,7 +738,7 @@
     * ISBN: ---
     * Reference: https://github.com/chai2010/ugo-compiler-book
 
-# Japanese
+### Japanese
   * **はじめての「Go言語」**
     * Author: 茨木 隆彰
     * Publication Date: 2010-11
@@ -801,7 +805,7 @@
     * ISBN: 978-4297134198
     * Reference: https://gihyo.jp/book/2023/978-4-297-13419-8
 
-# French
+### French
 
   * **Programmer en Go - Pourquoi ? Comment ?**
     * Author: Rudy Rigot
@@ -817,7 +821,7 @@
     * Reference (publisher): https://www.dunod.com/sciences-techniques/langage-go-fondamentaux-du-langage
 
 
-# German
+### German
   * **Programmierung in Google Go** (not available for buying any more)
     * Authors: Rainer Feike and Steffen Blass
     * Publication Date: 2010-11
@@ -843,7 +847,7 @@
     * ISBN: 978-3-86802-415-9
     * Reference: http://entwickler.de/press/Einstieg-in-Google-Go
 
-# Brazilian Portuguese
+### Brazilian Portuguese
   * **A Linguagem de Programação Go**
     * Author:  Alan A. A. Donovan, Brian W. Kernighan 
     * Publication Date: 2017
@@ -862,7 +866,7 @@
     * ISBN: 978-85-75224-89-2
     * Reference: http://shop.oreilly.com/product/0636920046516.do
 
-# Russian
+### Russian
   * **Программирование на языке Go**
     * Author: Марк Саммерфильд
     * Publication Date: 2013-02-14
@@ -887,7 +891,7 @@
     * ISBN: 978-5-4461-1617-1
     * Reference: https://www.piter.com/product/golang-dlya-profi-rabota-s-setyu-mnogopotochnost-struktury-dannyh-i-mashinnoe-obuchenie-s-go
 
-# Español
+### Español
   * **Aprende Go en Y minutos**https://go101.org
     * Author: Nacho Pacheco
     * Publication Date: 2015-02-24
@@ -906,7 +910,7 @@
     * ISBN: ---
     * Reference: https://www.gitbook.com/book/nachopacheco/go-es/
 
-# Korean
+### Korean
   * **가장 빨리 만나는 Go 언어**
     * Author: 이재홍
     * Publication Date: June 2015
@@ -985,7 +989,7 @@
     * ISBN: 979-1-16175-208-2
     * Reference: http://acornpub.co.kr/book/mastering-go
 
-# Indonesian
+### Indonesian
   * **Bahasa Pemrograman Go**
     * Author: Sajarwo Anggai
     * Publication Date: October 21, 2013
@@ -998,7 +1002,7 @@
     * ISBN: ---
     * Reference: https://dasarpemrogramangolang.novalagung.com
 
-# Italian
+### Italian
   * **Programmare in Linguaggio Go**
     * Author: Renato Mite
     * Publication Date: 9 Oct 2016
@@ -1008,7 +1012,7 @@
     * Reference (Kobo Books): https://store.kobobooks.com/it-it/ebook/programmare-in-linguaggio-go
     * Repository: https://github.com/rmite/gobook
 
-# Polish
+### Polish
 
   * **Język Go. Poznaj i programuj**
     * Authors: Alan A. A. Donovan, Brian W. Kernighan; translated by Lech Lachowski
@@ -1016,7 +1020,7 @@
     * ISBN: 978-83-283-2467-1
     * Reference: https://helion.pl/ksiazki/jezyk-go-poznaj-i-programuj-alan-a-a-donovan-brian-w-kernighan,jgopop.htm
 
-# Persian
+### Persian
   * **GoFarsi book**
     * Author: Javad Rajabzadeh
     * Publication Date: 23 oct 2022
@@ -1030,7 +1034,7 @@
     * ISBN: ---
     * Repository: https://github.com/thedevsir/gosuccinctly
 
-# Looking for contributors
+### Looking for contributors
 
 [Add Go books here that are looking for writers, editors, Gopher illustrators, and translators.]
 
@@ -1040,4 +1044,3 @@
     * ISBN: 9781787286740
     * Reference: https://www.amazon.in/Web-Development-Cookbook-full-stack-applications/dp/1787286746
 
-***
\ No newline at end of file
diff --git a/BoundingResourceUse.md b/BoundingResourceUse.md
index 9e08f60..4698071 100644
--- a/BoundingResourceUse.md
+++ b/BoundingResourceUse.md
@@ -1,3 +1,7 @@
+---
+title: Bounding resource use
+---
+
 To bound a program's use of a limited resource - like memory - have goroutines synchronize their use of that resource using a buffered channel (i.e., use the channel as a semaphore):
 
 ```go
@@ -25,4 +29,5 @@
 
 ## References
 
-Effective Go's discussion of channels: https://go.dev/doc/effective_go#channels
\ No newline at end of file
+Effective Go's discussion of channels: https://go.dev/doc/effective_go#channels
+
diff --git a/CSSStyleGuide.md b/CSSStyleGuide.md
index 0743d27..f1592b5 100644
--- a/CSSStyleGuide.md
+++ b/CSSStyleGuide.md
@@ -1,4 +1,6 @@
-# Go CSS Coding Guidelines
+---
+title: Go CSS Coding Guidelines
+---
 
 **Please [discuss changes](https://go.dev/issue/new?title=wiki%3A+CSSStyleGuide+change&body=&labels=Documentation) before editing this page**, even _minor_ ones. Many people have opinions and this is not the place for edit wars.
 
@@ -218,3 +220,5 @@
 ```
 <img src="url/to/image.png" height="240" width="160">
 ```
+
+
diff --git a/ChromeOS.md b/ChromeOS.md
index e15971e..076afba 100644
--- a/ChromeOS.md
+++ b/ChromeOS.md
@@ -1,4 +1,8 @@
-# Introduction
+---
+title: ChromeOS
+---
+
+## Introduction
 
 You don't need to compile from source in Developer mode, you can just use the [Chromebrew](https://github.com/skycocker/chromebrew)-provided version.
 
@@ -7,7 +11,7 @@
 This tutorial will show you how to install, build, and run Go on Chrome OS.
 Please note this has only been tested on a 64GB LTE Pixel, however it should work on other Chromebooks. Note that enabling developer mode reduces the security guarantees offered by Chrome OS.
 
-# Install Go
+## Install Go
 First download the latest version of Go for Linux from the [Go Downloads page](https://go.dev/dl/).
 After that, open a shell by hitting (CTRL+ALT+T) and typing in `shell` then hit enter. Then extract it using the following command (when replacing `< Go Linux package >` with the name of the file you downloaded):
 
@@ -17,10 +21,10 @@
 
 Go should now be installed you can test this by typing `/usr/local/go/bin/go`. If it installed correctly, you should see the Go help prompt. Go is now installed.
 
-# Create a Workspace
+## Create a Workspace
 To keep this simple just create a folder called `/usr/local/go/work`. Also, create a folder called `src` inside `/usr/local/go/work/`.
 
-# Set PATH
+## Set PATH
 Add the following to `~/.bashrc`:
 ```
 export GOPATH="/usr/local/go/work"
@@ -28,7 +32,7 @@
 ```
 This will allow you to run your Go programs in your shell.
 
-# Test if it worked
+## Test if it worked
 First create a folder inside of your `/usr/local/go/src` folder. After that create a file in your folder called `hello.go` with the following in it:
 ```go
 package main
@@ -42,5 +46,7 @@
 Now, run `go install hello`. Then, run `${GOPATH}/bin/hello` (or just `hello` if you setup your GOPATH above) and you should see `Hello, Chrome OS!`.
 ***
 
-# Reporting bugs
+## Reporting bugs
 Please go to [Issues](https://github.com/golang/go/issues) to report any issues you have.
+
+
diff --git a/CodeReview.md b/CodeReview.md
index 7250843..9a0835a 100644
--- a/CodeReview.md
+++ b/CodeReview.md
@@ -1,3 +1,7 @@
+---
+title: CodeReview
+---
+
 Be sure to familiarize yourself with the code review process from the official [Contribution Guide](https://go.dev/doc/contribute) first.
 
 # Reviewer Parlance
@@ -51,4 +55,4 @@
 $ git remote add --mirror=push fork git@github.com:yourusername/go.git
 ```
 
-Then running `git push fork` will update GitHub to perfectly mirror *everything* (all branches, all tags, etc.). This is handy, but take care when using this on multiple clients. You are bypassing the usual git safeguards, so it is easy to overwrite (and thus lose) work pushed by a different client.
\ No newline at end of file
+Then running `git push fork` will update GitHub to perfectly mirror *everything* (all branches, all tags, etc.). This is handy, but take care when using this on multiple clients. You are bypassing the usual git safeguards, so it is easy to overwrite (and thus lose) work pushed by a different client.
diff --git a/CodeReviewComments.md b/CodeReviewComments.md
index 5b7da3c..d0356df 100644
--- a/CodeReviewComments.md
+++ b/CodeReviewComments.md
@@ -1,4 +1,6 @@
-# Go Code Review Comments
+---
+title: Go Code Review Comments
+---
 
 This page collects common comments made during reviews of Go code, so
 that a single detailed explanation can be referred to by shorthands.
@@ -6,7 +8,7 @@
 
 You can view this as a supplement to [Effective Go](https://go.dev/doc/effective_go).
 
-Additional comments related to testing can be found at [Go Test Comments](https://github.com/golang/go/wiki/TestComments)
+Additional comments related to testing can be found at [Go Test Comments](/wiki/TestComments)
 
 Google has published a longer [Go Style Guide](https://google.github.io/styleguide/go/decisions).
 
@@ -425,7 +427,7 @@
 
 See https://go.dev/doc/effective_go#mixed-caps. This applies even when it breaks conventions in other languages. For example an unexported constant is `maxLength` not `MaxLength` or `MAX_LENGTH`.
 
-Also see [Initialisms](https://github.com/golang/go/wiki/CodeReviewComments#initialisms).
+Also see [Initialisms](/wiki/CodeReviewComments#initialisms).
 
 ## Named Result Parameters
 
@@ -597,7 +599,7 @@
 
 Note that the order here is actual != expected, and the message uses that order too. Some test frameworks encourage writing these backwards: 0 != x, "expected 0, got x", and so on. Go does not.
 
-If that seems like a lot of typing, you may want to write a [[table-driven test|TableDrivenTests]].
+If that seems like a lot of typing, you may want to write a [table-driven test](TableDrivenTests).
 
 Another common technique to disambiguate failing tests when using a test helper with different input is to wrap each caller with a different TestFoo function, so the test fails with that name:
 
@@ -615,3 +617,5 @@
 The basic rule: the further from its declaration that a name is used, the more descriptive the name must be. For a method receiver, one or two letters is sufficient. Common variables such as loop indices and readers can be a single letter (`i`, `r`). More unusual things and global variables need more descriptive names.
 
 See also the longer discussion in [the Google Go Style Guide](https://google.github.io/styleguide/go/decisions#variable-names).
+
+
diff --git a/CodeReviewConcurrency.md b/CodeReviewConcurrency.md
index b092bd0..4fcd8e4 100644
--- a/CodeReviewConcurrency.md
+++ b/CodeReviewConcurrency.md
@@ -1,7 +1,9 @@
-# Code Review: Go Concurrency
+---
+title: "Code Review: Go Concurrency"
+---
 
 This page is an addition to the [Go Code Review Comments](
-https://github.com/golang/go/wiki/CodeReviewComments) list. The goal of this list is to help to find
+/wiki/CodeReviewComments) list. The goal of this list is to help to find
 concurrency-related bugs when reviewing Go code.
 
 You may also read through this list just once to refresh your memory and to make sure you are aware
@@ -126,7 +128,7 @@
 
 If the race condition is not benign, use methods [`sync.Map.LoadOrStore()`](
 https://pkg.go.dev/sync/#Map.LoadOrStore) and [`LoadAndDelete()`](
-https://pkg.go.dev/sync/#Map.LoadAndDelete) to fix it. 
+https://pkg.go.dev/sync/#Map.LoadAndDelete) to fix it.
 
 ### Scalability
 
@@ -227,7 +229,7 @@
 
 ## Reading List
 
-[Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments): a checklist for
+[Go Code Review Comments](/wiki/CodeReviewComments): a checklist for
 reviewing Go code, not concurrency-specific.
 
 Go concurrency:
@@ -245,4 +247,5 @@
 
 Concurrency, but not specific to Go:
  - [Mechanical Sympathy: Single Writer Principle](
-   https://mechanical-sympathy.blogspot.com/2011/09/single-writer-principle.html)
\ No newline at end of file
+   https://mechanical-sympathy.blogspot.com/2011/09/single-writer-principle.html)
+
diff --git a/CodeTools.md b/CodeTools.md
index ecad0c6..6764179 100644
--- a/CodeTools.md
+++ b/CodeTools.md
@@ -1,3 +1,7 @@
+---
+title: CodeTools
+---
+
 An overview of tools that will help improve your Go code
 
 ## All-in-one
@@ -67,3 +71,4 @@
 ## Visualization
 
   - [godepgraph](http://github.com/kisielk/godepgraph) - A tool for generating dependency graphs of Go code.
+
diff --git a/Comments.md b/Comments.md
index 4157930..ff4563e 100644
--- a/Comments.md
+++ b/Comments.md
@@ -1,4 +1,6 @@
-# Comments
+---
+title: Comments
+---
 
 Every package should have a package comment. It should immediately precede the ` package ` statement in one of the files in the package. (It only needs to appear in one file.) It should begin with a single sentence that begins "Package _packagename_" and give a concise summary of the package functionality. This introductory sentence will be used in godoc's list of all packages.
 
@@ -36,3 +38,5 @@
   ...
 }
 ```
+
+
diff --git a/CommitMessage.md b/CommitMessage.md
index 1b2e493..7cbaf1a 100644
--- a/CommitMessage.md
+++ b/CommitMessage.md
@@ -1,4 +1,6 @@
-# Commit messages
+---
+title: Commit messages
+---
 
 Commit messages, also known as CL (changelist) descriptions, should be formatted per https://go.dev/doc/contribute#commit_messages. For example,
 
@@ -76,4 +78,5 @@
 
 If somebody asks you to modify your commit message, you'll need to modify your PR.
 
-![](images/github-to-gerrit.png)
\ No newline at end of file
+![](images/github-to-gerrit.png)
+
diff --git a/CommonMistakes.md b/CommonMistakes.md
index ab463a0..03dbd08 100644
--- a/CommonMistakes.md
+++ b/CommonMistakes.md
@@ -1,3 +1,7 @@
+---
+title: CommonMistakes
+---
+
 Table of Contents
 =================
 
@@ -140,3 +144,4 @@
 	fmt.Println(v)
 }
 ```
+
diff --git a/CompilerOptimizations.md b/CompilerOptimizations.md
index d2aac4c..9666238 100644
--- a/CompilerOptimizations.md
+++ b/CompilerOptimizations.md
@@ -1,4 +1,6 @@
-# Compiler And Runtime Optimizations
+---
+title: Compiler And Runtime Optimizations
+---
 
 This page lists optimizations done by the compilers. Note that these are not guaranteed by the language specification.
 
@@ -112,4 +114,5 @@
 ```
 
 * **gc:** 1.5+
-* **gccgo:** ?
\ No newline at end of file
+* **gccgo:** ?
+
diff --git a/Conferences.md b/Conferences.md
index 61940f0..b588d8d 100644
--- a/Conferences.md
+++ b/Conferences.md
@@ -1,4 +1,6 @@
-# Go Conferences and Major Events
+---
+title: Go Conferences and Major Events
+---
 
 ## Upcoming
 
@@ -171,3 +173,5 @@
 | | **2013** | | |
 | Go Conference Tokyo | 2013-10-14 | Tokyo, Japan | https://gocon.connpass.com/event/3510/ |
 | Go Conference Tokyo | 2013-04-13 | Tokyo, Japan | https://gocon.connpass.com/event/1906/ |
+
+
diff --git a/Configuring-GoLand-for-WebAssembly.md b/Configuring-GoLand-for-WebAssembly.md
index b54e8b6..84498c4 100644
--- a/Configuring-GoLand-for-WebAssembly.md
+++ b/Configuring-GoLand-for-WebAssembly.md
@@ -1,4 +1,8 @@
-### [← Back](https://github.com/golang/go/wiki/WebAssembly) to the main WebAssembly page.
+---
+title: Configuring-GoLand-for-WebAssembly
+---
+
+### [← Back](/wiki/WebAssembly) to the main WebAssembly page.
 
 # Configuring GoLand for WebAssembly (Wasm) projects
 
@@ -48,4 +52,4 @@
 
 Finished, your GoLand setup should now be complete.
 
-### [← Back](https://github.com/golang/go/wiki/WebAssembly) to the main WebAssembly page.
\ No newline at end of file
+### [← Back](/wiki/WebAssembly) to the main WebAssembly page.
diff --git a/Contributing-to-gopls.md b/Contributing-to-gopls.md
index c664003..02ba5c0 100644
--- a/Contributing-to-gopls.md
+++ b/Contributing-to-gopls.md
@@ -1,5 +1,10 @@
 ---
+title: Contributing-to-gopls
+---
+
+---
 > This page has been subsumed into the [committed markdown](https://github.com/golang/tools/blob/master/gopls/doc/contributing.md) of x/tools repository
 > 
 > Please do not edit this page!
 ---
+
diff --git a/CoreDumpDebugging.md b/CoreDumpDebugging.md
index de663c7..ec3b1ae 100644
--- a/CoreDumpDebugging.md
+++ b/CoreDumpDebugging.md
@@ -1,3 +1,7 @@
+---
+title: CoreDumpDebugging
+---
+
 Originally published at https://rakyll.org/coredumps/.
 
 ---
@@ -147,4 +151,4 @@
    113:		MOVL	$39, AX	// syscall - getpid
    114:		SYSCALL
    115:		MOVL	AX, DI	// arg 1 pid
-```
\ No newline at end of file
+```
diff --git a/Courses.md b/Courses.md
index 8c0984e..d1cd92f 100644
--- a/Courses.md
+++ b/Courses.md
@@ -1,8 +1,12 @@
-# Introduction
+---
+title: Courses
+---
+
+## Introduction
 
 Go is a great language for CS majors. This page presents some university courses that use Go. For a list of free and commercial Go training classes, see [the Learn wiki](Learn).
 
-# Language
+## Language
 
   * University of Helsinki, Department of Computer Science used to have a course named Introduction to Go, taught by K. Bäckman: http://www.cs.helsinki.fi/courses/582336 in Spring 2010.
   * University of Sofia "St. Kliment Ohridski", Faculty of Mathematics and Informatics has elective course named "Programming with Go", taught by K. Vladimiroff: http://fmi.golang.bg (bulgarian) and their [[public lectures](https://github.com/fmi/go-lectures)] - (also in bulgarian)
@@ -14,11 +18,11 @@
   * University of Zagreb (Croatia), Faculty of Electrical Engineering and Computing, has an ongoing course [Go programming language](https://www.fer.unizg.hr/en/course/gpl) since 2020, held by Z. Bratković and B. Banelli. Videos available from academic year [2019./2020.](https://www.youtube.com/watch?v=mq18_oSNkHE&list=PLDG0WuJlyEw3GuJ4FAoP-ea8PCsU5J-9K&pp=iAQB) and [2020./2021.](https://www.youtube.com/watch?v=Ms_5seF6Smg&list=PLDG0WuJlyEw1o7cQ7Raf_SHgak4G57zCW&pp=iAQB) (Croatian)
 
 
-# Programming Concepts
+## Programming Concepts
 
    * President University (Cikarang, West Java, Indonesia) had a course [Programming Concepts](http://president.ac.id/study/undergraduate/school-of-computer-science/information-technology) for every junior students (using C, Go and Javascript).
 
-# Web
+## Web
 
   * CS 4830: Science and Engineering of the WWW taught by Ryanne Dolan at University of Missouri: http://4830.ryannedolan.info/
   * CSCI 130: Web Programming taught by [Todd McLeod](https://www.udemy.com/user/toddmcleod/) at California State University Fresno
@@ -26,7 +30,7 @@
   * CIT 90: Data Drive Websites taught by [Todd McLeod](https://www.udemy.com/user/toddmcleod/) at Fresno City College
   * CIT 94: Server Side Scripting taught by [Todd McLeod](https://www.udemy.com/user/toddmcleod/) at Fresno City College
 
-# Concurrency
+## Concurrency
 
   * Go is being used at the end of a yearlong freshman computer science class at KTH: http://yourbasic.org/golang/concurrent-programming/
 
@@ -42,7 +46,7 @@
 
   * University of Victoria (Canada) used Go in the section on Concurrency as a part of [Programming Languages (CSC 330)](https://heat.csc.uvic.ca/coview/course/2017091/CSC330)
 
-# Distributed Computing
+## Distributed Computing
 
   * Distributed Computer Systems (CS 138) at Brown: http://cs.brown.edu/courses/cs138/s16/syllabus.html
 
@@ -70,17 +74,19 @@
 
   * University of Tromsø, Norway. [Distributed Systems Fundamentals (INF-3200)](https://uit.no/education/courses/course?p_document_id=291961) and [Advanced Distributed Systems (INF-3203)](https://uit.no/education/courses/course?p_document_id=292883). 
 
-# Networking
+## Networking
 
   * Computer Networking (COS 461) at Princeton: http://www.cs.princeton.edu/courses/archive/spring16/cos461/  (See Assignment 1 https://github.com/PrincetonUniversity/COS461-Spring2016/tree/master/notebook/assignment1 and Assignment 4 http://www.cs.princeton.edu/courses/archive/spring16/cos461/assignments/.
 
-# Compiler Design
+## Compiler Design
 
   * Compiler Design (CS712/CS812) at the University of New Hampshire: http://www.cs.unh.edu/~cs712/. In Fall 2016 we are compiling a subset of Go to LLVM code.
 
   * Introduction to Compilers (6197, Spanish) at Rey Juan Carlos University of Madrid: http://lsub.org/comp. Students write a compiler in Go that implements a language for drawing graphics.
 
-# Security
+## Security
 
   * [Learn Cryptography in Go](https://boot.dev/learn/learn-cryptography) on Boot.dev. A code-in-the-browser course where cryptography principles are taught in the Go language.
   * [Computer Systems Security](https://cs.brown.edu/courses/cs166/) (CS166) At Brown University. In particular, the final [Dropbox Project](https://cs.brown.edu/courses/cs166/files/assignments/dropbox.pdf).
+
+
diff --git a/CreatingSubRepository.md b/CreatingSubRepository.md
index c5c0276..d51a537 100644
--- a/CreatingSubRepository.md
+++ b/CreatingSubRepository.md
@@ -1,3 +1,7 @@
+---
+title: CreatingSubRepository
+---
+
 This page outlines the steps that need to be done to create a new golang.org/x repository, in order for it to have the same properties as all existing golang.org/x repositories:
 - a golang.org/x redirect
 - automatic git mirroring from Gerrit to GitHub
@@ -23,4 +27,4 @@
 	3. `x/build/cmd/gerritbot`
 	4. `x/build/cmd/coordinator` 
 	5. `x/website/cmd/golangorg`
-6. You're done.
\ No newline at end of file
+6. You're done.
diff --git a/CustomPprofProfiles.md b/CustomPprofProfiles.md
index 5fe95ef..3747391 100644
--- a/CustomPprofProfiles.md
+++ b/CustomPprofProfiles.md
@@ -1,3 +1,7 @@
+---
+title: CustomPprofProfiles
+---
+
 Originally published at https://rakyll.org/custom-profiles/.
 
 ----
@@ -96,4 +100,4 @@
        800   100%   100%        800   100%  main.main.func1 /Users/jbd/src/hello/main.go
 ```
 
-You will see that there are 800 open blobs and all openings are coming from main.main.func1. In this small example, there is nothing more to see, but in a complex server you can examine the hottest spots that works with an open blob and find out bottlenecks or leaks.
\ No newline at end of file
+You will see that there are 800 open blobs and all openings are coming from main.main.func1. In this small example, there is nothing more to see, but in a complex server you can examine the hottest spots that works with an open blob and find out bottlenecks or leaks.
diff --git a/Darwin.md b/Darwin.md
index 1970cbf..740726e 100644
--- a/Darwin.md
+++ b/Darwin.md
@@ -1,4 +1,6 @@
-# Go on Darwin
+---
+title: Go on Darwin
+---
 
 | **Kernel version** | **Distributions**               | **Architectures**      | **Initial support version** | **Final support version** |
 |:-------------------|:--------------------------------|:-----------------------|:---------------|:----------|
@@ -18,4 +20,5 @@
 
 _**_ See https://github.com/golang/go/issues/16570 and https://github.com/golang/go/issues/19772.
 
-_***_ See https://github.com/golang/go/issues/22037.
\ No newline at end of file
+_***_ See https://github.com/golang/go/issues/22037.
+
diff --git a/DashboardBuilders.md b/DashboardBuilders.md
index 3c549c8..724ee50 100644
--- a/DashboardBuilders.md
+++ b/DashboardBuilders.md
@@ -1,13 +1,8 @@
-# Table of contents
-1. [Coordinator Builders](#coordinator-builders)
-   1. [How to set up a builder](#how-to-set-up-a-builder)
-   1. [Builder Requirements](#builder-requirements)
-   1. [Security notes](#security-notes)
-2. [LUCI Builders](#luci-builders)
-   1. [How to set up a builder](#how-to-set-up-a-builder-1)
-   1. [Builder Requirements](#builder-requirements-1)
+---
+title: DashboardBuilders
+---
 
-# Coordinator Builders
+## Coordinator Builders
 
 Build configs (at the top) and host configs (bottom) are listed here:
 
@@ -21,7 +16,7 @@
 
 Information about builder machines, how many are running and their status can be found at https://farmer.golang.org/
 
-## How to set up a builder
+### How to set up a builder
 
   1. Talk to golang-dev@ to get a builder host type & hash (they can get one from using the `golang.org/x/build/cmd/genbuilderkey` tool), and put that in ` ~/.gobuildkey` or `~/.gobuildkey-host-foo-bar` or the file pointed to by env var `$GO_BUILD_KEY_PATH`.
   1. Define your new builder in https://github.com/golang/build/blob/master/dashboard/builders.go with a new HostConfig and BuildConfig.
@@ -37,24 +32,24 @@
 
 For WIP ports, the steps above can be done out of order as needed. But as a port matures, be sure each step above is done. In particular, make sure that you're not just running a fixed copy of the buildlet binary in a loop forever. We need to be able to update it over time without your involvement. You should be running the stage0 binary (or equivalent shell script or similar for your platform) in a loop instead.
 
-## Builder Requirements
+### Builder Requirements
   * Internet connection (at least be able to access Google and https://farmer.golang.org)
   * Preferably two or more (V)CPUs
   * At least 512MiB of memory (1GB or more highly recommended. 512MB might need a small `GOGC` setting to avoid thrashing.)
 
-## Security notes
+### Security notes
 
 Generally, community-run builders only run code that's already been reviewed & submitted. We only enable pre-submit testing for builders run by the Go team that have a lot of hardware available. However, the [Gomote tool](https://go.dev/wiki/Gomote) is available for a number of people on the Go team and in the Go community that lets them have arbitrary access to the builders for development & debugging.
 
 For paranoia reasons, you might want to run your builder in an isolated network that can't access any of your internal resources.
 
-# LUCI Builders
+## LUCI Builders
 
 The Go team is migrating the testing pipeline from a custom solution, the coordinator, to [LUCI](https://chromium.googlesource.com/chromium/src/+/master/docs/tour_of_luci_ui.md). [LUCI](https://chromium.googlesource.com/chromium/src/+/master/docs/tour_of_luci_ui.md) is an open source continuous integration system created by the Chrome open source team at Google. The Go team has adopted the use of LUCI in order to leverage a continuous integration solution which is used and supported by a larger group of developers. This should enable the team to provide a more featureful solution to the community.
 
 The LUCI system requires builders to run two applications which authenticate to LUCI and receive and process builds. LUCI token daemon generates a token needed to authenticate. The swarming bot uses the token to connect to LUCI and process builds.
 
-## Builder Requirements
+### Builder Requirements
 
   * An internet connection with the ability to connect to:
     - https://proxy.golang.org (or an alternative proxy via GOPROXY).
@@ -75,7 +70,7 @@
       - Under Docker, you can replace the shutdown command with a [shell script that restarts the container](https://chromium.googlesource.com/infra/infra/+/main/docker/swarm_docker/README.md#shutting-container-down-from-within) ([example](https://cs.opensource.google/go/x/build/+/master:cmd/buildlet/stage0/run-worker.sh)).
       - If the machine can't be restarted for some reason, set the environment variable `SWARMING_NEVER_REBOOT`.
 
-## How to set up a builder
+### How to set up a builder
 
   1. [Create an issue](https://github.com/golang/go/issues/new?labels=new-builder&title=x%2Fbuild%3A+add+LUCI+%3Cos-arch%3E+builder) on the Go Issue tracker requesting the addition of a new builder and assign it yourself.
      1. The title of the issue should be in the format: `x/build: add LUCI <os-arch> builder`.
@@ -92,7 +87,7 @@
      1. If /var/lib isn't a suitable place for the token, change it as you see fit and pass `-token-file-path` to `bootstrapswarm` below to match.
 
   1. Install `golang.org/x/build/cmd/bootstrapswarm` and configure it to run in a loop under your operating system's process supervisor (systemd, etc) as the `swarming` user. `Bootstrapswarm` downloads the initial version of the swarming bot and ensures that it is always running.
-     1. `bootstrapswarm -hostname <hostname>` 
+     1. `bootstrapswarm -hostname <hostname>`
 
   1. Verify the bot starts up without any errors in the logs.
 
@@ -103,3 +98,5 @@
 
 
 
+
+
diff --git a/Deprecated.md b/Deprecated.md
index 0669142..3306fa9 100644
--- a/Deprecated.md
+++ b/Deprecated.md
@@ -1,3 +1,7 @@
+---
+title: Deprecated
+---
+
 Sometimes an API feature such as a struct field, function, type, or even a whole package becomes
 redundant or unnecessary.
 When we want to discourage new programs from using it,
@@ -52,4 +56,4 @@
 package rc4
 ```
 
-There are a few other examples [in the standard library](https://cs.opensource.google/search?q=Deprecated:%20language:go&ss=go%2Fgo).
\ No newline at end of file
+There are a few other examples [in the standard library](https://cs.opensource.google/search?q=Deprecated:%20language:go&ss=go%2Fgo).
diff --git a/DesignDocuments.md b/DesignDocuments.md
index 94f6b01..f581cd3 100644
--- a/DesignDocuments.md
+++ b/DesignDocuments.md
@@ -1,9 +1,13 @@
-# Go 1.1
+---
+title: DesignDocuments
+---
+
+## Go 1.1
   * [Scalable Scheduler](https://docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sLKhJYD0Y_kqxDv3I3XMw)
   * [net/http/cookiejar](https://groups.google.com/d/msg/golang-dev/ygDB3nbir00/rouknDcuyakJ)
   * [Function Calls](https://docs.google.com/document/d/1bMwCey-gmqZVTpRax-ESeVuZGmjwbocYs1iHplK-cjo/pub)
 
-# Go 1.2
+## Go 1.2
 
   * [xml.Marshaler and Unmarshaler](https://go.dev/s/go12xml)
   * [encoding.TextMarshaler and Unmarshaler](https://go.dev/s/go12encoding)
@@ -12,13 +16,13 @@
   * [```x[i:j:k]``` Slice Syntax](https://go.dev/s/go12slice)
   * [Preemptive Scheduler](https://docs.google.com/document/d/1ETuA2IOmnaQ4j81AtTGT40Y4_Jr6_IDASEKg0t0dBR8/edit?usp=sharing)
 
-# Go 1.3
+## Go 1.3
 
   * [Contiguous Stacks](https://docs.google.com/document/d/1wAaf1rYoM4S4gtnPh0zOlGzWtrZFQ5suE8qr2sD8uWQ/pub)
   * [Go 1.3 Linker Overhaul](https://go.dev/s/go13linker)
   * [Go 1.3 Native Client Support](https://docs.google.com/document/d/1oA4rs0pfk5NzUyA0YX6QsUEErNIMXawoscw9t0NHafo/pub)
 
-# Go 1.4
+## Go 1.4
 
   * [Go channels on steroids](https://go.dev/s/go13chan)
   * [Go 1.4 “Internal” Packages](https://go.dev/s/go14internal)
@@ -30,13 +34,13 @@
   * [Go 1.4 Native Client Support for ARM](https://go.dev/s/go14naclarm)
   * [dev.cc branch plan](https://go.dev/s/dev.cc)
 
-# Go 1.5
+## Go 1.5
 
   * [Go 1.5 Bootstrap Plan](https://go.dev/s/go15bootstrap)
   * [Go Compiler Overhaul](https://go.dev/s/go13compiler)
   * [Go Execution Tracer](http://goo.gl/eXjfeS)
 
-# Future Proposals
+## Future Proposals
 
   * [New SSA Backend for the Go Compiler](https://docs.google.com/document/d/1szwabPJJc4J-igUZU4ZKprOrNRNJug2JPD8OYi3i1K0/edit?usp=sharing_eid)
   * [Go 1.4+ Garbage Collection (GC) Plan and Roadmap](https://go.dev/s/go14gc)
@@ -51,12 +55,13 @@
   * [NUMA-aware scheduler for Go](https://docs.google.com/document/d/1d3iI2QWURgDIsSR6G2275vMeQ_X7w-qxM2Vp7iGwwuM/pub)
   * [Go 1.5+ "External" Packages](https://docs.google.com/document/d/1CJnU6ZKvsp21B0lQwbJlKFt8Zz4EWscaCRy_EwK8ja8)
 
-# Other Tools
+## Other Tools
   * [Go Oracle](https://docs.google.com/document/d/1WmMHBUjQiuy15JfEnT8YBROQmEv-7K6bV-Y_K53oi5Y)
   * [Binding Go and Java](https://go.dev/s/gobind)
   * [Go Builder Plan](https://go.dev/s/builderplan)
   * [gomobile — a tool for building apps](https://docs.google.com/document/d/1cePOQ35PNEb_QqxnPAmBv0cEnAm7AQSGuz9wVeJ-lBs/edit)
 
-# Rejected Proposals
+## Rejected Proposals
   * [Read-only Slices](https://docs.google.com/a/golang.org/document/d/1UKu_do3FRvfeN5Bb1RxLohV-zBOJWTzX0E8ZU1bkqX0/edit#heading=h.2wzvdd6vdi83), [Evaluation of read-only slices](https://docs.google.com/document/d/1-NzIYu0qnnsshMBpMPmuO21qd8unlimHgKjRD9qwp2A/edit) ([rejected](https://groups.google.com/d/msg/golang-dev/Y7j4B2r_eDw/Rkq-OtEsEBAJ))
-  * [Go 1.4: unsafe.Pointer arithmetic](https://docs.google.com/a/dempsky.org/document/d/1yyCMzE4YPfsXvnZNjhszaYNqavxHhvbY-OWPqdzZK30/pub)
\ No newline at end of file
+  * [Go 1.4: unsafe.Pointer arithmetic](https://docs.google.com/a/dempsky.org/document/d/1yyCMzE4YPfsXvnZNjhszaYNqavxHhvbY-OWPqdzZK30/pub)
+
diff --git a/Diagnostics.md b/Diagnostics.md
index 1f3f3f7..ca8d0d1 100644
--- a/Diagnostics.md
+++ b/Diagnostics.md
@@ -1 +1,6 @@
-Moved to [golang.org](https://tip.golang.org/doc/diagnostics.html).
\ No newline at end of file
+---
+title: Diagnostics
+---
+
+Moved to [/doc/diagnostics](/doc/diagnostics).
+
diff --git a/Download-build-farm-failed-logs-and-debugging.md b/Download-build-farm-failed-logs-and-debugging.md
index 884b6dc..b97fea4 100644
--- a/Download-build-farm-failed-logs-and-debugging.md
+++ b/Download-build-farm-failed-logs-and-debugging.md
@@ -1,3 +1,7 @@
+---
+title: Download-build-farm-failed-logs-and-debugging
+---
+
 The Go project has all build failed logs storage at GCE, which you can access by the [dashboard](https://build.golang.org/).
 
 You can download all the failed logs by `fetchlogs`.
@@ -12,4 +16,4 @@
 to run grep over logs fetched by fetchlogs. 
 
 Also `github.com/aclements/findflakes` can make some guesses as to when a
-flaky test started failing.
\ No newline at end of file
+flaky test started failing.
diff --git a/DragonFly-BSD.md b/DragonFly-BSD.md
index 3e3013a..bc41b25 100644
--- a/DragonFly-BSD.md
+++ b/DragonFly-BSD.md
@@ -1,4 +1,6 @@
-# Go on DragonFly BSD
+---
+title: Go on DragonFly BSD
+---
 
 From https://github.com/golang/go/issues/34958#issuecomment-543852995 :
 
@@ -16,4 +18,5 @@
 | 3.8 through 4.2 (EOL)   | amd64             | Go 1.3 _*_                  | Go 1.7.6                  |
 | 3.6 (EOL)               | amd64, 386        | Go 1.3                      | Go 1.4.3                  |
 
-_*_ Go 1.5 or above is recommended.
\ No newline at end of file
+_*_ Go 1.5 or above is recommended.
+
diff --git a/ErrorValueFAQ.md b/ErrorValueFAQ.md
index 1e353e9..f4a8641 100644
--- a/ErrorValueFAQ.md
+++ b/ErrorValueFAQ.md
@@ -1,4 +1,6 @@
-# Error Values: Frequently Asked Questions
+---
+title: "Error Values: Frequently Asked Questions"
+---
 
 The Go 2 [error values proposal](https://go.googlesource.com/proposal/+/master/design/29934-error-values.md) adds functionality to the [`errors`](https://tip.golang.org/pkg/errors) and [`fmt`](https://tip.golang.org/pkg/fmt) packages of the standard library for Go 1.13. There is also a compatibility package, [`golang.org/x/xerrors`](https://pkg.go.dev/golang.org/x/xerrors), for earlier Go versions.
 
@@ -6,7 +8,7 @@
 
 ## How should I change my error-handling code to work with the new features?
 
-You need to be prepared that errors you get may be wrapped. 
+You need to be prepared that errors you get may be wrapped.
 
 - If you currently compare errors using `==`, use `errors.Is` instead. Example:
    ```
@@ -81,28 +83,28 @@
 - Giving client code access to underlying errors can help it make decisions, which can lead to better software.
 - Every error you expose becomes part of your API: your clients may come to rely on it, so you can't change it.
 
-For each error you return, you have to weigh the choice between helping your clients and locking yourself in. Of course, this choice is not unique to errors; as a package author, you make many decisions about whether a feature of your code is important for clients to know or an implementation detail. 
+For each error you return, you have to weigh the choice between helping your clients and locking yourself in. Of course, this choice is not unique to errors; as a package author, you make many decisions about whether a feature of your code is important for clients to know or an implementation detail.
 
 With errors, though, there is an intermediate choice: you can expose error details to people reading your code's error messages without exposing the errors themselves to client code. One way to do that is to  put the details in a string using `fmt.Errorf` with `%s` or `%v`. Another is to write a custom error type, add the details to the string returned by its `Error` method, and avoid defining an `Unwrap` method.
 
 ## I maintain a package that exports an error-checking predicate function. How should I adapt to the new features?
 
-Your package has a function or method `IsX(error) bool` that reports whether an error has some property. 
+Your package has a function or method `IsX(error) bool` that reports whether an error has some property.
 A natural thought would be to modify `IsX` to unwrap the error it is passed, checking the property for each error in the chain of wrapped errors. We advise against doing this: the change in behavior could break your users.
 
 Your situation is like that of the standard `os` package, which has several such functions. We recommend the approach we took there. The `os` package has several predicates, but we treated most of them the same. For concreteness, we'll look at `os.IsExist`.
 
 Instead of changing `os.IsExist`, we made `errors.Is(err, os.ErrExist)` behave like it, except that `Is` unwraps. (We did this by having `syscall.Errno` implement an `Is` method, as described in the documentation for [`errors.Is`](https://pkg.go.dev/errors/#Is).) Using `errors.Is` will always work correctly, because it will exist only in Go versions 1.13 and higher. For older versions of Go, you should recursively unwrap the error yourself, calling `os.IsExist` on each underlying error.
 
-This technique only works if you have control of the errors being wrapped, so you can add `Is` methods to them. 
+This technique only works if you have control of the errors being wrapped, so you can add `Is` methods to them.
 In that case, we recommend:
 - Don't change your `IsX(error) bool` function; do change its documentation to clarify that it does not unwrap.
-- If you don't already have one, add a global variable whose type implements `error` that represents the 
+- If you don't already have one, add a global variable whose type implements `error` that represents the
   condition that your function tests:
   ```
   var ErrX = errors.New("has property X")
   ```
-- Add an `Is` method to the types for which `IsX` returns true. The `Is` method should return true if its argument 
+- Add an `Is` method to the types for which `IsX` returns true. The `Is` method should return true if its argument
   equals `ErrX`.
 
 If you don't have control of all the errors that can have property X, you should instead consider adding another function that tests for the property while unwrapping, perhaps
@@ -126,7 +128,7 @@
 For example, perhaps your type looks like
 ```
 type MyError struct {
-    Err error   
+    Err error
     // other fields
 }
 
@@ -140,6 +142,8 @@
 
 Your type will then work correctly with the `Is` and `As` functions of `errors` and `xerrors`.
 
-We've done that for [`os.PathError`](https://tip.golang.org/pkg/os/#PathError.Unwrap) and other, similar types in the standard library. 
+We've done that for [`os.PathError`](https://tip.golang.org/pkg/os/#PathError.Unwrap) and other, similar types in the standard library.
 
 It's clear that writing an `Unwrap` method is the right choice if the nested error is exported, or otherwise visible to code outside your package, such as via a method like `Unwrap`.  But if the nested error is not exposed to outside code, you probably should keep it that way. Making the error visible by returning it from `Unwrap` will enable your clients to depend on the type of the nested error, which can expose implementation details and constrain the evolution of your package. See the discussion of `%w` above for more.
+
+
diff --git a/Errors.md b/Errors.md
index 57eeae5..d9f435f 100644
--- a/Errors.md
+++ b/Errors.md
@@ -1,4 +1,6 @@
-# Errors
+---
+title: Errors
+---
 
 Errors are indicated by returning an `error` as an additional return value from a function. A `nil` value means that there was no error.
 
@@ -99,4 +101,5 @@
 
   * Errors (specification): https://go.dev/ref/spec#Errors
   * Package `errors`: https://pkg.go.dev/errors/
-  * Type switches: https://go.dev/ref/spec#TypeSwitchStmt
\ No newline at end of file
+  * Type switches: https://go.dev/ref/spec#TypeSwitchStmt
+
diff --git a/ExperienceReports.md b/ExperienceReports.md
index efac28b..ccff946 100644
--- a/ExperienceReports.md
+++ b/ExperienceReports.md
@@ -1,3 +1,7 @@
+---
+title: ExperienceReports
+---
+
 This page collects experience reports about problems with Go that might inform our design of solutions to those problems. These reports should focus on the _problems_: they should not focus on and need not propose solutions. To propose solutions, see the [proposal process](https://go.dev/s/proposal).
 
 We hope to use these experience reports to understand where people are having trouble writing Go, to help us prioritize future changes to the Go ecosystem.  (We do not promise to reply to these. If you need immediate help answering questions about Go, see [https://go.dev/help/](https://go.dev/help/) for resources.)
@@ -257,3 +261,4 @@
 ## Vendoring
   - Jeremy Loy, "[Go Modules and Vendoring](https://github.com/golang/go/issues/27227#issuecomment-420428896)", September 2018.
   - Ian Davis, "[Vendoring for self-contained builds](https://github.com/golang/go/issues/27227#issuecomment-459171581)", January 2019
+
diff --git a/FileTreeDocumentation.md b/FileTreeDocumentation.md
index d8b071f..2ee554a 100644
--- a/FileTreeDocumentation.md
+++ b/FileTreeDocumentation.md
@@ -1,3 +1,7 @@
+---
+title: FileTreeDocumentation
+---
+
 This page documents the file tree for a source installation of go1.13.1.
 
 ```
@@ -82,4 +86,4 @@
 ```
 src contains the go1.13.1 source code
 
-test contains tests of the Go toolchain and runtime
\ No newline at end of file
+test contains tests of the Go toolchain and runtime
diff --git a/FreeBSD.md b/FreeBSD.md
index 05acc72..c477cbd 100644
--- a/FreeBSD.md
+++ b/FreeBSD.md
@@ -1,4 +1,6 @@
-# Go on FreeBSD
+---
+title: Go on FreeBSD
+---
 
 | **Kernel version** | **Architectures**               | **Initial support version** | **Final support version** |
 |:-------------------|:--------------------------------|:----------------------------|:--------------------------|
@@ -15,4 +17,5 @@
 
 _**_ Go versions prior to 1.20 require a kernel with `options COMPAT_FREEBSD11` config (this is the default). 64-bit inode aware system calls are available since https://go.dev/cl/143637. See https://go.dev/issues/22447.
 
-_***_ Go 1.20 is the first version to support freebsd/riscv64.
\ No newline at end of file
+_***_ Go 1.20 is the first version to support freebsd/riscv64.
+
diff --git a/FromXToGo.md b/FromXToGo.md
index a6e783d..9845c52 100644
--- a/FromXToGo.md
+++ b/FromXToGo.md
@@ -1,6 +1,10 @@
+---
+title: FromXToGo
+---
+
 This page links to blog posts, videos, and slide decks discussing moving a code base to Go from some other language.
 
-# Python
+## Python
 * [Disqus: Trying out this Go thing](https://blog.disqus.com/trying-out-this-go-thing)
 * [Rackspace: Making OpenStack-Powered Rackspace Cloud Files Buzz With Hummingbird](https://blog.rackspace.com/making-openstack-powered-rackspace-cloud-files-buzz-with-hummingbird/)
 * [Repustate: From Python to Go: migrating our entire API](https://www.repustate.com/blog/migrating-entire-api-go-python/)
@@ -12,7 +16,7 @@
 * [Code Migration in Production: Rewriting the Sharding Layer of Uber’s Schemaless Datastore](https://eng.uber.com/schemaless-rewrite/)
 * [Learning Go by porting a medium-sized web backend from Python](https://benhoyt.com/writings/learning-go/)
 
-# Node
+## Node
 
 * [Digg](https://medium.com/@theflapjack103/the-way-of-the-gopher-6693db15ae1f#.yw5lk8t25)
 * [Uber](https://www.infoq.com/articles/podcast-matt-ranney) (audio)
@@ -24,13 +28,13 @@
 * [Our Experience with Golang](https://www.upguard.com/blog/our-experience-with-golang)
 * [Interview with Steve Kaliski, CTO of Bowery - The tech stack that powers Bowery, Moving from Node.js to Go lang and more](https://hashnode.com/post/interview-with-steve-kaliski-cto-of-bowery-the-tech-stack-that-powers-bowery-moving-from-nodejs-to-go-lang-and-more-ciibz8dmn001lj3xt468g5k78)
 
-# C++
+## C++
 
 * [dl.google.com](https://talks.golang.org/2013/oscon-dl.slide#1) by Brad Fitzpatrick
 * [Flywheel: Google's mobile image compression proxy](http://matt-welsh.blogspot.nl/2013/08/rewriting-large-production-system-in-go.html)
 * [Fulfilling a Pikedream: the ups of downs of porting 50k lines of C++ to Go](https://togototo.wordpress.com/2015/03/07/fulfilling-a-pikedream-the-ups-of-downs-of-porting-50k-lines-of-c-to-go/)
 
-# Ruby
+## Ruby
 
 * [Book: From Ruby to Golang](https://leanpub.com/rb2go)
 * [Toggl: Moving to Go](https://blog.toggl.com/2012/09/moving-to-go/)
@@ -44,22 +48,22 @@
 * [Our Experience with Golang](https://www.upguard.com/blog/our-experience-with-golang)
 * [Rewriting our web analytics tracking infrastructure in Go](https://engineering.skroutz.gr/blog/rewriting-web-analytics-tracking-in-go/)
 
-# Java
+## Java
 * [From Java to Go](https://gquintana.github.io/2017/01/15/From-Java-to-Go.html)
 * [Why one developer switched from Java to Google Go](http://www.javaworld.com/article/2459212/scripting-jvm-languages/why-one-developer-switched-from-java-to-google-go.html)
 
-# Common Lisp
+## Common Lisp
 * [A comparison of three programming languages for a full-fledged next-generation sequencing tool](https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-2903-5)
 * [Comparing Ease of Programming in C++, Go, and Java for Implementing a Next-Generation Sequencing Tool](https://doi.org/10.1177%2F1176934319869015)
 
-# .NET
+## .NET
 * [Why I Left the .NET Framework](http://blog.jonathanoliver.com/why-i-left-dot-net/)
 
-# Scala
+## Scala
 * [CrowdStrike: Moving a Team from Scala to Go](http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/)
 * [Making the move from Scala to Go, and why we’re not going back](https://movio.co/blog/migrate-Scala-to-Go/)
 
-# PHP
+## PHP
 * [Switching from PHP to Go (read comments section)](https://www.reddit.com/r/golang/comments/3wfnru/switching_from_php_to_go/)
 * [A Journey into Microservices](https://sudo.hailoapp.com/services/2015/03/09/journey-into-a-microservice-world-part-1/)
 * [ARDUINO WEB ARCHITECTURE, BACK TO THE FUTURE](https://blog.arduino.cc/2015/04/16/arduino-web-architecture-back-to-the-future/)
@@ -67,11 +71,12 @@
 * [Moving from PHP (Laravel) to Go](https://dannyvankooten.com/laravel-to-golang/)
 * [When All You Have is an ElePHPant (Slides from ConFoo 2016)](https://www.ramblinations.com/when-all-you-have-is-an-elephpant)
 
-# Perl
+## Perl
 * [How We Migrate From Perl to Golang](https://medium.com/@alvintz.v/how-we-migrate-from-perl-to-golang-1520a4951392)
 
-# Haskell
+## Haskell
 * [Golang’s Real-time GC in Theory and Practice](https://blog.pusher.com/golangs-real-time-gc-in-theory-and-practice/)
 
-# Clojure
-* [Rewriting an API Gateway Service from Clojure to Golang: AppsFlyer Experience Report](https://www.infoq.com/articles/api-gateway-clojure-golang)
\ No newline at end of file
+## Clojure
+* [Rewriting an API Gateway Service from Clojure to Golang: AppsFlyer Experience Report](https://www.infoq.com/articles/api-gateway-clojure-golang)
+
diff --git a/Frozen.md b/Frozen.md
index 576bdc4..e2241f4 100644
--- a/Frozen.md
+++ b/Frozen.md
@@ -1,3 +1,7 @@
+---
+title: Frozen
+---
+
 Sometimes a package reaches the end of its development cycle and is considered complete. It continues to be maintained, meaning regressions or breakages are fixed, but the scope becomes frozen and no new features are meant to be accepted.
 
 Freezing a package is a message primarily for developers and contributors to the package, not users. It does not imply that the package should not be used. For that, see the ["Deprecated" convention](Deprecated).
@@ -31,3 +35,4 @@
 ```
 // The text/tabwriter package is frozen and is not accepting new features.
 ```
+
diff --git a/Fuzzing-trophy-case.md b/Fuzzing-trophy-case.md
index dfd84da..9f6c465 100644
--- a/Fuzzing-trophy-case.md
+++ b/Fuzzing-trophy-case.md
@@ -1,4 +1,6 @@
-# Fuzzing trophy case
+---
+title: Fuzzing trophy case
+---
 
 This page collects issues that have been discovered using [Go's native fuzzing](https://github.com/golang/go/issues/44551).
 
@@ -30,3 +32,5 @@
 * [DataDog/datadog-agent: fix edge case in tags normalization](https://github.com/DataDog/datadog-agent/pull/13235)
 
 
+
+
diff --git a/GOPATH.md b/GOPATH.md
index 8cc58aa..bf2aabd 100644
--- a/GOPATH.md
+++ b/GOPATH.md
@@ -1,3 +1,7 @@
+---
+title: GOPATH
+---
+
 ## GOPATH variable
 
 Go development using dependencies beyond the standard library is done [using Go modules](https://go.dev/blog/using-go-modules). When using Go modules, the GOPATH variable (which defaults to `$HOME/go` on Unix and `%USERPROFILE%\go` on Windows) is used for the following purposes:
@@ -76,3 +80,4 @@
 ### What if I have more questions about moving from GOPATH development mode to Go modules?
 
 See [golang.org/help](https://go.dev/help) for a list of resources. If none of those are appropriate, feel free to [file an issue](https://go.dev/issue) here. We want everyone to be successful adopting Go modules.
+
diff --git a/Gardening.md b/Gardening.md
index 51dd541..25df916 100644
--- a/Gardening.md
+++ b/Gardening.md
@@ -1,4 +1,6 @@
-# Gardening
+---
+title: Gardening
+---
 
 ## What is gardening?
 
@@ -14,7 +16,7 @@
 
 ## Gardening Tasks
 
-Before doing any gardening work, especially on the issue tracker, remember to familiarize yourself with the issues life-cycle, described here: [Handling Issues - Issue States](https://github.com/golang/go/wiki/HandlingIssues#issue-states).
+Before doing any gardening work, especially on the issue tracker, remember to familiarize yourself with the issues life-cycle, described here: [Handling Issues - Issue States](/wiki/HandlingIssues#issue-states).
 
 ### Fix red
 
@@ -59,3 +61,5 @@
 ### Pending CLs: run TryBots
 
 If you have access (see https://go.dev/wiki/GerritAccess) to run the TryBots and you see a CL with plausible (and non-malicious) code, kick off the TryBots. (We've never seen malicious code trying to escape our TryBot sandboxes, but that's why it's not automatic yet. Please alert us if you see something.)
+
+
diff --git a/GcToolchainTricks.md b/GcToolchainTricks.md
index da391a7..98da604 100644
--- a/GcToolchainTricks.md
+++ b/GcToolchainTricks.md
@@ -1,6 +1,10 @@
+---
+title: GcToolchainTricks
+---
+
 This page documents some less well-known (perhaps advanced) tricks for the ` gc ` toolchain (and the Go tool).
 
-# C code without ` cgo `
+## C code without ` cgo `
 
 ### Use ` syso ` file to embed arbitrary self-contained C code
 Basically, you write your assembly language in GNU as(1) format, but make sure
@@ -24,7 +28,7 @@
   * this trick is supported on all Go 1.x releases.
   * the Go linker is pretty capable in that you just need to prepare .syso file for each architecture, not for each OS/Arch combination (assuming you don't use OS-specific constructs, obviously), and the Go linker is perfectly capable to link, for example, Mach-O object files into ELF binaries. So be sure to name your syso file with names like ` file_amd64.syso `, ` file_386.syso `.
 
-# Bundle data into Go binary
+## Bundle data into Go binary
 There are a lot of ways to bundle data in Go binary, for example:
   * ` zip ` the data files, and append the zip file to end of Go binary, then use ` zip -A prog ` to adjust the bundled zip header. You can use ` archive/zip ` to open the program as a zip file, and access its contents easily. There are existing packages that helps with this, for example, https://pkg.go.dev/bitbucket.org/tebeka/nrsc; This requires post-processing the program binary, which is not suitable for non-main packages that require static data. Also, you must collect all data files into one zip file, which means that it's impossible to use multiple packages that utilize this method.
   * Embed the binary file as a ` string ` or ` []byte ` in Go program. This method is not recommended, not only because the generated Go source file is much larger than the binary files themselves, also because static large ` []byte ` slows down the compilation of the package and the ` gc ` compiler uses a lot of memory to compile it (this is a known bug of ` gc `). For example, see the [tools/godoc/static](https://pkg.go.dev/golang.org/x/tools/godoc/static) package.
@@ -91,7 +95,7 @@
 **Drawback** of this issue is that it seems incompatible to cgo, so only use it when you don't
 use cgo, at least for now. I (minux) is working on figuring out why they're incompatible.
 
-# Including build information in the executable
+## Including build information in the executable
 
 The gc toolchain linker, [cmd/link](https://pkg.go.dev/cmd/link), provides a `-X` option that may be used to record arbitrary information in a Go string variable at link time. The format is `-X importpath.name=val`.  Here `importpath` is the name used in an import statement for the package (or `main` for the main package), `name` is the name of the string variable defined in the package, and `val` is the string you want to set that variable to. When using the go tool, use its `-ldflags` option to pass the `-X` option to the linker.
 
@@ -105,4 +109,5 @@
 
 You can build the program using this package using `go build -ldflags="-X 'company/buildinfo.BuildTime=$(date)'"` to record the build time in the string.  (The use of `$(date)` assumes you are using a Unix-style shell.)
 
-The string variable must exist, it must be a variable, not a constant, and its value must not be initialized by a function call.  There is no warning for using the wrong name in the `-X` option.  You can often find the name to use by running `go tool nm` on the program, but that will fail if the package name has any non-ASCII characters, or a `"` or `%` character.
\ No newline at end of file
+The string variable must exist, it must be a variable, not a constant, and its value must not be initialized by a function call.  There is no warning for using the wrong name in the `-X` option.  You can often find the name to use by running `go tool nm` on the program, but that will fail if the package name has any non-ASCII characters, or a `"` or `%` character.
+
diff --git a/GccgoCrossCompilation.md b/GccgoCrossCompilation.md
index 55a029c..b6046be 100644
--- a/GccgoCrossCompilation.md
+++ b/GccgoCrossCompilation.md
@@ -1,26 +1,30 @@
-# Introduction
+---
+title: GccgoCrossCompilation
+---
+
+## Introduction
 
 If you want to run your Go programs on a platform that is not supported by the standard Go compiler _gc_ you can build a version of the GCC compiler that targets your desired target platform, since GCC supports many more platforms. This is possible because there is a Go frontend to GCC named [gccgo](https://github.com/golang/gofrontend).
 
 
-# Details
+## Details
 
-## Definitions
+### Definitions
   * **Build** This is the computer where you are building the cross-compiler.
   * **Host** The computer that will run the cross-compiler once it's built. This is usually the same as Build.
   * **Target** This is the destination system, where you want the cross-compiled program to run.
 
 More definitions and complex cross situations can be found at the [Wikipedia article](http://en.wikipedia.org/wiki/Cross_compiler).
 
-## Go tools and gccgo
+### Go tools and gccgo
 You will later need to source code to the Go tool, so you might as well uninstall the version you have installed from your package manager to avoid confusion  (fully optional tho). Also build & install gccgo targeting host(!, that's right, you need a gcco compiling for not only target but one for host).
 
   * [Installing Go from source](https://go.dev/doc/install/source)
   * [Official Go documentation](https://go.dev/doc/install/gccgo)
 
-## Build the cross-compiler
+### Build the cross-compiler
 
-### Build
+#### Build
 First you have to build your cross-compiling version of GCC. This is complex process as it requires several stages with bootstrapping since there are mutual dependency relations between GCC and libc implementations. A very fine tutorial on how to build a GCC cross-toolchain with eglic (works with glibc too) was written by Jim Blandy and posted at eglibc's mailinglist [patches Cross-building instructions](http://www.eglibc.org/archives/patches/msg00078.html). In the final stage where the full GCC is built, simply configure script with _--enable-languages=c,c++,go_ (see [official Go documentation](https://go.dev/doc/install/gccgo)).
 
 You can use the [ewxb\_gcc\_cross-compiler\_builder](https://github.com/erikw/ewxb_gcc_cross-compiler_builder) script as a starting point. Don't expect that script to work out of the box, but rather as a hint to which steps you're likely to take when building your x-toolchain.
@@ -29,7 +33,7 @@
 
 Newer versions of crosstool-NG can build the go language by enabling ```CT_EXPERIMENTAL``` and ```CT_CC_SUPPORT_GOLANG```. This will automatically add ```go``` to ```--enable-languages```.
 
-### Symlink
+#### Symlink
 You should now have a bin directory with files with names like "` <target `>-gcc", "` <target `>-gnu-gccgo" etc. Because the go build tool does not allow you to specify file-names of the compilers to use (only statically supports the strings 'gc' and 'gccgo') it will look in your $PATH envvar for the first file named 'gccgo' and 'gcc'. You will therefore have to add this directory as an overlay by setting it to be the first one in $PATH when you want to use the cross-compiler and not your normal gcc binary on your system. Since the go tool looks for a binary named _gccgo_ you'll have to make some symlinks for the tools you want it to find.
 
 ```
@@ -45,7 +49,7 @@
 With $TARGET set to the target architecture and $PREFIX set to the destination path of the built files, you can make the symlinks with:
 
 ```
-#!/usr/bin/env bash 		
+##!/usr/bin/env bash 		
 
 cd $PREFIX/bin
 for file in $(find . -type f); do 		
@@ -54,7 +58,7 @@
 done
 ```
 
-### Test
+#### Test
 When the cross-compiler is build you should test that it works, both for a simple C program and a simple Go program.
 
 ```
@@ -64,18 +68,18 @@
 	$ <ssh/telnet etc. to target and test run>
 ```
 
-### Gotchas
+#### Gotchas
 
 If you haven't compiled a shared object of the go library, _libgo_, for your target you might want to compile your Go programs statically, just like _gc_ does, to include all what is needed to run your program. Do this by adding the _-static_ switch to gccgo. If you're unsure how your produced ELF file is linked, inspect it with _readelf -d `<elf>`_ or _objdump -T `<elf>`_.
 
 
-## Build a cross-gccgo aware version of the Go tool
-### Assumptions
+### Build a cross-gccgo aware version of the Go tool
+#### Assumptions
   * Assuming that you've followed the instructions on [Installing Go from source](https://go.dev/doc/install/source) you should have a checked out version of the go source at _$GOROOT_.
   * Envvar _$GOROOT_ is set.
   * The envvars _$GOARCH_ and _$GOOS_ represent the **target** architecture and operating system. Figure these out and set them to these values when you want to cross-compile.
 
-### Build
+#### Build
 You can specify the compiler to use when building with the go tool with _go build -compiler gccgo ` <go-package,files> `_. This is however not enough. If you have set _$GOARCH_ and _$GOOS_ to something that is not supported by _gc_ but with _gccgo_ you have to build a special version of the go tool that understands these extra architectures. If you compile another version of the go tool with the go tool but specify to use gccgo targeting your host, the resulting go tool will be able to compile programs with all the architectures supported by gccgo.
 
 ```
@@ -91,7 +95,7 @@
   * ` [3 `] The compilation step (go build) can fail with some compilation errors since gccgo is lagging behind the go project (at least at go mercurial tip 7f2863716967). Fix those errors by commenting out or something more clever and re-compile.
 
 
-## Cross-compile Go programs.
+### Cross-compile Go programs.
 
 With your _$PATH_ set to find _xgo\_and the cross-compiling version of_gccgo and _$GOARCH_ set properly you can now cross-compile using the go tool (named xgo).
 
@@ -102,9 +106,10 @@
 	$ xgo build -compiler gccgo <go-package/files>
 ```
 
-## TODO
+### TODO
 
 Go-programs importing "C" does not seems to work using xgo. Currently blocked by [Go issue#7398](https://github.com/golang/go/issues/7398)
 
 
-This Wiki page was inspired by the lessons learned from "[golang-nuts] Simplification of MIPS cross-compilation?" @ https://groups.google.com/forum/#!topic/golang-nuts/PgyS2yoO2jM
\ No newline at end of file
+This Wiki page was inspired by the lessons learned from "[golang-nuts] Simplification of MIPS cross-compilation?" @ https://groups.google.com/forum/#!topic/golang-nuts/PgyS2yoO2jM
+
diff --git a/GerritAccess.md b/GerritAccess.md
index 473a64c..e8ccfc0 100644
--- a/GerritAccess.md
+++ b/GerritAccess.md
@@ -1,4 +1,6 @@
-# Gerrit Access
+---
+title: Gerrit Access
+---
 
 There are two types of Gerrit access described here, with different powers & responsibilities. Only ask for access if you're an active member of the community. New contributors should participate in the Gerrit code review process for some time before requesting access.
 
@@ -23,7 +25,7 @@
 
 Every CL requires _both_ a code review (Code-Review+2) from an approver and the involvement of two Google employees using Google-secured computers, either as code uploader or as a reviewer voting at least Code-Review+1. Requiring multiple people ensures that code cannot be submitted unilaterally from a single compromised account. The Google employee and hardware requirements further raise the bar: since CLs in many repos are essentially published by Google for download by users at commit time, the Google involvement is to approve this publication. Once a review has a Code-Review+2 and the necessary Google involvement, it can be submitted, by any approver. All these rules are enforced by the Gerrit server.
 
-A Code-Review+2 vote means that you have read the change and are confident that it is correct and appropriate to submit. Typically, you should only Code-Review+2 code in directories or packages that you "own"; the exception is trivial and obviously correct changes. Note that all user-visible new features or changes—new API, new command-line flags, and so on—need to go through the [proposal process](https://go.dev/s/proposal-process). The CLs should reference the specific accepted proposal [in the commit message](https://github.com/golang/go/wiki/CommitMessage) (“For #NNN.”).
+A Code-Review+2 vote means that you have read the change and are confident that it is correct and appropriate to submit. Typically, you should only Code-Review+2 code in directories or packages that you "own"; the exception is trivial and obviously correct changes. Note that all user-visible new features or changes—new API, new command-line flags, and so on—need to go through the [proposal process](https://go.dev/s/proposal-process). The CLs should reference the specific accepted proposal [in the commit message](/wiki/CommitMessage) (“For #NNN.”).
 
 When adding a Code-Review+2 vote, it is encouraged to also add Run-TryBots+1 and Auto-Submit+1: see the [auto-submit](#auto-submit) section below for details.
 
@@ -61,4 +63,5 @@
 
 ## Once you have access
 
-Go help garden! See https://go.dev/wiki/Gardening.
\ No newline at end of file
+Go help garden! See https://go.dev/wiki/Gardening.
+
diff --git a/GerritBot.md b/GerritBot.md
index f1372a5..3c6f3d3 100644
--- a/GerritBot.md
+++ b/GerritBot.md
@@ -1,3 +1,7 @@
+---
+title: GerritBot
+---
+
 GerritBot is a tool used for importing GitHub Pull Requests (PRs) into [Gerrit](https://go-review.googlesource.com) for code review. It was created because the Go team does all its reviews in Gerrit, but we'd like to allow a more common workflow for contributing code via GitHub PRs.
 
 Table of Contents
@@ -52,7 +56,7 @@
 
 You can browse the currently open CLs [here](https://go-review.googlesource.com/q/status:open+-is:wip) and subscribe for updates to interesting CLs by clicking the star icon.
 
-You don't need to be an expert in the code to help with initial review triage. See the section on [helping to review CLs](https://github.com/golang/go/wiki/Gardening/#pending-cls) in the [Gardening](https://github.com/golang/go/wiki/Gardening) wiki page for more details.
+You don't need to be an expert in the code to help with initial review triage. See the section on [helping to review CLs](/wiki/Gardening/#pending-cls) in the [Gardening](/wiki/Gardening) wiki page for more details.
 
 ### I heard Gerrit requires one commit per change. Can I upload multiple commits to my PR?
 
@@ -75,4 +79,4 @@
 + If the feature/bug is non-trivial, please [file an issue](https://github.com/golang/go/issues/new?title=x%2Fbuild%2Fcmd%2Fgerritbot%3A%20%3Cfill%20this%20in%3E) first
 + The code is located at x/build/cmd/gerritbot
   ([GitHub](https://github.com/golang/build/tree/master/cmd/gerritbot),
-  [Gerrit](https://go.googlesource.com/build/+/master/cmd/gerritbot/))
\ No newline at end of file
+  [Gerrit](https://go.googlesource.com/build/+/master/cmd/gerritbot/))
diff --git a/GithubAccess.md b/GithubAccess.md
index 38fac14..6d6dd0c 100644
--- a/GithubAccess.md
+++ b/GithubAccess.md
@@ -1,4 +1,6 @@
-# Github Access
+---
+title: GithubAccess
+---
 
 There are two types of Github access described here, with different powers & responsibilities. Only ask for access if you're an active member of the community. New contributors should participate in the Github & Gerrit review process for some time before requesting access.
 
@@ -24,4 +26,5 @@
 
 ## Once you have access
 
-Go help garden! See https://go.dev/wiki/Gardening.
\ No newline at end of file
+Go help garden! See https://go.dev/wiki/Gardening.
+
diff --git a/Go-1.10-Release-Party.md b/Go-1.10-Release-Party.md
index 3d6d0b6..e7e12e7 100644
--- a/Go-1.10-Release-Party.md
+++ b/Go-1.10-Release-Party.md
@@ -1,3 +1,7 @@
+---
+title: Go-1.10-Release-Party
+---
+
 ### What's happening?
 To celebrate the release of Go 1.10 we're to organising a world wide release party during the month of February 2018 🎉 
 
@@ -60,7 +64,7 @@
 
 Trying to co-ordinate dozens of meetup groups around the globe will be challenging. Here are some ways you can plan your event, and keep up to date. 
 
-As always, if you get stuck, or need help, please [contact the organisers directly](https://github.com/golang/go/wiki/Go-1.10-release-party#no-seriously-whos-organising-this), we're here to help.
+As always, if you get stuck, or need help, please [contact the organisers directly](/wiki/Go-1.10-release-party#no-seriously-whos-organising-this), we're here to help.
 .
 ##### Slack Channel
 We have a channel for the [release party](https://gophers.slack.com/messages/go-release-party/) on the [Gophers Slack](https://gophers.slack.com/messages/go-release-party/). If you need an invite to Slack, [you can request an automatic invite with this link](https://invite.slack.golangbridge.org/).
@@ -69,7 +73,7 @@
 We have set up a [mailing list for meetup organisers](https://groups.google.com/forum/#!forum/go-meetup-organisers) to ask questions.
 
 ### What happens in a release party?
-As with the previous [Go 1.6](https://github.com/golang/go/wiki/Go-1.6-release-party) and [Go 1.8](https://github.com/golang/go/wiki/Go-1.8-release-party) release parties, this is a great opportunity to spread the word about the improvements landing 1.10, and the plans for what is coming next!
+As with the previous [Go 1.6](/wiki/Go-1.6-release-party) and [Go 1.8](/wiki/Go-1.8-release-party) release parties, this is a great opportunity to spread the word about the improvements landing 1.10, and the plans for what is coming next!
 
 #### Resources
 
@@ -98,4 +102,4 @@
 
 _Want to help? Edit this page and add yourself_
 
-If you have questions, please reach out to one of the organisers.
\ No newline at end of file
+If you have questions, please reach out to one of the organisers.
diff --git a/Go-1.6-release-party.md b/Go-1.6-release-party.md
index f983d45..5fa1f5b 100644
--- a/Go-1.6-release-party.md
+++ b/Go-1.6-release-party.md
@@ -1,3 +1,7 @@
+---
+title: Go-1.6-release-party
+---
+
 ### Party recap on tweets
 
 Missed or missing the party? Here is a flashback for you: https://storify.com/gobridge/go-16v-world-release-party
@@ -80,7 +84,7 @@
 
 Trying to co-ordinate dozens of meetup groups around the globe will be challenging. Here are some ways you can plan your event, discuss it online, and keep up to date. 
 
-As always, if you get stuck, or need help, please [contact the organisers directly](https://github.com/golang/go/wiki/Go-1.6-release-party#no-seriously-whos-organising-this), we're here to help.
+As always, if you get stuck, or need help, please [contact the organisers directly](/wiki/Go-1.6-release-party#no-seriously-whos-organising-this), we're here to help.
 
 ##### Slack Channel
 We have a channel for the [release party](https://gophers.slack.com/messages/go-release-party/) on the [Gophers Slack](https://gophers.slack.com/messages/go-release-party/). If you need an invite to Slack, [you can request an automatic invite with this link](https://gophersinvite.herokuapp.com/).
@@ -167,4 +171,4 @@
 
 _Want to help? Edit this page and add yourself_
 
-If you have questions, please reach out to one of the organisers.
\ No newline at end of file
+If you have questions, please reach out to one of the organisers.
diff --git a/Go-1.8-Release-Party.md b/Go-1.8-Release-Party.md
index 05b1830..bf3b83c 100644
--- a/Go-1.8-Release-Party.md
+++ b/Go-1.8-Release-Party.md
@@ -1,3 +1,7 @@
+---
+title: Go-1.8-Release-Party
+---
+
 ### What's happening?
 To celebrate the release of Go 1.8 we're to organising a world wide release party on February the 16th, 2017. 
 
@@ -103,7 +107,7 @@
 
 Trying to co-ordinate dozens of meetup groups around the globe will be challenging. Here are some ways you can plan your event, and keep up to date. 
 
-As always, if you get stuck, or need help, please [contact the organisers directly](https://github.com/golang/go/wiki/Go-1.8-release-party#no-seriously-whos-organising-this), we're here to help.
+As always, if you get stuck, or need help, please [contact the organisers directly](/wiki/Go-1.8-release-party#no-seriously-whos-organising-this), we're here to help.
 .
 ##### Slack Channel
 We have a channel for the [release party](https://gophers.slack.com/messages/go-release-party/) on the [Gophers Slack](https://gophers.slack.com/messages/go-release-party/). If you need an invite to Slack, [you can request an automatic invite with this link](https://invite.slack.golangbridge.org/).
@@ -112,7 +116,7 @@
 We have set up a [mailing list for meetup organisers](https://groups.google.com/forum/#!forum/go-meetup-organisers) to ask questions.
 
 ### What happens in a release party?
-As with the previous [Go 1.6](https://github.com/golang/go/wiki/Go-1.6-release-party) and Go 1.7 release parties, this is a great opportunity to spread the word about the improvements landing 1.8, and the plans for the 1.9 development cycle.
+As with the previous [Go 1.6](/wiki/Go-1.6-release-party) and Go 1.7 release parties, this is a great opportunity to spread the word about the improvements landing 1.8, and the plans for the 1.9 development cycle.
 
 #### Resources
 
@@ -144,4 +148,4 @@
 
 _Want to help? Edit this page and add yourself_
 
-If you have questions, please reach out to one of the organisers.
\ No newline at end of file
+If you have questions, please reach out to one of the organisers.
diff --git a/Go-Community-Slides.md b/Go-Community-Slides.md
index 1b1a02f..047a8b7 100644
--- a/Go-Community-Slides.md
+++ b/Go-Community-Slides.md
@@ -1,27 +1,31 @@
+---
+title: Go-Community-Slides
+---
+
 Did you speak at a conference or meetup lately? Please share links to your slide decks here for better distribution to our global community. 
 
 
-# Peer To Peer Groups
+## Peer To Peer Groups
 
-## Kitchener-Waterloo, Canada
+### Kitchener-Waterloo, Canada
 
-### Concurrent Optimization Methods Using Go
+#### Concurrent Optimization Methods Using Go
 
 Brodie Roberts, June 12, 2018 [[repo](https://github.com/indexexchange/GoOptimizationMethods)]
 
 Concurrency is a powerful tool for doing huge amounts of computation on today's multi-core computers. But that power is limited by the design of paralleling the problem and its implementation using threads and locks. We'll start with a sub-optimal concurrent Go program and walk through improving it - iterating on finding the program's bottleneck, improving it, and seeing the program get faster. We'll also cover general tips and tricks of concurrent optimization to apply to your own computationally intensive programs. 
 
 
-# Conferences
-## [GopherCon 2018](http://gophercon.com/), Denver, Colorado
+## Conferences
+### [GopherCon 2018](http://gophercon.com/), Denver, Colorado
 
-### The Importance of Beginners
+#### The Importance of Beginners
 Natalie Pistunovich, August 29 
 
 * [Session details](https://www.gophercon.com/agenda/session/16875)
 * [Slides](https://github.com/Pisush/Public-Speaking/blob/master/Slides/gopherconUS.pdf)
 
-### Rethinking Classical Concurrency Patterns
+#### Rethinking Classical Concurrency Patterns
 Bryan C. Mills, August 28
 
-* [Slides with speaker notes](https://drive.google.com/file/d/1nPdvhB0PutEJzdCq5ms6UI58dp50fcAN/view?usp=sharing)
\ No newline at end of file
+* [Slides with speaker notes](https://drive.google.com/file/d/1nPdvhB0PutEJzdCq5ms6UI58dp50fcAN/view?usp=sharing)
diff --git a/Go-Release-Cycle.md b/Go-Release-Cycle.md
index 06a0ba7..2876a30 100644
--- a/Go-Release-Cycle.md
+++ b/Go-Release-Cycle.md
@@ -1,3 +1,7 @@
+---
+title: Go-Release-Cycle
+---
+
 This wiki page is maintained by the Go team. Please
 [send comments to golang-dev](https://groups.google.com/group/golang-dev) or
 [file issues](https://go.dev/issue) instead of making changes directly.
@@ -172,3 +176,4 @@
 For 1.20, the development window was expanded with a late freeze and early thaw.
 These changes were formalized for the 1.21 release. We anticipate continuing to
 ship on time.
+
diff --git a/Go2.md b/Go2.md
index 93a03d2..f5ddf24 100644
--- a/Go2.md
+++ b/Go2.md
@@ -1,4 +1,6 @@
-# Go2 status
+---
+title: Go2 status
+---
 
 This page tracks the status of "Go 2".
 
@@ -46,4 +48,5 @@
 
 ## Roadmap
 
-TBD
\ No newline at end of file
+TBD
+
diff --git a/Go2ErrorHandlingFeedback.md b/Go2ErrorHandlingFeedback.md
index 53ed6d3..ea19a2d 100644
--- a/Go2ErrorHandlingFeedback.md
+++ b/Go2ErrorHandlingFeedback.md
@@ -1,4 +1,8 @@
-# Feedback re Go 2 Error Handling Draft Design
+---
+title: Go2ErrorHandlingFeedback
+---
+
+## Feedback re Go 2 Error Handling Draft Design
 
 This page is meant to collect and organize feedback and discussion 
 started with the Go 2 [error handling draft design](https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md).
@@ -11,7 +15,7 @@
 
 We've disabled comments on that issue until July 1 to give people time to experiment in their own code. We would very much like to see experience reports about using the general try approach in your own code, including trial conversions with [tryhard](https://github.com/griesemer/tryhard). Thanks!
 
-# Experience with the [“try proposal”](https://go.dev/design/32437-try-builtin)
+## Experience with the [“try proposal”](https://go.dev/design/32437-try-builtin)
 
 Add to this list:
 
@@ -19,7 +23,7 @@
 
 * * *
 
-# Requirements
+## Requirements
 
 Discussions of the requirements for a new error handling method.
 
@@ -36,7 +40,7 @@
 - Rob Pike (posted by @matjam) “[Simplicity is Complicated](https://www.youtube.com/watch?v=rFejpH_tAHM)”, December 2015
 
 
-# In support
+## In support
 
 This includes supporting the existing chaining/stacking of handlers without changes.
 
@@ -48,7 +52,7 @@
 
 - Alexandru-Paul Copil, "[In Support, with slight modifications and considerations](https://gist.github.com/cpl/54ed073e20f03fb6f95257037d311420)", September 2021
 
-## Example code
+### Example code
 
 Code changed to use the existing proposal.
 
@@ -58,7 +62,7 @@
 
  - Blake Mizerany, “[How best to account for partial writes when using check/handle?](https://gist.github.com/bmizerany/fcd0348bda96edce05a4fc7426e47751)”, August 2018
 
-# Against
+## Against
 
 Critiques without counter-proposals
 
@@ -79,7 +83,7 @@
 - Shannon Wynter "[Error Handling as it can already be done](https://gist.github.com/freman/0b372e46c72f6a27652538b9930ee851)", August 2018
 
 
-# Recurring themes
+## Recurring themes
 
 Concepts that appear repeatedly among the suggestions below.
 
@@ -121,7 +125,7 @@
   [17](https://github.com/golang/go/issues/27519)
 
 
-# Modest revisions
+## Modest revisions
  - Leidong Liu, "[a, b, !checkError := Sub(...)](https://gist.github.com/lldld/bf93ca94c24f172e95baf8c123427ace)", Nov 2019
 
  - Jin Feng, "[A simplified Go 2 error handling solution with no handler], (https://gist.github.com/jfeng45/416d4ecb42a4df50bebf86ce1c41c668)", July 2019
@@ -156,7 +160,7 @@
 
 - Brandon Heenan, "[Concise, with more obvious control flow](https://github.com/bmheenan/goerr/blob/main/README.md)", May 2021
 
-## Remove handler chaining
+### Remove handler chaining
 
 - Markus Heukelom, "[proposal: Improve error handing using `guard` and `must` keywords](https://github.com/golang/go/issues/31442)", April 2019
 
@@ -169,9 +173,9 @@
 - Yoshiki Shibukawa, "[Every handles should have return statement](https://gist.github.com/shibukawa/42a9dee400c2f8577b4a763bcb1a5e5f)", September 2018
 
 
-# Counter-proposals
+## Counter-proposals
 
-## Error handling with normal functions
+### Error handling with normal functions
 
 - Azamat Kalberdiev, “[Handling every error with intuitive code](https://gist.github.com/Azamat28/5b2c6f66fc4927a002a2d60044aa9231)”, March 2021
 
@@ -189,7 +193,7 @@
 
 - Martin Rode, "[The return of the return, Error Handling for Go 2](https://medium.com/@marode/the-return-of-the-return-278b8ae261ab)", November 2018
 
-## Labeled error handlers
+### Labeled error handlers
 
 - Joe Lapp, "[Local-only throw-catch error handling](https://github.com/golang/go/issues/48896)", October 2021
 
@@ -207,7 +211,7 @@
 
 - Marlon Che, "[How about separating check and handle?](https://gist.github.com/marlonche/4e5d4e5aec0555958ec1f181991325f6)", August 2018
 
-## Inlining
+### Inlining
 
 - Patrick Kelly, "[handling more than just errors in go](https://medium.com/@phlatphrog/handling-more-than-just-errors-in-go-f97c5aa2eac4)", August 2018
 
@@ -215,13 +219,13 @@
 
 - Gooid, “[Inline style error handle(simple unambiguous)](https://github.com/gooid/gonotes/blob/master/inline_style_error_handle.md)”, August 2018
 
-## Use defer
+### Use defer
 
  - Victoria Raymond, “[Force 'check' to return error instead of allowing customized logic](https://gist.github.com/VictoriaRaymond/d70663a6ec6cdc59816b8806dccf7826)”, August 2018
 
  - Night-walker and daokoder, "[Extend and repurpose defer instead of introducing new syntax](https://github.com/daokoder/dao/issues/191#issuecomment-44784919 )", June 2014
 
-## try/catch/finally syntax
+### try/catch/finally syntax
 
 - Mathieu Devos, "[Go2 Error Handling Proposal: Scoped Check/Handle](https://gist.github.com/mathieudevos/2bdae70596aca711e50d1f2ff6d7b7cb)", August 2018
 
@@ -235,7 +239,7 @@
 
 - Gokan EKINCI, "[try-with-resources](https://gist.github.com/eau-de-la-seine/9e2e74d6369aef4a76aa50976e34de6d)", December 2018
 
-## Other possibilities
+### Other possibilities
 
 - Alex Hornbake, "[refuse. conditional return keyword](https://gist.github.com/alexhornbake/6a4c1c6a0f2a063da6dda1bf6ec0f5f3)", June 2019
 
@@ -252,7 +256,7 @@
 - Andrew Phillips, “[Improving Go Error Handling](http://devmethodologies.blogspot.com/2017/10/improving-go-error-handling.html)”, October 2017
 
 
-# Uncategorized
+## Uncategorized
 
 Please help categorize the rest of the proposals here.
 
@@ -268,10 +272,10 @@
 
 - Konstantin, "[error handling for error-tree](https://github.com/Konstantin8105/Go2ErrorTree)", [Discyssion](https://github.com/golang/go/issues/32099) May 2019
 
-## Adding your feedback
+### Adding your feedback
 
 Please format all entries as below.
 
 - _Your Name_, “[_Title_](#URL)”, _month year_
 
-To make it easier to see new feedback, please add your new proposal to the top of the section it is placed in.
\ No newline at end of file
+To make it easier to see new feedback, please add your new proposal to the top of the section it is placed in.
diff --git a/Go2ErrorValuesFeedback.md b/Go2ErrorValuesFeedback.md
index 3ed69dc..8eef40a 100644
--- a/Go2ErrorValuesFeedback.md
+++ b/Go2ErrorValuesFeedback.md
@@ -1,4 +1,6 @@
-# Go 2 Error Values Feedback
+---
+title: Go 2 Error Values Feedback
+---
 
 This page is meant to collect and organize feedback about the Go 2 [error values draft designs](https://go.googlesource.com/proposal/+/master/design/go2draft-error-values-overview.md).
 
@@ -6,17 +8,17 @@
 
 As the amount of feedback grows, please feel free to organize this page by specific kind of feedback.
 
-### Further Background
+## Further Background
 
 - Ben Johnson, "[Failure is Your Domain](https://middlemost.com/failure-is-your-domain/)", June 2018
 
-### Draft Implementation
+## Draft Implementation
 
 - Go Team, “[x/exp/errors](https://pkg.go.dev/golang.org/x/exp/errors)”, November 2018
 
 - Torben Schinke, “[Implementation of the draft design](https://github.com/worldiety/errors)”, December 2018
 
-### Error Inspection
+## Error Inspection
 
  - Ilya Sinelnikov, "[`Is` and `As` differ in behavior which is unexpected](https://github.com/sidh/go2errorsinspection)", December 2018
  - Roger Peppe, "[Some thoughts about the draft Go error inspection design](https://gist.github.com/rogpeppe/a435b57473152e3429a5a149401edacf)", November 2018
@@ -36,7 +38,7 @@
  - _Your Name_, “[_Title_](#URL)”, _month year_
  - etc.
 
-### Error Printing
+## Error Printing
 
  - Calle Pettersson, [Multi-line errors and log collection tools](https://gist.github.com/carlpett/bc1714060235edc0ad3fd9ead82f4ce6)”, August 2018
  - jimmy frasche, "[Why limit these interfaces to errors?](https://gist.github.com/jimmyfrasche/e02fcbefee5cb14228768afec17abbee)" , August 2018
@@ -47,12 +49,12 @@
  - _Your Name_, “[_Title_](#URL)”, _month year_
  - etc.
 
-### Misc
+## Misc
 
 - TJ Holowaychuk, [Structured access for structured logging](https://gist.github.com/tj/638adb053f802e6c19686bd2fee443b7), April, 2019
 - Andrew Chambers, [My current error approach](https://gist.github.com/andrewchambers/5cadb2b8b45271440f1a051bb1ccc9c6), August, 2018
 - mikioh, [A walkthrough on Error Values for issue 18183](https://gist.github.com/mikioh/93f575120ded671bad18491ecf41743d), October, 2018
 
-### Against Any Change At All
+## Against Any Change At All
 
-- Rob Pike - [Simplicity is Complicated](https://www.youtube.com/watch?v=rFejpH_tAHM), December 2015
\ No newline at end of file
+- Rob Pike - [Simplicity is Complicated](https://www.youtube.com/watch?v=rFejpH_tAHM), December 2015
diff --git a/Go2GenericsFeedback.md b/Go2GenericsFeedback.md
index b59e40d..3521c83 100644
--- a/Go2GenericsFeedback.md
+++ b/Go2GenericsFeedback.md
@@ -1,4 +1,6 @@
-# Go 2 Generics Feedback
+---
+title: Go 2 Generics Feedback
+---
 
 This page is meant to collect and organize feedback about the Go 2 [contracts (generics) draft design](https://go.googlesource.com/proposal/+/master/design/go2draft-generics-overview.md).
 
@@ -363,4 +365,4 @@
 
 - leaxoy: First I'm sorry for editing the page footer, however I can't remove footer content. This is my opinion: lots of `(` & `)` made go looks so messy, `<` & `>` like other language is better, and is more kindly for those come from other languages.
 
-- Hajime Hoshi: I completely agree on aprice2704's syntax concern. Wouldn't `[[` / `]]` work, for example?
\ No newline at end of file
+- Hajime Hoshi: I completely agree on aprice2704's syntax concern. Wouldn't `[[` / `]]` work, for example?
diff --git a/GoArm.md b/GoArm.md
index 4c4c2b7..b9c89fd 100644
--- a/GoArm.md
+++ b/GoArm.md
@@ -1,8 +1,12 @@
-# Introduction
+---
+title: Go on ARM
+---
+
+## Introduction
 
 Go is fully supported on Linux and Darwin. Any Go program that you can compile for x86/x86\_64 should work on Arm. Besides Linux and Darwin, Go is also experimentally supported on FreeBSD, OpenBSD and NetBSD.
 
-# Supported architectures
+## Supported architectures
 
 Go supports the following ARM architectural families.
 
@@ -16,29 +20,29 @@
 
 Starting from Go 1.1, the appropriate GOARM value will be chosen if you compile the program from source on the target machine. In cross compilation situations, it is recommended that you always set an appropriate GOARM value along with GOARCH.
 
-# Supported operating systems
+## Supported operating systems
 
 * ARM on Linux. You must run an [EABI](http://wiki.debian.org/ArmEabiPort) kernel. These are generally known as `armel` for softfloat (compatible with ARMv5) or `armhf` for hardware floating point (ARMv6 and above).
 * ARM on Darwin: ARMv7 is required.
 * ARM on FreeBSD, OpenBSD, and NetBSD: ARMv6K or above is required.
 
-# Recommended Go version
+## Recommended Go version
 
 Go has a mature support for ARM systems; so, just like for other architectures, use the latest stable version (eg: Go 1.18 at the time of writing).
 
-# Tips and tricks
+## Tips and tricks
 
-## /tmp and tmpfs
+### /tmp and tmpfs
 The ` go ` build tool uses ` /tmp ` when compiling and testing, this can cause heavy wear and tear if ` /tmp ` lives on your SD card. To minimise this effect, either ` export TMPDIR ` to somewhere that lives on another filesystem. Alternatively if you have lots of physical memory you can mount a swap backed tmpfs filesystem on /tmp by adding this line to ` /etc/fstab `
 
 ```
 tmpfs /tmp tmpfs nodev,nosuid,mode=1777 0 0
 ```
 
-## Swap
+### Swap
 Building Go from source requires at least 256mb of RAM. Running the tests requires at least 256mb of memory and at least 512mb of swap space.
 
-## Test failures due to resource starvation
+### Test failures due to resource starvation
 The runtime tests create many native operating system threads which at the default of 8mb per thread can exhaust an ARM system with 32bit user mode address space (especially on multicore ARM systems such as the Raspberry PI 2). To prevent the runtime test from failing you may need lower the thread stack limit:
 
 ```sh
@@ -48,7 +52,7 @@
 ```
 See [Dave Cheney's blog post about building Go on Raspberry Pi](http://dave.cheney.net/2015/09/04/building-go-1-5-on-the-raspberry-pi) for details.
 
-## Build failures due to lack of memory
+### Build failures due to lack of memory
 The Go tool will try to keep all your cpu cores busy when installing packages (during make.bash),
 this is normally preferable on PCs where memory is abundant.
 However, some powerful multicore ARM machines don't have enough memory to support parallel
@@ -60,24 +64,24 @@
 Note: the 1 here is a bitmask for cpu affinity and it's not the number of cpu cores you're
 willing to use, please refer to ` taskset(1) ` manual for details.
 
-# Known issues
+## Known issues
 
-## Lack of floating point hardware on ARMv5
+### Lack of floating point hardware on ARMv5
 The major issue with ARMv5 is the lack of floating point support in common ARMv5 hardware<sup>†</sup>. When compiled with the GOARM=5 environment variable, the 5l linker will insert a call to ` _sfloat ` before any block of floating point instructions to branch into the floating point emulator. This means that binaries produced with a Go installation that was compiled with soft float support will work on all supported architectures, but builds compiled without soft floating point support will not work on ARMv5.
 
 <sup>†</sup> This isn't strictly true, there exist ARMv5 implementations which have VFP1 floating point. However the compiler doesn't support VFP1 yet.
 
-## html/template and test/nilptr.go test fail on HTC Android
+### html/template and test/nilptr.go test fail on HTC Android
 html/template test and test/nilptr.go is known to fail on HTC's Android kernels ([ref](http://www.mail-archive.com/android-developers@googlegroups.com/msg153389.html)), because the kernel will kill  the application after 10 segfaults.
 
-## Potential kernel bug in 2.6.32-5-kirkwood on QNAP 219P
+### Potential kernel bug in 2.6.32-5-kirkwood on QNAP 219P
 See [Issue 5466](https://github.com/golang/go/issues/5466) for details. Updating to 3.2.0-4-kirkwood solved the issue.
 
-# Success stories
+## Success stories
 
 ARM hardware comes in a myriad of shapes and sizes. If you've had a success story building and running Go on your Arm system, please detail your results here.
 
-## Netgear Stora
+### Netgear Stora
 
 Architecture: ARMv5
 
@@ -89,7 +93,7 @@
 
 > _-- dave cheney_
 
-## Qnap TS-119P II
+### Qnap TS-119P II
 
 Architecture: ARMv5
 
@@ -101,7 +105,7 @@
 
 > _-- dave cheney_
 
-## Pandaboard
+### Pandaboard
 
 Architecture: ARMv7
 
@@ -113,7 +117,7 @@
 
 > _-- dave cheney_
 
-## BeagleBone
+### BeagleBone
 
 Architecture: ARMv7 single core, Cortex-A8, 256MB RAM, 720 MHz
 
@@ -127,14 +131,14 @@
 
 > _-- hans stimer_
 
-### Zyxel NSA 310
+#### Zyxel NSA 310
 
 Architecture: ARM5
 Platform: Debian Wheeze
 
 Successfuly built default branch, going to write fan control daemon for this device in golang.
 
-### Raspberry Pi
+#### Raspberry Pi
 
 * [Building Go 1.5 on the Raspberry Pi - Dave Cheney](http://dave.cheney.net/2015/09/04/building-go-1-5-on-the-raspberry-pi)
 
@@ -298,7 +302,7 @@
 _-- anthony starks_
 
 
-## Raspberry Pi 2
+### Raspberry Pi 2
 
 * [Building Go 1.5 on the Raspberry Pi - Dave Cheney](http://dave.cheney.net/2015/09/04/building-go-1-5-on-the-raspberry-pi)
 
@@ -604,7 +608,7 @@
 ok      runtime 562.289s
 ```
 
-## Raspberry Pi Zero
+### Raspberry Pi Zero
 
 Architecture: 1 GHz ARM1176JZF-S, running at 700Mhz; 512MB RAM
 
@@ -912,7 +916,7 @@
 ok    runtime 566.969s
 ```
 
-## ODROID-X
+### ODROID-X
 
 Architecture: ARMv7 quad-core Cortex-A9 (Samsung Exynos 4412 1.4GHz), 1GB RAM, Mali graphics (untested).
 
@@ -922,7 +926,7 @@
 
 _-- Rémy Oudompheng_
 
-## BananaPi
+### BananaPi
 
 [BananaPi](http://banana-pi.org) has a few enhanced hardware components compare with Raspberry Pi.
 
@@ -938,8 +942,8 @@
 
 ```
 root@bpi01:/data/go13/src# cat ./buildgo.bash
-#!/bin/bash
-# use 1 CPU to avoid out of memory compilation issue.
+##!/bin/bash
+## use 1 CPU to avoid out of memory compilation issue.
 time taskset 2 ./make.bash
 
 root@bpi01:/data/go13/src# ./buildgo.bash
@@ -957,7 +961,7 @@
 
 _--T.J. Yang_
 
-## AppliedMicro X-Gene (ARMv8)
+### AppliedMicro X-Gene (ARMv8)
 
 Architecture: ARMv8 (64-bit) 8-core, 2.4GHz, 16GB RAM
 
@@ -965,7 +969,7 @@
 
 You will need to cross-compile a toolchain using bootstrap.bash. After you copy it to the arm64 system and set `GOROOT_BOOTSTRAP`, you can build go natively.
 
-## 96Boards HiKey (ARMv8)
+### 96Boards HiKey (ARMv8)
 
 Architecture: ARMv8 (64-bit) 8-core, 1.2GHz, 1GB RAM
 
@@ -979,7 +983,7 @@
 
 _--Andrew Cencini_ (andrew@vapor.io)
 
-## Scaleway C1 Server
+### Scaleway C1 Server
 
 Architecture: armv7l
 
@@ -993,7 +997,7 @@
 
 _--Laurent Debacker
 
-## Jetson Nano
+### Jetson Nano
 
 Jetson Nano™ from NVIDIA® is a high performance low-power single board computer built for edge Artificial Intelligence computing. It has Quad-core ARM57 based CPU clocked at 1.43 Ghz, 128-core Maxwell based GPU and 4GB of LPDDR4 memory with 25.6 GB/s bandwidth.
 
@@ -1563,7 +1567,7 @@
 
 --Abishek Muthian ([@heavyinfo](https://twitter.com/heavyinfo))
 
-## Apple silicon
+### Apple silicon
 
 Cross-compiling Go applications
 
@@ -1593,3 +1597,4 @@
     $ GOOS=darwin GOARCH=arm64 go build <app>
 
  Copy the generated arm64 executable to target machine (macOS/arm64) and run
+
diff --git a/GoForCPPProgrammers.md b/GoForCPPProgrammers.md
index 3c41c20..95a37d2 100644
--- a/GoForCPPProgrammers.md
+++ b/GoForCPPProgrammers.md
@@ -1,3 +1,7 @@
+---
+title: GoForCPPProgrammers
+---
+
 Go is a systems programming language intended to be a general-purpose systems language, like C++.  These are some notes on Go for experienced C++ programmers. This document discusses the differences between Go and C++, and says little to nothing about the similarities.
 
 An important point to keep in mind is that there are some fundamental differences in the thought processes required to be proficient in the two respective languages.  Most formidably, C++'s object model is based on classes and class hierarchies while Go's object model is based on interfaces (and is essentially flat).  Consequently, C++ design patterns rarely translate verbatim to Go.  To program effectively in Go, one has to consider the _problem_ being solved, not the mechanisms one might use in C++ to solve the problem.
@@ -680,4 +684,4 @@
 	currentValue := getFromManagedChannel(ch)
 	// ... some more code...
 }
-```
\ No newline at end of file
+```
diff --git a/GoGenerateTools.md b/GoGenerateTools.md
index a9bb66c..975450c 100644
--- a/GoGenerateTools.md
+++ b/GoGenerateTools.md
@@ -1,3 +1,7 @@
+---
+title: GoGenerateTools
+---
+
 [`go generate`](https://go.dev/blog/generate) is only useful if you have tools to use it with! Here is an incomplete list of useful tools that generate code.
 
 * [goyacc](https://pkg.go.dev/golang.org/x/tools/cmd/goyacc) – Yacc for Go.
@@ -34,3 +38,4 @@
 * [pigeon](https://github.com/mna/pigeon) - a PEG parser generator for Go
 
 
+
diff --git a/GoGetProxyConfig.md b/GoGetProxyConfig.md
index 417f4f1..19fbb6b 100644
--- a/GoGetProxyConfig.md
+++ b/GoGetProxyConfig.md
@@ -1,3 +1,7 @@
+---
+title: GoGetProxyConfig
+---
+
 Setting proxies for source code used by ` go get ` (listed in GoGetTools)
 
 ## Windows command line
@@ -23,4 +27,4 @@
 [Global] 
 http-proxy-host=proxy.example.com
 http-proxy-port=xxxx 
-```
\ No newline at end of file
+```
diff --git a/GoGetTools.md b/GoGetTools.md
index 73e10b0..327c892 100644
--- a/GoGetTools.md
+++ b/GoGetTools.md
@@ -1,4 +1,8 @@
-# Installing Version Control Tools for ` go get `
+---
+title: GoGetTools
+---
+
+## Installing Version Control Tools for ` go get `
 
 The ` go get ` fetching of source code is done by using one of the following tools expected to be found on your system:
 
@@ -9,4 +13,4 @@
 
 For example, **git** is used for Github, **hg** is used for Bitbucket, etc.
 
-Refer [GoGetProxyConfig](GoGetProxyConfig) for setting proxies for these tools.
\ No newline at end of file
+Refer [GoGetProxyConfig](GoGetProxyConfig) for setting proxies for these tools.
diff --git a/GoMips.md b/GoMips.md
index 7e28b25..8891e0e 100644
--- a/GoMips.md
+++ b/GoMips.md
@@ -1,8 +1,12 @@
-# Introduction
+---
+title: Go on MIPS
+---
 
-Go programs can be cross-compiled e.g., on x86/x86\_64 build systems to run on MIPS target machines. 
+## Introduction
 
-# Supported architectures
+Go programs can be cross-compiled e.g., on x86/x86\_64 build systems to run on MIPS target machines.
+
+## Supported architectures
 
 Go supports the following MIPS architectural families. (Are there more?)
 
@@ -11,17 +15,17 @@
 | Big endian (e.g., ar71xx) | supported  | GOMIPS=softfloat| GOARCH=mips      |
 | Little endian            | supported  | n/a             | GOARCH=mipsle    |
 
-# Supported operating systems
+## Supported operating systems
 
 * MIPS on Linux. Tested with an ar71xx based OpenWrt device.
 
-# Recommended Go version
+## Recommended Go version
 
 The tested version for running Go on MIPS systems is Go 1.13.
 
-# Tips and tricks
+## Tips and tricks
 
-## Building for ar71xx OpenWrt
+### Building for ar71xx OpenWrt
 
 This builds a Go program, strips unneeded strings and symbols to minimize its size, and compresses it to further minimize its size:
 
@@ -30,11 +34,11 @@
 upx -9 server
 ```
 
-# Success stories
+## Success stories
 
 MIPS hardware comes in a myriad of shapes and sizes. If you've had a success story building and running Go on your Arm system, please detail your results here.
 
-## D-Link DIR-505 Mobile Companion
+### D-Link DIR-505 Mobile Companion
 
 Architecture: ar71xx
 
@@ -44,19 +48,17 @@
 
 Further information about the device can be found at https://openwrt.org/toh/d-link/dir-505.
 
-## Teltonika 
+### Teltonika RUT955
 
-### RUT955
-
-Architecture: ar9344  
+Architecture: ar9344
 
 Operating System: RutOS (based on OpenWrt)
 
-The Teltonika RUT955 has a Atheros Wasp MIPS 74Kc CPU running at 550 MHz with 16 MB flash 128 MB RAM. Inbuilt flash will be insufficient for most applications but a Micro SD or USB stick can be added (running application directly from SD was unreliable but copying to /tmpfs and running from there works OK). The inbuilt IO, GPS etc can be accessed via Modbus TCP and the RS232/RS485 ports worked without issue. Tested with Go 1.14.6,  1.15.3 & 1.21.1 (GOARCH=mips, GOMIPS=softfloat). 
+The Teltonika RUT955 has a Atheros Wasp MIPS 74Kc CPU running at 550 MHz with 16 MB flash 128 MB RAM. Inbuilt flash will be insufficient for most applications but a Micro SD or USB stick can be added (running application directly from SD was unreliable but copying to /tmpfs and running from there works OK). The inbuilt IO, GPS etc can be accessed via Modbus TCP and the RS232/RS485 ports worked without issue. Tested with Go 1.14.6,  1.15.3 & 1.21.1 (GOARCH=mips, GOMIPS=softfloat).
 
 Further information about the device can be found at https://teltonika-networks.com/product/rut955/.
 
-### RUT956
+### Teltonika RUT956
 
 Architecture: MediaTek MT7628AN ver:1 eco:2
 
@@ -66,7 +68,7 @@
 
 Further information about the device can be found at https://teltonika-networks.com/product/rut956/.
 
-## TP-Link Archer A6 WiFi Router
+### TP-Link Archer A6 WiFi Router
 
 Architecture: ath79 (same hardware as ar71xx, but with native kernel support)
 
@@ -76,7 +78,7 @@
 
 Further information about the device can be found at https://openwrt.org/toh/hwdata/tp-link/tp-link_archer_a6_us_tw.
 
-## Belkin F7D7302 WiFi Router
+### Belkin F7D7302 WiFi Router
 
 Architecture: mipsel_74kc
 
@@ -86,11 +88,11 @@
 
 Further information about the device can be found at https://openwrt.org/toh/belkin/f7d3302.
 
-## AVM FRITZ!Box 7362 SL
+### AVM FRITZ!Box 7362 SL
 
 System type: xRX200 rev 1.2 \
 CPU model: MIPS 34Kc V5.6
 
 Operating System: OpenWrt 21
 
-Further information about the device can be found at https://openwrt.org/toh/avm/avm_7362_sl.
\ No newline at end of file
+Further information about the device can be found at https://openwrt.org/toh/avm/avm_7362_sl.
diff --git a/GoStrings.md b/GoStrings.md
index 8974ed9..a3d61c1 100644
--- a/GoStrings.md
+++ b/GoStrings.md
@@ -1,3 +1,7 @@
+---
+title: GoStrings
+---
+
 Strings are **not** required to be UTF-8. Go source code **is** required
 to be UTF-8. There is a complex path between the two.
 
@@ -56,4 +60,4 @@
 ```
 <erroneous byte FF, will appear as U+FFFD if you range over the string value>
 語 U+8a9e
-```
\ No newline at end of file
+```
diff --git a/GoTalks.md b/GoTalks.md
index 6611028..f60a56b 100644
--- a/GoTalks.md
+++ b/GoTalks.md
@@ -1,20 +1,22 @@
-# Go talks
+---
+title: Go talks
+---
 
 Check out http://talks.golang.org for presentations for some of the talks. For a comprehensive, curated and searchable index, try [GopherVids](http://gophervids.appspot.com/) from Damian Gryski.
 
-# Official
+## Official
 
-## Introductory Talks
+### Introductory Talks
 
 An introduction to Go.
 
-### Russ Cox's Tour of Go
+#### Russ Cox's Tour of Go
 
 [[video and discussion](http://research.swtch.com/gotour)]
 
 Three things that make Go fast, fun, and productive:interfaces, reflection, and concurrency. Builds a toy web crawler to demonstrate these.
 
-### Go: a simple programming environment
+#### Go: a simple programming environment
 
 [[video](http://vimeo.com/53221558)]
 [[another video](http://vimeo.com/69237265)]
@@ -24,14 +26,14 @@
 
 This talk gives an introduction to Go, followed by a tour of some real programs that demonstrate the power, scope, and simplicity of the Go programming environment.
 
-### Get Started with Go
+#### Get Started with Go
 
 [[video](http://www.youtube.com/watch?v=2KmHtgtEZ1s)]
 
 Get a feel for the language and its standard libraries and tools in this session, where we go through installing Go and writing some simple but useful
 programs.
 
-### Go Programming
+#### Go Programming
 
 [[video](http://www.youtube.com/watch?v=jgVhBThJdXc)] 
 [[code](http://talks.golang.org/2010/io/)]
@@ -41,7 +43,7 @@
 examples demonstrating features particular to Go.  These include concurrency,
 embedded types, methods on any type, and program construction using interfaces.
 
-### The Go Tech Talk
+#### The Go Tech Talk
 
 [[video](http://www.youtube.com/watch?v=rKnDgT73v8s)]
 [[slides](http://talks.golang.org/2009/go_talk-20091030.pdf)]
@@ -50,9 +52,9 @@
 The language's first public introduction. The language has changed since it was made,
 but it's still a good introduction.
 
-## Development in Go
+### Development in Go
 
-### Writing Web Apps in Go
+#### Writing Web Apps in Go
 
 [[video](http://www.youtube.com/watch?v=-i0hat7pdpk)] 
 [[slides](http://talks.golang.org/2011/Writing_Web_Apps_in_Go.pdf)]
@@ -61,7 +63,7 @@
 It walks through the construction and deployment of a simple web application
 and unveils the [Go runtime for App Engine](https://go.dev/blog/2011/05/go-and-google-app-engine.html).
 
-### Real World Go
+#### Real World Go
 
 [[video](http://www.youtube.com/watch?v=7QDVRowyUQA)] 
 [[slides](http://talks.golang.org/2011/Real_World_Go.pdf)]
@@ -70,7 +72,7 @@
 It gives a broad overview of Go's type system and concurrency model
 and provides four examples of Go programs that solve real problems.
 
-### Building Integrated Apps on Google's Cloud Platform
+#### Building Integrated Apps on Google's Cloud Platform
 
 [[video](http://www.youtube.com/watch?v=Mo1YKpIF1PQ)]
 
@@ -78,14 +80,14 @@
 It discusses the development of a web application that runs on Google
 App Engine and renders raytraced that it stores on Google Cloud Storage.
 
-### High Performance Apps with Go on App Engine
+#### High Performance Apps with Go on App Engine
 
 Google I/O, May 2013
 
 [[video](http://www.youtube.com/watch?v=fc25ihfXhbg)] 
 [[slides](http://talks.golang.org/2013/highperf.slide)]
 
-### Practical Go Programming
+#### Practical Go Programming
 
 [[video](http://www.youtube.com/watch?v=2-pPAvqyluI)] 
 [[slides](http://wh3rd.net/practical-go)] 
@@ -95,7 +97,7 @@
 It looks at design, storage, concurrency, and scaling issues in detail, using
 the simple example of an URL shortening service.
 
-### Lexical Scanning in Go
+#### Lexical Scanning in Go
 
 [[video](http://www.youtube.com/watch?v=HxaD_trXwRE)]
 
@@ -104,7 +106,7 @@
 at initialization is obsolete: Go 1 allows goroutines in init functions so the extra complexity
 is unnecessary.)
 
-### Go in Production
+#### Go in Production
 
 Google I/O, June 2012
 
@@ -112,36 +114,36 @@
 
 Since Go's release in 2009 many companies (besides Google, of course) have used the language to build cool stuff. In this session programmers from several companies will share their first-hand experience using Go in production environments.
 
-### Go: code that grows with grace
+#### Go: code that grows with grace
 
 [[video](http://vimeo.com/53221560)]
 [[slides](http://talks.golang.org/2012/chat.slide)]
 
 One of the Go Programming Language’s key design goals is code adaptability; that it should be easy to take a simple design and build upon it in a clean and natural way. In this talk I describe a simple “chat roulette” server that matches pairs of incoming TCP connections, and then use Go’s concurrency mechanisms, interfaces, and standard library to extend it with a web interface and other features. Although the function of the program changes dramatically, the inherent flexibility of Go allows the original design to remain intact as it grows.
 
-### Implementing a bignum calculator
+#### Implementing a bignum calculator
 
 [[video](https://www.youtube.com/watch?v=PXoG0WX0r_E)]
 [[slides](http://go-talks.appspot.com/github.com/robpike/ivy/talks/ivy.slide)]
 
 Rob Pike describes his interpreter for an APL-like calculator language.
 
-### Go in Go
+#### Go in Go
 
 [[video](https://www.youtube.com/watch?v=cF1zJYkBW4A)]
 [[slides](https://talks.golang.org/2015/gogo.slide)]
 
 Rob Pike speaks on moving the Go toolchain from C to Go
 
-## Concurrency in Go
+### Concurrency in Go
 
-### Go concurrency patterns
+#### Go concurrency patterns
 
 Google I/O, June 2012
 
 [[video](http://www.youtube.com/watch?v=f6kdp27TYZs)]
 
-### Advanced Concurrency Patterns
+#### Advanced Concurrency Patterns
 
 [[video](https://www.youtube.com/watch?v=QDDwwePbDtw)]
 [[slides](http://talks.golang.org/2013/advconc.slide)]
@@ -150,9 +152,9 @@
 
 Concurrency is the key to designing high performance network services. This talk expands on last year's popular Go Concurrency Patterns talk to dive deeper into Go's concurrency primitives, and see how tricky concurrency problems can be solved gracefully with simple Go code.
 
-## Design of Go
+### Design of Go
 
-### The Expressiveness Of Go
+#### The Expressiveness Of Go
 
 [[slides](http://talks.golang.org/2010/ExpressivenessOfGo-2010.pdf)]
 
@@ -160,7 +162,7 @@
 language.  The talk was presented by Rob Pike at JAOO 2010.
 The recording of the event was lost due to a hardware error.
 
-### Another Go at Language Design
+#### Another Go at Language Design
 
 [[video](http://sydney.edu.au/engineering/it/videos/seminar_pike) from Sydney University]
 [[slides](http://assets.en.oreilly.com/1/event/45/Another%20Go%20at%20Language%20Design%20Presentation.pdf)]
@@ -169,7 +171,7 @@
 an audience new to the language.  The talk was presented at OSCON 2010.
 This talk was also delivered at Sydney University in September 2010.
 
-### Go Emerging Languages Conference Talk
+#### Go Emerging Languages Conference Talk
 
 [[video](http://confreaks.com/videos/115-elcamp2010-go)]
 [[slides](http://assets.en.oreilly.com/1/event/45/Go%20Presentation.pdf)] 
@@ -181,40 +183,40 @@
 > from Hoare’s 1978 paper to Go provides insight into how and why Go works as it
 > does.
 
-## The State of Go
+### The State of Go
 
-### June 2014
+#### June 2014
 
 [[video](https://www.youtube.com/watch?v=0KF44QtoByk)]
 [[slides](https://talks.golang.org/2014/state-of-go.slide)]
 
-### February 2015
+#### February 2015
 
 [[video](https://www.youtube.com/watch?v=Kd8EqTvW5EQ)]
 [[slides](https://talks.golang.org/2015/state-of-go.slide)]
 
-### May 2015
+#### May 2015
 
 [[video](https://www.youtube.com/watch?v=S9Bu6fZnLGM)]
 [[slides](https://talks.golang.org/2015/state-of-go-may.slide)]
 
 
-## Miscellaneous
+### Miscellaneous
 
-### The Go frontend for GCC
+#### The Go frontend for GCC
 
 [[paper](http://talks.golang.org/2010/gofrontend-gcc-summit-2010.pdf)]
 
 A description of the Go language frontend for gcc.
 Ian Lance Taylor's paper delivered at the GCC Summit 2010.
 
-### The Go Promo Video
+#### The Go Promo Video
 
 [[video](http://www.youtube.com/watch?v=wwoWei-GAPo)]
 
 A short promotional video featuring Russ Cox demonstrating Go's fast compiler.
 
-### Meet the Go team
+#### Meet the Go team
 
 Google I/O, June 2012
 
@@ -222,7 +224,7 @@
 
 A panel discussion with David Symonds, Robert Griesemer, Rob Pike, Ken Thompson, Andrew Gerrand, and Brad Fitzpatrick.
 
-### Fireside Chat with Go team
+#### Fireside Chat with Go team
 
 Google I/0, May 2013
 
@@ -230,16 +232,16 @@
 
 A fireside chat with Andrew Gerrand, Brad Fitzpatrick, David Symonds, Ian Lance Taylor, Nigel Tao, Rob Pike, Robert Griesemer, Sameer Ajmani.
 
-### The State of the Gopher
+#### The State of the Gopher
 
 [[video](https://www.youtube.com/watch?v=4KFTacxqkcQ)]
 [[slides](https://talks.golang.org/2014/state-of-the-gopher.slide)]
 
-# Unofficial
+## Unofficial
 
 Talks by members of the community.
 
-### Let's Go, or introduction to Go
+#### Let's Go, or introduction to Go
 
 [[video (starting at 14:35)](http://live.digicast.ru/view/1582)] 
 [[slides](http://talks.godoc.org/github.com/AlekSi/LetsGo/lets-go.slide)] 
@@ -247,13 +249,13 @@
 
 This talk gives an introduction to Go in Russian.
 
-### What are Go modules and how do I use them?
+#### What are Go modules and how do I use them?
 _[Paul Jolly](https://twitter.com/_myitcv) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/6MbIzJmLz6Q)]
 [[slides](https://talks.godoc.org/github.com/myitcv/talks/2018-08-15-glug-modules/main.slide#1)]
 
-### What else is in Go 1.11
+#### What else is in Go 1.11
 _[Daniel Martì](https://twitter.com/mvdan_) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/mQYjjVCGVJ8)]
@@ -261,7 +263,7 @@
 
 Sneak peak at the Go 1.11 release
 
-### Get Going with WebAssembly
+#### Get Going with WebAssembly
 _[Johan Brandhorst](https://twitter.com/JohanBrandhorst) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/iTrx0BbUXI4)]
@@ -271,13 +273,13 @@
 
 In this talk, Johan introduces you to the WebAssembly port in Go 1.11 and how it can help when dealing with JavaScript madness :)
 
-### Go and Mongo - and how it's changing
+#### Go and Mongo - and how it's changing
 _[DJ Walker-Morgan](https://twitter.com/codepope) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/W22tZ5p3aDk)]
 [[slides](https://github.com/codepope/talks/blob/master/GoAndMongo.pdf)]
 
-### Building a simple concurrency teaching language with Go
+#### Building a simple concurrency teaching language with Go
 _[Nicholas Ng](https://twitter.com/nicholascwng) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/7cEp98y6WCs)]
@@ -285,28 +287,28 @@
 
 In this talk Nicholas presents the design and implementation of a simple language designed for teaching concurrency theory (process calculi), implemented in Go. He covers some of Go's static analysis tools used in the implementation and show how you can use them too!
 
-### Introducing Remoto
+#### Introducing Remoto
 _[Mat Ryer](https://twitter.com/matryer) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/dhbq7R7h-C0)]
 
 Mat shares the first glimpse of a new project that aims to make building RPC services easy. gRPC isn’t good for clients (especially web), and RESTful designs sometimes lead to confusing APIs. Remoto lets you define your service with a Go interface, and generate everything you need to build and consume the service.
 
-### Go Swagger
+#### Go Swagger
 _[Simone Trubian](https://twitter.com/simone_trubian) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/PUejMR82RgU)]
 
 Simone gives an overview of the Go Swagger command line tool and briefly explain how he used it to improve productivity in designing REST API's.
 
-### ORMs in Go
+#### ORMs in Go
 _Renato Serra at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/0XW6wI2FnPA)]
 
 Renato explains where ORMs can help, what the options were and what it's been like to use one.
 
-### Unused parameters in Go code
+#### Unused parameters in Go code
 _[Daniel Martì](https://twitter.com/mvdan_) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/VW5jI6V_Y2c)]
@@ -314,7 +316,7 @@
 
 Daniel talks about how to use SSA and callgraphs to write powerful code analysis tools. In particular, he demonstrates how to detect unused parameters in functions.
 
-### Lies, Damn Lies, and Benchmarks
+#### Lies, Damn Lies, and Benchmarks
 _Amnon at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/YDPKUJndhw4)]
@@ -322,7 +324,7 @@
 
 Amnon discusses why microbenchmarks can be misleading for optimising real world systems, why data layout is often more significant than code structure, and how Go can help us in the quest for performance.
 
-### A debugger from scratch
+#### A debugger from scratch
 _[Liz Rice](https://twitter.com/LizRice) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/tZ5PUKbGjO4)]
@@ -331,7 +333,7 @@
 
 Liz explains how a debugger works by building one in a few lines of Go. This includes mapping between Go source code and the machine code instructions it compiles to, and using the ptrace system call to set break points and examine and modify the running process.
 
-### Fast Fractal Fun With SDL
+#### Fast Fractal Fun With SDL
 _[Sue Spence](https://twitter.com/virtualsue) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/eTjL3grAYAM)]
@@ -340,26 +342,26 @@
 
 Go programs which create images such as the Mandelbrot & Julia sets often output an image file. I will show how to use Go bindings for the Simple Directmedia Layer library to output them on a display device instead.
 
-### Concurrency: a Journey from Ruby to Go
+#### Concurrency: a Journey from Ruby to Go
 _[Mathilda Thompson](https://twitter.com/mathildathompso) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/mK3r5PDED-0)]
 
-### Go in a Polyglot Environment
+#### Go in a Polyglot Environment
 _[Kevin McKelvin](https://twitter.com/kmckelvin) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/kWAxBhsEayk)]
 
 In this talk Kevin goes through his experience of adopting Go, moving to a polyglot environment, successes and challenges, and how Go fits into his company's overall architecture and strategy.
 
-### Delivering Go Services
+#### Delivering Go Services
 _[Zak Knill](https://twitter.com/zakknill) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/pRdfJTuGxEw)]
 
 Delivering Go Services: After introducing Go to your company, and deploying your first go service. What are the next steps? This talk focuses on some of the things that come next, touching on the fabled "New service to prod in X (10, 20, 30) mins", as well as some gotchas along the way.
 
-### Go-ing Lambda
+#### Go-ing Lambda
 
 _[David Blooman](https://twitter.com/dblooman) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
@@ -367,7 +369,7 @@
 
 Go-ing Lambda - A year in production: How we(FundApps) used Go in lambda functions to build a service for importing/scraping/parsing data for financial services to build API's on top of. Tips and tricks of lambda functions in Go, limitations, performance and using the Apex framework.
 
-### The RED method
+#### The RED method
 
 _[Tom Wilkie](https://twitter.com/tom_wilkie) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
@@ -375,17 +377,17 @@
 
 We'll also have a section dedicated to those of you who are hiring or looking to get hired (if we'll miss it like last time, please don't be afraid to remind us).
 
-### Abusing Go’s net package for fun and profit
+#### Abusing Go’s net package for fun and profit
 _[Michał Witkowski](https://twitter.com/MWitkow) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/JDjHFmke0ZI)]
 
 This talks into the details of how Go’s composition-based philosophy, as applied to the net package, can be creatively leveraged to beautiful and useful hacks that significantly augment the functionality of the stack. We’ll explore the net.Conn, and how one can (ab)use them in creative ways. We’ll take a peek into net/http, and explore how the http.Handler and http.Roundtripper interfaces can be creatively appropriated to build useful middleware. We’ll then dig even deeper into the net/http internals and how they related tls.Conn and x/net/http2, to understand how they work, and armed with that knowledge we’ll demonstrate some of our most beautiful hacks.
 
-### 2018's stringer
+#### 2018's stringer
 _[Daniel Martì](https://twitter.com/mvdan_) at [**LondonGophers**](https://twitter.com/LondonGophers)_
 
 [[video](https://youtu.be/IyVEW19IkXE)]
 [[slides](https://talks.godoc.org/github.com/mvdan/talks/2018/stringer.slide)]
 
-2018's stringer - a demonstration of new features you likely haven't heard of.
\ No newline at end of file
+2018's stringer - a demonstration of new features you likely haven't heard of.
diff --git a/GoUserGroups.md b/GoUserGroups.md
index b06ec71..d9cb18b 100644
--- a/GoUserGroups.md
+++ b/GoUserGroups.md
@@ -1,4 +1,8 @@
-# Africa
+---
+title: GoUserGroups
+---
+
+## Africa
   * [Golang Buea](https://meetup.com/Docker-Buea) - Buea, Cameroon
   * [Go Egypt](https://web.facebook.com/groups/563213043835298/) - Cairo, Egypt.
   * [Go Cape Town](http://www.meetup.com/gocapetown/) - Cape Town.
@@ -13,7 +17,7 @@
   * [Nairobi Gophers](https://www.meetup.com/nairobi-gophers/) - Nairobi, Kenya
 
 
-# Asia
+## Asia
 * [Golang ِArabic Community](https://www.facebook.com/groups/111860102810970/)
 * [Golang Azerbaijan](https://www.facebook.com/groups/852343094928521/) - Baku, Azerbaijan 🇦🇿
 * [Golang Iraq](https://www.facebook.com/groups/go.iraq/) - Iraq
@@ -58,7 +62,7 @@
   * [Golang Malaysia](https://www.facebook.com/groups/mygolang/) - [Homepage](https://golang.my) - Malaysia.
   * [Go Developers Network Bangladesh](https://www.facebook.com/groups/godevnet/) - Bangladesh.
   * [Golang Pakistan](https://www.facebook.com/gopherpk/) - [Facebook Group](https://www.facebook.com/groups/2547735885480597) - Pakistan
-# Europe
+## Europe
   * [Bärner Go Meetup](https://www.meetup.com/Berner-Go-Meetup/) - Berne, Switzerland
   * [Budapest Go Meetup](https://www.meetup.com/go-budapest/) - Budapest, Hungary
   * [Athens Gophers](https://www.meetup.com/Athens-Gophers/) - Athens, Greece.
@@ -136,9 +140,9 @@
   * [Leipzig Gophers](https://golangleipzig.space/) - Leipzig, Germany
   * [Golang Estonia](https://www.meetup.com/Golang-Estonia/) - Estonia
 
-# North America
+## North America
 
-## Canada
+### Canada
 
   * [Edmonton Go Meetup](https://edmontongo.org/) - Edmonton AB, Canada.
   * [vangophers](http://groups.google.com/group/vangophers) - Vancouver BC, Canada.
@@ -151,23 +155,23 @@
   * [Golang Montréal](https://golangmontreal.org/) - Montréal, QC
   * [Golang Winnipeg](https://www.meetup.com/Golang-Wpg-Meetup/) - Winnipeg MB, Canada
 
-## Dominican Republic
+### Dominican Republic
 
   * [Golang Dominicana](https://www.facebook.com/groups/golangdominicana) - República Dominicana.
 
-## Latin America
+### Latin America
 
   * [Golang-ES](https://www.facebook.com/groups/goenespanol) - Facebook Español-Latino.
   * [Gophers LATAM](https://discord.com/invite/AEarh2kSvn) - Discord Español-Latino.
 
-## Mexico
+### Mexico
 
   * [Golang - Go MX](https://www.facebook.com/groups/es.golang.mx) - All Mexico
   * [GophersMX](https://www.meetup.com/es/GophersMX/) - Ciudad de México, México
   * [Golang Monterrey](http://www.meetup.com/Golang-MTY/) - Monterrey, Mexico
   * [Golang Guadalajara](https://www.meetup.com/es/Golang-Guadalajara/) - Guadalajara, México
 
-## United States
+### United States
 
   * [Los-Angeles-Gophers](http://www.meetup.com/Los-Angeles-Gophers/) - Los Angeles CA, USA.
   * [Westside GoLang Meetup](https://www.meetup.com/Westside-GoLang-Meetup/) - Los Angeles CA, USA.
@@ -213,7 +217,7 @@
   * [St Louis Go Meetup](https://www.meetup.com/StL-Go/) - St Louis, MO, USA
 
 
-# Oceania
+## Oceania
   * [Canberra Gophers](https://plus.google.com/u/1/communities/114036877112593565975) - Canberra, Australia.
   * [golang-sydney](http://www.meetup.com/golang-syd/) - Sydney, Australia.
   * [golang-nz](http://groups.google.com/group/golang-nz) - New Zealand.
@@ -222,7 +226,7 @@
   * [Brisbane Gophers](http://www.meetup.com/Brisbane-Golang-Meetup/) - Brisbane, Australia.
   * [Honolulu Go Users](http://hnlgo.org/) - Oahu, Hawaii
 
-# South America
+## South America
   * [Golang Brasil](https://www.meetup.com/pt-BR/golangbr/) - Brazil.
   * [Golang Rio de Janeiro](https://www.meetup.com/pt-BR/Gophers-Rio) - Rio de Janeiro, Brazil.
   * [Golang Recife](https://linktr.ee/golang_recife) - Recife, Pernambuco, Brazil.
@@ -231,4 +235,4 @@
   * [Golang Chile](https://groups.google.com/d/forum/golang-chile) - Chile.
   * [Golang Panamá](https://groups.google.com/d/forum/golang-panama) - Panamá.
   * [Golang Lima](http://www.meetup.com/es/Golang-Peru/) - Perú
-  * [Golang Venezuela](https://t.me/golangve) - Venezuela
\ No newline at end of file
+  * [Golang Venezuela](https://t.me/golangve) - Venezuela
diff --git a/GoUsers.md b/GoUsers.md
index 4246f81..c960211 100644
--- a/GoUsers.md
+++ b/GoUsers.md
@@ -1,6 +1,10 @@
-# Companies currently using Go throughout the world
+---
+title: GoUsers
+---
 
-## Countries
+## Companies currently using Go throughout the world
+
+### Countries
   * [Africa](#africa)
   * [Angola](#angola)
   * [Argentina](#argentina)
@@ -72,21 +76,21 @@
   * [United States](#united-states)
   * [Vietnam](#vietnam)
 
-## Africa
+### Africa
   * [Afariat](https://afariat.com/) - Classifieds platform in Tunisia.
 
-## Angola
+### Angola
   * [Nellcorp](https://nellcorp.com/) - Technology consulting agency.
 
-## Argentina
+### Argentina
   * [Mercadolibre](http://www.mercadolibre.com/) - Biggest E-Commerce platform in Latam.
   * [Wilab](http://www.wilab.io/) - Industrial IoT platform.
-  * [Omnia](https://www.omniasalud.com/) - Administrative systems for health organizations 
+  * [Omnia](https://www.omniasalud.com/) - Administrative systems for health organizations
 
-## Armenia
+### Armenia
   * [PlayEngine](https://playengine.com/) - Automated and data-driven solution for sports betting.
 
-## Australia
+### Australia
   * [Assembly Payments](https://assemblypayments.com/) - [github](https://github.com/AssemblyPayments) - Flexible payment solutions provider
   * [Atlassian](http://atlassian.com/)
   * [AusOcean](http://www.ausocean.org) - Helping our oceans through the use of technology.
@@ -94,7 +98,7 @@
   * [Buildkite](https://buildkite.com/) - [github](https://github.com/buildkite/agent)
   * [Crewmojo](https://crewmojo.com) - People management platform.
   * [Dgraph Labs](http://dgraph.io) - [github](https://github.com/dgraph-io/dgraph)
-  * [Fleet Space Technologies](http://fleet.space/) 
+  * [Fleet Space Technologies](http://fleet.space/)
   * [Fly365](http://fly365.com) - [github](https://github.com/fly365com)
   * [mx51](https://mx51.io) - [github](https://github.com/mx51)
   * [Massive Interactive](https://www.deltatre.com/massive)
@@ -107,20 +111,20 @@
   * [VERSENT](https://versent.com.au/)
   * [Nine Publishing (formerly known as Fairfax Media)](https://www.nineentertainmentco.com.au/brands/nine-publishing)
 
-## Austria
+### Austria
   * [Digital City Solutions](http://www.digital-city.io/)
   * [Symflower](https://symflower.com/en), [github](https://github.com/symflower/)
 
-## Bangladesh
+### Bangladesh
   * [AppsCode Ltd.](https://appscode.com) (BD subsidiary of AppsCode Inc.) - [facebook](https://www.facebook.com/appscodebd/), [github](https://github.com/appscode), [twitter](https://twitter.com/appscodehq)
   * [Furqan Software](https://furqansoftware.com)
   * [Telenor Health](https://www.mytonic.com)(A health service company) built USSD server with go
-  * [Pathao](https://pathao.com)(A ride sharing company) 
+  * [Pathao](https://pathao.com)(A ride sharing company)
   * [GAAN](http://gaan.com.bd)
   * [Restra](https://github.com/restra-social)
   * [ELO](https://elobyte.com) (Embedded Logic Operations)
 
-## Belarus
+### Belarus
   * [Cactussoft](https://cactussoft.biz/) - [github](https://github.com/cactussoft)
   * [BykovSoft](https://bykovsoft.com) - [github](https://github.com/bykovme)
   * [SmartPro](https://smartpro.by)
@@ -128,7 +132,7 @@
   * [Intelligent Speaker](https://intelligent-speaker.com) - proprietary fremium text-to-speech browser extension
   * [Visutech Plating](https://visutechplating.by)
 
-## Belgium
+### Belgium
   * [Continu-IT NV](https://www.continu-it.be/)
   * [IN4IT](https://www.in4it.io/)
   * [Be-Mobile](http://www.be-mobile.com/)
@@ -144,7 +148,7 @@
   * [dploy.ai](https://dploy.ai) (MLOps platform | Belgium & remote :smiley:)
 
 
-## Brazil
+### Brazil
   * [99 Taxis](http://www.99taxis.com/) - [github](https://github.com/99taxis)
   * [Acesso](http://acesso.io/) - [github](https://github.com/acesso-io)
   * [AStar](http://www.astarlabs.com)  - [github](https://github.com/astarlabs)
@@ -168,7 +172,7 @@
   * [DAXPER](https://daxper.com.br) - [github](https://github.com/daxper)
   * [Dinamize](https://www.dinamize.com.br/) - [github](https://github.com/dinamize)
   * [Dito](http://dito.com.br/) - [github](https://github.com/ditointernet/)
-  * [Dropadev](http://dropadev.com) 
+  * [Dropadev](http://dropadev.com)
   * [Easy Carros](https://easycarros.com)
   * [Emprego Ligado](https://empregoligado.com.br/#/)
   * [Estratégia Concursos](https://www.estrategiaconcursos.com.br/) - [github](https://github.com/estrategiahq/)
@@ -182,10 +186,10 @@
   * [Fundamentei](https://fundamentei.com.br)
   * [GissOnline](http://www.gissonline.com.br)
   * [Globo.com](http://www.globo.com) - [github](https://github.com/globocom) [article](http://www.wired.com/wiredenterprise/2013/03/tsuru)
-  * [Grupo Bandeirantes](https://www.band.uol.com.br/) 
-  * [Grupo SBF](https://ri.gruposbf.com.br/) - [github](https://github.com/grupo-sbf) 
+  * [Grupo Bandeirantes](https://www.band.uol.com.br/)
+  * [Grupo SBF](https://ri.gruposbf.com.br/) - [github](https://github.com/grupo-sbf)
   * [Hash](https://www.hash.com.br) - [github](https://github.com/hashlab)
-  * [Hurb](http://www.hurb.com) - [github](https://github.com/HotelUrbano) 
+  * [Hurb](http://www.hurb.com) - [github](https://github.com/HotelUrbano)
   * [Hubcash](http://www.hubcash.com) - [github](https://github.com/hubcash/)
   * [iFood](https://www.ifood.com.br/) - [github](https://github.com/orgs/ifood/)
   * [In Loco](http://www.inlocomedia.com) - [github](https://github.com/In-Loco-Media)
@@ -235,7 +239,7 @@
   * [Synchro](http://www.synchro.com.br)
   * [TOTVS](http://en.totvs.com/cloud)
   * [TraiveFinance](https://traivefinance.com/)
-  * [TC Investimentos](https://tc.com.br/) - [github](https://github.com/tradersclub) 
+  * [TC Investimentos](https://tc.com.br/) - [github](https://github.com/tradersclub)
   * [Ulife](http://www.ulife.com.br) - [github](https://github.com/ulifebr)
   * [Unico](https://unico.io)
   * [Universo Online](http://www.uol.com.br) - [github](https://github.com/uol)
@@ -243,12 +247,12 @@
   * [Walmart](http://www.walmart.com.br)
   * [Zup Innovation](https://github.com/ZupIT/ritchie-cli) - an open source tool that allows you to create, store and share automations
 
-## Bulgaria
+### Bulgaria
   * [clouWay](http://clouway.com/) - [github](https://github.com/clouway)
   * [SumUp](https://sumup.com)
   * [Gtmhub](https://gtmhub.com)
 
-## Canada
+### Canada
   * [1Password](https://1password.com)
   * [ActiveState](https://activestate.com) - [blog](https://www.activestate.com/blog/2018/03/reproducible-builds-introducing-predictability-your-pipeline) - [github](https://github.com/ActiveState)
   * [Apex](https://apex.sh/)
@@ -286,11 +290,11 @@
   * [500px](https://500px.com) - [blog](https://developers.500px.com/how-500px-serves-up-over-500tb-of-high-res-photos-fa81a376c594#.35tz2wtg2) - [github](https://github.com/500px)
   * [Qlik](https://www.qlik.com) - [jobs](https://www.qlik.com/us/company/careers/job-listings?overridedefault=true&department=R%2526D&country=-1) - [github](https://github.com/qlik-oss)
 
-## Chile
+### Chile
   * [Prey](https://preyproject.com) - [blog](https://preyproject.com/blog) - [github](https://github.com/prey)
   * [Webdox](http://www.webdox.cl)
- 
-## China
+
+### China
   * [Baidu](https://www.baidu.com/)
   * [Alibaba](https://www.alibaba.com/)
   * [Xiaomi](https://mi.com/)
@@ -338,7 +342,7 @@
   * [Habby](https://habby.com/)
 
 
-## Croatia
+### Croatia
   * [Crossvallia](https://crossvallia.hr/)
   * [CROZ](https://www.croz.net) - [github](https://github.com/croz-ltd)
   * [GoodCode](http://goodcode.io/) - [github](https://github.com/dobarkod)
@@ -354,23 +358,23 @@
   * [Syntio](https://www.syntio.net/) - [github](https://github.com/syntio)
   * [Pointer](https://pointer.hr/hr/naslovna/)
 
-## Colombia
+### Colombia
   * [Wawandco](https://wawand.co) - [github](https://github.com/wawandco)
 
-## Denmark
+### Denmark
   * [Onlime](https://www.onlime.dk/)
   * [SYBO Games](http://sybogames.com)
   * [Vivino](https://www.vivino.com)
   * [ZeroNorth](https://zeronorth.com/)
 
-## Estonia
+### Estonia
   * [Wallester](https://wallester.eu) - [github](https://github.com/wallester)
 
-## Finland
-  * [Alma Media](https://www.almamedia.fi/en/) - Media/Publishing company. [Twitter](https://twitter.com/almadevelopers) 
+### Finland
+  * [Alma Media](https://www.almamedia.fi/en/) - Media/Publishing company. [Twitter](https://twitter.com/almadevelopers)
 
-## France
-  * [Blog lecoinoccasion](https://blog.lecoinoccasion.fr/) 
+### France
+  * [Blog lecoinoccasion](https://blog.lecoinoccasion.fr/)
   * [Accenta](https://www.accenta.ai/)
   * [Algolia](https://algolia.com)
   * [Batch.com](https://batch.com)
@@ -393,7 +397,7 @@
   * [OneStock](https://www.onestock-retail.com/en/)
   * [Orange](http://www.orange.com)
   * [ProcessOne](https://www.process-one.net)
-  * [PSA](https://www.groupe-psa.com/en) - [github](https://github.com/ekara-platform/) 
+  * [PSA](https://www.groupe-psa.com/en) - [github](https://github.com/ekara-platform/)
   * [Rive](http://app.rive.world)
   * [Scaleway](https://www.scaleway.com) - [github](https://github.com/scaleway) - [blog](https://blog.scaleway.com)
   * [Sendinblue](http://www.sendinblue.com/)
@@ -407,7 +411,7 @@
   * [teckinside](http://teckinside.com/)
 
 
-## Germany
+### Germany
   * [Applied Go](https://appliedgo.com) - [blog](https://appliedgo.net)
   * [Bürkert](https://www.burkert.com/en/)
   * [Cloudogu](https://www.cloudogu.com) - [github](https://github.com/cloudogu)
@@ -430,7 +434,7 @@
   * [JustWatch](https://www.justwatch.com/us) - [HN](https://news.ycombinator.com/item?id=10658330)
   * [KI Labs](https://www.ki-labs.com/)
   * [loodse](https://loodse.com/) - [github](https://github.com/kubermatic/)
-  * [limango](https://www.limango.de/) 
+  * [limango](https://www.limango.de/)
   * [Meplato](https://www.meplato.com/)
   * [Naga Virtual](https://nagavirtual.com/)
   * [Native Instruments](https://www.native-instruments.com/) - [github](https://github.com/nativeinstruments)
@@ -454,21 +458,21 @@
   * [Sudokoin](http://sudokoin.com)
   * [HÄVG Rechenzentrum GmbH](https://www.haevg-rz.de/) - [blog](https://devblog.haevg-rz.de/) - [github](https://github.com/haevg-rz)
 
-## Greece
+### Greece
   * [Beat](https://thebeat.co)
   * [Skroutz](https://www.github.com/skroutz/)
   * [BestPrice](https://www.bestprice.gr)
   * [Inaccess](https://www.inaccess.com)
 
-## Hong Kong
+### Hong Kong
   * [PassKit](https://passkit.com/) - [github](https://github.com/PassKit)
   * [Lalamove](https://github.com/lalamove)
   * [Sandbox VR](https://sandboxvr.com)
 
-## Hungary
+### Hungary
   * [Pronovix](http://pronovix.com/) - [github](https://github.com/Pronovix)
 
-## India
+### India
   * [AirCTO](https://aircto.com)
   * [AmberStudent](https://amberstudent.com)
   * [Betacraft](http://www.betacraft.co/)
@@ -482,7 +486,7 @@
   * [CodeIgnition](http://codeignition.co/) - [twitter](https://twitter.com/AjeyGore/status/667515185486102529)
   * [Company 0](https://www.companyzero.com/)
   * [Cloudsdeal](https://www.cloudsdeal.com/)
-  * [Continuum Managed Solutions](https://continuum.net) 
+  * [Continuum Managed Solutions](https://continuum.net)
   * [Crowdfire](https://www.crowdfireapp.com/)
   * [Tasker Project Management Tool](https://task.usercv.com)
   * [CoderCV.com Freelancer Marketplace](https://codercv.com)
@@ -491,7 +495,7 @@
   * [Dunzo](https://www.dunzo.com)
   * [EasyAcco](https://www.easyacco.com)
   * [Euphoros Limited](https://www.euphoros.com)
-  * [Exotel](http://exotel.in) - [website](http://www.gophercon.in/#sponsor)  
+  * [Exotel](http://exotel.in) - [website](http://www.gophercon.in/#sponsor)
   * [FamPay](https://fampay.in/) - India’s first neobank for teenagers and their families.
   * [Fastah (Blackbuck Computing)](https://angel.co/blackbuck-computing/)
   * [FStack (Golang Consulting)](http://fstack.co/)
@@ -566,7 +570,7 @@
   * [Zerodha](https://kite.zerodha.com/)
   * [ZopSmart](https://zopsmart.com/)
 
-## Indonesia
+### Indonesia
 
   * [123 Berita](https://www.123berita.com)
   * [Auditsi Executive Recruitment Services](http://auditsi.com)
@@ -639,10 +643,10 @@
   * [Ourintake](https://ourintake.my.id)
   * [Mangko](https://mangko.net)
 
-## Iraq
+### Iraq
   * [eSITE](https://esite-iq.com/)
 
-## Iran
+### Iran
   * [Kamva](https://kamva.ir/) – Kamva eCommerce Platform [github](https://github.com/kamva/)
   * [Idpay](https://idpay.ir/) - bank gateways and a stable billing service in order to connect payments.
   * [IranBooking](https://www.iran-booking.com) - Online booking system for hotels in Iran
@@ -667,18 +671,18 @@
   * [Shafa.clinic](https://Shafa.clinic/) -  best medical laser service in Iran
   * [Cafe Bazaar](https://cafebazaar.ir/?l=en/) -  Iranian Android marketplace
   * [Alibaba Travels Co.](https://alibaba.ir/) - [(Github)](https://github.com/alibaba-go) - Iranian online travel agency
-  
-## Ireland
+
+### Ireland
   * [EXADS](http://exads.com/)
   * [Intercom](http://intercom.io/)
   * [Teamwork](http://teamwork.com/) - [blog](http://engineroom.teamwork.com/our-future-stack-or-why-we-love-knockout-coffeescript-redis-and-go/)
   * [Nitro](https://gonitro.com) - We make document productivity easy, powerful, affordable, and available to all.
- 
-## Israel
-  * [353solutions](http://353solutions.com) 
-  * [AppsFlyer](https://www.appsflyer.com) 
+
+### Israel
+  * [353solutions](http://353solutions.com)
+  * [AppsFlyer](https://www.appsflyer.com)
   * [Aqua Security](https://www.aquasec.com)
-  * [BigPanda](http://bigpanda.io) 
+  * [BigPanda](http://bigpanda.io)
   * [Bottomline Technologies](https://www.bottomline.com)
   * [Bringg](https://www.bringg.com)
   * [Check Point](https://www.checkpoint.com/)
@@ -686,18 +690,18 @@
   * [Cloudinary](https://cloudinary.com/)
   * [CTERA](https://www.ctera.com/)
   * [Cyren](https://www.cyren.com)
-  * [Dragontail Systems](https://www.dragontailsystems.com) 
-  * [Domino's Pizza](https://dominos.co.il) 
-  * [Elastifile Ltd](http://elastifile.com) 
-  * [Ensilo](https://www.ensilo.com/) 
-  * [EyeSight](http://eyesight-tech.com) 
-  * [Fiverr](http://Fiverr.com/) 
-  * [Firedome](https://firedome.io) 
-  * [Gett](http://gett.com/) 
-  * [HERE Mobility](https://mobility.here.com/) 
-  * [Intuit](http://intuit.com/) 
-  * [ironSource](http://www.ironsrc.com) 
-  * [Jewish Interactive](http://jewishinteractive.org) 
+  * [Dragontail Systems](https://www.dragontailsystems.com)
+  * [Domino's Pizza](https://dominos.co.il)
+  * [Elastifile Ltd](http://elastifile.com)
+  * [Ensilo](https://www.ensilo.com/)
+  * [EyeSight](http://eyesight-tech.com)
+  * [Fiverr](http://Fiverr.com/)
+  * [Firedome](https://firedome.io)
+  * [Gett](http://gett.com/)
+  * [HERE Mobility](https://mobility.here.com/)
+  * [Intuit](http://intuit.com/)
+  * [ironSource](http://www.ironsrc.com)
+  * [Jewish Interactive](http://jewishinteractive.org)
   * [JFrog](https://www.jfrog.com/) - [github](https://github.com/JFrogDev/jfrog-cli-go)
   * [Firedome](https://firedome.io/) - [github](https://github.com/firedome)
   * [Iguazio](https://www.iguazio.com/) - Data science and analytics PaaS
@@ -715,9 +719,9 @@
   * [Peer5](https://www.peer5.com/)
   * [PlanGrid](https://www.plangrid.com/)
   * [Proofpoint](https://proofpoint.com)
-  * [Protected Media](http://www.protected.media) 
-  * [PUB+](http://pubplus.com/) 
-  * [PushApps](https://www.pushapps.mobi/) 
+  * [Protected Media](http://www.protected.media)
+  * [PUB+](http://pubplus.com/)
+  * [PushApps](https://www.pushapps.mobi/)
   * [Rimoto](http://www.rimoto.com/)
   * [Rounds](http://www.rounds.com)
   * [SentinelOne](https://www.sentinelone.com/)
@@ -727,18 +731,18 @@
   * [spot.im](https://www.spot.im/)
   * [Stratoscale](http://www.stratoscale.com) - [github](https://github.com/Stratoscale)
   * [StreamRail](https://www.streamrail.com/)
-  * [TechedUp](http://www.techedup.net) - ([Blog](http://blog.techedup.net/category/go/)) 
+  * [TechedUp](http://www.techedup.net) - ([Blog](http://blog.techedup.net/category/go/))
   * [Tikal](https://www.tikalk.com/)
   * [Tufin](https://www.tufin.com/)
   * [Twistlock](https://www.twistlock.com)
-  * [uponit](https://uponit.com/) 
+  * [uponit](https://uponit.com/)
   * [Venn](https://global.venn.city/)
-  * [Yodas](https://yodas.com) 
-  * [Yotpo](https://www.yotpo.com/) 
-  * [ZipRecruiter](https://www.ziprecruiter.com/) 
+  * [Yodas](https://yodas.com)
+  * [Yotpo](https://www.yotpo.com/)
+  * [ZipRecruiter](https://www.ziprecruiter.com/)
   * [MinuteMedia](https://www.minutemedia.com/)
 
-## Italy
+### Italy
   * [Oxequa](http://www.oxequa.com) - ([Realize](https://github.com/oxequa/realize), [Grace](https://github.com/oxequa/grace))
   * [Qurami](http://www.qurami.com) - [github](https://github.com/qurami)
   * [Sorint.lab](https://www.sorint.it) - [github](https://github.com/sorintlab)
@@ -749,7 +753,7 @@
   * [Pixartprinting](https://www.pixartprinting.com/)
   * [Overzoom](https://www.overzoom.it)
 
-## Japan
+### Japan
   * [3-shake, Inc.](https://www.3-shake.com/)
   * [ACALL, Inc.](https://corp.acall.jp/)
   * [and factory, Inc.](https://andfactory.co.jp/)
@@ -853,7 +857,7 @@
       * [go-dnscache](https://github.com/mercari/go-dnscache) - Go package for caching DNS lookup results in memory.
       * [grpc-http-proxy](https://github.com/mercari/grpc-http-proxy) - A reverse proxy server which translate JSON HTTP requests to gRPC calls based on protoreflect.
       * [go-httpstats](https://github.com/mercari/go-httpstats) - Go package for reporting HTTP stats.
-      * [certificate-expiry-monitor-controller](https://github.com/mercari/certificate-expiry-monitor-controller) - 
+      * [certificate-expiry-monitor-controller](https://github.com/mercari/certificate-expiry-monitor-controller) -
 Certificate Expiry Monitor Controller monitors the expiration of TLS certificates used in Ingress.
       * [tfnotify](https://github.com/mercari/tfnotify) - A CLI command to parse Terraform execution result and notify it to GitHub.
       * [imageflux-cli](https://github.com/mercari/imageflux-cli) - Imageflux Client written in Go.
@@ -941,11 +945,11 @@
   * [Yappli, Inc.](https://yappli.co.jp/)
   * [ZOZO, Inc.](https://corp.zozo.com/)
 
-## Kazakhstan
+### Kazakhstan
   * Kolesa LLC - microservices for classified ads websites and mobile applications backend ([Kolesa](http://kolesa.kz), [Krisha](https://krisha.kz), [Market](https://market.kz))
   * [Technodom Operator](https://www.technodom.kz) - eCommerce platform.
 
-## Korea (South)
+### Korea (South)
   * [ComTrue Technologies](http://comtrue.com/) - Network Packet Analyzer
   * [Digitalidea](http://www.digitalidea.co.kr) - inhouse tool for VFX
   * [FlyHigh](http://flyhigh-x.com/en/) - Information Security Solution
@@ -957,39 +961,39 @@
   * [Wemakeprice](http://www.wemakeprice.com) - CRM Solution
   * [Gabia](https://www.gabia.com/) - Server monitoring solution
   * [BankSalad](https://banksalad.com/) - Personal Finance Management Service
-  * [Daangn Market](https://www.daangn.com/) - Used trades between people in the same area 
+  * [Daangn Market](https://www.daangn.com/) - Used trades between people in the same area
   * [DelightRoom](https://alar.my/) - The world’s most annoying alarm clock - Alarmy
 
-## Lithuania
+### Lithuania
   * [DATA-DOG](https://github.com/DATA-DOG)
 
-## Malaysia
+### Malaysia
   * [MHub](https://mhub.my)
   * [Revenue Monster](https://revenuemonster.my/)
   * [iflix](https://piay.iflix.com) - Free and Subscription Video On Demand Service
   * [AirAsia](https://www.airasia.com/)
 
-## Mexico
+### Mexico
   * [Conekta](https://www.conekta.com/) - Payment Service
   * [Segundamano](https://www.segundamano.mx/)
   * [Entropy](https://entropy.tech) - Ecommerce Marketing Optimization Platform.
   * [Credijusto](https://engineering.credijusto.com/) - Financial Services
   * [Tredicom](https://www.tredicom.com/) - B2B, EDI & Ecommerce Services
 
-## Middle-East
+### Middle-East
   * [ThoughtBox Technologies](https://www.thoughtbox.io/) - A FinTech Solution Provider
 
-## Moldova
+### Moldova
   * [Emphatic Spark](http://emphaticspark.com/)
 
-## Morocco
+### Morocco
   * [Avito](http://www.avito.ma)
 
-## Nepal
+### Nepal
   * [WesionaryTEAM](https://www.wesionary.team/)
   * [Leapfrog Technology](https://www.lftechnology.com/)
 
-## Netherlands
+### Netherlands
   * [Aan Zee](https://www.aanzee.nl)
   * [Albert Heijn](https://ah.nl)
   * [BloomReach](https://www.bloomreach.com)
@@ -1024,7 +1028,7 @@
   * [Xebia](https://xebia.com/) - [github](https://github.com/xebia)
   * [Yonego](https://www.bambelo.com/)
 
-## New Zealand
+### New Zealand
   * [9Spokes](https://www.9spokes.com/) - [github](https://github.com/9spokes)
   * [Aeroqual](https://www.aeroqual.com/) - [github](https://github.com/aeroqual)
   * [Boxer®](https://goboxer.com/) - [github](https://github.com/goboxer)
@@ -1046,11 +1050,11 @@
   * [Weta Digital](http://www.wetafx.co.nz) - [Slides](https://talks.godoc.org/github.com/justinfx/demos/go_at_weta/go_at_weta.slide)
   * [Xerra Earth Observation Institute](https://www.xerra.nz/) - [Starboard Maritime Intelligence](https://starboard.nz/)
 
-## Nigeria
+### Nigeria
   * [Jumia Food](https://food.jumia.com/) - Instant delivery platform.
   * [Global Performance Index (GPI)](https://www.my-gpi.com/) - Biggest Software automation company in Nigeria.
 
-## Norway
+### Norway
   * [Aller media](https://www.aller.no/)
   * [Amedia](https://www.amedia.no/)
   * [Avinor](https://avinor.no/)
@@ -1111,36 +1115,36 @@
   * [Zeipt](https://www.zeipt.com)
   * [Zendera](www.zendera.no)
 
-## Oman
+### Oman
   * [Rihal](https://www.rihal.om/) - Designed for Data
-  
-## Pakistan
+
+### Pakistan
   * [Datum Brain](https://datumbrain.com) - [github](https://github.com/datumbrain) - AI, data science, big data analytics and IoT company
   * [TalkShot ](https://talkshot.com) - Social Networking based on Live events
 
-## Philippines
+### Philippines
   * [22 Delta Labs](https://www.22delta.com) - [github](https://github.com/22delta) - AI, data science, software and product development company
   * [EngageSPARK](https://www.engagespark.com)
 
-## Poland
+### Poland
  * [OLX](https://www.joinolx.com/) - [blog](https://tech.olx.com/)
  * [allegro](http://allegro.pl) - [blog](http://allegro.tech) - biggest polish e-commerce platform
  * [hostit.pl](https://hostit.pl) - [blog](https://hostit.pl/blog/375,go-gadget-go.html)
  * [Brainhub](https://brainhub.eu) - [blog](https://brainhub.eu/golang-software-development.html)
- * [Cardinal Cryptography](https://cardinals.cc) - blockchain, DLT, and software development 
+ * [Cardinal Cryptography](https://cardinals.cc) - blockchain, DLT, and software development
  * [CloudThing](https://www.cloudthing.io) - IoT cloud platform
  * [HolidayCheck](https://www.holidaycheck.pl/)
  * [Husar Labs](http://www.husarlabs.com) - software development company
  * [RnDity](https://rndity.com) - software and hardware development company
  * [Grey Wizard](https://greywizard.com) - cybersecurity company
- * [podioom](http://podioom.net) - With podioom we create bonds that support those who care and who want to stay in shape! 
+ * [podioom](http://podioom.net) - With podioom we create bonds that support those who care and who want to stay in shape!
  * [beFOGG](http://befogg.mobi) - platform that will take tourism to the next level
  * [Miquido](https://www.miquido.com) - Mobile-first software development company
  * [Brainly](https://brainly.co/) - [blog](https://medium.com/engineering-brainly)
- * [limango](https://www.limango.pl/) 
+ * [limango](https://www.limango.pl/)
  * [SoftKraft](https://www.softkraft.co/golang-development-company/) - software development company
 
-## Portugal
+### Portugal
   * [OLX](https://www.joinolx.com/) - [blog](https://tech.olx.com/)
   * [AppGeneration](http://appgeneration.com/)
   * [Lmit](http://lmit.pt/)
@@ -1148,15 +1152,15 @@
   * [Bright Pixel](https://brpx.com/)
   * [Observador](https://observador.pt/)
   * [SaltPay](https://www.saltpay.co/)
-  * [Worten](https://www.worten.pt/) 
+  * [Worten](https://www.worten.pt/)
 
-## Romania
+### Romania
   * [Primal Skill](https://www.primalskill.com) - software development company focusing on web, API development with offices in Romania
   * [Trisoft](https://www.wearetrisoft.com) - software development company with offices in San Francisco and Romania
   * [JobDone](https://jobdone.net) - Freelancer Marketplace
   * [CrowdStrike](https://www.crowdstrike.com/) - software development company with offices in US, UK, Romania and Australia
 
-## Russia
+### Russia
 * [2GIS](http://info.2gis.com/)
 * [avito.ru](http://avito.ru/)
 * [citilink.ru](https://www.citilink.ru/)
@@ -1176,20 +1180,20 @@
 * [VK.COM](https://vk.com/about) (Part of our Go services: https://www.youtube.com/watch?v=Llmpfv8PIt4)
 * [Quadcode](https://quadcode.com)
 
-## Saudi Arabia
+### Saudi Arabia
 * [Tamkeen Technologies](http://tamkeentech.sa)
 
-## Serbia
+### Serbia
 * [Seven Bridges](https://www.sevenbridges.com/) - [github](https://github.com/sbg)
 
-## Singapore
+### Singapore
 * [OKiT247](https://okit247.com) - Frontend analytics and web content delivery.
 * [Rate](https://rate.com.sg)
 * [Singapore Power](https://www.spgroup.com.sg/)
 * [Eatigo](https://www.eatigo.com/)
 * [ekeynow](https://www.ekeynow.com)
 
-## Slovenia
+### Slovenia
   * [Koofr](https://www.koofr.eu)
   * [nChain](https://nchain.si/)
   * [Niteo](https://www.niteo.co)
@@ -1197,13 +1201,13 @@
   * [Visionect d.o.o.](https://www.visionect.com)
 
 
-## South Africa
+### South Africa
   * [Luno](http://www.luno.com) - [github](https://github.com/luno)
   * [SaltPay](https://www.saltpay.co/)
   * [Span Digital](http://www.spandigital.com) - [github](https://github.com/SPANDigital)
   * [Ringier SA](https://www.ringier.com/about-us/south-africa/) - International software development company.
 
-## Southeast Asia
+### Southeast Asia
   * [Dwarves Foundation](https://dwarves.foundation) - [github](https://github.com/dwarvesf)
   * [engageSPARK](https://www.engagespark.com/) - [HN](https://news.ycombinator.com/item?id=10655752)
   * [Grab](http://www.grab.com/)
@@ -1213,7 +1217,7 @@
   * [TablePlus](https://www.tableplus.io/)
   * [Carousell](https://sg.carousell.com/)
 
-## Spain
+### Spain
   * [alea soluciones](https://github.com/aleasoluciones/)
   * [Bugfender](https://bugfender.com/)
   * [Cabify](https://cabify.com/) - [github](https://github.com/cabify/), [twitter](https://twitter.com/cabifydev)
@@ -1222,15 +1226,15 @@
   * [puzzlopia](http://www.puzzlopia.com) - [github](https://github.com/puzzlopia/puzzle-solvers)
   * [binomads](https://binomads.com/)
   * [Schibsted](http://www.schibsted.com/)
-  * [Mediasmart.io](http://mediasmart.io) - [twitter](https://twitter.com/mediasmart_mb) 
-  * [Mavrix](https://mavrix.es) - [github](https://github.com/betit/orion-go-sdk)  
+  * [Mediasmart.io](http://mediasmart.io) - [twitter](https://twitter.com/mediasmart_mb)
+  * [Mavrix](https://mavrix.es) - [github](https://github.com/betit/orion-go-sdk)
   * [Typeform](https://www.typeform.com/)
   * [source{d}](https://sourced.tech)
   * [Nayar Systems](http://www.nayarsystems.com/)
   * [Stayforlong](https://www.stayforlong.com/)
   * [Hosco](https://www.hosco.com/)
 
-## Sri Lanka
+### Sri Lanka
   * [Xiges.io](https://xiges.io/) - Low-code Industrial IoT Platform
   * [PickMe](https://pickme.lk/) - Universal Hailing Platform
   * [Mybudget](https://www.mybudget.com.au/) - Financial Health Management System
@@ -1238,7 +1242,7 @@
   * [TryFix](https://github.com/tryfix) - Go Platform Developers
   * [Circles.Life](https://www.circles.life/) - Building Telecommunication Provider Platform Running in Singapore
 
-## Sweden
+### Sweden
   * [Abios](https://abiosgaming.com/) - The world's most trusted esports API.
   * [Booli](https://www.booli.se/)
   * [Digital Route](https://www.digitalroute.com)
@@ -1256,7 +1260,7 @@
   * [Studentlitteratur](https://www.studentlitteratur.se)
   * [TV4](http://www.tv4.se/) - [blog](http://http.tv4.se/2014/12/04/tv4-tech-peter-hellberg-kristian-saebdal-tv4-vara-topplistor-i-go/)
 
-## Switzerland
+### Switzerland
   * [Acronis](https://www.acronis.com)
   * [AgFlow SA](http://www.agflow.com/)
   * [Aleph Zero](https://alephzero.org) - blockchain platform
@@ -1268,12 +1272,12 @@
   * [RedCarbon SA](https://redcarbon.ai/)
   * [Ricardo](https://www.ricardo.ch/)
 
-## Taiwan
+### Taiwan
   * [QNAP Systems, Inc.](https://www.qnap.com)
   * [ProphetStor Data Services, Inc.](http://www.prophetstor.com)
   * [Duotify Inc.](https://www.duotify.com) (多奇數位創意有限公司)
-  
-## Thailand
+
+### Thailand
   * [3DS Interactive](https://3dsinteractive.com)
   * [AIS](http://www.ais.co.th/) - Top 3 of telecommunication company in Thailand.
   * [Appsynth Asia](https://appsynth.net/)
@@ -1321,7 +1325,7 @@
   * [Zanroo](https://www.zanroo.com/)
   * [Zarewoft](https://github.com/zarewoft)
 
-## Turkey
+### Turkey
   * [Admongrel](http://www.admongrel.com/)
   * [Frigbo](https://frigbo.com/)
   * [Hepiyo](https://hepiyo.com/)
@@ -1341,8 +1345,8 @@
   * [Sir Studios](http://sirstudios.com)
   * [Trendyol.com](https://www.trendyol.com) - [github](https://github.com/Trendyol) - Backend APIs
   * [Armut/HomeRun](https://armut.com/) - [github](https://github.com/armutcom) - Backend APIs
-  * [BiTaksi](https://www.bitaksi.com) - [github](https://github.com/BiTaksi) 
-## Ukraine
+  * [BiTaksi](https://www.bitaksi.com) - [github](https://github.com/BiTaksi)
+### Ukraine
   * [Agilites](https://agilites.com)
   * [Aura](https://aura.com)
   * [ElifTech](http://www.eliftech.com)
@@ -1352,10 +1356,10 @@
   * [ElementalsWeb](https://www.elementalsweb.com/)
   * [monobank](https://monobank.ua/)
   * [VP Software](https://vp.software/) - [tech blog](https://vp.software/insights) - software development company
-## United Arab Emirates
+### United Arab Emirates
   * [Milenow](https://www.milenow.com/)
   * [PayTabs](https://paytabs.com/) Payment Gateway - Dubai
-## United Kingdom
+### United Kingdom
   * [4ARMED](https://www.4armed.com/)
   * [Acuris](https://www.acuris.com/)
   * [Admongrel](http://www.admongrel.com/)
@@ -1363,7 +1367,7 @@
   * [Badoo](https://badoo.com) - [github](https://github.com/badoo/thunder)
   * [BBC](http://www.bbc.co.uk) - [public source](https://github.com/bbc?utf8=%E2%9C%93&q=&type=&language=go)
   * [BBC Worldwide](http://www.bbcworldwide.com/) - [source](http://www.quora.com/Go-programming-language/Is-Google-Go-ready-for-production-use/answer/Kunal-Anand)
-  * [Bedful Booking System](https://bedful.com)  
+  * [Bedful Booking System](https://bedful.com)
   * [Belua](https://www.belua.com)
   * [bet365](https://www.bet365.com) - [github](https://github.com/bet365)
   * [Bubble Student](https://www.bubblestudent.co.uk)
@@ -1414,9 +1418,9 @@
   * [Ernest.io](http://ernest.io)
   * [Landoop](https://www.landoop.com/) - [github](https://github.com/landoop), [blog](https://www.landoop.com/blog/)
   * [Gram Games](http://gram.gs/) 90% of the backend and internal tools implemented with Go. Using it in production since 2015.
-  * [WhatsOnChain](https://whatsonchain.com) - Backend APIs for Blockchain Explorer 
+  * [WhatsOnChain](https://whatsonchain.com) - Backend APIs for Blockchain Explorer
 
-## United States
+### United States
 
   * [Google](http://google.com/) - the core Go team work at Google. Most uses of Go at Google are confidential.
     * [Kubernetes](http://kubernetes.io/)
@@ -1678,7 +1682,7 @@
   * [News Corp](https://newscorp.com/)
   * [Newspaper](http://www.newspaper.io/) - [source](https://angel.co/newspaperio)
   * [Nextdoor](http://www.nextdoor.com) - [source](https://engblog.nextdoor.com/what-is-the-technology-behind-nextdoor-5b74b3efcc31)
-  * [Next Jump](https://www.nextjump.com) - Next Jump the company that manages the perks platform [Perks at Work](https://www.perksatwork.com) uses Go in it's backend. 
+  * [Next Jump](https://www.nextjump.com) - Next Jump the company that manages the perks platform [Perks at Work](https://www.perksatwork.com) uses Go in it's backend.
   * [NextUser](https://www.nextuser.com)
   * [Nexway](http://www.nexway.com)
   * [Nike](http://engineering.nike.com/) - [github](https://github.com/Nike-Inc?utf8=%E2%9C%93&q=&type=&language=go)
@@ -1715,7 +1719,7 @@
   * [Pinterest](https://www.pinterest.com/) - [github](https://github.com/pinterest)
   * [Pivotal](https://pivotal.io/) - [Cloud Foundry](https://github.com/cloudfoundry) and [Cloud Foundry Incubator](https://github.com/cloudfoundry-incubator)
   * [PocketList](http://pocketlist.co)
-  * [Points.com](https://points.com/) - Points Loyalty Wallet 
+  * [Points.com](https://points.com/) - Points Loyalty Wallet
   * [pool.ntp.org](http://pool.ntp.org/) - [blog](http://news.ntppool.org/2012/10/new-dns-server.html) [status](http://dns-status.ntppool.org/)
   * [Poptip](https://poptip.com/) - [blog](http://thenewstack.io/from-node-js-to-go-why-one-startup-made-the-switch/), [job posting](https://groups.google.com/d/msg/golang-nuts/cQ0uuLCcQQQ/4nNm_YYh_l4J)
   * [Pressly](https://www.pressly.com) - [github](https://github.com/pressly), [product](https://www.pressly.com)
@@ -1857,7 +1861,7 @@
   * [Verizon Media / Yahoo](http://yahoo.com) - [github](https://github.com/search?utf8=%E2%9C%93&q=user%3Ayahoo+language%3Ago)
   * [Yandex](http://yandex.ru) - [blog](https://habrahabr.ru/company/yandex/blog/237985)
   * [Yik Yak](http://www.yikyakapp.com/) - [tweet](https://twitter.com/ardanlab/status/629002599484813312/photo/1)
-  * [Zalando](http://tech.zalando.com/) - [github](https://github.com/zalando) 
+  * [Zalando](http://tech.zalando.com/) - [github](https://github.com/zalando)
   * [Zapier](https://zapier.com) - [github](https://github.com/zapier)
   * [Zenoss](http://www.zenoss.com/) - [github](https://github.com/control-center/serviced)
   * [Zenreach](https://zenreach.com) - [jobs](https://www.zenreach.com/careers/)
@@ -1867,7 +1871,7 @@
   * [Tipe](https://tipe.io) - [github](https://github.com/tipeio)
   * [4wardtech Inc](http://4ward.tech/)
 
-## Vietnam
+### Vietnam
   * [BeGroup](https://be.xyz)
   * [ChoTot](https://www.chotot.com)
   * [Money Forward Vietnam](https://careers.moneyforward.vn/)
@@ -1877,4 +1881,4 @@
 
 See also [Success Stories](SuccessStories)
 
-See also [Wikipedia category](https://en.wikipedia.org/wiki/Category:Free_software_programmed_in_Go) and [Wikidata](https://query.wikidata.org/#SELECT%20DISTINCT%20%3Finstance_of%20%3Finstance_ofLabel%20%3Finstance_ofDescription%20%3Fofficial_website%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20OPTIONAL%20%7B%20%3Finstance_of%20wdt%3AP856%20%3Fofficial_website%20%7D%0A%20%20%3Finstance_of%20wdt%3AP277%20wd%3AQ37227.%0A%7D) and [Wikidata for free and open-source software only](https://query.wikidata.org/#SELECT%20DISTINCT%20%3Finstance_of%20%3Finstance_ofDescription%20%3Finstance_ofLabel%20%3Fofficial_website%0AWHERE%20%7B%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%3Finstance_of%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ341%0A%20%20OPTIONAL%20%7B%20%3Finstance_of%20wdt%3AP856%20%3Fofficial_website%20%7D%0A%20%20%3Finstance_of%20wdt%3AP277%20wd%3AQ37227.%0A%7D)
\ No newline at end of file
+See also [Wikipedia category](https://en.wikipedia.org/wiki/Category:Free_software_programmed_in_Go) and [Wikidata](https://query.wikidata.org/#SELECT%20DISTINCT%20%3Finstance_of%20%3Finstance_ofLabel%20%3Finstance_ofDescription%20%3Fofficial_website%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20OPTIONAL%20%7B%20%3Finstance_of%20wdt%3AP856%20%3Fofficial_website%20%7D%0A%20%20%3Finstance_of%20wdt%3AP277%20wd%3AQ37227.%0A%7D) and [Wikidata for free and open-source software only](https://query.wikidata.org/#SELECT%20DISTINCT%20%3Finstance_of%20%3Finstance_ofDescription%20%3Finstance_ofLabel%20%3Fofficial_website%0AWHERE%20%7B%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%3Finstance_of%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ341%0A%20%20OPTIONAL%20%7B%20%3Finstance_of%20wdt%3AP856%20%3Fofficial_website%20%7D%0A%20%20%3Finstance_of%20wdt%3AP277%20wd%3AQ37227.%0A%7D)
diff --git a/Gomote.md b/Gomote.md
index e6d0f5e..09d965a 100644
--- a/Gomote.md
+++ b/Gomote.md
@@ -1,4 +1,6 @@
-# Gomote
+---
+title: Gomote
+---
 
 The gomote command is a client for the Go builder infrastructure. It's a remote control for remote Go builder machines.
 
@@ -227,4 +229,4 @@
 
 ### gomote ssh
 
-The `gomote ssh` command uses a SSH keys created specifically for gomote. On the first use of the `gomote ssh` a set of keys will be created and stored in the local user configuration directory. You may be asked to add set a password for the keys (a password is not required). The SSH functionality operates with OpenSSH certificate authentication and does not require any additional configuration.
\ No newline at end of file
+The `gomote ssh` command uses a SSH keys created specifically for gomote. On the first use of the `gomote ssh` a set of keys will be created and stored in the local user configuration directory. You may be asked to add set a password for the keys (a password is not required). The SSH functionality operates with OpenSSH certificate authentication and does not require any additional configuration.
diff --git a/Gopher.md b/Gopher.md
index 3082fe1..4c332f6 100644
--- a/Gopher.md
+++ b/Gopher.md
@@ -1,3 +1,7 @@
+---
+title: Gopher
+---
+
 The Go gopher was designed by [Renee French](https://www.instagram.com/reneefrench/).  
 The design is licensed under the Creative Commons 3.0 Attributions license.  
 Read [this article](https://go.dev/blog/gopher) and watch [The Go Gopher A Character Study](https://www.youtube.com/watch?v=4rw_B4yY69k) for more details.
@@ -16,4 +20,4 @@
 * [Go Gopher model (3d)](https://github.com/StickmanVentures/go-gopher-model)
 * [Gopher Artwork by Ashley McNamara](https://github.com/ashleymcnamara/gophers)
 * [Gopherize.me](https://gopherize.me/) - a Gopher avatar that's as unique as you
-* [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack)
\ No newline at end of file
+* [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack)
diff --git a/HandlingIssues.md b/HandlingIssues.md
index 50827af..9a70ac2 100644
--- a/HandlingIssues.md
+++ b/HandlingIssues.md
@@ -1,15 +1,19 @@
+---
+title: HandlingIssues
+---
+
 This document explains how we handle issue triage and scheduling in [the Go project's issue tracker](https://go.dev/issue).
 
-# Issue States
+## Issue States
 
 Any issue must be in one of the following states. Project contributors move issues from one state to another. The intent behind these explicit states is to describe the (minimum) next steps required to bring the issue to resolution. Issues may move between states in any order, as dictated by the needs of the particular issue.
 
-### New
+#### New
 - The issue has been filed.
 - May not be correctly formatted (title, etc).
 - To transition from this state, someone must clean up the issue report and optionally CC people who might best investigate or fix it.
 
-### Needs Investigation
+#### Needs Investigation
 - Is correctly formatted.
   - The title has a path prefix.
   - The body describes the issue.
@@ -19,7 +23,7 @@
   - May also have the label `WaitingForInfo` if the investigator is waiting for more information from someone (e.g., the issue reporter).
 - To transition from this state, someone must examine the issue and confirm that it is valid and not a duplicate of an existing issue.
 
-### Needs Decision
+#### Needs Decision
 - The issue is real, but we're not sure what action to take.
   - The issue can be addressed in Go 1.
   - Feedback is required from experts, contributors, and/or the community before a fix can be made.
@@ -32,14 +36,14 @@
 - To transition from this state, someone must decide how the issue is to be resolved.
     - If the decision is complicated, the issue may be given a [`Proposal`](https://github.com/golang/proposal/) label. The issue remains in this state until the proposal process is complete, and moves to `NeedsFix` if approved.
 
-### Needs Fix
+#### Needs Fix
 - The path to resolution is known, but the work has not been done.
 - Has a milestone.
 - Has the label `NeedsFix`.
   - May have the labels `Blocked` or `WaitingForInfo`.
 - To transition from this state, someone must do the work to fix the issue.
 
-### Fixed
+#### Fixed
 - The issue is resolved. No further attention is required.
 - The issue is closed.
 
@@ -51,7 +55,7 @@
 Unassigned issues are considered available for anyone to address.
 
 
-# Milestones
+## Milestones
 
 Milestones describe the timeline for issue resolution.
 
@@ -90,3 +94,4 @@
 Additional milestones may be used to manage specific project work.
 
 The label "Soon" is used independently of milestones to indicate that the issue is time-sensitive.
+
diff --git a/Home.md b/Home.md
index 7d0605d..3d7802a 100644
--- a/Home.md
+++ b/Home.md
@@ -1,3 +1,7 @@
+---
+title: Home
+---
+
 Welcome to the Go wiki, a collection of information about the [Go Programming Language](https://go.dev/). [Awesome Go](http://awesome-go.com/) is another great resource for Go programmers, curated by the Go community.
 
 ## Questions about Go
@@ -34,7 +38,7 @@
 - [Go standard library documentation](https://pkg.go.dev/std) to familiarize yourself with the standard library.
 - [Use the Go Playground](https://go.dev/play) to test out Go programs in your browser.
 - Still not convinced? Check out this list of [Go Users](GoUsers) and a few of their [Success stories](SuccessStories). We've also assembled a long list of reasons [why you should give Go a try](whygo).
-- Read about the companies which have [switched from other languages to Go](https://github.com/golang/go/wiki/FromXToGo).
+- Read about the companies which have [switched from other languages to Go](/wiki/FromXToGo).
 
 ## Working with Go
 
@@ -200,9 +204,9 @@
 
 - Understand the performance of your Go apps using the [pprof package](https://go.dev/blog/profiling-go-programs)
 - Heap Dumps
-  - [[heapdump13]]
-  - [[heapdump14]]
-  - [[heapdump15-through-heapdump17]]
+  - [heapdump13](heapdump13)
+  - [heapdump14](heapdump14)
+  - [heapdump15-through-heapdump17](heapdump15-through-heapdump17)
 
 ## Contributing to the Go Project
 
@@ -220,7 +224,7 @@
 - Project Dashboards
   - [Go Builds Dashboard info](DashboardBuilders)
   - [Performance Dashboard info](PerfDashboard)
-  - [Download failed logs and debugging](https://github.com/golang/go/wiki/Download-build-farm-failed-logs-and-debugging)
+  - [Download failed logs and debugging](/wiki/Download-build-farm-failed-logs-and-debugging)
 
 ## Platform Specific Information
 
@@ -245,4 +249,4 @@
 
 Notes:
 
-- Please refrain from changing the title of the wiki pages, as some of them might be linked to from [golang.org](https://golang.org) or other websites
\ No newline at end of file
+- Please refrain from changing the title of the wiki pages, as some of them might be linked to from [golang.org](https://golang.org) or other websites
diff --git a/HostedContinuousIntegration.md b/HostedContinuousIntegration.md
index 850b5c3..e7285b8 100644
--- a/HostedContinuousIntegration.md
+++ b/HostedContinuousIntegration.md
@@ -1,3 +1,7 @@
+---
+title: HostedContinuousIntegration
+---
+
 A number of hosted continuous integration platforms have support for Go
 
 | Provider | Documentation | Notes |
@@ -11,3 +15,4 @@
 | [Travis CI](http://travis-ci.org) | [docs](http://docs.travis-ci.com/user/languages/go/) |  [howto](http://loads.pickle.me.uk/2015/08/22/easy-peasy-github-releases-for-go-projects-using-travis/), [go-client-api](https://github.com/AbletonAG/go-travis)     |
 | [Azure Devops](https://www.visualstudio.com/team-services/) | [docs](https://docs.microsoft.com/en-us/vsts/build-release/apps/go/go) |      |
 | [Wercker](http://wercker.com/) | [docs](http://devcenter.wercker.com/quickstarts/building/golang.html) |    |   |
+
diff --git a/How-to-ask-for-help.md b/How-to-ask-for-help.md
index 30f92d6..ddd1fb9 100644
--- a/How-to-ask-for-help.md
+++ b/How-to-ask-for-help.md
@@ -1,3 +1,7 @@
+---
+title: How-to-ask-for-help
+---
+
 This page gives some hints on how to successfully ask for help in the various [Go support forums][3].
 
 ## Before you ask your question
@@ -57,4 +61,4 @@
 [0]: https://go.dev/blog/error-handling-and-go
 [1]: https://go.dev/blog/race-detector
 [2]: https://go.dev/play
-[3]: https://github.com/golang/go/wiki/questions
\ No newline at end of file
+[3]: /wiki/questions
diff --git a/HowToAsk.md b/HowToAsk.md
index a391489..2a99108 100644
--- a/HowToAsk.md
+++ b/HowToAsk.md
@@ -1,4 +1,8 @@
-# A quick introduction
+---
+title: HowToAsk
+---
+
+## A quick introduction
 
 Imagine you want to know how to get from "Old street" to "New street". You call a random person to get help and you ask "What is the fastest way I can get from Old street 19 to New street 3?". Would the random person be able to help you?
 
@@ -8,7 +12,7 @@
 
 In person it's easy to ask those questions and can be done in rapid succession, although on the forums this will result in a lot of back-and-forth questions that can be avoided. So, how to properly give the context to the problem?
 
-# How to ask a good question
+## How to ask a good question
 
 People on the forums have limited time available. So, to speed things up, here is a small template for asking a question that will get better answers and answers quicker:
 
@@ -110,3 +114,4 @@
 
 </li><li><a href='http://www.catb.org/esr/faqs/smart-questions.html'>Smart questions</a>
 </li><li><a href='http://www.sscce.org/'>Short, Self Contained, Correct (Compilable), Example</a>
+
diff --git a/IDEsAndTextEditorPlugins.md b/IDEsAndTextEditorPlugins.md
index 2405a68..f4a7e3b 100644
--- a/IDEsAndTextEditorPlugins.md
+++ b/IDEsAndTextEditorPlugins.md
@@ -1,4 +1,7 @@
-# Editors and IDEs for Go
+---
+title: Editors and IDEs for Go
+---
+
 ## Popular
 The [Go Developer Survey](https://go.dev/blog/survey2021-results) showed these as the most popular editors.
   * **[Visual Studio Code](https://code.visualstudio.com/)**: Free & open source IDE by Microsoft. Visual Studio Code supports Go syntax highlighting out of the box. Additional features are provided by the official [vscode-go](https://github.com/golang/vscode-go) plugin.
@@ -60,3 +63,4 @@
 
   * **[Cloud9](https://aws.amazon.com/cloud9/)**: claims full Go support.
   * **[Gitpod](https://gitpod.io)**: GitHub integrated cloud IDE with full Go support.
+
diff --git a/InstallFromSource.md b/InstallFromSource.md
index 08d9c4e..4d7225c 100644
--- a/InstallFromSource.md
+++ b/InstallFromSource.md
@@ -1,4 +1,8 @@
-# Introduction
+---
+title: InstallFromSource
+---
+
+## Introduction
 
 This is a companion to https://go.dev/doc/install/source providing additional instructions for various operating systems.
 
@@ -25,3 +29,4 @@
 On Windows, install ` gcc ` with
 [TDM-GCC](http://tdm-gcc.tdragon.net/). or try [TDM-GCC Sourceforge link](https://sourceforge.net/projects/tdm-gcc/).
 (Make sure you add its ` bin ` subdirectory to your ` PATH `.) Go does not support the Cygwin toolchain.
+
diff --git a/InstallTroubleshooting.md b/InstallTroubleshooting.md
index baf7821..bc58480 100644
--- a/InstallTroubleshooting.md
+++ b/InstallTroubleshooting.md
@@ -1,17 +1,21 @@
-# Introduction
+---
+title: InstallTroubleshooting
+---
+
+## Introduction
 
 There are many times in which you may install Go (either from source or from a binary distribution) and things don't work quite right.  This page is meant to collect some common wisdom about problems that are relatively common or difficult to diagnose and provide tips and solutions.
 
-# Contents  
-  * [Introduction](#introduction)  
+## Contents
+  * [Introduction](#introduction)
   * [Tips](#tips)
     * [Environment](#environment)
     * [GOROOT vs GOPATH](#goroot-vs-gopath)
   * [Troubleshooting](#troubleshooting)
     * [Still need help?](#still-need-help)
 
-# Tips
-## Environment
+## Tips
+### Environment
 
 To start out with, check the following first:
   * GOROOT
@@ -28,7 +32,7 @@
 
 Under linux and darwin, make sure that any of the above variables which are set are actually exported.  When you run the ` env | grep GO ` command, they should be listed.  You can also check your environment with the ` go env ` command.  In bash, this is done with the ` export GOPATH ` (if it's already set) or ` export GOPATH=/path/to/gopath ` command (similarly for the other variables), usually in your .bashrc or .bash\_profile.
 
-## GOROOT vs GOPATH
+### GOROOT vs GOPATH
 Packages under GOROOT store their source files in
 
 ` $GOROOT/src/pkg/import/path/*.go `
@@ -39,34 +43,34 @@
 
 Because of this inconsistency, it is generally not recommended that GOPATH be set to or contain GOROOT; its directories will be searched automatically for imports regardless of the GOPATH setting.
 
-# Troubleshooting
-#### The ` go build ` command doesn't do anything!
+## Troubleshooting
+##### The ` go build ` command doesn't do anything!
 The ` go build ` command will only produce a binary; if you run go build in a package directory, it will build the package normally (and report any compile errors), but it will not install it.  For that, you use ` go install `.  If you think you're building a binary and none is produced, make sure you are in package ` main ` and that you do not have GOBIN set.
 
-#### Why does ` go get ` report ` "Fetching https://runtime/cgo?go-get=1" `?
+##### Why does ` go get ` report ` "Fetching https://runtime/cgo?go-get=1" `?
 If you have a source distribution, make sure that your packages are up-to-date.  Also double check the environment above.
 
-#### When cross compiling, I get ` "runtime/extern.go:135: undefined: theGoos" `
-Read [[WindowsCrossCompiling]] for some helpful scripts.  You can also use the ` --no-clean ` argument when you're building the cross-compile toolchain via ` make.bash `.
+##### When cross compiling, I get ` "runtime/extern.go:135: undefined: theGoos" `
+Read [WindowsCrossCompiling](WindowsCrossCompiling) for some helpful scripts.  You can also use the ` --no-clean ` argument when you're building the cross-compile toolchain via ` make.bash `.
 
-#### Why does ` go get ` work for some packages and report ` permission denied ` in ` $GOROOT ` for some others (with GOPATH set properly)?
+##### Why does ` go get ` work for some packages and report ` permission denied ` in ` $GOROOT ` for some others (with GOPATH set properly)?
 If you at any point installed the package in ` GOROOT ` (either by having no ` GOPATH ` set or by including ` GOROOT ` itself in ` GOPATH `) then there might still be a directory in ` $GOROOT ` (which is always checked first) that is overriding your ` GOPATH `.  To verify, run ` go list -f {{.Dir}} importpath ` and if it reports a directory under ` $GOPATH ` try deleting that first.
 
-## Still need help?
+### Still need help?
 Visit us on IRC or ask on the mailing list.  You will want to provide the output of the following commands, in addition to any errors you are getting:
 
-### Linux/darwin
+#### Linux/darwin
 
 ```
 go version
 go env
-env | grep GO 
+env | grep GO
 ```
 
-### Windows
+#### Windows
 
 ```
 go version
 go env
 set | findstr GO
-```
\ No newline at end of file
+```
diff --git a/InterfaceSlice.md b/InterfaceSlice.md
index 51ad38f..d89456b 100644
--- a/InterfaceSlice.md
+++ b/InterfaceSlice.md
@@ -1,4 +1,8 @@
-# Introduction
+---
+title: InterfaceSlice
+---
+
+## Introduction
 
 Given that you can assign a variable of any type to an ` interface{} `, often people will try code like the following.
 ```go
@@ -12,7 +16,7 @@
 
 The question then, "Why can't I assign any slice to an ` []interface{} `, when I can assign any type to an ` interface{} `?"
 
-## Why?
+### Why?
 
 There are two main reasons for this.
 
@@ -26,7 +30,7 @@
 
 The result is that you cannot quickly assign something of type ` []MyType ` to something of type ` []interface{} `; the data behind them just look different.
 
-## What can I do instead?
+### What can I do instead?
 
 It depends on what you wanted to do in the first place.
 
@@ -39,4 +43,4 @@
 for i, d := range dataSlice {
 	interfaceSlice[i] = d
 }
-```
\ No newline at end of file
+```
diff --git a/InvalidFlag.md b/InvalidFlag.md
index d7c14be..64c2c88 100644
--- a/InvalidFlag.md
+++ b/InvalidFlag.md
@@ -1,4 +1,8 @@
-# `invalid flag in #cgo CFLAGS`
+---
+title: InvalidFlag
+---
+
+    invalid flag in #cgo CFLAGS
 
 This page describes the background for build errors like `invalid flag in #cgo CFLAGS` and what you can do about them.
 
@@ -20,4 +24,4 @@
 
 ## Why not get a complete list of compiler options and safelist all of them?
 
-Because there are hundreds of options, and there is no clear way to get a complete list.  Many compiler and linker options are target dependent, and thus only reported on specific platforms or in specific configurations.  The documentation is known to be incomplete.
\ No newline at end of file
+Because there are hundreds of options, and there is no clear way to get a complete list.  Many compiler and linker options are target dependent, and thus only reported on specific platforms or in specific configurations.  The documentation is known to be incomplete.
diff --git a/Iota.md b/Iota.md
index baf343f..48a93af 100644
--- a/Iota.md
+++ b/Iota.md
@@ -1,4 +1,8 @@
-# Summary
+---
+title: Iota
+---
+
+## Summary
 
 Go's ` iota ` identifier is used in ` const ` declarations to simplify definitions of incrementing numbers. Because it can be used in expressions, it provides a generality beyond that of simple enumerations.
 
@@ -8,7 +12,7 @@
 
 Constant declarations: https://go.dev/ref/spec#Constant_declarations
 
-# Examples
+## Examples
 
 The official spec has two great examples:
 
@@ -36,6 +40,6 @@
 
 ![How iota works](https://cdn-images-1.medium.com/max/2000/1*sfAHT3zk-WjxSDRIDMpdaA.gif)
 
-# Articles
+## Articles
 
-* [Ultimate Visual Guide to Go Enums and Iota](https://blog.learngoprogramming.com/golang-const-type-enums-iota-bc4befd096d3) _2017-10-09_
\ No newline at end of file
+* [Ultimate Visual Guide to Go Enums and Iota](https://blog.learngoprogramming.com/golang-const-type-enums-iota-bc4befd096d3) _2017-10-09_
diff --git a/Learn.md b/Learn.md
index fa74727..61c1622 100644
--- a/Learn.md
+++ b/Learn.md
@@ -1,3 +1,7 @@
+---
+title: Learn
+---
+
 In addition to the resources available [at golang.org](https://go.dev/doc/#learning) there are a range of community-driven initiatives:
 
   * [Boot.dev's "Learn Go"](https://boot.dev/learn/learn-golang) - Code in the browser exercises with answer checking
@@ -50,4 +54,4 @@
   * [LearnTesting](LearnTesting) links to resources about testing in Go.
   * [LearnServerProgramming](LearnServerProgramming) links to resources about server programming in Go.
   * [Golang Online Courses](https://classpert.com/go-programming) - A collection of Go online courses from several providers at Classpert
-  * [Hackr.io Golang Tutorials](https://hackr.io/tutorials/learn-golang) - Best Golang tutorials recommended by the programming community.
\ No newline at end of file
+  * [Hackr.io Golang Tutorials](https://hackr.io/tutorials/learn-golang) - Best Golang tutorials recommended by the programming community.
diff --git a/LearnConcurrency.md b/LearnConcurrency.md
index 814d002..bb133a0 100644
--- a/LearnConcurrency.md
+++ b/LearnConcurrency.md
@@ -1,3 +1,7 @@
+---
+title: LearnConcurrency
+---
+
 This page links to resources for learning about concurrency in Go.  The items are presented in order, from beginner material to advanced topics.
 
 ## Beginner
@@ -27,7 +31,7 @@
 - Read [Go Concurrency Patterns: Timing out, moving on](https://go.dev/blog/go-concurrency-patterns-timing-out-and)
 - Watch [Concurrency is not Parallelism](http://talks.golang.org/2012/waza.slide#1)
 - Read [Go Concurrency Patterns: Pipelines and Cancellation](https://go.dev/blog/pipelines)
-- Read [Rethinking Classical Concurrency Patterns](https://github.com/golang/go/wiki/Go-Community-Slides#rethinking-classical-concurrency-patterns)
+- Read [Rethinking Classical Concurrency Patterns](/wiki/Go-Community-Slides#rethinking-classical-concurrency-patterns)
 - Study [Package sync](https://pkg.go.dev/sync/)
 - Read [Introducing the Go Race Detector](https://go.dev/blog/race-detector)
 - Watch [Go: code that grows with grace](http://talks.golang.org/2012/chat.slide#1)
@@ -44,4 +48,4 @@
 - Watch [The Scheduler Saga](https://www.youtube.com/watch?v=YHRO5WQGh0k)
 - Read [The Scheduler Saga](https://speakerdeck.com/kavya719/the-scheduler-saga)
 - Watch [Understanding Channels](https://www.youtube.com/watch?v=KBZlN0izeiY)
-- Read [Understanding Channels](https://speakerdeck.com/kavya719/understanding-channels)
\ No newline at end of file
+- Read [Understanding Channels](https://speakerdeck.com/kavya719/understanding-channels)
diff --git a/LearnErrorHandling.md b/LearnErrorHandling.md
index d39a81b..e11be76 100644
--- a/LearnErrorHandling.md
+++ b/LearnErrorHandling.md
@@ -1,3 +1,7 @@
+---
+title: LearnErrorHandling
+---
+
 This page links to resources about error handling in Go.
 
 ## Getting Started
@@ -20,4 +24,4 @@
 ## Advanced Topics
 
 - Read [Why is my nil error value not equal to nil?](https://go.dev/doc/faq#nil_error)
-- Read [Defer, Panic, and Recover](https://go.dev/blog/defer-panic-and-recover)
\ No newline at end of file
+- Read [Defer, Panic, and Recover](https://go.dev/blog/defer-panic-and-recover)
diff --git a/LearnServerProgramming.md b/LearnServerProgramming.md
index 8172e0a..97df2fc 100644
--- a/LearnServerProgramming.md
+++ b/LearnServerProgramming.md
@@ -1,3 +1,7 @@
+---
+title: LearnServerProgramming
+---
+
 This page links to resources for learning about server programming in Go - both web services and mobile backends. The items are organized into sections by topic.
 
 ## Getting Started
@@ -121,4 +125,4 @@
 - [Write your first Golang app on BlueMix](https://developer.ibm.com/bluemix/2015/10/28/getting-started-with-golang-on-bluemix/)
 
 <!-- Common Links -->
-  [beego]: https://github.com/beego/beego
\ No newline at end of file
+  [beego]: https://github.com/beego/beego
diff --git a/LearnTesting.md b/LearnTesting.md
index ca6cfec..966b1d8 100644
--- a/LearnTesting.md
+++ b/LearnTesting.md
@@ -1,3 +1,7 @@
+---
+title: LearnTesting
+---
+
 This page links to resources about testing in Go.
 
 - Read [How to Write Go Code](https://go.dev/doc/code), especially [Testing](https://go.dev/doc/code#Testing)
@@ -6,4 +10,4 @@
 - Read [Where is my favorite helper function for testing?](https://go.dev/doc/faq#testing_framework)
 - Watch [Testing Techniques](https://talks.golang.org/2014/testing.slide#1)
 - Read [TableDrivenTests](TableDrivenTests)
-- Read [Using Subtests and Sub-benchmarks](https://go.dev/blog/subtests)
\ No newline at end of file
+- Read [Using Subtests and Sub-benchmarks](https://go.dev/blog/subtests)
diff --git a/Linux.md b/Linux.md
index a60d7ec..cb684b1 100644
--- a/Linux.md
+++ b/Linux.md
@@ -1,4 +1,8 @@
-# Go on Linux
+---
+title: Linux
+---
+
+## Go on Linux
 
 | **Kernel version** | **Architectures**     | **Initial support version** | **Final support version** |
 |:-------------------|:----------------------|:----------------------------|:--------------------------|
@@ -10,4 +14,4 @@
 | 3.1 or above       | arm                   | Go 1.1 _*_                  |                           |
 | 2.6.23 or above    | amd64, 386            | Go 1 _*_                    |                           |
 
-_*_ Go 1.5 or above is recommended.
\ No newline at end of file
+_*_ Go 1.5 or above is recommended.
diff --git a/LinuxKernelSignalVectorBug.md b/LinuxKernelSignalVectorBug.md
index 9a2e7f5..d7fb7bf 100644
--- a/LinuxKernelSignalVectorBug.md
+++ b/LinuxKernelSignalVectorBug.md
@@ -1,4 +1,8 @@
-# Introduction
+---
+title: LinuxKernelSignalVectorBug
+---
+
+## Introduction
 
 If you reached this page because of a message like this printed by a Go program:
 
@@ -15,7 +19,7 @@
 
 Otherwise, this page will explain what the kernel bug is, and includes a C program that you can use to check whether your kernel has the bug.
 
-# Bug description
+## Bug description
 
 A bug was introduced in Linux kernel version 5.2: if a signal is delivered to a thread, and delivering the signal requires faulting in pages of the thread signal stack, then AVX YMM registers may be corrupted upon returning from the signal to the program.
 If the program was executing some function that uses the YMM registers, that function can behave unpredictably.
@@ -40,7 +44,7 @@
 
 In other words, even if your kernel is in the vulnerable range, there is a good chance that it is not vulnerable to the bug.
 
-# Bug test
+## Bug test
 
 To test whether your kernel has the bug, you can run the following C program (click on "Details" to see the program).
 On a buggy kernel, it will fail almost immediately.
@@ -64,16 +68,16 @@
 //
 // 3. Context switches. Having a single task isn't sufficient.
 
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <sys/mman.h>
-#include <sys/prctl.h>
-#include <sys/wait.h>
+##include <errno.h>
+##include <signal.h>
+##include <stdio.h>
+##include <stdlib.h>
+##include <string.h>
+##include <unistd.h>
+##include <pthread.h>
+##include <sys/mman.h>
+##include <sys/prctl.h>
+##include <sys/wait.h>
 
 static int sigs;
 
@@ -229,7 +233,7 @@
 
 </details>
 
-# What to do
+## What to do
 
 If your kernel version is in the range that may contain the bug, run the C program above to see if it fails.
 If it fails, your kernel is buggy.
@@ -254,10 +258,10 @@
 However, this just makes your program less likely to suffer memory corruption (because it reduces the number of signals that your program will receive).
 The bug is still present, and memory corruption may still occur.
 
-# Questions?
+## Questions?
 
 Ask on the mailing list golang-nuts@googlegroups.com, or on any Go forum as described at [Questions](https://go.dev/wiki/Questions).
 
-# Details
+## Details
 
-To see more details on how the bug affects Go programs and how it was detected and understood, see [#35777](https://go.dev/issue/35777) and [#35326](https://go.dev/issue/35326).
\ No newline at end of file
+To see more details on how the bug affects Go programs and how it was detected and understood, see [#35777](https://go.dev/issue/35777) and [#35326](https://go.dev/issue/35326).
diff --git a/Livestreams.md b/Livestreams.md
index 1c73093..2782c3a 100644
--- a/Livestreams.md
+++ b/Livestreams.md
@@ -1,3 +1,7 @@
+---
+title: Livestreams
+---
+
 This table attempts to collect all known regular livestreams centered around Go. Please keep each table sorted alphabetically by name.
 
 Note that conferences and podcasts have their own wiki pages already, and should not be included here. Similarly, meetups are already collected [here](https://www.meetup.com/topics/go/).
@@ -27,3 +31,4 @@
 |--------------------|---------------------------------|----------------------|------|
 | Go 夜读 - TalkGo | Weekly Go Online Meetup | Weekly | [YouTube](https://www.youtube.com/c/talkgo_night), [Bilibili](https://space.bilibili.com/326749661), [GitHub](https://github.com/talkgo/night) |
 
+
diff --git a/LockOSThread.md b/LockOSThread.md
index 264b5a5..dd2f132 100644
--- a/LockOSThread.md
+++ b/LockOSThread.md
@@ -1,8 +1,12 @@
-# Introduction
+---
+title: LockOSThread
+---
+
+## Introduction
 
 Some libraries—especially graphical frameworks and libraries like Cocoa, OpenGL, and libSDL—use thread-local state and can require functions to be called only from a specific OS thread, typically the 'main' thread. Go provides the `runtime.LockOSThread` function for this, but it's notoriously difficult to use correctly.
 
-# Solutions
+## Solutions
 
 Russ Cox presented a good solution for this problem in this [thread](https://groups.google.com/d/msg/golang-nuts/IiWZ2hUuLDA/SNKYYZBelsYJ).
 
@@ -46,4 +50,4 @@
 		// whatever must run in main thread
 	})
 }
-```
\ No newline at end of file
+```
diff --git a/LoopvarExperiment.md b/LoopvarExperiment.md
index 738332a..4d9bf35 100644
--- a/LoopvarExperiment.md
+++ b/LoopvarExperiment.md
@@ -1,3 +1,7 @@
+---
+title: LoopvarExperiment
+---
+
 For Go 1.22, the Go team is considering changing the semantics of for loop variables to prevent unintended sharing in per-iteration closures and goroutines. Go 1.21 contains a preliminary implementation of the change, enabled by setting `GOEXPERIMENT=loopvar` when building your program. We invite anyone who wants to help us understand the effects of the change to try using `GOEXPERIMENT=loopvar` and let us know about any problems or successes encountered.
 
 This page answers frequently asked questions about the change.
@@ -226,3 +230,4 @@
 
 
  
+
diff --git a/MacOS12BSDThreadRegisterIssue.md b/MacOS12BSDThreadRegisterIssue.md
index 1df70da..8323af7 100644
--- a/MacOS12BSDThreadRegisterIssue.md
+++ b/MacOS12BSDThreadRegisterIssue.md
@@ -1,4 +1,8 @@
-# Introduction
+---
+title: MacOS12BSDThreadRegisterIssue
+---
+
+## Introduction
 
 If you reached this page because you saw an error message like the following printed by a Go program running on macOS 12 Monterey:
 ```
@@ -16,11 +20,11 @@
 ```
 then you are running a program built with an old version of Go (Go 1.10 or before). You will need to update your program or rebuild it with a newer version of Go.
 
-# Details
+## Details
 
 Programs built with Go 1.10 or before use a way of issuing system calls that is no longer supported by the kernel on macOS 12 Monterey. In [Go 1.11](https://go.dev/doc/go1.11#runtime) and later, system calls are issued via `libSystem.dylib`, which is supported by the OS.
 
-# What to do
+## What to do
 
 If this is a program you downloaded or installed (for example, using Homebrew), you will need to download or install a newer version of it that is built with a newer version of Go.
 
@@ -28,4 +32,4 @@
 
 You might want to check your $PATH and manually clean up `$GOPATH/bin` and other old relevant Go binaries you've installed.
 
-If you're trying to compile Go, `go tool dist clean` might help.
\ No newline at end of file
+If you're trying to compile Go, `go tool dist clean` might help.
diff --git a/MethodSets.md b/MethodSets.md
index 9d054eb..4a8e7cd 100644
--- a/MethodSets.md
+++ b/MethodSets.md
@@ -1,3 +1,7 @@
+---
+title: MethodSets
+---
+
 Table of Contents
 =================
 
@@ -9,11 +13,11 @@
   + [Map Elements](#map-elements)
   + [Interfaces](#interfaces)
 
-# Introduction
+## Introduction
 
 Method sets of a particular type or value are of particular importance in Go, where the method set determines what interfaces a value implements.
 
-# The Spec
+## The Spec
 
 There are two important clauses in the [Go Language Specification](https://go.dev/ref/spec) about method sets.  They are as follows:
 
@@ -23,10 +27,10 @@
 [Calls](https://go.dev/ref/spec#Calls):
 A method call ` x.m() ` is valid if the method set of (the type of) ` x ` contains ` m ` and the argument list can be assigned to the parameter list of ` m `. If ` x ` is addressable and ` &x `'s method set contains ` m `, ` x.m() ` is shorthand for ` (&x).m() `.
 
-# Usage
+## Usage
 There are many different cases during which a method set crops up in day-to-day programming.  Some of the main ones are when calling methods on variables, calling methods on slice elements, calling methods on map elements, and storing values in interfaces.
 
-## Variables
+### Variables
 In general, when you have a variable of a type, you can pretty much call whatever you want on it.  When you combine the two rules above together, the following is valid:
 
 ```go
@@ -70,10 +74,10 @@
 
 To make it easier to remember these rules, it may be helpful to simply consider the pointer- and value-receiver methods separately from the method set.  It is legal to call a pointer-valued method on anything that is already a pointer or whose address can be taken (as is the case in the above example).  It is legal to call a value method on anything which is a value or whose value can be dereferenced (as is the case with any pointer; this case is specified explicitly in the spec).
 
-## Slice Elements
+### Slice Elements
 Slice elements are almost identical to variables.  Because they are addressable, both pointer- and value-receiver methods can be called on both pointer- and value-element slices.
 
-## Map Elements
+### Map Elements
 Map elements are not addressable.  Therefore, the following is an _illegal_ operation:
 
 ```go
@@ -92,7 +96,7 @@
 
 Thus, both pointer- and value-receiver methods can be called on pointer-element maps, but only value-receiver methods can be called on value-element maps.  This is the reason that maps with struct elements are almost always made with pointer elements.
 
-## Interfaces
+### Interfaces
 The concrete value stored in an interface is not addressable, in the same way that a map element is not addressable.  Therefore, when you call a method on an interface, it must either have an identical receiver type or it must be directly discernible from the concrete type: pointer- and value-receiver methods can be called with pointers and values respectively, as you would expect.  Value-receiver methods can be called with pointer values because they can be dereferenced first.  Pointer-receiver methods cannot be called with values, however, because the value stored inside an interface has no address.  When assigning a value to an interface, the compiler ensures that all possible interface methods can actually be called on that value, and thus trying to make an improper assignment will fail on compilation.  To extend the earlier example, the following describes what is valid and what is not:
 
 ```go
@@ -134,4 +138,4 @@
 		fmt.Printf(" - plst is long enough")
 	}
 }
-```
\ No newline at end of file
+```
diff --git a/MinimumRequirements.md b/MinimumRequirements.md
index f8be80e..2527792 100644
--- a/MinimumRequirements.md
+++ b/MinimumRequirements.md
@@ -1,4 +1,6 @@
-# Minimum Requirements
+---
+title: Minimum Requirements
+---
 
 ## Operating Systems
 
@@ -144,4 +146,4 @@
 
 ## cgo
 
-For programs using cgo, gcc 4.6 or newer is required.
\ No newline at end of file
+For programs using cgo, gcc 4.6 or newer is required.
diff --git a/MinorReleases.md b/MinorReleases.md
index de60254..d32307a 100644
--- a/MinorReleases.md
+++ b/MinorReleases.md
@@ -1,3 +1,7 @@
+---
+title: MinorReleases
+---
+
 Our default decision should always be to not backport, but fixes for **security issues**, **serious problems with no workaround**, and **documentation fixes** are backported to the most recent two release branches, if applicable to that branch. (for example, the most current two release branches are `release-branch.go1.16` and `release-branch.go1.17`, from which new `Go 1.16.x` and `Go 1.17.x` releases are cut) Fixes for experimental ports are generally not backported.
 
 A “serious” problem is one that prevents a program from working at all.
@@ -45,7 +49,7 @@
 
 Gerrit is configured to only allow release managers to submit to release branches, but the code review process is otherwise the usual.
 
-At this time, it's not possible to make a cherry-pick CL by sending a [[Pull Request|GerritBot]]. Only Gerrit is supported. See [golang.org/issue/30037](https://go.dev/issue/30037).
+At this time, it's not possible to make a cherry-pick CL by sending a [pull request](GerritBot). Only Gerrit is supported. See [golang.org/issue/30037](https://go.dev/issue/30037).
 
 ### Cherry-pick CLs for vendored golang.org/x packages
 
@@ -67,3 +71,4 @@
     The commit message should include "Fixes #nnn" to close the backport issue.
 
 (As of Go 1.16, the golang.org/x branch name is always `internal-branch.go1.x-vendor`. In Go 1.15, the name of the golang.org/x branch is `release-branch.go1.x` or `release-branch.go1.x-bundle` in [special cases](https://go.dev/cl/305489).)
+
diff --git a/Mobile.md b/Mobile.md
index f5f74fe..b2fe629 100644
--- a/Mobile.md
+++ b/Mobile.md
@@ -1,3 +1,7 @@
+---
+title: Mobile
+---
+
 **The Go mobile subrepository adds support for mobile platforms (Android and iOS) and provides tools to build mobile applications.**
 
 There are two strategies you can follow to include Go into your mobile stack:
@@ -229,3 +233,4 @@
 As of Go 1.5, only darwin/amd64 works on the iOS simulator. To use the simulator, you need to configure Xcode to only try to run 64-bit binaries.
 
 Xcode matches the bit width of the ARM binaries when running on the X86 simulator. That is, if you configure Xcode to build both 32-bit and 64-bit ARM binaries (the default), it will attempt to run 32-bit X86 binaries on the simulator, which will not work with Go today. Modify the Xcode build settings to only build 64-bit ARM binaries, and the simulator will run the amd64 binary.
+
diff --git a/Modules.md b/Modules.md
index c705b9f..bd76665 100644
--- a/Modules.md
+++ b/Modules.md
@@ -1,4 +1,6 @@
-# Go Modules
+---
+title: Go Modules
+---
 
 This wiki page serves as a usage and troubleshooting guide.
 * For tutorial blog posts, see [Using Go Modules](https://go.dev/blog/using-go-modules).
@@ -6,7 +8,7 @@
 
 Go has included support for versioned modules as proposed [here](https://go.dev/design/24301-versioned-go) since 1.11. The initial prototype  `vgo` was [announced](https://research.swtch.com/vgo) in February 2018. In July 2018, versioned modules [landed](https://groups.google.com/d/msg/golang-dev/a5PqQuBljF4/61QK4JdtBgAJ) in the main Go repository.
 
-Since [Go 1.14](https://go.dev/doc/go1.14), module support is considered ready for production use, and all users are encouraged to migrate to modules from other dependency management systems. If you are unable to migrate due to a problem in the Go toolchain, please ensure that the problem has an [open issue](#github-issues) filed. (If the issue is not on the Go1.16 milestone, please comment on why it prevents you from migrating so it can be prioritized appropriately). You can also provide an [experience report](https://github.com/golang/go/wiki/ExperienceReports) for more detailed feedback.
+Since [Go 1.14](https://go.dev/doc/go1.14), module support is considered ready for production use, and all users are encouraged to migrate to modules from other dependency management systems. If you are unable to migrate due to a problem in the Go toolchain, please ensure that the problem has an [open issue](#github-issues) filed. (If the issue is not on the Go1.16 milestone, please comment on why it prevents you from migrating so it can be prioritized appropriately). You can also provide an [experience report](/wiki/ExperienceReports) for more detailed feedback.
 
 ## Recent Changes
 
@@ -54,73 +56,73 @@
 
 The "Quick Start" and "New Concepts" sections are particularly important for someone who is starting to work with modules. The "How to..." sections cover more details on mechanics. The largest quantity of content on this page is in the FAQs answering more specific questions; it can be worthwhile to at least skim the FAQ one-liners listed here.
  
-* [Quick Start](https://github.com/golang/go/wiki/Modules#quick-start)
-   * [Example](https://github.com/golang/go/wiki/Modules#example)
-   * [Daily Workflow](https://github.com/golang/go/wiki/Modules#daily-workflow)
-* [New Concepts](https://github.com/golang/go/wiki/Modules#new-concepts)
-   * [Modules](https://github.com/golang/go/wiki/Modules#modules)
-   * [go.mod](https://github.com/golang/go/wiki/Modules#gomod)
-   * [Version Selection](https://github.com/golang/go/wiki/Modules#version-selection)
-   * [Semantic Import Versioning](https://github.com/golang/go/wiki/Modules#semantic-import-versioning)
-* [How to Use Modules](https://github.com/golang/go/wiki/Modules#how-to-use-modules)
-   * [How to Install and Activate Module Support](https://github.com/golang/go/wiki/Modules#how-to-install-and-activate-module-support)
-   * [How to Define a Module](https://github.com/golang/go/wiki/Modules#how-to-define-a-module)
-   * [How to Upgrade and Downgrade Dependencies](https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies)
-   * [How to Prepare for a Release (All Versions)](https://github.com/golang/go/wiki/Modules#how-to-prepare-for-a-release)
-   * [How to Prepare for a Release (v2 or Higher)](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher)
-   * [Publishing a Release](https://github.com/golang/go/wiki/Modules#publishing-a-release)
-* [Migrating to Modules](https://github.com/golang/go/wiki/Modules#migrating-to-modules)
-* [Additional Resources](https://github.com/golang/go/wiki/Modules#additional-resources)
-* [Changes Since the Initial Vgo Proposal](https://github.com/golang/go/wiki/Modules#changes-since-the-initial-vgo-proposal)
-* [GitHub Issues](https://github.com/golang/go/wiki/Modules#github-issues)
-* [FAQs](https://github.com/golang/go/wiki/Modules#faqs)
-  * [How are versions marked as incompatible?](https://github.com/golang/go/wiki/Modules#how-are-versions-marked-as-incompatible)
-  * [When do I get old behavior vs. new module-based behavior?](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior)
-  * [Why does installing a tool via 'go get' fail with error 'cannot find main module'?](https://github.com/golang/go/wiki/Modules#why-does-installing-a-tool-via-go-get-fail-with-error-cannot-find-main-module)
-  * [How can I track tool dependencies for a module?](https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module)
-  * [What is the status of module support in IDEs, editors and standard tools like goimports, gorename, etc.?](https://github.com/golang/go/wiki/Modules#what-is-the-status-of-module-support-in-ides-editors-and-standard-tools-like-goimports-gorename-etc)
-* [FAQs — Additional Control](https://github.com/golang/go/wiki/Modules#faqs--additional-control)
-  * [What community tooling exists for working with modules?](https://github.com/golang/go/wiki/Modules#what-community-tooling-exists-for-working-with-modules)
-  * [When should I use the 'replace' directive?](https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive)
-  * [Can I work entirely outside of VCS on my local filesystem?](https://github.com/golang/go/wiki/Modules#can-i-work-entirely-outside-of-vcs-on-my-local-filesystem)
-  * [How do I use vendoring with modules? Is vendoring going away?](https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away)
-  * [Are there "always on" module repositories and enterprise proxies?](https://github.com/golang/go/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies)
-  * [Can I control when go.mod gets updated and when the go tools use the network to satisfy dependencies?](https://github.com/golang/go/wiki/Modules#can-i-control-when-gomod-gets-updated-and-when-the-go-tools-use-the-network-to-satisfy-dependencies)
-  * [How do I use modules with CI systems such as Travis or CircleCI?](https://github.com/golang/go/wiki/Modules#how-do-i-use-modules-with-ci-systems-such-as-travis-or-circleci)
-  * [How do I download modules needed to build specific packages or tests?](https://github.com/golang/go/wiki/Modules#how-do-i-download-modules-needed-to-build-specific-packages-or-tests)
-* [FAQs — go.mod and go.sum](https://github.com/golang/go/wiki/Modules#faqs--gomod-and-gosum)
-  * [Why does 'go mod tidy' record indirect and test dependencies in my 'go.mod'?](https://github.com/golang/go/wiki/Modules#why-does-go-mod-tidy-record-indirect-and-test-dependencies-in-my-gomod)
-  * [Is 'go.sum' a lock file? Why does 'go.sum' include information for module versions I am no longer using?](https://github.com/golang/go/wiki/Modules#is-gosum-a-lock-file-why-does-gosum-include-information-for-module-versions-i-am-no-longer-using)
-  * [Should I still add a 'go.mod' file if I do not have any dependencies?](https://github.com/golang/go/wiki/Modules#should-i-still-add-a-gomod-file-if-i-do-not-have-any-dependencies)
-  * [Should I commit my 'go.sum' file as well as my 'go.mod' file?](https://github.com/golang/go/wiki/Modules#should-i-commit-my-gosum-file-as-well-as-my-gomod-file)
-* [FAQs — Semantic Import Versioning](https://github.com/golang/go/wiki/Modules#faqs--semantic-import-versioning)
-  * [Why must major version numbers appear in import paths?](https://github.com/golang/go/wiki/Modules#why-must-major-version-numbers-appear-in-import-paths)
-  * [Why are major versions v0, v1 omitted from import paths?](https://github.com/golang/go/wiki/Modules#why-are-major-versions-v0-v1-omitted-from-import-paths)
-  * [What are some implications of tagging my project with major version v0, v1, or making breaking changes with v2+?](https://github.com/golang/go/wiki/Modules#what-are-some-implications-of-tagging-my-project-with-major-version-v0-v1-or-making-breaking-changes-with-v2)
-  * [Can a module consume a package that has not opted in to modules?](https://github.com/golang/go/wiki/Modules#can-a-module-consume-a-package-that-has-not-opted-in-to-modules)
-  * [Can a module consume a v2+ package that has not opted into modules? What does '+incompatible' mean?](https://github.com/golang/go/wiki/Modules#can-a-module-consume-a-v2-package-that-has-not-opted-into-modules-what-does-incompatible-mean)
-  * [How are v2+ modules treated in a build if modules support is not enabled? How does "minimal module compatibility" work in 1.9.7+, 1.10.3+, and 1.11?](https://github.com/golang/go/wiki/Modules#how-are-v2-modules-treated-in-a-build-if-modules-support-is-not-enabled-how-does-minimal-module-compatibility-work-in-197-1103-and-111)
-  * [What happens if I create a go.mod but do not apply semver tags to my repository?](https://github.com/golang/go/wiki/Modules#what-happens-if-i-create-a-gomod-but-do-not-apply-semver-tags-to-my-repository)
-  * [Can a module depend on a different version of itself?](https://github.com/golang/go/wiki/Modules#can-a-module-depend-on-a-different-version-of-itself)
-* [FAQs — Multi-Module Repositories](https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories)
-  * [What are multi-module repositories?](https://github.com/golang/go/wiki/Modules#what-are-multi-module-repositories)
-  * [Should I have multiple modules in a single repository?](https://github.com/golang/go/wiki/Modules#should-i-have-multiple-modules-in-a-single-repository)
-  * [Is it possible to add a module to a multi-module repository?](https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository)
-  * [Is it possible to remove a module from a multi-module repository?](https://github.com/golang/go/wiki/Modules#is-it-possible-to-remove-a-module-from-a-multi-module-repository)
-  * [Can a module depend on an internal/ in another?](https://github.com/golang/go/wiki/Modules#can-a-module-depend-on-an-internal-in-another)
-  * [Can an additional go.mod exclude unnecessary content? Do modules have the equivalent of a .gitignore file?](https://github.com/golang/go/wiki/Modules#can-an-additional-gomod-exclude-unnecessary-content-do-modules-have-the-equivalent-of-a-gitignore-file)
-* [FAQs — Minimal Version Selection](https://github.com/golang/go/wiki/Modules#faqs--minimal-version-selection)
-  * [Won't minimal version selection keep developers from getting important updates?](https://github.com/golang/go/wiki/Modules#wont-minimal-version-selection-keep-developers-from-getting-important-updates)
-* [FAQs — Possible Problems](https://github.com/golang/go/wiki/Modules#faqs--possible-problems)
-  * [What are some general things I can spot check if I am seeing a problem?](https://github.com/golang/go/wiki/Modules#what-are-some-general-things-i-can-spot-check-if-i-am-seeing-a-problem)
-  * [What can I check if I am not seeing the expected version of a dependency?](https://github.com/golang/go/wiki/Modules#what-can-i-check-if-i-am-not-seeing-the-expected-version-of-a-dependency)
-  * [Why am I getting an error 'cannot find module providing package foo'?](https://github.com/golang/go/wiki/Modules#why-am-i-getting-an-error-cannot-find-module-providing-package-foo)
-  * [Why does 'go mod init' give the error 'cannot determine module path for source directory'?](https://github.com/golang/go/wiki/Modules#why-does-go-mod-init-give-the-error-cannot-determine-module-path-for-source-directory)
-  * [I have a problem with a complex dependency that has not opted in to modules. Can I use information from its current dependency manager?](https://github.com/golang/go/wiki/Modules#i-have-a-problem-with-a-complex-dependency-that-has-not-opted-in-to-modules-can-i-use-information-from-its-current-dependency-manager)
-  * [How can I resolve "parsing go.mod: unexpected module path" and "error loading module requirements" errors caused by a mismatch between import paths vs. declared module identity?](https://github.com/golang/go/wiki/Modules#how-can-i-resolve-parsing-gomod-unexpected-module-path-and-error-loading-module-requirements-errors-caused-by-a-mismatch-between-import-paths-vs-declared-module-identity)
-  * [Why does 'go build' require gcc, and why are prebuilt packages such as net/http not used?](https://github.com/golang/go/wiki/Modules#why-does-go-build-require-gcc-and-why-are-prebuilt-packages-such-as-nethttp-not-used)
-  * [Do modules work with relative imports like `import "./subdir"`?](https://github.com/golang/go/wiki/Modules#do-modules-work-with-relative-imports-like-import-subdir)
-  * [Some needed files may not be present in populated vendor directory](https://github.com/golang/go/wiki/Modules#some-needed-files-may-not-be-present-in-populated-vendor-directory)
+* [Quick Start](/wiki/Modules#quick-start)
+   * [Example](/wiki/Modules#example)
+   * [Daily Workflow](/wiki/Modules#daily-workflow)
+* [New Concepts](/wiki/Modules#new-concepts)
+   * [Modules](/wiki/Modules#modules)
+   * [go.mod](/wiki/Modules#gomod)
+   * [Version Selection](/wiki/Modules#version-selection)
+   * [Semantic Import Versioning](/wiki/Modules#semantic-import-versioning)
+* [How to Use Modules](/wiki/Modules#how-to-use-modules)
+   * [How to Install and Activate Module Support](/wiki/Modules#how-to-install-and-activate-module-support)
+   * [How to Define a Module](/wiki/Modules#how-to-define-a-module)
+   * [How to Upgrade and Downgrade Dependencies](/wiki/Modules#how-to-upgrade-and-downgrade-dependencies)
+   * [How to Prepare for a Release (All Versions)](/wiki/Modules#how-to-prepare-for-a-release)
+   * [How to Prepare for a Release (v2 or Higher)](/wiki/Modules#releasing-modules-v2-or-higher)
+   * [Publishing a Release](/wiki/Modules#publishing-a-release)
+* [Migrating to Modules](/wiki/Modules#migrating-to-modules)
+* [Additional Resources](/wiki/Modules#additional-resources)
+* [Changes Since the Initial Vgo Proposal](/wiki/Modules#changes-since-the-initial-vgo-proposal)
+* [GitHub Issues](/wiki/Modules#github-issues)
+* [FAQs](/wiki/Modules#faqs)
+  * [How are versions marked as incompatible?](/wiki/Modules#how-are-versions-marked-as-incompatible)
+  * [When do I get old behavior vs. new module-based behavior?](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior)
+  * [Why does installing a tool via 'go get' fail with error 'cannot find main module'?](/wiki/Modules#why-does-installing-a-tool-via-go-get-fail-with-error-cannot-find-main-module)
+  * [How can I track tool dependencies for a module?](/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module)
+  * [What is the status of module support in IDEs, editors and standard tools like goimports, gorename, etc.?](/wiki/Modules#what-is-the-status-of-module-support-in-ides-editors-and-standard-tools-like-goimports-gorename-etc)
+* [FAQs — Additional Control](/wiki/Modules#faqs--additional-control)
+  * [What community tooling exists for working with modules?](/wiki/Modules#what-community-tooling-exists-for-working-with-modules)
+  * [When should I use the 'replace' directive?](/wiki/Modules#when-should-i-use-the-replace-directive)
+  * [Can I work entirely outside of VCS on my local filesystem?](/wiki/Modules#can-i-work-entirely-outside-of-vcs-on-my-local-filesystem)
+  * [How do I use vendoring with modules? Is vendoring going away?](/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away)
+  * [Are there "always on" module repositories and enterprise proxies?](/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies)
+  * [Can I control when go.mod gets updated and when the go tools use the network to satisfy dependencies?](/wiki/Modules#can-i-control-when-gomod-gets-updated-and-when-the-go-tools-use-the-network-to-satisfy-dependencies)
+  * [How do I use modules with CI systems such as Travis or CircleCI?](/wiki/Modules#how-do-i-use-modules-with-ci-systems-such-as-travis-or-circleci)
+  * [How do I download modules needed to build specific packages or tests?](/wiki/Modules#how-do-i-download-modules-needed-to-build-specific-packages-or-tests)
+* [FAQs — go.mod and go.sum](/wiki/Modules#faqs--gomod-and-gosum)
+  * [Why does 'go mod tidy' record indirect and test dependencies in my 'go.mod'?](/wiki/Modules#why-does-go-mod-tidy-record-indirect-and-test-dependencies-in-my-gomod)
+  * [Is 'go.sum' a lock file? Why does 'go.sum' include information for module versions I am no longer using?](/wiki/Modules#is-gosum-a-lock-file-why-does-gosum-include-information-for-module-versions-i-am-no-longer-using)
+  * [Should I still add a 'go.mod' file if I do not have any dependencies?](/wiki/Modules#should-i-still-add-a-gomod-file-if-i-do-not-have-any-dependencies)
+  * [Should I commit my 'go.sum' file as well as my 'go.mod' file?](/wiki/Modules#should-i-commit-my-gosum-file-as-well-as-my-gomod-file)
+* [FAQs — Semantic Import Versioning](/wiki/Modules#faqs--semantic-import-versioning)
+  * [Why must major version numbers appear in import paths?](/wiki/Modules#why-must-major-version-numbers-appear-in-import-paths)
+  * [Why are major versions v0, v1 omitted from import paths?](/wiki/Modules#why-are-major-versions-v0-v1-omitted-from-import-paths)
+  * [What are some implications of tagging my project with major version v0, v1, or making breaking changes with v2+?](/wiki/Modules#what-are-some-implications-of-tagging-my-project-with-major-version-v0-v1-or-making-breaking-changes-with-v2)
+  * [Can a module consume a package that has not opted in to modules?](/wiki/Modules#can-a-module-consume-a-package-that-has-not-opted-in-to-modules)
+  * [Can a module consume a v2+ package that has not opted into modules? What does '+incompatible' mean?](/wiki/Modules#can-a-module-consume-a-v2-package-that-has-not-opted-into-modules-what-does-incompatible-mean)
+  * [How are v2+ modules treated in a build if modules support is not enabled? How does "minimal module compatibility" work in 1.9.7+, 1.10.3+, and 1.11?](/wiki/Modules#how-are-v2-modules-treated-in-a-build-if-modules-support-is-not-enabled-how-does-minimal-module-compatibility-work-in-197-1103-and-111)
+  * [What happens if I create a go.mod but do not apply semver tags to my repository?](/wiki/Modules#what-happens-if-i-create-a-gomod-but-do-not-apply-semver-tags-to-my-repository)
+  * [Can a module depend on a different version of itself?](/wiki/Modules#can-a-module-depend-on-a-different-version-of-itself)
+* [FAQs — Multi-Module Repositories](/wiki/Modules#faqs--multi-module-repositories)
+  * [What are multi-module repositories?](/wiki/Modules#what-are-multi-module-repositories)
+  * [Should I have multiple modules in a single repository?](/wiki/Modules#should-i-have-multiple-modules-in-a-single-repository)
+  * [Is it possible to add a module to a multi-module repository?](/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository)
+  * [Is it possible to remove a module from a multi-module repository?](/wiki/Modules#is-it-possible-to-remove-a-module-from-a-multi-module-repository)
+  * [Can a module depend on an internal/ in another?](/wiki/Modules#can-a-module-depend-on-an-internal-in-another)
+  * [Can an additional go.mod exclude unnecessary content? Do modules have the equivalent of a .gitignore file?](/wiki/Modules#can-an-additional-gomod-exclude-unnecessary-content-do-modules-have-the-equivalent-of-a-gitignore-file)
+* [FAQs — Minimal Version Selection](/wiki/Modules#faqs--minimal-version-selection)
+  * [Won't minimal version selection keep developers from getting important updates?](/wiki/Modules#wont-minimal-version-selection-keep-developers-from-getting-important-updates)
+* [FAQs — Possible Problems](/wiki/Modules#faqs--possible-problems)
+  * [What are some general things I can spot check if I am seeing a problem?](/wiki/Modules#what-are-some-general-things-i-can-spot-check-if-i-am-seeing-a-problem)
+  * [What can I check if I am not seeing the expected version of a dependency?](/wiki/Modules#what-can-i-check-if-i-am-not-seeing-the-expected-version-of-a-dependency)
+  * [Why am I getting an error 'cannot find module providing package foo'?](/wiki/Modules#why-am-i-getting-an-error-cannot-find-module-providing-package-foo)
+  * [Why does 'go mod init' give the error 'cannot determine module path for source directory'?](/wiki/Modules#why-does-go-mod-init-give-the-error-cannot-determine-module-path-for-source-directory)
+  * [I have a problem with a complex dependency that has not opted in to modules. Can I use information from its current dependency manager?](/wiki/Modules#i-have-a-problem-with-a-complex-dependency-that-has-not-opted-in-to-modules-can-i-use-information-from-its-current-dependency-manager)
+  * [How can I resolve "parsing go.mod: unexpected module path" and "error loading module requirements" errors caused by a mismatch between import paths vs. declared module identity?](/wiki/Modules#how-can-i-resolve-parsing-gomod-unexpected-module-path-and-error-loading-module-requirements-errors-caused-by-a-mismatch-between-import-paths-vs-declared-module-identity)
+  * [Why does 'go build' require gcc, and why are prebuilt packages such as net/http not used?](/wiki/Modules#why-does-go-build-require-gcc-and-why-are-prebuilt-packages-such-as-nethttp-not-used)
+  * [Do modules work with relative imports like `import "./subdir"`?](/wiki/Modules#do-modules-work-with-relative-imports-like-import-subdir)
+  * [Some needed files may not be present in populated vendor directory](/wiki/Modules#some-needed-files-may-not-be-present-in-populated-vendor-directory)
 
 ## Quick Start
 
@@ -191,15 +193,15 @@
 
 A brief tour of other common functionality you might use:
 
-* `go list -m all` — View final versions that will be used in a build for all direct and indirect dependencies ([details](https://github.com/golang/go/wiki/Modules#version-selection))
-* `go list -u -m all` — View available minor and patch upgrades for all direct and indirect dependencies ([details](https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies))
-* `go get -u ./...` or `go get -u=patch ./...` (from module root directory) — Update all direct and indirect dependencies to latest minor or patch upgrades (pre-releases are ignored) ([details](https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies))
-* `go build ./...` or `go test ./...` (from module root directory) — Build or test all packages in the module ([details](https://github.com/golang/go/wiki/Modules#how-to-define-a-module))
-* `go mod tidy` — Prune any no-longer-needed dependencies from `go.mod` and add any dependencies needed for other combinations of OS, architecture, and build tags ([details](https://github.com/golang/go/wiki/Modules#how-to-prepare-for-a-release))
-* `replace` directive or `gohack` — Use a fork, local copy or exact version of a dependency ([details](https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive))
-* `go mod vendor` — Optional step to create a `vendor` directory ([details](https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away))
+* `go list -m all` — View final versions that will be used in a build for all direct and indirect dependencies ([details](/wiki/Modules#version-selection))
+* `go list -u -m all` — View available minor and patch upgrades for all direct and indirect dependencies ([details](/wiki/Modules#how-to-upgrade-and-downgrade-dependencies))
+* `go get -u ./...` or `go get -u=patch ./...` (from module root directory) — Update all direct and indirect dependencies to latest minor or patch upgrades (pre-releases are ignored) ([details](/wiki/Modules#how-to-upgrade-and-downgrade-dependencies))
+* `go build ./...` or `go test ./...` (from module root directory) — Build or test all packages in the module ([details](/wiki/Modules#how-to-define-a-module))
+* `go mod tidy` — Prune any no-longer-needed dependencies from `go.mod` and add any dependencies needed for other combinations of OS, architecture, and build tags ([details](/wiki/Modules#how-to-prepare-for-a-release))
+* `replace` directive or `gohack` — Use a fork, local copy or exact version of a dependency ([details](/wiki/Modules#when-should-i-use-the-replace-directive))
+* `go mod vendor` — Optional step to create a `vendor` directory ([details](/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away))
 
-After reading the next four sections on "New Concepts", you will have enough information to get started with modules for most projects. It is also useful to review the [Table of Contents](https://github.com/golang/go/wiki/Modules#table-of-contents) above (including the FAQ one-liners there) to familiarize yourself with the list of more detailed topics. 
+After reading the next four sections on "New Concepts", you will have enough information to get started with modules for most projects. It is also useful to review the [Table of Contents](/wiki/Modules#table-of-contents) above (including the FAQ one-liners there) to familiarize yourself with the list of more detailed topics. 
 
 ## New Concepts
 
@@ -211,14 +213,14 @@
 
 Modules record precise dependency requirements and create reproducible builds. 
 
-Most often, a version control repository contains exactly one module defined in the repository root. ([Multiple modules are supported in a single repository](https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories), but typically that would result in more work on an on-going basis than a single module per repository).
+Most often, a version control repository contains exactly one module defined in the repository root. ([Multiple modules are supported in a single repository](/wiki/Modules#faqs--multi-module-repositories), but typically that would result in more work on an on-going basis than a single module per repository).
 
 Summarizing the relationship between repositories, modules, and packages:	
 * A repository contains one or more Go modules.	
 * Each module contains one or more Go packages.	
 * Each package consists of one or more Go source files in a single directory.	
 
- Modules must be semantically versioned according to [semver](https://semver.org/), usually in the form `v(major).(minor).(patch)`, such as  `v0.1.0`, `v1.2.3`, or `v1.5.0-rc.1`. The leading `v` is required. If using Git, [tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging) released commits with their versions. Public and private module repositories and proxies are becoming available (see FAQ [below](https://github.com/golang/go/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies)).
+ Modules must be semantically versioned according to [semver](https://semver.org/), usually in the form `v(major).(minor).(patch)`, such as  `v0.1.0`, `v1.2.3`, or `v1.5.0-rc.1`. The leading `v` is required. If using Git, [tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging) released commits with their versions. Public and private module repositories and proxies are becoming available (see FAQ [below](/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies)).
 
 ### go.mod
 
@@ -254,7 +256,7 @@
 ```
 This imports package `bar` from the module `github.com/user/mymod`.
 
-`exclude` and `replace` directives only operate on the current (“main”) module. `exclude` and `replace` directives in modules other than the main module are ignored when building the main module. The `replace` and `exclude` statements, therefore, allow the main module complete control over its own build, without also being subject to complete control by dependencies.  (See FAQ [below](https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive) for a discussion of when to use a `replace` directive).
+`exclude` and `replace` directives only operate on the current (“main”) module. `exclude` and `replace` directives in modules other than the main module are ignored when building the main module. The `replace` and `exclude` statements, therefore, allow the main module complete control over its own build, without also being subject to complete control by dependencies.  (See FAQ [below](/wiki/Modules#when-should-i-use-the-replace-directive) for a discussion of when to use a `replace` directive).
 
 ### Version Selection
 
@@ -268,7 +270,7 @@
 
 To see a list of the selected module versions (including indirect dependencies), use `go list -m all`.
 
-See also the ["How to Upgrade and Downgrade Dependencies"](https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies) section below and the ["How are versions marked as incompatible?"](https://github.com/golang/go/wiki/Modules#how-are-versions-marked-as-incompatible) FAQ below.
+See also the ["How to Upgrade and Downgrade Dependencies"](/wiki/Modules#how-to-upgrade-and-downgrade-dependencies) section below and the ["How are versions marked as incompatible?"](/wiki/Modules#how-are-versions-marked-as-incompatible) FAQ below.
 
 ### Semantic Import Versioning
 
@@ -302,13 +304,13 @@
 
 2. **'+incompatible' when importing non-module v2+ packages**
 
-    A module can import a v2+ package that has not opted in to modules itself. A non-module v2+ package that has a valid v2+ [semver](https://semver.org) tag will be recorded with a `+incompatible` suffix in the importing module's `go.mod` file. The `+incompatible` suffix indicates that even though the v2+ package has a valid v2+ [semver](https://semver.org) tag such as `v2.0.0`, the v2+ package has not actively opted in to modules and hence that v2+ package is assumed to have _not_ been created with an understanding of the implications of Semantic Import Versioning and how to use major versions in import paths. Therefore, when operating in [module mode](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior), the `go` tool will treat a non-module v2+ package as an (incompatible) extension of the v1 version series of the package and assume the package has no awareness of Semantic Import Versioning, and the `+incompatible` suffix is an indication that the `go` tool is doing so. 
+    A module can import a v2+ package that has not opted in to modules itself. A non-module v2+ package that has a valid v2+ [semver](https://semver.org) tag will be recorded with a `+incompatible` suffix in the importing module's `go.mod` file. The `+incompatible` suffix indicates that even though the v2+ package has a valid v2+ [semver](https://semver.org) tag such as `v2.0.0`, the v2+ package has not actively opted in to modules and hence that v2+ package is assumed to have _not_ been created with an understanding of the implications of Semantic Import Versioning and how to use major versions in import paths. Therefore, when operating in [module mode](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior), the `go` tool will treat a non-module v2+ package as an (incompatible) extension of the v1 version series of the package and assume the package has no awareness of Semantic Import Versioning, and the `+incompatible` suffix is an indication that the `go` tool is doing so. 
 
 3. **"Minimal module compatibility" when module mode is not enabled**
     
-    To help with backwards-compatibility, Go versions 1.9.7+, 1.10.3+ and 1.11 have been updated to make it easier for code built with those releases to be able to properly consume v2+ modules _without_ requiring modification of pre-existing code. This behavior is called "minimal module compatibility", and it only takes effect when full [module mode](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled for the `go` tool, such as if such as you have set `GO111MODULE=off` in Go 1.11, or are using Go versions 1.9.7+ or 1.10.3+. When relying on this "minimal module compatibility" mechanism in Go 1.9.7+, 1.10.3+ and 1.11, a package that has _not_ opted in to modules would _not_ include the major version in the import path for any imported v2+ modules. In contrast, a package that _has_ opted in to modules _must_ include the major version in the import path to import any v2+ modules (in order to properly import the v2+ module when the `go` tool is operating in full module mode with full awareness of Semantic Import Versioning).
+    To help with backwards-compatibility, Go versions 1.9.7+, 1.10.3+ and 1.11 have been updated to make it easier for code built with those releases to be able to properly consume v2+ modules _without_ requiring modification of pre-existing code. This behavior is called "minimal module compatibility", and it only takes effect when full [module mode](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled for the `go` tool, such as if such as you have set `GO111MODULE=off` in Go 1.11, or are using Go versions 1.9.7+ or 1.10.3+. When relying on this "minimal module compatibility" mechanism in Go 1.9.7+, 1.10.3+ and 1.11, a package that has _not_ opted in to modules would _not_ include the major version in the import path for any imported v2+ modules. In contrast, a package that _has_ opted in to modules _must_ include the major version in the import path to import any v2+ modules (in order to properly import the v2+ module when the `go` tool is operating in full module mode with full awareness of Semantic Import Versioning).
 
-For the exact mechanics required to release a v2+ module, please see the ["Releasing Modules (v2 or Higher)"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) section below.
+For the exact mechanics required to release a v2+ module, please see the ["Releasing Modules (v2 or Higher)"](/wiki/Modules#releasing-modules-v2-or-higher) section below.
 
 ## How to Use Modules
 
@@ -347,13 +349,13 @@
    ```
    This step converts from any existing [`dep`](https://github.com/golang/dep) `Gopkg.lock` file or any of the other [nine total supported dependency formats](https://tip.golang.org/pkg/cmd/go/internal/modconv/?m=all#pkg-variables), adding require statements to match the existing configuration.
 
-   `go mod init` will often be able to use auxiliary data (such as VCS meta-data) to automatically determine the appropriate module path, but if `go mod init` states it can not automatically determine the module path, or if you need to otherwise override that path, you can supply the [module path](https://github.com/golang/go/wiki/Modules#gomod) as an optional argument to `go mod init`, for example:
+   `go mod init` will often be able to use auxiliary data (such as VCS meta-data) to automatically determine the appropriate module path, but if `go mod init` states it can not automatically determine the module path, or if you need to otherwise override that path, you can supply the [module path](/wiki/Modules#gomod) as an optional argument to `go mod init`, for example:
 
    ```
    $ go mod init github.com/my/repo
    ```
 
-   Note that if your dependencies include v2+ modules, or if you are initializing a v2+ module, then after running `go mod init` you might also need to edit your `go.mod` and `.go` code to add `/vN` to import paths and module paths as described in the ["Semantic Import Versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) section above. This applies even if `go mod init` automatically converted your dependency information from `dep` or other dependency managers. (Because of this, after running `go mod init`, you typically should not run `go mod tidy` until you have successfully run `go build ./...` or similar, which is the sequence shown in this section).
+   Note that if your dependencies include v2+ modules, or if you are initializing a v2+ module, then after running `go mod init` you might also need to edit your `go.mod` and `.go` code to add `/vN` to import paths and module paths as described in the ["Semantic Import Versioning"](/wiki/Modules#semantic-import-versioning) section above. This applies even if `go mod init` automatically converted your dependency information from `dep` or other dependency managers. (Because of this, after running `go mod init`, you typically should not run `go mod tidy` until you have successfully run `go build ./...` or similar, which is the sequence shown in this section).
 
 3. Build the module. When executed from the root directory of a module, the `./...` pattern matches all the packages within the current module.  `go build` will automatically add missing or unconverted dependencies as needed to satisfy imports for this particular build invocation:
 
@@ -372,7 +374,7 @@
    $ go test all
    ```
 
-Prior to tagging a release, see the ["How to Prepare for a Release"](https://github.com/golang/go/wiki/Modules#how-to-prepare-for-a-release) section below.
+Prior to tagging a release, see the ["How to Prepare for a Release"](/wiki/Modules#how-to-prepare-for-a-release) section below.
 
 For more information on all of these topics, the primary entry point to the official modules documentation is [available on golang.org](https://pkg.go.dev/cmd/go/#hdr-Modules__module_versions__and_more).
 
@@ -444,21 +446,21 @@
   * The number of possible version combinations is exponential in the number of modules, so in general, you cannot expect your dependencies to have tested against all possible combinations of their dependencies.
   * As part of the modules work, `go test all` has been [re-defined to be more useful](https://research.swtch.com/vgo-cmd): to include all the packages in the current module plus all the packages they depend on through a sequence of one or more imports while excluding packages that don't matter in the current module.
 
-* Ensure your `go.sum` file is committed along with your `go.mod` file. See [FAQ below](https://github.com/golang/go/wiki/Modules#should-i-commit-my-gosum-file-as-well-as-my-gomod-file) for more details and rationale. 
+* Ensure your `go.sum` file is committed along with your `go.mod` file. See [FAQ below](/wiki/Modules#should-i-commit-my-gosum-file-as-well-as-my-gomod-file) for more details and rationale. 
 
 ### Releasing Modules (v2 or Higher)
 
-If you are releasing a v2 or higher module, please first review the discussion in the ["Semantic Import Versioning" ](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) section above, which includes why major versions are included in the module path and import path for v2+ modules, as well as how Go versions 1.9.7+ and 1.10.3+ have been updated to simplify that transition.
+If you are releasing a v2 or higher module, please first review the discussion in the ["Semantic Import Versioning" ](/wiki/Modules#semantic-import-versioning) section above, which includes why major versions are included in the module path and import path for v2+ modules, as well as how Go versions 1.9.7+ and 1.10.3+ have been updated to simplify that transition.
 
 Note that if you are adopting modules for the first time for a pre-existing repository or set of packages that have already been tagged `v2.0.0` or higher before adopting modules, then the [recommended best practice](https://github.com/golang/go/issues/25967#issuecomment-422828770) is to increment the major version when first adopting modules. For example, if you are the author of `foo`, and the latest tag for the `foo` repository is `v2.2.2`, and `foo` has not yet adopted modules, then the best practice would be to use `v3.0.0` for the first release of `foo` to adopt modules (and hence the first release of `foo` to contain a `go.mod` file). Incrementing the major version in this case provides greater clarity to consumers of `foo`, allows for additional non-module patches or minor releases on the v2 series of `foo` if needed, and provides a strong signal for a module-based consumer of `foo` that different major versions result if you do `import "foo"` and a corresponding `require foo v2.2.2+incompatible`, vs. `import "foo/v3"` and a corresponding `require foo/v3 v3.0.0`. (Note that this advice regarding incrementing the major version when first adopting modules does _not_ apply to pre-existing repos or packages whose latest versions are v0.x.x or v1.x.x).
 
 There are two alternative mechanisms to release a v2 or higher module. Note that with both techniques, the new module release becomes available to consumers when the module author pushes the new tags. Using the example of creating a `v3.0.0` release, the two options are:
 
 1. **Major branch**: Update the `go.mod` file to include a `/v3` at the end of the module path in the `module` directive (e.g., `module github.com/my/module/v3`). Update import statements within the module to also use `/v3` (e.g., `import "github.com/my/module/v3/mypkg"`). Tag the release with `v3.0.0`. 
-   * Go versions 1.9.7+, 1.10.3+, and 1.11 are able to properly consume and build a v2+ module created using this approach without requiring updates to consumer code that has not yet opted in to modules (as described in the ["Semantic Import Versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) section above). 
-   * A community tool [github.com/marwan-at-work/mod](https://github.com/marwan-at-work/mod) helps automate this procedure. See the [repository](https://github.com/marwan-at-work/mod) or the [community tooling FAQ](https://github.com/golang/go/wiki/Modules#what-community-tooling-exists-for-working-with-modules) below for an overview.
+   * Go versions 1.9.7+, 1.10.3+, and 1.11 are able to properly consume and build a v2+ module created using this approach without requiring updates to consumer code that has not yet opted in to modules (as described in the ["Semantic Import Versioning"](/wiki/Modules#semantic-import-versioning) section above). 
+   * A community tool [github.com/marwan-at-work/mod](https://github.com/marwan-at-work/mod) helps automate this procedure. See the [repository](https://github.com/marwan-at-work/mod) or the [community tooling FAQ](/wiki/Modules#what-community-tooling-exists-for-working-with-modules) below for an overview.
    * To avoid confusion with this approach, consider putting the `v3.*.*` commits for the module on a separate v3 branch.
-   * **Note:** creating a new branch is _not_ required. If instead you have been previously releasing on master and would prefer to tag `v3.0.0` on master, that is a viable option. (However, be aware that introducing an incompatible API change in `master` can cause issues for non-modules users who issue a `go get -u` given the `go` tool is not aware of [semver](https://semver.org) prior to Go 1.11 or when [module mode](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is not enabled in Go 1.11+).
+   * **Note:** creating a new branch is _not_ required. If instead you have been previously releasing on master and would prefer to tag `v3.0.0` on master, that is a viable option. (However, be aware that introducing an incompatible API change in `master` can cause issues for non-modules users who issue a `go get -u` given the `go` tool is not aware of [semver](https://semver.org) prior to Go 1.11 or when [module mode](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is not enabled in Go 1.11+).
    * Pre-existing dependency management solutions such as `dep` currently can have problems consuming a v2+ module created in this way. See for example [dep#1962](https://github.com/golang/dep/issues/1962).
 
 2. **Major subdirectory**: Create a new `v3` subdirectory (e.g., `my/module/v3`) and place a new `go.mod` file in that subdirectory. The module path must end with `/v3`. Copy or move the code into the `v3` subdirectory. Update import statements within the module to also use `/v3` (e.g., `import "github.com/my/module/v3/mypkg"`). Tag the release with `v3.0.0`.
@@ -487,7 +489,7 @@
 Summary:
 
 * The modules system is designed to allow different packages in the overall Go ecosystem to opt-in at different rates.
-* Packages that are already on version v2 or higher have more migration considerations, primarily due to the implications of [Semantic Import versioning](https://github.com/golang/go/wiki/Modules#semantic-import-versioning). 
+* Packages that are already on version v2 or higher have more migration considerations, primarily due to the implications of [Semantic Import versioning](/wiki/Modules#semantic-import-versioning). 
 * New packages and packages on v0 or v1 have substantially fewer considerations when adopting modules.
 * Modules defined with Go 1.11 can be used by older Go versions (although the exact Go versions depend on the strategy used by the main module and its dependencies, as outlined below).
 
@@ -497,23 +499,23 @@
 
   * `go mod init` automatically translates the required information from [dep, glide, govendor, godep, and 5 other pre-existing dependency managers](https://tip.golang.org/pkg/cmd/go/internal/modconv/?m=all#pkg-variables) into a `go.mod `file that produces the equivalent build.
   * If you are creating a v2+ module, be sure your `module` directive in the converted `go.mod` includes the appropriate `/vN` (e.g., `module foo/v3`).
-  * Note that if you are importing v2+ modules, you might need to do some manual adjustments after an initial conversion in order to add `/vN` to the `require` statements that `go mod init` generates after translating from a prior dependency manager. See the ["How to Define a Module"](https://github.com/golang/go/wiki/Modules#how-to-define-a-module) section above for more details.
-  * In addition, `go mod init` will not edit your `.go` code to add any required `/vN` to import statements. See the ["Semantic Import versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) sections above for the required steps, including some options around community tools to automate the conversion.
+  * Note that if you are importing v2+ modules, you might need to do some manual adjustments after an initial conversion in order to add `/vN` to the `require` statements that `go mod init` generates after translating from a prior dependency manager. See the ["How to Define a Module"](/wiki/Modules#how-to-define-a-module) section above for more details.
+  * In addition, `go mod init` will not edit your `.go` code to add any required `/vN` to import statements. See the ["Semantic Import versioning"](/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](/wiki/Modules#releasing-modules-v2-or-higher) sections above for the required steps, including some options around community tools to automate the conversion.
 
 #### Providing Dependency Information to Older Versions of Go and Non-Module Consumers
 
-  * Older versions of Go understand how to consume a vendor directory created by `go mod vendor`, as do Go 1.11 and 1.12+ when module mode is disabled. Therefore, vendoring is one way for a module to provide dependencies to older versions of Go that do not fully understand modules, as well as to consumers that have not enabled modules themselves. See the [vendoring FAQ](https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away) and the `go` command [documentation](https://tip.golang.org/cmd/go/#hdr-Modules_and_vendoring) for more details.
+  * Older versions of Go understand how to consume a vendor directory created by `go mod vendor`, as do Go 1.11 and 1.12+ when module mode is disabled. Therefore, vendoring is one way for a module to provide dependencies to older versions of Go that do not fully understand modules, as well as to consumers that have not enabled modules themselves. See the [vendoring FAQ](/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away) and the `go` command [documentation](https://tip.golang.org/cmd/go/#hdr-Modules_and_vendoring) for more details.
 
 #### Updating Pre-Existing Install Instructions
 
   * Pre-modules, it is common for install instructions to include `go get -u foo`. If you are publishing a module `foo`, consider dropping the `-u` in instructions for modules-based consumers.
      * `-u` asks the `go` tool to upgrade all the direct and indirect dependencies of `foo`. 
-	 * A module consumer might choose to run `go get -u foo` later, but there are more benefits of ["High Fidelity Builds"](https://github.com/golang/proposal/blob/master/design/24301-versioned-go.md#update-timing--high-fidelity-builds) if `-u` is not part of the initial install instructions. See ["How to Upgrade and Downgrade Dependencies"](https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies) for more details.
+	 * A module consumer might choose to run `go get -u foo` later, but there are more benefits of ["High Fidelity Builds"](https://github.com/golang/proposal/blob/master/design/24301-versioned-go.md#update-timing--high-fidelity-builds) if `-u` is not part of the initial install instructions. See ["How to Upgrade and Downgrade Dependencies"](/wiki/Modules#how-to-upgrade-and-downgrade-dependencies) for more details.
      * `go get -u foo` does still work, and can still be a valid choice for install instructions.
   * In addition, `go get foo` is not strictly needed for a module-based consumer. 
      * Simply adding an import statement `import "foo"` is sufficient. (Subsequent commands like `go build` or `go test` will automatically download `foo` and update `go.mod` as needed).
   * Module-based consumers will not use a `vendor` directory by default. 
-     * When module mode is enabled in the `go` tool, `vendor` is not strictly required when consuming a module (given the information contained in `go.mod` and the cryptographic checksums in `go.sum`), but some pre-existing install instructions assume the `go` tool will use `vendor` by default. See the [vendoring FAQ](https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away) for more details.
+     * When module mode is enabled in the `go` tool, `vendor` is not strictly required when consuming a module (given the information contained in `go.mod` and the cryptographic checksums in `go.sum`), but some pre-existing install instructions assume the `go` tool will use `vendor` by default. See the [vendoring FAQ](/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away) for more details.
   * Install instructions that include `go get foo/...` might have issues in some cases (see discussion in [#27215](https://github.com/golang/go/issues/27215#issuecomment-427672781)).
 
 #### Avoid Breaking Existing Import Paths 
@@ -536,7 +538,7 @@
 
 #### Incrementing the Major Version When First Adopting Modules with v2+ Packages
 
-* If you have packages that have already been tagged v2.0.0 or higher before adopting modules, then the recommended best practice is to increment the major version when first adopting modules. For example, if you are on `v2.0.1` and have not yet adopted modules, then you would use `v3.0.0` for the first release that adopts modules. See the ["Releasing Modules (v2 or Higher)"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) section above for more details.
+* If you have packages that have already been tagged v2.0.0 or higher before adopting modules, then the recommended best practice is to increment the major version when first adopting modules. For example, if you are on `v2.0.1` and have not yet adopted modules, then you would use `v3.0.0` for the first release that adopts modules. See the ["Releasing Modules (v2 or Higher)"](/wiki/Modules#releasing-modules-v2-or-higher) section above for more details.
 
 #### v2+ Modules Allow Multiple Major Versions Within a Single Build
 
@@ -548,8 +550,8 @@
 
 #### Modules Consuming Non-Module Code
 
-  * Modules are capable of consuming packages that have not yet opted into modules, with the appropriate package version information recorded in the importing module's `go.mod`.  Modules can consume packages that do not yet have any proper semver tags. See FAQ [below](https://github.com/golang/go/wiki/Modules#can-a-module-consume-a-package-that-has-not-opted-in-to-modules) for more details.
-  * Modules can also import a v2+ package that has not opted into modules. It will be recorded with a `+incompatible` suffix if the imported v2+ package has valid semver tags. See FAQ [below](https://github.com/golang/go/wiki/Modules#can-a-module-consume-a-v2-package-that-has-not-opted-into-modules-what-does-incompatible-mean) for more details.
+  * Modules are capable of consuming packages that have not yet opted into modules, with the appropriate package version information recorded in the importing module's `go.mod`.  Modules can consume packages that do not yet have any proper semver tags. See FAQ [below](/wiki/Modules#can-a-module-consume-a-package-that-has-not-opted-in-to-modules) for more details.
+  * Modules can also import a v2+ package that has not opted into modules. It will be recorded with a `+incompatible` suffix if the imported v2+ package has valid semver tags. See FAQ [below](/wiki/Modules#can-a-module-consume-a-v2-package-that-has-not-opted-into-modules-what-does-incompatible-mean) for more details.
   
 #### Non-Module Code Consuming Modules
 
@@ -558,9 +560,9 @@
 
   * **Non-module code consuming v2+ modules**:
   
-    * Go versions 1.9.7+, 1.10.3+ and 1.11 have been updated so that code built with those releases can properly consume v2+ modules without requiring modification of pre-existing code as described in the ["Semantic Import versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) sections above.
+    * Go versions 1.9.7+, 1.10.3+ and 1.11 have been updated so that code built with those releases can properly consume v2+ modules without requiring modification of pre-existing code as described in the ["Semantic Import versioning"](/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](/wiki/Modules#releasing-modules-v2-or-higher) sections above.
 
-    * Go versions prior to 1.9.7 and 1.10.3 can consume v2+ modules if the v2+ module was created following the "Major subdirectory" approach outlined in the ["Releasing Modules (v2 or Higher)"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) section.
+    * Go versions prior to 1.9.7 and 1.10.3 can consume v2+ modules if the v2+ module was created following the "Major subdirectory" approach outlined in the ["Releasing Modules (v2 or Higher)"](/wiki/Modules#releasing-modules-v2-or-higher) section.
 
 #### Strategies for Authors of Pre-Existing v2+ Packages
 
@@ -568,11 +570,11 @@
 
 1. **Require clients to use Go versions 1.9.7+, 1.10.3+, or 1.11+**. 
 
-    The approach uses the "Major Branch" approach and relies on the "minimal module awareness" that was backported to 1.9.7 and 1.10.3. See the ["Semantic Import versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) sections above for more details.
+    The approach uses the "Major Branch" approach and relies on the "minimal module awareness" that was backported to 1.9.7 and 1.10.3. See the ["Semantic Import versioning"](/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](/wiki/Modules#releasing-modules-v2-or-higher) sections above for more details.
 
 2. **Allow clients to use even older Go versions like Go 1.8**. 
 
-    This approach uses the "Major Subdirectory" approach and involves creating a subdirectory such as `/v2` or `/v3`. See the ["Semantic Import versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) sections above for more details.
+    This approach uses the "Major Subdirectory" approach and involves creating a subdirectory such as `/v2` or `/v3`. See the ["Semantic Import versioning"](/wiki/Modules#semantic-import-versioning) and ["Releasing Modules (v2 or Higher)"](/wiki/Modules#releasing-modules-v2-or-higher) sections above for more details.
 
 3. **Wait on opting into modules**.  
 
@@ -761,7 +763,7 @@
 
 ### When should I use the replace directive?
 
-As described in the ['go.mod' concepts section above](https://github.com/golang/go/wiki/Modules#gomod), `replace` directives provide additional control in the top-level `go.mod` for what is actually used to satisfy a dependency found in the Go source or go.mod files, while `replace` directives in modules other than the main module are ignored when building the main module.
+As described in the ['go.mod' concepts section above](/wiki/Modules#gomod), `replace` directives provide additional control in the top-level `go.mod` for what is actually used to satisfy a dependency found in the Go source or go.mod files, while `replace` directives in modules other than the main module are ignored when building the main module.
 
 The `replace` directive allows you to supply another import path that might be another module located in VCS (GitHub or elsewhere), or on your local filesystem with a relative or absolute file path. The new import path from the `replace` directive is used without needing to update the import paths in the actual source code.
 
@@ -824,7 +826,7 @@
 * The `-mod=vendor` flag (e.g., `go build -mod=vendor`) instructs the go commands to use the main module's top-level vendor directory to satisfy dependencies. The go commands in this mode therefore ignore the dependency descriptions in go.mod and assume that the vendor directory holds the correct copies of dependencies. Note that only the main module's top-level vendor directory is used; vendor directories in other locations are still ignored.
 * Some people will want to routinely opt-in to vendoring by setting a `GOFLAGS=-mod=vendor` environment variable.
 
-Older versions of Go such as 1.10 understand how to consume a vendor directory created by `go mod vendor`, as do Go 1.11 and 1.12+ when [module mode](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled. Therefore, vendoring is one way for a module to provide dependencies to older versions of Go that do not fully understand modules, as well as to consumers that have not enabled modules themselves. 
+Older versions of Go such as 1.10 understand how to consume a vendor directory created by `go mod vendor`, as do Go 1.11 and 1.12+ when [module mode](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled. Therefore, vendoring is one way for a module to provide dependencies to older versions of Go that do not fully understand modules, as well as to consumers that have not enabled modules themselves. 
 
 If you are considering using vendoring, it is worthwhile to read the ["Modules and vendoring"](https://tip.golang.org/cmd/go/#hdr-Modules_and_vendoring) and ["Make vendored copy of dependencies"](https://tip.golang.org/cmd/go/#hdr-Make_vendored_copy_of_dependencies) sections of the tip documentation.
 
@@ -883,7 +885,7 @@
 
 ### Why does 'go mod tidy' record indirect and test dependencies in my 'go.mod'?
 
-The modules system records precise dependency requirements in your `go.mod`. (For more details, see the [go.mod concepts](https://github.com/golang/go/wiki/Modules#gomod) section above or the [go.mod tip documentation](https://tip.golang.org/cmd/go/#hdr-The_go_mod_file)).
+The modules system records precise dependency requirements in your `go.mod`. (For more details, see the [go.mod concepts](/wiki/Modules#gomod) section above or the [go.mod tip documentation](https://tip.golang.org/cmd/go/#hdr-The_go_mod_file)).
 
 `go mod tidy` updates your current `go.mod` to include the dependencies needed for tests in your module — if a test fails, we must know which dependencies were used in order to reproduce the failure.
 
@@ -903,7 +905,7 @@
 
 No, `go.sum` is not a lock file. The `go.mod` files in a build provide enough information for 100% reproducible builds.
 
-For validation purposes, `go.sum` contains the expected cryptographic checksums of the content of specific module versions. See the [FAQ below](https://github.com/golang/go/wiki/Modules#should-i-commit-my-gosum-file-as-well-as-my-gomod-file) for more details on `go.sum` (including why you typically should check in `go.sum`) as well as the ["Module downloading and verification"](https://tip.golang.org/cmd/go/#hdr-Module_downloading_and_verification) section in the tip documentation.
+For validation purposes, `go.sum` contains the expected cryptographic checksums of the content of specific module versions. See the [FAQ below](/wiki/Modules#should-i-commit-my-gosum-file-as-well-as-my-gomod-file) for more details on `go.sum` (including why you typically should check in `go.sum`) as well as the ["Module downloading and verification"](https://tip.golang.org/cmd/go/#hdr-Module_downloading_and_verification) section in the tip documentation.
 
 In addition, your module's `go.sum` records checksums for all direct and indirect dependencies used in a build (and hence your `go.sum` will frequently have more modules listed than your `go.mod`).
 
@@ -925,7 +927,7 @@
 
 ### Why must major version numbers appear in import paths?
 
-Please see the discussion on the Semantic Import Versioning and the import compatibility rule in the ["Semantic Import Versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) concepts section above. See also the [blog post announcing the proposal](https://go.dev/blog/versioning-proposal), which talks more about the motivation and justification for the import compatibility rule.
+Please see the discussion on the Semantic Import Versioning and the import compatibility rule in the ["Semantic Import Versioning"](/wiki/Modules#semantic-import-versioning) concepts section above. See also the [blog post announcing the proposal](https://go.dev/blog/versioning-proposal), which talks more about the motivation and justification for the import compatibility rule.
 
 ### Why are major versions v0, v1 omitted from import paths?"
 
@@ -965,7 +967,7 @@
 
 **Additional Details**
 
-Please be familiar with the material in the ["Semantic Import Versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) section above.
+Please be familiar with the material in the ["Semantic Import Versioning"](/wiki/Modules#semantic-import-versioning) section above.
 
 It is helpful to first review some core principles that are generally useful but particularly important to keep in mind when thinking about the behavior described in this FAQ.
 
@@ -1001,9 +1003,9 @@
 require  oldpackage  v3.0.1+incompatible
 ```
 
-Note that there is no `/v3` used at the end of `oldpackage` in the `go get` command above or in the recorded `require` directive – using `/vN` in module paths and import paths is a feature of [Semantic Import Versioning](https://github.com/golang/go/wiki/Modules#semantic-import-versioning), and `oldpackage` has not signaled its acceptance and understanding of Semantic Import Versioning given `oldpackage` has not opted into modules by having a `go.mod` file within `oldpackage` itself. In other words, even though `oldpackage` has a [semver](https://semver.org) tag of `v3.0.1`, `oldpackage` is not granted the rights and responsibilities of [Semantic Import Versioning](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) (such as using `/vN` in import paths) because `oldpackage` has not yet stated its desire to do so.
+Note that there is no `/v3` used at the end of `oldpackage` in the `go get` command above or in the recorded `require` directive – using `/vN` in module paths and import paths is a feature of [Semantic Import Versioning](/wiki/Modules#semantic-import-versioning), and `oldpackage` has not signaled its acceptance and understanding of Semantic Import Versioning given `oldpackage` has not opted into modules by having a `go.mod` file within `oldpackage` itself. In other words, even though `oldpackage` has a [semver](https://semver.org) tag of `v3.0.1`, `oldpackage` is not granted the rights and responsibilities of [Semantic Import Versioning](/wiki/Modules#semantic-import-versioning) (such as using `/vN` in import paths) because `oldpackage` has not yet stated its desire to do so.
 
-The `+incompatible` suffix indicates that the `v3.0.1` version of `oldpackage` has not actively opted in to modules, and hence the `v3.0.1` version of `oldpackage` is assumed to _not_ understand Semantic Import Versioning or how to use major versions in import paths. Therefore, when operating in [module mode](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior), the `go` tool will treat the non-module `v3.0.1` version of `oldpackage` as an (incompatible) extension of the v1 version series of `oldpackage` and assume that the `v3.0.1` version of `oldpackage` has no awareness of Semantic Import Versioning, and the `+incompatible` suffix is an indication that the `go` tool is doing so. 
+The `+incompatible` suffix indicates that the `v3.0.1` version of `oldpackage` has not actively opted in to modules, and hence the `v3.0.1` version of `oldpackage` is assumed to _not_ understand Semantic Import Versioning or how to use major versions in import paths. Therefore, when operating in [module mode](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior), the `go` tool will treat the non-module `v3.0.1` version of `oldpackage` as an (incompatible) extension of the v1 version series of `oldpackage` and assume that the `v3.0.1` version of `oldpackage` has no awareness of Semantic Import Versioning, and the `+incompatible` suffix is an indication that the `go` tool is doing so. 
 
 The fact that the `v3.0.1` version of `oldpackage` is considered to be part of the v1 release series according to Semantic Import Versioning means for example that versions `v1.0.0`, `v2.0.0`, and `v3.0.1` are all always imported using the same import path:
 
@@ -1013,7 +1015,7 @@
 
 Note again that there is no `/v3` used at the end of `oldpackage`.
 
-In general, packages with different import paths are different packages. In this example, given versions `v1.0.0`, `v2.0.0`, and `v3.0.1` of `oldpackage` would all be imported using the same import path, they are therefore treated by a build as the same package (again because `oldpackage` has not yet opted in to Semantic Import Versioning), with a single copy of `oldpackage` ending up in any given build. (The version used will be the semantically highest of the versions listed in any `require` directives; see ["Version Selection"](https://github.com/golang/go/wiki/Modules#version-selection)).
+In general, packages with different import paths are different packages. In this example, given versions `v1.0.0`, `v2.0.0`, and `v3.0.1` of `oldpackage` would all be imported using the same import path, they are therefore treated by a build as the same package (again because `oldpackage` has not yet opted in to Semantic Import Versioning), with a single copy of `oldpackage` ending up in any given build. (The version used will be the semantically highest of the versions listed in any `require` directives; see ["Version Selection"](/wiki/Modules#version-selection)).
 
 If we suppose that later a new `v4.0.0` release of `oldpackage` is created that adopts modules and hence contains a `go.mod` file, that is the signal that `oldpackage` now understands the rights and responsibilities of Semantic Import Versioning, and hence a module-based consumer would now import using `/v4` in the import path:
 
@@ -1033,21 +1035,21 @@
 
 When considering older Go versions or Go code that has not yet opted in to modules, Semantic Import Versioning has significant backwards-compatibility implications related to v2+ modules.
 
-As described in the ["Semantic Import Versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) section above:
+As described in the ["Semantic Import Versioning"](/wiki/Modules#semantic-import-versioning) section above:
 * a module that is version v2 or higher must include a `/vN` in its own module path declared in its `go.mod`.  
 * a module-based consumer (that is, code that has opted in to modules) must include a `/vN` in the import path to import a v2+ module. 
 
 However, the ecosystem is expected to proceed at varying paces of adoption for modules and Semantic Import Versioning.
 
-As described in more detail in the ["How to Release a v2+ Module"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) section, in the "Major Subdirectory" approach, the author of a v2+ module creates subdirectories such as `mymodule/v2` or `mymodule/v3` and moves or copies the approriate packages underneath those subdirectories. This means the traditional import path logic (even in older Go releases such as Go 1.8 or 1.7) will find the appropriate packages upon seeing an import statement such as `import "mymodule/v2/mypkg"`. Hence, packages residing in a "Major Subdirectory" v2+ module will be found and used even if modules support is not enabled (whether that is because you are running Go 1.11 and have not enabled modules, or because you are running a older version like Go 1.7, 1.8, 1.9 or 1.10 that does not have full module support).  Please see the ["How to Release a v2+ Module"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) section for more details on the "Major Subdirectory" approach.
+As described in more detail in the ["How to Release a v2+ Module"](/wiki/Modules#releasing-modules-v2-or-higher) section, in the "Major Subdirectory" approach, the author of a v2+ module creates subdirectories such as `mymodule/v2` or `mymodule/v3` and moves or copies the approriate packages underneath those subdirectories. This means the traditional import path logic (even in older Go releases such as Go 1.8 or 1.7) will find the appropriate packages upon seeing an import statement such as `import "mymodule/v2/mypkg"`. Hence, packages residing in a "Major Subdirectory" v2+ module will be found and used even if modules support is not enabled (whether that is because you are running Go 1.11 and have not enabled modules, or because you are running a older version like Go 1.7, 1.8, 1.9 or 1.10 that does not have full module support).  Please see the ["How to Release a v2+ Module"](/wiki/Modules#releasing-modules-v2-or-higher) section for more details on the "Major Subdirectory" approach.
 
-The remainder of this FAQ is focused on the "Major Branch" approach described in the ["How to Release a v2+ Module"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) section. In the "Major Branch" approach, no `/vN` subdirectories are created and instead the module version information is communicated by the `go.mod` file and by applying semver tags to commits (which often will be on `master`, but could be on different branches).
+The remainder of this FAQ is focused on the "Major Branch" approach described in the ["How to Release a v2+ Module"](/wiki/Modules#releasing-modules-v2-or-higher) section. In the "Major Branch" approach, no `/vN` subdirectories are created and instead the module version information is communicated by the `go.mod` file and by applying semver tags to commits (which often will be on `master`, but could be on different branches).
 
 In order to help during the current transitional period, "minimal module compatibility" was [introduced](https://go-review.googlesource.com/c/go/+/109340) to Go 1.11 to provide greater compatibility for Go code that has not yet opted in to modules, and that "minimal module compatibility" was also backported to Go 1.9.7 and 1.10.3 (where those versions are effectively always operating with full module mode disabled given those older Go versions do not have full module support).
 
 The primary goals of "minimal module compatibility" are:
 
-1. Allow older Go versions 1.9.7+ and 1.10.3+ to be able to more easily compile modules that are using Semantic Import Versioning with `/vN` in import paths, and provide that same behavior when [module mode](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled in Go 1.11.
+1. Allow older Go versions 1.9.7+ and 1.10.3+ to be able to more easily compile modules that are using Semantic Import Versioning with `/vN` in import paths, and provide that same behavior when [module mode](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled in Go 1.11.
 
 2. Allow old code to be able to consume a v2+ module without requiring that old consumer code to immediately change to using a new `/vN` import path when consuming a v2+ module.  
 
@@ -1055,7 +1057,7 @@
 
 **Additional Details – "Minimal Module Compatibility"**
 
-"Minimal module compatibility" only takes effect when full [module mode](https://github.com/golang/go/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled for the `go` tool, such as if you have set `GO111MODULE=off` in Go 1.11, or are using Go versions 1.9.7+ or 1.10.3+.
+"Minimal module compatibility" only takes effect when full [module mode](/wiki/Modules#when-do-i-get-old-behavior-vs-new-module-based-behavior) is disabled for the `go` tool, such as if you have set `GO111MODULE=off` in Go 1.11, or are using Go versions 1.9.7+ or 1.10.3+.
 
 When a v2+ module author has _not_ created `/v2` or `/vN` subdirectories and you are instead relying on the "minimal module compatibility" mechanism in Go 1.9.7+, 1.10.3+ and 1.11:
 
@@ -1082,7 +1084,7 @@
 
 1. Modules are required to follow the _semver specification_ in order for the `go` command to behave as documented. This includes following the semver specification regarding how and when breaking changes are allowed.
 
-2. Modules that do not have semver _VCS tags_ are recorded by consumers using a semver version in the form of a [pseudo-version](https://tip.golang.org/cmd/go/#hdr-Pseudo_versions). Typically this will be a v0 major version, unless the module author constructed a v2+ module following the ["Major Subdirectory"](https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher) approach.
+2. Modules that do not have semver _VCS tags_ are recorded by consumers using a semver version in the form of a [pseudo-version](https://tip.golang.org/cmd/go/#hdr-Pseudo_versions). Typically this will be a v0 major version, unless the module author constructed a v2+ module following the ["Major Subdirectory"](/wiki/Modules#releasing-modules-v2-or-higher) approach.
 
 3. Therefore, modules that do not apply semver VCS tags and have not created a "Major Subdirectory" are effectively declaring themselves to be in the semver v0 major version series, and a module-based consumer will treat them as having a semver v0 major version.
 
@@ -1094,7 +1096,7 @@
 
 However, if you are not expecting a module to depend on a different version of itself, it can be a sign of a mistake. For example, .go code intending to import a package from a v3 module might be missing the required `/v3` in the import statement. That mistake can manifest as a v3 module depending on the v1 version of itself. 
 
-If you are surprised to see a module to depend on a different version of itself, it can be worthwhile to review the ["Semantic Import Versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) section above along with the FAQ ["What can I check if I am not seeing the expected version of a dependency?"](https://github.com/golang/go/wiki/Modules#what-can-i-check-if-i-am-not-seeing-the-expected-version-of-a-dependency).
+If you are surprised to see a module to depend on a different version of itself, it can be worthwhile to review the ["Semantic Import Versioning"](/wiki/Modules#semantic-import-versioning) section above along with the FAQ ["What can I check if I am not seeing the expected version of a dependency?"](/wiki/Modules#what-can-i-check-if-i-am-not-seeing-the-expected-version-of-a-dependency).
 
 It continues to be a constraint that two _packages_ may not depend on each other in a cycle.
 
@@ -1146,7 +1148,7 @@
  * `go test ./...` from the repository root will no longer test everything in the repository
  * you might need to routinely manage the relationship between the modules via `replace` directives.
 
-However, there is additional nuance beyond those two examples. Please read the FAQs in this [sub-section](https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories) carefully if you are considering having multiple modules in a single repository.
+However, there is additional nuance beyond those two examples. Please read the FAQs in this [sub-section](/wiki/Modules#faqs--multi-module-repositories) carefully if you are considering having multiple modules in a single repository.
 
 Two example scenarios where it can make sense to have more than one `go.mod` in a repository:
 
@@ -1245,7 +1247,7 @@
 
 An empty `go.mod` in a directory will cause that directory and all of its subdirectories to be excluded from the top-level Go module.
 
-If the excluded directory does not contain any `.go` files, no additional steps are needed beyond placing the empty `go.mod` file. If the excluded directory does contain `.go` files, please first carefully review the other FAQs in [this multi-module repository section](https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories).
+If the excluded directory does not contain any `.go` files, no additional steps are needed beyond placing the empty `go.mod` file. If the excluded directory does contain `.go` files, please first carefully review the other FAQs in [this multi-module repository section](/wiki/Modules#faqs--multi-module-repositories).
 
 ## FAQs — Minimal Version Selection
 
@@ -1277,11 +1279,11 @@
 
 ### What can I check if I am not seeing the expected version of a dependency?
 
-1. A good first step is to run `go mod tidy`. There is some chance this might resolve the issue, but it will also help put your `go.mod` file into a consistent state with respect to your `.go` source code, which will help make any subsequent investigation easier. (If `go mod tidy` itself changes the versions of a dependency in a way you don't expect, first read [this FAQ on 'go mod tidy'](https://github.com/golang/go/wiki/Modules#why-does-go-mod-tidy-record-indirect-and-test-dependencies-in-my-gomod). If that does not explain it, you can try resetting your `go.mod` and then run `go list -mod=readonly all`, which might give a more specific message about whatever was requiring a change to its version).
+1. A good first step is to run `go mod tidy`. There is some chance this might resolve the issue, but it will also help put your `go.mod` file into a consistent state with respect to your `.go` source code, which will help make any subsequent investigation easier. (If `go mod tidy` itself changes the versions of a dependency in a way you don't expect, first read [this FAQ on 'go mod tidy'](/wiki/Modules#why-does-go-mod-tidy-record-indirect-and-test-dependencies-in-my-gomod). If that does not explain it, you can try resetting your `go.mod` and then run `go list -mod=readonly all`, which might give a more specific message about whatever was requiring a change to its version).
 
 2. The second step usually should be to check `go list -m all` to see the list of actual versions selected for your build.  `go list -m all` shows you the final selected versions, including for indirect dependencies and after resolving versions for any shared dependencies. It also shows the outcome of any `replace` and `exclude` directives.
 
-3. A good next step can be to examine the output of `go mod graph` or `go mod graph | grep <module-of-interest>`.  `go mod graph` prints the module requirement graph (including taking into account replacements). Each line in the output has two fields: the first column is a consuming module, and the second column is one of that module's requirements (including the version required by that consuming module).  This can be a quick way to see which modules are requiring a particular dependency, including when your build has a dependency that has different required versions from different consumers in your build (and if that is the case, it is important to be familiar with the behavior described in the ["Version Selection"](https://github.com/golang/go/wiki/Modules#version-selection) section above).
+3. A good next step can be to examine the output of `go mod graph` or `go mod graph | grep <module-of-interest>`.  `go mod graph` prints the module requirement graph (including taking into account replacements). Each line in the output has two fields: the first column is a consuming module, and the second column is one of that module's requirements (including the version required by that consuming module).  This can be a quick way to see which modules are requiring a particular dependency, including when your build has a dependency that has different required versions from different consumers in your build (and if that is the case, it is important to be familiar with the behavior described in the ["Version Selection"](/wiki/Modules#version-selection) section above).
 
 `go mod why -m <module>` can also be useful here, although it is typically more useful for seeing why a dependency is included at all (rather than why a dependency ends up with a particular version).
 
@@ -1292,7 +1294,7 @@
 
 A more detailed set of commands and examples for interrogating your modules can be seen in a runnable "Go Modules by Example" [walkthough](https://github.com/go-modules-by-example/index/tree/master/018_go_list_mod_graph_why).
 
-One cause of unexpected versions can be due to someone having created an invalid or unexpected `go.mod` file that was not intended, or a related mistake (for example: a `v2.0.1` version of module might have incorrectly declared itself to be `module foo` in its `go.mod` without the required `/v2`; an import statement in `.go` code intended to import a v3 module might be be missing the required `/v3`; a `require` statement in a `go.mod` for a v4 module might be be missing the required `/v4`). Therefore, if the cause of a particular issue you are seeing is not obvious, it can be worthwhile to first re-read the material in the ["go.mod"](https://github.com/golang/go/wiki/Modules#gomod) and ["Semantic Import Versioning"](https://github.com/golang/go/wiki/Modules#semantic-import-versioning) sections above (given these include important rules that modules must follow) and then take a few minutes to spot check the most relevant `go.mod` files and import statements.
+One cause of unexpected versions can be due to someone having created an invalid or unexpected `go.mod` file that was not intended, or a related mistake (for example: a `v2.0.1` version of module might have incorrectly declared itself to be `module foo` in its `go.mod` without the required `/v2`; an import statement in `.go` code intended to import a v3 module might be be missing the required `/v3`; a `require` statement in a `go.mod` for a v4 module might be be missing the required `/v4`). Therefore, if the cause of a particular issue you are seeing is not obvious, it can be worthwhile to first re-read the material in the ["go.mod"](/wiki/Modules#gomod) and ["Semantic Import Versioning"](/wiki/Modules#semantic-import-versioning) sections above (given these include important rules that modules must follow) and then take a few minutes to spot check the most relevant `go.mod` files and import statements.
 
 ### Why am I getting an error 'cannot find module providing package foo'?
 
@@ -1302,13 +1304,13 @@
 
 If you have not already done so, a good next step is often to try `go get -v foo` or `go get -v -x foo`:
 * In general, `go get` will often provide more a detailed error message than `go build`.
-* See the first troubleshooting FAQ in this section [above](https://github.com/golang/go/wiki/Modules#what-are-some-general-things-i-can-spot-check-if-i-am-seeing-a-problem) for more details.
+* See the first troubleshooting FAQ in this section [above](/wiki/Modules#what-are-some-general-things-i-can-spot-check-if-i-am-seeing-a-problem) for more details.
 
 Some other possible causes:
 
 * You might see the error `cannot find module providing package foo` if you have issued `go build` or `go build .` but do not have any `.go` source files in the current directory. If this is what you are encountering, the solution might be an alternative invocation such as `go build ./...` (where the `./...` expands out to match all the packages within the current module). See [#27122](https://github.com/golang/go/issues/27122).
 
-* The module cache in Go 1.11 can cause this error, including in the face of network issues or multiple `go` commands executing in parallel. This is resolved in Go 1.12. See the first troubleshooting FAQ in this section [above](https://github.com/golang/go/wiki/Modules#what-are-some-general-things-i-can-spot-check-if-i-am-seeing-a-problem) for more details and possible corrective steps.
+* The module cache in Go 1.11 can cause this error, including in the face of network issues or multiple `go` commands executing in parallel. This is resolved in Go 1.12. See the first troubleshooting FAQ in this section [above](/wiki/Modules#what-are-some-general-things-i-can-spot-check-if-i-am-seeing-a-problem) for more details and possible corrective steps.
 
 ### Why does 'go mod init' give the error 'cannot determine module path for source directory'?
 
@@ -1414,9 +1416,9 @@
 grep -R --include="*.go" github.com/Quasilyte/go-consistent
 ```
 
-6. If these steps are not sufficient to resolve the issue, or if you are a maintainer of a project that seems unable to remove references to an older problematic import path due to circular references, please see a much more detailed write-up of the problem on a separate [wiki page](https://github.com/golang/go/wiki/Resolving-Problems-From-Modified-Module-Path).
+6. If these steps are not sufficient to resolve the issue, or if you are a maintainer of a project that seems unable to remove references to an older problematic import path due to circular references, please see a much more detailed write-up of the problem on a separate [wiki page](/wiki/Resolving-Problems-From-Modified-Module-Path).
 
-Finally, the above steps focus on how to resolve an underlying "old name" vs. "new name" problem. However, the same error message can also appear if a `go.mod` was placed in the wrong location or simply has the wrong module path. If that is the case, the importing that module should always fail. If you are importing a new module that you just created and has never been successfully imported before, you should check that the `go.mod` file is located correctly and that it has the proper module path that corresponds to that location. (The most common approach is a single `go.mod` per repository, with the single `go.mod` file placed in the repository root, and using the repository name as the module path declared in the `module` directive). See the ["go.mod"](https://github.com/golang/go/wiki/Modules#gomod) section for more details.
+Finally, the above steps focus on how to resolve an underlying "old name" vs. "new name" problem. However, the same error message can also appear if a `go.mod` was placed in the wrong location or simply has the wrong module path. If that is the case, the importing that module should always fail. If you are importing a new module that you just created and has never been successfully imported before, you should check that the `go.mod` file is located correctly and that it has the proper module path that corresponds to that location. (The most common approach is a single `go.mod` per repository, with the single `go.mod` file placed in the repository root, and using the repository name as the module path declared in the `module` directive). See the ["go.mod"](/wiki/Modules#gomod) section for more details.
 
 ### Why does 'go build' require gcc, and why are prebuilt packages such as net/http not used?
 
@@ -1449,3 +1451,4 @@
 See additional discussion in [#26366](https://github.com/golang/go/issues/26366#issuecomment-405683150).
 
 An alternative approach to traditional vendoring is to check in the module cache. It can end up with similar benefits as traditional vendoring and in some ways ends up with a higher fidelity copy. This approach is explained as a "Go Modules by Example" [walkthrough](https://github.com/go-modules-by-example/index/blob/master/012_modvendor/README.md).
+
diff --git a/MutexOrChannel.md b/MutexOrChannel.md
index 4c4c679..d52a515 100644
--- a/MutexOrChannel.md
+++ b/MutexOrChannel.md
@@ -1,4 +1,6 @@
-# Use a sync.Mutex or a channel?
+---
+title: Use a sync.Mutex or a channel?
+---
 
 One of Go's mottos is _"Share memory by communicating, don't communicate by sharing memory."_
 
@@ -12,13 +14,16 @@
 
 As a general guide, though:
 
-| **Channel** | **Mutex** |
-|:------------|:----------|
-| passing ownership of data,<br />distributing units of work,<br /> communicating async results | caches,<br />state |
+<table>
+<tr><th>Channel<th>Mutex
+<tr>
+	<td>passing ownership of data, <br> distributing units of work, <br> communicating async results
+	<td>caches, <br> state
+</table>
 
 If you ever find your sync.Mutex locking rules are getting too complex, ask yourself whether using channel(s) might be simpler.
 
-### Wait Group
+## Wait Group
 
 Another important synchronisation primitive is sync.WaitGroup. These allow co-operating goroutines to collectively wait for a threshold event before proceeding independently again. This is useful typically in two cases.
 
@@ -28,7 +33,7 @@
 
 Channel communication, mutexes and wait-groups are complementary and can be combined.
 
-### More Info
+## More Info
 
   * Channels in Effective Go: https://go.dev/doc/effective_go#channels
-  * The sync package: https://pkg.go.dev/sync/
\ No newline at end of file
+  * The sync package: https://pkg.go.dev/sync/
diff --git a/NetBSD.md b/NetBSD.md
index 9284e23..7e5945a 100644
--- a/NetBSD.md
+++ b/NetBSD.md
@@ -1,4 +1,6 @@
-# Go on NetBSD
+---
+title: Go on NetBSD
+---
 
 Go on NetBSD is fairly stable on the architectures below. However, some bugs remain; see the [issue tracker](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+label%3AOS-NetBSD) for details.
 
@@ -13,7 +15,7 @@
 
 Support for the arm64 architecture is a work in progress, see https://go.dev/issue/30824.
 
-# Go packages in pkgsrc
+## Go packages in pkgsrc
 
 [pkgsrc](https://pkgsrc.org/), the NetBSD package collection, contains up-to-date packages for released Go versions. The packages contain the version in the name (e.g. [`lang/go113`](http://pkgsrc.se/lang/go113)) so that multiple versions can be installed in parallel. [`lang/go`](http://pkgsrc.se/lang/go) is a meta-package that always depends on the default go version.
 
@@ -21,8 +23,8 @@
 
 There are a number of packages for software written in Go in pkgsrc. At the moment, module-based builds are experimental, and packages are built using a GOPATH layout.
 
-# Preparing NetBSD for Go
+## Preparing NetBSD for Go
 
   * install NetBSD (remember to install pkgsrc in the last step)
   * install shells/bash and devel/git (do ` make package-install clean ` in ` /usr/pkgsrc/shells/bash ` and ` /usr/pkgsrc/devel/git `.
-    * Using binary packages: ` pkgin install bash git `
\ No newline at end of file
+    * Using binary packages: ` pkgin install bash git `
diff --git a/NewSpeakers.md b/NewSpeakers.md
index e909080..6852d9c 100644
--- a/NewSpeakers.md
+++ b/NewSpeakers.md
@@ -1,4 +1,6 @@
-# Resources for New Speakers
+---
+title: Resources for New Speakers
+---
 
 Go needs everyone's help.
 We want to see more new speakers with new perspectives at Go conferences,
@@ -46,4 +48,4 @@
 - Alexey Palazhchenko, alexey.palazhchenko@gmail.com [@paaleksey](https://twitter.com/paaleksey) (English, Russian)
 - Carmen Andoh, candoh@google.com, [@carmatrocity](https://twitter.com/carmatrocity)
 
-(Experienced speakers, feel free to add your contact information to the list, or email rsc@golang.org if you don't have wiki edit permission.)
\ No newline at end of file
+(Experienced speakers, feel free to add your contact information to the list, or email rsc@golang.org if you don't have wiki edit permission.)
diff --git a/NoPlusOne.md b/NoPlusOne.md
index 60538e9..2814577 100644
--- a/NoPlusOne.md
+++ b/NoPlusOne.md
@@ -1,3 +1,7 @@
+---
+title: NoPlusOne
+---
+
 When contributing to the Go issue tracker, please **do not** make comments like this:
 
 > +1
@@ -28,4 +32,4 @@
 
 (Although there's no need to make such a comment if an identical comment already exists.)
 
-Thanks!
\ No newline at end of file
+Thanks!
diff --git a/NonEnglish.md b/NonEnglish.md
index c6096ea..0687148 100644
--- a/NonEnglish.md
+++ b/NonEnglish.md
@@ -1,3 +1,7 @@
+---
+title: NonEnglish
+---
+
 Some of this documentation may be out of date.
 
 ## Belarusian - Беларуская
@@ -68,4 +72,4 @@
 
 ## Uzbek — Ўзбекча
 
- * [A Tour of Go](http://go-tour-uz.appspot.com/)
\ No newline at end of file
+ * [A Tour of Go](http://go-tour-uz.appspot.com/)
diff --git a/OpenBSD.md b/OpenBSD.md
index feccd5e..6fa97aa 100644
--- a/OpenBSD.md
+++ b/OpenBSD.md
@@ -1,4 +1,6 @@
-# Go on OpenBSD
+---
+title: Go on OpenBSD
+---
 
 Go is available within the OpenBSD ports tree collection since OpenBSD 5.2.  It is marked as i386- and amd64- only.  See [`ports/lang/go`](http://ports.su/lang/go) for details.
 
@@ -64,4 +66,4 @@
 Ensure that the user you intend to build Go with is in the `staff` login class:
 ```
 # usermod -L staff your_username_here
-```
\ No newline at end of file
+```
diff --git a/PackagePublishing.md b/PackagePublishing.md
index 9a264b7..719f8ea 100644
--- a/PackagePublishing.md
+++ b/PackagePublishing.md
@@ -1,10 +1,14 @@
-# Introduction
-Now that you've spent many hours writing your package and debugging it and testing it (you did [[test it|TableDrivenTests]], didn't you?), you want to publish it so other people can [go get](https://pkg.go.dev/cmd/go/) your package.
+---
+title: PackagePublishing
+---
+
+## Introduction
+Now that you've spent many hours writing your package and debugging it and testing it (you did [test it](TableDrivenTests), didn't you?), you want to publish it so other people can [go get](https://pkg.go.dev/cmd/go/) your package.
 
 First, you will need to host it online somewhere.  Three major code hosting sites are [bitbucket](http://bitbucket.org/) (hg/git), [GitHub](http://github.com/) (git) and [launchpad](http://launchpad.net) (bzr).  I recommend choosing whichever version control system you are familiar with or which your code is versioned locally on your machine.  Git (git) is the version control system used by the central Go repository, so it is the closest to a guarantee as you can get that a developer wanting to use your project will have the right software. If you have never used version control before, these websites have some nice HOWTOs and you can find many great tutorials by searching Google for "{name} tutorial" where {name} is the name of the version control system you would like to learn.
 
-# Package Setup
-## Choosing the Import
+## Package Setup
+### Choosing the Import
 The full import of your package often has something identifying its author (particularly on hosting sites like GitHub, where "github.com/kylelemons/..." is the full import), should always have the project name, and should end with the name of the package you've developed if it is different from the project name.  For instance, the go-gypsy project provides a yaml package, and is written by Kyle Lemons, and thus has the following import path:
 ```
 import "github.com/kylelemons/go-gypsy/yaml"
@@ -17,7 +21,7 @@
 
 Go >= version 1 supports subdirectories of package repositories.
 
-## Subdirectories
+### Subdirectories
 
 Frequently, the name that you use for your package will include the name "Go" as a prefix, suffix, or part of its acronym, and you may or may not want this to be a part of the actual command or package name in a go source file.  Often, you may have both libraries and commands as a part of your package, and these cannot coexist in the same directory.  When these things happen, you will want to structure your repository with subdirectories.
 
@@ -36,7 +40,7 @@
 
 It is often a good idea to make sure the last directory path (in this case, "epub") matches the name of the package used by the source files in the directory.  In this case, no go get-able files were included in the base directory because neither the binary nor the package were to be named "Go-PublishingExample".
 
-## Branches and Tags
+### Branches and Tags
 
 **Please note that this section is out of date.** The pseudo version numbers below were applicable to Go < version 1; also the Go repository itself uses Git instead of Mercurial now. **Maybe we should remove this section.**
 
@@ -54,19 +58,19 @@
 
 To create and maintain your release tag in mercurial:
 ```
-# Create or update a release tag
+## Create or update a release tag
 hg tag myProj-v0.0 # tag an easy-to-remember version number if you wish
 hg tag go.r60 # tag this as being go release.r60 compatible
 ```
 
 To create and maintain a release branch in git:
 ```
-# Create a release branch
+## Create a release branch
 git tag myProj-v0.0     # Tag an easy-to-remember version number if you wish
 git checkout -b go.r60  # create a release branch
 git checkout master     # to switch back to your master branch
 
-# Update the release branch
+## Update the release branch
 git checkout go.r60  # switch to the release branch
 git merge master     # merge in changes from the master branch since last release
 git checkout master  # switch back to master branch
@@ -75,7 +79,7 @@
 
 It will typically not be necessary to maintain weekly tags or branches, but it can be very useful to maintain the release branch or tag, as this will ensure the widest audience for your project.
 
-## Commands vs Packages
+### Commands vs Packages
 Since go get does not use your project's Makefiles, it is important to understand how it will actually build your project.
 
 All files in the same directory should always share the same package name.  Any files named with a ` _test ` or an ` _os ` and/or ` _arch ` suffix will be ignored (unless the os/arch match).  If the package name is "main", go get will build an executable from the source files and name it according to the directory name (using the last path segment only).  If the package name is anything else, go get will build it as a package and the import path will be the web-accessible URL for your project's root followed by the subdirectory.  See [the go get documentation](https://pkg.go.dev/cmd/go/#hdr-Download_and_install_packages_and_dependencies) for how to make import paths for code hosting sites other than the main four.
@@ -110,8 +114,8 @@
 ```
 and (if they had not already installed ` publish `) would only download and install the package.  Note that in none of these cases are the examples or documentation downloaded; in most cases these would be available to browse via the code site.
 
-# Documentation
-## godoc
+## Documentation
+### godoc
 When you are preparing to publish a package, you should make sure that the documentation looks correct by running a local copy of godoc.  If your package is installed to the go package tree, you can use the following command:
 ```
   godoc -http=:6060 &
@@ -119,7 +123,7 @@
 
 Then browse to http://localhost:6060/pkg/ and find your package.
 
-## Dashboard
+### Dashboard
 The Go Dashboard will use the first line of your package-level comment (also using the normal godoc format) as the "info" text, so make sure this is set.  For instance:
 
 ```
@@ -128,3 +132,4 @@
 ```
 
 For more information on godoc, see the [Documenting Go Code](https://go.dev/blog/2011/03/godoc-documenting-go-code.html) blog post.
+
diff --git a/PanicAndRecover.md b/PanicAndRecover.md
index 53e4c42..0d642a1 100644
--- a/PanicAndRecover.md
+++ b/PanicAndRecover.md
@@ -1,3 +1,7 @@
+---
+title: PanicAndRecover
+---
+
 Table of Contents
 =================
 
@@ -5,11 +9,11 @@
 + [Usage in a Package](#usage-in-a-package)
 + [References](#references)
 
-# Panic
+## Panic
 
 The `panic` and `recover` functions behave similarly to exceptions and try/catch in some other languages in that a `panic` causes the program stack to begin unwinding and `recover` can stop it. Deferred functions are still executed as the stack unwinds. If `recover` is called inside such a deferred function, the stack stops unwinding and `recover` returns the value (as an `interface{}`) that was passed to `panic`. The runtime will also panic in extraordinary circumstances, such as indexing an array or slice out-of-bounds.  If a `panic` causes the stack to unwind outside of any executing goroutine (e.g. `main` or the top-level function given to `go` fail to recover from it), the program exits with a stack trace of all executing goroutines. A `panic` cannot be `recover`ed by a different goroutine.
 
-# Usage in a Package
+## Usage in a Package
 
 By convention, no explicit `panic()` should be allowed to cross a package boundary. Indicating error conditions to callers should be done by returning error value. Within a package, however, especially if there are deeply nested calls to non-exported functions, it can be useful (and improve readability) to use panic to indicate error conditions which should be translated into error for the calling function. Below is an admittedly contrived example of a way in which a nested function and an exported function may interact via this panic-on-error relationship.
 
@@ -81,9 +85,10 @@
 }
 ```
 
-# References
+## References
 [Defer, Panic and Recover](https://go.dev/blog/defer-panic-and-recover)
 
 https://go.dev/ref/spec#Handling_panics
 
 https://go.dev/ref/spec#Run_time_panics
+
diff --git a/PerfDashboard.md b/PerfDashboard.md
index 07542d9..be066bf 100644
--- a/PerfDashboard.md
+++ b/PerfDashboard.md
@@ -1,14 +1,18 @@
+---
+title: PerfDashboard
+---
+
 *The perf dashboard is unmaintained and currently not active*
 
-# Introduction
+## Introduction
 
 [Performance Dashboard](http://build.golang.org/perf) does continuous monitoring of performance characteristics of the Go implementation. It notifies codereview threads about any significant changes caused by the commit, allows to see performance changes caused by [recent commits](http://build.golang.org/perf), allows to investigate changes [in detail](http://build.golang.org/perfdetail?commit=fb3d6c1631c3f3141f33a01afb4c0a23ef0ea2cf&commit0=82f48826c6c79a3d5697d5e06cac8451f3dc3c7f&kind=builder&builder=linux-amd64-perf&benchmark=http) .
 
-# Builders
+## Builders
 
 The dashboard uses two builders: linux-amd64 running Ubuntu 14.04 and windows-amd64 running Windows 8.1. Both builders has the same hardware: 2 x Intel Xeon E5620 @ 2.4GHz, 8 HT cores, 12GB RAM.
 
-# Benchmarks
+## Benchmarks
 
 The builders run benchmarks from the [x/benchmarks](https://golang.org/x/benchmarks) repo:
   * ` json `: marshals and unmarshals large json object, in several goroutines independently.
@@ -16,7 +20,7 @@
   * ` garbage `: parses net package using go/parser, in a loop in several goroutines; half of packages are instantly discarded, the other half is preserved indefinitely; this creates significant pressure on the garbage collector.
   * ` build `: does 'go build -a std'.
 
-# Metrics
+## Metrics
 
 Metrics collected are:
   * ` allocated `: amount of memory allocated, per iteration, in bytes
@@ -40,11 +44,11 @@
   * ` build-rss `: max memory consumption of the build process as reported by OS, in bytes
   * ` build-time `: real time of the build, in ns
 
-# Profiles
+## Profiles
 
 The dashboard also collects a set of profiles for every commit, they are available from the [details page](http://build.golang.org/perfdetail?commit=fb3d6c1631c3f3141f33a01afb4c0a23ef0ea2cf&commit0=82f48826c6c79a3d5697d5e06cac8451f3dc3c7f&kind=builder&builder=linux-amd64-perf&benchmark=http). For usual benchmarks [CPU](http://build.golang.org/log/b023711522ca6511f2c9bfb46cdfb511fd77e967) and [memory](http://build.golang.org/log/06bd072aa0dec4936a05b7aa13b9f906b6989865) profiles are collected. For build benchmark - [perf profile](http://build.golang.org/log/34c4f0c7b7ea3521e5356b91775a026607e72d44), [per-process split of CPU time](http://build.golang.org/log/da517b4f6892af8a6b4900dbe58311b665ced00f) and [per-section size](http://build.golang.org/log/fc4287d6a9e280bf35c572c038dbc4414d60bcf8).
 
-# Perf Changes View
+## Perf Changes View
 
 The [view](http://build.golang.org/perf) allows to see aggregate information about significant performance changes caused by recent commits.
 
@@ -61,3 +65,4 @@
   * The rest describe commit.
 
 You can click on any positive/negative delta to see details about the change.
+
diff --git a/Performance.md b/Performance.md
index 5133d67..461bd41 100644
--- a/Performance.md
+++ b/Performance.md
@@ -1,4 +1,6 @@
-# Debugging performance issues in Go programs
+---
+title: Debugging performance issues in Go programs
+---
 
 -- originally written by Dmitry Vyukov
 
@@ -675,3 +677,4 @@
 toolbox, that you can use to at least analyze and understand what happens.
 [Profiling Go Programs](https://go.dev/blog/profiling-go-programs) is a good
 tutorial on usage of CPU and memory profilers to optimize a simple program.
+
diff --git a/Plan9.md b/Plan9.md
index 851210e..2a6b300 100644
--- a/Plan9.md
+++ b/Plan9.md
@@ -1,8 +1,12 @@
-# Introduction
+---
+title: Go on Plan 9
+---
+
+## Introduction
 
 An experimental port of [Go](https://golang.org) is available for the [Plan 9 from Bell Labs](https://9p.io/plan9) operating system.
 
-# Supported architectures
+## Supported architectures
 
 The Plan 9 port of Go is available for the following architectures:
 
@@ -10,7 +14,7 @@
 * amd64
 * arm
 
-# Supported kernels
+## Supported kernels
 
 The current Go distribution has been tested successfully on:
 
@@ -18,7 +22,7 @@
 * [9front](http://9front.org) amd64 kernel
 * Bell Labs [9k](https://github.com/0intro/plan9-contrib/tree/master/sys/src/9k) (amd64) kernel
 
-# Requirements
+## Requirements
 
 Go on Plan 9 requires a kernel providing the following system calls:
 
@@ -50,13 +54,13 @@
     ip/ipconfig -P loopback /dev/null 127.1
     ip/ipconfig -P loopback /dev/null ::1
 
-# Installation
+## Installation
 
 Since Go is written in Go, you may want to bootstrap Go with Go 1.4.3, which is the latest release of Go written in C.
 
 However, since the Go 1.4 runtime wasn't mature enough on Plan 9, we recommend you to bootstrap from a more recent version of Go, using another operating system.
 
-## Bootstrapping from Plan 9
+### Bootstrapping from Plan 9
 
 First, install Go 1.4:
 
@@ -70,7 +74,7 @@
 ```
 
 The [syscall-exec](http://9legacy.org/go/patch/syscall-exec.diff) patch is required if you're running a machine with SMP enabled.
-		
+
 Then, set the `GOROOT_BOOTSTRAP` environment variable:
 
 ```sh
@@ -88,7 +92,7 @@
 ```
 Go is now ready to use.
 
-## Bootstrapping from another operating system
+### Bootstrapping from another operating system
 
 First, you must have installed Go on this operating system, following the [Go installation instructions](https://go.dev/doc/install).
 
@@ -119,7 +123,7 @@
 GOROOT_BOOTSTRAP=/tmp/go-plan9-386-bootstrap
 ```
 
-## Bootstraping from binaries
+### Bootstraping from binaries
 
 A [binary package](https://storage.googleapis.com/go-builder-data/gobootstrap-plan9-386.tar.gz) for plan9/386 is available.
 
@@ -141,11 +145,11 @@
 
 Other binary packages are available [here](http://9legacy.org/download.html) and [here](https://github.com/fhs/go-plan9-binaries).
 
-# Git
+## Git
 
 Git is not available on Plan 9. However a [Git wrapper](http://9legacy.org/9legacy/tools/git) is available as a simple rc script. It includes everything you need to use the [go](https://pkg.go.dev/cmd/go) tool.
 
-# Builders
+## Builders
 
 Three Plan 9 builders are currently running and reporting the results to the [Go Dashboard](http://build.golang.org/):
 
@@ -153,26 +157,27 @@
 * plan9-amd64-9front is running Plan 9 from Bell Labs (amd64 kernel) on a virtual machine
 * plan9-arm is running Plan 9 from Bell Labs (arm kernel) on a Raspberry Pi 3
 
-# Status
+## Status
 
 The Plan 9 port of Go is considered experimental and is still a work-in-progress. There is a number of known issues available on the [Go issue tracker](https://go.dev/issues).
 
-# Issues
+## Issues
 
 Many issues are currently open on the [Go issue tracker](https://go.dev/issues) with the [OS-Plan9](https://github.com/golang/go/issues?q=is%3Aopen+is%3Aissue+label%3AOS-Plan9) label.
 
-# Help
+## Help
 
 The Plan 9 port of Go is a community-driven port. Any help to improve the Go port on Plan 9 would be highly appreciated.
 
-# Maintainer
+## Maintainer
 
 Many people have contributed to the Plan 9 port of Go. Since December 2013, the Plan 9 port of Go is maintained by [David du Colombier](https://github.com/0intro).
 
-# Trivia
+## Trivia
 
 Many parts of Go are directly influenced by the Plan 9 system, as two of its three main designers worked on Plan 9 at Bell labs. Some of these connections are:
 * The [Gopher](https://go.dev/doc/faq#gopher) is designed by Renée French, who also designed Glenda, the Plan 9 bunny.
 * The Gc compiler hosted in this repository uses a [Plan 9-style loader](https://go.dev/doc/faq#What_compiler_technology_is_used_to_build_the_compilers).
 * [Go's Assembler](https://go.dev/doc/asm) is based on Plan 9's syntax. The Go 1.x stack-based ABI is borrowed from Plan 9.
-* Although not recommended, there was also some support for [[Plan 9 C|GcToolchainTricks]], with the original standard library being descended from Plan 9's libc. The [self-hosting design document](https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8) talks about this history.
+* Although not recommended, there was also some support for [Plan 9 C](GcToolchainTricks), with the original standard library being descended from Plan 9's libc. The [self-hosting design document](https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8) talks about this history.
+
diff --git a/Podcasts.md b/Podcasts.md
index a112532..2981415 100644
--- a/Podcasts.md
+++ b/Podcasts.md
@@ -1,3 +1,7 @@
+---
+title: Podcasts
+---
+
 ## Active podcast shows
 * [Go Time](http://gotime.fm) - Erik St. Martin, Carlisia Campos, Brian Ketelsen, recorded weekly and streamed live at 3PM EST at http://changelog.com/live
 * [go podcast()](https://go.transistor.fm/) - Dominic St-Pierre, recorded bi-weekly, ~15 minutes, topic based.
@@ -26,4 +30,4 @@
 * [Golang Best Practices](https://go.unicorn.tv/podcasts/golang-best-practices) _2014-09-08_
 * [An Introduction to the Go Programming Language with Andrew Gerrand](http://hanselminutes.com/416/an-introduction-to-the-go-programming-language-with-andrew-gerrand) _2014-03-28_
 * [FLOSS Weekly #284: The Go Language](https://twit.tv/shows/floss-weekly/episodes/284) _2014-02-19_
-* [Series: The Go Language - GrokPodcast](http://www.grokpodcast.com/series/a-linguagem-go/) (_in portuguese_) _2013-07-17_
\ No newline at end of file
+* [Series: The Go Language - GrokPodcast](http://www.grokpodcast.com/series/a-linguagem-go/) (_in portuguese_) _2013-07-17_
diff --git a/PortingPolicy.md b/PortingPolicy.md
index ea64a78..05f5c30 100644
--- a/PortingPolicy.md
+++ b/PortingPolicy.md
@@ -1,10 +1,14 @@
-# Introduction
+---
+title: PortingPolicy
+---
+
+## Introduction
 
 This document is about the policy for adding a new port to the main Go repository. By port we mean an operating system + architecture combination, such as linux/386.
 
 The goal of this policy is to clarify what the Go project tries to promise for ports and to avoid the accumulation of incomplete or broken ports.
 
-# Requirements for a new port
+## Requirements for a new port
 
 Before any code relating to a port can be added to the main Go repository, the following must all be done:
 
@@ -23,11 +27,11 @@
 
 Once those conditions are satisfied, the Go team can accept the port and begin to merge the CLs. Once the CLs are all submitted, all.bash must pass, so that the builder reports "ok" in the dashboard.
 
-# Other repositories
+## Other repositories
 
 Although it is not part of the core repository, the x/sys repository should add support for the new port before the release happens because it is the official place to add new system calls.  It's OK to add support for a new port in the x/sys repository before working on the main repository.
 
-# First class ports
+## First class ports
 
 Some ports are considered "first class". The distinction is mostly about releases.
 
@@ -54,13 +58,13 @@
 
 All Linux first class ports are for systems using glibc only.  Linux systems using other C libraries are not fully supported and are not treated as first class.
 
-# Maintaining a port
+## Maintaining a port
 
 In general, people changing the Go tools and standard library must not break any of the first class ports listed above.  A change that breaks a first class port must be fixed or rolled back.
 
 A change that breaks a secondary port will not necessarily be rolled back.  If there is some reasonable possibility of breaking a secondary port developers are encouraged to make sure that the ports continue to work (for example, by running [port-specific trybots](https://go.dev/wiki/Slowbots)).  Developers are also encouraged to notify secondary port maintainers of any possible port-specific problems, which they can do by reaching out to the appropriate [GitHub team(s)](https://github.com/orgs/golang/teams/port-maintainers/teams).  That said, ultimately the port maintainers are responsible for keeping their ports working.
 
-# Broken ports
+## Broken ports
 
 * If a port stops working, including the case where a builder stops working, we can decide to mark the port as broken.
   * Or in some cases we can roll back the change that broke it; this is a judgement call.
@@ -71,7 +75,7 @@
 
 The goal here is not to get ports out of the tree; if people are actively working on the port they should have as much as latitude as possible to fix it.  Removing a formerly working port should be a last resort.  Finding a new maintainer is always preferable.
 
-# Removing old operating system and architecture versions
+## Removing old operating system and architecture versions
 
 To allow development effort to focus on systems that are widely available to Go users, 
 over time we may remove support for older operating systems and architectures, 
@@ -87,10 +91,10 @@
 When the considerations weigh in favor of removing a port and a [proposal is accepted](https://go.dev/s/proposal-process), Go 1._N_'s release notes will announce that support for a given operating system or architecture will be dropped in Go 1.(_N_+1).
 
 
-# Getting started
+## Getting started
 
 See https://groups.google.com/forum/#!topic/golang-dev/SRUK7yJVA0c for some discussion on how to go about writing a new port.
 
-# Comments and Questions
+## Comments and Questions
 
-Comments or questions about the policy should be sent to golang-dev.
\ No newline at end of file
+Comments or questions about the policy should be sent to golang-dev.
diff --git a/PriorDiscussion.md b/PriorDiscussion.md
index d1453cd..1e978cf 100644
--- a/PriorDiscussion.md
+++ b/PriorDiscussion.md
@@ -1,4 +1,6 @@
-# Prior Discussion
+---
+title: Prior Discussion
+---
 
 ## Background
 
@@ -57,4 +59,4 @@
 
 ### Weak references
 
-Unlikely to be added. See discussion at https://groups.google.com/forum/#!topic/golang-nuts/PYWxjT2v6ps, and https://groups.google.com/forum/?pli=1#!topic/golang-nuts/MMWXRANh0-g which points out that `sync.Pool` is a specific form of weak reference.
\ No newline at end of file
+Unlikely to be added. See discussion at https://groups.google.com/forum/#!topic/golang-nuts/PYWxjT2v6ps, and https://groups.google.com/forum/?pli=1#!topic/golang-nuts/MMWXRANh0-g which points out that `sync.Pool` is a specific form of weak reference.
diff --git a/Projects.md b/Projects.md
index 09a9330..59a1a53 100644
--- a/Projects.md
+++ b/Projects.md
@@ -1,4 +1,8 @@
-# Indexes and search engines
+---
+title: Projects
+---
+
+## Indexes and search engines
 
 These sites provide indexes and search engines for Go packages:
 
@@ -10,11 +14,11 @@
 * [Sourcegraph](https://sourcegraph.com/) - Source indexing, analysis and search.
 * [Codeseek.com](https://codeseek.com/) - Custom search engine with a wealth of Go blogs.
 
-## Dead projects
+### Dead projects
 
 If you find a project in this list that is dead or broken, please either mark it as such or mention it in the #go-nuts IRC channel.
 
-# Table of Contents
+## Table of Contents
 * [API Services and Tools](#api-services-and-tools)
 * [Artificial Intelligence](#artificial-intelligence)
 * [Astronomy](#astronomy)
@@ -94,20 +98,20 @@
 * [Web Libraries](#web-libraries)
 * [Windows](#windows)
 
-## API Services and Tools
+### API Services and Tools
 
-### GraphQL
+#### GraphQL
   * [GraphJin](https://github.com/dosco/graphjin) - Instant GraphQL API for Postgres. No code needed, compiles GraphQL to SQL.
 
-### MTProto
+#### MTProto
   * [MTProto](https://github.com/xelaj/mtproto) - Full-native implementation of Telegram API written on pure Go.
 
-## Artificial Intelligence
+### Artificial Intelligence
 
   * [langchaingo](https://github.com/tmc/langchaingo) - LangChainGo is a framework for developing applications powered by language models.
   * [go-openaih](ttps://github.com/sashabaranov/go-openai) - Go bindings for OpenAI APIs.
 
-## Astronomy
+### Astronomy
 
   * [go-fits](https://github.com/siravan/fits) - FITS (Flexible Image Transport System) format image and data reader
   * [astrogo/fitsio](https://github.com/astrogo/fitsio) - Pure Go FITS (Flexible Image Transport System) format image and data reader/writer
@@ -117,7 +121,7 @@
   * [novas](https://github.com/pebbe/novas) - Interface to the Naval Observatory Vector Astrometry Software (NOVAS)
   * [utdfgo](https://github.com/attron/utdfgo) - Spacecraft UTDF Packet Reader and Decoder
 
-## Build Tools
+### Build Tools
 
   * [beku](https://github.com/shuLhan/beku) - A library and program to manage packages in user's environment (GOPATH or vendor directory)
   * [colorgo](https://github.com/songgao/colorgo) - Colorize go build output
@@ -140,7 +144,7 @@
   * [SCons Go Tools](https://launchpad.net/sconsgo) - A collection of builders that makes it easy to compile Go projects in SCons
   * [Task](https://github.com/go-task/task) - A task runner / simple alternative to Make
 
-## Caching
+### Caching
 
   * [cache2go](https://github.com/muesli/cache2go) - Concurrency-safe caching library with expiration capabilities and access counters
   * [cache](https://github.com/chai2010/cache) - LevelDB style LRU cache for Go, support non GC object cache.
@@ -157,7 +161,7 @@
   * [rend](https://github.com/Netflix/rend) - A memcached proxy that manages data chunking and L1/L2 caches
   * [YBC bindings](https://github.com/valyala/ybc/tree/master/bindings/go/ybc) - Bindings for YBC library providing API for fast in-process blob cache
   * [g2cache](https://github.com/kelvins-io/g2cache) -A coordinated local and external two-level caching scheme
-## Cloud Computing
+### Cloud Computing
 
   * [aws-sdk-go](https://github.com/aws/aws-sdk-go) - AWS SDK for the Go programming language.
   * [Docker](http://docker.io) - The Linux container runtime. Developed by dotCloud.
@@ -174,7 +178,7 @@
   * [swift](https://github.com/ncw/swift) - Go language interface to Swift / Openstack Object Storage / Rackspace cloud files
   * [Tsuru](http://www.tsuru.io/) - Tsuru is an open source polyglot cloud computing platform as a service (PaaS), developed by Globo.com.
 
-## Command-line Option Parsers
+### Command-line Option Parsers
 
   * [argcfg](http://code.google.com/p/goargcfg/) - Use reflection to populate fields in a struct from command line arguments
   * [autoflags](https://github.com/artyom/autoflags) - Populate go command line app flags from config struct
@@ -202,7 +206,7 @@
   * [xflags](https://github.com/cavaliergopher/xflags) - Expressive flags for Go
   * [writ](https://github.com/ziuchkovski/writ) - A flexible option parser with thorough test coverage.  It's meant to "just work" and stay out of the way.
 
-## Command-line Tools
+### Command-line Tools
 
   * [amqp-message-remover](https://github.com/nazar256/amqp-message-remover) - Removes unwanted messages by regexp pattern from AMQP queue
   * [Arduino-cli](https://github.com/arduino/arduino-cli) - Arduino CLI is an all-in-one solution that provides builder, boards/library manager, uploader, discovery and many other tools needed to use any Arduino compatible board and platforms.
@@ -251,7 +255,7 @@
   * [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency.
   * [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices.
   * [mani](https://github.com/alajmo/mani) - CLI tool to help you manage multiple repositories
-## Compression
+### Compression
 
   * [brotli](https://github.com/google/brotli/tree/master/go/cbrotli) - go bindings for Brotli algorithm.
   * [compress](https://github.com/klauspost/compress) - Faster drop in replacements for gzip, zip, zlib, deflate.
@@ -275,14 +279,14 @@
   * [zstd](https://github.com/klauspost/compress/tree/master/zstd) - Pure Go Zstandard compression/decompression.
 
 
-## Concurrency and Goroutines
+### Concurrency and Goroutines
 
   * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool.
   * [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving.
   * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool.
   * [worker](https://github.com/duzy/worker) - An easy and lightweight concurrent job framework.
 
-## Configuration File Parsers
+### Configuration File Parsers
 
   * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile
   * [`code.soquee.net/env`](https://code.soquee.net/env/) — Load environment variables from `.env` or similar files, or from any `io.Reader` and populate the local environment.
@@ -317,7 +321,7 @@
     * [goyaml](http://goyaml.googlecode.com/) - A port of LibYAML to Go
     * [go-yaml](https://github.com/goccy/go-yaml) - YAML support for the Go language
 
-## Console User Interface
+### Console User Interface
 
   * [ansi](https://github.com/mgutz/ansi) - Easily create ansi escape code strings and closures to format, color console output
   * [ansiterm](https://github.com/hotei/ansiterm) - pkg to drive text-only consoles that respond to ANSI escape sequences
@@ -352,15 +356,15 @@
   * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data.
   * [yandex-weather-cli](https://github.com/msoap/yandex-weather-cli) - Command line interface for Yandex weather service
 
-## Continuous Integration
+### Continuous Integration
 
   * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system.
   * [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls
 
-## Cryptocurrency
+### Cryptocurrency
   * [Skycoin](https://github.com/skycoin/skycoin) - Skycoin is a next-generation cryptocurrency written in Go. Skycoin is not designed to add features to Bitcoin, but rather improves Bitcoin by increasing simplicity, security and stripping out everything non-essential.
 
-## Cryptography
+### Cryptography
 
   * [BLAKE2b](https://github.com/dchest/blake2b) - Go implementation of BLAKE2b hash function
   * [cryptogo](https://github.com/vgorin/cryptogo) - some useful cryptography-related functions, including paddings (PKCS7, X.923), PBE with random salt and IV
@@ -391,7 +395,7 @@
   * [tiger](https://github.com/cxmcc/tiger) - Tiger cryptographic hashing algorithm
   * [whirlpool](https://github.com/jzelinskie/whirlpool) - whirlpool cryptographic hashing algorithm
 
-## Data Processing
+### Data Processing
 
   * [automi](https://github.com/vladimirvivien/automi) - Compose process and integration flows on Go channels
   * [Gleam](https://github.com/chrislusf/gleam) - Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, runs standalone or distributedly.
@@ -407,9 +411,9 @@
   * [rrd](https://github.com/ziutek/rrd) - Bindings for rrdtool.
   * [XConv](https://github.com/howcrazy/xconv) - Convert any value between types (base type, struct, array, slice, map, etc.)
 
-## Data Structures
+### Data Structures
 
-### Collections
+#### Collections
 
   * [collections](https://github.com/cosn/collections) - Several common data structures
   * [data-structures](https://github.com/timtadh/data-structures) - A collection of data-structures (ArrayList, SortedList, Set, AVL Tree, Immutable AVL Tree, B+Tree, Ternary Search Trie, Hash Table (Separate Chaining), Linear Hash Table)
@@ -417,13 +421,13 @@
   * [Tideland golib](https://github.com/tideland/golib) - A collections library
   * [GoDS](https://github.com/emirpasic/gods) - Sets, Lists, Stacks, Maps, Trees, Queues, and much more
 
-### Hashtables
+#### Hashtables
 
   * [bimap](https://github.com/diogobeda/bimap) - A simple bidirectional map implementation
   * [gohash](http://code.google.com/p/gohash/) - A simple linked-list hashtable that implements sets and maps
   * [go-maps](https://github.com/serge-hulne/go-maps) - Go maps generalized to interfaces
 
-### Lists
+#### Lists
 
   * [fs2/mmlist](https://github.com/timtadh/fs2#mmlist) - A memory mapped list.
   * [GoArrayList](https://github.com/PhilStephens/GoArrayList) - GoArrayList is a Go language substitute for the Java class ArrayList, with very nearly all features.
@@ -436,7 +440,7 @@
   * [skiplist](https://pkg.go.dev/github.com/fumin/skiplist) - Skiplist data structure ported from Redis's Sorted Sets.
   * [stackgo](https://github.com/alediaferia/stackgo) - A fast slice-based stack implementation.
 
-### Queues
+#### Queues
 
   * [fifo\_queue](https://github.com/yasushi-saito/fifo_queue) - Simple FIFO queue
   * [figo](https://github.com/jasocox/figo) - A simple fifo queue with an optional thread-safe version.
@@ -449,20 +453,20 @@
   * [queued](https://github.com/timtadh/queued) - A simple network queue daemon
   * [queue](https://github.com/kavehmz/queue) - A queue manager on top of Redis
 
-### Graphs
+#### Graphs
 
   * [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms
   * [graphs](https://github.com/thcyron/graphs) - Implementation of various tree, graph and network algorithms
   * [groph](https://codeberg.org/fractalqb/groph) - A pure Go library of graphs and algorithms
 
-### Sets
+#### Sets
 
   * [disjoint](https://github.com/spakin/disjoint) - Disjoint sets (union-find algorithm with path compression)
   * [golang-set](https://github.com/deckarep/golang-set) - A full thread-safe and unsafe set implementation for Go.
   * [goset](https://github.com/fatih/goset) - A simple, thread safe Set implementation
   * [set](https://github.com/fatih/set) - Set data structure for Go
 
-### Trees
+#### Trees
 
   * [b](https://github.com/cznic/b) - Package b implements B+trees with delayed page split/concat and O(1) enumeration. Easy production of source code for B+trees specialized for user defined key and value types is supported by a simple text replace.
   * [btree](https://bitbucket.org/santucco/btree) - Package btree implements persistent B-trees with fixed size keys, http://en.wikipedia.org/wiki/Btree
@@ -481,7 +485,7 @@
   * [rtreego](https://github.com/dhconnelly/rtreego) - an R-Tree library
   * [triego](https://github.com/alediaferia/triego) - Simple trie implementation for storing words
 
-### Other
+#### Other
 
   * [aurora](https://github.com/xuri/aurora) - Cross-platform Beanstalk queue server console.
   * [bigendian](https://bitbucket.org/taruti/bigendian) - binary parsing and printing
@@ -517,24 +521,24 @@
   * [weightedrandom](https://github.com/minaguib/weightedrandom) - A library for efficient weighted random picking
   * [xlsx](https://github.com/tealeg/xlsx) - A library to help with extracting data from Microsoft Office Excel XLSX files.
 
-## Databases
+### Databases
 
-See also [[SQLDrivers page|SQLDrivers]].
+See also [SQLDrivers page](SQLDrivers).
 
-### CockroachDB
+#### CockroachDB
   * [cockroachdb](https://github.com/cockroachdb/cockroach) - A Scalable, Survivable, Strongly-Consistent SQL Database
 
-### Hazelcast IMDG
+#### Hazelcast IMDG
   * [Hazelcast IMDG Go Client](https://github.com/hazelcast/hazelcast-go-client) - The official Go client implementation for [Hazelcast IMDG](http://hazelcast.org), the open source in-memory data grid.
 
-### MongoDB
+#### MongoDB
 
   * [Mongo Driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB Go driver
   * [MongoDB Exporter](https://github.com/percona/mongodb_exporter) - A Prometheus metrics exporter for MongoDB
   * [mongobetween](https://github.com/coinbase/mongobetween) - A lightweight MongoDB connection pooler written in Golang
   * [rocks-stata](https://github.com/facebookgo/rocks-strata) - MongoDB Backup Utility
 
-### MySQL
+#### MySQL
 
   * [Go-MySQL-Driver](https://github.com/go-sql-driver/mysql) - A lightweight and fast MySQL-Driver for Go's database/sql package
   * [MyMySQL](https://github.com/ziutek/mymysql) - MySQL Client API written entirely in Go.
@@ -542,12 +546,12 @@
   * [TiDB](https://github.com/pingcap/tidb) - MySQL compatible distributed database modeled after Google's F1 design.
   * [vitess](https://github.com/youtube/vitess) - Scaling MySQL databases for the web
 
-### ODBC
+#### ODBC
 
   * [go-odbc](https://github.com/weigj/go-odbc) - ODBC Driver for Go
   * [odbc3-go](https://bitbucket.org/rj/odbc3-go/) - This package is wrapper around ODBC (version 3).
 
-### PostgreSQL
+#### PostgreSQL
 
   * [`code.soquee.net/migrate`](https://code.soquee.net/migration/)   A library for generating, applying, and listing PostgreSQL database migrations using a mechanism that's compatible with Rust's Diesel.
   * [go-libpq](https://github.com/jgallagher/go-libpq) - cgo-based Postgres driver for Go's database/sql package
@@ -558,11 +562,11 @@
   * [pq](https://github.com/lib/pq) - Pure Go PostgreSQL driver for database/sql
   * [yoke](https://github.com/nanopack/yoke) - Postgres high-availability cluster with auto-failover and automated cluster recovery
 
-### QL
+#### QL
 
   * [ql](https://github.com/cznic/ql) - A pure Go embedded (S)QL database.
 
-### Redis
+#### Redis
 
   * [godis](https://github.com/simonz05/godis) - Simple client for Redis
   * [Go-Redis](https://github.com/alphazero/Go-Redis) - Client and Connectors for Redis key-value store
@@ -571,11 +575,11 @@
   * [redis](https://github.com/vmihailenco/redis) - Redis client for Go
   * [rueidis](https://github.com/rueian/rueidis) - Fast Redis RESP3 client that supports client side caching and auto pipelining.
 
-### [RethinkDB](http://www.rethinkdb.com/)
+#### [RethinkDB](http://www.rethinkdb.com/)
 
   * [GoRethink](https://github.com/dancannon/gorethink) - RethinkDB Driver for Go
 
-### SQLite
+#### SQLite
 
   * [gosqlite3](https://github.com/kuroneko/gosqlite3) - Go Interface for SQLite3
   * [gosqlite (forked)](https://github.com/gwenn/gosqlite) - A fork of gosqlite
@@ -584,11 +588,11 @@
   * [go-sqlite-lite](https://github.com/bvinc/go-sqlite-lite) - A simple SQLite package for Go.
   * [mattn's go-sqlite3](https://github.com/mattn/go-sqlite3) - sqlite3 driver conforming to the built-in database/sql interface
 
-### Vertica
+#### Vertica
 
   * [vertica-sql-go](https://github.com/vertica/vertica-sql-go) - A pure Go driver for Vertica database.
 
-### ORM
+#### ORM
 
   * [beedb](https://github.com/astaxie/beedb) - beedb is an ORM for Go. It lets you map Go structs to tables in a database
   * [ent](https://github.com/facebookincubator/ent) - An entity framework for Go
@@ -608,7 +612,7 @@
   * [reform](https://github.com/AlekSi/reform) - A better ORM for Go, based on non-empty interfaces and code generation.
   * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM for Go with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support.
 
-### Key-Value-Stores
+#### Key-Value-Stores
 
   * [bolt](https://github.com/boltdb/bolt) - Persistent key/value store inspired by LMDB.
   * [dbm](https://github.com/cznic/exp/tree/master/dbm) - Package dbm (WIP) implements a simple database engine, a hybrid of a hierarchical and/or a key-value one.
@@ -624,13 +628,13 @@
   * [levigo](https://github.com/jmhodges/levigo) - levigo provides the ability to create and access LevelDB databases.
   * [persival](https://github.com/nu7hatch/persival) - Programatic, persistent, pseudo key-value storage
 
-### Graph Databases
+#### Graph Databases
 
   * [cayley](https://github.com/google/cayley) - 100% Go graph database, inspired by Freebase and the Google Knowledge Graph.
   * [Dgraph](https://github.com/dgraph-io/dgraph) - Fast, Distributed Graph DB with a GraphQL-like API.
   * [go-gremlin](https://github.com/go-gremlin/gremlin) - A Go client for the Apache TinkerTop Graph analytics framework (Gremlin server).
 
-### NoSQL
+#### NoSQL
 
   * [couchgo](https://github.com/lancecarlson/couchgo) - The most feature complete CouchDB Adapter for Go. Modeled after couch.js.
   * [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics
@@ -639,7 +643,7 @@
   * [nodb](https://github.com/lunny/nodb) - A pure Go embed Nosql database with kv, list, hash, zset, bitmap, set.
   * [tiedot](https://github.com/HouzuoGuo/tiedot) - A NoSQL document database engine using JSON for documents and queries; it can be embedded into your program, or run a stand-alone server using HTTP for an API.
 
-### Other
+#### Other
 
   * [cabinet](https://bitbucket.org/ww/cabinet) - Kyoto Cabinet bindings for go
   * [camlistore](https://github.com/camlistore/camlistore) - Personal distributed storage system for life.
@@ -681,7 +685,7 @@
   * [whisper-go](https://github.com/kisielk/whisper-go) - library for working with whisper databases
   * [xo](https://github.com/xo/xo) - CLI to generate idiomatic Go code for databases
 
-## Date
+### Date
 
   * [date](https://github.com/fxtlabs/date) - A package for working with dates.
   * [date](https://github.com/rickb777/date) - For dates, date ranges, time spans, periods, and time-of-day.
@@ -693,7 +697,7 @@
   * [Tideland golib](https://github.com/tideland/golib) - Timex extensions
   * [tuesday](https://github.com/osteele/tuesday) - A Strftime implementation that's compatible with Ruby's `Time.strftime`
 
-## Development Tools
+### Development Tools
 
   * [cwrap](https://github.com/hailiang/cwrap) - Go wrapper (binding) generator for C libraries.
   * [demand](https://github.com/tv42/demand) - Download, build, cache and run a Go app easily.
@@ -729,13 +733,13 @@
   * [toggle](https://github.com/xchapter7x/toggle) - A feature toggle library with built in support for environment variable backed toggling. pluggable backing engine support.
   * [trace](https://bitbucket.org/santucco/trace) - A simple debug tracing
 
-### Emacs Tags
+#### Emacs Tags
 
   * [egotags](http://bitbucket.org/scriptdevil/egotags/) - ETags generator
   * [tago1](https://github.com/willoch/tago) - etags generator for go that builds with go 1
   * [tago](https://github.com/AlexCombas/Tago) - Emacs TAGS generator for Go source
 
-## Distributed/Grid Computing
+### Distributed/Grid Computing
 
   * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go
   * [donut](https://github.com/dforsyth/donut) - A library for building clustered services in Go
@@ -747,7 +751,7 @@
   * [Skynet](https://github.com/skynetservices/skynet) - Skynet is distributed mesh of processes designed for highly scalable API type service provision.
   * [Tideland golib](https://github.com/tideland/golib) - Includes a map/reduce library
 
-## Documentation
+### Documentation
 
   * [examplgen](https://github.com/gima/examplgen) - Insert code from .go files to documents (examples to project's readme, for instance).
   * [godocdown](https://github.com/robertkrimen/godocdown) - Format package documentation (godoc) as GitHub friendly Markdown
@@ -757,7 +761,7 @@
   * [sphinxcontrib-golangdomain](http://pypi.python.org/pypi/sphinxcontrib-golangdomain) - Sphinx domain for Go
   * [test2doc](https://code.google.com/p/test2doc/) - Generate documentation for your go units from your unit tests.
 
-## Editors
+### Editors
 
   * [A](https://github.com/as/a) - A graphical text and binary editor based on Acme
   * [Conception](https://github.com/shurcooL/Conception) - Conception is an experimental research project, meant to become a modern IDE/Language package.  [demo video](http://youtu.be/DNJ7HqlV55k)
@@ -778,7 +782,7 @@
   * [ViGo](https://github.com/kisielk/vigo) - A vim-like text editor.
   * [Wide](https://github.com/b3log/wide) - A Web-based IDE for Teams using Golang.
 
-## Email
+### Email
 
   * [chasquid](https://blitiri.com.ar/p/chasquid) - SMTP server written in Go.
   * [gmail](https://github.com/SlyMarbo/gmail) - Simple library for sending emails from a Gmail account, for people not interested in dealing with protocol details.
@@ -792,7 +796,7 @@
   * [MailHog](https://github.com/mailhog/MailHog) - Email testing service, inspired by MailCatcher.
   * [MailSlurper](https://github.com/mailslurper/mailslurper) - A handy SMTP mail server useful for local and team application development. Slurp mail into oblivion!
 
-## Error handling
+### Error handling
 
   * [`code.soquee.net/problem`](https://code.soquee.net/problem/)   Package problem implements errors for HTTP APIs similar to the ones described by [RFC7807](https://tools.ietf.org/html/rfc7807).
   * [errgo](https://github.com/juju/errgo) - Error tracing and annotation.
@@ -804,7 +808,7 @@
   * [Space Monkey errors](https://github.com/spacemonkeygo/errors) - Go's missing errors library - stack capture, error hierarchies, error tags
   * [Tideland golib](https://github.com/tideland/golib) - Detailed error values
 
-## Encodings and Character Sets
+### Encodings and Character Sets
 
   * [base58](https://github.com/tv42/base58) - Human input-friendly base58 encoding
   * [bencode-go](https://github.com/jackpal/bencode-go) - Encoding and decoding the bencode format used by the BitTorrent peer-to-peer file sharing protocol
@@ -832,7 +836,7 @@
   * [storable](https://github.com/kdar/storable) - Write perl storable data
   * [TNetstring](https://github.com/edsrzf/tnetstring-go) - tnetstrings (tagged Netstrings)
 
-## File Systems
+### File Systems
 
   * [afero](https://github.com/spf13/afero) - A File Sytem abstraction system for Go
   * [go.fs](https://github.com/daaku/go.fs) - A virtual file system abstraction layer.
@@ -840,7 +844,7 @@
   * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem.
 
 
-## Games
+### Games
 
   * [Bampf](https://github.com/gazed/bampf) - Arcade style game based on the Vu 3D engine.
   * [bloxorz](https://github.com/YouriAckx/bloxorz) - Solver for bloxorz basic levels
@@ -860,7 +864,7 @@
   * [GoChess](https://github.com/qnkhuat/gochess) - Play chess with friends on terminal
   * [Ebitengine](https://ebitengine.org/) - Ebitengine's simple API allows you to quickly and easily develop 2D games that can be deployed across multiple platforms.
 
-## GIS
+### GIS
 
   * [geojson](https://github.com/kpawlik/geojson) - Go package to quick and easy create json data in geojson format. [description](http://kpawlik.github.io/geojson)
   * [go-geom](https://github.com/twpayne/go-geom) - Efficient Open Geo Consortium-style geometries with native Go GeoJSON and WKB encoding and decoding (work-in-progress)
@@ -875,7 +879,7 @@
   * [UTM](https://github.com/im7mortal/UTM) - Bidirectional UTM-WGS84 converter
   * [gdal](https://github.com/lukeroth/gdal) - Provides a go wrapper for GDAL
 
-## Graphics and Audio
+### Graphics and Audio
 
   * [accumimage](https://github.com/spakin/accumimage) - Variant of [`image.NRGBA`](https://pkg.go.dev/image#NRGBA) and [`color.NRGBA`](https://pkg.go.dev/image/color#NRGBA) that supports accumulation and averaging of colors
   * [AnsiGo](https://github.com/fcambus/ansigo) - Simple ANSi to PNG converter written in pure Go
@@ -971,7 +975,7 @@
   * [window](https://github.com/jbrukh/window) - Optimized moving window for real-time data
   * [xmorph](https://github.com/spakin/xmorph) - Warp and morph images
 
-## GUIs and Widget Toolkits
+### GUIs and Widget Toolkits
 
   * [fyne](https://github.com/fyne-io/fyne) - Cross platform native GUI toolkit based on Material Design
   * [gio](https://gioui.org/) - Portable (iOS/tvOS, Android, Linux (Wayland/X11), macOS, Windows, FreeBSD, OpenBSD, WASM) immediate mode GUI
@@ -1001,7 +1005,7 @@
   * [go-sciter](https://github.com/sciter-sdk/go-sciter) - Bindings for the [sciter](https://sciter.com/)
   * [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by [Electron](https://www.electronjs.org/))
 
-## Hardware
+### Hardware
 
   * [gobot](https://gobot.io) - Golang framework for robotics, drones, and the Internet of Things (IoT).
   * [go.hid](https://github.com/GeertJohan/go.hid) - Provides communication with USB Human Interface Devices.
@@ -1009,7 +1013,7 @@
   * [hwio](https://github.com/mrmorphic/hwio) - Hardware I/O library for SoC boards including BeagleBone Black and Raspberry Pi.
   * [stressdisk](https://github.com/ncw/stressdisk) - Stress test your disks / memory cards / USB sticks before trusting your valuable data to them
 
-## Language and Linguistics
+### Language and Linguistics
 
   * [alpinocorpus-go](https://github.com/rug-compling/alpinocorpus-go) - A reader and a writer for Alpino corpora.
   * [go-aspell](https://github.com/trustmaster/go-aspell) - GNU Aspell spell checking library bindings for Go.
@@ -1027,7 +1031,7 @@
   * [snowball](https://github.com/kljensen/snowball) - Snowball stemmers for multiple languages
   * [textcat](https://github.com/pebbe/textcat) - N-gram based text categorization, with support for utf-8 and raw text
 
-## Logging and Monitoring
+### Logging and Monitoring
 
   * [colog](https://github.com/comail/colog) - CoLog is a prefix-based leveled execution log for Go
   * [cue](https://github.com/bobziuchkovski/cue) - Fast and flexible contextual logger.  Supports output to file, syslog, structured syslog, stdout/stderr, socket, Loggly, Honeybadger, Opbeat, Rollbar, and Sentry.
@@ -1060,7 +1064,7 @@
   * [ul](https://github.com/aletheia7/ul) - Provides macOS Sierra/OSX Unified Loggging functionality via cgo
   * [vlog](https://github.com/better0332/vlog) - Leveled log on std log for Go
 
-## Machine Learning
+### Machine Learning
 
   * [Anna](https://github.com/xh3b4sd/anna) - Artificial Neural Network Aspiration, aims to be self-learning and self-improving software.
   * [bayesian](https://github.com/jbrukh/bayesian) - A naive bayes classifier.
@@ -1083,7 +1087,7 @@
   * [paicehusk](https://github.com/Rookii/paicehusk) - Go implementation of the Paice/Husk Stemmer
   * [tfgo](https://github.com/galeone/tfgo) - Tensorflow + Go, the gopher way.
 
-## Mathematics
+### Mathematics
 
   * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Go
   * [blas](https://github.com/ziutek/blas) - Go implementation of BLAS (Basic Linear Algebra Subprograms)
@@ -1134,7 +1138,7 @@
   * [Units](https://github.com/smyrman/units) - Implements types, units, converter functions and some mathematics for some common physical types. lib
   * [vector](https://github.com/proxypoke/vector) - A small vector lib.
 
-## Microservices
+### Microservices
 
   * [car_registration](https://github.com/infiniteloopltd/GoCarRegistrationAPI) - API wrapper for worldwide car registration data
   * [go-doudou](https://github.com/unionj-cloud/go-doudou) - A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity.
@@ -1142,7 +1146,7 @@
   * [go-micro](https://github.com/micro/go-micro) - Go Micro is a microservices library which provides the fundamental building blocks for writing fault tolerant distributed systems at scale.
   * [kite](https://github.com/koding/kite) - RPC server and client framework.
 
-## Miscellaneous
+### Miscellaneous
 
   * [atexit](https://bitbucket.org/tebeka/atexit) - Simple atexit library
   * [bíogo](https://github.com/biogo/biogo) - Basic bioinformatics functions for the Go language.
@@ -1251,7 +1255,7 @@
   * [xplor](http://bitbucket.org/mpl/xplor) - Files tree browser for p9p acme
   * [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey OTP validation and auhtentication API client.
 
-## Music
+### Music
 
   * [gmask](https://github.com/fggp/gmask) - Go adaptation of the Cmask utility for Csound
   * [go-csnd6](https://github.com/fggp/go-csnd6) - Go binding to the Csound6 API
@@ -1261,9 +1265,9 @@
   * [launchpad](https://github.com/rakyll/launchpad) - A Go client for Novation Launchpad
   * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for libportmidi
 
-## Networking
+### Networking
 
-### DNS
+#### DNS
 
   * [bitz](https://github.com/nictuku/bitz) - BitMessage client node and library
   * [dingo](https://github.com/pforemski/dingo) - A DNS client in Go that supports Google DNS over HTTPS
@@ -1280,13 +1284,13 @@
   * [mdns](https://github.com/davecheney/mdns/) - Multicast DNS library for Go
   * [rescached](https://github.com/shuLhan/rescached-go/) - DNS resolver cache daemon
 
-### FTP
+#### FTP
   * [ftp4go](http://code.google.com/p/ftp4go/) - An FTP client for Go, started as a port of the standard Python FTP client library
   * [ftp](https://bitbucket.org/zombiezen/ftp/) - Package ftp provides a minimal FTP client as defined in RFC 959
   * [ftps](https://github.com/webguerilla/ftps) - An implementation of the FTPS protocol
   * [goftp](https://github.com/jlaffaye/ftp) - A FTP client library
 
-### HTTP
+#### HTTP
 
   * [apiproxy](https://sourcegraph.com/github.com/sourcegraph/apiproxy/tree) - proxy for HTTP/REST APIs with configurable cache timeouts
   * [boom](https://github.com/rakyll/boom) - HTTP(s) benchmarking tool, Apache Benchmark replacement
@@ -1305,13 +1309,13 @@
   * [sling](https://github.com/dghubble/sling) - A Go HTTP client library for creating and sending API requests.
   * [stress](https://github.com/wenjiax/stress) - Replacement of ApacheBench(ab), support for transactional requests, support for command line and package references to HTTP stress testing tool.
 
-### IMAP
+#### IMAP
 
   * [go-imap](https://github.com/emersion/go-imap) - An IMAP library for clients and servers.
   * [go-imap](https://github.com/martine/go-imap) - IMAP client library
   * [go-imap](https://github.com/mxk/go-imap) - Implementation of IMAP4rev1 client, as described in RFC 3501
 
-### Instant Messaging
+#### Instant Messaging
 
   * [gobir](http://code.google.com/p/kylelemons/source/browse?repo=gobir) - Extensible IRC bot with channel administration, seen support, and go documentation querying
   * [goexmpp](http://code.google.com/p/goexmpp/) - XMPP client implementation
@@ -1326,33 +1330,33 @@
   * [sirius](https://github.com/ortuman/sirius) - [link is broken] A fast and ultra-lightweight chat server written in Go
   * [xmpp-client](https://github.com/agl/xmpp-client) - an XMPP client with OTR (off-the-record) support
 
-### NNTP
+#### NNTP
 
   * [go-nntp](https://github.com/dustin/go-nntp) - An NNTP client and server library for go
 
-### Protocol Buffers
+#### Protocol Buffers
 
   * [gogoprotobuf](http://code.google.com/p/gogoprotobuf/) - another Go implementation of Protocol Buffers, but with extensions and code generation plugins.
   * [golang\_protobuf\_extensions](https://github.com/matttproud/golang_protobuf_extensions) - Protocol Buffer extensions to support streaming message encoding and decoding.
   * [goprotobuf](http://code.google.com/p/goprotobuf/) - the Go implementation of Google's Protocol Buffers
   * [protorpc](https://github.com/chai2010/protorpc/) - Google Protocol Buffers RPC for Go and C++
 
-### rsync
+#### rsync
 
   * [replican-sync](https://github.com/cmars/replican-sync) - An rsync algorithm implementation in Go
   * [Rsync](https://github.com/julian-gutierrez-o/rsync) - Rsync algorithm as a Go library
 
-### Telnet
+#### Telnet
 
   * [telnet](https://github.com/reiver/go-telnet) - Package telnet provides TELNET and TELNETS client and server implementations, for the Go programming language, in a style similar to the "net/http" library (that is part of the Go standard library) including support for "middleware"; TELNETS is secure TELNET, with the TELNET protocol over a secured TLS (or SSL) connection.
   * [telnet](https://github.com/ziutek/telnet) - A simple interface for interacting with Telnet connection
   * [telnets](https://github.com/reiver/telnets) - A client for the TELNETS (secure TELNET) protocol.
 
-### VNC
+#### VNC
 
   * [glibvnc](https://github.com/LukeMauldin/glibvnc) - Go wrapper using CGO for the libvnc library.
 
-### Websockets
+#### Websockets
 
   * [Gorilla WebSocket](https://github.com/gorilla/websocket) - WebSocket protocol implementation
   * [lib/websocket](https://pkg.go.dev/github.com/shuLhan/share/lib/websocket) - A library for writing websocket client and server (using epoll)
@@ -1360,7 +1364,7 @@
   * [ws-cli](https://github.com/kseo/ws-cli) - WebSocket command line client
   * [wst](https://github.com/jthestupidkid/wst) - A dead simple WebSocket tester
 
-### ZeroMQ
+#### ZeroMQ
 
   * [goczmq](https://github.com/zeromq/goczmq) - Wrapper for the CZMQv3 interface - [blog post](http://taotetek.github.io/oldschool.systems/post/goczmq1/)
   * [gozmq](https://github.com/alecthomas/gozmq) - Go Bindings for 0mq (zeromq/zmq)
@@ -1368,7 +1372,7 @@
   * [zmq3](https://github.com/pebbe/zmq3) - A Go interface to ZeroMQ (zmq, 0MQ) version 3.
   * [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ (zmq, 0MQ) version 4.
 
-### Misc Networking
+#### Misc Networking
 
   * [betwixt](https://github.com/zubairhamed/betwixt) - Betwixt implements the OMA Lightweight M2M (LWM2M) protocol for Device Management and Monitoring
   * [canopus](https://github.com/zubairhamed/canopus) - CoAP Client/Server implementation (RFC 7252)
@@ -1460,7 +1464,7 @@
   * [zero-downtime-daemon](https://bitbucket.org/PinIdea/zero-downtime-daemon) - Configurable zero downtime daemon (Hot Update) framework for any kind of TCP,HTTP,FCGI services
   * [zeroupgrade](https://github.com/thcyron/zeroupgrade) - Upgrades network servers with zero downtime
 
-## Operating System Interfaces
+### Operating System Interfaces
 
   * [Go FUSE file system library](http://bazil.org/fuse/) - From-scratch implementation of the kernel-userspace communication protocol based on Russ Cox'.
   * [Go-fuse](https://github.com/hanwen/go-fuse) - Library to write FUSE filesystems in Go
@@ -1469,11 +1473,11 @@
   * [inspect/os](https://github.com/square/inspect) - Metrics library for operating system measurements (Linux/MacOSX)
   * [service](https://github.com/kardianos/service) - Service will install / un-install, start / stop, and run a program as a service (daemon) on Windows/Linux and OSX.
 
-## Option Types
+### Option Types
 
 * [opt](https://github.com/reiver/go-opt) - Package opt implements an optional-type, for the Go programming language. In other programming languages, an optional-type might be know as: a option type, or a maybe type.
 
-## Other Random Toys, Experiments and Example Code
+### Other Random Toys, Experiments and Example Code
 
   * [goconc](http://code.google.com/p/goconc/) - A collection of useful concurrency idioms and functions for Go, compiled
   * [go-crazy](https://github.com/droundy/go-crazy) - An experimental source-to-source compiler for go
@@ -1490,7 +1494,7 @@
   * [shadergo](https://github.com/gyuque/shadergo) - shader test using Go
   * [travisci-golang-example](https://github.com/atotto/travisci-golang-example) - Travis-CI example for Go
 
-## P2P and File Sharing
+### P2P and File Sharing
 
   * [DHT](https://github.com/nictuku/dht) - Kademlia DHT node used by Taipei-Torrent, compatible with BitTorrent
   * [DHT](https://github.com/shiyanhui/dht) - BitTorrent DHT Protocol && DHT Spider.
@@ -1503,7 +1507,7 @@
   * [Tendermint](https://github.com/tendermint/tendermint) - P2P Byzantine-Fault-Tolerant consensus & blockchain stack
   * [wgo](https://github.com/royger/wgo) - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code
 
-## Programming
+### Programming
 
   * [go-clang](http://github.com/go-clang) - cgo bindings to the C-API of libclang
   * [godeferred](https://github.com/mattn/godeferred) - port of jsdeferred: http://cho45.stfuawsc.com/jsdeferred/
@@ -1514,7 +1518,7 @@
   * [sh](https://github.com/mvdan/sh) - a shell/bash parser and formatter
   * [Shuffle](https://github.com/earthboundkid/shuffle) - Implementation of the Fisher Yates shuffle (or Knuth shuffle) in Go.
 
-## Resource Embedding
+### Resource Embedding
 
   * [fileb0x](https://github.com/UnnoTed/fileb0x) - Simple tool to embed files in go with focus on "customization" and ease to use.
   * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code.
@@ -1523,12 +1527,12 @@
   * [implant](https://github.com/skx/implant/) - implant allows embedding static resources, from a series of directories (recursively).
   * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
 
-## RPC
+### RPC
 
   * [gowsdl](https://github.com/hooklift/gowsdl) - WSDL code generation
   * [gRPC](https://grpc.io) - Google's multi-language RPC framework with Go support
 
-## Scanner and Parser Generators
+### Scanner and Parser Generators
 
   * [ebnf2y](http://github.com/cznic/ebnf2y) - Utility for converting EBNF grammars into yacc compatible skeleton .y files.
   * [flexgo](https://github.com/pebbe/flexgo) - A version of flex that can produce Go code.
@@ -1542,7 +1546,7 @@
   * [y](http://github.com/cznic/y) - Package y converts .y (yacc) source files to data suitable for a parser generator.
   * [yy](http://github.com/cznic/yy) - yacc to yacc compiler.
 
-## Security
+### Security
 
   * [acme](https://github.com/hlandau/acme) - ACME certificate acquisition tool
   * [acra](https://github.com/cossacklabs/acra) - SQL database protection suite: strong selective encryption, SQL injections prevention, intrusion detection system
@@ -1553,11 +1557,11 @@
   * [lego](https://github.com/xenolf/lego) - Let's Encrypt client and ACME library
   * [webseclab](https://github.com/yahoo/webseclab) - a sample set of web security test cases and a toolkit to construct new ones
 
-## Simulation Modeling
+### Simulation Modeling
 
   * [godes](https://github.com/agoussia/godes) - Library for building discrete event simulation models
 
-## Sorting
+### Sorting
 
   * [bubble-sort](https://git.darknebu.la/Algorithms/sort/src/branch/master/bubble-sort) - minimal implementation of the [bubble-sort algorithm](https://en.wikipedia.org/wiki/Bubble_sort)
   * [cocktail-shaker-sort](https://git.darknebu.la/Algorithms/sort/src/branch/master/cocktail-shaker-sort) - minimal implementation of the [cocktail-shaker-sort algorithm](https://en.wikipedia.org/wiki/Cocktail_shaker_sort)
@@ -1567,7 +1571,7 @@
   * [tarjan](http://github.com/looplab/tarjan) - Graph loop detection function based on Tarjan's algorithm
   * [timsort](https://github.com/psilva261/timsort) - Fast, stable sort, uses external comparator or sort.Interface
 
-## Source Code Management
+### Source Code Management
 
   * [Gitfile](https://github.com/bradurani/Gitfile) - A lightweight package manager for installing git repos
   * [go-deps](https://github.com/sourcegraph/go-deps) - Analyzes and recursively installs Go package deps (library functionality similar to ` go get `)
@@ -1581,14 +1585,14 @@
   * [nut](https://github.com/AlekSi/nut) - Nut is a tool to manage versioned Go source code packages, called "nuts".
   * [vcstool](https://github.com/wjwwood/vcstool) - VCS abstraction tool
 
-## Storage
+### Storage
 
   * [libStorage](https://github.com/emccode/libstorage) - an open source, platform agnostic, storage provisioning and orchestration framework, model, and API
   * [Minio](https://minio.io/) - Object Storage compatible with Amazon S3 API
   * [OpenEBS](https://openebs.io) - Containerized, Open source block storage for your containers,integrated tightly into K8S and other environments and based on distributed block storage and containerization of storage control
   * [storage](https://github.com/Xuanwo/storage) - An application-oriented unified storage layer for Golang
 
-## Strings and Text
+### Strings and Text
 
   * [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots
   * [asciidoctor-go](https://sr.ht/~shulhan/asciidoctor-go/) - Native Go module for parsing and converting asciidoc markup language.
@@ -1650,7 +1654,7 @@
   * [useragent](https://github.com/xojoc/useragent) - User agent string parser
   * [xurls](https://github.com/mvdan/xurls) - Extract urls from text
 
-## Testing
+### Testing
 
   * [assert](https://github.com/chai2010/assert) - Assert for go test.
   * [assert](https://github.com/golangplus/testing/tree/master/assert) - Handy assert package.
@@ -1697,24 +1701,24 @@
   * [Testify](https://github.com/stretchrcom/testify) - A set of packages that provide many tools for testifying that your code will behave as you intend.
   * [ut](https://github.com/philpearl/ut) - Awesome mocks without magic.
 
-## Transpiler
+### Transpiler
 
   * [c4go](https://github.com/Konstantin8105/c4go) - Transpiling C code to Go code.
   * [f4go](https://github.com/Konstantin8105/f4go) - Transpiling Fortran code to Go code.
 
-## Validation
+### Validation
 
   * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
   * [validation](https://github.com/kdar/validation) - Simple independent struct/key-value validation
 
-## Version Control
+### Version Control
 
   * [gitea](https://github.com/go-gitea/gitea) - Git with a cup of tea, painless self-hosted git service
   * [git (in go)](https://github.com/dskinner/git) - Minimal working git client in Go
   * [gogs](http://gogs.io/) - Self-hosting Git Server in Go
   * [semver](https://github.com/blang/semver) - Semantic Versioning (SemVer) library
 
-## Virtual Machines and Languages
+### Virtual Machines and Languages
 
   * [agora](https://github.com/PuerkitoBio/agora) - A dynamically typed, garbage collected, embeddable programming language built with Go
   * [anko](https://github.com/mattn/anko) - Scriptable interpreter written in golang
@@ -1755,7 +1759,7 @@
   * [v8](https://github.com/augustoroman/v8) - V8 JavaScript engine bindings for Go (supports V8 builds at least up to 5.8.244)
   * [Yaegi](https://github.com/containous/yaegi) - A complete Go interpreter in Go
 
-## Web Applications
+### Web Applications
 
   * [Caddy](https://caddyserver.com) - A fast, capable, general-purpose HTTP/2 web server that's easy to use
   * [Dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Service to turn websites into structured data.
@@ -1799,9 +1803,9 @@
   * [jweb](https://gitlab.com/drjele-go/jweb) - A Symfony(https://symfony.com/) inspired framework, written in Go
 
 
-## Web Libraries
+### Web Libraries
 
-### Authentication
+#### Authentication
 
   * [authcookie](https://github.com/dchest/authcookie) - Package authcookie implements creation and verification of signed authentication cookies.
   * [`code.soquee.net/otp`](https://code.soquee.net/otp/)   A library for generating one-time passwords using HOTP (RFC-4226), and TOTP (RFC-6238). Includes less commonly used profiles, and custom time functions for flexible windows.
@@ -1825,7 +1829,7 @@
   * [oauth2](https://github.com/go-oauth2/oauth2) - OAuth 2.0 server library for the Go programming language.
   * [gin-oauth2](https://github.com/zalando/gin-oauth2) - Middleware for Gin Framework users who also want to use OAuth2
 
-### DOM handling
+#### DOM handling
 
   * [Cascadia](http://code.google.com/p/cascadia) - CSS selector library
   * [GoQuery](https://github.com/PuerkitoBio/goquery) - jQuery-like DOM manipulation library, using Go's experimental HTML package.
@@ -1833,7 +1837,7 @@
   * [html-query](https://github.com/hailiang/html-query) - A fluent and functional approach to querying HTML.
   * [HTML Transform](http://code.google.com/p/go-html-transform/) - A CSS selector based html scraping and transformation library
 
-### Frameworks and Toolkits
+#### Frameworks and Toolkits
 
   * [aah](https://aahframework.org) - A scalable, performant, rapid development Web framework for Go.
   * [Aero](https://github.com/aerogo/aero) - Fast and secure web server for Go.
@@ -1890,7 +1894,7 @@
   * [wfdr](https://github.com/crazy2be/wfdr) - Simple web framework designed for and written in go. Works with other languages as well, but not as well.
   * [xweb](https://github.com/go-xweb/xweb) - A web framework for Go. Just like Struts for Java.
 
-### HTML forms
+#### HTML forms
 
   * [form](https://github.com/ajg/form) - Complete bidirectional HTML form encoder & decoder (x-www-form-urlencoded) for arbitrary data (package encoding compatible)
   * [gforms](https://github.com/vmihailenco/gforms) - HTML forms for Go
@@ -1901,7 +1905,7 @@
   * [revel-csrf](https://github.com/cbonello/revel-csrf) - Cross-Site Request Forgery (CSRF) attacks prevention for the Revel framework
   * [xsrftoken](http://code.google.com/p/xsrftoken) - A package for generating and validating tokens used in preventing XSRF attacks
 
-### Public API Wrappers
+#### Public API Wrappers
 
   * [adn](https://github.com/whee/adn/) - Interface to the App.net API
   * [anaconda](https://github.com/ChimeraCoder/anaconda) - Client library for the Twitter 1.1 API
@@ -1946,7 +1950,7 @@
   * [twittergo](https://github.com/kurrik/twittergo) - Client library for Twitter's API
   * [vksdk](https://github.com/SevereCloud/vksdk) - Golang module for working with VK API
 
-### Other
+#### Other
 
   * [adhoc-http](https://github.com/tv42/adhoc-httpd) - Quick & dirty HTTP static file server
   * [aop](https://github.com/gogap/aop) - Aspect Oriented Programming For Go.
@@ -2000,7 +2004,7 @@
   * [webtestutil](https://github.com/chlu/webtestutil) - Web and HTTP functional testing utilities. Includes Gorilla testing support.
   * [yt2pod](https://github.com/frou/yt2pod) - Daemon that monitors YouTube channels and publishes audio podcasts of them
 
-## Windows
+### Windows
 
   * [gform](https://github.com/AllenDang/gform) - An easy to use Windows GUI toolkit for Go
   * [go-ole](https://github.com/mattn/go-ole/) - win32 ole implementation for golang
@@ -2009,12 +2013,12 @@
   * [walk](https://github.com/lxn/walk) - "Windows Application Library Kit" for the Go Programming Language
   * [Windows Command Line Shutdown](http://software-download.name/2012/windows-command-line-shutdown/) - A tool to shutdown Windows Computer from Command Prompt
 
-## Unix
+### Unix
 
   * [inspect](https://github.com/square/inspect) - Linux and MacOSX systems monitoring and diagnostics
   * [unixsums](https://github.com/cxmcc/unixsums) - Legacy Unix checksums: cksum, sum
 
-## Unsorted; please help!
+### Unsorted; please help!
 
 The following entries have not been filed. Please help by putting these in relevant categories.
 
@@ -2040,3 +2044,4 @@
   * [Tasks](https://github.com/thewhitetulip/Tasks) - A simplistic todo list manager written in Go
   * [Twackup](https://github.com/tv42/twackup) - Backs up your tweets into local files
   * [al-Go-rithms](https://github.com/addy1997/al-Go-rithms) - Collection of algorithms on arrays, runes, strings for reference purpose.
+
diff --git a/Proposals.md b/Proposals.md
index ef8ec1c..da5bf1f 100644
--- a/Proposals.md
+++ b/Proposals.md
@@ -1 +1,5 @@
-See https://github.com/golang/proposal#readme
\ No newline at end of file
+---
+title: Proposals
+---
+
+See <https://github.com/golang/proposal#readme>
diff --git a/ProviderIntegration.md b/ProviderIntegration.md
index c72e52b..09e8a16 100644
--- a/ProviderIntegration.md
+++ b/ProviderIntegration.md
@@ -1,8 +1,12 @@
-# Introduction
+---
+title: ProviderIntegration
+---
+
+## Introduction
 
 A number of Platform-as-a-Service ([PaaS](http://en.wikipedia.org/wiki/Platform_as_a_service)) providers allow you to use Go applications on their clouds.
 
-# Details
+## Details
 
 | PaaS | Repository | Quickstart Guide |
 |:-----|:-----------|:-----------------|
@@ -20,3 +24,4 @@
 | [Cocaine](http://tech.yandex.com/cocaine/) | http://github.com/cocaine https://github.com/3Hren/cocaine-core https://github.com/3Hren/cocaine-plugins https://github.com/cocaine/cocaine-framework-go          | https://github.com/cocaine/cocaine-vagrant and https://github.com/3Hren/cocaine-core |
 | [GE Predix](https://www.predix.io/) | https://github.com/geaviation/goboot-starter | https://www.predix.io/resources/tutorials/journey.html |
 | [Tencent Cloud](https://cloud.tencent.com/) | https://github.com/TencentCloud/tencentcloud-sdk-go | https://intl.cloud.tencent.com/document/product/436/30601|
+
diff --git a/Questions.md b/Questions.md
index 381ff7c..84860a4 100644
--- a/Questions.md
+++ b/Questions.md
@@ -1,4 +1,6 @@
-# Asking Questions
+---
+title: Asking Questions
+---
 
 Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and [proposals](https://go.dev/s/proposal-process) only.
 
@@ -22,4 +24,4 @@
 
 If we closed your issue as a question with a link to this wiki, we apologize. Please ask the question on one of the above forums.
 
-Please do not write your question on a wiki page.  Please use one of the above forums.
\ No newline at end of file
+Please do not write your question on a wiki page.  Please use one of the above forums.
diff --git a/Quiet-Weeks.md b/Quiet-Weeks.md
index f21d06e..546dbe0 100644
--- a/Quiet-Weeks.md
+++ b/Quiet-Weeks.md
@@ -1,3 +1,7 @@
+---
+title: Quiet Weeks
+---
+
 Periodically throughout the year, the Go team holds “quiet weeks”, with no important conversations happening, to give people time for focus on deep work. 
 
 We aim to do about four single weeks per year, toward the middle of each change window and the middle of each freeze. When we do this, we pre-announce the quiet week on golang-dev@ and post a pinned issue on the issue tracker during the quiet week.
@@ -11,3 +15,4 @@
 Quiet weeks can mean vacation. If you're not on vacation, they don't mean not working. Getting work done quietly is great, and we don't want to stop that. We've used an example that if a couple people agree beforehand that the deep work they want to do next week is some kind of collaboration, like meeting to talk through a thorny design doc they are drafting, or pair programming sessions, that's totally fine, as long as that's how they both want to use the week and as long as no one else who would have wanted to be involved will feel like they missed it.
 
 It's also definitely fine to file most issues and mail most CLs: we don't want everyone to have to queue up a whole bunch of things to send at the end of the quiet week. On the other hand, if you have an issue or a CL that you think might spark a discussion that people will regret having missed or need to catch up on when they return, then we'd appreciate it if you can hold those and wait to post them until the quiet is over.
+
diff --git a/Range.md b/Range.md
index 744dc09..061ffc4 100644
--- a/Range.md
+++ b/Range.md
@@ -1,4 +1,6 @@
-# Range Clauses
+---
+title: Range Clauses
+---
 
 Spec: https://go.dev/ref/spec#For_statements
 
@@ -53,4 +55,4 @@
 	items[i] = make(map[int]int, 1)
 	items[i][1] = 2
 }
-```
\ No newline at end of file
+```
diff --git a/RateLimiting.md b/RateLimiting.md
index 3dedeb7..5c30fc7 100644
--- a/RateLimiting.md
+++ b/RateLimiting.md
@@ -1,4 +1,6 @@
-# Rate Limiting
+---
+title: Rate Limiting
+---
 
 To limit the rate of operations per unit time, use a [time.Ticker](https://pkg.go.dev/time/#NewTicker).
 This works well for rates up to tens of operations per second.
@@ -69,3 +71,4 @@
   }
 }
 ```
+
diff --git a/ResearchPapers.md b/ResearchPapers.md
index 8da0e73..3491e3e 100644
--- a/ResearchPapers.md
+++ b/ResearchPapers.md
@@ -1,3 +1,7 @@
+---
+title: Research Papers
+---
+
 This page lists academic and industry research papers about Go or using Go as the implementation language.
 ## 2021
 
@@ -455,4 +459,4 @@
 
 ## 2010
 - GoHotDraw: Evaluating the Go Programming Language with Design Patterns (Schmager, Cameron, Noble)
-  - [pdf](http://www.doc.ic.ac.uk/~ncameron/papers/schmager_plateau10.pdf)
\ No newline at end of file
+  - [pdf](http://www.doc.ic.ac.uk/~ncameron/papers/schmager_plateau10.pdf)
diff --git a/Resolving-Problems-From-Modified-Module-Path.md b/Resolving-Problems-From-Modified-Module-Path.md
index ca0d54a..c88ba59 100644
--- a/Resolving-Problems-From-Modified-Module-Path.md
+++ b/Resolving-Problems-From-Modified-Module-Path.md
@@ -1,3 +1,7 @@
+---
+title: Resolving Problems From Modified Module Path
+---
+
 ## Unexpected module path
 
 A user working on their project, `my-go-project`, might run into an error during `go get -u` as such:
@@ -165,3 +169,4 @@
 
 More generally, the process above holds for any group of interconnected modules involving any n modules: each major step just involves n modules acting in coordination. 
 
+
diff --git a/Resources-for-slog.md b/Resources-for-slog.md
index 29ab5a2..58099b0 100644
--- a/Resources-for-slog.md
+++ b/Resources-for-slog.md
@@ -1,3 +1,7 @@
+---
+title: Resources for slog
+---
+
 This page links to projects that use or enhance [`slog`](https://pkg.go.dev/log/slog), the structured logging package for the standard library.
 
 #### Log formatting
diff --git a/SQLDrivers.md b/SQLDrivers.md
index ab98353..0e854ae 100644
--- a/SQLDrivers.md
+++ b/SQLDrivers.md
@@ -1,4 +1,6 @@
-# SQL database drivers
+---
+title: SQL Database Drivers
+---
 
 The database/sql and database/sql/driver packages are designed for using databases from Go and implementing database drivers, respectively.
 
@@ -6,7 +8,7 @@
 
 > http://golang.org/src/pkg/database/sql/doc.txt
 
-# Drivers
+## Drivers
 
 Drivers for Go's sql package include:
 
@@ -75,3 +77,4 @@
 
 Drivers marked with ` [*] ` are both included in and pass the compatibility test suite at https://github.com/bradfitz/go-sql-test.
 Drivers marked with ` [**] ` pass the compatibility test suite but are not currently included in it.
+
diff --git a/SQLInterface.md b/SQLInterface.md
index bcdb708..0812d55 100644
--- a/SQLInterface.md
+++ b/SQLInterface.md
@@ -1,17 +1,21 @@
-# Introduction
+---
+title: SQLInterface
+---
+
+## Introduction
 
 The `database/sql` package provides a generic interface around SQL (or SQL-like) databases. See the [official documentation](https://pkg.go.dev/database/sql/) for details.
 
 This page provides example usage patterns.
 
-# Database driver
+## Database driver
 
 The `database/sql` package must be used in conjunction with a database driver.
 See https://go.dev/s/sqldrivers for a list of drivers.
 
 The documentation below assumes a driver has been imported.
 
-# Connecting to a database
+## Connecting to a database
 
 [`Open`](https://pkg.go.dev/database/sql/#Open)
  is used to create a database handle:
@@ -38,7 +42,7 @@
 
 After use, the database is closed using [`Close`](https://pkg.go.dev/database/sql/#DB.Close).
 
-# Executing queries
+## Executing queries
 
 [`ExecContext`](https://pkg.go.dev/database/sql/#DB.ExecContext)
 is used for queries where no rows are returned:
@@ -99,7 +103,7 @@
 [`ExecContext`](https://pkg.go.dev/database/sql/#Stmt.ExecContext), [`QueryContext`](https://pkg.go.dev/database/sql/#Stmt.QueryContext) and [`QueryRowContext`](https://pkg.go.dev/database/sql/#Stmt.QueryContext) can be called on statements. After use, a
 statement should be closed with [`Close`](https://pkg.go.dev/database/sql/#Stmt.Close).
 
-# Transactions
+## Transactions
 
 Transactions are started with [`BeginTx`](https://pkg.go.dev/database/sql/#DB.BeginTx):
 
@@ -115,7 +119,7 @@
 
 A transaction must end with a call to [`Commit`](https://pkg.go.dev/database/sql/#Tx.Commit) or [`Rollback`](https://pkg.go.dev/database/sql/#Tx.Rollback).
 
-# Dealing with NULL
+## Dealing with NULL
 
 If a database column is nullable, one of the types supporting null values should be passed to Scan.
 
@@ -145,7 +149,7 @@
 
 # Getting a table
 
-If you want an struct array from your SQL query. 
+If you want an struct array from your SQL query.
 
 ```go
 func getTable[T any](rows *sql.Rows) (out []T) {
@@ -173,7 +177,7 @@
 
 Make sure to deal with nulls from the database.
 
-```go 
+```go
 type User struct {
   UUID  sql.NullString
   Name  sql.NullString
@@ -181,4 +185,4 @@
 
 rows, err := db.Query("SELECT * FROM Users")
 cases := getTable[User](rows)
-```
\ No newline at end of file
+```
diff --git a/Screencasts.md b/Screencasts.md
index 2f0bfc1..fb60f3b 100644
--- a/Screencasts.md
+++ b/Screencasts.md
@@ -1,4 +1,6 @@
-# Screencasts
+---
+title: Screencasts
+---
 
 ## Writing, building, installing, and testing Go code
 
@@ -262,4 +264,4 @@
     * Publication Date: May 2019
     * ISBN: 9781788993999
     
-[[video](https://www.packtpub.com/application-development/hands-microservices-go-video?utm_source=Golang&utm_medium=referral&utm_campaign=Outreach)]
\ No newline at end of file
+[[video](https://www.packtpub.com/application-development/hands-microservices-go-video?utm_source=Golang&utm_medium=referral&utm_campaign=Outreach)]
diff --git a/SettingGOPATH.md b/SettingGOPATH.md
index f0d152e..57fa6f6 100644
--- a/SettingGOPATH.md
+++ b/SettingGOPATH.md
@@ -1,4 +1,6 @@
-# Setting `GOPATH`
+---
+title: Setting GOPATH
+---
 
 The `GOPATH` environment variable specifies the location of your workspace. If no `GOPATH` is set, it is assumed to be `$HOME/go` on Unix systems and `%USERPROFILE%\go` on Windows. If you want to use a custom location as your workspace, you can set the `GOPATH` environment variable. This page explains how to set this variable on various platforms.
 
@@ -12,17 +14,17 @@
   * [Windows 10 (GUI)](#windows-10-gui)
   * [Windows 10 (command line)](#windows-10-command-line)
 
-# Unix systems
+## Unix systems
 
 `GOPATH` can be any directory on your system. In Unix examples, we will set it to `$HOME/go` (the default since Go 1.8). Note that `GOPATH` must not be the same path as your Go installation. Another common setup is to set `GOPATH=$HOME`.
 
-## Go 1.13+
+### Go 1.13+
 
 ```bash
 go env -w GOPATH=$HOME/go
 ```
 
-## Bash
+### Bash
 
 Edit your `~/.bash_profile` to add the following line:
 ```bash
@@ -34,7 +36,7 @@
 source ~/.bash_profile
 ```
 
-## Zsh
+### Zsh
 
 Edit your `~/.zshrc` file to add the following line:
 
@@ -46,7 +48,7 @@
 source ~/.zshrc
 ```
 
-## fish
+### fish
 
 ```bash
 set -x -U GOPATH $HOME/go
@@ -56,7 +58,7 @@
 and the `-U` makes this a universal variable, available to all sessions and
 persistent.
 
-# Windows
+## Windows
 
 Your workspace can be located wherever you like,
 but we'll use `C:\go-work` in this example.
@@ -72,17 +74,17 @@
 * Type `C:\go-work` into the "Variable value" field.
 * Click OK.
 
-## Go 1.13+ (command line)
+### Go 1.13+ (command line)
 * Open a command prompt (`Win` + `r` then type `cmd`) or a powershell window (`Win` + `i`).
 * Type `go env -w GOPATH=c:\go-work`.
 
-## Windows 10 (GUI)
+### Windows 10 (GUI)
 There is a faster way to edit `Environment Variables` via search:
 * Left click on "Search" and type `env` or `environment`.
 * Select "Edit environment variables for your account".
 * ... and follow steps above.
 
-## Windows 10 (command line)
+### Windows 10 (command line)
 * Open a command prompt (`Win` + `r` then type `cmd`) or a powershell window (`Win` + `i`).
 * Type `setx GOPATH %USERPROFILE%\go`. (This will set the `GOPATH` to your `[home folder]\go`, such as `C:\Users\yourusername\go`.)
-* Close the command or PowerShell window. (The environment variable is only available for new command or PowerShell windows, not for the current window.)
\ No newline at end of file
+* Close the command or PowerShell window. (The environment variable is only available for new command or PowerShell windows, not for the current window.)
diff --git a/SignalHandling.md b/SignalHandling.md
index a61e6d5..48c5481 100644
--- a/SignalHandling.md
+++ b/SignalHandling.md
@@ -1,8 +1,12 @@
-# Introduction
+---
+title: SignalHandling
+---
+
+## Introduction
 
 Sometimes an application needs to save internal state or perform some cleanup activity before it exits, or needs to be able to reload a configuration file or write a memory/cpu profile on demand.  In UNIX-like operating systems, signals can accomplish these tasks.
 
-# Example
+## Example
 
 The following code demonstrates a program that waits for an interrupt signal and removes a temporary file when it occurs.
 
@@ -26,4 +30,4 @@
 	signal.Notify(sig, os.Interrupt)
 	<-sig
 }
-```
\ No newline at end of file
+```
diff --git a/SimultaneousAssignment.md b/SimultaneousAssignment.md
index 69aa333..13431dc 100644
--- a/SimultaneousAssignment.md
+++ b/SimultaneousAssignment.md
@@ -1,4 +1,6 @@
-# Simultaneous Assignment
+---
+title: Simultaneous Assignment
+---
 
 Simultaneous assignment is useful in many cases to make related assignments in a single statement.  Sometimes they are required, either because only a single statement is available (e.g. in an if statement) or because the values will change after the statement (e.g. in the case of swap).  All values on the right-hand side of the assignment operator are evaluated before the assignment is performed.
 
@@ -15,4 +17,4 @@
 i, j = j, i
 ```
 
-https://go.dev/ref/spec#Assignments
\ No newline at end of file
+https://go.dev/ref/spec#Assignments
diff --git a/SliceTricks.md b/SliceTricks.md
index 9f1c207..58f7e8f 100644
--- a/SliceTricks.md
+++ b/SliceTricks.md
@@ -1,3 +1,7 @@
+---
+title: SliceTricks
+---
+
 Since the introduction of the ` append ` built-in, most of the functionality of the ` container/vector ` package, which was removed in Go 1, can be replicated using ` append ` and ` copy `.
 
 Since the introduction of generics, generic implementations of several of these functions are available in the [`golang.org/x/exp/slices`](https://pkg.go.dev/golang.org/x/exp/slices) package.
@@ -306,4 +310,4 @@
 
 	return r
 }
-```
\ No newline at end of file
+```
diff --git a/SlowBots.md b/SlowBots.md
index ccfc32b..bd4f23e 100644
--- a/SlowBots.md
+++ b/SlowBots.md
@@ -1,4 +1,6 @@
-# SlowBots
+---
+title: SlowBots
+---
 
 The Go build system supports "SlowBots", which are a way to configure the TryBots (pre-submit builders) to add additional builders into the set of build configurations that TryBots normally run.
 
@@ -8,7 +10,7 @@
 
 ## Using SlowBots
 
-Click "Choose Tryjobs" under the commit message and a dialog will appear. 
+Click "Choose Tryjobs" under the commit message and a dialog will appear.
 
 ![A red box indicating the location of the "Choose Tryjobs" button under the commit message.](https://github.com/golang/go/assets/1248668/5bfcb020-8cd2-4635-88a9-03efce4e69ba)
 
@@ -73,4 +75,4 @@
 * If TryBots are already running, deleting the `Run-TryBot+1` vote and re-doing it won't re-start the TryBot set, so it won't look at your TRY= line, until the next run when it's done. (But you'll need to delete the TryBot-Result somehow: manually, rebasing, uploading new version)
 * If you select a builder that's offline, it'll currently just wait forever for it to show up. There's no timeout yet.
 * If you specify an unknown `TRY=` token, it'll just ignore it and won't report an error.
-* There's no `all` alias. That's kinda intentional, to prevent overuse that might cause the SlowBots to get even slower for everybody. But we might add it later anyway. See [golang.org/issue/34501#issuecomment-544585711](https://go.dev/issue/34501#issuecomment-544585711).
\ No newline at end of file
+* There's no `all` alias. That's kinda intentional, to prevent overuse that might cause the SlowBots to get even slower for everybody. But we might add it later anyway. See [golang.org/issue/34501#issuecomment-544585711](https://go.dev/issue/34501#issuecomment-544585711).
diff --git a/Solaris.md b/Solaris.md
index f616f6f..0801815 100644
--- a/Solaris.md
+++ b/Solaris.md
@@ -1,7 +1,9 @@
-# Go on Solaris
+---
+title: Go on Solaris
+---
 
 | **Kernel version** | **Architectures** | **Initial support version** | **Final support version** |
 |:-------------------|:------------------|:----------------------------|:--------------------------|
 | SunOS 5.11         | amd64             | Go 1.3 _*_                  |                           |
 
-_*_ Go 1.5 or above is recommended.
\ No newline at end of file
+_*_ Go 1.5 or above is recommended.
diff --git a/Spectre.md b/Spectre.md
index 59fb75d..b206486 100644
--- a/Spectre.md
+++ b/Spectre.md
@@ -1,3 +1,7 @@
+---
+title: Spectre
+---
+
 ## Overview
 
 Go 1.15 adds support for enabling code generation adjustments to mitigate the effect of two variants of the Spectre family of CPU vulnerabilities. The compiler and assembler both have a new flag `-spectre` that is given a list of Spectre mitigations to enable, as in `-spectre=index` or `-spectre=index,ret`. The special case `-spectre=all` enables all available mitigations.
@@ -51,3 +55,4 @@
 
 “[Bypassing memory safety mechanisms through speculative control flow hijacks](https://arxiv.org/pdf/2003.05503.pdf)”\
 by Andrea Mambretti _et al_. (Examination of effects on memory-safe languages.)
+
diff --git a/Spelling.md b/Spelling.md
index 0c2fde3..2d1ea8a 100644
--- a/Spelling.md
+++ b/Spelling.md
@@ -1,3 +1,7 @@
+---
+title: Spelling
+---
+
 This page documents the spelling choices that the Go project has made for English words.
 
 This page is a statement of policy. Do not edit it without approval/discussion.
@@ -11,3 +15,4 @@
 * use **canceled** (one ell), not cancelled.
 * use **canceling** (one ell), not cancelling.
 * use **marshaling**, **marshaled** etc (single ell). See https://go.dev/cl/33017
+
diff --git a/Style.md b/Style.md
index df17499..46dfd28 100644
--- a/Style.md
+++ b/Style.md
@@ -1,2 +1,6 @@
-See [CodeReviewComments](/golang/go/wiki/CodeReviewComments),
-[TestComments](/golang/go/wiki/TestComments),[CSSStyleGuide](/golang/go/wiki/CSSStyleGuide) or [Google's Go Style Guide](https://google.github.io/styleguide/go/).
\ No newline at end of file
+---
+title: Style
+---
+
+See [CodeReviewComments](/wiki/CodeReviewComments),
+[TestComments](/wiki/TestComments),[CSSStyleGuide](/wiki/CSSStyleGuide) or [Google's Go Style Guide](https://google.github.io/styleguide/go/).
diff --git a/SuccessStories.md b/SuccessStories.md
index e1c10ae..973369f 100644
--- a/SuccessStories.md
+++ b/SuccessStories.md
@@ -1,4 +1,6 @@
-# Go success stories from around the web
+---
+title: Go success stories from around the web
+---
 
   * [The Way of the Gopher - Making the Switch from Node.js to Golang](https://medium.com/@theflapjack103/the-way-of-the-gopher-6693db15ae1f)
   * [Moving a team from Scala to Go](http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/)
@@ -48,4 +50,5 @@
   * [Ready - Steady - Go: A complete IoT platform in Go](https://qbee.io/misc/ready-steady-go-a-complete-iot-platform-in-go/)
 
 
-See also [[GoUsers]].
\ No newline at end of file
+See also [GoUsers](GoUsers).
+
diff --git a/Switch.md b/Switch.md
index 5d3b577..8c5c79c 100644
--- a/Switch.md
+++ b/Switch.md
@@ -1,4 +1,6 @@
-# Switch
+---
+title: Switch
+---
 
 Spec: https://go.dev/ref/spec#Switch_statements
 
@@ -245,4 +247,4 @@
 fmt.Sprintf("bar%s\n", pluralEnding(2))  == "bars"
 
 ```
- 
\ No newline at end of file
+ 
diff --git a/TableDrivenTests.md b/TableDrivenTests.md
index 5b84f85..d756765 100644
--- a/TableDrivenTests.md
+++ b/TableDrivenTests.md
@@ -1,11 +1,15 @@
-# Introduction
+---
+title: TableDrivenTests
+---
+
+## Introduction
 Writing good tests is not trivial, but in many situations a lot of ground can be covered with table-driven tests: Each table entry is a complete test case with inputs and expected results, and sometimes with additional information such as a test name to make the test output easily readable.  If you ever find yourself using copy and paste when writing a test, think about whether refactoring into a table-driven test or pulling the copied code out into a helper function might be a better option.
 
 Given a table of test cases, the actual test simply iterates through all table entries and for each entry performs the necessary tests. The test code is written once and amortized over all table entries, so it makes sense to write a careful test with good error messages.
 
 Table driven testing is not a tool, package or anything else, it's just a way and perspective to write cleaner tests. 
 
-## Example of a table driven test
+### Example of a table driven test
 
 Here is a good example from the testing code for the ` fmt ` package ( https://pkg.go.dev/fmt/ ):
 
@@ -44,7 +48,7 @@
 
 A ` t.Errorf ` call is not an assertion. The test continues even after an error is logged. For example, when testing something with integer input, it is worth knowing that the function fails for all inputs, or only for odd inputs, or for powers of two.
 
-## Using a Map to Store Test Cases
+### Using a Map to Store Test Cases
 
 In the previous example, tests cases were stored in a slice of structs.  They can be stored in a map as well and there are several advantages
 to doing it this way.
@@ -87,7 +91,7 @@
 
 More importantly, map iteration order isn't specified nor is it even guaranteed to be the same from one iteration to the next.  This ensures that each test is independent of the others and that testing order doesn't impact results.
 
-## Parallel Testing
+### Parallel Testing
 
 Parallelizing table tests is simple, but requires precision to avoid bugs.
 Please note closely the three changes below, especially the re-declaration of `test`
@@ -110,7 +114,7 @@
 		{"test 4"},
 	}
 	for _, test := range tests {
-		test := test // NOTE: https://github.com/golang/go/wiki/CommonMistakes#using-goroutines-on-loop-iterator-variables
+		test := test // NOTE: /wiki/CommonMistakes#using-goroutines-on-loop-iterator-variables
 		t.Run(test.name, func(t *testing.T) {
 			t.Parallel() // marks each test case as capable of running in parallel with each other 
 			t.Log(test.name)
@@ -119,9 +123,9 @@
 }
 ```
 
-## References
+### References
 
   * https://go.dev/doc/code#Testing
   * https://go.dev/doc/faq#assertions
   * https://go.dev/doc/faq#testing_framework
-  * https://pkg.go.dev/testing/
\ No newline at end of file
+  * https://pkg.go.dev/testing/
diff --git a/TargetSpecific.md b/TargetSpecific.md
index 3f606ae..9ab4fe6 100644
--- a/TargetSpecific.md
+++ b/TargetSpecific.md
@@ -1,4 +1,6 @@
-# Target-Specific Code
+---
+title: Target-Specific Code
+---
 
 Sometimes, for performance or compatibility reasons, custom code needs to be written for specific GOARCH and GOOS targets. This page presents some best practices to adopt in that case. It is a required policy for crypto packages as of April 2019.
 
@@ -90,4 +92,4 @@
 
 For more complete examples see the [x/crypto/poly1305](https://github.com/golang/crypto/tree/master/poly1305) and [x/crypto/salsa20/salsa](https://github.com/golang/crypto/tree/master/salsa20/salsa) packages.
 
-Note that packages in the standard library (as opposed to modules like golang.org/x/crypto) do not use the `gc` and `purego` build tags.
\ No newline at end of file
+Note that packages in the standard library (as opposed to modules like golang.org/x/crypto) do not use the `gc` and `purego` build tags.
diff --git a/TestComments.md b/TestComments.md
index 14f4ea4..1e73577 100644
--- a/TestComments.md
+++ b/TestComments.md
@@ -1,26 +1,28 @@
-# Go Test Comments
+---
+title: Go Test Comments
+---
 
 This page is a supplement to
-[Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments),
+[Go Code Review Comments](/wiki/CodeReviewComments),
 but is targeted specifically to test code.
 
 **Please [discuss changes](https://go.dev/issue/new?title=wiki%3A+TestComments+change&body=&labels=Documentation)
 before editing this page**, even _minor_ ones. Many people have opinions and
 this is not the place for edit wars.
 
-* [Assert Libraries](https://github.com/golang/go/wiki/TestComments#assert-libraries)
-* [Choose Human-Readable Subtest Names](https://github.com/golang/go/wiki/TestComments#choose-human-readable-subtest-names)
-* [Compare Stable Results](https://github.com/golang/go/wiki/TestComments#compare-stable-results)
-* [Compare Full Structures](https://github.com/golang/go/wiki/TestComments#compare-full-structures)
-* [Equality Comparison and Diffs](https://github.com/golang/go/wiki/TestComments#equality-comparison-and-diffs)
-* [Got before Want](https://github.com/golang/go/wiki/TestComments#got-before-want)
-* [Identify the Function](https://github.com/golang/go/wiki/TestComments#identify-the-function)
-* [Identify the Input](https://github.com/golang/go/wiki/TestComments#identify-the-input)
-* [Keep Going](https://github.com/golang/go/wiki/TestComments#keep-going)
-* [Mark Test Helpers](https://github.com/golang/go/wiki/TestComments#mark-test-helpers)
-* [Print Diffs](https://github.com/golang/go/wiki/TestComments#print-diffs)
-* [Table-Driven Tests vs Multiple Test Functions](https://github.com/golang/go/wiki/TestComments#table-driven-tests-vs-multiple-test-functions)
-* [Test Error Semantics](https://github.com/golang/go/wiki/TestComments#test-error-semantics)
+* [Assert Libraries](/wiki/TestComments#assert-libraries)
+* [Choose Human-Readable Subtest Names](/wiki/TestComments#choose-human-readable-subtest-names)
+* [Compare Stable Results](/wiki/TestComments#compare-stable-results)
+* [Compare Full Structures](/wiki/TestComments#compare-full-structures)
+* [Equality Comparison and Diffs](/wiki/TestComments#equality-comparison-and-diffs)
+* [Got before Want](/wiki/TestComments#got-before-want)
+* [Identify the Function](/wiki/TestComments#identify-the-function)
+* [Identify the Input](/wiki/TestComments#identify-the-input)
+* [Keep Going](/wiki/TestComments#keep-going)
+* [Mark Test Helpers](/wiki/TestComments#mark-test-helpers)
+* [Print Diffs](/wiki/TestComments#print-diffs)
+* [Table-Driven Tests vs Multiple Test Functions](/wiki/TestComments#table-driven-tests-vs-multiple-test-functions)
+* [Test Error Semantics](/wiki/TestComments#test-error-semantics)
 
 ## Assert Libraries
 
@@ -46,7 +48,7 @@
 }
 ```
 
-Assert libraries make it too easy to write imprecise tests and inevitably end up 
+Assert libraries make it too easy to write imprecise tests and inevitably end up
 duplicating features already in the language, like expression evaluation,
 comparisons, sometimes even more. Strive to write tests that are precise both
 about what went wrong and what went right, and make use of Go itself instead of
@@ -78,11 +80,11 @@
 [`cmp.Diff`](https://pkg.go.dev/github.com/google/go-cmp/cmp#Diff) or
 [`cmp.Equal`](https://pkg.go.dev/github.com/google/go-cmp/cmp#Equal) comparison
 with [cmpopts](https://pkg.go.dev/github.com/google/go-cmp/cmp/cmpopts) options
-such as [`cmpopts.IgnoreInterfaces`](https://pkg.go.dev/github.com/google/go-cmp/cmp/cmpopts#IgnoreInterfaces) 
+such as [`cmpopts.IgnoreInterfaces`](https://pkg.go.dev/github.com/google/go-cmp/cmp/cmpopts#IgnoreInterfaces)
 may meet your needs ([example](https://go.dev/play/p/vrCUNVfxsvF));
 otherwise, this technique just won't work, so do whatever works.
 
-If your function returns multiple return values, you don't need to wrap those in 
+If your function returns multiple return values, you don't need to wrap those in
 a struct before comparing them. Just compare the return values individually and
 print them.
 
@@ -106,7 +108,7 @@
 ## Equality Comparison and Diffs
 
 The `==` operator evaluates equality using the
-[language-defined comparisons](https://go.dev/ref/spec#Comparison_operators). 
+[language-defined comparisons](https://go.dev/ref/spec#Comparison_operators).
 Values it can compare include numeric, string, and pointer values and structs
 with fields of those values. In particular, it determines two pointers to be
 equal only if they point to the same variable.
@@ -138,7 +140,7 @@
 For diffs, directionality is less apparent, and thus it is important to include
 a key to aid in interpreting the failure. See [Print Diffs](#print-diffs).
 
-Whichever order you use in your failure messages, you should explicitly indicate 
+Whichever order you use in your failure messages, you should explicitly indicate
 the ordering as a part of the failure message, because existing code is
 inconsistent about the ordering.
 
@@ -184,12 +186,12 @@
 
 `t.Fatal` is usually only appropriate when some piece of test setup fails,
 without which you cannot run the test at all. In a table-driven test, `t.Fatal`
-is appropriate 
+is appropriate
 for failures that set up the whole test function before the test loop. Failures
 that affect a single entry in the test table, which make it impossible to
 continue with that entry, should be reported as follows:
 
-*   If you're not using `t.Run` subtests, you should use `t.Error` followed by a 
+*   If you're not using `t.Run` subtests, you should use `t.Error` followed by a
     `continue` statement to move on to the next table entry.
 *   If you're using subtests (and you're inside a call to `t.Run`), then
     `t.Fatal` ends the current subtest and allows your test case to progress to
@@ -244,11 +246,11 @@
 
 ## Table-Driven Tests vs Multiple Test Functions
 
-[Table-driven](https://github.com/golang/go/wiki/TableDrivenTests) tests should
+[Table-driven](/wiki/TableDrivenTests) tests should
 be used whenever many different test cases can be tested using similar testing
 logic, for example when testing whether the actual output of a function is equal
-to the expected output [[example]](https://github.com/golang/go/wiki/TableDrivenTests#example-of-a-table-driven-test), 
-or when testing whether the outputs of a function always conform to the same set 
+to the expected output [example](TableDrivenTests#example-of-a-table-driven-test),
+or when testing whether the outputs of a function always conform to the same set
 of invariants.
 
 When some test cases need to be checked using different logic from other test
@@ -259,7 +261,7 @@
 identical setup, a sequence of subtests within a single test function might
 also make sense.
 
-You can combine table-driven tests with multiple test functions. For example, if 
+You can combine table-driven tests with multiple test functions. For example, if
 you're testing that a function's non-error output exactly matches the expected
 output, and you're also testing that the function returns some non-nil error
 when it gets invalid input, then the clearest unit tests can be achieved by
@@ -271,7 +273,7 @@
 When a unit test performs string comparisons or uses `reflect.DeepEqual` to
 check that particular kinds of errors are returned for particular inputs, you
 may find that your tests are fragile if you have to reword any of those error
-messages in 
+messages in
 the future. Since this has the potential to turn your unit test into a
 [change detector](https://testing.googleblog.com/2015/01/testing-on-toilet-change-detector-tests.html),
 don't use string comparison to check what type of error your function returns.
@@ -289,3 +291,4 @@
 returns for different inputs. If your API is like this, then it is sufficient to
 create error messages using `fmt.Errorf`, and then in the unit test, test only
 whether the error was non-nil when you expected an error.
+
diff --git a/TestFailures.md b/TestFailures.md
index e1add30..7c42e72 100644
--- a/TestFailures.md
+++ b/TestFailures.md
@@ -1,4 +1,6 @@
-# TestFailures
+---
+title: Test Failures
+---
 
 If you notice a failure in a test in the Go project, what should you do?
 
@@ -187,4 +189,4 @@
 If all of the builders for a secondary port are broken, the port itself may be
 considered broken. [Discussion
 #53060](https://github.com/golang/go/discussions/53060)
-aims to resolve the question of how broken secondary ports should be handled.
\ No newline at end of file
+aims to resolve the question of how broken secondary ports should be handled.
diff --git a/Timeouts.md b/Timeouts.md
index 7fb0236..5518a7f 100644
--- a/Timeouts.md
+++ b/Timeouts.md
@@ -1,4 +1,6 @@
-# Timeouts and Deadlines
+---
+title: Timeouts and Deadlines
+---
 
 To abandon synchronous calls that run too long, use the select statement with time.After:
 ```go
@@ -22,4 +24,4 @@
 
 select: https://go.dev/ref/spec#Select_statements
 
-blog post: https://go.dev/blog/2010/09/go-concurrency-patterns-timing-out-and.html
\ No newline at end of file
+blog post: https://go.dev/blog/2010/09/go-concurrency-patterns-timing-out-and.html
diff --git a/Training.md b/Training.md
index 444bbca..76621a4 100644
--- a/Training.md
+++ b/Training.md
@@ -1,3 +1,7 @@
+---
+title: Training
+---
+
 Commercial providers of Go training
 
 ## On-line
@@ -30,4 +34,4 @@
 * [Gopher Guides](https://www.gopherguides.com/) - Customized In-person, remote, and online training classes.  Training for Developers by Developers.  Lead Instructors: [Mark Bates](http://www.gopherguides.com/team/mark.bates), [Cory LaNou](http://www.gopherguides.com/team/cory.lanou)
 * [Shiju Varghese](https://github.com/shijuvar/gokit/blob/master/training/README.md) - On-site class room training on Go, and consulting on building distributed systems and Microservices with Go, in India.
 * [Magesh Kuppan](https://www.linkedin.com/in/tkmagesh) - Classroom & Online training on Go Programming & Building Microservices in Go
-* [kkoehler](https://golang.kkoehler.com) - In-Person class trainings for Go in Germany, Austria and Swiss
\ No newline at end of file
+* [kkoehler](https://golang.kkoehler.com) - In-Person class trainings for Go in Germany, Austria and Swiss
diff --git a/Ubuntu.md b/Ubuntu.md
index 45443a5..477f003 100644
--- a/Ubuntu.md
+++ b/Ubuntu.md
@@ -1,3 +1,7 @@
+---
+title: Ubuntu
+---
+
 > The Go project's official download page is at [https://go.dev/dl](https://go.dev/dl/).
 >
 > After downloading a binary release suitable for your system, you can install go by following the official installation instructions at [https://go.dev/doc/install](https://go.dev/doc/install#install).
@@ -33,3 +37,4 @@
 curl -LO https://get.golang.org/$(uname)/go_installer && chmod +x go_installer && ./go_installer && rm go_installer
 ```
 > Getgo will install the Go distribution (tools & stdlib) to "/.go" inside your home directory.
+
diff --git a/Watchflakes.md b/Watchflakes.md
index 6987011..b0afcb0 100644
--- a/Watchflakes.md
+++ b/Watchflakes.md
@@ -1,3 +1,7 @@
+---
+title: Watchflakes
+---
+
 Watchflakes is a program that triages apparent test flakes on the build.golang.org dashboards.
 
 An apparent test flake is a failure that:
@@ -177,3 +181,4 @@
 It uses `default` for the same reasons as the previous example: so that issues matching specific
 compiler errors can still be filed, but failures not matching other issues are grouped into #55257
 instead of creating new issues assigned to the specific test that happened to trigger the problem.
+
diff --git a/WebAccessibilityResourcesAndTips.md b/WebAccessibilityResourcesAndTips.md
index 4e48ca7..b61d93c 100644
--- a/WebAccessibilityResourcesAndTips.md
+++ b/WebAccessibilityResourcesAndTips.md
@@ -1,3 +1,7 @@
+---
+title: WebAccessibilityResourcesAndTips
+---
+
 Accessibility or "a11y" is an increasingly important topic in web development. It is important to Go because many Go tools and resources use web technology, like godoc. Ensuring that these tools are accessible ensures that more people can use them and that more people can use Go.
 
 Accessibility is a large topic that ranges from the merely esoteric to the excruciatingly abstruse.
@@ -37,4 +41,4 @@
 - http://a11yproject.com/
 - https://inclusive-components.design/
 - https://accessibility.blog.gov.uk/
-- https://www.youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g
\ No newline at end of file
+- https://www.youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g
diff --git a/Well-known-struct-tags.md b/Well-known-struct-tags.md
index bb5ca5e..1b7a3ba 100644
--- a/Well-known-struct-tags.md
+++ b/Well-known-struct-tags.md
@@ -1,4 +1,7 @@
-# Well-known struct tags
+---
+title: Well-known struct tags
+---
+
 ## Background
 
 Go offers [struct tags](https://go.dev/ref/spec#Tag) which are discoverable via reflection. These enjoy a wide range of use in the standard library in the JSON/XML and other encoding packages.
@@ -49,3 +52,4 @@
 graphql   | https://github.com/samsarahq/thunder
 egg       | https://github.com/andrewwphillips/eggql
 
+
diff --git a/WhyGo.md b/WhyGo.md
index 22b2e8a..116cb11 100644
--- a/WhyGo.md
+++ b/WhyGo.md
@@ -1,6 +1,8 @@
-Here's why: a list of people/organizations explaining why they use Go. This is partly redundant with [GoUsers](GoUsers). We also have a specific page dedicated to [Go success stories](SuccessStories).
+---
+title: Why Go
+---
 
-## Why Go
+Here's why: a list of people/organizations explaining why they use Go. This is partly redundant with [GoUsers](GoUsers). We also have a specific page dedicated to [Go success stories](SuccessStories).
 
 - [Why Devops Engineers Should Know Go](https://akondas.com/blog/Why-DevOps-Engineers-Should-Know-Go) _2020-05-27_
 - [Why We Chose Go](https://tech.trivago.com/2020/03/02/why-we-chose-go/) _2020-03-02_
@@ -79,3 +81,4 @@
 - [**Express vs Flask vs Go vs Sparkjava** by Bijan](https://medium.com/@tschundeee/express-vs-flask-vs-go-acc0879c2122)
 - [**Comparing the Performance of Various Web Frameworks** by Abel Avram](http://www.infoq.com/news/2014/05/benchmark-web-framework)
 - [TechEmpower Web Framework Benchmarks](http://www.techempower.com/benchmarks/)
+
diff --git a/Windows.md b/Windows.md
index 72f914b..b2bb1e2 100644
--- a/Windows.md
+++ b/Windows.md
@@ -1,11 +1,11 @@
+---
+title: Go for Microsoft Windows
+---
 
 > The Go project's official download page is at [https://go.dev/dl](https://go.dev/dl/).
 >
 > After downloading a binary release suitable for your system, you can install go by following  the official installation instructions at [https://go.dev/doc/install](https://go.dev/doc/install#install).
 
-
-# Go for Microsoft Windows
-
 The Windows port is stable and officially supported.
 
   * See the [open Windows issues](https://github.com/golang/go/issues?q=is%3Aopen+is%3Aissue+label%3Aos-windows) on the issue tracker.
@@ -17,3 +17,4 @@
 | Windows XP, Windows Server 2003           | amd64, 386        | Go 1 _*_                    | Go 1.10.8 |
 
 _*_ Go 1.5 or above is recommended.
+
diff --git a/WindowsBuild.md b/WindowsBuild.md
index aed5eb1..8aed7ca 100644
--- a/WindowsBuild.md
+++ b/WindowsBuild.md
@@ -1,4 +1,8 @@
-# The Automatic (but unsupported) Way: [winstrap](https://github.com/golang/winstrap)
+---
+title: WindowsBuild
+---
+
+## The Automatic (but unsupported) Way: [winstrap](https://github.com/golang/winstrap)
 
 The winstrap tool is used by the Go project to turn a fresh Windows VM image into a Windows builder. It installs all necessary dependencies. It's sometimes out of date, though, as it's only updated when we need to update the Windows base image for the [Go continuous build](https://build.golang.org/).
 
@@ -12,9 +16,9 @@
 
 Note however that winstrap is not supported. It's considered an internal tool used for occasional setup of new Windows builder images and is not actively maintained until we need it ourselves.
 
-# The Manual Way
+## The Manual Way
 
-## Install MinGW/MSYS
+### Install MinGW/MSYS
 
 Download and save the latest version of the automated MinGW installer executable (` exe `) file from SourceForge.
 
@@ -46,7 +50,7 @@
 
 The MSYS terminal window may be opened by opening and running the ` C:\MinGW\msys\1.0\msys.bat ` batch file.
 
-## Build
+### Build
 
 ```
 git clone https://go.googlesource.com/go
@@ -54,10 +58,11 @@
 all.bat
 ```
 
-## 64-bit Notes
+### 64-bit Notes
 
   1. Ensure you are able to compile a working 32-bit Go first.
   1. Grab the latest zip from http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/ and extract it over the MinGW directory, so that for example the .exe files end up in the same location as the 32-bit ones.
   1. Replace ` gcc.exe ` and ` ar.exe ` with their 64-bit counterparts.
   1. Set ` GOARCH=amd64 ` and away you go!
 
+
diff --git a/WindowsCrossCompiling.md b/WindowsCrossCompiling.md
index 1392920..aa5d9d2 100644
--- a/WindowsCrossCompiling.md
+++ b/WindowsCrossCompiling.md
@@ -1,4 +1,6 @@
-# Building Windows Go programs on Linux
+---
+title: Building Windows Go programs on Linux
+---
 
 See [here](https://go.dev/doc/install/source#environment) for available `GOOS` and `GOARCH` values.
 
@@ -115,4 +117,4 @@
 $ GOOS=windows GOARCH=386 go build -o hello.exe hello.go
 ```
 
-We just need to find a Windows computer to run our `hello.exe`.
\ No newline at end of file
+We just need to find a Windows computer to run our `hello.exe`.
diff --git a/WindowsDLLs.md b/WindowsDLLs.md
index e3df9ff..00a94e8 100644
--- a/WindowsDLLs.md
+++ b/WindowsDLLs.md
@@ -1,4 +1,6 @@
-# Calling a Windows DLL
+---
+title: Calling a Windows DLL
+---
 
 Go allows you to call native Windows function in several different ways.
 
@@ -119,7 +121,7 @@
 }
 ```
 
-3. By "linking" against the library, using the "[[cgo]]" method (this way works in Linux and Windows). Example:
+3. By "linking" against the library, using the "[cgo](cgo)" method (this way works in Linux and Windows). Example:
 
 ```go
 import ("C")
@@ -127,4 +129,4 @@
 C.MessageBoxW(...)
 ```
 
-See [[cgo]] for further details.
\ No newline at end of file
+See [cgo](cgo) for further details.
diff --git a/X-Repositories.md b/X-Repositories.md
index 4be9312..1afc076 100644
--- a/X-Repositories.md
+++ b/X-Repositories.md
@@ -1,3 +1,7 @@
+---
+title: X-Repositories
+---
+
 The `golang.org/x/...` repositories are part of the Go Project but outside the main Go tree.
 
 They are developed under looser [compatibility requirements](https://go.dev/doc/go1compat) than the Go core.  In general, they will support the previous two releases and tip.
@@ -24,3 +28,4 @@
   * [[docs](https://pkg.go.dev/golang.org/x/exp)] [[source](https://go.googlesource.com/exp)] ` golang.org/x/exp ` — experimental code (handle with care).
 
 [List of all packages in sub-repositories](https://pkg.go.dev/golang.org/x)
+
diff --git a/cgo.md b/cgo.md
index f029093..5da373c 100644
--- a/cgo.md
+++ b/cgo.md
@@ -1,10 +1,14 @@
-# Introduction
+---
+title: cgo
+---
+
+## Introduction
 
 First, https://pkg.go.dev/cmd/cgo is the primary cgo documentation.
 
 There is also a good introduction article at https://go.dev/blog/cgo
 
-## The basics
+### The basics
 
 If a Go source file imports ` "C" `, it is using cgo. The Go file will have access to anything appearing in the comment immediately preceding the line ` import "C" `, and will be linked against all other cgo comments in other Go files, and all C files included in the build process.
 
@@ -16,8 +20,8 @@
 package cgoexample
 
 /*
-#include <stdio.h>
-#include <stdlib.h>
+##include <stdio.h>
+##include <stdlib.h>
 
 void myprint(char* s) {
 	printf("%s\n", s);
@@ -34,11 +38,11 @@
 }
 ```
 
-## Calling Go functions from C
+### Calling Go functions from C
 
 It is possible to call both top-level Go functions and function variables from C code invoked from Go code using cgo.
 
-### Global functions
+#### Global functions
 
 Go makes its functions available to C code through use of a special ` //export ` comment.
 Note: you can't define any C functions in preamble if you're using exports.
@@ -52,7 +56,7 @@
 import "fmt"
 
 /*
-#include <stdio.h>
+##include <stdio.h>
 extern void ACFunction();
 */
 import "C"
@@ -70,14 +74,14 @@
 foo.c contains:
 
 ```go
-#include "_cgo_export.h"
+##include "_cgo_export.h"
 void ACFunction() {
 	printf("ACFunction()\n");
 	AGoFunction();
 }
 ```
 
-### Function variables
+#### Function variables
 
 The following code shows an example of invoking a Go callback from C code. Because of the [pointer passing rules](https://pkg.go.dev/cmd/cgo/#hdr-Passing_pointers) Go code can not pass a function value directly to C.  Instead it is necessary to use an indirection. This example uses a registry with a mutex, but there are many other ways to map from a value that can be passed to C to a Go function.
 
@@ -157,7 +161,7 @@
 )
 
 /*
-#include <stdint.h>
+##include <stdint.h>
 
 extern void go_callback_int(uintptr_t h, int p1);
 static inline void CallMyFunction(uintptr_t h) {
@@ -183,7 +187,7 @@
 }
 ```
 
-### Function pointer callbacks
+#### Function pointer callbacks
 
 C code can call exported Go functions with their explicit name. But if a C-program wants a function pointer, a gateway function has to be written. This is because we can't take the address of a Go function and give that to C-code since the cgo tool will generate a stub in C that should be called. The following example shows how to integrate with C code wanting a function pointer of a give type.
 
@@ -207,10 +211,10 @@
 package main
 
 /*
-#cgo CFLAGS: -I .
-#cgo LDFLAGS: -L . -lclibrary
+##cgo CFLAGS: -I .
+##cgo LDFLAGS: -L . -lclibrary
 
-#include "clibrary.h"
+##include "clibrary.h"
 
 int callOnMeGo_cgo(int in); // Forward declaration.
 */
@@ -240,7 +244,7 @@
 
 /*
 
-#include <stdio.h>
+##include <stdio.h>
 
 // The gateway function
 int callOnMeGo_cgo(int in)
@@ -256,19 +260,19 @@
 **clibrary.h**
 
 ```c
-#ifndef CLIBRARY_H
-#define CLIBRARY_H
+##ifndef CLIBRARY_H
+##define CLIBRARY_H
 typedef int (*callback_fcn)(int);
 void some_c_func(callback_fcn);
-#endif
+##endif
 ```
 
 **clibrary.c**
 
 ```c
-#include <stdio.h>
+##include <stdio.h>
 
-#include "clibrary.h"
+##include "clibrary.h"
 
 void some_c_func(callback_fcn callback)
 {
@@ -279,7 +283,7 @@
 }
 ```
 
-## Go strings and C strings
+### Go strings and C strings
 
 Go strings and C strings are different. Go strings are the combination of a length and a pointer to the first character in the string. C strings are just the pointer to the first character, and are terminated by the first instance of the null character, ` '\0' `.
 
@@ -302,7 +306,7 @@
 
 Of course, you aren't required to use ` defer ` to call ` C.free() `. You can free the C string whenever you like, but it is your responsibility to make sure it happens.
 
-## Turning C arrays into Go slices
+### Turning C arrays into Go slices
 
 C arrays are typically either null-terminated or have a length kept elsewhere.
 
@@ -333,8 +337,8 @@
 
 It is important to keep in mind that the Go garbage collector will not interact with the underlying C array, and that if it is freed from the C side of things, the behavior of any Go code using the slice is nondeterministic.
 
-## Common Pitfalls
-### Struct Alignment Issues
+### Common Pitfalls
+#### Struct Alignment Issues
 As Go doesn't support packed struct (e.g., structs where maximum alignment is 1 byte), you can't
 use packed C struct in Go. Even if your program passes compilation, it won't do what you want.
 To use it, you have to read/write the struct as byte array/slice.
@@ -365,18 +369,19 @@
 However, if you don't control the struct layout, you will have to define accessor C functions for
 that struct because cgo won't be able to translate that struct into equivalent Go struct.
 
-### ` //export ` and definition in preamble
+#### ` //export ` and definition in preamble
 If a Go source file uses any ` //export ` directives, then the C code in the comment may only include declarations (` extern int f(); `), not definitions (` int f() { return 1; }  ` or ` int n; `).
 Note: you can use ` static inline ` trick to work around this restriction for tiny functions defined
 in the preamble (see above for a complete example).
 
-### Windows
+#### Windows
 
 In order to use cgo on Windows, you'll also need to first install a gcc compiler (for instance, mingw-w64) and have gcc.exe (etc.) in your PATH environment variable before compiling with cgo will work.
 
-### environmental variables
+#### environmental variables
 Go os.Getenv() doesn't see variables set by C.setenv()
 
 
-### tests
+#### tests
 _test.go files can't use cgo.
+
diff --git a/golang-tools.md b/golang-tools.md
index 7d30045..e3cffd4 100644
--- a/golang-tools.md
+++ b/golang-tools.md
@@ -1,4 +1,8 @@
-# Mission statement
+---
+title: golang-tools
+---
+
+## Mission statement
 
 The golang-tools community is a group of people whose main focus and interest is the development of tools for the Go language. It is open to everyone. Tooling topics include (but are not limited to) code analysis, compilers, editor and IDE plugins, language servers, and standard libraries.
 
@@ -10,35 +14,35 @@
 
 A key goal of the golang-tools group is that all forums of communication, but especially the regular calls, are friendly and welcoming. We want to create an environment in which everyone feels both supported and able to share their opinions and experience, frankly, freely, and openly. The wider [Go Code of Conduct](https://go.dev/conduct), which we observe just like all other Go forums, summarises this well.
 
-# Community spaces
+## Community spaces
 
 Discussion within the community takes place in three main spaces. There are also dedicated golang-tools sessions held at GopherCon each year.
 
-## Slack
+### Slack
 
 Most day-to-day discussion take place in the `#tools` channel on the [Gophers Slack](https://gophers.slack.com/) ([sign-up here](https://invite.slack.golangbridge.org/)).
 
-## Mailing list
+### Mailing list
 
 The [golang-tools](https://groups.google.com/forum/#!forum/golang-tools) mailing list contains community updates as well as other forms of announcements.
 
-## Calls
+### Calls
 
 The community operates a monthly “catch-up” call covering updates about large-impact changes, new tool initiatives, ongoing community projects and much more. The agenda is community-driven and anyone can suggest items that they would like to cover.
 
 Like the other discussion spaces these calls are open to anyone and people new to the community are encouraged to join in and share in the conversation. The details (date, link, phone number, …) for each call are shared via the mailing list as well as the Slack channel.
 
-### Shared Calendar
+#### Shared Calendar
 
 As of October 2020, all calls/events will be added to the [shared calendar](https://calendar.google.com/calendar/u/0?cid=Y19vNjYyZXR1YTZlNTdsNW9kdDI0M2w5ZmxiOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t).
 
-### Upcoming calls
+#### Upcoming calls
 
 Note that calls always happen on the same [Google Meet link](https://meet.google.com/xuq-tcoc-dkp). Anyone can join the calls - no Google account is required.
 
 * 2023-01-29 - [Agenda](https://docs.google.com/document/d/1LKY-JRrPKkxoonvq7c3rr_DExzl_8X2Iq1TR8V0C3lg/edit?usp=sharing)
 
-### Call archive
+#### Call archive
 
 * 2023-11-29 - [Meeting notes](https://docs.google.com/document/d/1lzGFo6QxZaDohSW9DOC2rILAuFCNX2vWs8oon6etmWY/edit) - [video](https://www.youtube.com/watch?v=6uzF0q49kCg)
 * 2023-09-13 - [Meeting notes](https://docs.google.com/document/d/1CvFXUGjSnSPde5lKdERJZY4t4ifwLyhtaok6TZJ-RR0/edit) - [video](https://www.youtube.com/watch?v=JMiXnAkYZno)
@@ -92,7 +96,7 @@
 * 2018-09-18 - [Meeting notes](https://docs.google.com/document/d/1G7bEKWeFRjd9rPCkBJooC76CCb0Jiem5F_Q48C1zecQ/edit) - [video](https://www.youtube.com/watch?v=xrEtakZ7oWc&feature=youtu.be)
 * 2018-08-28 - [Notes from GopherCon "kick off" session](https://docs.google.com/document/d/1lB49VLzDrRd3wbXP1uLf-bHQyJRmH_Dc36JeEBlK-1Q/edit)
 
-### Organizing a call
+#### Organizing a call
 
 We try to share the load of organizing and running the calls between Gophers inside and outside of Google (generally alternating between Googlers and non-Googlers). Here are the steps required as organizer:
 
@@ -102,3 +106,4 @@
 4. Update the [shared calendar](https://calendar.google.com/calendar/u/0?cid=Y19vNjYyZXR1YTZlNTdsNW9kdDI0M2w5ZmxiOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t) with the new event. By convention calls run from 16:30-17:30 London.
 5. Send reminders 1-2 weeks before the call date to the [mailing list](https://groups.google.com/forum/#!forum/golang-tools) and #tools slack channel.
 6. On the day of the call, remember to ask a Googler to start recording, and then run through the agenda.
+
diff --git a/gopherbot.md b/gopherbot.md
index 480508b..9d86740 100644
--- a/gopherbot.md
+++ b/gopherbot.md
@@ -1,3 +1,7 @@
+---
+title: gopherbot
+---
+
 This page outlines all interactive gopherbot functionality. Most of the tasks gopherbot performs do not require human intervention, however it is starting to learn new tricks.
 
 ## Adding/Removing Labels
@@ -38,4 +42,4 @@
 
 The keywords are `@gopherbot`, `backport`, `please` and optionally the release. They can be anywhere in the comment. If no release is mentioned issues are opened for the two past releases. The entire message is quoted in the new issue, so please include a rationale.
 
-(Note that currently only the first backport command on an issue is executed. https://go.dev/issues/25574)
\ No newline at end of file
+(Note that currently only the first backport command on an issue is executed. https://go.dev/issues/25574)
diff --git a/gopls-integrator-FAQ.md b/gopls-integrator-FAQ.md
index 9e9f544..39a349e 100644
--- a/gopls-integrator-FAQ.md
+++ b/gopls-integrator-FAQ.md
@@ -1,5 +1,10 @@
 ---
+title: gopls-integrator-FAQ
+---
+
+---
 > This page has been subsumed into the [committed markdown](https://github.com/golang/tools/blob/master/gopls/doc/integrating.md) of x/tools repository
 > 
 > Please do not edit this page!
 ---
+
diff --git a/gopls.md b/gopls.md
index 81081d0..661c690 100644
--- a/gopls.md
+++ b/gopls.md
@@ -1,6 +1,11 @@
+---
+title: gopls
+---
+
 ----
 
 > This page was [moved to the x/tools repository](https://github.com/golang/tools/blob/master/gopls/README.md).
 > 
 > Please do not edit this page!
 ----
+
diff --git a/heapdump13.md b/heapdump13.md
index 9ef59ad..1ff8c0f 100644
--- a/heapdump13.md
+++ b/heapdump13.md
@@ -1,14 +1,18 @@
+---
+title: heapdump13
+---
+
 Heap dump format for other versions:
 
-  * Go 1.4: [[heapdump14]]
-  * Go 1.5 and later: [[heapdump15-through-heapdump17]]
+  * Go 1.4: [heapdump14](heapdump14)
+  * Go 1.5 and later: [heapdump15-through-heapdump17](heapdump15-through-heapdump17)
 
-# Introduction
+## Introduction
 
 Go 1.3 added a runtime/debug.WriteHeapDump function that writes all objects in the heap plus additional info (roots, goroutines, finalizers, etc.) to a file.  The format of this file is specified here.
 
 
-# Details
+## Details
 
 The file starts with the bytes of the string "go1.3 heap dump\n".
 
@@ -40,11 +44,11 @@
 
 The remaining fields of each record are type-dependent and are described below.
 
-# EOF
+## EOF
 
 An EOF record has no fields and must appear last.
 
-# object
+## object
   * uvarint: address of object
   * uvarint: address of type descriptor (or 0 if unknown)
   * uvarint: kind of object (0=regular 1=array 2=channel 127=conservatively scanned)
@@ -54,18 +58,18 @@
 
 The size of the contents string is the size of the containing sizeclass, not the size of the type itself.  As such, contents size may be somewhat bigger than the type size.  It may be a lot bigger for array and channel types.  For instance, an array with n elements will have a content size bigger than or equal to n times the type size.
 
-# otherroot
+## otherroot
   * string: textual description of where this root came from
   * uvarint: root pointer
 
-# type
+## type
   * uvarint: address of type descriptor
   * uvarint: size of an object of this type
   * string: name of type
   * bool: whether the data field of an interface containing a value of this type is a pointer
   * fieldlist: a list of the kinds and locations of pointer-containing fields in objects of this type
 
-# goroutine (G)
+## goroutine (G)
 
   * uvarint: address of descriptor
   * uvarint: pointer to the top of stack (the currently running frame, a.k.a. depth 0)
@@ -89,7 +93,7 @@
 
 The wait fields must be present in all cases, but they only mean something if the status is "waiting".
 
-# stack frame
+## stack frame
   * uvarint: stack pointer (lowest address in frame)
   * uvarint: depth in stack (0 = top of stack)
   * uvarint: stack pointer of child frame (or 0 if none)
@@ -100,7 +104,7 @@
   * string: function name
   * fieldlist: list of kind and offset of pointer-containing fields in this frame
 
-# dump params
+## dump params
 
   * bool: big endian
   * uvarint: pointer size in bytes
@@ -111,7 +115,7 @@
   * string: GOEXPERIMENT environment variable value
   * uvarint: runtime.ncpu
 
-# finalizer
+## finalizer
   * uvarint: address of object that has a finalizer
   * uvarint: pointer to FuncVal describing the finalizer
   * uvarint: PC of finalizer entry point
@@ -120,20 +124,20 @@
 
 This finalizer has been registered with the runtime system, but the object to which it refers was either reachable as of the most recent GC or allocated since the most recent GC.
 
-# itab
+## itab
   * uvarint: Itab address
   * bool: whether the data field of an Iface with this itab is a pointer
 
-# osthread (M)
+## osthread (M)
   * uvarint: address of this os thread descriptor
   * uvarint: Go internal id of thread
   * uvarint: os's id for thread
 
-# memstats
+## memstats
 
 Dumps the first 26 fields of [MemStats](https://pkg.go.dev/runtime/#MemStats).  All fields are dumped with a uvarint except the 25th which is dumped with 256 uvarints.
 
-# queuedfinalizer
+## queuedfinalizer
   * uvarint: address of object that has a finalizer
   * uvarint: pointer to FuncVal describing the finalizer
   * uvarint: PC of finalizer entry point
@@ -142,16 +146,16 @@
 
 This finalizer is ready to run - the object to which it refers is unreachable.  The runtime system just hasn't gotten around to running it yet.
 
-# data
+## data
   * uvarint: address of the start of the data segment
   * string: contents of the data segment
   * fieldlist: kind and offset of pointer-containing fields in the data segment.
 
-# bss
+## bss
 
 Same format as data, but for the bss segment.
 
-# defer
+## defer
   * uvarint: defer record address
   * uvarint: containing goroutine
   * uvarint: argp
@@ -160,7 +164,7 @@
   * uvarint: PC of defer entry point
   * uvarint: link to next defer record
 
-# panic
+## panic
   * uvarint: panic record address
   * uvarint: containing goroutine
   * uvarint: type ptr of panic arg eface
@@ -168,7 +172,7 @@
   * uvarint: ptr to defer record that's currently running
   * uvarint: link to next panic record
 
-# alloc/free profile record
+## alloc/free profile record
   * uvarint: record identifier
   * uvarint: size of allocated object
   * uvarint: number of stack frames.  For each frame:
@@ -178,6 +182,6 @@
   * uvarint: number of allocations
   * uvarint: number of frees
 
-# alloc sample record
+## alloc sample record
   * uvarint: address of object
-  * uvarint: alloc/free profile record identifier
\ No newline at end of file
+  * uvarint: alloc/free profile record identifier
diff --git a/heapdump14.md b/heapdump14.md
index 5b1504a..7e7c9fb 100644
--- a/heapdump14.md
+++ b/heapdump14.md
@@ -1,14 +1,18 @@
+---
+title: heapdump14
+---
+
 Heap dump format for other versions:
 
-  * Go 1.3: [[heapdump13]]
-  * Go 1.5 and later: [[heapdump15-through-heapdump17]]
+  * Go 1.3: [heapdump13](heapdump13)
+  * Go 1.5 and later: [heapdump15-through-heapdump17](heapdump15-through-heapdump17)
 
-# Introduction
+## Introduction
 
 Go 1.4 has a runtime/debug.WriteHeapDump function that writes all objects in the heap plus additional info (roots, goroutines, finalizers, etc.) to a file.  The format of this file is specified here.
 
 
-# Details
+## Details
 
 The file starts with the bytes of the string "go1.4 heap dump\n".
 
@@ -40,28 +44,28 @@
 
 The remaining fields of each record are type-dependent and are described below.
 
-# EOF
+## EOF
 
 An EOF record has no fields and must appear last.
 
-# object
+## object
   * uvarint: address of object
   * string: contents of object
   * fieldlist: describes pointer-containing fields of the object
 
 The size of the contents string is the size of the containing sizeclass, not the size of the object itself.  As such, contents size may be somewhat bigger than the contained object's type.
 
-# otherroot
+## otherroot
   * string: textual description of where this root came from
   * uvarint: root pointer
 
-# type
+## type
   * uvarint: address of type descriptor
   * uvarint: size of an object of this type
   * string: name of type
   * bool: whether the data field of an interface containing a value of this type is a pointer
 
-# goroutine (G)
+## goroutine (G)
 
   * uvarint: address of descriptor
   * uvarint: pointer to the top of stack (the currently running frame, a.k.a. depth 0)
@@ -85,7 +89,7 @@
 
 The wait fields must be present in all cases, but they only mean something if the status is "waiting".
 
-# stack frame
+## stack frame
   * uvarint: stack pointer (lowest address in frame)
   * uvarint: depth in stack (0 = top of stack)
   * uvarint: stack pointer of child frame (or 0 if none)
@@ -96,7 +100,7 @@
   * string: function name
   * fieldlist: list of kind and offset of pointer-containing fields in this frame
 
-# dump params
+## dump params
 
   * bool: big endian
   * uvarint: pointer size in bytes
@@ -106,7 +110,7 @@
   * string: GOEXPERIMENT environment variable value
   * uvarint: runtime.ncpu
 
-# finalizer
+## finalizer
   * uvarint: address of object that has a finalizer
   * uvarint: pointer to FuncVal describing the finalizer
   * uvarint: PC of finalizer entry point
@@ -115,20 +119,20 @@
 
 This finalizer has been registered with the runtime system, but the object to which it refers was either reachable as of the most recent GC or allocated since the most recent GC.
 
-# itab
+## itab
   * uvarint: Itab address
   * uvarint: address of type descriptor for contained type
 
-# osthread (M)
+## osthread (M)
   * uvarint: address of this os thread descriptor
   * uvarint: Go internal id of thread
   * uvarint: os's id for thread
 
-# memstats
+## memstats
 
 Dumps the first 26 fields of [MemStats](https://pkg.go.dev/runtime/#MemStats).  All fields are dumped with a uvarint except the 25th which is dumped with 256 uvarints.
 
-# queuedfinalizer
+## queuedfinalizer
   * uvarint: address of object that has a finalizer
   * uvarint: pointer to FuncVal describing the finalizer
   * uvarint: PC of finalizer entry point
@@ -137,16 +141,16 @@
 
 This finalizer is ready to run - the object to which it refers is unreachable.  The runtime system just hasn't gotten around to running it yet.
 
-# data
+## data
   * uvarint: address of the start of the data segment
   * string: contents of the data segment
   * fieldlist: kind and offset of pointer-containing fields in the data segment.
 
-# bss
+## bss
 
 Same format as data, but for the bss segment.
 
-# defer
+## defer
   * uvarint: defer record address
   * uvarint: containing goroutine
   * uvarint: argp
@@ -155,7 +159,7 @@
   * uvarint: PC of defer entry point
   * uvarint: link to next defer record
 
-# panic
+## panic
   * uvarint: panic record address
   * uvarint: containing goroutine
   * uvarint: type ptr of panic arg eface
@@ -163,7 +167,7 @@
   * uvarint: ptr to defer record that's currently running
   * uvarint: link to next panic record
 
-# alloc/free profile record
+## alloc/free profile record
   * uvarint: record identifier
   * uvarint: size of allocated object
   * uvarint: number of stack frames.  For each frame:
@@ -173,6 +177,6 @@
   * uvarint: number of allocations
   * uvarint: number of frees
 
-# alloc sample record
+## alloc sample record
   * uvarint: address of object
-  * uvarint: alloc/free profile record identifier
\ No newline at end of file
+  * uvarint: alloc/free profile record identifier
diff --git a/heapdump15-through-heapdump17.md b/heapdump15-through-heapdump17.md
index 800464d..90b209b 100644
--- a/heapdump15-through-heapdump17.md
+++ b/heapdump15-through-heapdump17.md
@@ -1,13 +1,17 @@
+---
+title: heapdump15-through-heapdump17
+---
+
 Heap dump format for other versions:
 
-  * [[heapdump13]]
-  * [[heapdump14]]
+  * Go 1.3: [heapdump13](heapdump13)
+  * Go 1.4: [heapdump14](heapdump14)
 
-# Introduction
+## Introduction
 
 Go 1.5 has a runtime/debug.WriteHeapDump function that writes all objects in the heap plus additional info (roots, goroutines, finalizers, etc.) to a file.  The format of this file is specified here.
 
-# Details
+## Details
 
 The file starts with the bytes of the string "go1.5 heap dump\n".
 This description also applies to files starting with "go1.6 heap dump\n" and "go1.7 heap dump\n".  The go1.6 format is identical to 1.5, and the go1.7 format has one small change described below.
@@ -40,28 +44,28 @@
 
 The remaining fields of each record are type-dependent and are described below.
 
-# EOF
+## EOF
 
 An EOF record has no fields and must appear last.
 
-# object
+## object
   * uvarint: address of object
   * string: contents of object
   * fieldlist: describes pointer-containing fields of the object
 
 The size of the contents string is the size of the containing sizeclass, not the size of the object itself.  As such, contents size may be somewhat bigger than the contained object's type.
 
-# otherroot
+## otherroot
   * string: textual description of where this root came from
   * uvarint: root pointer
 
-# type
+## type
   * uvarint: address of type descriptor
   * uvarint: size of an object of this type
   * string: name of type
   * bool: whether the data field of an interface containing a value of this type has type T (false) or *T (true)
 
-# goroutine (G)
+## goroutine (G)
 
   * uvarint: address of descriptor
   * uvarint: pointer to the top of stack (the currently running frame, a.k.a. depth 0)
@@ -85,7 +89,7 @@
 
 The wait fields must be present in all cases, but they only mean something if the status is "waiting".
 
-# stack frame
+## stack frame
   * uvarint: stack pointer (lowest address in frame)
   * uvarint: depth in stack (0 = top of stack)
   * uvarint: stack pointer of child frame (or 0 if none)
@@ -96,7 +100,7 @@
   * string: function name
   * fieldlist: list of kind and offset of pointer-containing fields in this frame
 
-# dump params
+## dump params
 
   * bool: big endian
   * uvarint: pointer size in bytes
@@ -106,7 +110,7 @@
   * string: GOEXPERIMENT environment variable value
   * uvarint: runtime.ncpu
 
-# finalizer
+## finalizer
   * uvarint: address of object that has a finalizer
   * uvarint: pointer to FuncVal describing the finalizer
   * uvarint: PC of finalizer entry point
@@ -115,18 +119,18 @@
 
 This finalizer has been registered with the runtime system, but the object to which it refers was either reachable as of the most recent GC or allocated since the most recent GC.
 
-# itab
+## itab
   * uvarint: Itab address
   * uvarint: address of type descriptor for contained type
     * Up to go1.6, the type is always a pointer type, and represents the type of the itab.data field.
     * From go1.7 and beyond, the type is the type stored in the interface.  To decide whether the itab.data field is T or *T requires looking at the last boolean in the referenced type's descriptor.
 
-# osthread (M)
+## osthread (M)
   * uvarint: address of this os thread descriptor
   * uvarint: Go internal id of thread
   * uvarint: os's id for thread
 
-# memstats
+## memstats
 
 Records the following fields of [runtime.MemStats](https://pkg.go.dev/runtime/#MemStats):
   * uvarint: Alloc
@@ -156,7 +160,7 @@
   * 256 uvarints: PauseNs
   * uvarint: NumGC
 
-# queuedfinalizer
+## queuedfinalizer
   * uvarint: address of object that has a finalizer
   * uvarint: pointer to FuncVal describing the finalizer
   * uvarint: PC of finalizer entry point
@@ -165,16 +169,16 @@
 
 This finalizer is ready to run - the object to which it refers is unreachable.  The runtime system just hasn't gotten around to running it yet.
 
-# data
+## data
   * uvarint: address of the start of the data segment
   * string: contents of the data segment
   * fieldlist: kind and offset of pointer-containing fields in the data segment.
 
-# bss
+## bss
 
 Same format as data, but for the bss segment.
 
-# defer
+## defer
   * uvarint: defer record address
   * uvarint: containing goroutine
   * uvarint: argp
@@ -183,7 +187,7 @@
   * uvarint: PC of defer entry point
   * uvarint: link to next defer record
 
-# panic
+## panic
   * uvarint: panic record address
   * uvarint: containing goroutine
   * uvarint: type ptr of panic arg eface
@@ -191,7 +195,7 @@
   * uvarint: ptr to defer record that's currently running
   * uvarint: link to next panic record
 
-# alloc/free profile record
+## alloc/free profile record
   * uvarint: record identifier
   * uvarint: size of allocated object
   * uvarint: number of stack frames.  For each frame:
@@ -201,6 +205,6 @@
   * uvarint: number of allocations
   * uvarint: number of frees
 
-# alloc sample record
+## alloc sample record
   * uvarint: address of object
-  * uvarint: alloc/free profile record identifier
\ No newline at end of file
+  * uvarint: alloc/free profile record identifier
diff --git a/heapdump15.md b/heapdump15.md
index 9e87602..826c9fc 100644
--- a/heapdump15.md
+++ b/heapdump15.md
@@ -1 +1,4 @@
-Page moved to https://github.com/golang/go/wiki/heapdump15-through-heapdump17
\ No newline at end of file
+---
+title: heapdump15
+redirect: /wiki/heapdump15-through-heapdump17
+---