[lldb/infra] Revamp lldb.llvm.org

This patch brings a fresh coat of paint to the LLDB website.

This uses the `furo` theme from the suggested theme list, adds some
changes to the css to make it use the full browser window width and
removes the table of contents since the theme generates it automatically.

This patch also rewrites the tables for "GDB to LLDB command map" to
convert them from raw HTML to native inlined code blocks.

To generate the website, make sure you install the theme first with
`pip install furo`, enable sphinx in the cmake invocation` then run
`ninja docs-lldb-html`

Discourse: https://discourse.llvm.org/t/rfc-revamping-lldbs-website

Differential Revision: https://reviews.llvm.org/D158323

Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
This commit is contained in:
Med Ismail Bennani 2023-08-23 21:42:29 +01:00
parent 012b148dd9
commit 6a2552a141
20 changed files with 1201 additions and 1841 deletions

View File

@ -1,100 +0,0 @@
pre {
padding: 7px;
}
div.document {
width: 90%;
}
div.body {
max-width: 90%;
}
div.note {
padding: 20px 20px 10px 20px;
}
div.note p.admonition-title {
font-size: 130%;
}
table.mapping {
width: 100%;
}
table.mapping td {
width: 50%;
padding: 5px;
}
table.mapping td.hed {
background: #606060;
color: #fefefe;
text-align: left;
border-bottom: 2px #fefefe solid;
font-weight: bold;
}
table.mapping td.header {
background: #eeeeee;
}
table.mapping td.content {
font-family: monospace;
padding-bottom: 15px;
}
/* Workaround for a Safari bug that would otherwise make table cells less wide
than the containing text. This just sets it back to the default browser
property.*/
td {
-webkit-hyphens: manual !important;
}
div.sphinxsidebar .caption {
font-family: Helvetica, Verdana, sans-serif;
font-size: 10pt;
font-weight: bold;
color: #fefefe;
background: #606060;
margin-bottom: 0;
text-transform: uppercase;
padding: 7px;
}
div.sphinxsidebar a,
div.sphinxsidebar a:hover {
border: none;
}
div.sphinxsidebar li {
padding-left: 7px;
border-bottom: 1px solid #fefefe;
}
div.sphinxsidebar li:hover {
background: #eeeeee;
}
div.sphinxsidebar ul {
background: #e9e9e9;
margin: 0px;
padding: 0px;
}
div.sphinxsidebar ul a {
font-family: Helvetica, Verdana, sans-serif;
font-size: 8pt;
display: block;
padding: 5px 0;
line-height: 14pt;
}
div.sphinxsidebar ul li.toctree-l1 > a {
font-size: 100%;
}
div.sphinxsidebar h3 {
/* Hide Navigation. */
display: none;
}

View File

@ -57,6 +57,16 @@ if not building_man_page:
)
extensions.append("sphinx_automodapi.automodapi")
try:
import furo
except ModuleNotFoundError:
print(
f"install sphinx furo theme with {sys.executable} -m pip install furo"
)
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = "furo"
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
@ -131,23 +141,19 @@ pygments_style = "friendly"
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = "alabaster"
html_theme = "furo"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = {
"font_size": "11pt",
# Don't generate any links to GitHub.
"github_button": "false",
}
html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
html_title = "The LLDB Debugger"
html_title = "🐛 LLDB"
# A shorter title for the navigation bar. Default is the same as html_title.
# html_short_title = None
@ -166,10 +172,6 @@ html_title = "The LLDB Debugger"
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
html_context = {
"css_files": ["_static/lldb.css"],
}
html_extra_path = [".htaccess"]
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,

View File

@ -1,9 +1,6 @@
Building
========
.. contents::
:local:
Getting the Sources
-------------------

View File

@ -1,9 +1,6 @@
Caveats
=======
.. contents::
:local:
.. _python_caveat:
Python

View File

@ -7,9 +7,6 @@ general architecture.
LLDB has many code groupings that makeup the source base:
.. contents::
:local:
API
---

View File

@ -4,9 +4,6 @@ Open Projects
The following is a mostly unordered set of the ideas for improvements to the
LLDB debugger. Some are fairly deep, some would require less effort.
.. contents::
:local:
Speed up type realization in lldb
---------------------------------

View File

@ -1,9 +1,6 @@
Testing
=======
.. contents::
:local:
Test Suite Structure
--------------------

View File

@ -1,9 +1,6 @@
Frame and Thread Format
=======================
.. contents::
:local:
LLDB has a facility to allow users to define the format of the information that
generates the descriptions for threads and stack frames. Typically when your
program stops at a breakpoint you will get two lines that describes why your

View File

@ -1,9 +1,6 @@
Tracing with Intel Processor Trace
==================================
.. contents::
:local:
Intel PT is a technology available in modern Intel CPUs that allows efficient
tracing of all the instructions executed by a process.
LLDB can collect traces and dump them using its symbolication stack.

File diff suppressed because it is too large Load Diff

View File

@ -11,9 +11,6 @@ be slow when types from all of the binaries have full debug info as each module
is queried for very common types, or global name lookups fail due to a mistyped
expression.
.. contents::
:local:
When should I consider enabling this feature?
---------------------------------------------

View File

@ -10,9 +10,6 @@ command interpreter (we refer to this for brevity as the embedded interpreter).
Of course, in this context it has full access to the LLDB API - with some
additional conveniences we will call out in the FAQ.
.. contents::
:local:
Documentation
--------------

View File

@ -11,9 +11,6 @@ some of these things by going through an example, explaining how to use
Python scripting to find a bug in a program that searches for text in a
large binary tree.
.. contents::
:local:
The Test Program and Input
--------------------------

View File

@ -1,9 +1,6 @@
Testing LLDB using QEMU
=======================
.. contents::
:local:
QEMU system mode emulation
--------------------------

View File

@ -23,9 +23,6 @@ communicating with it over the loopback interface. In the case of local
debugging this whole process is transparent to the user. The platform binary is
not used in this case, since no file transfers are needed.
.. contents::
:local:
Preparation for Remote Debugging
---------------------------------

View File

@ -1,10 +1,6 @@
Symbolication
=============
.. contents::
:local:
LLDB is separated into a shared library that contains the core of the debugger,
and a driver that implements debugging and a command interpreter. LLDB can be
used to symbolicate your crash logs and can often provide more information than

View File

@ -1,9 +1,6 @@
Symbols on macOS
================
.. contents::
:local:
On macOS, debug symbols are often in stand alone bundles called **dSYM** files.
These are bundles that contain DWARF debug information and other resources
related to builds and debug info.

View File

@ -1,9 +1,6 @@
Troubleshooting
===============
.. contents::
:local:
File and Line Breakpoints Are Not Getting Hit
---------------------------------------------

View File

@ -5,9 +5,6 @@ Here's a short precis of how to run lldb if you are familiar with the gdb
command set. We will start with some details on lldb command structure and
syntax to help orient you.
.. contents::
:local:
Command Structure
-----------------

View File

@ -1,9 +1,6 @@
Variable Formatting
===================
.. contents::
:local:
LLDB has a data formatters subsystem that allows users to define custom display
options for their variables.