You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
import os
|
|
|
|
|
import uuid
|
|
|
|
|
|
|
|
|
|
import dashscope
|
|
|
|
|
|
|
|
|
|
from A1_GenerateMarkdown import *
|
|
|
|
|
from A2_MarkdownToPptx import *
|
|
|
|
|
from A3_MarkdownToDocx import *
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 获取课程名称
|
|
|
|
|
def get_course_name() -> str:
|
|
|
|
|
"""获取规范格式的课程名称"""
|
|
|
|
|
prompt = '''功能:输入课程名称生成教案及课件。
|
|
|
|
|
请按以下格式输入:小学数学三角形内角和
|
|
|
|
|
请输入:'''
|
|
|
|
|
|
|
|
|
|
while True:
|
|
|
|
|
course = input(prompt).strip()
|
|
|
|
|
if course:
|
|
|
|
|
return course
|
|
|
|
|
print("⚠️ 输入不能为空,请重新输入!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
# 获取课程名称
|
|
|
|
|
course_name = get_course_name()
|
|
|
|
|
print(f"即将生成【{course_name}】教学大纲...")
|
|
|
|
|
|
|
|
|
|
guid_v4 = str(uuid.uuid4())
|
|
|
|
|
dashscope.api_key = MarkdownGenerator.API_KEY
|
|
|
|
|
generate_document(
|
|
|
|
|
course_name=course_name,
|
|
|
|
|
output_path=mdWorkingPath / (guid_v4 + '.md')
|
|
|
|
|
)
|
|
|
|
|
# 生成PPT
|
|
|
|
|
# 硬编码配置参数
|
|
|
|
|
FIXED_MD_PATH = str(mdWorkingPath) + '/' + guid_v4 + '.md'
|
|
|
|
|
# 模板名称
|
|
|
|
|
TEMPLATE_NAME = "通用"
|
|
|
|
|
# 输出路径
|
|
|
|
|
OUTPUT_PATH = "D:\dsWork\QingLong\output5.pptx"
|
|
|
|
|
|
|
|
|
|
# 执行生成
|
|
|
|
|
generate(TEMPLATE_NAME, OUTPUT_PATH, FIXED_MD_PATH)
|
|
|
|
|
print(f"PPT生成成功!保存路径:{OUTPUT_PATH}")
|
|
|
|
|
|
|
|
|
|
# 生成 DOCX
|
|
|
|
|
OUTPUT_DOCX = r"D:\dsWork\QingLong\output5.docx"
|
|
|
|
|
convert_md_to_docx(
|
|
|
|
|
input_md=FIXED_MD_PATH,
|
|
|
|
|
output_docx=OUTPUT_DOCX,
|
|
|
|
|
reference_template=str(Path(__file__).parent) + r"\left-aligned-template.docx"
|
|
|
|
|
)
|
|
|
|
|
print(f"DOCX生成成功!保存路径:{OUTPUT_DOCX}")
|
|
|
|
|
# 删除FIXED_MD_PATH
|
|
|
|
|
os.remove(FIXED_MD_PATH)
|