mã mở rộng nổi bật cho nhà văn Libre Office


21

Gần đây tôi đã viết một bản báo cáo cho trường học với rất nhiều mã trong đó. Cách duy nhất tôi tìm thấy để wrok là làm nổi bật nó bằng MẠNH M and và điều đó thực sự khá xấu xí. Vì vậy, có một phần mở rộng mã nổi bật cho nhà văn văn phòng libre?

Giống như cái này dưới đây:

<insert code here>

Một cú pháp tô sáng với màu sắc khác nhau cũng ok.
Tôi không bao giờ tham gia vào toàn bộ chương trình vì vậy tôi cần có khả năng đánh dấu những gì tôi nghĩ là mã.

Như cái này: echo "Hello World!";

Người bán hàng

Tôi thường không thích phần nổi bật này vì nó định dạng văn bản và tất cả các văn bản đi sau. Tôi muốn đánh dấu một số văn bản sau đó nhấp vào một điểm nổi bật và đó là nó.
Cái này quá phức tạp và khó sử dụng, tôi phải chọn ngôn ngữ lập trình mỗi lần tôi nhấn mạnh, nó sẽ có khoảng 100 lần trong một báo cáo, đó là quá nhiều.
Tôi muốn một cái gì đó tương tự như những gì họ sử dụng trên trang web. mã nổi bật đơn giản nếu bạn sẽ.

Mã định dạng mã màu

Nó cài đặt cho tôi, nhưng tôi không thể làm cho nó hoạt động được và nó không có hỗ trợ PHP hoặc HTML, thứ tôi cần.


thêm vào như một câu trả lời, rất vui vì nó đã giúp
Drake Clarris

1
Tôi khuyên bạn nên sử dụng LaTeX (xem ví dụ ). Trước khi tôi sử dụng latex, tôi đã lưu nguồn dưới dạng HTML với KDE Kate và sao chép mã được kết xuất từ ​​trình duyệt để mở văn phòng
Martin Thoma

@Moose tại sao bạn thêm điều này như một bình luận thay vì một câu trả lời? giải thích tất cả các bước quá cảm ơn.
Alvar

Câu trả lời:


15

Nó không phải là một plugin, nhưng tôi đặt mã vào một trang web có màu cú pháp cho bạn. Trang web tôi sử dụng là tohtml . Tôi không sử dụng mã được tạo html, tuy nhiên, tôi chỉ sao chép mã được tô màu và tô sáng từ trình duyệt và dán mã vào tài liệu của mình và WYSIWYG.


Sao chép không hoạt động đối với tôi từ Firefox sang Libroffice, mặc dù lưu dưới dạng HTML và mở tệp trong Libreoffice sau đó sao chép đã hoạt động
Wilf

sao chép + dán làm việc trên Ubuntu từ chrome sang libreoffice! cảm ơn!
rrosa

11

CẬP NHẬT 2: Tiện ích mở rộng LibreScript

Tôi đã xuất bản tập lệnh macro trước đây của mình dưới dạng tiện ích mở rộng: Công cụ đánh dấu mã có sẵn trong cửa hàng Tiện ích mở rộng LibreScript.

1. Cách cài đặt?

Thực hiện theo các bước sau để cài đặt tiện ích mở rộng:

Bước 1: Cài đặt libreoffice-script-day-python:

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

Bước 2: Cài đặt pygments cho Python 3:

sudo pip3 install pygments

Bước 3: Tải xuống và thêm tiện ích mở rộng codehighlighter.oxt vào Libre Office

2. Cách sử dụng?

  • Mở LibreScript Writer / Calc / Ấn tượng.
  • Chèn một hộp văn bản ( Chèn -> Hộp văn bản ).
  • Sao chép và dán bất kỳ đoạn mã nào vào Hộp văn bản đó.
  • Chọn Hộp văn bản.
  • Đánh dấu bằng công cụ -> Mã đánh dấu -> <Tên ngôn ngữ>

nhập mô tả hình ảnh ở đây

Bạn có thể gán phím tắt cho các ngôn ngữ thường xuyên sử dụng. Để xem cách gán phím tắt, hãy truy cập trang Git Hub: libreoffice-code-highlighter


Tôi để lại câu trả lời ban đầu của mình ở đây vì nó vẫn còn hiệu lực cho LO <= 5.

Tôi có cùng một yêu cầu và không có giải pháp nào trong số các giải pháp này hoạt động với tôi trong LibreOffice 5 ngoại trừ 'Trình định dạng mã màu'. Nhưng Code Colorizer Formatter chỉ hoạt động trong Trình ghi (Tôi cũng cần cho Ấn tượng). Sau đó, tôi đã tìm thấy một giải pháp khác bằng cách sử dụng macro Python được thử nghiệm trong LibreOffice 5.

Cài đặt

Bước 1: Cài đặt libreoffice-script-day-python:

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

Bước 2: Cài đặt pygments cho Python 3:

sudo pip3 install pygments

