code: def run(self):
      rst_source = self.state_machine.node.document["source"]
      rst_filename = basename(rst_source)
  
      serial_no = self.env.new_serialno("ccb")
      target_id = f"{rst_filename}.ccb-{serial_no}"
      target_id = target_id.replace(".", "-")
      target_node = nodes.target("", "", ids=[target_id])
  
      node = bokehjs_content()
      node["target_id"] = target_id
      node["title"] = self.options.get("title", "bokehjs example")
      node["include_bjs_header"] = False
      node["disable_codepen"] = self.options.get(
          "disable_codepen", False
      )
      node["js_source"] = self.get_js_source()
  
      source_doc = self.state_machine.node.document
      if not hasattr(source_doc, "bjs_seen"):
          # we only want to inject the CODEPEN_INIT on one
          # bokehjs-content block per page, here we check to see if
          # bjs_seen exists, if not set it to true, and set
          # node['include_bjs_header'] to true.  This way the
          # CODEPEN_INIT is only injected once per document (html
          # page)
          source_doc.bjs_seen = True
          node["include_bjs_header"] = True
      code_content, language = self.get_code_language()
      cb = self.get_codeblock_node(code_content, language)
      node.setup_child(cb[0])
      node.children.append(cb[0])
      return [target_node, node]
  
imports: from __future__ import annotations
  import logging
  from os.path import basename, join
  from docutils import nodes
  from docutils.parsers.rst.directives import unchanged
  from sphinx.directives.code import CodeBlock, container_wrapper, dedent_lines
  from sphinx.errors import SphinxError
  from sphinx.locale import __
  from sphinx.util import logging, parselinenos
  from sphinx.util.nodes import set_source_info
  from .None import PARALLEL_SAFE
  from .templates import BJS_CODEPEN_INIT, BJS_EPILOGUE, BJS_HTML, BJS_PROLOGUE
  from .util import get_sphinx_resources
label_desc: Use image node_id 4 for calling the BokehJSContent obj's underlying member method code with example usage: obj.run() and returns: list