LinkTreeCreator, web sitesi link navigasyonu için belirtilen dizindeki tüm .html dosyalarını tarayarak kolay gezinme ve erişim için bir link ağacı (link tree) oluşturan Python aracıdır.
Dizin ve dosya yapısını JSON formatında dışa aktarır, her dosya için URL, tarih, göreli yol ve tam URL bilgilerini toplar.
Web sitesi link navigasyonu ve HTML dosya indeksleme amacıyla optimize edilmiş link ağacı oluşturmak için tasarlanmıştır.
last_modify: 2025-07-20
- Özyinelemeli HTML Tarama: Belirtilen kök dizinden başlayarak tüm alt dizinlerdeki .html dosyalarını tarar
- Kapsamlı Bilgi Toplama: Dosya/klasör adı, yol, URL, tarih ve göreli yol bilgilerini toplar
- JSON Çıktısı: Dizin yapısını ağaç şeklinde JSON formatında dışa aktarır
- Akıllı Filtreleme: Hariç tutulacak klasör ve dosyaları filtreleyebilir
- URL Oluşturma: Her dosya ve klasör için otomatik tam URL oluşturur
- Özelleştirilebilir Çıktı: Çıktı JSON dosyasını belirtilen dizine kaydeder
- Web Optimizasyonu: Web sitesi link navigasyonu için optimize edilmiş yapı
- Harici Bağımlılık Yok: Sadece Python standart kütüphanesini kullanır
- Python 3.8 veya üzeri
- Sadece standart kütüphane modülleri:
os,json,datetime,pathlib,typing
- Scripti
LinkTreeCreator.pyolarak kaydedin. - Ekstra bağımlılık gerekmez (sadece standart kütüphane kullanılır).
- Import ederek kullanın:
from LinkTreeCreator import LinkTreeCreator
import os
from pathlib import Path
from LinkTreeCreator import LinkTreeCreator
# Temel parametrelerle kullanım
base_dir = Path(os.getcwd())
output_dir = Path(os.path.join(base_dir, "output"))
output_file = Path("link_tree.json")
# LinkTreeCreator'ı çalıştır
creator = LinkTreeCreator(
base_dir=base_dir,
output_dir=output_dir,
output_file=output_file
)from pathlib import Path
from LinkTreeCreator import LinkTreeCreator
# Belirli klasör ve dosyaları hariç tutarak kullanım
base_dir = Path("/path/to/your/website")
passDirs = ["admin", "temp", "logs", "cache"]
passFiles = ["test_", "backup_", "draft_"]
output_dir = Path("./output")
output_file = Path("website_tree.json")
creator = LinkTreeCreator(
base_dir=base_dir,
output_dir=output_dir,
output_file=output_file,
passDirs=passDirs,
passFiles=passFiles
)import os
from pathlib import Path
from LinkTreeCreator import LinkTreeCreator
# Proje için özelleştirilmiş kullanım
project_root = Path(os.getcwd())
exclude_dirs = ["admin", "logs", "cache", "temp"]
exclude_files = ["test_", "backup_", "draft_"]
output_location = Path(project_root / "docs" / "navigation")
output_filename = Path("link_structure.json")
# Link ağacını oluştur
LinkTreeCreator(
base_dir=project_root,
output_dir=output_location,
output_file=output_filename,
passDirs=exclude_dirs,
passFiles=exclude_files
)
print(f"Link ağacı başarıyla oluşturuldu: {output_location / output_filename}")Ana LinkTreeCreator sınıfı constructor'ı.
Parametreler:
base_dir(Path): Taranacak kök dizinoutput_dir(Path): Çıktı JSON dosyasının kaydedileceği dizinoutput_file(Path): Çıktı JSON dosyasının adıpassDirs(list, optional): Hariç tutulacak klasör adları (varsayılan: [])passFiles(list, optional): Hariç tutulacak dosya adları (varsayılan: [])
Tek bir HTML dosyasının bilgilerini tutar.
Özellikler:
name: Dosya adıpath: Dosya yoluurl: Dosya URL'idate: Dosya tarihi (YYYY-MM-DD)relative_path: Göreli dosya yolufull_url: Tam URL
Bir dizinin bilgilerini tutar.
Özellikler:
name: Klasör adıpath: Klasör yoluurl: Klasör URL'idate: Klasör tarihirelative_path: Göreli klasör yolufull_url: Tam URLdirs: Alt klasörler listesifiles: İçindeki dosyalar listesi
{
"name": "root_folder",
"url": "root",
"date": "2025-07-20",
"relative_path": "",
"full_url": "https://mefamex.com/root",
"dirs": [
{
"name": "subfolder",
"url": "subfolder",
"date": "2025-07-20",
"relative_path": "subfolder",
"full_url": "https://mefamex.com/subfolder",
"dirs": [],
"files": [
{
"name": "page.html",
"url": "subfolder/page.html",
"date": "2025-07-20",
"relative_path": "subfolder/page.html",
"full_url": "https://mefamex.com/subfolder/page.html"
}
]
}
],
"files": []
}# LinkTreeCreator.py dosyasında BASE_URL değişkenini düzenleyin
BASE_URL = "https://yourdomain.com"# Yaygın hariç tutma örnekleri
exclude_dirs = [
"admin", # Yönetim paneli
"logs", # Log dosyaları
"cache", # Cache dizini
"temp", # Geçici dosyalar
"backup" # Yedek dosyalar
]
exclude_files = [
"test_", # Test dosyaları
"backup_", # Yedek dosyalar
"draft_", # Taslak dosyalar
"temp_" # Geçici dosyalar
]- Büyük Dizinler: Çok büyük dizin yapıları için işlem süresi uzayabilir
- Filtreleme: Gereksiz dosya/klasörleri filtrelemek performansı artırır
- JSON Boyutu: Çok fazla HTML dosyası içeren projeler büyük JSON dosyaları oluşturabilir
- Bellek Kullanımı: Tüm dosya bilgileri bellekte tutulur, RAM kullanımına dikkat edin
# Web sitesi link yapısını dokümante etmek için
website_creator = LinkTreeCreator(
base_dir=Path("/var/www/html"),
output_dir=Path("./docs"),
output_file=Path("website_links.json"),
passDirs=["admin", "logs", "cache"],
passFiles=["test_", "temp_"]
)# Blog link analizi için
blog_analyzer = LinkTreeCreator(
base_dir=Path("./blog_site"),
output_dir=Path("./analysis"),
output_file=Path("blog_tree.json"),
passDirs=["admin", "logs", "temp"],
passFiles=["draft_", "backup_"]
)MIT Lisansı (https://opensource.org/licenses/MIT)
- @mefamex (info@mefamex.com)
- GitHub: github.com/Mefamex
- www: mefamex.com
Bu yazılım, herhangi bir garanti olmaksızın "olduğu gibi" sağlanmaktadır. Kullanım riski kullanıcıya aittir. Production ortamlarında kullanımdan önce test edilmesi önerilir.
Connected :
- website/py
- Github/Mefamex/python-code-snippets