Guest User

Untitled

a guest
Sep 22nd, 2024
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.25 KB | None | 0 0
  1. # main file
  2.  
  3. from utils import *
  4. from page import *
  5. import json
  6.  
  7. def save_to_json(metadata_list: List[FileMetadata], json_file: str):
  8.     """将文件元数据保存到JSON文件"""
  9.     with open(json_file, 'w') as f:
  10.         json.dump([metadata.to_dict() for metadata in metadata_list], f, indent=4)
  11.  
  12. def load_from_json(json_file: str) -> List[FileMetadata]:
  13.     """从JSON文件加载文件元数据"""
  14.     with open(json_file, 'r') as f:
  15.         data = json.load(f)
  16.         return [FileMetadata(**item) for item in data]
  17.  
  18. def get_folders(config: dict) -> list:
  19.     """从配置中获取文件夹和标签列表"""
  20.     return config.get("directories", [])
  21. def get_tags(config: dict) -> list:
  22.     """从配置中获取在显示在头的标签列表"""
  23.     return config.get("tags", [])
  24.    
  25.  
  26. def main():
  27.     """主函数"""
  28.     config = read_config("blog.yaml")
  29.     folders = get_folders(config)
  30.     tags = get_tags(config)
  31.     all_metadata = []
  32.  
  33.     for folder in folders:
  34.         dir_path = folder['dir']
  35.         tags = folder['tags']
  36.         metadata = process_files_in_directory(dir_path, tags)
  37.         all_metadata.extend(metadata)
  38.  
  39.     # 在生成 HTML 之前对 metadata_list 按创建时间降序排序
  40.     all_metadata.sort(key=lambda x: x.create_date, reverse=True)
  41.  
  42.     # 保存到JSON文件
  43.     json_file_path = "file_metadata.json"
  44.     save_to_json(all_metadata, json_file_path)
  45.     print(f"文件元数据已保存到 {json_file_path}")
  46.  
  47.     # 从JSON文件加载
  48.     loaded_metadata = load_from_json(json_file_path)
  49.     print("从JSON文件加载的元数据:")
  50.     for metadata in loaded_metadata:
  51.         print(metadata)
  52.  
  53.     dist_path = config['dist']
  54.     for metadata in all_metadata:
  55.         md_file_path = metadata.filepath
  56.         output_html_path = os.path.join(dist_path,"article" ,f"{metadata.sha1sum}.html")
  57.         convert_md_to_html(md_file_path, output_html_path)
  58.  
  59.    
  60.     generate_index([], all_metadata, os.path.join(dist_path, "index.html"))
  61.  
  62.  
  63. if __name__ == "__main__":
  64.     main()
  65.    
  66.     # 使用示例
  67.     # md_file_path = 'example.md'  # 输入 Markdown 文件路径
  68.     # output_html_path = 'output.html'  # 输出 HTML 文件路径
  69.     # convert_md_to_html(md_file_path, output_html_path)
  70.  
Add Comment
Please, Sign In to add comment