ส่วนขยายไฮไลต์โค้ดสำหรับตัวเขียน Libre Office


21

ฉันเพิ่งเขียน repport สำหรับโรงเรียนด้วยรหัสจำนวนมากในนั้น วิธีเดียวที่ฉันพบว่า wrok คือการเน้นด้วยSTRONG และนั่นน่าเกลียดจริง ๆ ดังนั้นจะมีส่วนขยายรหัสเน้นสำหรับนักเขียนสำนักงานฟรีหรือไม่

แบบนี้ด้านล่าง:

<insert code here>

ไฮไลต์ไวยากรณ์ที่มีสีแตกต่างกันก็โอเค
ฉันไม่เคยเข้าสู่โปรแกรมทั้งหมดดังนั้นฉันจึงจำเป็นต้องมีความสามารถสูงในสิ่งที่ฉันคิดว่าเป็นรหัส

ชอบสิ่งนี้: echo "Hello World!";

Cooder

ฉันไม่ชอบไฮไลต์นี้เนื่องจากรูปแบบข้อความและข้อความทั้งหมดที่ตามมา ฉันต้องการทำเครื่องหมายข้อความจากนั้นคลิกที่ไฮไลต์และนั่นคือมัน
อันนี้ซับซ้อนเกินไปและยากต่อการใช้งานฉันต้องเลือกภาษาการเขียนโปรแกรมทุกครั้งที่ฉันเน้นซึ่งจะมีประมาณ 100 ครั้งในหนึ่งรายงานนั่นเป็นวิธีที่มากเกินไป
ฉันต้องการบางสิ่งที่คล้ายกับที่ใช้บนเว็บไซต์ ไฮไลต์รหัสง่าย ๆ ถ้าคุณจะ

ฟอร์แมต Colorizer รหัส

มันติดตั้งให้ฉัน แต่ฉันไม่สามารถใช้งานได้และไม่มีการสนับสนุน PHP หรือ HTML ที่ฉันต้องการ


เพิ่มเป็นคำตอบดีใจที่มันช่วย
เป็ด Clarris

1
ฉันแนะนำให้ใช้ LaTeX (ดูตัวอย่าง ) ก่อนที่ฉันจะใช้ลาเท็กซ์ฉันได้บันทึกซอร์สเป็น HTML ด้วย KDE Kate และคัดลอกรหัสที่แสดงผลจากเบราว์เซอร์ไปยังสำนักงานเปิด
Martin Thoma

@ ทำไมคุณเพิ่มความคิดเห็นนี้แทนคำตอบ? อธิบายขั้นตอนทั้งหมดด้วยเช่นกันขอบคุณ
Alvar

คำตอบ:


15

ไม่ใช่ปลั๊กอิน แต่ฉันใส่รหัสลงในเว็บไซต์ที่มีสีให้คุณ การใช้งานเว็บไซต์ของฉันคือtohtml ฉันไม่ได้ใช้รหัสที่สร้าง html แต่ฉันเพิ่งคัดลอกรหัสสีและไฮไลต์จากเบราว์เซอร์และวางลงในเอกสารและ WYSIWYG ของฉัน


การคัดลอกไม่ได้ผลสำหรับฉันจาก Firefox ไปยัง Libroffice แม้ว่าการบันทึกเป็น HTML และเปิดไฟล์ใน Libreoffice การคัดลอกก็ใช้งานได้
Wilf

คัดลอก + วางทำงานบน Ubuntu จาก chrome เป็น libreoffice! ขอบคุณ!
rrosa

11

อัปเดต 2: ส่วนขยาย LibreOffice

ฉันได้เผยแพร่สคริปต์แมโครก่อนหน้าของฉันเป็นส่วนขยาย: เครื่องมือเน้นโค้ดซึ่งมีอยู่ในร้านค้าส่วนขยายของ LibreOffice

1. วิธีการติดตั้ง

ทำตามขั้นตอนเหล่านี้เพื่อติดตั้งส่วนขยาย:

ขั้นตอนที่ 1:ติดตั้ง libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

ขั้นตอนที่ 2:ติดตั้ง pygments สำหรับ Python 3:

sudo pip3 install pygments

ขั้นตอนที่ 3:ดาวน์โหลดและเพิ่มส่วนขยายcodehighlighter.oxtไปยัง Libre Office

