1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 12:42:30 +04:00

[FL-870] Auto-generated firmware documentation take two (#2944)

* Add doxygen and doxygen-awesome css, cleanup docs files
* Ignore more libraries and remove leftover local variables
* Create an actual intro page
* .md files linting
* Add doxygen action
* Fix Doxygen path
* Fix doxyfile path
* Try to upload
* Change docs branch
* Add submudules checkout
* Disable doxygen on PR
* Mention the firmware docs in the readme
* More dev docs mentions in the readme
* Fix runner group, add tags
* Test dev in PR
* Disable running on PR
* Fix a typo in the doxyfile
* Try upload to S3
* Fix local path
* Fix S3 ACL
* Add delete flag, unifying dev and tags
* Update ignored directories
* More ignored directories
* Even more ignored directories
* Fix submodule
* Change S3 uploader
* Change S3 uploader version
* Fix aws sync flags
* Fix ACL
* Disable ACL
* Improve ignores, add WiFi devboard docs
* TEMP: generate dev docs
* TEMP: generate 0.89.0 docs
* Disabling PR trigger
* Enable submodules and test build
* Enable test build
* Disable test build
* Change docs directory structure
* Fix accidentally committed submodule
* Fix submodules
* Update links to the developer documentation
* Markdown linting
* Update workflow, enable test build
* Fix doxygen dir path
* Update Doxyfile-awesome.cfg
* Change paths
* Fix upload docs path
* Disable pull_request debug trigger
* Disable tags building
* Remove autolinks and namespaces
* Establish basic documentation structure
* Add missing changes
* Improve stylesheet, move some files
* Improve examples
* Improve the main page
* Improve application dev docs
* Improve system programming docs
* Improve development tools docs
* Improve other docs
* Improve application examples
* Fix formatting
* Fix PVS-studio warnings
* Improve visuals
* Fix doxygen syntax warnings
* Fix broken links
* Update doxygen action

Co-authored-by: DrunkBatya <drunkbatya.js@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
This commit is contained in:
Astra
2024-03-06 08:25:21 +02:00
committed by GitHub
parent 5e47048369
commit ecab4d53d2
89 changed files with 1208 additions and 254 deletions

View File

@@ -0,0 +1,11 @@
@INCLUDE = doxygen/Doxyfile.cfg
GENERATE_TREEVIEW = YES # required!
DISABLE_INDEX = NO
FULL_SIDEBAR = NO
HTML_EXTRA_STYLESHEET = doxygen/doxygen-awesome-css/doxygen-awesome.css \
doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only.css \
doxygen/doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css
HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
HTML_HEADER = doxygen/header.html
HTML_EXTRA_FILES = doxygen/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,12 @@
/**
@page applications Application Programming
Flipper Zero features full support for custom applications which (usually) do not require any changes to the firmware.
For easy application development, a software tool called [uFBT](https://github.com/flipperdevices/flipperzero-ufbt) is available.
- @subpage vscode - Flipper Zero integration for VS Code
- @subpage apps_on_sd_card - Creating apps that can be dynamically loaded from the SD card
- @subpage app_manifests - How applications announce themselves to the system
- @subpage app_examples - Various application examples, complete with the source code
*/

View File

@@ -0,0 +1,10 @@
/**
@page dev_board Developer Board
[ESP32-based development board](https://shop.flipperzero.one/collections/flipper-zero-accessories/products/wifi-devboard).
- @subpage dev_board_get_started - Quick start for new users
- @subpage dev_board_reading_logs - Find out what is currently happening on the system
- @subpage dev_board_fw_update - Keep the developer board up to date
*/

View File

@@ -0,0 +1,9 @@
/**
@page dev_tools Developer Tools
Hardware and software tools for all kinds of programming.
- @subpage fbt - Official build and deployment tool for Flipper Zero
- @subpage dev_board - ESP32-based development board
- @subpage ota_updates - Standalone firmware self-update mechanism
*/

View File

@@ -0,0 +1,10 @@
/**
@page app_examples Application Examples
A collection of examples covering various aspects of application programming for Flipper Zero.
- @subpage example_app_images - Using images and icons in an application
- @subpage example_app_assets - Using application-specific asset folders
- @subpage example_app_data - Using application-specific data folders
- @subpage example_thermo - Reading data from a 1-Wire thermometer
*/

View File

@@ -0,0 +1,8 @@
/**
@page expansion Expansion Modules
Expansion modules are special pieces of hardware designed to interface with Flipper's GPIO connector, such as the [Video Game Module](https://shop.flipperzero.one/collections/flipper-zero-accessories/products/video-game-module-for-flipper-zero).
- @subpage expansion_protocol - Transport protocol for smart expansion modules
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,13 @@
/**
@page file_formats File Formats
Descriptions of various file formats used in Flipper Zero, grouped by applications that use them.
- @subpage badusb_file_format
- @subpage ibutton_file_format
- @subpage infrared_file_format
- @subpage lfrfid_file_format
- @subpage nfc_file_format
- @subpage subghz_file_format
*/

View File

@@ -0,0 +1,84 @@
<!-- HTML header for doxygen 1.10.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="$langISO">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen $doxygenversion"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<!--BEGIN PROJECT_ICON-->
<link rel="icon" href="$relpath^$projecticon" type="image/x-icon" />
<!--END PROJECT_ICON-->
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN FULL_SIDEBAR-->
<script type="text/javascript">var page_layout=1;</script>
<!--END FULL_SIDEBAR-->
<!--END DISABLE_INDEX-->
<script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script>
<!--BEGIN COPY_CLIPBOARD-->
<script type="text/javascript" src="$relpath^clipboard.js"></script>
<!--END COPY_CLIPBOARD-->
$treeview
$search
$mathjax
$darkmode
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
$extrastylesheet
<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
</head>
<body>
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN FULL_SIDEBAR-->
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
<!--END FULL_SIDEBAR-->
<!--END DISABLE_INDEX-->
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!--BEGIN TITLEAREA-->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<!--BEGIN PROJECT_LOGO-->
<td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"$logosize/></td>
<!--END PROJECT_LOGO-->
<!--BEGIN PROJECT_NAME-->
<td id="projectalign">
<div id="projectname">$projectname<!--BEGIN PROJECT_NUMBER--><span id="projectnumber">&#160;$projectnumber</span><!--END PROJECT_NUMBER-->
</div>
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
</td>
<!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME-->
<!--BEGIN PROJECT_BRIEF-->
<td>
<div id="projectbrief">$projectbrief</div>
</td>
<!--END PROJECT_BRIEF-->
<!--END !PROJECT_NAME-->
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN SEARCHENGINE-->
<!--BEGIN !FULL_SIDEBAR-->
<td>$searchbox</td>
<!--END !FULL_SIDEBAR-->
<!--END SEARCHENGINE-->
<!--END DISABLE_INDEX-->
</tr>
<!--BEGIN SEARCHENGINE-->
<!--BEGIN FULL_SIDEBAR-->
<tr><td colspan="2">$searchbox</td></tr>
<!--END FULL_SIDEBAR-->
<!--END SEARCHENGINE-->
</tbody>
</table>
</div>
<!--END TITLEAREA-->
<!-- end header part -->

View File

@@ -0,0 +1,25 @@
/**
@mainpage Overview
Welcome to the Flipper Zero Firmware Developer Documentation!
This documentation is intended for developers who want to modify the firmware of the Flipper Zero.
If you are looking for the user manual, please visit the [User Documentation](https://docs.flipperzero.one/) instead.
The documentation is divided into several sections, with all of them accessible from the sidebar on the left:
- @ref applications - Writing applications for Flipper Zero
- @ref system - Understanding the firmware's internals
- @ref file_formats - Saving and loading data to and from files
- @ref dev_tools - Hardware and software tools for all kinds of programming
- @ref expansion - Additional modules to expand Flipper's consciousness
- @ref misc - Various useful pieces of information
Aside from the manually-written documentation files, there's also a few automatically-generated ones at the bottom of the sidebar:
- [Data Structures](annotated.html) - Every data structure in a list
- [Files](files.html) - Source file tree with easy navigation
These are generated from the source code and are useful for quickly finding the source code or API documentation for a particular function or data structure.
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

View File

@@ -0,0 +1,9 @@
/**
@page misc Miscellaneous
Various pieces of information that do not fall into other categories.
- @subpage lfrfid_raw - Collecting raw data from LFRFID tags
- @subpage key_combos - Different key combination shortcuts for Flipper Zero
- @subpage universal_remotes - Creating and improving IR universal remote libraries
*/

View File

@@ -0,0 +1,13 @@
/**
@page system System Programming
Lower level aspects of software development for Flipper Zero.
- @subpage unit_tests - Automated testing, a crucial part of the development process
- @subpage furi_check - Hard checks for exceptional situations
- @subpage furi_hal_bus - Access the on-chip peripherals in a safe way
- @subpage furi_hal_debugging - Low level debugging features
- @subpage hardware_targets - Support for different hardware platforms
- @subpage firmware_assets - Various files required for building the firmware
- @subpage dolphin_assets - Animations for the Dolphin game
*/