コード例 #1
0
        public async Task HandleAsync(BMarkdownEditorBase editor)
        {
            var selection = await jSRuntime.InvokeAsync <string>("getSelection", editor.textarea);

            var result = $"``{Environment.NewLine}{(string.IsNullOrWhiteSpace(selection) ? "code" : selection)}{Environment.NewLine}``";
            await jSRuntime.InvokeVoidAsync("append", editor.Textarea, result);
        }
コード例 #2
0
        public async Task HandleAsync(BMarkdownEditorBase editor)
        {
            var parameters = new Dictionary <string, object>();

            parameters.Add(nameof(File.UploadUrl), editor.UploadUrl);
            parameters.Add(nameof(File.MaxSize), editor.FileMaxSize);
            parameters.Add(nameof(File.AllowExtensions), editor.AllowFileExtensions);
            parameters.Add(nameof(File.DisableUpload), editor.DisableFileUpload);
            parameters.Add(nameof(File.Tip), editor.FileUploadTip);
            var result = await dialogService.ShowDialogAsync <File, FileModel>("插入文件", parameters);

            var fileModel = result.Result;

            if (fileModel != null)
            {
                var title = fileModel.Title;
                if (!string.IsNullOrWhiteSpace(title))
                {
                    title = $"\"{title}\"";
                }
                if (fileModel.Urls != null)
                {
                    var files = fileModel.Urls.Select(x => $"[{fileModel?.Name}]({x} {title})");
                    var file  = string.Join("\n", files);
                    await jSRuntime.InvokeVoidAsync("replaceSelection", editor.Textarea, file);
                }
            }
        }
コード例 #3
0
        public async Task HandleAsync(BMarkdownEditorBase editor)
        {
            var linkName = await jSRuntime.InvokeAsync <string>("getSelection", editor.Textarea);

            var linkModel = new LinkModel
            {
                Name  = linkName,
                Title = linkName
            };
            var parameters = new Dictionary <string, object>();

            parameters.Add(nameof(Link.Link), linkModel);
            var result = await dialogService.ShowDialogAsync <Link, LinkModel>("插入链接", parameters);

            linkModel = result.Result;
            if (linkModel != null)
            {
                var title = linkModel.Title;
                if (!string.IsNullOrWhiteSpace(title))
                {
                    title = $"\"{title}\"";
                }
                if (!string.IsNullOrWhiteSpace(linkModel.Name) && !string.IsNullOrWhiteSpace(linkModel.Url))
                {
                    var link = $"[{linkModel.Name}]({linkModel.Url} {title})";
                    await jSRuntime.InvokeVoidAsync("replaceSelection", editor.Textarea, link);
                }
            }
        }
コード例 #4
0
        public async Task HandleAsync(BMarkdownEditorBase editor)
        {
            var imageName = await jSRuntime.InvokeAsync <string>("getSelection", editor.textarea);

            var imageModel = new ImageModel
            {
                Alt   = imageName,
                Title = imageName
            };
            var parameters = new Dictionary <string, object>();

            parameters.Add(nameof(Image.Image), imageModel);
            parameters.Add(nameof(Image.UploadUrl), editor.UploadUrl);
            parameters.Add(nameof(Image.MaxSize), editor.ImageMaxSize);
            parameters.Add(nameof(Image.Width), editor.ImageWidth);
            parameters.Add(nameof(Image.Height), editor.ImageHeight);
            parameters.Add(nameof(Image.AllowExtensions), editor.AllowImageExtensions);
            parameters.Add(nameof(Image.DisableUpload), editor.DisableImageUpload);
            parameters.Add(nameof(Image.Tip), editor.ImageUploadTip);
            var result = await dialogService.ShowDialogAsync <Image, ImageModel>("插入图片", parameters);

            imageModel = result.Result;
            var title = imageModel.Title;

            if (!string.IsNullOrWhiteSpace(title))
            {
                title = $"\"{title}\"";
            }
            var images = imageModel.Urls.Select(url => $"![{imageModel.Alt}]({url} {title})");
            var image  = string.Join("\n", images);
            await jSRuntime.InvokeVoidAsync("replaceSelection", editor.Textarea, image);
        }
コード例 #5
0
        public async Task HandleAsync(BMarkdownEditorBase editor)
        {
            var model = await dialogService.ShowDialogAsync <CreateTable, CreateTableModel>("插入表格", 400);

            var headers = Enumerable.Range(1, model.Result.Columns).Select(x => "   列" + x + "   ").ToArray();
            var lines   = Enumerable.Range(1, model.Result.Columns).Select(x => " :-------").ToArray();
            var columns = Enumerable.Range(1, model.Result.Columns).Select(x => "         ").ToArray();
            var rows    = new List <string>();

            rows.Add("|" + string.Join("|", headers) + "|");
            rows.Add("|" + string.Join("|", lines) + "|");
            rows.Add("|" + string.Join("|", columns) + "|");
            await jSRuntime.InvokeVoidAsync("append", editor.Textarea, string.Join(Environment.NewLine, rows));
        }
コード例 #6
0
 public async Task HandleAsync(BMarkdownEditorBase editor)
 {
     await jSRuntime.InvokeVoidAsync("wrapSelection", editor.Textarea, "**", "**");
 }
コード例 #7
0
 public async Task HandleAsync(BMarkdownEditorBase editor)
 {
     await jSRuntime.InvokeVoidAsync("append", editor.Textarea, "---\n");
 }