Skip to content

Instantly share code, notes, and snippets.

@GordonBeeming
Created December 19, 2022 19:52
Show Gist options
  • Save GordonBeeming/bc5abba2926b970c28de68d7d979bdab to your computer and use it in GitHub Desktop.
Save GordonBeeming/bc5abba2926b970c28de68d7d979bdab to your computer and use it in GitHub Desktop.
Code samples (not exact but will get you going) for How to use the same editor as Visual Studio Code in your sites https://www.youtube.com/watch?v=BnmdyT7iJ9U
@model AddPostContentModel
@{
Layout = null;
var instanceId = Guid.NewGuid().ToString("N");
}
<div class="control-border border border-info p-1">
<a class="btn btn-primary" asp-action="AddHtml" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)">html</a>
<div class="btn dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
common code
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="azcli">Azure CLI</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="bat">Batch</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="csharp">C#</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="html">HTML</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="javascript">JavaScript</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="json">JSON</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="markdown">Markdown</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="plaintext">Plain Text</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="powershell">PowerShell</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="razor">Razor</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="sql">SQL</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="typescript">TypeScript</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="xml">XML</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="yaml">YAML</a>
</div>
</div>
<div class="btn dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
code a - m
</button>
<div class="dropdown-menu">
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="abap">abap</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="aes">aes</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="apex">Apex</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="postiats">ATS</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="c">C</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="cpp">C++</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="clojure">clojure</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="coffeescript">CoffeeScript</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="csp">CSP</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="css">CSS</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="msdax">DAX</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="dockerfile">Dockerfile</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="fsharp">F#</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="go">Go</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="graphql">GraphQL</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="handlebars">Handlebars</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="ini">Ini</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="java">Java</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="kotlin">Kotlin</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="less">Less</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="lua">Lua</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="mips">MIPS</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="mysql">MySQL</a>
</div>
</div>
<div class="btn dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
code o - z
</button>
<div class="dropdown-menu">
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="objective-c">Objective-C</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="pascal">Pascal</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="pascaligo">Pascaligo</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="perl">Perl</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="php">PHP</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="pgsql">PostgreSQL</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="powerquery">PQ</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="pug">Pug</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="python">Python</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="r">R</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="redis">redis</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="redshift">Redshift</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="ruby">Ruby</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="rust">Rust</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="scss">Sass</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="scheme">scheme</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="shell">Shell</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="sb">Small Basic</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="sol">sol</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="st">StructuredText</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="swift">Swift</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="tcl">tcl</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="twig">Twig</a>
<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="vb">Visual Basic</a>
</div>
</div>
<a class="btn btn-primary" asp-action="AddImage" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)">image</a>
</div>
@*
var langs = monaco.languages.getLanguages();
langs.sort(function(a, b) {
var textA = a.aliases[0].toUpperCase();
var textB = b.aliases[0].toUpperCase();
return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
});
var text = '';
var meh = $.each(langs, function (index, lang) {
text += '<a class="dropdown-item" asp-action="AddCode" asp-route-id="@(Model.Id)" asp-route-nextOrderNumber="@(Model.NextOrderNumber)" asp-route-language="'+lang.id+'">'+lang.aliases[0]+'</a>\r\n';
});
console.log(text);
*@
@model CodeContentBlockContext
@{
Layout = null;
var instanceId = Guid.NewGuid().ToString("N");
}
<pre id='pre@(instanceId)' data-lang='@(Model.Language)'></pre>
<script>
//monaco.editor.colorizeElement(document.getElementById('pre@(instanceId)'));
var codeContent = @Html.Raw(Json.Serialize(Model.Code));
var editor@(instanceId) = monaco.editor.create(document.getElementById('pre@(instanceId)'), {
value: codeContent,
language: "@(Model.Language)",
theme: "vs",
lineNumbers: 'on',
glyphMargin: false,
vertical: 'auto',
horizontal: 'auto',
verticalScrollbarSize: 10,
horizontalScrollbarSize: 10,
scrollBeyondLastLine: false,
readOnly: true,
automaticLayout: true,
minimap: {
enabled: false
},
lineHeight:19,
});
$("#pre@(instanceId)").height((editor@(instanceId).getModel().getLineCount() * 19) + 10); // 19 = line height, 10 = vertical scrollbar height
</script>
@model AddOrEditCodeToPost
@{
ViewData["Title"] = "Blogs Admin";
}
<h1>Add Code: @(Model.Data.BlogTitle)</h1>
<link rel="stylesheet" data-name="vs/editor/editor.main" href="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.18.0/min/vs/editor/editor.main.css">
<script>var require = { paths: { 'vs': 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.18.0/min/vs' } };</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.18.0/min/vs/loader.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.18.0/min/vs/editor/editor.main.nls.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.18.0/min/vs/editor/editor.main.js"></script>
<pre id="CodeDrop" data-lang="@(Model.Language)" style="height:700px;"></pre>
<script>
//monaco.editor.colorizeElement(document.getElementById('Code'));
var codeContent = @Html.Raw(Json.Serialize(Model.Code));
// var elementHeight = $("#Code").height($("#CodeDrop").height());
$("#CodeDrop").html('');
window.editor = monaco.editor.create(document.getElementById('CodeDrop'), {
value: codeContent,
language: "@(Model.Language)",
theme: "vs",
lineNumbers: 'on',
glyphMargin: false,
verticalScrollbarSize: 10,
horizontalScrollbarSize: 10,
scrollBeyondLastLine: true,
readOnly: false,
automaticLayout: true,
minimap: {
enabled: false
},
});
</script>
<form asp-action="@(Model.FormAction)" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
<div class="form-group">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label asp-for="AddPreSpacer" class="control-label"></label>
<input asp-for="AddPreSpacer" class="form-control" />
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label asp-for="AddPostSpacer" class="control-label"></label>
<input asp-for="AddPostSpacer" class="form-control" />
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" onclick="return moveCode();" />
<textarea id="Code" name="Code" style="display:none;"></textarea>
</div>
</div>
</div>
</form>
<div>
<a asp-action="ContentFor" asp-route-id="@(Model.Data.Id)">back to content</a>
</div>
@section Scripts {
<script>
function moveCode() {
$("#Code").val(window.editor.getValue());
console.log(window.editor.getValue());
return true;
}
</script>
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment