Používám téma „Přečtěte si téma Dokumentace Sfingy“ pro svou dokumentaci. V původním tématu níže
http://read-the-docs.readthedocs.org/en/latest/theme.html
obsah nebo hlavní šířka návrhu je navržen tak, aby byl mobilní přátelský. Pro můj projekt bych však chtěl, aby to bylo o něco širší. Nevím HTML, a proto bych ocenil, kdyby někdo mohl dát nějaké vodítka ke zvýšení obsahu (layout) šířku.
Další možností je vytvořit šablonu stylů v souboru source/_static
s tím, co chcete, např.
.wy-nav-content {
max-width: none;
}
nebo
.wy-nav-content {
max-width: 1200px !important;
}
Ujistěte se, že v adresáři source/conf.py
je uveden odkaz - věřím, že ve výchozím nastavení je k tomu řádek, to znamená.
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
Pak vytvořte vlastní rozvržení v source/_templates/layout.html
a udělejte něco takového, abyste zahrnuli svůj styl
{% extends "!layout.html" %}
{% block extrahead %}
<link href="{{ pathto("_static/style.css", True) }}" rel="stylesheet" type="text/css">
{% endblock %}
Za předpokladu, že jste nazvali styl stylu, style.css
Nejprve musím říci, že během mé sfingy quickstart jsem zvolil možnost samostatné složky pro mé zdroje a pro můj build .
Jedná se o proces 3 kroků:
Kde?
conf.py
(v mém případě source
), jsem vytvořil složku pro své vlastní statické soubory (styly, javascripty). Nazval jsem to custom
. source/custom/css
. source/custom/css/my_theme.css
.Nyní musíme říct sfingě, aby vyplivla tento dokument uvnitř build/_static/css
, stejného adresáře, kde je stylová šablona obsažena v tématu Číst dokumenty téma. Děláme to přidáním následujícího řádku do conf.py
:
html_static_path = ['custom'] # Directory for static files.
Hotovo. Budeme-li stavět, budeme mítRTDstyly (theme.css
) a náš vlastní my_theme.css
ve stejném adresáři, build/_static/css
.
Teď řekneme sfingě, aby použila náš vlastní my_theme.css
místoRTDone. Děláme to přidáním tohoto řádku do conf.py
:
html_style = 'css/my_theme.css' # Choosing my custom theme.
V našem vlastním stylu by první řádek měl importovat styly theme.css
s @import url("theme.css");
.
A jsme připraveni začít přepisovat styly.
source/_static/css/my_theme.css
.Ve vašem vlastním stylu by první řádek měl importovat styly theme.css
s @import url("theme.css");
.
Tímto způsobem se nemusíte obávat, že se vám podaří nastavit výchozí styly, pokud vaše vlastní šablony stylů nefungují, vymažte a začněte znovu.
conf.py
:html_style = 'css/my_theme.css'
Pro případ, že by někdo stále hledal jednoduchou odpověď ... Kombinující myšlenky z https://samnicholls.net/2016/06/15/how-to-sphinx- readthedocs/ a výše uvedené návrhy jsem zjistil, že nejjednodušší způsob, jak získat vlastní šířku okna , je následující:
v conf.py přidejte funkci, která přidává vlastní šablonu stylů (stačí přidat následující řádky):
def setup(app):
app.add_stylesheet('my_theme.css')
a potom vytvořte soubor s názvem my_theme.css ve složce _static, která obsahuje pouze následující řádky:
.wy-nav-content {
max-width: 1200px !important;
}
Řešení zde jsou poněkud hackerská. Pokud chcete zahrnout styl, a mít css přepsat a nechat ji pracovat na RTD budete chtít něco takového.
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
if not on_rtd: # only import and set the theme if we're building docs locally
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
html_style = 'css/custom.css'
else:
html_context = {
'css_files': [
'https://media.readthedocs.org/css/sphinx_rtd_theme.css',
'https://media.readthedocs.org/css/readthedocs-doc-embed.css',
'_static/css/custom.css',
],
}
Testoval jsem to sám a zdá se, že to funguje lokálně a na RTD. Velice plagován z https://blog.deimos.fr/2014/10/02/sphinxdoc-and-readthedocs-theme-tricks-2/
Chcete-li, aby téma ReadTheDocs použilo celou šířku obrazovky, můžete upravit soubor theme.css
, odebrat vlastnost max-width: 800px;
z definice třídy wy-nav-content
, podobně jako:
.wy-nav-content {
padding: 1.618em 3.236em;
height: 100%;
/* max-width: 800px; */
margin: auto;
}
Zdroj theme.css
je zde:
https://github.com/rtfd/readthedocs.org/blob/master/media/css/sphinx_rtd_theme.css
Na vašem souborovém systému to bude (za předpokladu, že jste spustili: pip install sphinx_rtd_theme
):
lib/python2.7/site-packages/sphinx_rtd_theme/static/css/theme.css
Chcete-li najít absolutní cestu theme.css
na Linux/Mac, můžete to spustit na příkazovém řádku (za předpokladu, že jste nastavili proměnnou prostředí $PYTHONPATH
):
for p in `echo $PYTHONPATH | tr ":" "\n"`; do
find $p -type f -name 'theme.css' | grep sphinx_rtd_theme
done
Soubor theme.css
bude zhuštěn, takže můžete použít nástroj, jako je http://unminify.com pro usnadnění čtení.
Já bych to změnil v css. Měli byste hledat soubor theme.css (je v zdrojích read-the-doc na "sphinx_rtd_theme/static/css/theme.css").
Udělejte kopii tohoto souboru a vložte ho do svého sfinga. V tomto css souboru můžete provést všechny změny rozvržení, které potřebujete. (Pokud jste s ním nikdy nepracovali, možná budete muset trochu přečíst soubory css.)
Snad to pomůže.
Pro „klasické“ téma je řešení tak jednoduché a čisté jako:
# Add/Update "html_theme_options" like this on your conf.py
html_theme_options = {'body_max_width': '70%'}
Přizpůsobte procento podle svého vkusu.
Odkaz ze sfingy: body_max_width (int nebo str): Maximální šířka těla dokumentu. Může se jednat o int, který je interpretován jako pixely nebo platný kótovací řetězec CSS, například „70em“ nebo „50%“. Pokud nechcete omezit šířku, použijte „žádný“. Výchozí hodnoty mohou záviset na motivu (často 800x).