AppyPrinciplesGetting started
Appy 1.0.21 🐍 2026/04/10 1.0.20 - 2025/10/30

Appy 1.0.20 has been released. Here is the changelog.

POD

  • Meta-if statements · Fix (presence of special XML chars in expressions and statements to reify).
  • Statement do .. from pod: pageBreakAfter may now hold the name of a specific page style.
  • ImageImporter · Fix. In some cases, ImageMagick could not convert images due to permission denial.
  • BulletedProperties and NumberedProperties · Fixes in default values for some attributes.
  • Improvements and fixes to the xhtml2odt pod function
    • Allow to manage XHTML tables whose rows do not all contain the same number of cells.
    • Determining table column widths: fixes.
    • Ignore useless CSS classes, in order to avoid a useful class to be ignored because not taken into account due to the presence of a useless one.
    • Allow to specify an alternate « pt to cm » ratio, in order to manage rendering problems within tables.
    • The table caption tag is now supported.
    • Parsing content of list-style-type attributes: improved.
    • Be robust when a dirty or empty colspan value is passed.
    • Support HTML headings from h1 to h10 (previously, h1 to h6 were supported).
  • Evaluation of pod expressions: optimization.

UTILS

  • string.py · Added method Normalize.odsTab that produces string ready to be used as names for OpenDocument Spreadsheet tabs.
  • json.py · A JSON encoder has been added.
  • mail.py · Send mail over SSH: use class smtplib.SMTP_SSL.
  • mail.py · Method sendIf · Improved performance.
  • xml > cleaner · Allow to avoid stripping a certain type of whitespace chars, like non-breaking spaces.