This is a very good initiative. In order not to over engineer things, I will follow some simple rules.
> Simple is harder than complex - Steve Jobs
- **What are we documenting?:** In the case of Sophia, we are documenting a programming language and it should be documented like one. We should avoid or limit the mentioning of other aeternity things in Sophia documentation except it is absolutely necessary.
- **How do we document it?:** There are tons of well documented programming languages we can "steal" from. I will provide a sample for what I think Sophia doc should look like below
- **How do we maintain it?:**
- Ensure that it is as simple as possible from start.
- Automate the automatables. This means that if any part of the doc can be autogenerated, we should autogenerate it. Golang's godoc makes the documentation of go code easy. I expect this to be the starting point of go sdk documentation. We can use sphinix for python and esdoc.org for javascript.
- https://dev.to/joelnet/lets-talk-about-auto-generated-documentation-tools-for-javascript-49ol
- https://docs.python-guide.org/writing/documentation/
- Where possible, examples used in the documentation should be part of the codebase. If a major feature changes, the test to that example would fail which will prompt quick fixes. Vyper has something similar [here].(https://github.com/vyperlang/vyper/tree/master/examples)
- Place the responsibility of maintaining the documentation on the community. The larger the eyes watching over the documentation, the better. Rather than hiring someone to write the whole documentation, maybe we should instead provide a template and a pay per commit to the community. Here is an [example of something similar](https://github.com/vyperlang/vyper/issues/1568) done in vyper.
- Use documentation tools that devs are familiar with and makes updates easy things. This is related to keeping things simple but also making it familiar to the target audience.
- [gitbooks](https://www.gitbook.com/)
- [readthedocs](https://readthedocs.org/)
- [docusaurus](https://docusaurus.io/)
- Review our release process to include documentation
```When a simple, basic and usable documentation is in place, we can get a known youtuber to make video tutorials with references to our documentation and bounty system```
Site Map:
- Aeternity Main website
- Link to go sdk
- Link to wallet installation
- links to .....
- link to Sophia doc
- Get Started
- Simple Hello World contract in the online editor
- Language specifications: I expect this to be largely auto generated
- types
- operators
- built in functions and methods
- Structure of Sophia Smart contract
-
- Examples and more examples from simple to complex
- Todo contract
- Token
- Fund raising contract (demonstate contract calls)
- Vote contract
- Oracle contract (Title required)
- State channel contract (Title required)
- Installations, compiling and deployment of contracts
- More resources / Community resources
- Dacade
- Youtube videos
- Contribution guide