[PR for wiki] Add overview comments & move bindings to readme
jcbhmr opened this issue · 1 comments
jcbhmr commented
diff --git a/Bindings-in-other-languages.md b/Bindings-in-other-languages.md
deleted file mode 100644
index 6d6e579..0000000
--- a/Bindings-in-other-languages.md
+++ /dev/null
@@ -1,7 +0,0 @@
-This page lists known bindings in other programming languages. Please report issues with these bindings on their respective repositories.
-
-| Language | Repository |
-| --- | --- |
-| Rust | [nfde-rs](https://github.com/btzy/nfde-rs) |
-| Java/Kotlin | [Native File Dialog Java](https://github.com/WonderzGmbH/nativefiledialog-java) |
-| Java | [LWJGL - Lightweight Java Game Library 3](https://github.com/LWJGL/lwjgl3) |
\ No newline at end of file
diff --git a/Home.md b/Home.md
index 280bfec..b146619 100644
--- a/Home.md
+++ b/Home.md
@@ -1,4 +1,23 @@
-Welcome to the nativefiledialog-extended wiki!
+Hello! 👋 This is the Native File Dialog (Extended) wiki page. You might be
+looking for the [README page] of the main repository instead. Check out the
+sidebar for more wiki pages!
-- [[Bindings in other languages]]
-- [[Native File Dialog Extended in the wild]]
\ No newline at end of file
+**This project has a C interface.** This interface is `nfd.h`. This means that
+after compiling this project into a static or shared library, you can use it
+with anything that knows how to call C code. C is the lingua franca of desktop
+programming, so almost any general-purpose programming language (including C++,
+Rust, Python, and JavaScript (NodeJS)) will have a way of calling C interfaces.
+For interpreted and garbage-collected languages like Python and JavaScript, this
+usually involves writing some boilerplate code (or autogenerating them using
+some tools) to marshal objects across languages.
+
+**This project is implemented in C++ (for Windows and Linux) and Objective-C
+(for MacOS).** This means that to compile this project from source, you need to
+use a C++ or Objective-C compiler, depending that platform you are compiling
+for. (The nfd_cocoa.m file is the implementation for MacOS.) The required
+compilers are the standard compilers for each of the three operating systems,
+and can be downloaded easily for free from their official websites (or for
+Linux, it should come pre-installed). Once compiled into a static or shared
+library, however, its interface looks and behaves like a C library.
+
+[README]: https://github.com/btzy/nativefiledialog-extended#readme
diff --git a/Native-File-Dialog-Extended-in-the-wild.md b/Native-File-Dialog-Extended-in-the-wild.md
index d1c8d33..c13f892 100644
--- a/Native-File-Dialog-Extended-in-the-wild.md
+++ b/Native-File-Dialog-Extended-in-the-wild.md
@@ -1,19 +1,20 @@
-This page lists known popular projects that depend on NFDe, which might give an indication as to how battle-tested the backends are.
+This page lists known popular projects that depend on NFDe, which might give an
+indication as to how battle-tested the backends are.
-| Project | Windows | MacOS | Linux (GTK) | Linux (Portal) | Frameworks | Description |
-| --- | :-: | :-: | :-: | :-: | --- | --- |
-| [Amalgam Engine](https://github.com/Net5F/AmalgamEngine) | ✔️ | ✔️ | ✔️ | | SDL2 | Engine for creating virtual worlds |
-| [dgb-n64](https://github.com/Dillonb/n64) | ✔️ | | | ✔️ | ImGui | Nintendo 64 low-level emulator |
-| [glscopeclient](https://github.com/glscopeclient/scopehal-apps) | ✔️ | ✔️ | ✔️ | | ImGui, GLFW | Signal analysis tool for oscilloscopes and logic analyzers |
-| [ImHex](https://github.com/WerWolv/ImHex) | ✔️ | ✔️ | | ✔️ | ImGui, GLFW | Featureful hex editor |
-| [ImPlay](https://github.com/tsl0922/ImPlay) | ✔️ | ✔️ | ✔️ | | ImGui, GLFW | Desktop media player |
-| [mahi-gui](https://github.com/mahilab/mahi-gui) | ✔️ | ✔️ | ✔️ | | GLFW | GUI framework |
-| [Metaforce](https://github.com/AxioDL/metaforce) | ✔️ | ✔️ | | ✔️ | ImGui, SDL2 | Native reimplementation of Metroid Prime |
-| [Nodable](https://github.com/berdal84/Nodable) | ✔️ | ✔️ | | ✔️ | ImGui | Hybrid textual and nodal source code editor |
-| [OpenJKDF2](https://github.com/shinyquagsire23/OpenJKDF2) | ✔️ | ✔️ | ✔️ | | SDL2 | Open-source reimplementation of Dead Frontier 2 |
-| [OpenSiv3D](https://github.com/Siv3D/OpenSiv3D) | | | ✔️ | | GLFW | Creative coding framework |
-| [Soundux](https://github.com/Soundux/Soundux) | ✔️ | | ✔️ | | | Soundboard |
-| [SPlisHSPlasH](https://github.com/InteractiveComputerGraphics/SPlisHSPlasH) | ✔️ | | | ✔️ | ImGui, GLFW | Fluid simulation library |
-| [TinyUSDZ](https://github.com/syoyo/tinyusdz) | ✔️ | ✔️ | ✔️ | | SDL2 | Universal Scene Description (USD) library |
-| [Tracy Profiler](https://github.com/wolfpld/tracy) | ✔️ | ✔️ | | ✔️ | ImGui, GLFW | Code profiler |
-| [Vita3K](https://github.com/Vita3K/Vita3K) | ✔️ | ✔️ | | ✔️ | ImGui, SDL2 | PlayStation Vita emulator |
+| Project | Windows | MacOS | Linux (GTK) | Linux (Portal) | Frameworks | Description |
+| --------------------------------------------------------------------------- | :-----: | :---: | :---------: | :------------: | ----------- | ---------------------------------------------------------- |
+| [Amalgam Engine](https://github.com/Net5F/AmalgamEngine) | ✔️ | ✔️ | ✔️ | | SDL2 | Engine for creating virtual worlds |
+| [dgb-n64](https://github.com/Dillonb/n64) | ✔️ | | | ✔️ | ImGui | Nintendo 64 low-level emulator |
+| [glscopeclient](https://github.com/glscopeclient/scopehal-apps) | ✔️ | ✔️ | ✔️ | | ImGui, GLFW | Signal analysis tool for oscilloscopes and logic analyzers |
+| [ImHex](https://github.com/WerWolv/ImHex) | ✔️ | ✔️ | | ✔️ | ImGui, GLFW | Featureful hex editor |
+| [ImPlay](https://github.com/tsl0922/ImPlay) | ✔️ | ✔️ | ✔️ | | ImGui, GLFW | Desktop media player |
+| [mahi-gui](https://github.com/mahilab/mahi-gui) | ✔️ | ✔️ | ✔️ | | GLFW | GUI framework |
+| [Metaforce](https://github.com/AxioDL/metaforce) | ✔️ | ✔️ | | ✔️ | ImGui, SDL2 | Native reimplementation of Metroid Prime |
+| [Nodable](https://github.com/berdal84/Nodable) | ✔️ | ✔️ | | ✔️ | ImGui | Hybrid textual and nodal source code editor |
+| [OpenJKDF2](https://github.com/shinyquagsire23/OpenJKDF2) | ✔️ | ✔️ | ✔️ | | SDL2 | Open-source reimplementation of Dead Frontier 2 |
+| [OpenSiv3D](https://github.com/Siv3D/OpenSiv3D) | | | ✔️ | | GLFW | Creative coding framework |
+| [Soundux](https://github.com/Soundux/Soundux) | ✔️ | | ✔️ | | | Soundboard |
+| [SPlisHSPlasH](https://github.com/InteractiveComputerGraphics/SPlisHSPlasH) | ✔️ | | | ✔️ | ImGui, GLFW | Fluid simulation library |
+| [TinyUSDZ](https://github.com/syoyo/tinyusdz) | ✔️ | ✔️ | ✔️ | | SDL2 | Universal Scene Description (USD) library |
+| [Tracy Profiler](https://github.com/wolfpld/tracy) | ✔️ | ✔️ | | ✔️ | ImGui, GLFW | Code profiler |
+| [Vita3K](https://github.com/Vita3K/Vita3K) | ✔️ | ✔️ | | ✔️ | ImGui, SDL2 | PlayStation Vita emulator |
This PR would...
- Remove the bindings for other languages page from the wiki
- Add overview comments from #103 to the homepage
- Use https://prettier.io/ (Markdown formatter) on all content (especially tables!)
btzy commented
Thanks! However, I'm not too keen about making most of these changes to the wiki.
- Removing the link to
[[Native File Dialog Extended in the wild]]
from the main wiki page. While readers can use the sidebar, I think it's less noticeable. There isn't a lot of content in the main wiki page anyway, so I don't think there is a problem with using it as a contents page of sorts. - Putting the two paragraphs from #103 in the main wiki page. I think there has to be some level baseline level of knowledge I assume the reader should have (or is otherwise able to figure out on their own) when reading this wiki. For a typical C/C++ project like this one (I count Objective-C together with C and C++ here, because it has the same compilation model, and stock distributions of clang will be able to compile it in a similar way to C and C++), I consider both paragraphs to be either common knowledge or information that can be easily looked up on the Internet for people looking for a C library. Virtually every other C/C++ project that I have seen does not delve into these things.
- Prettier. Prettier is nice, but this means that whenever someone (almost certainly me) wants to modify the wiki, they will need to setup prettier and all its dependencies (i.e. npm or yarn), and figure out how to use them or (ideally) integrate them into their IDEs. npm and yarn are fairly uncommon dependencies for desktop programming in C-like languages, and so this would be surprising. Given that I expect very few direct wiki checkouts at this point, there's less of a need to add editing overhead for the sake of nice formatting.