feat: 添加 使用html 笔记

master
bicijinlian 2 years ago
parent 0ccf89b8b4
commit 69247d859a

@ -0,0 +1,16 @@
.demo-outer {
background-color: green;
padding: 50px;
}
.demo-inner {
width: 400px;
height: 100px;
line-height: 96px;
margin: 0 auto;
border: 2px solid darkorange;
background-color: cadetblue;
text-align: center;
font-size: 25px;
}

@ -0,0 +1,57 @@
/*#region*/
.container {
/* width: 700px; */
min-height: 400px;
margin: 0px auto;
background-color: purple;
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
align-items: center;
}
.item {
width: 200px;
height: 100px;
line-height: 100px;
text-align: center;
font-size: 30px;
}
.item::after {
content: "点我变色";
}
.item1 {
background-color: blueviolet;
}
.item2 {
background-color: green;
}
.item3 {
background-color: skyblue;
}
.item4 {
background-color: coral;
}
.item5 {
background-color: deeppink;
}
.item6 {
background-color: forestgreen;
}
.item7 {
background-color: saddlebrown;
}
/* #endregion */

@ -0,0 +1,120 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>引用了css 和 js文件的示例</title>
<link rel="stylesheet" href="./index.css">
<style>
/*#region*/
.container {
width: 800px;
min-height: 400px;
margin: 20px auto;
background-color: rgb(132, 121, 110);
display: flex;
}
.item {
text-align: center;
font-size: 30px;
}
/* 子项的宽高
是精心设计过的,大小不一、有无设置不同,只有这样才能测试出各种情况。统一宽高的情况下,变得简单了却难以测试。
*/
/* 子项的文本内容
也是精心设计过的x便于观察基线(baseline)、g下部凸出、j是全高字符等便于测试否则aling-itme:baseline等测试不出来效果。
*/
.item1 {
height: 150px;
background-color: blueviolet;
}
.item2 {
/* width: 200px;
height: 200px; */
background-color: green;
}
.item3 {
font-size: 100px;
width: 250px;
height: 150px;
background-color: skyblue;
}
.item4 {
width: 200px;
height: 200px;
background-color: coral;
}
.item5 {
width: 200px;
height: 100px;
background-color: deeppink;
}
.item6 {
background-color: forestgreen;
}
.item7 {
width: 200px;
height: 120px;
background-color: saddlebrown;
}
.item2::after,.item6::after {
content: "无高";
}
.item1::after,.item4::after {
content: "无宽";
}
/* #endregion */
</style>
</head>
<body>
<div class="container">
<div class="item item1">x</div>
<div class="item item2">x</div>
<div class="item item3">
xgj3
</div>
</div>
<div class="container">
<div class="item item1">x</div>
<div class="item item2">x</div>
<div class="item item3">
xgj3
</div>
<div class="item item4">x</div>
<div class="item item5">
xgj5
</div>
<div class="item item6">x</div>
<div class="item item7">
xgj7
</div>
</div>
<script src="./index.js"></script>
<script>
console.log('hello from JavaScript!');
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>笔记本直接引用外部 html 文件</title>
<link rel="stylesheet" href="./css/index.css">
<!-- 相对于notebook文件的路径 -->
<link rel="stylesheet" href="./WebSite/css/index.css">
</head>
<body>
<h2>html中引用的外部css文件、js文件路径要相对于笔记本文件而不是html本身的路径。</h2>
<div class="container">
<div class="item item1" onclick="alert(1)"></div>
<div class="item item2"></div>
<div class="item item3"></div>
<div class="item item4"></div>
<div class="item item5"></div>
<div class="item item6"></div>
<div class="item item7"></div>
</div>
<script src="js/index.js"></script>
<!-- 相对于notebook文件的路径 -->
<script src="./WebSite/js/index.js"></script>
</body>
</html>

@ -0,0 +1,15 @@
// #region 切换背景颜色
var flag =false;
document.getElementById("js-file-test").onclick = function()
{
if(flag)
{
event.currentTarget.style.backgroundColor = "goldenrod";
}
else
{
event.currentTarget.style.backgroundColor = "green";
}
flag = !flag;
};
// #endregion

@ -0,0 +1,20 @@
// #region 随机背景色
function GetRandomColor() {
var r = Math.floor(Math.random() * 255);
var g = Math.floor(Math.random() * 255);
var b = Math.floor(Math.random() * 255);
return "rgb(" + r + "," + g + "," + b + ")";
}
function ChangeColor(event){
event.currentTarget.style.backgroundColor = GetRandomColor();
};
//设置单击事件
var items = document.getElementsByClassName("item");
for (var i = 0; i < items.length; i++) {
items[i].onclick = ChangeColor;
}
// #endregion

