diff options
Diffstat (limited to 'lib/entry/libimagentryview/src/builtin/md.rs')
-rw-r--r-- | lib/entry/libimagentryview/src/builtin/md.rs | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/lib/entry/libimagentryview/src/builtin/md.rs b/lib/entry/libimagentryview/src/builtin/md.rs index b4bd13c6..771be295 100644 --- a/lib/entry/libimagentryview/src/builtin/md.rs +++ b/lib/entry/libimagentryview/src/builtin/md.rs @@ -30,22 +30,11 @@ use anyhow::format_err; use crate::viewer::Viewer; -pub struct MarkdownViewer<'a> { - rt: &'a Runtime<'a>, - resource_access: ResourceAccess, - termsize: TerminalSize, -} +pub struct MarkdownViewer<'a>(&'a Runtime<'a>); impl<'a> MarkdownViewer<'a> { pub fn new(rt: &'a Runtime) -> Self { - MarkdownViewer { - rt, - resource_access: ResourceAccess::LocalOnly, - termsize: TerminalSize::detect().unwrap_or(TerminalSize { - width: 80, - height: 20, - }), - } + MarkdownViewer(rt) } } @@ -53,18 +42,22 @@ impl<'a> Viewer for MarkdownViewer<'a> { fn view_entry<W>(&self, e: &Entry, sink: &mut W) -> Result<()> where W: Write { - let parser = Parser::new(e.get_content()); - let base_dir = self.rt.rtp(); - let syntax_set = SyntaxSet::load_defaults_newlines(); - let capa = TerminalCapabilities::ansi(); + let parser = Parser::new(e.get_content()); + let base_dir = self.0.rtp(); + let settings = mdcat::Settings { + terminal_capabilities: TerminalCapabilities::ansi(), + syntax_set: SyntaxSet::load_defaults_newlines(), + resource_access: ResourceAccess::LocalOnly, + terminal_size: TerminalSize::detect().unwrap_or(TerminalSize { + width: 80, + height: 20, + }), + }; - ::mdcat::push_tty(sink, - &capa, - self.termsize, - parser, + ::mdcat::push_tty(&settings, + sink, base_dir, - self.resource_access, - syntax_set) + parser) .map_err(|_| format_err!("Failed while formatting markdown")) } } |