This program parses latex jinja templates and querries the user how to fill in undeclared variables. A user can predifined settings in the variables folder what questions will be asked. For example if a file ‘opening.select’ is encountered with the lines:
Dear Mr. Ms.
It will show these as options when encountering ‘<? opening ?>’ in the latex template, and use the one whichever the user selects. Other types that are available would be option, for being able to select multiple lines and constraint, which just adds a sanaty check.
Then the killer feature which is still being generalized is the abilty to make offering tables. Where the inforamtion is predifined in a file structure which the program presents to the user as a menu in which he can select whichever items he wants to add to the offering.
This program is useful for situation in which you want to be able to create lots of almost similar documents. Currently the implementation part is in dutch and has some hard dependencies but this should be relatively easily modify able.
Currently where this used for is to create quickly party offerings, program can calculate the prices too.
install texlive with all required packages. Make sure you use python 3. on gentoo:
emerge -a app-text/texlive dev-python/jinja eselect python list eselect python set (any python 3)
install python 3 trough the classical google method. Install miktex. Now you can just click `program.py`
To install jinja you need to open cmd and then:
py -m pip -u jinja2
Install python and mactex. Install jinja with pip. then execute trough:
Android is currently unstable due to a locale bug in qpython. although the program can go trough the initial phases. Android also uses the program in reduced form where the pdf file isn’t generated because the sytem module of python doesn’t work.
install qpython3, and install verblatex to create the pdf. Once the locale bug is fixed in android everything should work.
Things I really want to finish in order of priority:
- Issue *18 and *19 use jinjia more and remove hardcoded dependencies, these prevent other people from using this easily.
- Configuration langauge update *17. JSON is too strict which is annoying to the current user.
- Localization *4
- Move out the hard dependencies to variable folders (KINDEREN in the options menu)
- Move the special variables (such as startplanning and activiteitdetails) into \*.py files with the same name and let them be called as functions (in which probably the symboltable is passed)
- Move all hardset configuration stuff in activity manager into its own folder and let the menu be generated by a file structure.
- Some crazy ideas I had was add options for using standard output as output instead of a file and also be able to load existing symboltables to speed up certain kind of configs. Maybe we could add export/import mechanisms where the symbol table is exported to JSON.
- Add a template system where multiple offer.tex files can be managed
- The configurable boolean in activity is bad, probably should make a subtype of that.
- Add support for \*.py variables, when these variables are encountered this code will be executed (or a funtion in those modules will be called).
- configurable out directory.
I’ll probably keep developing this application for as long there is demand for it (A local business owner asked me to do this, and since software isn’t his focus I decided to just opensource it, maybe somebody can get some use of it besides him)
Note that the offer.tex file itself isn’t licensed under GPL, its just a reference input file. Having to share changes to it would be rather annoying because this is different for everyone else.
The variable folder is configuration to, so also not licensed under GPL. (although any \*.py file that may be there in the future will be under GPL)
This is also the reason why the hard dependencies should be moved out sooner rather than later, because making changes to them would require sharing, but they’re basically configuration. I’m not gonna do it now though because I have no more time left.