Skip to content

Commit

Permalink
Merge branch 'dev' into update-deps-2.18
Browse files Browse the repository at this point in the history
  • Loading branch information
T4rk1n authored Sep 3, 2024
2 parents 123a301 + 0d9b9da commit efc6d27
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
10 changes: 9 additions & 1 deletion components/dash-core-components/src/fragments/Markdown.react.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,20 @@ export default class DashMarkdown extends Component {
}

highlightCode() {
const isHighlighted = node => {
// a highlighted node will have <span> children which are what color the text
return node.children.length > 0;
};

if (this.mdContainer) {
const nodes = this.mdContainer.querySelectorAll('pre code');

if (MarkdownHighlighter.hljs) {
for (let i = 0; i < nodes.length; i++) {
MarkdownHighlighter.hljs.highlightElement(nodes[i]);
if (!isHighlighted(nodes[i])) {
nodes[i].removeAttribute('data-highlighted');
MarkdownHighlighter.hljs.highlightElement(nodes[i]);
}
}
} else {
MarkdownHighlighter.loadhljs();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@


md_text = """```python
print('hello, world!')
```"""

new_md_text = """```python
import dash
print('hello, world!')
```"""
Expand Down Expand Up @@ -46,3 +50,32 @@ def trigger_md_rerender(nclicks):
dash_dcc.wait_for_text_to_equal("#md-container code", "hljs override")

assert dash_dcc.get_logs() == []


def test_msmh003_update_md(dash_dcc):
app = Dash(__name__)
app.layout = html.Div(
[
html.Button("Click", id="md-trigger"),
dcc.Markdown(md_text, id="md"),
]
)

@app.callback(Output("md", "children"), [Input("md-trigger", "n_clicks")])
def update_md(nclicks):
if nclicks is not None and nclicks > 0:
return new_md_text
return md_text

dash_dcc.start_server(app)

# a highlighted node will have <span> children which are what color the text
code = dash_dcc.wait_for_element("code[data-highlighted='yes']")
assert len(code.find_elements_by_tag_name("span")) == 2

dash_dcc.find_element("#md-trigger").click()

code = dash_dcc.wait_for_element("code[data-highlighted='yes']")
assert len(code.find_elements_by_tag_name("span")) == 3

assert dash_dcc.get_logs() == []

0 comments on commit efc6d27

Please sign in to comment.