A better Documentation Platform for Reason
The website reasonml.org
is a community project dedicated to a better
documentation experience for the Reason & BuckleScript platform and is
currently a Work in Progress.
More details about this project and its high level roadmap (1-2 years) are documented here.
The reasonml.org
website is currently in pre-alpha
phase.
Please be aware that the URL structure for this website is not finalized yet
and may be subject to change.
We will introduce permalinks with our first stable release.
Current Progress
All the information you can find here is a fork of the official sources, unified and optimized for a single doc website experience. Especially for the BuckleScript documentation, you'll find some useful additions and better explanations for its functionality.
We always make sure to regularly sync with the changes upstream and we accept PRs for doc improvements (we try to keep the same file structure though).
If there's anything missing, please open up an issue and let us know!
Docs | Official Source | Latest Update / Commit | |
---|---|---|---|
ReasonML | reasonml.github.io | Feb 19, 2020 / #bd70b1 | |
BuckleScript | bucklescript.github.io | Feb 19, 2020 / #5f8df9 | |
ReasonReact | reasonml.github.io/reason-react | Feb 21, 2020 / #206d8c | |
GenType | github.com/cristianoc/genType | Feb 25, 2020 / #e2590e |
Feature | Status | Notes | |
---|---|---|---|
Playground | 🚧 | In the works within the BuckleScript repo | |
BS API Docs | 🚧 | Only JS / Belt module (rest coming soon) (BS v7.0.0) | |
Full Page Search | 📝 | In the planning phase | |
Blog | ✅ | Relocated and cross-referenced all BuckleScript, ReasonReact, ReasonML Posts | |
Community | ✅ | adapted and partly rewritten |
Stay informed about recent updates either via the @ReasonAssoc twitter handle or within the ReasonML Discord!
Official Resources
In case you are looking for the current official docs, here is a good reference sheet:
Esy Package Manager - Easy package management for native Reason, OCaml and more
GenType - Auto generation of idiomatic bindings between Reason and JavaScript
Current Focus / Open Tasks
Following sections are just a rough outline on what needs to be done in the next steps:
Docs:
Upstream the Reason language docs from reasonml.github.ioUpstream the BuckleScript docs from bucklescript.github.ioUpstream GenType docsUpstream Blog Posts from all different sourcesMerge Reason's & BuckleScript's docs into one cohesive document
API documentation:
Refining the Belt API & Js API documentation by hand via markdown
Use
odoc
to extract JSON API documentation from source code (see our doc-tools project for more details)Upstream our markdown curated changes of the Belt / Js modules into the BuckleScript source code
Playground:
Improve the BuckleScript generated playground bundle for our use-cases (see issue)
Improve the workflow for generating third-party package bundles (define a protocol on how to hook those into the playground engine)
Integrate the Playground Engine + ReasonReact 3rd Party dep into the UI (see the NIT playground for inspiration)
Search Functionality:
Build the custom Search overlay (see the design)
Add Algolia's OSS webscraper engine and wire it up with our UI
Generate indexing data via
odoc
and use a paid plan for Algolia's indexing serviceTweak UI for API vs. whole page searches
How to contribute
Check out our contribution guidelines to find a task to work on and make sure to sync up with the team via Discord (ReasonML / #docs channel) and / or ping @ryyppy.
If you want to contribute to the ReasonML / BuckleScript / ReasonReact / GenType docs, please open PRs on the original sources for now and feel free to open issues on reasonml.org to let us know about it.
Also check out our markdown guide to get an overview over all available UI components when writing documentation.
Sponsors
We want to thank our sponsors for making this project possible.
We are always looking for new sponsor partners to continously improve our documentation experience. Please refer to the Reason Assocation's donation section for more information.