写在前面 第一章 - 由宏构成的语言 The World Is Your Playground 宏的规则 AST树揭秘 宏:Elixir 的砖瓦 代码注入和调用者上下文 探索更多 第二章 - 用元编程来拓展 Elixir Custom Language Constructs 灵活的测试宏 模块扩展 使用模块属性来注入代码 编译时 第三章 - 高级编译时代码生成 使用外部数据生成代码 10行代码实现 MIME-type 转换 建立一个 Internationalization 模块 从远程 API 生成代码 第四章 - 如何测试宏 建立测试 决定要测试什么 集成测试 单元测试 第五章 - 创造一门 HTML 领域专用语言(DSL) 特定领域 最小化的可行 API 支持全部 HTML 标签 支持标签属性 精简代码 什么时候使用 DSL 第六章 - 能力越大,责任就越大 几个要点