code: def _handle_table_cell(self, markup, tag, line_context):
          
          old_context = self._context
          padding, style = "", None
          self._head += len(markup)
          reset = self._head
          if not self._can_recurse():
              self._emit_text(markup)
              self._head -= 1
              return
  
          cell = self._parse(contexts.TABLE_OPEN | contexts.TABLE_CELL_OPEN |
                             line_context | contexts.TABLE_CELL_STYLE)
          cell_context = self._context
          self._context = old_context
          reset_for_style = cell_context & contexts.TABLE_CELL_STYLE
          if reset_for_style:
              self._head = reset
              self._push(contexts.TABLE_OPEN | contexts.TABLE_CELL_OPEN |
                         line_context)
              padding = self._handle_table_style("|")
              style = self._pop()
              # Don't parse the style separator:
              self._head += 1
              cell = self._parse(contexts.TABLE_OPEN | contexts.TABLE_CELL_OPEN |
                                 line_context)
              cell_context = self._context
              self._context = old_context
  
          close_open_markup = "|" if reset_for_style else None
          self._emit_table_tag(markup, tag, style, padding, close_open_markup,
                               cell, "")
          # Keep header/cell line contexts:
          self._context |= cell_context & (contexts.TABLE_TH_LINE |
                                           contexts.TABLE_TD_LINE)
          # Offset displacement done by parse():
          self._head -= 1
docs: Parse as normal syntax unless we hit a style marker, then parse
          style as HTML attributes and the remainder as normal syntax.