pull/433/merge
Tor Erlend Fjelde 2024-04-23 21:12:02 +08:00 committed by GitHub
commit 9064326f74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 67 additions and 2 deletions

View File

@ -17,8 +17,9 @@ const _DEFAULT_PARAMS = Dict{Symbol,Any}(
:term => false,
:prompt => "julia>",
:label => nothing,
:wrap => true,
:wrap => false,
:line_width => 75,
:displaysize => displaysize(),
:fig_ext => nothing,
:fig_pos => nothing,
:fig_env => nothing,

View File

@ -262,7 +262,11 @@ function eval_chunk(doc::WeaveDoc, chunk::CodeChunk, report::Report, mod::Module
chunk.options[:out_width] = report.format.out_width
end
chunk.result = run_code(doc, chunk, report, mod)
# Get the default `displaysize`.
lines, cols = chunk.options[:displaysize]
chunk.result = withenv("LINES" => lines, "COLUMNS" => cols) do
run_code(doc, chunk, report, mod)
end
execute_posthooks!(chunk)

View File

@ -23,6 +23,66 @@ DataFrame(a=rand($n))
@test isdefined(doc.chunks[1], :rich_output)
@test count("<tr>", doc.chunks[1].rich_output) < n
# `displaysize`
rows = 10 # number of rows in table
columns = 10 # number of colums in table
displaysize_rows = 1
displaysize_columns = 1
displayed_rows = displaysize_rows # number of rows that ends up getting displayed
displayed_columns = displaysize_columns # number of columns that ends up getting displayed
doc = mock_run("""
```julia; displaysize=($displaysize_rows, $displaysize_columns)
using DataFrames
DataFrame(Dict(Symbol(i) => rand($(rows)) for i = 1:$(columns)))
```
"""; doctype = "md2html")
@test isdefined(doc.chunks[1], :rich_output)
# Name row: 1
# Type row: 1
# Displayed rows: `displaysize_rows`
# ... row: 1
@test count("<tr>", doc.chunks[1].rich_output) == displayed_rows + 3
# Name row: 1 per displayed column + 1 for index column
# Type row: 1 per displayed column + 1 for index column
# Displayed rows: 1 per row
# ... row: 1
# Mistakenly match `<thead`: 1
@test count("<th", doc.chunks[1].rich_output) == (displayed_columns + 1) * 2 + displayed_rows + 1 + 1
# Increase rows but not columns.
displaysize_rows = 5
displaysize_columns = 1
displayed_rows = displaysize_rows
displayed_columns = displaysize_columns
doc = mock_run("""
```julia; displaysize=($displaysize_rows, $displaysize_columns)
using DataFrames
DataFrame(Dict(Symbol(i) => rand($(rows)) for i = 1:$(columns)))
```
"""; doctype = "md2html")
@test isdefined(doc.chunks[1], :rich_output)
@test count("<tr>", doc.chunks[1].rich_output) == displayed_rows + 3
@test count("<th", doc.chunks[1].rich_output) == (displayed_columns + 1) * 2 + displayed_rows + 1 + 1
# Increase columns too.
displaysize_rows = 5
displaysize_columns = 1000 # enough to get ALL `columns` to be displayed.
displayed_rows = displaysize_rows
displayed_columns = columns # `displaysize_columns` large enough for all columns to be displayed
doc = mock_run("""
```julia; displaysize=($displaysize_rows, $displaysize_columns)
using DataFrames
DataFrame(Dict(Symbol(i) => rand($(rows)) for i = 1:$(columns)))
```
"""; doctype = "md2html")
@test isdefined(doc.chunks[1], :rich_output)
@test count("<tr>", doc.chunks[1].rich_output) == displayed_rows + 3
@test count("<th", doc.chunks[1].rich_output) == (displayed_columns + 1) * 2 + displayed_rows + 1 + 1
end
end