Browse Source

Pour Éric : gérer un paramètre d'appel supplémentaire sur le helper nommé --avec_boussole_spip qui ajuotera la boussole SPIP sur la documentation générée.

De même, alternativement, --topnav=URL ajoutera le js contenu dans l'url indiquée dans le header.

Exemple : `autodoc/bin/autodoc_helper from:file --avec_boussole_spip`
Génère la documentation des plugins de la zone, avec la boussole intégrée.
svn/root/trunk
marcimat@rezo.net 7 years ago
parent
commit
51545d0e7d
  1. 2
      src/autodoc/Helpers/Command/FromDirectory.php
  2. 2
      src/autodoc/Helpers/Command/FromFile.php
  3. 2
      src/autodoc/Helpers/Command/FromPlugin.php
  4. 3
      src/autodoc/Helpers/Command/FromSpip.php
  5. 2
      src/autodoc/Helpers/Command/FromSvn.php
  6. 2
      src/autodoc/Helpers/Command/FromZone.php
  7. 19
      src/autodoc/Helpers/Generator.php
  8. 6
      src/autodoc/Helpers/Template/index.html
  9. 2
      src/autodoc/Helpers/phpdoc_helper.xml
  10. 2
      src/autodoc/Plugin/Core/Compiler/Pass/GetTopNav.php

2
src/autodoc/Helpers/Command/FromDirectory.php

@ -27,6 +27,8 @@ class FromDirectory extends Command
->addArgument('directory', InputArgument::REQUIRED, "Chemin du répertoire. <comment>Exemple : '/home/user/www/spip/plugins/fabrique'</comment>")
->addOption('prefixe', 'p', InputOption::VALUE_OPTIONAL, 'Préfixe servant au stockage des données', 'default')
->addOption('sortie', 's', InputOption::VALUE_OPTIONAL, "Répertoire recevant le HTML généré. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output/{prefixe}'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS dont le contenu est inséré dans le head html. <comment>Exemple : 'http://boussole.spip.net/?page=spipnav.js&lang=fr'</comment>")
->addOption('avec_boussole_spip', null, InputOption::VALUE_NONE, "Intègre le JS de la boussole SPIP en entête topnav.")
;
}

2
src/autodoc/Helpers/Command/FromFile.php

@ -35,6 +35,8 @@ svn://zone.spip.org/spip-zone/_plugins_/champs_extras/core/trunk;cextras
")
->addArgument('file', InputArgument::OPTIONAL, "Chemin du fichier. Peut être une adresse SVN.", 'svn://zone.spip.org/spip-zone/autodoc.txt')
->addOption('sorties', 's', InputOption::VALUE_OPTIONAL, "Répertoire stockant toutes les documentations générées. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS dont le contenu est inséré dans le head html. <comment>Exemple : 'http://boussole.spip.net/?page=spipnav.js&lang=fr'</comment>")
->addOption('avec_boussole_spip', null, InputOption::VALUE_NONE, "Intègre le JS de la boussole SPIP en entête topnav.")
;
}

2
src/autodoc/Helpers/Command/FromPlugin.php

@ -28,6 +28,8 @@ class FromPlugin extends Command
->addArgument('chemin', InputArgument::REQUIRED, "Chemin depuis _plugins_ du svn de la zone. <comment>Exemple : 'fabrique/trunk'</comment>")
->addOption('prefixe', 'p', InputOption::VALUE_OPTIONAL, 'Préfixe servant au stockage des données', 'plugin')
->addOption('sortie', 's', InputOption::VALUE_OPTIONAL, "Répertoire recevant le HTML généré. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output/{prefixe}'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS dont le contenu est inséré dans le head html. <comment>Exemple : 'http://boussole.spip.net/?page=spipnav.js&lang=fr'</comment>")
->addOption('avec_boussole_spip', null, InputOption::VALUE_NONE, "Intègre le JS de la boussole SPIP en entête topnav.")
;
}

3
src/autodoc/Helpers/Command/FromSpip.php

@ -27,7 +27,8 @@ class FromSpip extends Command
->addArgument('chemin', InputArgument::OPTIONAL, "Chemin dans l'arborescence du svn du core. <comment>Exemple : 'spip' ou 'branches/spip-3.0'</comment>", 'spip')
->addOption('prefixe', 'p', InputOption::VALUE_OPTIONAL, "Préfixe servant au stockage des données", 'spip')
->addOption('sortie', 's', InputOption::VALUE_OPTIONAL, "Répertoire recevant le HTML généré. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output/{prefixe}'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS dont le contenu est inséré dans le head html. <comment>Exemple : 'http://boussole.spip.net/?page=spipnav.js&lang=fr'</comment>")
->addOption('avec_boussole_spip', null, InputOption::VALUE_NONE, "Intègre le JS de la boussole SPIP en entête topnav.")
# ->addOption('titre', '', InputOption::VALUE_OPTIONAL, 'Titre du projet. Utilise le nom de la branche par défaut.')
# ->addOption('description', '', InputOption::VALUE_OPTIONAL, 'Description du projet. Prédéfini sur le titre par défaut.')
# ->addOption('presentation', '', InputOption::VALUE_OPTIONAL, 'Présentation du projet. Vide par défaut.')

2
src/autodoc/Helpers/Command/FromSvn.php

