mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-09-27 00:53:37 +00:00
Only do it for html
This commit is contained in:
parent
a1d8169284
commit
9a96f47d51
@ -17,27 +17,19 @@ public static class PlainFileExport
|
||||
private static string TB(string fallbackEn) => I18N.I.T(fallbackEn, typeof(PlainFileExport).Namespace, nameof(PlainFileExport));
|
||||
|
||||
/// <summary>
|
||||
/// Reads a complete HTML or LaTeX source file out of a message which consists only of the
|
||||
/// matching fenced code block.
|
||||
/// Reads a complete HTML source file out of a message which consists only of a matching fenced
|
||||
/// code block.
|
||||
/// </summary>
|
||||
/// <param name="markdown">The Markdown text the model wrote.</param>
|
||||
/// <param name="format">The source format to extract.</param>
|
||||
/// <param name="format">The selected export format.</param>
|
||||
/// <param name="source">The contents inside the fence, or an empty string when the message is
|
||||
/// not a standalone source file.</param>
|
||||
/// <returns>True, when the message is a complete source file for the selected format.</returns>
|
||||
/// <returns>True, when the message is a complete HTML source file.</returns>
|
||||
internal static bool TryExtractStandaloneSource(string markdown, FileExportFormat format, out string source)
|
||||
{
|
||||
source = string.Empty;
|
||||
|
||||
var languages = format switch
|
||||
{
|
||||
FileExportFormat.HTML => new[] { "html" },
|
||||
FileExportFormat.LATEX => new[] { "latex", "tex" },
|
||||
|
||||
_ => [],
|
||||
};
|
||||
|
||||
if (languages.Length is 0 || string.IsNullOrWhiteSpace(markdown))
|
||||
if (format is not FileExportFormat.HTML || string.IsNullOrWhiteSpace(markdown))
|
||||
return false;
|
||||
|
||||
var document = Markdig.Markdown.Parse(markdown, Markdown.SAFE_MARKDOWN_PIPELINE);
|
||||
@ -45,7 +37,7 @@ public static class PlainFileExport
|
||||
return false;
|
||||
|
||||
var language = block.Info?.Trim();
|
||||
if (!languages.Any(candidate => string.Equals(candidate, language, StringComparison.OrdinalIgnoreCase)))
|
||||
if (!string.Equals("html", language, StringComparison.OrdinalIgnoreCase))
|
||||
return false;
|
||||
|
||||
source = block.Lines.ToString();
|
||||
@ -224,16 +216,16 @@ public static class PlainFileExport
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes HTML or LaTeX source authored by the model without converting it.
|
||||
/// Writes HTML source authored by the model without converting it.
|
||||
/// </summary>
|
||||
/// <param name="rustService">The Rust service, used for the save dialog.</param>
|
||||
/// <param name="dialogTitle">The title of the save dialog.</param>
|
||||
/// <param name="format">The matching HTML or LaTeX format.</param>
|
||||
/// <param name="format">The HTML format.</param>
|
||||
/// <param name="source">The source text inside the model's code fence.</param>
|
||||
/// <returns>True, when the file was written.</returns>
|
||||
internal static async Task<bool> ToSourceFile(RustService rustService, string dialogTitle, FileExportFormat format, string source)
|
||||
{
|
||||
if (format is not (FileExportFormat.HTML or FileExportFormat.LATEX) || format.ToFileTypeFilter() is not { } fileTypeFilter)
|
||||
if (format is not FileExportFormat.HTML || format.ToFileTypeFilter() is not { } fileTypeFilter)
|
||||
throw new ArgumentOutOfRangeException(nameof(format), format, "AI Studio cannot write this format as an authored source file.");
|
||||
|
||||
return await WriteFile(rustService, dialogTitle, format, source, fileTypeFilter);
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
- Fixed an assistant refusing to work after you switched on the cleanup of web content without having chosen a model first. Its button did nothing at all, and only closing the assistant and starting over helped. The cleanup now follows the model of the assistant you are working in, the moment you pick one.
|
||||
- Fixed the Visual Briefing assistant (in preview) not scrolling, which put everything below the window edge out of reach and made the assistant unusable. The briefing preview is now shown at its intended size inside its frame, and switching between the desktop, tablet, and mobile view changes its width as it should.
|
||||
- Fixed exported answers losing their sources. When an answer is based on web pages a tool read or on documents of your own, the exported file now lists those sources in every format AI Studio writes.
|
||||
- Fixed exporting an answer made only of one complete HTML or LaTeX code block. AI Studio now saves the source directly, without Markdown fences or a Pandoc conversion.
|
||||
- Fixed exporting an answer made only of one complete HTML code block. AI Studio now saves the source directly, without Markdown fences or a Pandoc conversion.
|
||||
- Fixed the copy button leaving the sources behind. Copy an answer, and its sources come along.
|
||||
- Fixed a tile that opens a chat directly always demanding a workspace. Leave the workspace empty in the Assistant Builder, and the tile opens a disappearing chat instead.
|
||||
- Fixed the same restriction for plugin authors: a direct-chat launcher can now open a chat without naming a workspace. The example assistant plugin shows both ways.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user