diff --git a/docs/_templates/genindex.html b/docs/_templates/genindex.html
index 4faf370cc..a5f2262ff 100644
--- a/docs/_templates/genindex.html
+++ b/docs/_templates/genindex.html
@@ -17,10 +17,11 @@
key = key.substr(12); // discord.ext.
}
- if(el.textContent.endsWith('method)') || el.textContent.indexOf('()') !== -1) {
+ if(el.textContent.indexOf('()') !== -1) {
key = key + '()'
}
el.textContent = key;
}
+ document.querySelectorAll("td").forEach(el => el.style.width = 'auto');
{% endblock %}
diff --git a/docs/conf.py b/docs/conf.py
index caf490226..92f11c224 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -31,6 +31,7 @@ sys.path.append(os.path.abspath('extensions'))
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
+ 'builder',
'sphinx.ext.autodoc',
'sphinx.ext.extlinks',
'sphinx.ext.intersphinx',
diff --git a/docs/extensions/builder.py b/docs/extensions/builder.py
new file mode 100644
index 000000000..ec428d8fd
--- /dev/null
+++ b/docs/extensions/builder.py
@@ -0,0 +1,46 @@
+from sphinx.builders.html import StandaloneHTMLBuilder
+from sphinx.environment.adapters.indexentries import IndexEntries
+
+class DPYStandaloneHTMLBuilder(StandaloneHTMLBuilder):
+ # This is mostly copy pasted from Sphinx.
+ def write_genindex(self) -> None:
+ # the total count of lines for each index letter, used to distribute
+ # the entries into two columns
+ genindex = IndexEntries(self.env).create_index(self, group_entries=False)
+ indexcounts = []
+ for _k, entries in genindex:
+ indexcounts.append(sum(1 + len(subitems)
+ for _, (_, subitems, _) in entries))
+
+ genindexcontext = {
+ 'genindexentries': genindex,
+ 'genindexcounts': indexcounts,
+ 'split_index': self.config.html_split_index,
+ }
+
+ if self.config.html_split_index:
+ self.handle_page('genindex', genindexcontext,
+ 'genindex-split.html')
+ self.handle_page('genindex-all', genindexcontext,
+ 'genindex.html')
+ for (key, entries), count in zip(genindex, indexcounts):
+ ctx = {'key': key, 'entries': entries, 'count': count,
+ 'genindexentries': genindex}
+ self.handle_page('genindex-' + key, ctx,
+ 'genindex-single.html')
+ else:
+ self.handle_page('genindex', genindexcontext, 'genindex.html')
+
+def get_builder(app):
+ """This is necessary because RTD injects their own for some reason."""
+ try:
+ original = app.registry.builders['readthedocs']
+ except KeyError:
+ return DPYStandaloneHTMLBuilder
+ else:
+ injected_mro = tuple(base if base is not StandaloneHTMLBuilder else DPYStandaloneHTMLBuilder
+ for base in original.mro()[1:])
+ return type(original.__name__, injected_mro, {'name': 'readthedocs'})
+
+def setup(app):
+ app.add_builder(get_builder(app), override=True)