Как написать блок кода, используя phpDocumentor, учебники/расширенную документацию?

Как писать блоки кода с помощью phpDocumentor при написании учебников/расширенной документации?

Я пробовал <programlisting>, он может сгенерировать тэг <code>, но он не анализирует его содержимое.

<refentry id="{@id}">  

 <refnamediv>  
  <refname>Guide for MyApp</refname>  
  <refpurpose>To demonstrate ...</refpurpose>  
 </refnamediv>  

 <refsynopsisdiv>  
  <author>  
   My Name
   <authorblurb>  
    {@link [email protected] My Name}  
   </authorblurb>  
  </author>  
 </refsynopsisdiv>  

 {@toc}  
 <refsect1 id="{@id intro}">  
  <title>User Guide for MyApp</title>  

  <para>  
   Some Description
  </para>

      <programlisting>

            $some = 'code';

      </programlisting>

 </refsect1>
</refentry>

Ответы

Ответ 1

Это действительно очень просто, как только вы знаете, как это сделать. Вам просто нужно установить атрибут role в элементе programlisting.

<programlisting role="php">
  $some = 'code';
</programlisting>

Я не мог найти это документально нигде, кроме краткого упоминания в примечаниях к выпуску, но, глядя на код, кажется, что для поддержки четырех ролей:

  • php - добавляет подсветку синтаксиса PHP к содержимому и включает номер строки в каждой строке.
  • учебник - добавляет синтаксис синтаксиса HTML в контент и включает номер строки в каждой строке.
  • xml - добавляет теги pre к содержимому, но в противном случае нет синтаксиса hightlighting и нет номеров строк.
  • html - обрабатывает содержимое как необработанный HTML, поэтому вы можете использовать любую понравившуюся вам разметку.

В любое время, когда вы хотите использовать угловые скобки, вам нужно будет избежать этих символов или обернуть содержимое в разделе CDATA. Это даже применяется, если вы хотите использовать необработанный HTML. Если нет, синтаксический анализатор попытается интерпретировать содержимое как XML.

Например, образец необработанного HTML будет выглядеть примерно так:

<programlisting role="html">
  <![CDATA[
    <b>This sentence will be bold.</b>
  ]]>
</programlisting>

Также обратите внимание, что все это относится к исходной версии phpDocumentor. Насколько мне известно, новая версия (phpDocumentor 2), по-видимому, не поддерживает учебники/расширенную документацию.

Ответ 2

Я проверил его, и я думаю, вы можете использовать инструмент документации javascriptMVC. я thik Инструмент документации.
и демо-версия здесь. и я предлагаю вам попробовать это. (-:

вот вывод документа javascriptMVC, который/я думаю, что вы хотите. или, по крайней мере, я надеюсь. (-: enter image description here



и о phpDocumentor. Как я уже сказал, мне нужны некоторые объяснения, чтобы понять, что вы имеете в виду, но на данный момент, пожалуйста, проверьте их. link1. link2. (если вам нужно то, что вам нужно).

 /** @type int This is a counter. */
 $int = 0;

 // there should be no docblock here
 $int++;

Или:

 /**
  * This class acts as an example on where to position a DocBlock.
  */
 class Foo
 {
     /** @type string|null Should contain a description if available */
     protected $description = null;

     /**
      * This method sets a description.
      *
      * @param string $description A text with a maximum of 80 characters.
      *
      * @return void
      */
     public function setDescription($description)
     {
         // there should be no docblock here
         $this->description = $description;
     }
 }

Другим примером является документирование переменной в foreach явно; многие IDE используют эту информацию, чтобы помочь вам с автозавершением:

 /** @type \Sqlite3 $sqlite */
 foreach($connections as $sqlite) {
     // there should be no docblock here
     $sqlite->open('/my/database/path');
     <...>
 }

Ответ 3

Пользовательский инструмент zend studio может автоматически генерировать выбранную документацию проекта