diff --git a/src/formatters.jl b/src/formatters.jl index 8f4a6a3..7e838dd 100644 --- a/src/formatters.jl +++ b/src/formatters.jl @@ -371,7 +371,10 @@ end function formatfigures(chunk, docformat::Pandoc) fignames = chunk.figures + length(fignames) > 0 || (return "") + caption = chunk.options[:fig_cap] + label = get(chunk.options, :label, nothing) result = "" figstring = "" attribs = "" @@ -379,11 +382,11 @@ function formatfigures(chunk, docformat::Pandoc) height = chunk.options[:out_height] #Build figure attibutes - width == nothing || (attribs = "width=$width") - (attribs ≠ "" && height ≠ nothing ) && (attribs *= " ") - height == nothing || (attribs *= "height=$height") - attribs == "" || (attribs = "{$attribs}") - length(fignames) > 0 || (return "") + attribs = String[] + width == nothing || push!(attribs, "width=$width") + height == nothing || push!(attribs, "height=$height") + label == nothing || push!(attribs, "#fig:$label") + attribs = isempty(attribs) ? "" : "{" * join(attribs, " ") * "}" if caption != nothing result *= "![$caption]($(fignames[1]))$attribs\n" diff --git a/test/documents/plotsjl/plotsjl_test_gr.md.ref b/test/documents/plotsjl/plotsjl_test_gr.md.ref index b819b4b..0be12b3 100644 --- a/test/documents/plotsjl/plotsjl_test_gr.md.ref +++ b/test/documents/plotsjl/plotsjl_test_gr.md.ref @@ -38,4 +38,4 @@ scatter!(rand(100),markersize=6,c=:orange) ![](figures/plotsjl_test_gr_3_1.png)\ -![A random walk.](figures/plotsjl_test_gr_random_1.png) +![A random walk.](figures/plotsjl_test_gr_random_1.png){#fig:random} diff --git a/test/figureformatter_test.jl b/test/figureformatter_test.jl index 8ffb34b..6dc0dda 100644 --- a/test/figureformatter_test.jl +++ b/test/figureformatter_test.jl @@ -29,3 +29,5 @@ chunk.options[:out_width] = "100%" @test Weave.formatfigures(chunk, Weave.multimarkdown) == "![Nice plot][figs/figures_plot1.png]\n\n[figs/figures_plot1.png]: figs/figures_plot1.png width=100%\n" @test Weave.formatfigures(chunk, Weave.adoc) == "image::figs/figures_plot1.png[width=100%,title=\"Nice plot\"]" +chunk.options[:label] = "somefig" +@test Weave.formatfigures(chunk, Weave.pandoc) == "![Nice plot](figs/figures_plot1.png){width=100% #fig:somefig}\n"