CleanUpWiki_v13 - itnett/FTD02N GitHub Wiki
Her er den oppdaterte versjonen av skriptet, som vil:
- Generere en unik
README.md
-fil for hvert skript som eksporteres. - Oppdatere wiki-sidene på GitHub med lenker til disse README-filene og skriptene.
- Publisere de oppdaterte wiki-sidene til
https://github.com/itnett/FTD02N/blob/main/
.
wiki_code_migration_v10.py
Fil: Se skriptet herpython', r'^Se skriptet hersql', r'^Se skriptet hershell'] for pattern in executable_patterns: if re.search(pattern, code_block, re.MULTILINE): return True return False
Funksjon for å migrere kodeblokker og lage README.md
def migrate_code_blocks(input_dir, output_dir): if not os.path.exists(output_dir): os.makedirs(output_dir)
for root, _, files in os.walk(input_dir):
for file in files:
if file.endswith('.md'):
file_path = os.path.join(root, file)
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# Finn alle kodeblokker
code_blocks = re.findall(r'```.*?```', content, re.DOTALL)
for i, block in enumerate(code_blocks):
if is_executable_code_block(block):
# Bestem filtype basert på innholdet
if '[Se skriptet her](https://github.com/itnett/FTD02N/blob/main/Python/CleanUpWiki_v13_4.py)bash' in block or '[Se skriptet her](https://github.com/itnett/FTD02N/blob/main/ShellScripts/CleanUpWiki_v13_5.sh)sql' in block:
extension = 'sql'
folder = 'SQLScripts'
elif '[Se skriptet her](https://github.com/itnett/FTD02N/blob/main/Makefiles/CleanUpWiki_v13_6.makefile)
input.yml
(samme som tidligere)
# URL til den originale Wiki-repoen som skal klones
wiki_repo_url: "https://github.com/itnett/FTD02H-N.wiki.git"
# Sti til katalogen hvor den klonede Wiki-repoen skal lagres midlertidig
dump_directory: "C:\\WikiMigration\\git\\code_dump"
# URL til den nye kode-repoen hvor skript skal lagres
code_repo_url: "https://github.com/itnett/FTD02N"
# Sti til katalogen hvor skriptene fra Wiki-repoen skal lagres
code_repo_directory: "C:\\WikiMigration\\git\\code_repo"
Oppsummering:
- README.md: En unik
README.md
-fil opprettes nå for hvert skript som blir migrert. - Wiki-oppdateringer: URL-er i wiki-sidene blir oppdatert for å peke til de riktige stedene i Git-repoen.
- Publisering: Skriptet publiserer både kodefilene og oppdaterte wiki-sider til de respektive GitHub-repoene.
Kjør dette skriptet for å fullføre hele prosessen, og du bør da se oppdaterte wiki-sider med lenker til de eksporterte skriptene samt de genererte README.md
-filene.
Ja, hvert skript vil få sin egen unike README.md
-fil, slik at de ikke overskrives. Jeg har oppdatert skriptet for å sikre at README.md
-filene får unike navn basert på skriptfilens navn. Dette vil sikre at hver README-fil er unik og ikke overskriver andre README-filer.
Her er den justerte delen av skriptet:
Se skriptet her.*?```', content, re.DOTALL)
for i, block in enumerate(code_blocks):
if is_executable_code_block(block):
# Bestem filtype basert på innholdet
if '[Se skriptet her](https://github.com/itnett/FTD02N/blob/main/Python/CleanUpWiki_v13_4.py)bash' in block or '[Se skriptet her](https://github.com/itnett/FTD02N/blob/main/ShellScripts/CleanUpWiki_v13_5.sh)sql' in block:
extension = 'sql'
folder = 'SQLScripts'
elif '```makefile' in block:
extension = 'makefile'
folder = 'Makefiles'
else:
continue
script_dir = os.path.join(output_dir, folder)
if not os.path.exists(script_dir):
os.makedirs(script_dir)
script_file_name = f"{os.path.splitext(file)[0]}_{i + 1}.{extension}"
output_file_path = os.path.join(script_dir, script_file_name)
with open(output_file_path, 'w', encoding='utf-8') as code_file:
code_file.write(block.strip('`').strip())
# Lag unik README.md for skriptet
readme_file_name = f"{os.path.splitext(script_file_name)[0]}_README.md"
readme_content = f"# {script_file_name}\n\n"
readme_content += f"Dette skriptet ble opprinnelig funnet i filen `{file}`.\n\n"
readme_content += f"## Beskrivelse\n\nSkriptet er av typen `{extension}` og ble funnet som en kodeblokk i en wiki-side.\n\n"
readme_content += f"## Lenker\n\n"
readme_content += f"- Opprinnelig wiki-side: [{file}](https://github.com/itnett/FTD02N/blob/main//{file})\n"
readme_content += f"- Lenke til skriptet: [{script_file_name}](https://github.com/itnett/FTD02N/blob/main/{folder}/{script_file_name})\n"
readme_file_path = os.path.join(script_dir, readme_file_name)
with open(readme_file_path, 'w', encoding='utf-8') as readme_file:
readme_file.write(readme_content)
print(f"Kode blokk eksportert til {output_file_path}")
print(f"README.md generert for {script_file_name} som {readme_file_name}")
### Hva har endret seg:
- `README.md`-filene får nå et navn basert på skriptfilens navn med suffikset `_README.md`. For eksempel, hvis skriptfilen heter `example_1.py`, vil README-filen for dette skriptet hete `example_1_README.md`.
Dette vil sikre at hver README-fil er unik og relatert til det spesifikke skriptet, uten risiko for overskriving.