2. วิธีการใช้งาน?

  • เปิด LibreOffice Writer / Calc / Impress
  • แทรกกล่องข้อความ ( แทรก -> กล่องข้อความ )
  • คัดลอกและวางข้อมูลโค้ดลงในกล่องข้อความนั้น
  • เลือกกล่องข้อความ
  • ไฮไลต์ตามเครื่องมือ -> รหัสไฮไลต์ -> <ชื่อภาษา>

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถกำหนดแป้นพิมพ์ลัดสำหรับภาษาที่ใช้บ่อย หากต้องการดูวิธีกำหนดแป้นพิมพ์ลัดให้ไปที่หน้า Git Hub: libreoffice-code-highlighter


ฉันปล่อยคำตอบดั้งเดิมไว้ที่นี่เพราะมันยังใช้ได้สำหรับ LO <= 5

ฉันมีความต้องการแบบเดียวกันและไม่มีวิธีแก้ไขปัญหาเหล่านี้สำหรับฉันใน LibreOffice 5 ยกเว้น 'Code Colorizer Formatter' แต่ Code Colorizer Formatter ใช้งานได้กับ Writer เท่านั้น (ฉันต้องการ Impress) ต่อมาฉันพบวิธีแก้ปัญหาอื่นโดยใช้แมโคร Python ซึ่งทดสอบใน LibreOffice 5

การติดตั้ง

ขั้นตอนที่ 1:ติดตั้ง libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

ขั้นตอนที่ 2:ติดตั้ง pygments สำหรับ Python 3:

sudo pip3 install pygments

ขั้นตอนที่ 3:ดาวน์โหลดHighlight.py

ขั้นตอนที่ 4:คัดลอก Highlight.py ไปยัง/ usr / lib / libreoffice / share / Scripts / python /

sudo cp Highlight.py /usr/lib/libreoffice/share/Scripts/python/

ขั้นตอนที่ 5:ตั้งค่าสิทธิ์อ่านอย่างเดียวให้กับสคริปต์

sudo chmod 0444 /usr/lib/libreoffice/share/Scripts/python/Highlight.py

ขั้นตอนที่ 6:เปิด LibreOffice Writer และไปที่เครื่องมือ -> กำหนด - -> คีย์บอร์ด

  • เลือกปุ่มตัวเลือก LibreOffice (มีให้ที่มุมซ้ายบน)
  • เลือกทางลัดที่ต้องการ
  • เลือกแชร์ / ไฮไลต์ / Highlight_source_codeภายใต้หมวดหมู่ฟังก์ชั่น
  • คลิกที่ปุ่มแก้ไขเพื่อตั้งค่าทางลัด

การใช้

LibreOffice Impress

  • เปิด LibreOffice Impress
  • แทรกกล่องข้อความ (แทรก -> กล่องข้อความ)
  • คัดลอกและวางข้อมูลโค้ดลงในกล่องข้อความนั้น
  • สร้างสไตล์ใหม่ (คลิกขวาที่สไตล์ที่มีอยู่ -> ใหม่ ... )
  • ชื่อสไตล์เป็น code-<language>
  • ใช้สไตล์กับกล่องข้อความตัวอย่างโค้ดของคุณ
  • เลือกกล่องข้อความ
  • ใช้ปุ่มลัดของคุณเพื่อเรียกใช้แมโคร

LibreOffice Writer / Calc

  • เปิด LibreOffice Writer / Calc
  • แทรกกล่องข้อความ (แทรก -> กล่องข้อความ)
  • คัดลอกและวางข้อมูลโค้ดลงในกล่องข้อความนั้น
  • คลิกขวาที่กล่องข้อความและเลือก 'คำอธิบาย'
  • เพิ่มคำอธิบายในรูปแบบต่อไปนี้: code-<language>
  • เลือกกล่องข้อความ
  • ใช้ปุ่มลัดของคุณเพื่อเรียกใช้แมโคร

อัปเดต 1:

ฉันได้เพิ่มการสนับสนุนสไตล์ที่กำหนดเองให้กับส่วนขยายนี้ ใช้code-<language>สำหรับสไตล์เริ่มต้นและcode-<language>-<style>สำหรับสไตล์ที่กำหนดเอง สไตล์ที่มีอยู่จะแสดงรายการในหน้า Git Hub ของฉัน

ตัวอย่างเช่นCode-Java-Emacsจะให้สีรหัส Java โดยใช้สไตล์ Emacs


มันใช้งานได้ดีมากขอบคุณ! ฉันจะเปลี่ยนธีมของ pygments ได้อย่างไร?
greschd

