Guest User

Untitled

a guest
Sep 22nd, 2024
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.30 KB | None | 0 0
  1. # toolkit for generating html
  2.  
  3. from utils import *
  4.  
  5.  
  6.  
  7. def generate_index(tags_list: List[str], metadata_list: List[FileMetadata], output_file: str):
  8.     # 开始生成 HTML
  9.     with open(output_file, 'w', encoding='utf-8') as f:
  10.         f.write("<!DOCTYPE html>\n")
  11.         f.write("<html lang='zh'>\n")
  12.         f.write("<head>\n")
  13.         f.write("<meta charset='UTF-8'>\n")
  14.         f.write("<title>文章列表</title>\n")
  15.         f.write("<style>\n")
  16.         f.write("ul { list-style-type: none; padding: 0; }\n")
  17.         f.write("li { display: inline; margin-right: 15px; }\n")  # 横向排列
  18.         f.write("table { width: 100%; border-collapse: collapse; }\n")  # 表格宽度100%
  19.         f.write("th, td { padding: 8px; }\n")  # 添加内边距,去掉边框
  20.         f.write("td.title { width: 100%; }\n")  # 文章标题单元格宽度100%
  21.         f.write("td.date { white-space: nowrap; }  /* 防止创建日期换行 */\n")
  22.         f.write("</style>\n")
  23.         f.write("</head>\n")
  24.         f.write("<body>\n")
  25.        
  26.         # 生成标签目录
  27.         f.write("<h2>标签目录</h2>\n")
  28.         f.write("<ul>\n")
  29.         for tag in tags_list:
  30.             f.write(f"<li><a href='/tag/{tag}'>{tag}</a></li>\n")
  31.         f.write("</ul>\n")
  32.  
  33.         # 生成文章列表
  34.         f.write("<h2>文章列表</h2>\n")
  35.         f.write("<table>\n")
  36.         f.write("<tr><th>标题</th><th>创建日期</th></tr>\n")
  37.         for metadata in metadata_list:
  38.             f.write(f"<tr><td class='title'><a href='/article/{metadata.sha1sum}.html'>{metadata.title}</a></td><td class='date'>{metadata.create_date}</td></tr>\n")
  39.         f.write("</table>\n")
  40.  
  41.         f.write("</body>\n")
  42.         f.write("</html>\n")
  43.  
  44. if __name__ == "__main__":  
  45.     # 模拟的元数据列表
  46.     metadata_list = [
  47.         FileMetadata(sha1sum="abc123", filepath="path/to/file1", tags=["Python", "编程"]),
  48.         FileMetadata(sha1sum="def456", filepath="path/to/file2", tags=["JavaScript", "编程"]),
  49.         FileMetadata(sha1sum="ghi789", filepath="path/to/file3", tags=["Python", "数据科学"]),
  50.     ]
  51.  
  52.   # 生成 HTML 文件
  53.     tags_list = ["main"]
  54.     output_file_path = 'articles.html'
  55.     generate_index(tags_list, metadata_list, output_file_path)
  56.     print(f"已生成 HTML 文件:{output_file_path}")
Add Comment
Please, Sign In to add comment