Weave.jl/src/config.jl

59 lines
1.8 KiB
Julia
Raw Normal View History

# TODO: follow RMarkdown convention more
2020-06-13 14:33:49 +02:00
const _DEFAULT_PARAMS = Dict{Symbol,Any}(
:echo => true,
:results => "markup",
:hold => false,
:fig => true,
:eval => true,
:error => true,
2020-06-13 14:33:49 +02:00
:tangle => true,
:cache => false,
:fig_cap => nothing,
# NOTE: size in inches
:fig_width => 6,
:fig_height => 4,
:fig_path => DEFAULT_FIG_PATH,
:dpi => 96,
:term => false,
2020-06-13 17:57:12 +02:00
:prompt => "julia>",
2020-06-13 14:33:49 +02:00
:label => nothing,
:wrap => true,
:line_width => 75,
:fig_ext => nothing,
:fig_pos => nothing,
:fig_env => nothing,
:out_width => nothing,
:out_height => nothing,
2020-05-08 16:39:17 +02:00
)
2020-06-13 14:33:49 +02:00
const DEFAULT_PARAMS = deepcopy(_DEFAULT_PARAMS) # might be changed at runtime
2016-12-23 09:54:48 +01:00
"""
2020-06-13 14:33:49 +02:00
set_chunk_defaults!(k::Symbol, v::Any) = DEFAULT_PARAMS[k]= v
set_chunk_defaults!(kv::Pair{Symbol,Any}...) = for (k,v) in kv; set_chunk_defaults!(k, v); end
set_chunk_defaults!(opts::AbstractDict{Symbol,Any}) = merge!(DEFAULT_PARAMS, opts)
2016-12-23 09:54:48 +01:00
2020-03-06 02:14:21 +01:00
Set default options for code chunks, use [`get_chunk_defaults`](@ref) to see the current values.
2016-12-23 09:54:48 +01:00
2020-06-13 14:33:49 +02:00
E.g.: all the three examples below will set default `dpi` to `200` and `fig_width` to `8`:
- `set_chunk_defaults!(:dpi, 200); set_chunk_defaults!(:fig_width, 8)`
- `set_chunk_defaults!(:dpi => 200, :fig_width => 8)`
- `set_chunk_defaults!(Dict(:dpi => 200, :fig_width => 8))`
2016-12-23 09:54:48 +01:00
"""
2020-06-13 14:33:49 +02:00
set_chunk_defaults!(k::Symbol, v::Any) = DEFAULT_PARAMS[k]= v
set_chunk_defaults!(kv::Pair{Symbol,Any}...) = for (k,v) in kv; set_chunk_defaults!(k, v); end
set_chunk_defaults!(opts::AbstractDict{Symbol,Any}) = merge!(DEFAULT_PARAMS, opts)
2016-12-23 09:54:48 +01:00
"""
2020-03-26 13:41:54 +01:00
get_chunk_defaults()
2016-12-23 09:54:48 +01:00
Get default options used for code chunks.
"""
2020-06-13 14:33:49 +02:00
get_chunk_defaults() = DEFAULT_PARAMS
2016-12-23 09:54:48 +01:00
"""
2020-05-10 06:56:09 +02:00
restore_chunk_defaults!()
2016-12-23 09:54:48 +01:00
2020-03-26 13:41:54 +01:00
Restore Weave.jl default chunk options.
2016-12-23 09:54:48 +01:00
"""
2020-06-13 14:33:49 +02:00
restore_chunk_defaults!() = for (k,v) in _DEFAULT_PARAMS; DEFAULT_PARAMS[k] = v; end