โปรดตรวจสอบโพสต์ที่อัปเดต ฉันได้อัปเดตสคริปต์ของฉันเพื่อสนับสนุนสไตล์ที่กำหนดเอง คุณต้องอัปเกรดสคริปต์ Highlight.py เพื่อใช้คุณสมบัติใหม่นี้
Gobinath

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

ฉันไม่ได้ประสบปัญหาดังกล่าว คุณช่วยให้ฉันรู้ขั้นตอนที่แน่นอนในการทบทวนปัญหานี้ได้หรือไม่?
Gobinath

(ใน Impress): ฉันแก้ไขโค้ดบางส่วนในกล่องข้อความที่ฉันได้ฟอร์แมตไปแล้วก่อนหน้านี้บันทึกเอกสาร (Ctrl + S) เลือกกล่องข้อความลองไฮไลต์ (Ctrl + Shift + H) และรีเซ็ตข้อความบางส่วน ฉันเขียน
greschd

4

Cooder

COOder ดูเหมือนจะถูกละทิ้งและไม่สามารถติดตั้งใน LibreOffice 4.2.8.2

ฟอร์แมต Colorizer รหัส

ตัวจัดรูปแบบโค้ด Colorizer ติดตั้งและทำงานอย่างถูกต้องใน LibreOffice Form Colorizer Formatter ได้เพิ่มการสนับสนุน PHP แต่การสนับสนุน HTML หายไปอย่างสมบูรณ์และ JavaScript ไม่ทำงานเมื่อฉันทดสอบ คำแนะนำเกี่ยวกับวิธีทำให้การทำงานบนเว็บไซต์ Code Colorizer Formatter ไม่ได้ผลสำหรับฉัน แต่ฉันได้รับ Code Colorizer Formatter เพื่อทำงานใน LibreOffice อย่างหนักและนี่คือคำแนะนำของฉัน:

  1. ดาวน์โหลดCode Colorizer Formatterจากหน้าแรกของ Code Colorizer Formatter projectและติดตั้งใน LibreOffice Writer เหมือนกับส่วนขยาย LibreOffice อื่น ๆ

  2. เปิดไฟล์รหัสของคุณใน LibreOffice Writer ฟอร์แมต Colorizer Code รองรับ Bash, Basic, C ++, Java, Perl, PHP, Python, R, SQL, XML, C #, 8085 Assembler และ x86 Assembler

  3. เลือกรหัสที่จะ colorized

  4. เลือกเครื่องมือ -> แมโคร -> จัดระเบียบแมโคร -> LibreOffice พื้นฐาน

  5. หน้าต่างLibreOffice Basic Macใหม่จะเปิดขึ้น ภายใต้มาโครจากหัวเรื่องให้เลือกมาโครของฉัน -> MacroFormatterADP -> ภาษาการเขียนโปรแกรมที่รองรับ ในภาพหน้าจอด้านล่าง Java ถูกเลือก

  6. ภายใต้ส่วนหัวของแมโครที่มีอยู่ใน ...เลือกHighlightSelLanguageโดยที่ภาษาใน HighlightSelLanguage เหมือนกับภาษาการเขียนโปรแกรมที่เลือกไว้ในขั้นตอนที่ห้า ในภาพหน้าจอด้านล่าง HighlightSelJava จะถูกเลือก

  7. คลิกปุ่มRunเพื่อกำหนดรหัสที่เลือกให้เป็นสี

ป้อนคำอธิบายรูปภาพที่นี่


ดูเหมือนว่าถูกทอดทิ้งไปที่ส่วนขยายใน LibreOffice กล่าวว่ายังไม่มีการปรับปรุงในรอบปี
Purefan

ปริมาณงานที่ใช้ CCF นั้นไม่คุ้มกับผลลัพธ์ที่ได้ IMHO ฉันคิดว่าหน้าtohtmlทำงานได้ดีขึ้นกับผลลัพธ์ (เช่นจุดสี, วงเล็บ, ฯลฯ ) อย่างไรก็ตามหากมีคนต้องการใช้ "วิธีที่ง่าย" ™พวกเขาสามารถไปที่เครื่องมือ >> กำหนดเอง ... >> เมนูบริบท (แท็บ) >> เมนู (รายการแบบเลื่อนลง) >> ข้อความ >> เพิ่ม ... ( ปุ่ม) >> LibreOffice แมโคร >> ของฉันแมโคร >> MacroFormatterADP >> (เลือกภาษา) >> HighlightSel (ภาษา) >> ปิด หลังจากนี้ให้ไฮไลต์ข้อความแล้วคลิก r และค้นหาตัวเลือกใหม่ในเมนูบริบทเพื่อจัดรูปแบบข้อความที่เลือก สามารถเปลี่ยนชื่อรายการ
code_dredd

