     debug 'comment_by_ids     ', @XXX_comment_by_ids
     debug 'raw_content_by_ids ', @XXX_raw_content_by_ids
     debug 'command_by_ids     ', @XXX_command_by_ids
+    debug 'registry           ', @XXX_registry
     tokens      = md_parser.parse md_source, environment
     # @set_meta R, 'environment', environment
     confluence.write token for token in tokens

@XXX_command_by_ids        = new Map()
@XXX_id_by_commands        = new Map()
### TAINT new: ###
@XXX_registry = new Map [
  [ 'action',       new Map(), ]
  [ 'comment',      new Map(), ]
  [ 'do',           new Map(), ]
  [ 'raw',          new Map(), ]
  ]

#-----------------------------------------------------------------------------------------------------------
@XXX_html_comment_pattern = ///

  return R

#-----------------------------------------------------------------------------------------------------------
@XXX_register_content = ( kind, raw, parsed = null ) ->
  id = @XXX_registry.length
  @XXX_registry.push { id, kind, raw, parsed, }
  return id

#-----------------------------------------------------------------------------------------------------------
@$XXX_expand_html_comments = ( text ) ->
  ### TAINT code duplication ###
  return $ ( event, send ) =>
    #.......................................................................................................
    ### !!! ###
    if false and @.select event, '.', [ 'text', 'code', ]
      is_comment                  = yes
      [ type, name, text, meta, ] = event
      for stretch in text.split @XXX_html_comment_id_pattern
