4

Is it possible to hide the sidebar when using Sphinx with the ReadTheDocs theme?

Extending the question a bit more, can I have it include the sidebar when issuing a command:

$ make html

and not include it issuing a command:

$ make htmlhelp

without altering code? Maybe add something in the layout.html.

Hank
  • 2,456
  • 3
  • 35
  • 83

3 Answers3

8

In the alabaster theme, I was able to remove the TOC/sidebar by adding the following to my conf.py file:

html_theme_options = {
    # Disable showing the sidebar. Defaults to 'false'
    'nosidebar': True,
}

I tested this in the sphinx_rtd_theme and it did not work. However, I add this as an answer here as it might be helpful for others trying to remove the sidebar in other themes (as was the case for me).

stephinity
  • 576
  • 5
  • 6
2

First of all, it is poor form to ask two questions in one post. Next time, create a separate question.

For your first question, I am not sure what the option collapse_navigation actually does, but its name implies that it does what you seek. The default value is False, so toggle it to True and see what happens. See other Read the Docs theme configuration options.

For your second question, there are at least two methods.

You can use the -D option of sphinx-build and override settings in your conf.py.

You can have multiple conf.py files (named as you see fit), and use the -c option to select the appropriate file for the output you want.

Steve Piercy
  • 13,693
  • 1
  • 44
  • 57
  • thanks Steve however collapse_navigation adds/removes the expand/collapse icon on the sidebar TOC at the top level, not what I'm after, appreciate the answer though. – Hank Nov 13 '17 at 07:25
  • Bummer. In that case, you can create a new configuration option to show/hide the sidebar, and edit your theme templates accordingly. I'd point you to Sphinx and Jinja2 documentation for how to add conditional logic. – Steve Piercy Nov 13 '17 at 18:38
  • Bummer indeed, ended up as you say, adding conditional logic around the navigation in the theme templates, stripping it out: {% if 'htmlhelp' not in builder %} – Hank Nov 14 '17 at 06:48
1

For building matlab documentation (which I believe is similar to HTMLHelp), I found that it is possible to hide the side-bar using a additional CSS:

.wy-nav-side {
  display: none;
}

.wy-nav-content-wrap {
  margin-left: 0;
}

Then in the conf.py file I added the CSS file:

html_static_path = ['_static']

html_css_files = [
    'css/matlabdoc.css',
]

This doesn't remove the side-bar, but at least it hides it. Might help.

Looking through the RTD theme, it might also be possible to remove the side-bar by changing the search.html and localtoc.html default files in conf.py by setting them with html_sidebars = {}.

ilent2
  • 5,171
  • 3
  • 21
  • 30
  • 1
    in modern sphinx, custom css is added like this: [code] # Custom css def setup(app): app.add_stylesheet('theme_overrides.css') [code] – Anton Kukoba Dec 13 '19 at 12:46