@@ -211,23 +211,34 @@ defmodule Livebook.LiveMarkdown.Export do
211211 end
212212
213213 defp render_cell ( % Cell.Smart { } = cell , ctx ) do
214+ metadata =
215+ Map . merge (
216+ cell_metadata ( cell ) ,
217+ % {
218+ livebook_object: "smart_cell" ,
219+ kind: cell . kind ,
220+ # Attributes may include arbitrary values, including sequences
221+ # like "-->" that would mess our format, so we always encode them
222+ attrs: cell . attrs |> JSON . encode! ( & encode_sorting / 2 ) |> Base . encode64 ( padding: false ) ,
223+ chunks: cell . chunks && Enum . map ( cell . chunks , & Tuple . to_list / 1 )
224+ }
225+ )
226+
214227 % { Cell.Code . new ( ) | source: cell . source , outputs: cell . outputs }
215228 |> render_cell ( ctx )
216- |> prepend_metadata ( % {
217- "livebook_object" => "smart_cell" ,
218- "kind" => cell . kind ,
219- # Attributes may include arbitrary values, including sequences
220- # like "-->" that would mess our format, so we always encode them
221- "attrs" => cell . attrs |> JSON . encode! ( & encode_sorting / 2 ) |> Base . encode64 ( padding: false ) ,
222- "chunks" => cell . chunks && Enum . map ( cell . chunks , & Tuple . to_list / 1 )
223- } )
229+ |> prepend_metadata ( metadata )
224230 end
225231
226232 defp cell_metadata ( % Cell.Code { } = cell ) do
227- keys = [ :reevaluate_automatically , :continue_on_error ]
233+ keys = [ :reevaluate_automatically , :continue_on_error , :output_size ]
228234 put_unless_default ( % { } , Map . take ( cell , keys ) , Map . take ( Cell.Code . new ( ) , keys ) )
229235 end
230236
237+ defp cell_metadata ( % Cell.Smart { } = cell ) do
238+ keys = [ :output_size ]
239+ put_unless_default ( % { } , Map . take ( cell , keys ) , Map . take ( Cell.Smart . new ( ) , keys ) )
240+ end
241+
231242 defp cell_metadata ( _cell ) , do: % { }
232243
233244 defp render_outputs ( cell , ctx ) do
0 commit comments