Silakan unduh file simple.7z
dan instal di sphinx Anda untuk mereproduksi masalah apa yang saya jelaskan di sini, untuk mereproduksinya, Anda dapat menjalankan:
make clean
make html
unduh dan instal di sphinx Anda untuk mereproduksi masalah
Ada dua artikel di dalam sample/source
, isinya sama, hanya perbedaan judulnya.
cd sample
ls source |grep "for-loop"
What does "_" in Python mean in a for-loop.rst
What does "_" in Python mean in a for-loop?.rst
Satu berisi ?
di dalamnya, yang lain tidak mengandung ?
. Hal aneh terjadi setelah berlari make html
.
make html
ls build/html|grep "for-loop"
What does "_" in Python mean in a for-loop.html
What does "_" in Python mean in a for-loop?.html
Masalah 1:
Mengapa firefox menunjukkan semua itu sebagai What does “_” in Python mean in a for-loop?
Catatan:
"_"
digabungkan menjadi “_”
;
Judul yang tidak mengandung ?
seperti What does "_" in Python mean in a for-loop.html
itu dikompilasi ke dalam What does “_” in Python mean in a for-loop?
, yang menambahkannya ?
?
Masalah 2: Untuk mengklik judul pertama What does “_” in Python mean in a for-loop?
, browser beralih ke statusno url was not found on this server
Untuk mengklik judul kedua What does “_” in Python mean in a for-loop?
, itu berfungsi dengan baik.
Tolong beri penjelasan tentang masalah saya.
sumber
print(“Hello”)
??? Anda perlu mematikan kutipan "pintar".Jawaban:
Masalah 1 sebenarnya bukan masalah, itu adalah perilaku normal Sphinx: Judul yang ditampilkan bukan nama file tetapi judul tingkat atas dari dokumen ResT, yang diakhiri dengan tanda tanya di kedua kasus. Lihat Daftar Isi > .. toctree :: > Entri pada halaman ini yang menyatakan:
Jika Anda perlu diyakinkan, ubah saja judul dokumen mana saja, bangun kembali HTML dan lihat.
Masalah 2 disebabkan oleh adanya tanda tanya yang tidak ditentukan dalam
href
tautan. Dalam url, tanda tanya berarti awal dari string kueri .Itu sedang mencoba mengakses
What does "_" in Python mean in a for-loop?.html
, berarti memintaWhat does "_" in Python mean in a for-loop
dokumen HTML, memberinya.html
parameter. Dan jelas, dokumen yang diminta tidak ditemukan karena tidak ada.Di bilah alamat browser Anda, Anda dapat mengganti tanda tanya dengan bentuk urlencodenya
%3F
, dan mengamati itu berfungsi kemudian.Saya tidak menemukan cara untuk membuat sphinx secara otomatis urlencode nama dokumen dalam tautan
href
( sebenarnya dianggap sebagai bug ) atau dokumen apa pun yang secara jelas menyatakan pembatasan penamaan untuk dokumen ResT.Tapi saya tahu dari pengalaman bahwa penamaan file dengan tanda baca sering menjadi sumber masalah . Saya akan menyarankan Anda untuk mengubah nama dokumen Anda dengan karakter yang kurang eksotis (slugify mereka). Memberi nama dokumen ResT Anda
underscore_in_for_loop.rst
bukannyaWhat does "_" in Python mean in a for-loop?.rst
akan menghemat banyak waktu dan sakit kepala.Dan ingat bahwa itu seharusnya tidak menjadi masalah karena, seperti yang kita lihat dalam edisi pertama, nama dokumen hanya digunakan untuk URL.
sumber
?
adalah wildcard untuk pencocokan kata bagian dalam URL dan karenanya akan diperlakukan sebagai karakter khusus.wild card beroperasi dengan dua jenis pelawak:
Untuk ini, Anda harus Menyandikan URL
Di Python 3.x, Anda perlu mengimpor urllib.parse.quote:
sumber
?
diperlakukan sebagai wildcard dan karenanya tidak mengubahnya ke%3f
dalam URL.