A Rocket Engine for LibreOffice Templates
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 542 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/61577 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2023179 / 542
2
5
10
14
15
16
22
24
27
29
31
36
43
48
56
63
74
78
83
87
89
95
96
99
104
106
107
117
119
121
122
125
126
128
130
132
134
135
136
141
143
146
148
152
155
157
159
161
165
166
168
170
173
176
180
181
185
191
194
196
197
198
199
206
207
209
210
211
212
216
219
220
227
228
229
231
232
233
236
250
252
256
258
260
263
264
267
271
273
275
276
278
282
286
292
293
298
299
300
302
312
316
321
322
324
339
341
342
343
344
351
352
354
355
356
357
359
369
370
372
373
376
378
379
380
382
383
387
390
394
395
401
405
406
410
411
413
415
416
421
426
430
437
438
440
441
443
444
445
446
448
449
450
451
458
464
468
472
475
476
479
481
493
494
498
499
502
509
513
516
517
520
522
524
525
531
534
535
537
538
541
00:00
Template (C++)Field extensionForm (programming)Java appletWeb 2.0Template (C++)BitComputer animation
00:55
InternetworkingHuman migrationJava SwingGraphical user interfaceTemplate (C++)Complex (psychology)Electric generatorForm (programming)Function (mathematics)EmailComputer programmingStatement (computer science)Java appletProgrammschleifeOpen sourceControl flowElectric generatorEmailView (database)Data managementComputer programmingSelectivity (electronic)Projective planeTemplate (C++)Complex (psychology)Extension (kinesiology)Form (programming)Sampling (statistics)Special unitary groupProduct (business)MereologyPhysical lawElement (mathematics)Computer animation
04:18
Fitness functionAdaptive behaviorProjective planeOpen sourceComputer animation
04:40
Repository (publishing)Computer fileTranslation (relic)Extension (kinesiology)Java appletCodeBuildingProjective planeTranslation (relic)Repository (publishing)NamespaceSoftware testingUniform resource locatorCloningSource codeString (computer science)Java appletPhysical systemCuboidNumberHypermediaBitWeb 2.0Software developerWikiComputer fileMereologyComputer animation
07:03
WikiExtension (kinesiology)Java appletLanding pageTemplate (C++)Form (programming)Translation (relic)Template (C++)Form (programming)BitLanding pageCrash (computing)Software bugSoftwarePhysical systemTranslation (relic)Online helpProcess (computing)Block (periodic table)Computer programmingJava appletQR codeElectric generatorBranch (computer science)Computer animation
09:53
Computer animationProgram flowchart
Transcript: English(auto-generated)
00:05
Okay, let's go, it's me again. Somebody just throw some, I don't know, vegetables at me if the ten minutes are over. If you came for a web assembly here, I have to disappoint you, so we'll have to wait
00:21
another one or two talks when we will talk about that. I repurpose the slot here to talk a little bit about something equally cool, wonderful, spiffy with a rocket engine for LibreOffice templates. Well, small disappointment, it's about Walmux, but I think it's, I'm kind of serious there,
00:43
perhaps the name, we could think about a different one. So quick intro, what is that, if you haven't heard about it. It's a Java extension to LibreOffice, and it's there for templates and forms management
01:06
and also like extending mail merge. So those are two views on it, the left one is the sidebar extension, you see three sidebar panels been added there, this is just a selection of sample templates there, and
01:23
the right side is the kind of constructed, generated document out of that thing. So all of that has been developed by the city of Munich starting around 2005ish to
01:42
2006ish under the Limox project umbrella, why? Because they wanted to migrate to OpenOffice, they wanted some template management and there was nothing that was powerful enough. So they did what you do when it's not there and you do open source stuff, you started
02:00
doing something yourself and then open sourced it. So that's what Munich did and there was some, well, it was in production I think since 2008 and there was some major upgrade to LibreOffice from OpenOffice which had some, to change some UNO stuff there, and another major rework migrating from Java swing dialogues
02:27
and UI to native LibreOffice UI and mostly sidebar which really nicely integrates as you've seen before. And this year, or end of last year, since the Limox project is kind of sun setting,
02:46
the extension itself which is extremely powerful, lovely, great, also cool for QA because it triggers really literally every little corner of the writer UNO API there, moving house to TDF.
03:02
Again, what is it in the first place? It's predominantly for, let's say, very complex document generation workflows that you will find in larger companies, perhaps also in law firms or something, but predominantly in the public sector.
03:21
The idea behind there is kind of assemble your letter on the fly and employ the dry principle and only ever have one stylistic element or part of the template defined once and then you kind of include that like PHP or other template programming languages,
03:43
so you kind of piece that together. There's also like loops and control flow statements that you can use to kind of very dynamically generate forms. There's a forms generator so you can kind of have some user guidance like where to fill in what and pre-fill things and also dynamically kind of say, oh, when this
04:04
is on, then do that or not to do that or disable here. As I said, mail merge stuff and yeah, this text programming and quotes, content-based directors doing something very dynamic. Okay, so that thing is now has moved to TDF end of last year and we have been quite
04:27
busy first of all, like doing the move and also like doing some adaptations and adjustments and getting a kind of fit for let's say an international open source project like LibreOffice.
04:41
What happened? Git repos moved to under the LibreOffice project on GitHub, which was an easy like click. So the old URL still work, then you got a redirect that's pretty nice feature on GitHub so everybody can still, who had this clone can still work with it, but the official
05:01
location is now there. We added some translation workflow stuff. We made the Java, like everything that it was a user visible string and the Java sources is now in PO files. We put this on TDF web blade so the UI can be translated.
05:22
We moved to documentation from a markdown Git-based workflow into media wiki, which is also much nicer than to translate for the community for this markdown stuff, essentially needed some kind of developer set up to do that and media wiki has really nice, excellent
05:44
translation support. Meanwhile, fixed a number of bugs, made sure that it actually works, not just with all the LibreOffice versions, but with most recent ones. We did some build fixes on the, there was some bits of the internal build system kind
06:02
of leaking through that still. So we made it actually build out of the box. So you clone that, you build that with Maven and it actually works. Some tweaks with namespaces so we can then upload artifacts to the LibreOffice Maven repository. And it doesn't have the old names anymore that were kind of sometimes internal to city
06:26
of Munich. We set up Jenkins drops so we can actually like not only run tests on pull requests, we can also run releases there on the CI and tons of smaller things like started
06:41
to do a comment translation in the code. Which we named variable names, got the build houses and other auxiliary documentation translated to English. It's not done, in particular the code stuff, that's not done. Part of that was already English, but there's quite a bit left.
07:04
Which gets us to next steps and the possible future. So the handbook is not fully, kind of super clean, the original handbook was German so we translated it to English and then we wanted to reuse the old German translation
07:24
because why do that work again? And with the bicke markups, so that's kind of busy work there and we're kind of still, mostly gone, we're still busy with that. I guess help appreciate it, but no, not, okay, so we get it done in the very near future.
07:44
Some renamings for the Java packages, that kind of blocks each other with possibly renaming the project, we don't want to rename it twice. Have some new landing page done, some more bug fixing, there's still some sidebar, not
08:03
some nice things and some thing that was one crash somewhere and then we want to reasonably soonish have some release there so that people actually can use that. If anybody's interested, we can have some snapshot possibly published, then again it should be relatively easy to build and if it's not, let's fix it.
08:25
So actually maybe not publishing snapshots far and wide is a feature, not a bug, so we can fix the build system. Yeah, renaming. So we kind of brainstormed a little bit in the background.
08:41
Those are three suggestions that we will probably mull over and think about. So this LibreOffice template tool or template engine is probably what it actually is. So people would understand what it does when they see that somewhere.
09:02
This forms some templates, it's a bit more ambitious because it does much more than just templates, but hey, naming is hard. So yeah, and if you're curious, come and help. So there's some easy hack there for common translation, that's the easiest thing to get your feet wet.
09:21
There are certainly more like UI and document translation, that would be great. And of course, if you have cool feature ideas, go get it implemented. So there's one thing that is, there's an old branch about QR code support, so you can kind of generate QR code and insert it like in this process of programmed software
09:43
controlled template generation, that would be nice to get in for other things that people want in templates these days. Okay, and that's it. Thanks so much.