Commit e4279d6c authored by Guillaume Perréal's avatar Guillaume Perréal
Browse files

Ajoute une règle "presentation".

Et modifie légèrement la façon de générer.
No related merge requests found
Showing with 32 additions and 22 deletions
+32 -22
REVEALJS_DEFAULT_CONFIG = { REVEALJS_DEFAULT_CONFIG = {
"width": "1024", "width": "1024",
"height": "768", "height": "768",
"transitionSpeed": "fast",
"lang": "fr-FR",
"history": "true", "history": "true",
"navigationMode": "linear", "navigationMode": "linear",
"fragmentInURL": "true", "fragmentInURL": "true",
"revealjs-url": "../reveal.js",
"theme": "inrae", "theme": "inrae",
"slideNumber": "true", "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: if src is None:
src = '%s/index.md' % name src = '%s/index.md' % name
if out is None: if out is None:
out = src[:-2] + 'html' out = src[:-2] + 'html'
variables = REVEALJS_DEFAULT_CONFIG.copy() args = [
for k,v in config.items(): "$TOOL",
variables[k] = str(v) "$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( return genrule(
name = "pandoc-%s" % name, name = "pandoc-%s" % name,
cmd = " ".join( cmd = " ".join(args),
[
"$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
),
srcs = [src], srcs = [src],
outs = [out], outs = [out],
tools = ["///tools/pandoc//:bin"] 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"],
),
)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment