ChangeLog
=========


2021-12-31: quickly-0.4.0

- added relative module, with abs2rel and rel2abs functions
- possible to direct generators in Node and Range to not descend in a node
- added node.Range class, to denote a range within a Node tree
- added end parameter to Element.find_descendant(s)
- added Element.find_descendant_right() and -left()
- added dom.edit module to edit a parce document via the DOM node tree
- added pitch.PitchProcessor.find_language and follow_language()
- some methods/functions renamed and API cleanups
- documentation improvements


2021-12-21: quickly-0.3.0

- requires parce-0.28.0
- DOM elegantly handles untransformed parce stuff such as CSS/JS in Html
- Note and positioned Rest now have attrs for octave, accidental and oct_check
- pitch: added Pitch and PitchProcessor to read/write pitch names in all
  languages, with style preferences for writing pitch names
- added lily.Spanner.find_parallel() to find the other end of a spanner
- added transpose module, transpose music in a node or (part of) parce.Document


2021-12-09: quickly-0.2.0

- requires parce-0.27.0
- added registry module to find and guess languages (like parce)
- added LaTeX language and transform (for lilypond-book)
- added element constructor helper for dom.htm module
- added Element.py_dump() to create tree structures in Python code
- simplified dom.read module and API, now that parce's Transform finding
  algorithm is configurable
- small bugfixes, improvements and documentation updates


2021-11-25: quickly-0.1.0

- requires parce-0.26.0
- added html language and transform (for lilypond-book)
- add dom.htm element types (for lilypond-book HTML documents)
- added indent module and support for creating properly indented output
- documentation improvements


2021-11-11: quickly-0.0.9

- requires parce-0.25.0
- Add support for some new LilyPond-2.23 commands
- fixed case where a symbol was interpreted as a pitch eg: \tweak color red do
- fixed some cases where incorrect input was not handled neatly
- documentation improvements


2021-08-08: quickly-0.0.8

- requires parce-0.24.0
- fixed instance dict in Element nodes, added empty __slots__to mixins
- added Node.filter() and Node.instances_of()
- added a logo (two eighth rests, looking like "ly")
- new website at https://quick-ly.info/
- small optimizations and documentation improvements


2021-03-08: quickly-0.0.7

- requires parce-0.23.0
- added quickly.numbering module
- added dom.read module to construct elements/documents from text
- removed some temp methods from dom.util
- Element.copy_with_origin now works properly everywhere
- Node.equals() now works for TextElement, by implementing body_equals()
- improvements to TextElement, optional head value checking
- renamed lily.PropToggle to Toggle
- fixed escape warnings in source files
- added duration.shift_duration()
- moved scm.Int to scm.Number in some forgotten places


2021-02-16: quickly-0.0.6

- required parce version 0.22.0
- lily.Header, lily.Paper and lily.Layout now have easy to use properties to
  set variables like title, composer, etc.
- lily.Document now has version attribute to read/set LilyPond version
- added markup construction helper in quickly.dom.markup
- Scheme transform handles all Scheme number features, e.g. #xb/f (a fraction
  in hex) and even complex numbers


2021-02-11: quickly-0.0.5

- Milestone: quickly correctly parses my Mouvement piece!
  https://github.com/wbsoft/lilymusic/blob/master/berendsen/mouvement.ly
- fixed \rest before duration
- fixed dot missing in scheme pair
- add space after markup commands
- fixed dom.element.build_tree, it lost a node after two \repeat nodes
- parce removed identifier context; we only create Identifier with Assignment
- smartly support \tag and \tweak without direction prepended
- fixed documentation build errors.


2021-02-07: quickly-0.0.4

- still pre-alpha but work in progress
- quickly.dom.lily now has much more elements
- correctly parse lists, property paths etc
- added chordmode and chord modifiers, figuremode
- quickly.lang.lilypond now transforms almost a full document
- commands are combined with their arguments, based on signatures
- work started on documentation with a quickly.dom explanation


2021-01-31: quickly-0.0.3

- still pre-alpha
- much more robust already
- dom.element now has the four basic Element node types
- dom.element can be constructed manually or via LilyPondTransform
- writing back to document works
- scheme expressions are fully read/built
- markup expressions are fully read/built
- complex articulations, tweak, tremolo etc. work well
- toplevel and in block assignment is wrapped in Assignment node
- lyricmode and drummode work
- todo: music functions
- some test files were added. todo: more test files
- module documentation in good shape. todo: user documentation