@ -28,6 +28,8 @@ class FromSvn extends Command
->addArgument('source', InputArgument::REQUIRED, "URL de la source SVN. <comment>Exemple : 'svn://trac.rezo.net/spip/spip'</comment>")
->addOption('prefixe', 'p', InputOption::VALUE_OPTIONAL, 'Préfixe servant au stockage des données', 'default')
->addOption('sortie', 's', InputOption::VALUE_OPTIONAL, "Répertoire recevant le HTML généré. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output/{prefixe}'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS dont le contenu est inséré dans le head html. <comment>Exemple : 'http://boussole.spip.net/?page=spipnav.js&lang=fr'</comment>")
->addOption('avec_boussole_spip', null, InputOption::VALUE_NONE, "Intègre le JS de la boussole SPIP en entête topnav.")
;
}

2
src/autodoc/Helpers/Command/FromZone.php

@ -28,6 +28,8 @@ class FromZone extends Command
->addArgument('chemin', InputArgument::REQUIRED, "Chemin dans l'arborescence du svn de la zone. <comment>Exemple : '_plugins_/fabrique/trunk'</comment>")
->addOption('prefixe', 'p', InputOption::VALUE_OPTIONAL, 'Préfixe servant au stockage des données', 'plugin')
->addOption('sortie', 's', InputOption::VALUE_OPTIONAL, "Répertoire recevant le HTML généré. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output/{prefixe}'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS dont le contenu est inséré dans le head html. <comment>Exemple : 'http://boussole.spip.net/?page=spipnav.js&lang=fr'</comment>")
->addOption('avec_boussole_spip', null, InputOption::VALUE_NONE, "Intègre le JS de la boussole SPIP en entête topnav.")
;
}

19
src/autodoc/Helpers/Generator.php

@ -166,6 +166,11 @@ class Generator
$timerStart = microtime(true);
// Option boussole SPIP => topnav.
if ($this->getOption('avec_boussole_spip')) {
$this->setOption('topnav', 'http://boussole.spip.net/?page=spipnav.js&lang=fr');
}
// définir les chemins et faire tourner le backup précédent
$this->files['autodoc.txt'] = $this->dirs['work'] . '/autodoc.txt';
$this->files['autodoc.txt.bak'] = $this->files['autodoc.txt'] . '.bak';
@ -220,6 +225,7 @@ class Generator
}
}
$nb_erreur = 0;
foreach ($presents as $prefixe => $present) {
@ -302,9 +308,15 @@ class Generator
$loader = new \Twig_Loader_Filesystem( $this->dirs['helper'] . '/Template' );
$twig = new \Twig_Environment($loader);
if ($topnav = $this->getOption('topnav', '')) {
$topnav = @file_get_contents($topnav);
}
if (!$topnav) $topnav = '';
$content = $twig->render('index.html', array(
'titre' => 'Documentation automatique des plugins SPIP',
'plugins' => $plugins,
'topnav' => $topnav,
));
file_put_contents($index, $content);
@ -685,6 +697,7 @@ class Generator
private function retrouverInfoPaquetXml() {
$source = $this->dirs['input'];
$is_spip = false;
if (!file_exists($paquet = $source . '/paquet.xml')) {
$is_spip = true;
if (!file_exists($paquet = $source . '/ecrire/paquet.xml')) {
@ -793,6 +806,11 @@ class Generator
$template = $this->dirs['helper'] . '/phpdoc_helper.xml';
$template = file_get_contents($template);
// c'est pas le meilleur endroit pour faire ça… mais bon.
if ($this->getOption('avec_boussole_spip')) {
$this->setOption('topnav', 'http://boussole.spip.net/?page=spipnav.js&lang=fr');
}
$substitutions = array(
'@DIR_CACHE@' => $this->dirs['cache'],
'@DIR_OUTPUT@' => $this->dirs['output'],
@ -805,6 +823,7 @@ class Generator
'@OPT_PRESENTATION@' => $this->escape_xml_attr($this->getOption('presentation', '')),
'@OPT_TITRE_ONGLETS@' => $this->escape_xml_attr($this->getOption('titre_onglets', 'Sommaire')),
'@OPT_SITE@' => $this->escape_xml_attr($this->getOption('site', '')),
'@OPT_TOPNAV@' => $this->escape_xml_attr($this->getOption('topnav', '')),
);
$template = str_replace(array_keys($substitutions), array_values($substitutions), $template);

6
src/autodoc/Helpers/Template/index.html

@ -12,6 +12,12 @@
<script src="__data/js/jquery.min.js"></script>
<script src="__data/bootstrap/js/bootstrap.min.js"></script>
{%- if topnav %}
<script type="text/javascript">
{{ topnav|raw }}
</script>
{%- endif -%}
</head>
<body>

2
src/autodoc/Helpers/phpdoc_helper.xml

@ -63,9 +63,9 @@
<option name="presentation" value="@OPT_PRESENTATION@" />
<option name="titre_onglets" value="@OPT_TITRE_ONGLETS@" />
<option name="site" value="@OPT_SITE@" />
<option name="topnav" value="@OPT_TOPNAV@" />
<!--
<option name="proposer" value="oui" />
<option name="topnav" value="http://boussole.spip.net/?page=spipnav.js&amp;lang=fr" />
<option name="chemin" value="autodoc/" />
-->
</options>

2
src/autodoc/Plugin/Core/Compiler/Pass/GetTopNav.php

@ -51,7 +51,7 @@ class GetTopNav implements CompilerPassInterface
public function execute(ProjectDescriptor $project)
{
$topnav = $this->app['config']->getOptions()->get('topnav');
if (!$topnav) return;
if (!$topnav OR !$topnav->getValue()) return;
$js = file_get_contents($topnav->getValue());

Loading…
Cancel
Save