Bước 3: Tải xuống Highlight.py

Bước 4: Sao chép Highlight.py vào / usr / lib / libreoffice / share / Sc scripts / python /

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

Bước 5: Đặt quyền Chỉ đọc cho tập lệnh.

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

Bước 6: Mở Công cụ LibreOffice Writer và goto -> Tùy chỉnh -> Bàn phím

  • Chọn nút tùy chọn LibreScript (Có sẵn ở góc trên cùng bên trái)
  • Chọn bất kỳ phím tắt mong muốn
  • Chọn chia sẻ / Đánh dấu / Highlight_source_code trong Danh mục chức năng
  • Nhấp vào nút Sửa đổi để đặt phím tắt

Sử dụng

Ấn tượng LibreScript

  • Mở ấn tượng LibreScript.
  • Chèn một hộp văn bản (Chèn -> Hộp văn bản).
  • Sao chép và dán bất kỳ đoạn mã nào vào Hộp văn bản đó.
  • Tạo kiểu mới (Nhấp chuột phải vào kiểu hiện có -> Mới ...)
  • Đặt tên cho Phong cách là code-<language>
  • Áp dụng kiểu cho Hộp văn bản đoạn mã của bạn.
  • Chọn Hộp văn bản.
  • Sử dụng các phím tắt của bạn để thực hiện macro.

Nhà văn LibreScript / Calc

  • Mở LibreScript Writer / Calc.
  • Chèn một hộp văn bản (Chèn -> Hộp văn bản).
  • Sao chép và dán bất kỳ đoạn mã nào vào Hộp văn bản đó.
  • Nhấp chuột phải vào Hộp văn bản và chọn 'Mô tả'.
  • Thêm một mô tả trong định dạng sau: code-<language>
  • Chọn hộp văn bản
  • Sử dụng các phím tắt của bạn để thực hiện macro.

CẬP NHẬT 1:

Tôi đã thêm hỗ trợ kiểu tùy chỉnh cho tiện ích mở rộng này. Sử dụng code-<language>cho kiểu mặc định và code-<language>-<style>cho kiểu tùy chỉnh. Các kiểu có sẵn được liệt kê trong trang Git Hub của tôi.

Ví dụ, Code-Java-Emacssẽ tô màu mã Java bằng cách sử dụng kiểu Emacs.


Điều này hoạt động khá độc đáo, cảm ơn! Làm thế nào tôi có thể thay đổi chủ đề pygments?
greschd

Vui lòng kiểm tra bài cập nhật. Tôi đã cập nhật tập lệnh của mình để hỗ trợ các kiểu tùy chỉnh. Bạn cần nâng cấp tập lệnh Highlight.py, để sử dụng tính năng mới này.
Yêu tinh

Tốt đẹp, cảm ơn. Một điều vẫn làm phiền tôi - khi tôi vừa lưu tệp và sau đó cố gắng thực thi macro, nó sẽ đặt lại văn bản về một số phiên bản trước đó. Bạn có biết tại sao điều này là và nếu nó có thể được sửa chữa dễ dàng?
greschd

Tôi đã không phải đối mặt với một vấn đề như vậy. Bạn có thể vui lòng cho tôi biết các bước chính xác để tái tạo vấn đề này không?
Yêu tinh

(trong Ấn tượng): Tôi chỉnh sửa một số mã trong hộp văn bản mà tôi đã định dạng trước đó, lưu tài liệu (Ctrl + S), chọn hộp văn bản, thử tô sáng (Ctrl + Shift + H) và nó đặt lại một số văn bản Tôi đã viết
greschd

4

COOder

COOder dường như bị bỏ rơi và nó không thể được cài đặt trong LibreScript 4.2.8.2.

Mã định dạng mã màu

Code Colorizer Formatter cài đặt và hoạt động chính xác trong LibreOffice. Code Colorizer Formatter cũng đã thêm hỗ trợ PHP, nhưng hỗ trợ HTML bị thiếu hoàn toàn và JavaScript không hoạt động khi tôi thử nghiệm nó. Các hướng dẫn về cách làm cho nó hoạt động trên trang web Code Colorizer Formatter không hiệu quả với tôi, tuy nhiên tôi đã nhận được Bộ định dạng mã màu để hoạt động trong LibreOffice một cách khó khăn và đây là hướng dẫn của tôi:

  1. Tải xuống Trình định dạng mã màu từ trang chủ của dự án Trình tạo mã màu và cài đặt nó trong LibreOffice Writer giống như bất kỳ tiện ích mở rộng LibreOffice nào khác.

  2. Mở tệp mã của bạn trong LibreOffice Writer. Code Colorizer Formatter hỗ trợ Bash, Basic, C ++, Java, Perl, PHP, Python, R, SQL, XML, C #, 8085 Trình biên dịch và Trình biên dịch x86.

  3. Chọn mã được tô màu.

  4. Chọn Công cụ -> Macro -> Sắp xếp macro -> LibreOffice Basic .

  5. Một cửa sổ LibreOffice Basic Macros mới sẽ mở ra. Trong phần Macro từ tiêu đề, chọn Macro của tôi -> MacroFormatterADP -> ngôn ngữ lập trình được hỗ trợ. Trong ảnh chụp màn hình bên dưới, Java được chọn.

  6. Trong các macro hiện có trong ... tiêu đề, chọn HighlightSelL Language trong đó Ngôn ngữ trong HighlightSelL Language giống như ngôn ngữ lập trình đã được chọn trong bước năm. Trong ảnh chụp màn hình bên dưới, HighlightSelJava được chọn.

  7. Nhấp vào nút Run để tô màu mã đã chọn.

