Changeset b3ebaf750cf3d8cffbd719d59459408dafc3a49c


Ignore:
Timestamp:
15.05.2013 22:01:35 (6 years ago)
Author:
Stanislaw Klekot <dozzie@…>
Branches:
b66903eafbcb1d49112014abc82c8bf683413db0
Children:
3087411778b691e12e6f5a3c410dc8c07e06bbf5
Parents:
9afa277a790ecf956a0d9ad57f8dd932e8b65b80
git-author:
Stanislaw Klekot <dozzie@…> (15.05.2013 21:57:06)
git-committer:
Stanislaw Klekot <dozzie@…> (15.05.2013 22:01:35)
Message:

Added merging consequent strings when possible.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dashwiki/markup/parser.py

    re0be4e rb3ebaf  
    3333    name  = tree.keys()[0] 
    3434    value = tree.values()[0] 
     35 
     36    #----------------------------------------------------------------- 
     37    # clean up node depending on its type {{{ 
    3538 
    3639    # whitespaces 
     
    7780    #   - macro_call, macro_arg 
    7881 
    79     # descend 
     82    # descend recursively 
    8083    if type(value) == dict: 
    8184      tree[name] = Parser.cleanup(value) 
    8285    elif type(value) == list: 
    83       tree[name] = [Parser.cleanup(v) for v in value] 
     86      result = [] 
     87      # merge consequent strings {{{ 
     88      recent_text = "" 
     89      for e in value: 
     90        e = Parser.cleanup(e) 
     91 
     92        if type(e) == list: 
     93          raise Exception("why is this a list? %s" % (e)) 
     94 
     95        if type(e) == dict: 
     96          if recent_text != "": 
     97            result.append(recent_text) 
     98            recent_text = "" 
     99          result.append(e) 
     100        else: 
     101          recent_text += e 
     102 
     103      if recent_text != "": 
     104        result.append(recent_text) 
     105 
     106      # }}} 
     107      tree[name] = result 
     108 
     109    # }}} 
    84110    return tree 
    85111 
     
    111137 
    112138#----------------------------------------------------------------------------- 
    113 # vim:ft=python 
     139# vim:ft=python:foldmethod=marker 
Note: See TracChangeset for help on using the changeset viewer.