From 5e8ffd48526e72fe2888e6d05d5ee18c810a7599 Mon Sep 17 00:00:00 2001
From: "alexandre.caldato" <alexandre.caldato@sully-group.fr>
Date: Sat, 3 Jun 2023 12:31:56 +0200
Subject: [PATCH] =?UTF-8?q?-=20Ajout=20des=20infos=20de=20commit=20dans=20?=
 =?UTF-8?q?le=20footer=20et=20modification=20du=20style.=20-=20Modificatio?=
 =?UTF-8?q?n=20du=20script=20de=20g=C3=A9n=C3=A9ration=20des=20infos=20de?=
 =?UTF-8?q?=20commit=20(ajout=20de=20doc=20et=20du=20sha1)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Pipfile.lock            | 110 +++++++++++++++++++++-------------------
 docs/css/extra.css      |  20 ++++++++
 dsfr_theme/main.html    |   9 ++--
 generate_commit_info.py |  50 ++++++++++++++----
 mkdocs.yml              |  17 ++++---
 5 files changed, 134 insertions(+), 72 deletions(-)

diff --git a/Pipfile.lock b/Pipfile.lock
index 10cfc77..b1fb811 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -24,6 +24,14 @@
             "markers": "python_version >= '3.7'",
             "version": "==8.1.3"
         },
