2012-08-07 7 views
5

Bir python projesini belgelemek için Sphinx kullanıyorum. Belgedeki bazı sonuçları görselleştirmek için tuvali kullanıyorum. Belgelerimin Firefox ve IE'yi desteklemesi gerekiyor. Belgelere excanvas.js kitaplığını eklemem gerekiyor, ancak yalnızca tarayıcı IE ise. Bağlantılı olarak bu kitaplığı nasıl ekleyebilirim ki göreceli yollar doğru mu?Sphinx belgelerinde <head> nasıl değiştirilir, böylece ilgili bağlantılar güncelleştirilir?

Örnek ....

Belgeler klasörleri Sphinx' documentation pages de notlar Başına

/sphinx 
    /source 
    working_test_page.rst 
    test_block.html 
    /nested 
     non_working_test_page.rst 
     test_block_copy.html 
    /_templates 
     layout.html 
    /_static 
     excanvas.js 
    ... 

, dosya layout.html değiştirildi. Bu değişiklik, şablon kafasında, sayfanın IE'de görüntülenmesi durumunda excanvas.js ekleyen koşullu bir HTML bloğu eklemekti.

{% extends "!layout.html" %} 
{% block extrahead %} 
    <!--[if IE]> 
    <script type="text/javascript" src="_static/excanvas.js"></script> 
    <![endif]--> 
{% endblock %} 

dosya working_test_page.rst ve aynı içeriğe sahip non_working_test_page.rst. Içeriği takip eder. Tek fark, dosyaların yeridir.

Script Test 
========== 

.. raw:: html 
    :file: test_block_1.html 

Test_block.html ve test_block_copy.html dosyası aynı içeriğe sahip. İki dosyada, bir kanvas oluşturan ve kullanan bir HTML bulunur.

sfenks HTML inşa dizine ilk dosyaları derler, aşağıdaki dosyaları yapısı sonuçları:

/sphinx 
    /build 
    working_test_page.html 
    /nested 
     non_working_test_page.html 
    /_static 
     excanvas.js 
    ... 

dosya working_test_page.html doğru excanvas.js ve yükleri doğru bir yolu vardır. Non_working_test_page.html dosyası excanvas.js için yanlış yola sahiptir ve aşınmadan yüklenmez.

excanvas.js koşullu olarak nasıl yüklenebilir, böylece sfenks belgelerindeki göreli yollar, ilk dosyaların konumlarından bağımsız olarak doğrudur?

cevap

4

Koşullu HTML snipet'ini değiştirmek için yardımcı işlev yolu (...) kullanıldığında koşullu bağlantı düzgün biçimlendirilecektir. pathto(file,1) belgelerine bakın.

{% extends "!layout.html" %} 
{% block extrahead %} 
    <!--[if IE]> 
     <script type="text/javascript" src="{{pathto("_static/excanvas.js", 1)}}"></script> 
    <![endif]--> 
{% endblock %}