Bug fixes, more configuration around rendering.

This commit is contained in:
Max Bucknell 2025-01-13 15:18:57 +00:00
parent de06a2087c
commit 66168bf5ce
No known key found for this signature in database
5 changed files with 80 additions and 19 deletions

View file

@ -34,27 +34,34 @@ export def RenderNote(format: string, buffer = "%")
def ExitCb(job: job, exit: number) def ExitCb(job: job, exit: number)
if exit != 0 if exit != 0
execute "botright sbuf " .. b:mbnotes_renderer_buffer if !g:mbnotes_renderer_show
elseif exists("g:mbnotes_open_command") execute g:mbnotes_renderer_buffer_command
execute "botright sbuf " .. b:mbnotes_renderer_buffer .. " " .. b:mbnotes_renderer_buffer
endif
else
if exists("g:mbnotes_open_command") && g:mbnotes_open_command != ""
execute "!" .. g:mbnotes_open_command .. " " .. output execute "!" .. g:mbnotes_open_command .. " " .. output
execute "bwipeout " .. b:mbnotes_renderer_buffer
endif endif
unlet b:mbnotes_renderer_buffer if g:mbnotes_renderer_close_on_end
&& exists("b:mbnotes_renderer_buffer")
execute "bwipeout " .. b:mbnotes_renderer_buffer
endif
endif
enddef enddef
b:mbnotes_renderer_buffer = term_start([ var command = [
"quarto", g:mbnotes_quarto_binary, "render", input,
"render", "--to", format,
input, "--output-dir", g:mbnotes_out_dir
"--to", ] + g:mbnotes_quarto_render_args
format,
"--output-dir", # echo command
g:mbnotes_out_dir
], { b:mbnotes_renderer_buffer = term_start(command, {
cwd: g:mbnotes_dir, cwd: g:mbnotes_dir,
hidden: true, hidden: !g:mbnotes_renderer_show,
term_opencmd: g:mbnotes_renderer_buffer_command .. " %d",
exit_cb: ExitCb exit_cb: ExitCb
}) })
enddef enddef

View file

@ -130,6 +130,8 @@ If none of the above are defined, and this variable is not set explicitly, then
the render commands (e.g. |:MBNotesRenderPDF|) will not open the output file the render commands (e.g. |:MBNotesRenderPDF|) will not open the output file
after rendering. after rendering.
Explicitly set this to the empty string to disable opening behaviour.
g:mbnotes_rename_on_save *g:mbnotes_rename_on_save* g:mbnotes_rename_on_save *g:mbnotes_rename_on_save*
This plugin will attempt to intelligently rename a note based on its title, This plugin will attempt to intelligently rename a note based on its title,
@ -138,6 +140,38 @@ setting this variable to false >vim
let g:mbnotes_rename_on_save = 0 let g:mbnotes_rename_on_save = 0
g:mbnotes_renderer_show *g:mbnotes_renderer_show*
When a document is rendered, the quarto command to do so runs in a terminal
buffer. If this variable is true, the terminal buffer will be visible. By
default, the terminal buffer is not shown unless an error appears. >vim
let g:mbnotes_renderer_show = 1
g:mbnotes_renderer_close_on_end *g:mbnotes_renderer_close_on_end*
If `g:mbnotes_renderer_show` is true, then automatically close the renderer
buffer if it completes successfully.
g:mbnotes_renderer_buffer_command *g:mbnotes_renderer_buffer_command*
The command that should be used to open the renderer buffer, at any time. This
follows the default for terminal buffers opened by `term_start()` which is
`botright sbuf`. For example: >vim
let g:mbnotes_renderer_buffer_command = "vertical sbuf"
g:mbnotes_quarto_render_args *g:mbnotes_quarto_render_args*
An array of extra arguments passed to the command used to render documents. For
example, to always use the jupyter engine: >vim
let g:mbnotes_quarto_render_args = ["-M", "engine:jupyter"]
g:mbnotes_quarto_binary *g:mbnotes_quarto_binary*
Location of the quarto binary. By default, this uses whichever one is in $PATH.
============================================================================== ==============================================================================
4. Commands *mbnotes-commands* 4. Commands *mbnotes-commands*

View file

@ -4,7 +4,7 @@ def IsMBNotes()
var path_prefix = expand('%:p')[0 : len(g:mbnotes_dir) - 1] var path_prefix = expand('%:p')[0 : len(g:mbnotes_dir) - 1]
if path_prefix == g:mbnotes_dir if path_prefix == g:mbnotes_dir
set filetype=mbnotes set filetype=mbnotes.qmd
endif endif
enddef enddef

View file

@ -4,6 +4,14 @@ if exists("g:mbnotes_loaded")
finish finish
endif endif
if !exists("g:mbnotes_renderer_show")
g:mbnotes_renderer_show = false
endif
if !exists("g:mbnotes_renderer_close_on_finish")
g:mbnotes_renderer_close_on_finish = true
endif
if !exists("g:mbnotes_dir") if !exists("g:mbnotes_dir")
echoerr "MBNotes: Error: g:mbnotes_dir not set." echoerr "MBNotes: Error: g:mbnotes_dir not set."
finish finish
@ -42,7 +50,19 @@ if !exists("g:mbnotes_date_format_long")
endif endif
if !exists("g:mbnotes_rename_on_save") if !exists("g:mbnotes_rename_on_save")
g:mbnotes_rename_on_save = 1 g:mbnotes_rename_on_save = true
endif
if !exists("g:mbnotes_quarto_binary")
g:mbnotes_quarto_binary = "quarto"
endif
if !exists("g:mbnotes_quarto_render_args")
g:mbnotes_quarto_render_args = []
endif
if !exists("g:mbnotes_renderer_buffer_command")
g:mbnotes_renderer_buffer_command = "botright sbuf"
endif endif
import autoload 'mbnotes.vim' import autoload 'mbnotes.vim'