summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/config/mod.rs6
-rw-r--r--src/main.rs10
-rw-r--r--src/repl/mod.rs10
3 files changed, 10 insertions, 16 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs
index 220b7c8..563ee55 100644
--- a/src/config/mod.rs
+++ b/src/config/mod.rs
@@ -1291,6 +1291,12 @@ impl Config {
Ok(RenderOptions::new(theme, wrap, self.wrap_code, truecolor))
}
+ pub fn markdown_render(&self, text: &str) -> Result<String> {
+ let render_options = self.render_options()?;
+ let mut markdown_render = MarkdownRender::init(render_options)?;
+ Ok(markdown_render.render(text))
+ }
+
pub fn render_prompt_left(&self) -> String {
let variables = self.generate_prompt_context();
let left_prompt = self.left_prompt.as_deref().unwrap_or(LEFT_PROMPT);
diff --git a/src/main.rs b/src/main.rs
index 2583b73..13276a5 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -20,7 +20,7 @@ use crate::config::{
EXPLAIN_SHELL_ROLE, SHELL_ROLE, TEMP_SESSION_NAME,
};
use crate::function::{eval_tool_calls, need_send_tool_results};
-use crate::render::{render_error, MarkdownRender};
+use crate::render::render_error;
use crate::repl::Repl;
use crate::utils::{
create_abort_signal, create_spinner, detect_shell, extract_block, run_command, AbortSignal,
@@ -187,9 +187,7 @@ async fn start_directive(
text.clone()
};
if *IS_STDOUT_TERMINAL {
- let render_options = config.read().render_options()?;
- let mut markdown_render = MarkdownRender::init(render_options)?;
- println!("{}", markdown_render.render(&text).trim());
+ println!("{}", config.read().markdown_render(&text)?);
} else {
println!("{}", text);
}
@@ -242,10 +240,8 @@ async fn shell_execute(config: &GlobalConfig, shell: &Shell, mut input: Input) -
config
.write()
.after_chat_completion(&input, &eval_str, &[])?;
- let render_options = config.read().render_options()?;
- let mut markdown_render = MarkdownRender::init(render_options)?;
if config.read().dry_run {
- println!("{}", markdown_render.render(&eval_str).trim());
+ println!("{}", config.read().markdown_render(&eval_str)?);
return Ok(());
}
if *IS_STDOUT_TERMINAL {
diff --git a/src/repl/mod.rs b/src/repl/mod.rs
index 0100cb0..e151745 100644
--- a/src/repl/mod.rs
+++ b/src/repl/mod.rs
@@ -286,15 +286,7 @@ impl Repl {
}
None => {
let banner = self.config.read().agent_banner()?;
- let output = format!(
- r#"Usage: .starter <text>...
-
-Tips: use <tab> to autocomplete conversation starter text.
----------------------------------------------------------
-
-{banner}"#
- );
-
+ let output = self.config.read().markdown_render(&banner)?;
println!("{output}");
}
},