From 3f5ff53c881cb4353958c3903b1e55acc6f25998 Mon Sep 17 00:00:00 2001 From: Nikhil Rao Date: Sun, 29 Jan 2023 20:57:10 -0800 Subject: [PATCH] Support state vars in `pc.markdown` (#392) --- pynecone/components/typography/markdown.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pynecone/components/typography/markdown.py b/pynecone/components/typography/markdown.py index d40475824..19d678830 100644 --- a/pynecone/components/typography/markdown.py +++ b/pynecone/components/typography/markdown.py @@ -1,10 +1,11 @@ """Markdown component.""" import textwrap -from typing import List +from typing import List, Union +from pynecone import utils from pynecone.components.component import Component -from pynecone.var import BaseVar +from pynecone.var import BaseVar, Var class Markdown(Component): @@ -25,10 +26,14 @@ class Markdown(Component): Returns: The markdown component. """ - assert ( - len(children) == 1 + assert len(children) == 1 and utils._isinstance( + children[0], Union[str, Var] ), "Markdown component must have exactly one child containing the markdown source." - src = textwrap.dedent(children[0]) + + # Get the markdown source. + src = children[0] + if isinstance(src, str): + src = textwrap.dedent(src) return super().create(src, **props) def _get_imports(self):