Bagaimana cara menambahkan tombol salin di blok kode untuk RST/Baca Dokumen

Saya telah mengerjakan panduan "cara melakukan" pribadi, mencatat dan membuat jurnal studi saya seiring berjalannya waktu.

Saya sekarang memiliki blok kode yang hampir terlalu panjang sehingga, ketika saya sendiri menemukan kode yang panjang ini, selalu membuat frustrasi saat mencoba menyorot HANYA blok tersebut tanpa menyorot seluruh halaman, atau tidak cukup.

Jadi, pertanyaan saya adalah, untuk rst (reStructuredText) .. code-block::, apakah ada add-on atau cara untuk menambahkan tombol copy, untuk menyorot otomatis atau secara otomatis menambahkan teks ke papan klip pengguna? Atau apakah ini jenis kode html-literal yang harus saya sertakan dalam build dan mereferensikannya di blok kode? Jika iya, apa yang akan terlihat seperti itu juga?


person jpartain89    schedule 28.08.2016    source sumber


Jawaban (2)


Ada paket khusus untuk itu yang disebut sphinx-copybutton.

Sangat mudah untuk digunakan.

# Install
pip install sphinx-copybutton
# Declare it in the conf.py
extensions = [
    ...
    'sphinx_copybutton'
    ...
]

Selesai, buat dokumen dan tombol salin akan muncul secara otomatis di setiap blok kode.

person Romain    schedule 15.04.2020
comment
Saya lebih menyukai jawaban Anda daripada jawaban saya!! Terima kasih @Romain - person Blaise Pabon; 25.06.2020

Dalam proyek Sphinx, presentasi halaman HTML dikontrol menggunakan bahasa template (Jinja2 secara default). Jadi Anda dapat membuat halaman Anda lebih interaktif dengan menambahkan Javascript ke file template HTML dan itu akan disisipkan saat Sphinx menggunakan file template tersebut untuk merender halaman.

Temukan direktori templat Anda dengan mencari templates_path di conf.py Anda

Templat Jinja dapat diperluas satu sama lain, jadi Anda mungkin menginginkan file yang dimulai dengan {% extends "basic/layout.html" %}.

Setelah Anda melacak di bagian mana dalam urutan ekstensi Anda ingin melakukan perubahan, Anda perlu menggabungkan:

  • Bagian halaman tempat Anda ingin menerapkannya (biasanya blok utama)
  • CSS dengan kelas untuk blok kode (mis. di milik saya class=highlight). File .CSS mungkin ada di docs/source/_static/
  • Cuplikan javascript untuk membuat tombol dan menulis ke clipboard (mis. https://clipboardjs.com/)

Selanjutnya, bangun proyek Sphinx secara lokal (make html) hingga Anda menghubunginya dan kemudian dorong repo sumber Anda ke readthedocs.

person Blaise Pabon    schedule 09.11.2016
comment
Jadi, ini membawa saya sebagian dari perjalanan ke sana, tetapi sepertinya saya bingung bagaimana tepatnya menempatkan kode untuk proyek saya, dan sebagian dari itu adalah kesalahan saya karena tidak jelas tentang tema yang saya maksud. menggunakan... Saya menghostingnya di raspberry pi dan RTD saya (baca dokumen) dan menggunakan tema mereka... Jadi, bagaimana saya bisa mengambil tema itu (yang filenya biasanya tidak disertakan langsung di dokumen file lokal) dan memperluasnya? - person jpartain89; 23.12.2019
comment
@ jpartain89 Anda dapat pip install sphinx-rtd-theme ke dalam proyek lokal Anda... maka penyesuaian apa pun yang Anda lakukan akan mengesampingkan pengaturan default di RTD. Saya minta maaf karena ini tidak lebih mudah. Saya harap saya dapat menyarankan cara sederhana untuk melakukan ini, tetapi sepertinya setiap orang memiliki pendekatan yang berbeda. - person Blaise Pabon; 26.12.2019