Skip to content

Instantly share code, notes, and snippets.

@tnntwister
Last active April 10, 2024 21:19
Show Gist options
  • Save tnntwister/91b1268822738b2e64b481b38d28d33c to your computer and use it in GitHub Desktop.
Save tnntwister/91b1268822738b2e64b481b38d28d33c to your computer and use it in GitHub Desktop.
generate php docs
#!/bin/bash
# before :
# 1. You can download the latest PHAR file from https://phpdoc.org/phpDocumentor.phar
# 2. chmod +x phpDocumentor.phar
# 3. mv phpDocumentor.phar /usr/local/bin/phpDocumentor
# 4. sudo apt install pandoc
# Définition des chemins
OUTPUT_DIR_HTML="docs/html" # Répertoire de sortie pour HTML
OUTPUT_DIR_MD="docs/markdown" # Répertoire de sortie pour Markdown
OUTPUT_TREE_FILE="docs/arborescence.txt"
OUTPUT_MD_FILE="docs/documentation.md"
# génération de l'arborescence
echo "Génération de l'arborescence..."
if [ -f "$OUTPUT_TREE_FILE" ]; then
rm -f $OUTPUT_TREE_FILE
fi
# rajouter -d si le projet est très fourni en fichiers
tree -L 3 -I 'vendor|docs|.vscode' > $OUTPUT_TREE_FILE
# Étape 1 : Générer la documentation HTML avec phpDocumentor
echo "Génération de la documentation HTML..."
phpDocumentor run -d . -t $OUTPUT_DIR_HTML --ignore=vendor/,docs/,cache/,var/,upload/,bin/
# Vérification de l'existence du répertoire de sortie HTML
if [ ! -d "$OUTPUT_DIR_HTML" ]; then
echo "Le répertoire de documentation HTML n'existe pas. Je le crée pour vous. relancez le générateur ensuite."
mkdir -p $OUTPUT_DIR_HTML
exit 1
fi
# Création du répertoire Markdown s'il n'existe pas
if [ ! -d "$OUTPUT_DIR_MD" ]; then
mkdir -p $OUTPUT_DIR_MD
else # Suppression des fichiers Markdown existants
rm -f $OUTPUT_DIR_MD/*.md
fi
# Étape 2 : Convertir les fichiers HTML en Markdown
echo "Conversion de HTML en Markdown..."
# CNT=0 # Initialise le compteur
for file in $OUTPUT_DIR_HTML/**/*.html
do
filename=$(basename -- "$file")
base="${filename%.*}"
pandoc -s "$file" -o "$OUTPUT_DIR_MD/$base.md"
# CNT=$((CNT + 1)) # Incrémente le compteur
# if [ "$CNT" -eq 10 ]; then
# break # Sort de la boucle après avoir traité 10 fichiers
# fi
done
echo "Conversion terminée. Les fichiers Markdown sont dans $OUTPUT_DIR_MD"
echo "Fusion des fichiers Markdown..."
> "$OUTPUT_MD_FILE" # Crée le fichier de sortie ou le vide s'il existe déjà
for file in $OUTPUT_DIR_MD/*.md
do
cat "$file" >> $OUTPUT_MD_FILE
printf "\n\n" >> $OUTPUT_MD_FILE # Ajoute deux sauts de ligne entre les fichiers pour une meilleure lisibilité
done
echo "Fusion terminée. Le fichier Markdown fusionné est dans $OUTPUT_MD_FILE"
# supprime le répertoire Markdown
# rm -rf $OUTPUT_DIR_MD
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment