fix: chapters in PDF again (#2606)

* fix: chapters in PDF again

* fix: sections in README
This commit is contained in:
Henry Schreiner 2020-10-18 14:31:28 -04:00 committed by GitHub
parent bed9080c7f
commit 0b9acc4009
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 76 additions and 48 deletions

View File

@ -1,8 +1,7 @@
.. figure:: https://github.com/pybind/pybind11/raw/master/docs/pybind11-logo.png .. figure:: https://github.com/pybind/pybind11/raw/master/docs/pybind11-logo.png
:alt: pybind11 logo :alt: pybind11 logo
pybind11 — Seamless operability between C++11 and Python **pybind11 — Seamless operability between C++11 and Python**
========================================================
|Latest Documentation Status| |Stable Documentation Status| |Gitter chat| |CI| |Build status| |Latest Documentation Status| |Stable Documentation Status| |Gitter chat| |CI| |Build status|
@ -53,9 +52,11 @@ A PDF version of the manual is available
And the source code is always available at And the source code is always available at
`github.com/pybind/pybind11 <https://github.com/pybind/pybind11>`_. `github.com/pybind/pybind11 <https://github.com/pybind/pybind11>`_.
Core features Core features
------------- -------------
pybind11 can map the following core C++ features to Python: pybind11 can map the following core C++ features to Python:
- Functions accepting and returning custom data structures per value, - Functions accepting and returning custom data structures per value,

View File

@ -17,6 +17,10 @@ import sys
import os import os
import shlex import shlex
import subprocess import subprocess
from pathlib import Path
import re
DIR = Path(__file__).parent.resolve()
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
@ -345,6 +349,29 @@ def generate_doxygen_xml(app):
sys.stderr.write("doxygen execution failed: {}\n".format(e)) sys.stderr.write("doxygen execution failed: {}\n".format(e))
def prepare(app):
with open(DIR.parent / "README.rst") as f:
contents = f.read()
# Filter out section titles for index.rst for LaTeX
if app.builder.name == "latex":
contents = re.sub(r"^(.*)\n[-~]{3,}$", r"**\1**", contents, flags=re.MULTILINE)
with open(DIR / "readme.rst", "w") as f:
f.write(contents)
def clean_up(app, exception):
(DIR / "readme.rst").unlink()
def setup(app): def setup(app):
"""Add hook for building doxygen xml when needed"""
# Add hook for building doxygen xml when needed
app.connect("builder-inited", generate_doxygen_xml) app.connect("builder-inited", generate_doxygen_xml)
# Copy the readme in
app.connect("builder-inited", prepare)
# Clean up the generated readme
app.connect("build-finished", clean_up)

View File

@ -3,7 +3,7 @@
Intro Intro
===== =====
.. include:: ../README.rst .. include:: readme.rst
.. only:: not latex .. only:: not latex