diff --git a/pyecharts/charts/base.py b/pyecharts/charts/base.py index a84fd415..2a96c065 100644 --- a/pyecharts/charts/base.py +++ b/pyecharts/charts/base.py @@ -63,6 +63,7 @@ class Base(ChartMixin): self._geo_json_name: Optional[str] = None self._geo_json: Optional[dict] = None + self.render_options.update(embed_js=bool(_render_opts.get("embed_js"))) self._render_cache: dict = dict() def get_chart_id(self) -> str: @@ -86,24 +87,18 @@ class Base(ChartMixin): path: str = "render.html", template_name: str = "simple_chart.html", env: Optional[Environment] = None, - inner: bool = False, **kwargs, ) -> str: self._prepare_render() - if inner: - kwargs = {'_inner': inner, '_javascript': self.load_javascript().load_javascript_contents(), **kwargs} return engine.render(self, path, template_name, env, **kwargs) def render_embed( self, template_name: str = "simple_chart.html", env: Optional[Environment] = None, - inner: bool = False, **kwargs, ) -> str: self._prepare_render() - if inner: - kwargs = {'_inner': inner, '_javascript': self.load_javascript().load_javascript_contents(), **kwargs} return engine.render_embed(self, template_name, env, **kwargs) def render_notebook(self): @@ -121,6 +116,12 @@ class Base(ChartMixin): self.json_contents = self.dump_options() self._use_theme() + self._render_cache.clear() + if self.render_options.get('embed_js'): + self._render_cache['javascript'] = ( + self.load_javascript().load_javascript_contents() + ) + def default(o): if isinstance(o, (datetime.date, datetime.datetime)): diff --git a/pyecharts/options/global_options.py b/pyecharts/options/global_options.py index e7f19f83..9a165325 100644 --- a/pyecharts/options/global_options.py +++ b/pyecharts/options/global_options.py @@ -182,7 +182,7 @@ class InitOpts(BasicOpts): class RenderOpts(BasicOpts): - def __init__(self, embed_js: bool = True): + def __init__(self, embed_js: bool = False): self.opts: dict = { "embed_js": embed_js, } diff --git a/pyecharts/render/templates/macro b/pyecharts/render/templates/macro index e66685c1..e2ae45c8 100644 --- a/pyecharts/render/templates/macro +++ b/pyecharts/render/templates/macro @@ -80,18 +80,19 @@ {%- endmacro %} -{%- macro render_chart_dependencies(c, i, js) -%} - {% if i %} +{%- macro render_chart_dependencies(c) -%} + {% if 'embed_js' in c.render_options and 'javascript' in c._render_cache and c.render_options.embed_js -%} + {% set _javascript = c._render_cache.javascript %} {% for dep in c.dependencies %} {% endfor %} - {% else %} + {%- else -%} {% for dep in c.dependencies %} {% endfor %} - {% endif %} + {%- endif %} {%- endmacro %} {%- macro render_chart_css(c) -%} diff --git a/pyecharts/render/templates/simple_chart.html b/pyecharts/render/templates/simple_chart.html index a84a2f5f..75585090 100644 --- a/pyecharts/render/templates/simple_chart.html +++ b/pyecharts/render/templates/simple_chart.html @@ -4,7 +4,7 @@