diff --git a/Project.toml b/Project.toml index 3ffd73c..3c337f3 100644 --- a/Project.toml +++ b/Project.toml @@ -5,6 +5,7 @@ version = "1.2.0" [deps] Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" +Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" TextWrap = "b718987f-49a8-5099-9789-dcd902bef87d" [compat] diff --git a/src/ArgParse.jl b/src/ArgParse.jl index 9a8be16..1d3fc6a 100644 --- a/src/ArgParse.jl +++ b/src/ArgParse.jl @@ -11,7 +11,7 @@ differences as well. """ module ArgParse -import TextWrap +import TextWrap, Markdown if isdefined(Base, :Experimental) && isdefined(Base.Experimental, Symbol("@compiler_options")) @eval Base.Experimental.@compiler_options compile=min optimize=0 infer=false diff --git a/src/settings.jl b/src/settings.jl index 68ba286..5d3ee18 100644 --- a/src/settings.jl +++ b/src/settings.jl @@ -916,7 +916,10 @@ function add_arg_field!(settings::ArgParseSettings, name::ArgName; desc...) check_type(required, Bool, "required must be a Bool") check_type(range_tester, Function, "range_tester must be a Function") check_type(dest_name, AbstractString, "dest_name must be an AbstractString") - check_type(help, AbstractString, "help must be an AbstractString") + check_type(help, Union{AbstractString,Markdown.MD}, "help must be an AbstractString or Markdown.MD") + if help isa Markdown.MD + help = lstrip(repr("text/plain", help, context=:color=>true)) + end # Check metavar's type to be either an AbstractString or a # Vector{T<:AbstractString} metavar_error = "metavar must be an AbstractString or a Vector{<:AbstractString}"