@ -18,7 +18,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -27,39 +27,7 @@
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>RazorInteractive, 1.1.8</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"Loading extensions from `C:\\Users\\ruyu\\.nuget\\packages\\razorinteractive\\1.1.8\\interactive-extensions\\dotnet\\RazorInteractive.dll`"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<details>\n",
" <summary>Renders the code block as Razor markup in dotnet-interactive notebooks.</summary>\n",
" <p>This extension adds a new kernel that can render Razor markdown.</p>\n",
" <p>All C# and F# variables are available in the <code>@Model</code> property.</p>\n",
"</details>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"// 可以先添加包源\n",
"\n",
@ -76,7 +44,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -100,29 +68,48 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 3,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
"language": "razor"
},
"polyglot_notebook": {
"kernelName": "csharp"
"kernelName": "razor"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div id=\"razorExtension9a8350f87bbf4b5c8c15a93fb29a3f0f\"> \n",
"<ol>\n",
" <li style=\"color: red;\">red</li>\n",
" <li style=\"color: green;\">green</li>\n",
" <li style=\"color: blue;\">blue</li>\n",
"</ol></div>"
]
},
"metadata": {},
"output_type": "display_data"
"ename": "Error",
"evalue": "Required command was not provided.\r\nValue '{' not found in kernel .NET\r\nValue 'foreach(var' not found in kernel .NET\r\nUnrecognized command or argument '#!razor'.\r\nUnrecognized command or argument 'var'.\r\nUnrecognized command or argument 'colors'.\r\nUnrecognized command or argument '='.\r\nUnrecognized command or argument 'new'.\r\nUnrecognized command or argument '[]'.\r\nUnrecognized command or argument '{'.\r\nUnrecognized command or argument 'red'.\r\nUnrecognized command or argument ','.\r\nUnrecognized command or argument 'green'.\r\nUnrecognized command or argument ','.\r\nUnrecognized command or argument 'blue'.\r\nUnrecognized command or argument '};'.\r\nUnrecognized command or argument '}'.\r\nUnrecognized command or argument '<ol>'.\r\nUnrecognized command or argument 'color'.\r\nUnrecognized command or argument 'in'.\r\nUnrecognized command or argument 'colors)'.\r\nUnrecognized command or argument '{'.\r\nUnrecognized command or argument '<li'.\r\nUnrecognized command or argument 'style=color: @color;>@color</li>'.\r\nUnrecognized command or argument '}'.\r\nUnrecognized command or argument '</ol>'.",
"output_type": "error",
"traceback": [
"Required command was not provided.\r\n",
"Value '{' not found in kernel .NET\r\n",
"Value 'foreach(var' not found in kernel .NET\r\n",
"Unrecognized command or argument '#!razor'.\r\n",
"Unrecognized command or argument 'var'.\r\n",
"Unrecognized command or argument 'colors'.\r\n",
"Unrecognized command or argument '='.\r\n",
"Unrecognized command or argument 'new'.\r\n",
"Unrecognized command or argument '[]'.\r\n",
"Unrecognized command or argument '{'.\r\n",
"Unrecognized command or argument 'red'.\r\n",
"Unrecognized command or argument ','.\r\n",
"Unrecognized command or argument 'green'.\r\n",
"Unrecognized command or argument ','.\r\n",
"Unrecognized command or argument 'blue'.\r\n",
"Unrecognized command or argument '};'.\r\n",
"Unrecognized command or argument '}'.\r\n",
"Unrecognized command or argument '<ol>'.\r\n",
"Unrecognized command or argument 'color'.\r\n",
"Unrecognized command or argument 'in'.\r\n",
"Unrecognized command or argument 'colors)'.\r\n",
"Unrecognized command or argument '{'.\r\n",
"Unrecognized command or argument '<li'.\r\n",
"Unrecognized command or argument 'style=color: @color;>@color</li>'.\r\n",
"Unrecognized command or argument '}'.\r\n",
"Unrecognized command or argument '</ol>'."
]
}
],
"source": [

@ -0,0 +1,479 @@
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"在多语言笔记本中使用 html\n",
"======================="
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 方式一:纯(传统)html方式"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### hello html"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"<!-- 主动声明单元格为 html 单元格,可以省略后在右下方选择! -->\n",
"#!html\n",
"\n",
"hellow html !\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 使用完整html文档"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"<!DOCTYPE html>\n",
"<html lang=\"zh-CN\">\n",
"<head>\n",
" <meta charset=\"UTF-8\">\n",
" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n",
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n",
" <title>完整html文档</title>\n",
"</head>\n",
"<body>\n",
" <div>\n",
" hello, html !\n",
" </div>\n",
"</body>\n",
"</html>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 使用html片断"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"<!-- html片断与完整html文档用法基本一样 -->\n",
"#!html\n",
"\n",
"<div>\n",
" 使用html片断\n",
"</div>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 使用:行内(内联)样式"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"#!html\n",
"<!-- 使用内联(行内)样式 -->\n",
"<div style=\"background-color: purple; padding: 50px;\">\n",
" <div style=\"width:400px; height:100px; line-height: 96px; margin: 0 auto; border: 2px solid darkorange; background-color: cadetblue; text-align: center; font-size: 25px;\">\n",
" 使用 <strong>行内</strong> 样式\n",
" </div>\n",
"</div>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 使用:内部样式"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [],
"source": [
"#!html\n",
"<!-- 使用内部样式 -->\n",
"<style>\n",
" .outer {\n",
" background-color: purple; \n",
" padding: 50px;\n",
" }\n",
" .inner {\n",
" width:400px; \n",
" height:100px; \n",
" line-height: 96px; \n",
" margin: 0 auto; \n",
" border: 2px solid darkorange; \n",
" background-color: cadetblue; \n",
" text-align: center; \n",
" font-size: 25px;\n",
" }\n",
"</style>\n",
"<div class=\"outer\">\n",
" <div class=\"inner\">\n",
" 使用 <strong>内部</strong> 样式\n",
" </div>\n",
"</div>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 引用:外部样式表文件"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"#!html\n",
"<!-- 引用外部样式表文件 -->\n",
"<link rel=\"stylesheet\" href=\"./WebSite/css/demo.css\">\n",
"<div class=\"demo-outer\">\n",
" <div class=\"demo-inner\">\n",
" 引用 <strong>外部</strong> 样式表文件\n",
" </div>\n",
"</div>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 使用:嵌入式 javascript [基本不用]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [],
"source": [
"#!html\n",
"<!-- 嵌入式 javascript -->\n",
"<div \n",
" style=\"background-color: purple; margin: 10px auto; padding: 50px; font-size: 50px; text-align: center;\" \n",
" onclick='event.currentTarget.style.backgroundColor=\"chocolate\";'>\n",
" 点我改变背景变色\n",
"</div>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 使用行内 javascript"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"#!html\n",
"<!-- 行内 javascript -->\n",
"<div id=\"js-test\"\n",
" style=\"background-color: purple; margin: 10px auto; padding: 50px; font-size: 50px; text-align: center;\" \n",
" onclick='event.currentTarget.style.backgroundColor=\"chocolate\";'>\n",
" 点我切换背景颜色\n",
"</div>\n",
"<script>\n",
" var flag =false;\n",
" document.getElementById(\"js-test\").onclick = function()\n",
" {\n",
" if(flag)\n",
" {\n",
" event.currentTarget.style.backgroundColor = \"goldenrod\";\n",
" }\n",
" else\n",
" {\n",
" event.currentTarget.style.backgroundColor = \"green\";\n",
" }\n",
" flag = !flag;\n",
" };\n",
"</script>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 引用:外部 javascript 文件"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"#!html\n",
"<!-- 行内 javascript -->\n",
"<div id=\"js-file-test\"\n",
" style=\"background-color: purple; margin: 10px auto; padding: 50px; font-size: 50px; text-align: center;\" \n",
" onclick='event.currentTarget.style.backgroundColor=\"chocolate\";'>\n",
" 点我切换背景颜色\n",
"</div>\n",
"<script src=\"./WebSite/js/index.js\"></script>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 引用外部html文件"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"有问题html中引用的外部css文件、js文件路径要相对于笔记本文件而不是html本身的路径。这点特别恶心目前没找到完美的解决方法。可以入两次暂时解决演示用或者笔记与html文件同目录"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "html"
},
"polyglot_notebook": {
"kernelName": "html"
}
},
"outputs": [],
"source": [
"#!html\n",
"<!-- 直接使用外部html文件 -->\n",
"#!import ./WebSite/index.html"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 方式二:结合 asp.net 的 Razor方式 "
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"注意此方法动态生成html可以操作数据库、请求第三方接口等也可以使用共享变量非常方便。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [],
"source": [
"// 添加包源(省略即使用默认nuget包源)\n",
"#i \"nuget:https://api.nuget.org/v3/index.json\"\n",
"\n",
"// 引用Razor包\n",
"#r \"nuget: RazorInteractive\"\n",
"\n",
"//使用 Razor 生成 html或html片断"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [],
"source": [
"#!razor\n",
"\n",
"<!DOCTYPE html>\n",
"<html lang=\"zh-CN\">\n",
"<head>\n",
" <meta charset=\"UTF-8\">\n",
" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n",
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n",
" <title>笔记本直接引用外部 html 文件</title>\n",
" <!-- 相对于notebook文件的路径 -->\n",
" <link rel=\"stylesheet\" href=\"./WebSite/css/index.css\">\n",
" <script>\n",
" function GetRandomColor() {\n",
" var r = Math.floor(Math.random() * 255);\n",
" var g = Math.floor(Math.random() * 255);\n",
" var b = Math.floor(Math.random() * 255);\n",
" \n",
" return \"rgb(\" + r + \",\" + g + \",\" + b + \")\";\n",
" }\n",
"\n",
" function RandomColor(event) {\n",
" event.currentTarget.style.backgroundColor = GetRandomColor();\n",
" };\n",
"</script>\n",
"</head>\n",
"<body>\n",
" <div class=\"container\">\n",
" @{\n",
" for(int i=1;i<=7; i++)\n",
" {\n",
" <div class=\"@($\"item item{i}\")\"></div>\n",
" }\n",
" }\n",
" </div>\n",
"</body>\n",
"<script src=\"./WebSite/js/index.js\"></script>\n",
"</html>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
},
"language_info": {
"name": "polyglot-notebook"
},
"orig_nbformat": 4,
"polyglot_notebook": {
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
{
"aliases": [],
"name": "csharp"
},
{
"aliases": [],
"name": "razor"
}
]
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading…
Cancel
Save