Author: | László Németh András Tímár |
Released: | [1] |
Latest Release Version: | Same as LibreOffice version |
Programming Language: | Python-PyUNO |
Operating System: | Linux, Windows |
Language: | Same as LibreOffice version |
Genre: | Integrated development environment, software extension, part of an application |
License: | GPL, LGPL v2.1, and MPL v1.1 |
LibreLogo is an integrated development environment (IDE) for computer programming in the programming language Python, which works like the language Logo using interactive vector turtle graphics. Its final output is a vector graphics rendition within the LibreOffice suite. It can be used for education and desktop publishing.
Logo toolbar and interpreter was programmed by László Németh, and help with integration was provided by András Tímár.[2] It was released as an extension to LibreOffice before code was merged into LibreOffice 4.2.3.3 main code in 2014.[3]
The lightweight implementation (1,400 lines in Python-PyUNO) uses the embedded Python to give a simplified programming interface to the vector graphics of LibreOffice for graphic design and education (including teaching of word processing).
LibreLogo is embedded in every version of LibreOffice after 4.2.3.3, released in 2014. It can also be installed as an extension for earlier versions.[4]
Its main UI is a toolbar in Writer .[5]
Touching the up arrow on the Logo toolbar activates the turtle, then the source code is typed directly onto the same page. The graphic is in Scalable Vector Graphics (SVG) format and can be copied and pasted into other documents.
The syntax of LibreLogo is similar to UCBLogo. It supports the ¨word
syntax for strings, the 'word'
notation, and importantly, recursion. Commands can be entered in the toolbar, or compiled and run from the Writer page.
Here is a "Hello, World!" program example.
circle 10cm fillcolor 'blue' pencolor 'red' pensize 2 circle 5cm forward 200 right 89 circle 5 repeat 88 [ forward 200 right 89 ] fill repeat 9 [ label 'Hello, World!' right 20 ] repeat 100 [ penup position any pendown pensize random 10 fillcolor any square 20 + random 100 ]