diff --git a/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php b/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php
index 223f15135f..129f28b347 100644
--- a/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php
+++ b/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php
@@ -1,193 +1,204 @@
 <?php
 
 final class PhabricatorDashboardPanelEditEngine
   extends PhabricatorEditEngine {
 
   const ENGINECONST = 'dashboard.panel';
 
   private $panelType;
   private $contextObject;
   private $columnKey;
 
   public function setPanelType($panel_type) {
     $this->panelType = $panel_type;
     return $this;
   }
 
   public function getPanelType() {
     return $this->panelType;
   }
 
   public function setContextObject($context) {
     $this->contextObject = $context;
     return $this;
   }
 
   public function getContextObject() {
     return $this->contextObject;
   }
 
   public function setColumnKey($column_key) {
     $this->columnKey = $column_key;
     return $this;
   }
 
   public function getColumnKey() {
     return $this->columnKey;
   }
 
   public function isEngineConfigurable() {
     return false;
   }
 
   public function getEngineName() {
     return pht('Dashboard Panels');
   }
 
   public function getSummaryHeader() {
     return pht('Edit Dashboard Panels');
   }
 
   protected function supportsSearch() {
     return true;
   }
 
   public function getSummaryText() {
     return pht('This engine is used to modify dashboard panels.');
   }
 
   public function getEngineApplicationClass() {
     return 'PhabricatorDashboardApplication';
   }
 
   protected function newEditableObject() {
     $viewer = $this->getViewer();
     $panel = PhabricatorDashboardPanel::initializeNewPanel($viewer);
 
     if ($this->panelType) {
       $panel->setPanelType($this->panelType);
     }
 
     return $panel;
   }
 
+  protected function newEditableObjectForDocumentation() {
+    $panel = parent::newEditableObjectForDocumentation();
+
+    $text_type = id(new PhabricatorDashboardTextPanelType())
+      ->getPanelTypeKey();
+
+    $panel->setPanelType($text_type);
+
+    return $panel;
+  }
+
   protected function newObjectQuery() {
     return new PhabricatorDashboardPanelQuery();
   }
 
   protected function getObjectCreateTitleText($object) {
     return pht('Create Dashboard Panel');
   }
 
   protected function getObjectCreateButtonText($object) {
     return pht('Create Panel');
   }
 
   protected function getObjectCreateCancelURI($object) {
     $context = $this->getContextObject();
     if ($context) {
       return $context->getURI();
     }
 
     return parent::getObjectCreateCancelURI($object);
   }
 
   public function getEffectiveObjectEditDoneURI($object) {
     $context = $this->getContextObject();
     if ($context) {
       return $context->getURI();
     }
 
     return parent::getEffectiveObjectEditDoneURI($object);
   }
 
   protected function getObjectEditCancelURI($object) {
     $context = $this->getContextObject();
     if ($context) {
       return $context->getURI();
     }
 
     return parent::getObjectEditCancelURI($object);
   }
 
   protected function getObjectEditTitleText($object) {
     return pht('Edit Panel: %s', $object->getName());
   }
 
   protected function getObjectEditShortText($object) {
     return pht('Edit Panel');
   }
 
   protected function getObjectCreateShortText() {
     return pht('Edit Panel');
   }
 
   protected function getObjectName() {
     return pht('Dashboard Panel');
   }
 
   protected function getObjectViewURI($object) {
     return $object->getURI();
   }
 
   protected function didApplyTransactions($object, array $xactions) {
     $context = $this->getContextObject();
 
     if ($context instanceof PhabricatorDashboard) {
       // Only add the panel to the dashboard when we're creating a new panel,
       // not if we're editing an existing panel.
       if (!$this->getIsCreate()) {
         return;
       }
 
       $viewer = $this->getViewer();
       $controller = $this->getController();
       $request = $controller->getRequest();
 
       $dashboard = $context;
 
       $xactions = array();
 
       $ref_list = clone $dashboard->getPanelRefList();
 
       $ref_list->newPanelRef($object, $this->getColumnKey());
       $new_panels = $ref_list->toDictionary();
 
       $xactions[] = $dashboard->getApplicationTransactionTemplate()
         ->setTransactionType(
           PhabricatorDashboardPanelsTransaction::TRANSACTIONTYPE)
         ->setNewValue($new_panels);
 
       $editor = $dashboard->getApplicationTransactionEditor()
         ->setActor($viewer)
         ->setContentSourceFromRequest($request)
         ->setContinueOnNoEffect(true)
         ->setContinueOnMissingFields(true);
 
       $editor->applyTransactions($dashboard, $xactions);
     }
   }
 
   protected function buildCustomEditFields($object) {
     $fields = array(
       id(new PhabricatorTextEditField())
         ->setKey('name')
         ->setLabel(pht('Name'))
         ->setDescription(pht('Name of the panel.'))
         ->setConduitDescription(pht('Rename the panel.'))
         ->setConduitTypeDescription(pht('New panel name.'))
         ->setTransactionType(
           PhabricatorDashboardPanelNameTransaction::TRANSACTIONTYPE)
         ->setIsRequired(true)
         ->setValue($object->getName()),
     );
 
     $panel_fields = $object->getEditEngineFields();
     foreach ($panel_fields as $panel_field) {
       $fields[] = $panel_field;
     }
 
     return $fields;
   }
 
 }