docs/test2rst.py
changeset 2950 1b4c92621e23
parent 2825 7608f1e04205
child 2951 2ddc63d13af8
equal deleted inserted replaced
2949:9345b2eeeef3 2950:1b4c92621e23
    15 
    15 
    16 def rstify(orig, name):
    16 def rstify(orig, name):
    17     newlines = []
    17     newlines = []
    18 
    18 
    19     code_block_mode = False
    19     code_block_mode = False
       
    20     sphinx_directive_mode = False
    20 
    21 
    21     for line in orig.splitlines():
    22     for line in orig.splitlines():
    22 
    23 
    23         # Emtpy lines doesn't change output
    24         # Emtpy lines doesn't change output
    24         if not line:
    25         if not line:
    25             newlines.append(line)
    26             newlines.append(line)
       
    27             code_block_mode = False
       
    28             sphinx_directive_mode = False
    26             continue
    29             continue
    27 
    30 
       
    31         # Ignore line
       
    32         if line.endswith('#ignore'):
       
    33             continue
       
    34 
       
    35         # Sphinx directives mode
       
    36         if line.startswith('  .. '):
       
    37 
       
    38             # Insert a empty line to makes sphinx happy
       
    39             newlines.append("")
       
    40 
       
    41             # And unindent the directive
       
    42             line = line[2:]
       
    43             sphinx_directive_mode = True
       
    44 
       
    45         # Code mode
    28         codeline = line.startswith('  ')
    46         codeline = line.startswith('  ')
    29         if codeline:
    47         if codeline and not sphinx_directive_mode:
    30             if code_block_mode is False:
    48             if code_block_mode is False:
    31                 newlines.extend(['::', ''])
    49                 newlines.extend(['::', ''])
    32 
    50 
    33             code_block_mode = True
    51             code_block_mode = True
    34         else:
       
    35             code_block_mode = False
       
    36 
    52 
    37         newlines.append(line)
    53         newlines.append(line)
    38 
    54 
    39     return "\n".join(newlines)
    55     return "\n".join(newlines)
    40 
    56