diff --git a/src/applications/files/diff/PhabricatorDocumentEngineBlocks.php b/src/applications/files/diff/PhabricatorDocumentEngineBlocks.php --- a/src/applications/files/diff/PhabricatorDocumentEngineBlocks.php +++ b/src/applications/files/diff/PhabricatorDocumentEngineBlocks.php @@ -61,6 +61,7 @@ $lists = $this->lists; if (count($lists) != 2) { + $this->layoutAvailableRowCount = 0; return array(); } diff --git a/src/applications/files/document/PhabricatorJupyterDocumentEngine.php b/src/applications/files/document/PhabricatorJupyterDocumentEngine.php --- a/src/applications/files/document/PhabricatorJupyterDocumentEngine.php +++ b/src/applications/files/document/PhabricatorJupyterDocumentEngine.php @@ -63,6 +63,7 @@ $blocks->addBlockList($uref, $u_blocks); $blocks->addBlockList($vref, $v_blocks); } catch (Exception $ex) { + phlog($ex); $blocks->addMessage($ex->getMessage()); } @@ -85,10 +86,14 @@ switch ($utype) { case 'markdown': $usource = idx($ucell, 'source'); - $usource = implode('', $usource); + if (is_array($usource)) { + $usource = implode('', $usource); + } $vsource = idx($vcell, 'source'); - $vsource = implode('', $vsource); + if (is_array($vsource)) { + $vsource = implode('', $vsource); + } $diff = id(new PhutilProseDifferenceEngine()) ->getDiff($usource, $vsource); @@ -254,7 +259,10 @@ $hash_input = $cell['raw']; break; case 'markdown': - $hash_input = implode('', $cell['source']); + $hash_input = $cell['source']; + if (is_array($hash_input)) { + $hash_input = implode('', $cell['source']); + } break; default: $hash_input = serialize($cell); @@ -367,10 +375,11 @@ $results = array(); foreach ($cells as $cell) { $cell_type = idx($cell, 'cell_type'); - if ($cell_type === 'markdown') { $source = $cell['source']; - $source = implode('', $source); + if (is_array($source)) { + $source = implode('', $source); + } // Attempt to split contiguous blocks of markdown into smaller // pieces.