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
+---
