Skip to content

Commit bf4ed15

Browse files
committed
Workaround a change in the default table style
For unclear reasons, Jupyter changed the default table style to have a 1px border. This commit works around this by resetting the table styles inline each time a table is displayed. It's not a great long term solution and needs some attention when `display` next gets worked on.
1 parent f54e360 commit bf4ed15

File tree

3 files changed

+156
-63
lines changed

3 files changed

+156
-63
lines changed

lamb/display.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ def log_warning(m):
4848
"leaf_align": "left",
4949
"leaf_style": "div"}
5050

51+
table_reset = """<style>.rendered_html table, .rendered_html tr, .rendered_html td, .rendered_html th { border: 0px; }</style>"""
52+
5153
class Styled(object):
5254
def __init__(self, style=None):
5355
if style is None:
@@ -276,8 +278,8 @@ def nonterminal_render_lr_boxes(self, **kwargs):
276278
expl = self.render_expl(**kwargs)
277279
s = "<table>"
278280
if len(expl) > 0 and len(self.parts) > 0:
279-
s += "<tr><td></td><td style=\"border-left:1px solid #848482\">%s</td></tr>" % expl
280-
s += "<tr><td style=\"vertical-align:bottom;padding-right:10px\">%s</td>" % self.render_content(**kwargs)
281+
s += "<tr style=\"border:0px\"><td></td><td style=\"border-left:1px solid #848482\">%s</td></tr>" % expl
282+
s += "<tr style=\"border:0px\"><td style=\"vertical-align:bottom;padding-right:10px\">%s</td>" % self.render_content(**kwargs)
281283
if len(self.parts) > 0:
282284
s += "<td style=\"border: 1px solid #848482;vertical-align:bottom;padding:0px 10px\">"
283285
s += self.render_parts(**kwargs)
@@ -345,16 +347,16 @@ def html_render(self, **kwargs):
345347
def restyle(self, **kwargs):
346348
"""Uses `kwargs` to override the stored style. This displays the result; it does not actually modify `self`."""
347349
if self.get_style(kwargs, "style", "default") == "rows":
348-
out = "<table><tr>%s</tr></table>" % self.html_render(**kwargs)
350+
out = table_reset + "<table><tr>%s</tr></table>" % self.html_render(**kwargs)
349351
else:
350-
out = self.html_render(**kwargs)
352+
out = table_reset + self.html_render(**kwargs)
351353
return utils.MiniLatex(out)
352354

353355
def _repr_html_(self):
354356
if self.get_style(None, "style", "default") == "rows":
355-
return "<table><tr>%s</tr></table>" % self.html_render()
357+
return table_reset + "<table><tr>%s</tr></table>" % self.html_render()
356358
else:
357-
return self.html_render()
359+
return table_reset + self.html_render()
358360

359361
class RecursiveDerivationLeaf(Styled):
360362
"""Class for leaf nodes. Note that RecursiveDerivationDisplay can handle leaf nodes as well;
@@ -439,6 +441,7 @@ def table_rows_render(self, **kwargs):
439441
s += "<tr><td style=\"vertical-align:bottom\" align=\"%s\">%s</td></tr>" % (align,self.to_str(p, style=kwargs))
440442
s += "</table>"
441443
return s
442-
444+
443445
def _repr_html_(self):
444-
return self.html_render()
446+
return self.html_render()
447+

0 commit comments

Comments
 (0)