1
@karel ฉันใช้เวอร์ชั่น5.2.2.2ใน Kubuntu 16.10 ฉันทำสิ่งนี้สักครู่ก่อนแสดงความคิดเห็นดั้งเดิมของฉัน
code_dredd

@ray ขอบคุณสำหรับคำแนะนำของคุณ ฉันจะติดตั้ง Kubuntu ใน VirtualBox และลองใช้งาน
karel

@karel เวอร์ชั่น5.2.2.2ใน Windows ไม่ทำงานเหมือนกันหรือไม่? ฉันคิดว่าการอัปเกรดเวอร์ชันของคุณควรใช้งานได้โดยไม่ต้องผ่านการติดตั้งระบบปฏิบัติการเต็มรูปแบบ
code_dredd

1

ฉันต้องเลือกภาษาการเขียนโปรแกรมทุกครั้งที่ฉันเน้นซึ่งจะอยู่ที่ประมาณ 100 ครั้งในหนึ่งรายงานนั่นเป็นวิธีที่มากเกินไป

อันที่จริงมีวิธีผูกสีในภาษาที่กำหนดให้กับปุ่มลัด ทำให้ย่อยต่อไปนี้และผูกไว้กับปุ่มลัด:

ไปที่เครื่องมือ→ Macros →จัดระเบียบแมโคร→ LibreOffice Basic เลือก Module1 และกดแก้ไข:

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นคัดลอกโค้ดนี้:

Sub COOoderInPython
  ExecuteCOOoder("python")
End Sub

Sub ExecuteCOOoder(sLanguage As String)
  oLanguage = org.openoffice.coooder.theLanguagesManager.get(GetDefaultContext()).getLanguage(sLanguage)
  If NOT isNull(oLanguage) Then
    oHighlighter = CreateUnoService("org.openoffice.coooder.Highlighter")
    oHighlighter.Language = oLanguage
    oHighlighter.parse(Null)
  End If
End Sub

ในที่สุดก็ผูกกับคีย์ลัด:

ป้อนคำอธิบายรูปภาพที่นี่


0

หนึ่งที่ฉันรู้ แต่ดูเหมือนว่าจะถูกทิ้งร้างเป็นรหัส Colorizer ฟอร์แมต

ฉันไม่รู้ว่ามันยังใช้งานได้ใน LO 4 แต่มันอาจคุ้มค่าสำหรับคุณที่จะลอง (หรือช่วยชีวิตและทำให้ทันสมัย!)


1
ฟอร์แมต Colorizer Code ได้รับการอัปเดตเมื่อวันที่ 1 มีนาคม 2015 พร้อมรองรับ LibreOffice 4.4 สำหรับภาษาการเขียนโปรแกรมจำนวนมากรวมถึง PHP ฉันทดสอบตัวจัดรูปแบบโค้ด Colorizer ใน LibreOffice 4.2 คำแนะนำเกี่ยวกับเว็บไซต์อย่างเป็นทางการของ Code Colorizer Formatter นั้นไม่ได้ผลสำหรับฉันดังนั้นฉันจึงใส่คำแนะนำของตัวเองในการใช้ Code Colorizer Formatter ในคำตอบของฉัน
karel

0

ฉันเบื่อการจัดรูปแบบโค้ดของฉันในหน้าออนไลน์และต้องการให้โค้ดของฉันมีสไตล์ใน LibreOffice หรือ OpenOffice writer

ฉันพบว่าส่วนขยาย "cooder" ทำงานอย่างถูกต้องบน LibreOffice ของฉัน 5. * แม้ว่าการติดตั้งจะล้มเหลว (My LibreOffice 5. * ถูกระงับขณะติดตั้ง)

ใน Extension-Manager คุณสามารถเปิดใช้งาน Cooder ให้รีสตาร์ท LibreOffice / NeoOffice / OpenOffice คุณจะเห็นสัญลักษณ์ใหม่ที่คุณสามารถใช้เพื่อจัดรูปแบบซอร์สโค้ดของคุณภายใน LibreOffice

คุณสามารถดาวน์โหลดส่วนขยายได้ที่: http://extensions.libreoffice.org/extension-center/coooder

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.