diff --git a/docs/_posts/2024-02-22-list.markdown b/docs/_posts/2024-02-22-list.markdown
index b3df18d..b2cab1d 100644
--- a/docs/_posts/2024-02-22-list.markdown
+++ b/docs/_posts/2024-02-22-list.markdown
@@ -15,9 +15,9 @@ Tools you may need throughout the development process: development, building, te
|Use Case|Recommended Tools|
|---|---|
|Standard Library|[**glibc**](https://www.gnu.org/software/libc/)
The most widely used C standard library.
[**musl**](https://musl.libc.org)
Light-weight and efficient C standard library, designed for static linking.
[**uClibc-ng**](https://uclibc-ng.org/)
Another light-weight C standard library, designed for embedded systems. |
-|Package Manager|[**Conan**](https://conan.io)
A C/C++ package manager, similar to npm or pip.
[**vcpkg**](https://vcpkg.io/)
Open-source cross-platform package manager from Microsoft.
[**pkg-config**](https://www.freedesktop.org/wiki/Software/pkg-config/)
A helper tool for using libraries. Not really a package manager, but widely used to help find libraries installed on a system. |
+|Package Manager|[**Conan**](https://conan.io)
A C/C++ package manager, with a large repository.
[**vcpkg**](https://vcpkg.io/)
Package manager from Microsoft. Mainly for Visual Studio, but works on Un*x too.
[**pkg-config**](https://www.freedesktop.org/wiki/Software/pkg-config/)
A helper tool for using libraries. Not really a package manager, but widely used to help find libraries installed on a system. |
|Language Server|[**clangd**](https://clangd.llvm.org)
Adds smart features to your editor: code completion, compile errors, go-to-definition and more.|
-|Linting|[**Cppcheck**](http://cppcheck.sourceforge.net)
A static analysis tool for common C/C++ code problems.
[**clang-tidy**](https://clang.llvm.org/extra/clang-tidy/)
A clang-based C/C++ linter. Default linter for clangd and CLion IDE.|
+|Linting|[**Cppcheck**](http://cppcheck.sourceforge.net)
A static analysis tool for common C/C++ code problems.
[**clang-tidy**](https://clang.llvm.org/extra/clang-tidy/)
A clang-based C/C++ linter. The default linter for clangd plugin and CLion IDE.|
@@ -27,8 +27,8 @@ Tools you may need throughout the development process: development, building, te
|Use Case|Recommended Tools|
|---|---|
|Toolchain|[**GCC C Compiler**](https://gcc.gnu.org/)
Widely used compiler for Un*x system.
[**Clang**](https://clang.llvm.org/)
A C frontend that compiles C into LLVM IR. Also very popular.
[**MSVC**](https://visualstudio.microsoft.com/)
Microsoft's C compiler toolchain, mainly for Windows. |
-|Build System|[**Autotools**](https://www.gnu.org/software/automake/manual/html_node/GNU-Build-System.html)
One of the most widely used build systems (configure && make).
[**CMake**](https://cmake.org)
The de-facto standard for building modern C/C++ code.|
-|Documentation Generator|[**Doxygen**](https://www.doxygen.nl)
The most widely used documentation generator for C. Default theme looks not very attractive but you can customize it.|
+|Build System|[**Autotools**](https://www.gnu.org/software/automake/manual/html_node/GNU-Build-System.html)
One of the most widely used build systems (configure && make).
[**CMake**](https://cmake.org)
The de-facto standard for building modern C/C++ project.|
+|Documentation Generator|[**Doxygen**](https://www.doxygen.nl)
The most widely used documentation generator for C. Default theme looks not very attractive but can be customized.|
@@ -49,7 +49,7 @@ Tools you may need throughout the development process: development, building, te
|Use Case|Recommended Tools|
|---|---|
-|Automatic Checker|[**Sanitizers**](https://github.com/google/sanitizers)
AddressSanitizer, UndefinedBehaviorSanitizer, MemorySanitizer to detect runtime problems.
[**Valgrind**](http://valgrind.org)
A suite of tools for debugging and profiling, having similar features to sanitizers. Both are very popular and time-tested.|
+|Automatic Checker|[**Sanitizers**](https://github.com/google/sanitizers)
AddressSanitizer, UndefinedBehaviorSanitizer, MemorySanitizer to detect runtime problems.
[**Valgrind**](http://valgrind.org)
A tools suite for debugging and profiling, having similar features to sanitizers. Both are very popular and time-tested.|
|Manual Debugger|[**GDB**](https://www.gnu.org/software/gdb/)
The most widely used debugger by GNU for C, as well as Asm, D, Fortran, Go, Rust, OpenCL, and many other languages. |
@@ -81,7 +81,7 @@ Also please take a look at all-in-one utility libraries in the previous section,
|Use Case|Recommended Tools|
|---|---|
-|Generic Collections|[**Collections-C**](https://github.com/srdja/Collections-C)
Generic arrays, lists, hashmaps, and more. Use `void *` to store any type of data.
[**STC**](https://github.com/stclib/STC)
Similar to Collections-C, but uses macros to simulate generics.|
+|Generic Collections|[**Collections-C**](https://github.com/srdja/Collections-C)
Generic arrays, lists, hashmaps, and more. Use `void *` to store any type of data.
[**STC**](https://github.com/stclib/STC)
Similar to Collections-C, but uses macros to simulate generics.|
@@ -93,7 +93,7 @@ Also please take a look at all-in-one utility libraries in the previous section,
|Dynamic Strings|[**sds**](https://github.com/antirez/sds)
Simple Dynamic Strings library. Inactive for a while. |
|Unicode Support|[**utf8.h**](https://github.com/sheredom/utf8.h)
Single-header UTF-8 library mimicking string.h functions.
[**ICU**](https://github.com/unicode-org/icu)
International Components for Unicode, official Unicode toolkit. Includes String iteration, collation, datetime formatting, parsing, locale-sensitive text segmentation, and more. Much more heavier.|
|SIMD Acceleration|[**StringZilla**](https://github.com/ashvardanian/StringZilla)
SIMD-accelerated string fuzzy matching, edit distance, and more. |
-|Regular Expressions|[**hyperscan**](https://github.com/intel/hyperscan)
Intel's high-performance multi-thread text matching library. Use a well-designed callback-style API and may be too complex for simple use cases.
[**cre2**](https://github.com/marcomaggi/cre2)
C wrapper of Google's re2 library. Easier to use, but inactively maintained.
[**Onigmo**](https://github.com/k-takata/Onigmo)
Standalone regular expression library, a fork of Oniguruma. Easy to use but inactively maintained.|
+|Regular Expressions|[**hyperscan**](https://github.com/intel/hyperscan)
Intel's high-performance multi-thread text matching library. Use a well-designed callback-style API and may be too complex for simple use cases.
[**cre2**](https://github.com/marcomaggi/cre2)
C wrapper of Google's re2 library. Easy to use but inactively maintained.
[**Onigmo**](https://github.com/k-takata/Onigmo)
Standalone regular expression library, a fork of Oniguruma. Easy to use but inactively maintained.|
@@ -168,7 +168,7 @@ Networking is the dullest part of C programming.
|Use Case|Recommended Tools|
|---|---|
|HTTP|[**libmicrohttpd**](https://www.gnu.org/software/libmicrohttpd/)
A small library that makes it easy to run an HTTP server. Widely used.
[**libhv**](https://github.com/ithewei/libhv)
Full-featured async library for TCP/UDP/HTTP(S)/WebSocket client/server/proxy, and MQTT client.|
-|gRPC|**Note**: Unfortunately, there is no good gRPC library for C. The best way to use gRPC in C is to use the C++ bindings.|
+|gRPC|**Note**: Unfortunately, there is [no good gRPC library for C](https://github.com/grpc/grpc/issues/23160#issuecomment-646123380). The best way to use gRPC in C is to use the C++ bindings.|
@@ -181,7 +181,7 @@ C has incredibly complete support for databases, but it's not as easy as using o
|Use Case|Recommended Tools|
|---|---|
-|ORMs|**Note**: Unfortunately, there is no good ORM library for C, since C is lack of generics, reflection, compile-time code generation, OOP, etc. It is recommended to use a low-level SQL library, if you really need to use C.|
+|ORMs|**Note**: Unfortunately, there is [no good ORM library for C, since C is lack of generics, reflection, compile-time code generation, OOP, etc.](https://stackoverflow.com/questions/10577006/is-there-some-convenient-orm-library-framework-for-c) It is recommended to use a low-level SQL library, if you really need to use C.|
|MySQL|[**libmysqlclient**](https://dev.mysql.com/downloads/c-api/)
Official MySQL C API.|
|Postgres|[**libpq**](https://www.postgresql.org/docs/current/libpq.html)
Official Postgres C API.|
|SQLite|[**sqlite**](https://sqlite.org/)
Official SQLite library.|
@@ -296,7 +296,7 @@ Embeds other languages into C. To embed C into other languages, just check the F
|Use Case|Recommended Tools|
|---|---|
-|Declarative UI|[**GTK**](https://www.gtk.org/)
A traditional multi-platform toolkit for creating graphical user interfaces.
[**LCUI**](https://github.com/lc-soft/LCUI)
Building desktop apps with XML/CSS. Modern but immature.
[**LVGL**](https://lvgl.io/)
Light and powerful GUI library, with a small memory footprint. Mainly designed for embedded systems.
[**libui-ng**](https://github.com/libui-ng/libui-ng)
Fork of unmaintained libui, a simple and portable GUI library using native widgets on Unix, Windows, and macOS. Still immature. |
+|Declarative UI|[**GTK**](https://www.gtk.org/)
A traditional multi-platform toolkit for creating graphical user interfaces.
[**LCUI**](https://github.com/lc-soft/LCUI)
Building desktop apps with XML/CSS. Modern but immature.
[**LVGL**](https://lvgl.io/)
Light and powerful GUI library. Mainly designed for embedded systems.
[**libui-ng**](https://github.com/libui-ng/libui-ng)
Fork of unmaintained libui, a simple and portable GUI library using native widgets on Unix, Windows, and macOS. Still immature. |
|Immediate Mode UI|[**Nuklear**](https://github.com/Immediate-Mode-UI/Nuklear)
Single-header immediate mode portable GUI library, C89-compatible. |
|Web-based UI|[**azul**](https://github.com/fschutt/azul)
GUI framework for desktop applications in Rust based on Mozilla's WebRender, having C bindings. |
|File Dialogs|[**tinyfiledialogs**](https://sourceforge.net/projects/tinyfiledialogs/)
Single-file dialog library for showing cross-platform file dialogs. |
diff --git a/docs/index.md b/docs/index.md
index 5d55bec..e4ad29f 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -5,11 +5,20 @@ title: "Home"
layout: home
---
+
+
+
+
## What is this?
-The standard library in C is much smaller than in Python or Go, for example. Those languages come with "batteries included" support for things like HTTP(S), JSON, timezones and async IO.
+The standard library in C is much smaller than in, for example, Python or Go. Those languages come with "batteries included" support for things like HTTP(S), JSON, timezones and async IO.
-C programmers, on the other hand, are often used to being "self-sufficient" - using a small number of libraries and implementing a lot of logic by own hands. This is due to the fact that C does not have an "all-in-one" package manager and package repository so far, and **the information on the Internet is so fragmented that almost forces one to lose all hope of finding a good library for his/her use case.** They don't know which packages are stable, fully functional, and trustworthy.
+C programmers, on the other hand, are often used to being "self-sufficient" - using a limited set of libraries and and handcraft logic. This is due to the fact that C does not have an "all-in-one" package manager and repository so far, and **the online information is so fragmented that almost forces one to give up finding a good library for his/her use case.** They sometimes don't know which packages are stable, fully functional, and trustworthy.
-To avoid reinventing the wheel, this list is intended to help answer those questions.
+To avoid reinventing the wheel, this list is intended to answer those questions.
-**Disclaimer**: This list is not exhaustive and is not intended to be. It is not a list of every C library that exists. It is also not a list of the "best" C libraries, because "best" is subjective. We want to include those well-maintained, well-documented, and well-tested libraries that are widely used and have a good reputation. **But even in these areas, it is possible to miss something with only a few searches and comparisons. If you find something wrong, don't hesitate to [come and help us refine it](https://github.com/w568w/blessed-c/)! :)**
\ No newline at end of file
+**Disclaimer**: This list is not exhaustive and is not intended to be. It is also not a list of the "best" C libraries, because "best" is subjective. We want to include those well-maintained, well-documented, and well-tested libraries that are widely used and have a good reputation. **But even so, it is possible to miss something with only a few searches and comparisons. If you find something weird, don't hesitate to [come and help us refine it](https://github.com/w568w/blessed-c/)! :)**
\ No newline at end of file
diff --git a/docs/logo.png b/docs/logo.png
new file mode 100644
index 0000000..78124d8
Binary files /dev/null and b/docs/logo.png differ