diff --git a/public/consolidated/_index.json b/public/consolidated/_index.json
index c5640dd3..1bb59db8 100644
--- a/public/consolidated/_index.json
+++ b/public/consolidated/_index.json
@@ -19,6 +19,11 @@
"icon": "/icons/css.svg",
"subLanguages": []
},
+ {
+ "name": "GO",
+ "icon": "/icons/go.svg",
+ "subLanguages": []
+ },
{
"name": "HASKELL",
"icon": "/icons/haskell.svg",
diff --git a/public/consolidated/go.json b/public/consolidated/go.json
new file mode 100644
index 00000000..431d38f1
--- /dev/null
+++ b/public/consolidated/go.json
@@ -0,0 +1,62 @@
+[
+ {
+ "name": "HTTP",
+ "snippets": [
+ {
+ "title": "server",
+ "description": "runs an HTTP server with routing",
+ "author": "AmeerMoustafa",
+ "tags": [
+ "http",
+ "server",
+ "router",
+ "web"
+ ],
+ "contributors": [],
+ "code": "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n)\n\nvar Router = http.NewServeMux()\n\nvar server = http.Server{\n\tAddr: \":8080\",\n\tHandler: Router,\n}\n\n// Handler function example\nfunc example(w http.ResponseWriter, r *http.Request) {\n\tfmt.Fprintln(w, \"Hello HTTP server\")\n}\n\nfunc main() {\n\t// Route definitions\n\tRouter.HandleFunc(\"GET /\", example)\n\tserver.ListenAndServe()\n}\n"
+ }
+ ]
+ },
+ {
+ "name": "Basics",
+ "snippets": [
+ {
+ "title": "Hello, World!",
+ "description": "A simple function that outputs \"Hello, World!\"",
+ "author": "AmeerMoustafa",
+ "tags": [
+ "basics",
+ "formatting"
+ ],
+ "contributors": [],
+ "code": "package main\n\nimport \"fmt\"\n\nfunc main() {\n\n fmt.Println(\"Hello, World!\")\n}\n"
+ }
+ ]
+ },
+ {
+ "name": "File handling",
+ "snippets": [
+ {
+ "title": "Read and write helpers",
+ "description": "Simple and reusable functions to help with file reading and writing",
+ "author": "AmeerMoustafa",
+ "tags": [
+ "file handling"
+ ],
+ "contributors": [],
+ "code": "// A reusable function to read data from a file\nfunc readFile(filePath string) (data []byte, err error) {\n\tdata, err = os.ReadFile(filePath)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read file %s: %w\", filePath, err)\n\t}\n\n\treturn data, nil\n}\n\n// A reusable function to write data to a file\nfunc writeFile(data string, filePath string) error {\n\n\terr := os.WriteFile(filePath, []byte(data), 0644)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Failed to write to file %s: %w\", filePath, err)\n\t}\n\treturn nil\n}\n"
+ },
+ {
+ "title": "Write data to a CVS file",
+ "description": "An example of writing data to a cvs file",
+ "author": "AmeerMoustafa",
+ "tags": [
+ "file handling",
+ "cvs"
+ ],
+ "contributors": [],
+ "code": "package main\n\nimport (\n \"os\"\n \"log\"\n \"encoding/csv\"\n)\n\nvar data = [][]string{{\"Line1\", \"Hello Readers of\"}, {\"Line2\", \"quicksnip.dev\"}}\n\nfunc main() {\n file, err := os.Create(\"result.csv\")\n checkError(\"Cannot create file\", err)\n defer file.Close()\n\n writer := csv.NewWriter(file)\n defer writer.Flush()\n\n for _, value := range data {\n err := writer.Write(value)\n checkError(\"Cannot write to file\", err)\n }\n}\n\nfunc checkError(message string, err error) {\n if err != nil {\n log.Fatal(message, err)\n }\n}\n"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/public/consolidated/javascript.json b/public/consolidated/javascript.json
index 7087e0ec..fbaf9ffd 100644
--- a/public/consolidated/javascript.json
+++ b/public/consolidated/javascript.json
@@ -410,7 +410,7 @@
"algebra"
],
"contributors": [],
- "code": "function combinations(n, r) {\n function factorial(x) {\n if (x === 0 || x === 1) return 1;\n let result = 1;\n for (let i = 2; i <= x; i++) {\n result *= i;\n }\n return result;\n }\n return factorial(n) / (factorial(r) * factorial(n - r));\n}\n\n// Usage:\ncombinations(12,24); // Returns: 7.720248753351544e-16\ncombinations(1,22); // Returns: 8.896791392450574e-22\n"
+ "code": "function combinations(n, r) {\n if (n < 0 || r < 0 || n < r) {\n throw new Error('Invalid input: n and r must be non-negative and n must be greater than or equal to r.');\n }\n\n function factorial(x) {\n if (x === 0 || x === 1) return 1;\n let result = 1;\n for (let i = 2; i <= x; i++) {\n result *= i;\n }\n return result;\n }\n\n const numerator = factorial(n);\n const denominator = factorial(r) * factorial(n - r);\n return numerator / denominator;\n}\n\n// Usage:\ncombinations(24,22); // Returns: 276\ncombinations(5,3); // Returns: 10\n"
},
{
"title": "Cross Product",
diff --git a/public/icons/go.svg b/public/icons/go.svg
new file mode 100644
index 00000000..b42816f9
--- /dev/null
+++ b/public/icons/go.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/snippets/go/HTTP/server.md b/snippets/go/HTTP/server.md
new file mode 100644
index 00000000..efc4a968
--- /dev/null
+++ b/snippets/go/HTTP/server.md
@@ -0,0 +1,33 @@
+---
+title: server
+description: runs an HTTP server with routing
+author: AmeerMoustafa
+tags: http,server,router,web
+---
+
+```go
+package main
+
+import (
+ "fmt"
+ "net/http"
+)
+
+var Router = http.NewServeMux()
+
+var server = http.Server{
+ Addr: ":8080",
+ Handler: Router,
+}
+
+// Handler function example
+func example(w http.ResponseWriter, r *http.Request) {
+ fmt.Fprintln(w, "Hello HTTP server")
+}
+
+func main() {
+ // Route definitions
+ Router.HandleFunc("GET /", example)
+ server.ListenAndServe()
+}
+```
diff --git a/snippets/go/basics/hello-world.md b/snippets/go/basics/hello-world.md
new file mode 100644
index 00000000..eee82be0
--- /dev/null
+++ b/snippets/go/basics/hello-world.md
@@ -0,0 +1,17 @@
+---
+title: Hello, World!
+description: A simple function that outputs "Hello, World!"
+author: AmeerMoustafa
+tags: basics,formatting
+---
+
+```go
+package main
+
+import "fmt"
+
+func main() {
+
+ fmt.Println("Hello, World!")
+}
+```
diff --git a/snippets/go/file handling/read-and-write-helpers.md b/snippets/go/file handling/read-and-write-helpers.md
new file mode 100644
index 00000000..48996658
--- /dev/null
+++ b/snippets/go/file handling/read-and-write-helpers.md
@@ -0,0 +1,28 @@
+---
+title: Read and write helpers
+description: Simple and reusable functions to help with file reading and writing
+author: AmeerMoustafa
+tags: file handling
+---
+
+```go
+// A reusable function to read data from a file
+func readFile(filePath string) (data []byte, err error) {
+ data, err = os.ReadFile(filePath)
+ if err != nil {
+ return nil, fmt.Errorf("failed to read file %s: %w", filePath, err)
+ }
+
+ return data, nil
+}
+
+// A reusable function to write data to a file
+func writeFile(data string, filePath string) error {
+
+ err := os.WriteFile(filePath, []byte(data), 0644)
+ if err != nil {
+ return fmt.Errorf("Failed to write to file %s: %w", filePath, err)
+ }
+ return nil
+}
+```
\ No newline at end of file
diff --git a/snippets/go/file handling/write-data-to-a-cvs-file.md b/snippets/go/file handling/write-data-to-a-cvs-file.md
new file mode 100644
index 00000000..b1bb295b
--- /dev/null
+++ b/snippets/go/file handling/write-data-to-a-cvs-file.md
@@ -0,0 +1,39 @@
+---
+title: Write data to a CVS file
+description: An example of writing data to a cvs file
+author: AmeerMoustafa
+tags: file handling,cvs
+---
+
+
+```go
+package main
+
+import (
+ "os"
+ "log"
+ "encoding/csv"
+)
+
+var data = [][]string{{"Line1", "Hello Readers of"}, {"Line2", "quicksnip.dev"}}
+
+func main() {
+ file, err := os.Create("result.csv")
+ checkError("Cannot create file", err)
+ defer file.Close()
+
+ writer := csv.NewWriter(file)
+ defer writer.Flush()
+
+ for _, value := range data {
+ err := writer.Write(value)
+ checkError("Cannot write to file", err)
+ }
+}
+
+func checkError(message string, err error) {
+ if err != nil {
+ log.Fatal(message, err)
+ }
+}
+```
\ No newline at end of file
diff --git a/snippets/go/icon.svg b/snippets/go/icon.svg
new file mode 100644
index 00000000..b42816f9
--- /dev/null
+++ b/snippets/go/icon.svg
@@ -0,0 +1,6 @@
+
+