• 65 0 分 57 秒 Python

    快速使用python把md文章转为Grav cms页面格式模板

    拷贝代码:一键生成md文件夹.py %E4%B8%80%E9%94%AE%E7%94%9F%E6%88%90md%E6%96%87%E4%BB%B6%E5%A4%B9

    import os
    import re
    import shutil
    import datetime
    import time
    
    def process_markdown_files():
        start_num = 10
        current_num = start_num
        # 确保输出目录存在
        os.makedirs('output', exist_ok=True)
    
        # 获取data目录下所有Markdown文件(包含完整路径)
        data_dir = 'data'
        md_files = [f for f in os.listdir(data_dir) 
                    if os.path.isfile(os.path.join(data_dir, f)) and f.lower().endswith('.md')]
    
        print(f"找到 {len(md_files)} 个Markdown文件")
    
        for filename in md_files:
            time.sleep(0.5)  # 每次处理间隔0.5秒
    
            # 创建带序号的文件夹
            folder_name = f"output/{current_num}.zblog_{current_num}"
            os.makedirs(folder_name, exist_ok=True)
    
            # 构建源文件的完整路径
            src_path = os.path.join(data_dir, filename)
            # 目标文件路径
            dest_file = os.path.join(folder_name, 'item.md')
    
            # 复制文件(使用完整源路径)
            shutil.copy2(src_path, dest_file)
            print(f"已复制: {src_path} -> {dest_file}")
    
            # 处理文件内容
            with open(dest_file, 'r+', encoding='utf-8') as f:
                content = f.readlines()
                modified = False
    
                # 只检查前5行
                for i in range(min(5, len(content))):
                    # 匹配 visible: true
                    if re.match(r'^\s*visible\s*:\s*true\s*$', content[i], re.IGNORECASE):
                        # 替换为 visible: false
                        content[i] = re.sub(
                            r'(visible\s*:\s*)true', 
                            r'\1false', 
                            content[i], 
                            flags=re.IGNORECASE
                        )
    
                        # 获取当前时间, 格式为 "2025-01-01 00:00"
                        current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
    
                        # 插入新的元数据
                        new_content = content[:i+1] + [
                            f"date: '{current_time}'\n",
                            'taxonomy:\n',
                            '    category:\n',
                            '        - 其他\n',
                            '    tag:\n',
                            '        - 其他\n',
                            'autoseo:\n',
                            '    enabled: true\n'
                        ] + content[i+1:]
    
                        # 重新写入文件
                        f.seek(0)
                        f.truncate()
                        f.writelines(new_content)
                        modified = True
                        print(f"已修改: {dest_file}")
                        break
    
                if not modified:
                    # 没有修改时保持原内容
                    f.seek(0)
                    f.truncate()
                    f.writelines(content)
    
            current_num += 1
    
        print(f"处理完成!共生成 {current_num - start_num} 个文件夹")
    if __name__ == '__main__':
        process_markdown_files()
        input("按任意键退出...")
    
    

    • 留言板:
    • 暂无评论