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