diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 0000000000..8510de7a0e --- /dev/null +++ b/.github/workflows/docs.yaml @@ -0,0 +1,21 @@ +name: Doxygen +on: + push: + branches: + - master + +jobs: + deploy: + name: Build and deploy documentation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Build + uses: mattnotmitt/doxygen-action@v1 + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs/doxygen diff --git a/.gitignore b/.gitignore index bd79c043b6..3bec7105a3 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ assets *.bin bin/ build/ +docs/doxygen/ diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 0000000000..18f877500c --- /dev/null +++ b/Doxyfile @@ -0,0 +1,112 @@ +# https://www.doxygen.nl/manual/config.html + +PROJECT_NAME = "Paper Mario" +PROJECT_NUMBER = +PROJECT_BRIEF = "Decompilation of Paper Mario" +PROJECT_LOGO = + +OUTPUT_DIRECTORY = docs +CREATE_SUBDIRS = NO +ALLOW_UNICODE_NAMES = YES + +OPTIMIZE_OUTPUT_FOR_C = YES + +TYPEDEF_HIDES_STRUCT = YES + +NUM_PROC_THREADS = 0 + +EXTRACT_ALL = YES +EXTRACT_STATIC = YES +HIDE_UNDOC_CLASSES = NO +HIDE_IN_BODY_DOCS = YES +SHOW_GROUPED_MEMB_INC = YES + +FORCE_LOCAL_INCLUDES = YES +INLINE_INFO = YES + +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_GROUP_NAMES = NO + +GENERATE_TODOLIST = NO +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= NO + +DISABLE_INDEX = YES +GENERATE_TREEVIEW = YES + +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 1 + +SHOW_INCLUDE_FILES = NO +SHOW_USED_FILES = YES +SHOW_FILES = YES +SHOW_NAMESPACES = NO + +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_AS_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = + +INPUT = README.md src include +FILE_PATTERNS = *.c *.h +RECURSIVE = YES +EXCLUDE = include/nu include/PR include/ultra64.h +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = + +USE_MDFILE_AS_MAINPAGE = README.md + +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = NO +SOURCE_TOOLTIPS = YES +USE_HTAGS = NO +VERBATIM_HEADERS = NO + +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = + +GENERATE_HTML = YES +HTML_OUTPUT = doxygen +HTML_HEADER = docs/doxygen_header.html +HTML_FOOTER = +HTML_EXTRA_STYLESHEET = docs/doxygen_custom.css +HTML_EXTRA_FILES = +HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_GAMMA = 80 +HTML_TIMESTAMP = YES +HTML_DYNAMIC_MENUS = YES +HTML_DYNAMIC_SECTIONS = YES +HTML_INDEX_NUM_ENTRIES = 100 +HTML_FORMULA_FORMAT = svg + +USE_MATHJAX = YES +MATHJAX_FORMAT = SVG + +SEARCHENGINE = YES +SERVER_BASED_SEARCH = NO + +GENERATE_LATEX = NO + +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +PREDEFINED = DOXYGEN NON_MATCHING __attribute__((x))= +EXPAND_AS_DEFINED = INCLUDE_ASM +SKIP_FUNCTION_MACROS = YES + +SEARCH_INCLUDES = YES +INCLUDE_PATH = include include/PR src +INCLUDE_FILE_PATTERNS = diff --git a/docs/doxygen_custom.css b/docs/doxygen_custom.css new file mode 100644 index 0000000000..877606101a --- /dev/null +++ b/docs/doxygen_custom.css @@ -0,0 +1,150 @@ +/* typography */ + +body, table, div, p, dl { font: inherit } + +body, table, div, p, dl, p.reference, p.definition, .memberdecls .header { + color: #121212; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji; +} + +:root { font-size: 10px } /* rem multiplier */ +h1 { font-size: 3rem; } +h2 { font-size: 2.25rem; } +h3 { font-size: 1.5rem; } +h4 { font-size: 1.25rem; } +h5 { font-size: 1rem; } +h6 { font-size: .875rem; } +h1, h2, h3, h4, h5, h6 { margin-bottom: 3px } +h1 { border-bottom: 1px solid #eee } + +.contents a:any-link { color: #357edd } +.contents a.visited { color: #5e2ca5 } + +p.reference, p.definition { color: #959da5; font-weight: normal; font-size: 11px; line-height: 1.2 } +p.reference a, p.definition a { color: #959da5 !important } +p.reference a:hover, p.definition a:hover { color: #357edd } + +.memname, .fragment, .memberdecls, .fragment .line, code { + font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace; +} + +#PageDoc, .content, p { + font-size: 16px; + line-height: 1.5; + color: #1b1f23; +} + +hr { + border-color: #eee; + margin: 2em; +} + +/* layout */ + +html { height: 100% } + +body { + display: flex; + flex-direction: row; + + width: 100%; + max-width: 1000px; + min-height: 100%; + margin: 0 auto; +} + +#side-nav { + position: relative; + width: 250px !important; +} + +.ui-resizable-handle, #nav-sync { display: none !important } + +#doc-content { + margin-left: 0 !important; + flex: 1; +} + +#nav-path { display: none } /* hide footer */ +#MathJax_Message { display: none } /* hide "MathJax loading..." message */ + +#MSearchBox { + position: fixed; + top: 1em; + right: 1em; +} + +.contents { + font-size: 16px; + padding-top: 1em; + padding-bottom: 2em; +} + +/* +table { + table-layout: fixed; + width: 100%; +} +.memItemLeft { width: 32ch } +*/ + +/* cleaning */ + +#details + .groupheader, +.definition, +.memtitle, +.contents > p:first-child > a:first-child /* "Go to the source code of this file." */ +{ display: none } + +table.memname * { + display: inline; +} + +/* candy */ + +div.fragment, .memproto { + padding: 16px; + border: 0; + border-radius: 6px; + background: #f6f8fa; +} + +div.fragment div.line { + font-size: 85%; + line-height: 1.45; +} + +code { + padding: .2em .4em; + margin: 0; + font-size: 85%; + background: #f6f8fa; +} + +.memitem { + display: block !important; + border-left: 1px solid #eee; + padding-left: 1em; + margin: 1em 0; + width: 100%; + box-sizing: border-box; +} + +.memproto { + padding: 8px; + margin-bottom: .5em; + box-shadow: none; + text-shadow: none; + display: inline-block; +} + +.memname { + margin-left: 0; +} + +.memdoc { + border: 0; + padding: 0; + box-shadow: none; + background: none; +} diff --git a/docs/doxygen_header.html b/docs/doxygen_header.html new file mode 100644 index 0000000000..5ace5202f1 --- /dev/null +++ b/docs/doxygen_header.html @@ -0,0 +1,22 @@ + + +
+ + + + +