summaryrefslogtreecommitdiffstats
path: root/lib/entry/libimagentryview/src/builtin/md.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/entry/libimagentryview/src/builtin/md.rs')
-rw-r--r--lib/entry/libimagentryview/src/builtin/md.rs39
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"))
}
}