diff --git a/rules.build_defs b/rules.build_defs
index 08426f0a2bbc3700251ccfebb3b0f71494d59da1..9e64f21d57d5066a5290065ee1de07df3b105090 100644
--- a/rules.build_defs
+++ b/rules.build_defs
@@ -1,44 +1,54 @@
REVEALJS_DEFAULT_CONFIG = {
"width": "1024",
"height": "768",
- "transitionSpeed": "fast",
- "lang": "fr-FR",
"history": "true",
"navigationMode": "linear",
"fragmentInURL": "true",
- "revealjs-url": "../reveal.js",
"theme": "inrae",
"slideNumber": "true",
}
-def pandoc(name: str, src: str = None, out: str = None, toc_depth: int = 1, slide_level: int = 2, config: dict = {}, pandoc_args: list = []):
+def pandoc(name: str = None, src: str = None, out: str = None, toc: bool = True, toc_depth: int = 1, slide_level: int = 2, variables: dict = {}, pandoc_args: list = []):
+ if name is None:
+ name = "pandoc_%s" % src.replace('/', '_')
if src is None:
src = '%s/index.md' % name
if out is None:
out = src[:-2] + 'html'
- variables = REVEALJS_DEFAULT_CONFIG.copy()
- for k,v in config.items():
- variables[k] = str(v)
+ args = [
+ "$TOOL",
+ "$SRC",
+ "--output=$OUT",
+ "--from=markdown+backtick_code_blocks+pandoc_title_block+yaml_metadata_block",
+ "--to=revealjs",
+ "--standalone",
+ "--slide-level=%d" % slide_level,
+ ]
+
+ if toc:
+ args.append("--toc")
+ args.append("--toc-depth=%d" % toc_depth)
+
+ vars = REVEALJS_DEFAULT_CONFIG.copy()
+ for k,v in variables.items():
+ vars[k] = str(v)
+
+ args = args + ["--variable=%s:%s" % v for v in vars.items()] + pandoc_args
return genrule(
name = "pandoc-%s" % name,
- cmd = " ".join(
- [
- "$TOOL",
- "$SRC",
- "--output=$OUT",
- "--from=markdown+smart",
- "--to=revealjs",
- "--standalone",
- "--toc",
- "--toc-depth=%d" % toc_depth,
- "--slide-level=%d" % slide_level,
- ]
- + ["--variable=%s:%s" % variable for variable in variables.items()]
- + pandoc_args
- ),
+ cmd = " ".join(args),
srcs = [src],
outs = [out],
tools = ["///tools/pandoc//:bin"]
)
+
+def presentation(name: str, src: str = None, out: str = None, toc: bool = True, toc_depth: int = 1, slide_level: int = 2, variables: dict = {}, pandoc_args: list = []):
+ return filegroup(
+ name = "presentation_%s" % name.replace('/', '_'),
+ srcs = [pandoc(name, src, out, toc, toc_depth, slide_level, variables, pandoc_args)] + glob(
+ ["%s/**" % name],
+ exclude = ["*.md"],
+ ),
+ )