Changeset 75131 in spip-zone


Ignore:
Timestamp:
Aug 30, 2013, 6:06:05 PM (8 years ago)
Author:
marcimat@…
Message:

Amélioration de @see et @uses : meilleur calcul des références qui manquent.
Création des automatique des tags @used-by sur la référence lorsque @uses est utilisé.

Location:
_galaxie_/code.spip.net/autodoc/trunk
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • _galaxie_/code.spip.net/autodoc/trunk/src/autodoc/Plugin/Core/Compiler/Pass/VcsLinkBuilder.php

    r74764 r75131  
    5757    public function execute(ProjectDescriptor $project)
    5858    {
    59         # $is_spip = $this->is_spip($project);
     59        # $is_spip = SpipShare::is_spip($project);
    6060
    6161        // retrouver la racine des sources locales…
     
    154154
    155155        // ajouter le tag aux autres 'source' s'il y en a (aucazou)
    156         $sources = $element->getTags()->get('source');
    157         if (!$sources) {
    158             $sources = new Collection();
    159         }
     156        $sources = $element->getTags()->get('source', new Collection());
    160157        $sources->add($sourceTag);
    161158        $element->getTags()->set('source', $sources);
    162     }
    163 
    164 
    165     /**
    166      * Est-ce une arborescence du logiciel SPIP complet ?
    167      *
    168      * @param ProjectDescriptor $project
    169      * @return bool
    170     **/
    171     private function is_spip(ProjectDescriptor $project) {
    172         /**
    173          * @var bool|null $is_spip
    174         **/
    175         static $is_spip = null;
    176 
    177         if (is_null($is_spip)) {
    178             $fqsen = "./ecrire/inc_version.php";
    179             $is_spip = (bool) $project->getIndexes()->get('elements')->get($fqsen);
    180         }
    181 
    182         return $is_spip;
    183159    }
    184160
  • _galaxie_/code.spip.net/autodoc/trunk/src/autodoc/Plugin/Core/ServiceProvider.php

    r75121 r75131  
    1717use autodoc\Plugin\Core\Compiler\Pass\SpipTagsCollector;
    1818use autodoc\Plugin\Core\Compiler\Pass\ApisCollector;
    19 use autodoc\Plugin\Core\Compiler\Pass\VarTagImprovement;
     19use autodoc\Plugin\Core\Compiler\Pass\UsedByTagBuilder;
    2020use autodoc\Plugin\Core\Compiler\Pass\Statistics;
    2121
     
    6161        // 3 Compiler des informations supplémentaires, tel que l'arborescence des dossiers
    6262        $app['compiler']->insert(new DirectoryTreeBuilder(), DirectoryTreeBuilder::COMPILER_PRIORITY);
     63        $app['compiler']->insert(new UsedByTagBuilder(),     UsedByTagBuilder::COMPILER_PRIORITY);
    6364        $app['compiler']->insert(new ErrorsCollector(),      ErrorsCollector::COMPILER_PRIORITY);
    6465        $app['compiler']->insert(new MarkersCollector(),     MarkersCollector::COMPILER_PRIORITY);
  • _galaxie_/code.spip.net/autodoc/trunk/src/autodoc/Plugin/Core/TwigZora.php

    r74904 r75131  
    291291                    if ($path = $element->getPath()) {
    292292                        $path = explode('/', $path, 3);
    293                         $start = array_shift($chemin);
     293                        $start = array_shift($path);
    294294                        if (in_array($start , array('plugins-dist', 'plugins'))) {
    295295                            return array_shift($path);
  • _galaxie_/code.spip.net/autodoc/trunk/templates/zora/inclure/descriptions/functions.twig

    r74883 r75131  
    118118                                                {'name':'see',       'inclure': 'see',    'titre':'Voir également'},
    119119                                                {'name':'uses',      'inclure': 'see',    'titre':'Utilise'},
    120                                                 {'name':'used_by',   'inclure': 'see',    'titre':'Utilisé par'},
     120                                                {'name':'used-by',   'inclure': 'see',    'titre':'Utilisé par'},
    121121                                                {'name':'global',    'inclure': 'tags',   'titre':'Variables globales'},
    122122                                        ] %}
     
    138138                                                'param', 'return',
    139139                                                'api', 'example',
    140                                                 'link', 'see', 'uses', 'used_by',
     140                                                'link', 'see', 'uses', 'used-by',
    141141                                                'global',
    142142                                        ] %}
  • _galaxie_/code.spip.net/autodoc/trunk/templates/zora/inclure/descriptions/properties.twig

    r75121 r75131  
    5757                                                {'name':'see',       'inclure': 'see',    'titre':'Voir également'},
    5858                                                {'name':'uses',      'inclure': 'see',    'titre':'Utilise'},
    59                                                 {'name':'used_by',   'inclure': 'see',    'titre':'Utilisé par'},
     59                                                {'name':'used-by',   'inclure': 'see',    'titre':'Utilisé par'},
    6060                                        ] %}
    6161
     
    7575                                        {% for key,autre in property.tags if key not in [
    7676                                                'var', 'example',
    77                                                 'link', 'see', 'uses', 'used_by'
     77                                                'link', 'see', 'uses', 'used-by'
    7878                                        ] %}
    7979                                                {% include "inclure/descriptions/tags.twig"
  • _galaxie_/code.spip.net/autodoc/trunk/templates/zora/inclure/descriptions/see.twig

    r74885 r75131  
    1010
    1111                                <div class="description">
    12                                         {%- spaceless %}
    13                                                 {# sauver l'état de la référence (pour analyse) #}
    14                                                 {% set etat = 'Lien présent' %}
     12                                        {% if see.reference.name %}
     13                                                {% set name = see.reference.name %}
    1514
    16                                                 {# reference arrive en général bien calculé #}
    17                                                 {% set reference = see.reference %}
    18 
    19                                                 {# mais parfois pas, dans ce cas il indique le fqsen #}
    20                                                 {% if not reference.name %}
    21                                                         {% set etat = 'Référence directe' %}
    22                                                         {% set reference = project.indexes.elements[ see.reference ] %}
     15                                                {% if (name|slice(0,1) == '\\') and (name|split('\\')|length == 2) %}
     16                                                        {% set name = name|slice(1) %}
    2317                                                {% endif %}
    2418
    25                                                 {# parfois uses() calcule mal les références en oubliant le \ visiblement #}
    26                                                 {% if not reference.name %}
    27                                                         {% set etat = 'Référence avec \\ manquant' %}
    28                                                         {% set reference = project.indexes.elements[ '\\' ~ see.reference ] %}
    29                                                 {% endif %}
     19                                                <a href="{{ path( see.reference ) }}" data-etat="Lien présent">
     20                                                        {%- if see.description %}
     21                                                                {{- (name ~ ' : ' ~ see.description)|markdown|ptobr|raw }}
     22                                                        {%- else %}
     23                                                                {{- name|markdown|ptobr|raw }}
     24                                                        {%- endif -%}
     25                                                </a>
     26                                        {% else %}
     27                                                <span data-etat="Référence introuvable !">
     28                                                        {% set name = see.reference %}
    3029
    31                                                 {# il reste des cas non trouvés, tel que '\inc/forum_insert.php' #}
    32                                                 {% if not reference.name %}
    33                                                         {% set etat = 'Référence de fichier non calculée' %}
    34                                                         {% set reference = project.indexes.elements[ './' ~ (see.reference|slice(1)) ] %}
    35                                                 {% endif %}
     30                                                        {% if (name|slice(0,1) == '\\') and (name|split('\\')|length == 2) %}
     31                                                                {% set name = name|slice(1) %}
     32                                                        {% endif %}
    3633
    37                                                 {#
    38                                                         Par exemple \inc/truc.php dans un plugins-dist
    39                                                         (écrit depuis la racine du plugin, alors que là nous
    40                                                         pouvons être depuis la racine de SPIP).
    41 
    42                                                         TODO: Tenter de déterminer ces cas là.
    43 
    44                                                         Et sinon, je ne vois pas.
    45                                                 #}
    46                                                 {% if not reference.name %}
    47                                                         {% set etat = 'Référence introuvable !' %}
    48                                                 {% endif %}
    49                                         {% endspaceless -%}
    50 
    51                                         <a href="{{ path( reference ) }}" data-etat="{{ etat }}">
    52                                                 {%- if see.description %}
    53                                                         {{- (see.reference ~ ' : ' ~ see.description)|markdown|ptobr|raw }}
    54                                                 {%- else %}
    55                                                         {{- see.reference|markdown|ptobr|raw }}
    56                                                 {%- endif -%}
    57                                         </a>
     34                                                        {%- if see.description %}
     35                                                                {{- (name ~ ' : ' ~ see.description)|markdown|ptobr|raw }}
     36                                                        {%- else %}
     37                                                                {{- name|markdown|ptobr|raw }}
     38                                                        {%- endif -%}
     39                                                </span>
     40                                        {% endif %}
    5841
    5942                                </div>
Note: See TracChangeset for help on using the changeset viewer.