docs/test2rst.py
changeset 2951 2ddc63d13af8
parent 2950 1b4c92621e23
child 2958 1cb715257130
equal deleted inserted replaced
2950:1b4c92621e23 2951:2ddc63d13af8
    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
       
    21 
    20 
    22     for line in orig.splitlines():
    21     for line in orig.splitlines():
    23 
    22 
    24         # Emtpy lines doesn't change output
    23         # Emtpy lines doesn't change output
    25         if not line:
    24         if not line:
    26             newlines.append(line)
    25             newlines.append(line)
    27             code_block_mode = False
       
    28             sphinx_directive_mode = False
       
    29             continue
    26             continue
    30 
    27 
    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
       
    46         codeline = line.startswith('  ')
    28         codeline = line.startswith('  ')
    47         if codeline and not sphinx_directive_mode:
    29         if codeline:
    48             if code_block_mode is False:
    30             if code_block_mode is False:
    49                 newlines.extend(['::', ''])
    31                 newlines.extend(['::', ''])
    50 
    32 
    51             code_block_mode = True
    33             code_block_mode = True
       
    34         else:
       
    35             code_block_mode = False
    52 
    36 
    53         newlines.append(line)
    37         newlines.append(line)
    54 
    38 
    55     return "\n".join(newlines)
    39     return "\n".join(newlines)
    56 
    40