-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A consistent strategy for documentation #5148
Comments
hello am from MLHhackathon open soucre week. could you provide a sample of how you want the documentation to be structured |
Hi @lokytech5, |
Going through the documentation, I can provide you with a sample of how I can make it easy to navigate. |
@lokytech5 sure, feel free to propose something, then we can discuss 🙂 |
please note. I will be using actual markdown throughout the sample. |
Table of Contents
IntroductionThe Terasology project was born from a Minecraft-inspired tech demo and is becoming a stable platform for various types of gameplay settings in a voxel world. The creators and maintainers are a diverse mix of software developers, designers, game testers, graphic artists, and musicians. We encourage contributions from anybody and try to keep a warm and friendly community and maintain a code of conduct. CommunityIf you want to get in contact with the Terasology community and the whole MovingBlocks team, you can easily connect with us, share your ideas, report and solve problems. We are present in nearly the complete round-up of social networks. Follow/friend us wherever you want, chat with us, and tell the world. InstallationFor easy game setup (recommended) you can use our launcher - download it here. Minimum Requirements
Alternative Installation MethodsIf you already have a Java Development Kit (JDK) installed, you may use a direct download release as an alternative to using the launcher. Java version 11 is required. Direct download stable builds are uploaded here on GitHub while the cutting-edge develop version can be downloaded here. DevelopmentRequirements
Workspace SetupTo run Terasology from source, follow the Contributor Quick Start Guide designed for IntelliJ IDEA. Note that Terasology workspace is a multi-repo workspace. ContributingDetailed information on how to contribute can be found in CONTRIBUTING.md. All submissions must be licensed under Apache License, Version 2.0. If you find errors or issues in any resources, report them using GitHub issues. LicenseTerasology is fully open source and licensed under the Apache License, Version 2.0 for code and Creative Commons for art. Credits(Credits section) Contributor Covenant Code of Conduct(Conduct section) |
it can be managed easily but the only drawback I notice is that links need to be updated regularly, I think is better if you have a style guide to follow to maintain consistency, and last but not least, as the documentation grows, the table of content we become complex. Those are just the drawback I notice and I can improve on. |
@lokytech5 thank you for the input. However, you seem to assume that this is about our README which in fact barely scratches the surface of our documentation. |
@jdrueckert, thanks for clarifying and directing me to the documentation. going through it, a lot of information is going on there, with links directing to different sections in the content. Going through the outline, I think if we can group related topics together, then users, players, developers or maintainers can easily find the sections most relevant to them, and beginners won't find it intimidating if they want to get started when going through the documentation. Another approach I still think we make it easy is hierarchical categorization I await your response. |
@lokytech5 For doing so, please consider the individual target audiences (players, developers, maintainers) and what kind of information they would be looking for. Every audience group should have an easy to find entrypoint that allows them to find the most relevant info as fast as possible and navigate to a deeper level of detail if needed. |
Thank you for the guidance. Based on our discussion, I've outlined a proposed structure for the documentation that considers our three main audiences: Documentation Structure1. PlayersEntry Point: A dedicated 'Player's Guide' landing page with:
2. DevelopersEntry Point: A 'Developer's Hub' landing page with:
3. MaintainersEntry Point: A 'Maintainer's Dashboard' with:
All other detailed topics will be nested under these main categories to maintain a clean and hierarchical flow. Before moving forward, I would love to know any specific priorities or topics you think should be featured prominently. Also, Considering the breadth of content and to ensure quality, I plan to work on each section gradually. This phased approach will allow for more focused work, potential feedback iterations, and corrections if needed. Please review the proposed structure and let me know your thoughts. If this aligns with your vision for the documentation, I would appreciate a green light to start working on the "Player's Guide" section as the initial phase. |
Hi @lokytech5 I believe the suggested structure make sense as long as we make sure that the respective "landing pages" / "dashboards" are well-accessible for the respective audience groups. Also, if you do this, I would request that you implement this using docsify as we started in a subset of our modules already, for instance Health (see especially the I'd like to discuss your current proposal and any ideas, comments, or concerns you might have on what I wrote above in our weekly reviver meeting on Sunday (6PM UTC on Discord). If the other available revivers are fine with it as well, I don't see a reason not to give you a green light 🙂 |
Hello @jdrueckert, Players:
Developers:
Maintainers:
I also recommend enhancing search functionality to ensure users can navigate to their desired sections easily. Additionally, tailoring the homepage based on user roles or profiles (players, developers, maintainers) could further enhance the user experience. Addressing the concern of migrating documentation without breaking existing links — while I haven't encountered this issue before, I've done some research. With the pros and cons of each method in mind, I believe a combination of the following approaches might be suitable:
Regarding docsify, I've looked over the repository you shared. I observed that the docs folder contains all the documentation, with each markdown file representing a page. I also noticed that the repository's homepage aligns with the documentation's homepage. While exploring its plugins, many can be leveraged to structure the documentation effectively. However, I will need some time to familiarize myself with its features and plugins. Considering the link issues, creating a custom redirection plugin seems a potential solution. Lastly, regarding the weekly reviver meeting on Sunday at 6PM UTC on Discord, I'm eager to join and discuss further. Could you please provide details or an invitation to attend? Thank you. |
I haven't properly caught-up on everything here yet but I can address at least one point.
@lokytech5
Documentation is likely to be discussed in the meeting today (6PM UTC). |
@lokytech5 First of all, good news. You have our official "go" 😉 As mentioned earlier, we'd like you to use docsify for the documentation improvements. #5155 migrates the existing documentation in its current state from the wiki to docsify in the Looking forward to your contributions! Feel free to work in small iterations and open PRs as drafts as soon as possible so we can check if it's going into the right direction and also have a basis for discussion and answering questions. Once you're happy with your current iteration, you can set the PR to ready-for-review. Explicitly asking for a review on our Discord can help getting faster feedback. Regarding the suggested access points for the different target groups:
How would a player find the documentation's homepage?
What exactly would that button do?
Gameplay mechanics are very dependent on the activated modules, which is why this kind of documentation should be in-game rather than outside of the game. At most, more detailed explanations could be in module documentation, but not in the main (engine wiki) docs... At some point in the future, module dosc should be integrated at least to a degree with the main (engine wiki) docs, though.
I'd propose to already engage the different target audience groups on the main page of the docs for easy navigation to their "documentation hubs".
What do you consider an "engaging code snippet"?
We do have that in the form of release notes and blog posts, the former of which could be considered documentation to a degree while the latter is outreach. I don't think this kind of information should be part of the (engine wiki) docs.
Why in the website's footer? 🤔
👍 Same as for developers, I would already link to that section from the main page of the docs.
That, again, is not really documentation. But communicating critical updates or changes (for instance current blockers or required actions etc) is an important and relevant topic. It's just out-of-scope for this documentation-focused issue 😉 Regarding the broken link concern:
Absolutely, that will at least help with relative links within the wiki/docs.
We actually don't have too much control over that. Anything hosted on GitHub pages will probably also drop HTML redirect logic for safety reasons. Naturally, we can check what's possible and what is not.
We already encourage that. All docsify pages should also have an "Edit on GitHub" link at their top to allow people easy access to the underlying resource and creating a PR with changes. |
Thank you for the clear instructions and the green light on this. I am currently reviewing PR #5155 and am familiarizing myself with Docsify. I'll begin working on the documentation improvements in small iterations as suggested and will open draft PRs for early feedback. I'll keep an eye on the status of PR #5155 and ensure my contributions are based on it until it's merged. If I have any questions or need further clarification, I'll reach out, especially on Discord, for quicker feedback. I look forward to contributing and enhancing our documentation! About the points you raised, I am looking into them slowly and will take care of each of them carefully. |
#5155 got merged fyi @lokytech5 |
Hello @jdrueckert,
|
@lokytech5 if you were checking your locally checked-out workspace, please pull the latest changes.
No, docsify is already properly initialized. With #5155 merged, the wiki content is already migrated to docsify, so you can start working directly on the content structure. |
Good day, @jdrueckert. I have worked on the homepage, before I make a PR, please kindly go through the images of the new home page I came up with, if it meets your requirements and with your permission, I will create a PR before going to Discord. link: https://drive.google.com/drive/folders/1aismU43av-mgVyZ_q2TuYe1gh0Ic9hth?usp=sharing I am currently working on the player Guides. i await your reply. |
@lokytech5 please just open a PR and I'll review that. No need for an additional roundtrip with screenshots. |
Summary
Terasology's documentation is currently spread-out over several different locations using a mixture of docsify and GitHub wikis:
MovingBlocks/Terasology
wiki (GitHub wiki)In general, the more documentation there is, the harder it becomes to find what we're looking for. Having multiple locations to search also makes it more difficult to find useful information when needed.
Engine documentation
Engine documentation is primarily found on the wiki. GitHub wikis have some limitations and can quite easily become disorganised due to their flat structure. Hierachies are enforced through listing pages on the sidebar, although this requires people to update the sidebar manually whenever a new page is added. There is a lot of useful content on the wiki but most of it is not referenced from the sidebar, for example the Documentation Guide.
Alternative: In-repo documentation
An alternative might be to move the documentation directly into the repository (under the
docs/
directory). We could then publish it using GitHub Pages, possibly using docsify or a static site generator (so long as it is consistent).Pros:
Cons:
Alternative: Improve the wiki pages
We could also continue to try and improve the state of the engine wiki, possibly by rearranging pages and adding information that was previously missing.
The text was updated successfully, but these errors were encountered: