Last active
April 10, 2024 21:19
-
-
Save tnntwister/91b1268822738b2e64b481b38d28d33c to your computer and use it in GitHub Desktop.
generate php docs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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