mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-01-16 01:06:50 +01:00
Compare commits
3 Commits
main
...
shawn/impr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
87b0a9b242 | ||
|
|
738131d563 | ||
|
|
7636016683 |
@@ -39,7 +39,7 @@ namespace Microsoft.PowerToys.FilePreviewCommon
|
||||
var softlineBreak = new Markdig.Extensions.Hardlines.SoftlineBreakAsHardlineExtension();
|
||||
|
||||
MarkdownPipelineBuilder pipelineBuilder;
|
||||
pipelineBuilder = new MarkdownPipelineBuilder().UseAdvancedExtensions().UseEmojiAndSmiley().UseYamlFrontMatter().UseMathematics().DisableHtml();
|
||||
pipelineBuilder = new MarkdownPipelineBuilder().UseAdvancedExtensions().UseEmojiAndSmiley().UseYamlFrontMatter().UseMathematics();
|
||||
pipelineBuilder.Extensions.Add(extension);
|
||||
pipelineBuilder.Extensions.Add(softlineBreak);
|
||||
|
||||
|
||||
@@ -74,6 +74,18 @@ namespace Peek.FilePreviewer.Controls
|
||||
}
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty IsMarkdownProperty = DependencyProperty.Register(
|
||||
nameof(IsMarkdown),
|
||||
typeof(bool),
|
||||
typeof(BrowserControl),
|
||||
new PropertyMetadata(false));
|
||||
|
||||
public bool IsMarkdown
|
||||
{
|
||||
get { return (bool)GetValue(IsMarkdownProperty); }
|
||||
set { SetValue(IsMarkdownProperty, value); }
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty CustomContextMenuProperty = DependencyProperty.Register(
|
||||
nameof(CustomContextMenu),
|
||||
typeof(bool),
|
||||
@@ -180,6 +192,13 @@ namespace Peek.FilePreviewer.Controls
|
||||
PreviewBrowser.CoreWebView2.Settings.IsScriptEnabled = IsDevFilePreview;
|
||||
PreviewBrowser.CoreWebView2.Settings.IsWebMessageEnabled = false;
|
||||
|
||||
if (IsMarkdown)
|
||||
{
|
||||
PreviewBrowser.CoreWebView2.Settings.IsScriptEnabled = false;
|
||||
PreviewBrowser.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All);
|
||||
PreviewBrowser.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
|
||||
}
|
||||
|
||||
if (IsDevFilePreview)
|
||||
{
|
||||
PreviewBrowser.CoreWebView2.SetVirtualHostNameToFolderMapping(Microsoft.PowerToys.FilePreviewCommon.MonacoHelper.VirtualHostName, Microsoft.PowerToys.FilePreviewCommon.MonacoHelper.MonacoDirectory, CoreWebView2HostResourceAccessKind.Allow);
|
||||
@@ -201,6 +220,15 @@ namespace Peek.FilePreviewer.Controls
|
||||
Navigate();
|
||||
}
|
||||
|
||||
private void CoreWebView2_WebResourceRequested(CoreWebView2 sender, CoreWebView2WebResourceRequestedEventArgs args)
|
||||
{
|
||||
// Show local file we've saved with the markdown contents. Block all else.
|
||||
if (Source != null && new Uri(args.Request.Uri) != Source)
|
||||
{
|
||||
args.Response = sender.Environment.CreateWebResourceResponse(null, 403, "Forbidden", null);
|
||||
}
|
||||
}
|
||||
|
||||
private List<Control> GetContextMenuItems(CoreWebView2 sender, CoreWebView2ContextMenuRequestedEventArgs args)
|
||||
{
|
||||
var menuItems = args.MenuItems;
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
DOMContentLoaded="BrowserPreview_DOMContentLoaded"
|
||||
FlowDirection="LeftToRight"
|
||||
IsDevFilePreview="{x:Bind BrowserPreviewer.IsDevFilePreview, Mode=OneWay}"
|
||||
IsMarkdown="{x:Bind BrowserPreviewer.IsMarkdown, Mode=OneWay}"
|
||||
NavigationCompleted="PreviewBrowser_NavigationCompleted"
|
||||
Source="{x:Bind BrowserPreviewer.Preview, Mode=OneWay}"
|
||||
Visibility="{x:Bind IsPreviewVisible(BrowserPreviewer, Previewer.State), Mode=OneWay, FallbackValue=Collapsed}" />
|
||||
|
||||
@@ -12,6 +12,8 @@ namespace Peek.FilePreviewer.Previewers.Interfaces
|
||||
|
||||
public bool IsDevFilePreview { get; }
|
||||
|
||||
public bool IsMarkdown { get; }
|
||||
|
||||
public bool CustomContextMenu { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,9 @@ namespace Peek.FilePreviewer.Previewers
|
||||
[ObservableProperty]
|
||||
private bool isDevFilePreview;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool isMarkdown;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool customContextMenu;
|
||||
|
||||
@@ -122,6 +125,7 @@ namespace Peek.FilePreviewer.Previewers
|
||||
|
||||
IsDevFilePreview = supportedByMonaco;
|
||||
CustomContextMenu = useMonaco;
|
||||
IsMarkdown = isMarkdown;
|
||||
|
||||
if (useMonaco)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user