refactor: `.starter` rendered in markdown format (#708)

pull/709/head
sigoden 2 months ago committed by GitHub
parent 5ca8975bbc
commit cfcf624e3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -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);

@ -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 {

@ -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}");
}
},

Loading…
Cancel
Save