Revision history for MsOffice-Word-Surgeon

2.08    28.098.2024
  - unification of licensing terms

2.07    28.06.2024
  - additional test for replace() with xml_before
  - unlink_fields : better algorithm for ASK fields

2.06    03.06.2024
  - refactoring for fields and bookmark boundaries
  - new methods replace_fields() and reveal_fields()
  - internals : Carp::Clan replaced by Carp::Object

2.05    02.03.2024
  - fix missing XML decode/encode operations on &<>

2.04    13.02.2024
  - new method reveal_bookmarks()

2.03    10.05.2023
  - fix bug introduced in 2.02: ->document->contents($new_content) must erase the 'was_cleaned_up' flag

2.02     08.05.2023
  - ->replace(..., keep_xml_as_is => ) is deprecated; use (cleanup_XML => ...) instead
  - new option 'no_caps' for automatic upcase of runs with the 'caps' property

2.01     25.01.2023
  - index images by either title or description field in alternative text
     (because recent versions of MsWord no longer have a 'title' field)
  - avoid making assumptions about attribute order in XML nodes

2.0      01.05.2022
  - major refactoring
  - support for multiple package parts (main document, headers and footers)
  - support for replacing or adding an image
  - renamed "change" ==> "revision"

1.08     21.03.2022
  - additional noise reduction : soft hyphens

1.07     27.10.2021
  - new method suppress_bookmarks()
  - fix bug : runs containing '0' should not be treated as empty
  - unlink_fields() must suppress the content of ASK fields
  - to_uppercase() must not change HTML entities like &amp;

1.06     16.01.2021
  - fix bug in ->plain_text() : translation of soft line breaks into newlines did not work

1.05     13.12.2020
  - new behaviour for the replace() method : by default it automatically cleans up the XML and automatically
    overwrites $surgeon->contents
  - additional noise reduction : remove the _goBack bookmark added automatically by MsWord

1.04     10.11.2020
  - the synopsis was incorrect in its example of the replace() method

1.03     13.10.2020
  - better parameter checking for new(); cleaner handling of revision ids; readability of source code improved  

1.02     12.10.2020
  - fix bug in ->replace(): tabs or other contents outside of <w:t> was lost during replacement

1.01     03.07.2020     
  - fix bug in "unlink_fields" : field boundaries ("begin" / "separate" / "end" ) may contain child nodes

1.0      24.11.2019
  - First public release