annProg / PanBook

Pandoc LaTeX,Epub模板,用于生成书籍,幻灯片(beamer),简历,论文等(cv, thesis, ebook,beamer)
BSD 3-Clause "New" or "Revised" License
263 stars 28 forks source link

Recon2 #13

Closed annProg closed 5 years ago

annProg commented 5 years ago

recon2 方案

  1. 使用全局数组存储 pandoc 选项,pandoc var(-V), pandoc meta(-M),pandoc filter(--lua-filter)以及panbook需要的变量 1.1 通过--option=value形式传入的panbook不能识别的参数存储到 pandoc var数组中,扔给pandoc(需要处理repeat for multiple options的情况) 1.2 repeat处理方式为:传参时结尾加 , 如 --bibliography=abc.bib 表示这是一个repeat参数
  2. panbook选项及每个模块的patch可以修改,新增或删除这些全局数组的元素
  3. 新增函数用于拼接参数,执行pandoc时调用
  4. 设计扩展机制:style patch修改参数,执行每个扩展目录下的脚本
  5. 重定义名词及目录 5.1: templates 专指pandoc模板(--templates选项),和 风格(styles) 区分 5.2: extensions 用于扩展功能,extension添加的全局变量应以 ext_ 开头。扩展.extensions中设置全局变量前应检查是否以及存在,并打印帮助信息(允许用户通过-G选项更改全局变量) 5.3: styles 风格,设计样式,用于定制某种模板,可以通过patch调用extension,修改全局变量,改变模板,增加lua filter等。(参数名 --style) 5.3.1: styles和templates要做区分,比如默认的latex模板,moderncv,elegantbook都可以调用这个模板,但是又需要不同的lua filter,文档类等