Before start growing the HaTeX project with more features and modules, I decided to add a new feature: the HATEX pragma.
What problem this solves?
This pragma will save of modifying HaTeX-meta each time a new module is added or deleted from HaTeX. Until today, HaTeX-meta had a fix list of modules that it will process to generate the analogous .Monad modules, and each time a module is added or deleted from HaTeX, you needed to add (or delete) its module name in the HaTeX-meta code. I saw this too short-sighted, so I made a change.
How it is solved?
The solution was to order to HaTeX-meta to search HaTeX modules which have the MakeMonadic option in a HATEX pragma. This pragma looks like this:
{-# OPTIONS_HATEX MakeMonadic #-}
HaTeX-meta follows the next steps:
- Parse the HaTeX.cabal package description.
- Look for the exposed modules.
- Parse all modules and filter those with the MakeMonadic option enabled.
- Process them to create the .Monad modules, skipping the MakeMonadic option in the output (so in the next run of HaTeX-meta it will not process a .Monad module).
Conclusion
I hope this will make easier future changes in HaTeX and avoid updates of HaTeX-meta with changes not directly related with it. Also, I think this will be handy to developers interested in add a new module to HaTeX to, for example, implement some new LaTeX package.
Thanks for read,
Daniel Díaz.
No comments:
Post a Comment