+        "colorama": {
+            "hashes": [
+                "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44",
+                "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"
+            ],
+            "markers": "platform_system == 'Windows'",
+            "version": "==0.4.6"
+        },
         "ghp-import": {
             "hashes": [
                 "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619",
@@ -49,59 +57,59 @@
         },
         "markupsafe": {
             "hashes": [
-                "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed",
-                "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc",
-                "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2",
-                "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460",
-                "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7",
-                "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0",
-                "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1",
-                "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa",
-                "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03",
-                "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323",
-                "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65",
-                "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013",
-                "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036",
-                "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f",
-                "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4",
-                "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419",
-                "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2",
-                "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619",
-                "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a",
-                "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a",
-                "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd",
-                "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7",
-                "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666",
-                "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65",
-                "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859",
-                "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625",
-                "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff",
-                "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156",
-                "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd",
-                "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba",
-                "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f",
-                "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1",
-                "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094",
-                "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a",
-                "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513",
-                "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed",
-                "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d",
-                "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3",
-                "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147",
-                "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c",
-                "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603",
-                "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601",
-                "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a",
-                "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1",
-                "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d",
-                "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3",
-                "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54",
-                "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2",
-                "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6",
-                "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"
+                "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e",
+                "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e",
+                "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431",
+                "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686",
+                "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559",
+                "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc",
+                "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c",
+                "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0",
+                "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4",
+                "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9",
+                "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575",
+                "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba",
+                "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d",
+                "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3",
+                "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00",
+                "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155",
+                "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac",
+                "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52",
+                "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f",
+                "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8",
+                "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b",
+                "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24",
+                "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea",
+                "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198",
+                "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0",
+                "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee",
+                "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be",
+                "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2",
+                "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707",
+                "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6",
+                "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58",
+                "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779",
+                "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636",
+                "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c",
+                "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad",
+                "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee",
+                "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc",
+                "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2",
+                "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48",
+                "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7",
+                "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e",
+                "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b",
+                "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa",
+                "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5",
+                "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e",
+                "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb",
+                "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9",
+                "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57",
+                "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc",
+                "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"
             ],
             "markers": "python_version >= '3.7'",
-            "version": "==2.1.2"
+            "version": "==2.1.3"
         },
         "mergedeep": {
             "hashes": [
diff --git a/docs/css/extra.css b/docs/css/extra.css
index 92d9509..b822b75 100644
--- a/docs/css/extra.css
+++ b/docs/css/extra.css
@@ -12,8 +12,28 @@ footer {
     position: absolute;
     bottom: 0;
     font-weight: 500;
+    border-top: 1px solid #eaeaea;
+    padding-top: 10px;
 }
 
 li {
     list-style: none;
 }
+
+.commit-info {
+    display: flex;
+    justify-content: center;
+}
+
+.commit-info ul {
+    text-align: left;
+}
+
+.label {
+    font-weight: bold;
+}
+
+.content {
+    color: #007BFF;
+    white-space: pre-line;
+}
diff --git a/dsfr_theme/main.html b/dsfr_theme/main.html
index 0fe0ed0..2a37796 100644
--- a/dsfr_theme/main.html
+++ b/dsfr_theme/main.html
@@ -3,10 +3,11 @@
 {% block footer %}
 <div class="commit-info">
     <ul>
-        <li>Branch: {{ config.extra.commit_info.branch }}</li>
-        <li>Message: {{ config.extra.commit_info.message }}</li>
-        <li>Author: {{ config.extra.commit_info.author }}</li>
-        <li>Date: {{ config.extra.commit_info.date }}</li>
+        <li><span class="label">Branche :</span> <span class="content">{{ config.extra.commit_info.branch }}</span></li>
+        <li><span class="label">Révision :</span> <span class="content">{{ config.extra.commit_info.SHA1 }}</span></li>
+        <li><span class="label">Message :</span> <span class="content" style="white-space: pre-line;">{{ config.extra.commit_info.message }}</span></li>
+        <li><span class="label">Auteur :</span> <span class="content">{{ config.extra.commit_info.author }}</span></li>
+        <li><span class="label">Date :</span> <span class="content">{{ config.extra.commit_info.date }}</span></li>
     </ul>
 </div>
 {% endblock %}
diff --git a/generate_commit_info.py b/generate_commit_info.py
index 140d8d1..4a624bd 100644
--- a/generate_commit_info.py
+++ b/generate_commit_info.py
@@ -3,11 +3,31 @@ from git import Repo
 
 
 def get_git_commit_info(repo_path):
-    repo = Repo(repo_path)
-    head_commit = repo.head.commit
-    branch_name = repo.active_branch.name
+    """
+    Gets the commit info from the git repository.
+
+    :param repo_path: The path to the git repository.
+    :type repo_path: str
+    :return: A dictionary containing:
+        - 'branch': The name of the current branch.
+        - 'SHA1': The SHA1 hash of the last commit.
+        - 'message': The commit message.
+        - 'author': The author of the commit.
+        - 'date': The date of the commit.
+    :rtype: dict
+    """
+    try:
+        repo = Repo(repo_path)
+        head_commit = repo.head.commit
+        branch_name = repo.active_branch.name
+        sha1_hash = head_commit.hexsha
+    except Exception as e:
+        print(f"Error getting commit info: {e}")
+        return None
+
     return {
         'branch': branch_name,
+        'SHA1': sha1_hash,
         'message': head_commit.message,
         'author': head_commit.author.name,
         'date': head_commit.committed_datetime.strftime("%Y-%m-%d %H:%M:%S")
@@ -15,15 +35,27 @@ def get_git_commit_info(repo_path):
 
 
 def write_commit_info_to_config(commit_info, config_file):
-    with open(config_file, 'r+') as file:
-        config = yaml.safe_load(file)
-        config['extra']['commit_info'] = commit_info
-        file.seek(0)
-        yaml.dump(config, file)
+    """
+    Write the commit info to the mkdocs.yml file
+
+    :param commit_info: Information about the last commit
+    :type commit_info: dict
+    :param config_file: Configuration file for mkdocs
+    :type config_file: str
+    """
+    try:
+        with open(config_file, 'r+') as file:
+            config = yaml.safe_load(file)
+            config['extra']['commit_info'] = commit_info
+            file.seek(0)  # Move the cursor to the start of the file
+            yaml.dump(config, file)  # Convert the config to YAML and write it to the file
+    except Exception as e:
+        print(f"Error writing to config: {e}")
 
 
 if __name__ == "__main__":
     repo_path = '.'
     config_file = 'mkdocs.yml'
     commit_info = get_git_commit_info(repo_path)
-    write_commit_info_to_config(commit_info, config_file)
+    if commit_info is not None:
+        write_commit_info_to_config(commit_info, config_file)
diff --git a/mkdocs.yml b/mkdocs.yml
index 72dbe49..9bfb7ce 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,14 +1,15 @@
 extra:
   commit_info:
+    SHA1: 1c3a2915f31feeee9325f351b3a379e8730a8fd2
     author: alexandre.caldato
-    branch: main
-    date: '2023-06-01 19:50:17'
-    message: 'add script to generate commit md file'
+    branch: taiga3/commit_footer
+    date: '2023-06-03 12:32:24'
+    message: "- Ajout des infos de commit dans le footer et modification du style.\n\
+      - Modification du script de g\xE9n\xE9ration des infos de commit (ajout de doc\
+      \ et du sha1)\n"
 extra_css:
 - css/extra.css
-nav:
-- Home: index.md
-- Latest Commit: commit_info.md
-site_name: My Docs
+site_name: DSFR Exemple
 theme:
-  name: dsfr
+  custom_dir: dsfr_theme
+  name: mkdocs
-- 
GitLab