| | | 1 | | @inject IJSRuntime JSRuntime |
| | | 2 | | |
| | | 3 | | @using System.Net |
| | | 4 | | |
| | | 5 | | <div class="container"> |
| | | 6 | | <div class="row"> |
| | | 7 | | <div class="col"> |
| | | 8 | | <h2>Markdown Converter</h2> |
| | | 9 | | </div> |
| | | 10 | | </div> |
| | | 11 | | |
| | | 12 | | <div class="row"> |
| | | 13 | | <div class="col"> |
| | | 14 | | <textarea id="html" class="form-control" rows="5" @bind="HTML" placeholder="<html><body><h1>Hello</h1></body |
| | | 15 | | </div> |
| | | 16 | | </div> |
| | | 17 | | <div class="row"> |
| | | 18 | | <div class="col"> |
| | | 19 | | <button id="btnConvert" name="btnConvert" class="btn btn-success float-start" @onclick="Convert">Convert</bu |
| | | 20 | | <button id="btnClearHTML" name="btnClearHTML" class="btn btn-danger float-end" @onclick="ClearHTML"><i class |
| | | 21 | | <button id="btnCopyHTML" name="btnCopyHTML" class="btn btn-info float-end" @onclick="CopyHTML"><i class="far |
| | | 22 | | </div> |
| | | 23 | | </div> |
| | | 24 | | <div class="row"> |
| | | 25 | | <div class="col"> |
| | | 26 | | <textarea id="markdown" class="form-control" rows="5" @bind="Markdown" placeholder="# Hello"></textarea> |
| | | 27 | | </div> |
| | | 28 | | </div> |
| | | 29 | | <div class="row"> |
| | | 30 | | <div class="col"> |
| | | 31 | | <button id="btnClearMD" name="btnClearMD" class="btn btn-danger float-end" @onclick="ClearMD"><i class="far |
| | | 32 | | <button id="btnCopyMD" name="btnCopyMD" class="btn btn-info float-end" @onclick="CopyMD"><i class="far fa-co |
| | | 33 | | </div> |
| | | 34 | | </div> |
| | | 35 | | |
| | | 36 | | <hr/> |
| | | 37 | | |
| | | 38 | | <div class="row"> |
| | | 39 | | <div class="col"> |
| | | 40 | | <p>Powered by <a href="https://github.com/mysticmind/reversemarkdown-net/" target="_blank">ReverseMarkdown</ |
| | | 41 | | </div> |
| | | 42 | | </div> |
| | | 43 | | </div> |
| | | 44 | | |
| | | 45 | | @code { |
| | | 46 | | [Parameter] |
| | 25 | 47 | | public string HTML { get; set; } |
| | | 48 | | |
| | | 49 | | [Parameter] |
| | 19 | 50 | | public string Markdown { get; set; } |
| | | 51 | | |
| | | 52 | | // protected override async Task OnInitializedAsync() |
| | | 53 | | // { |
| | | 54 | | // // html = "<html><body><h1>Hello</h1></body></html>"; |
| | | 55 | | // HTML = "<html><body><h1>Hello</h1></body></html>"; |
| | | 56 | | // Markdown = string.Empty; |
| | | 57 | | // } |
| | | 58 | | |
| | | 59 | | private void Convert() |
| | 3 | 60 | | { |
| | 3 | 61 | | var writer = new StringWriter(); |
| | 3 | 62 | | WebUtility.HtmlDecode(HTML, writer); |
| | 3 | 63 | | HTML = writer.ToString(); |
| | | 64 | | |
| | 3 | 65 | | var converter = new ReverseMarkdown.Converter(); |
| | 3 | 66 | | Markdown = converter.Convert(HTML); |
| | 3 | 67 | | } |
| | | 68 | | |
| | | 69 | | private void ClearHTML() |
| | 0 | 70 | | { |
| | 0 | 71 | | HTML = string.Empty; |
| | 0 | 72 | | } |
| | | 73 | | |
| | | 74 | | async Task CopyHTML() |
| | 0 | 75 | | { |
| | 0 | 76 | | await JSRuntime.InvokeVoidAsync("navigator.clipboard.writeText", HTML); |
| | 0 | 77 | | } |
| | | 78 | | |
| | | 79 | | private void ClearMD() |
| | 0 | 80 | | { |
| | 0 | 81 | | Markdown = string.Empty; |
| | 0 | 82 | | } |
| | | 83 | | |
| | | 84 | | async Task CopyMD() |
| | 0 | 85 | | { |
| | 0 | 86 | | await JSRuntime.InvokeVoidAsync("navigator.clipboard.writeText", Markdown); |
| | 0 | 87 | | } |
| | | 88 | | |
| | | 89 | | } |