สฟิงซ์, rinohtype: สีพื้นหลังโค้ดอินไลน์

เราจะเปลี่ยนสีพื้นหลังของโค้ดอินไลน์ได้อย่างไร

วิธีหนึ่งที่ฉันใช้โค้ดอินไลน์ในข้อความที่ปรับโครงสร้างใหม่คือ:

.. role::sql(code)
    :language: sql

You can use the query :sql:`select * from table` to execute...

เมื่อใช้ rst2pdf มันจะแสดงผลการเน้นไวยากรณ์ที่สวยงามและสีพื้นหลังเหมือนกับบล็อกโค้ด เราจะบรรลุเป้าหมายเดียวกันโดยใช้ rinohtype ได้อย่างไร

ตามหลักการแล้ว that looks like this in stackoverflow

นี่คือสิ่งที่ฉันลองด้วยตัวเอง

stylesheet:

[code-paragraph: Paragraph(has_class="coder")]
background_color = #fdffd6

and rst:

.. role::sql(code)
    :language: sql
    :class: coder

You can use the query :sql:`select * from table` to execute...

แต่วิธีนี้ใช้ไม่ได้ เนื่องจาก role อาจเป็นข้อความไม่ใช่ย่อหน้า


person Hamza Zubair    schedule 21.01.2021    source แหล่งที่มา
comment
โปรดทราบว่าจะต้องมีช่องว่างหลัง ..role::   -  person Brecht Machiels    schedule 29.01.2021


คำตอบ (1)


ณ จุดนี้ rinohtype ไม่รองรับการตั้งค่าสีพื้นหลัง (หรือเส้นขอบ) สำหรับองค์ประกอบแบบอินไลน์ ขณะที่เรารอให้ฟังก์ชันนั้นเกิดขึ้นจริง ฉันจะพูดถึงการจัดรูปแบบข้อความในบรรทัดโดยทั่วไป

นี่คือส่วนที่เกี่ยวข้องของ stylelog สำหรับตัวอย่าง reStructuredText ของคุณ : :

Paragraph('You can use the query select * f...')   inline_code.rst:6 <paragraph>
     > (0,0,0,0,2) body
  MixedStyledText('You can use the query select * f...')
    SingleStyledText('You can use the query ')
    MixedStyledText('select * from table', style='monospaced')   None:None <literal>
         > (0,0,1,0,1) monospaced
      MixedStyledText('select')   None:None <inline>
        SingleStyledText('select')
      ...

องค์ประกอบที่คุณต้องการจับคู่ด้วยตัวเลือกคือ MixedStyledText ที่มีสไตล์ monospaced เนื่องจากเป็นการยากที่จะคาดเดาได้ว่าคุณจะต้องจับคู่องค์ประกอบ SingleStyledText หรือ MixedStyledText คุณจึงควร ใช้ StyledText สำหรับตัวเลือก

สำหรับตัวอย่างของคุณ คำจำกัดความ code-paragraph ในสไตล์ชีตจะมีลักษณะดังนี้:

[inline-code: StyledText('monospaced', has_class='coder')]
base = monospaced
background_color = #fdffd6

ข้อสังเกตสองประการเกี่ยวกับเรื่องนี้:

  • เนื่องจาก สไตล์ ที่ระบุในตัวเลือกมีน้ำหนักมากกว่า คลาส คุณจึงต้องระบุมันเพิ่มเติมจากอาร์กิวเมนต์ has_class หรือเพิ่ม ลำดับความสำคัญของตัวเลือก อ่าน ตัวเลือก เพื่อดูรายละเอียด
  • ตั้งค่า ฐาน ของสไตล์เป็น monospaced เพื่อสืบทอดคุณสมบัติของสไตล์ monospaced มาตรฐาน มิฉะนั้นคุณอาจต้องตั้งค่า typeface และแอตทริบิวต์อื่นๆ ด้วย

ในตอนนี้ rinohtype จะยกเลิกด้วย TypeError: background_color is not a supported attribute for TextStyle ดูเอกสารประกอบสำหรับ TextStyle เพื่อดูว่าแอตทริบิวต์สไตล์ใด ได้รับการสนับสนุน

หากต้องการอ่านเพิ่มเติม โปรดดูการจัดสไตล์องค์ประกอบในคู่มือ rinohtype

person Brecht Machiels    schedule 29.01.2021