Skip to content
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

✨📚 New documentation website and project name re-meaning #192

Merged
merged 35 commits into from Sep 14, 2023

Conversation

pleonex
Copy link
Member

@pleonex pleonex commented Sep 1, 2023

Description

The goal is to rebump this project with a name that doesn't limit it to ROM Hacking, as it's a generic format conversion library.
Additionally, this library provides a lot of nice features but it doesn't have any documentation so it's hard to know about them or how to use it.

This PR provides new documentation website with modern look, explaining the features of the library with code snippets.

TODO:

  • Tech selection
  • Setup website
  • Remove other PoC
  • Adapt CI
  • Improve README
  • Create new ToC
  • Write introduction
  • Write getting started guide
  • Write about formats and converters
  • Write about DataStream
  • Write about file system classes
  • Integrate changelog

Tech selection - Site generator

Hugo Toha
  • Web
  • Cons:
    • project is under a re-write.
    • its focus is not documentation.
Docusaurus
  • Web
  • Pro:
    • Modern look
    • Used by many software projects for documentation
      -Cons:
    • It forces to use MDX instead of pure markdown (even on .md files) causing several issues.
      • It will fail if you have HTML in markdown with open bracks (e.g. <br> generated by doc generators) or with some generics types if they are not in code blocks.
    • It runs with npm/react. It creates their typical chaos of environment of node_modules, vulnerable dependencies, version mismatches.
    • Fails with self linking (generated by most C# doc generators)...
    • No theming available apart from main one, it allows some CSS overrides.
    • Made by Meta 😕

PoC:

image

Statiq (before Wyam)
  • Web
  • Pro:
    • It can generate API docs for .NET projects as well as static sites.
    • It allows customization (e.g. markdown shortcuts) with C# code.
    • It has pure markdown OR Razor templates (cshtml).
  • Cons:
    • It doesn't look as modern as Docusuarus / DocFX
    • Still on beta after re-writing Wyam, missing features like cards or including files. It's a one-person project.

PoC:

image
image

DocFX
  • Web
  • Pro:
    • Kind of an standard in .NET projects since a long time ago
    • Modern look and features after moving as a .NET Foundation project
    • Look of C# API match .NET library docs
    • Supports many features in markdown like cards and file inclusion
    • Several themes available
  • Cons:
    • None so far.

PoC:

image

Tech selection - C# docs as markdown

Note: not needed anymore as I will be using DocFX. Same if we were going to choose Statiq.

xmldoc2md
  • Web
  • Pro:
    • Good output
    • Good CLI
    • Creates an index
    • Except for <br> works with Docusuarus.
  • Cons:
    • Can't generate docs for multiple DLLs (they don't link between)
    • Flat hierarchy, too many docs under same folder.
ModularDoc
  • Web
  • Pro:
    • It works with multiple DLLs
    • It can create a structure of folders by namespace
  • Cons:
    • It documents private and internal fields
    • The title of the docs contains public/internal
    • It's work in progress.
    • Can't get to work the CLI because the GUI that generates config crashes
    • Hard to make it work with Docusaurus: breaks <br> and some generic types
      without code blocks.
Vsxmd
  • Web
  • Cons:
    • Generates the full API docs in a single markdown file.

Example

Soon available at https://scenegate.github.io/Yarhl 😉

This closes #175

@pleonex pleonex added this to the vNext milestone Sep 1, 2023
@pleonex pleonex self-assigned this Sep 1, 2023
@pleonex pleonex changed the title ✨📚 New documentation website ✨📚 New documentation website and project name re-meaning Sep 3, 2023
@pleonex pleonex marked this pull request as ready for review September 14, 2023 07:36
@pleonex pleonex merged commit d7dc63a into develop Sep 14, 2023
5 checks passed
@pleonex pleonex deleted the feature/new-docs branch September 14, 2023 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve getting started documentation
1 participant