nhập mô tả hình ảnh ở đây


Có vẻ như bị bỏ rơi, đi đến phần mở rộng trong LibreOffice nói rằng nó đã không có bản cập nhật trong hơn một năm
Purefan

Số lượng công việc để sử dụng CCF không xứng đáng với kết quả, IMHO. Tôi nghĩ rằng trang tohtml đã làm tốt hơn với kết quả (ví dụ: chấm màu, dấu ngoặc đơn, v.v.). Tuy nhiên, nếu ai đó muốn sử dụng "cách dễ dàng" ™ này, họ có thể truy cập Công cụ >> Tùy chỉnh ... >> Menu ngữ cảnh (Tab) >> Menu (danh sách thả xuống) >> Văn bản >> Thêm ... ( nút) >> Macro LibreScript >> Macro của tôi >> MacroFormatterADP >> (chọn ngôn ngữ) >> HighlightSel (ngôn ngữ) >> Đóng . Sau này, chỉ cần tô sáng văn bản, nhấp chuột và tìm tùy chọn mới trong menu ngữ cảnh để định dạng văn bản đã chọn; mục có thể được đổi tên.
code_dredd

1
@karel Tôi đang sử dụng phiên bản 5.2.2.2trong Kubfox 16.10. Tôi đã làm điều này một vài phút trước khi nhận xét ban đầu của tôi.
code_dredd

@ray Cảm ơn bạn đã gợi ý. Tôi sẽ cài đặt Kubfox trong VirtualBox và dùng thử.
karel

@karel Phiên bản 5.2.2.2trong Windows không hoạt động giống nhau? Tôi nghĩ rằng chỉ cần nâng cấp phiên bản của bạn sẽ hoạt động mà không cần phải cài đặt hệ điều hành đầy đủ.
code_dredd

1

Tôi phải chọn ngôn ngữ lập trình mỗi lần tôi nhấn mạnh, sẽ khoảng 100 lần trong một báo cáo, đó là quá nhiều

Trên thực tế, có một cách để liên kết màu trong một ngôn ngữ nhất định với một phím nóng. Tạo phụ sau và liên kết nó với một phím nóng:

Chuyển đến Công cụ → Macro → Macro tổ chức → LibreScript Basic. Chọn Module1 và nhấn Chỉnh sửa:

nhập mô tả hình ảnh ở đây

Sau đó sao chép-dán mã này:

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

Cuối cùng liên kết nó với một phím nóng:

nhập mô tả hình ảnh ở đây


0

Một thứ mà tôi biết, nhưng dường như bị bỏ rơi, là Code Colorizer Formatter .

Tôi không biết nếu nó vẫn hoạt động trong LO 4, nhưng có thể đáng để bạn dùng thử (hoặc để giải cứu và cập nhật!).


1
Code Colorizer Formatter đã được cập nhật vào ngày 1 tháng 3 năm 2015 với sự hỗ trợ lên tới LibreOffice 4.4 cho nhiều ngôn ngữ lập trình bao gồm PHP. Tôi đã thử nghiệm Trình định dạng mã màu trên LibreScript 4.2. Các hướng dẫn trên trang web Code Colorizer Formatter chính thức không phù hợp với tôi, vì vậy tôi đã đặt hướng dẫn của riêng mình để sử dụng Code Colorizer Formatter trong câu trả lời của mình.
karel

0

Tôi cảm thấy mệt mỏi với việc định dạng mã của mình trên một trang trực tuyến và muốn mã của mình được tạo kiểu bên trong trình soạn thảo LibreOffice hoặc OpenOffice.

Tôi phát hiện ra rằng "bộ mã hóa" mở rộng chạy đúng trên LibreOffice 5. * ngay cả khi cài đặt của nó dường như không thành công (My LibreOffice 5. * bị treo trong khi cài đặt).

Trong Trình quản lý tiện ích mở rộng, bạn có thể kích hoạt Cooder, khởi động lại LibreScript / NeoOffice / OpenOffice, bạn sẽ thấy một Biểu tượng mới mà bạn có thể sử dụng để tạo kiểu mã nguồn của mình bên trong LibreOffice.

Bạn có thể tải xuống tiện ích mở rộng tại: http://extensions.libreoffice.org/extension-center/coooder

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.