Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28942bea17 | ||
|
|
9f3a4e8812 | ||
|
|
5e1351408e | ||
|
|
93afc99e7d | ||
|
|
b9feb2f764 | ||
|
|
97a70bc23b | ||
|
|
437619cfff | ||
|
|
10ef109353 |
46
README.md
46
README.md
@@ -1,8 +1,8 @@
|
||||
## 更新说明
|
||||
> [!IMPORTANT]
|
||||
> NoteToMP 1.3.0版本对主题进行了优化,升级后请先清理旧版本主题文件,再重新下载新版主题。
|
||||
> Note2Any 1.3.0版本对主题进行了优化,升级后请先清理旧版本主题文件,再重新下载新版主题。
|
||||
>
|
||||
> 操作步骤:在NoteToMP插件设置中,先点击『清空主题-清空』,然后点击『获取更多主题-下载』
|
||||
> 操作步骤:在Note2Any插件设置中,先点击『清空主题-清空』,然后点击『获取更多主题-下载』
|
||||
>
|
||||
> 注意:如果修改过主题文件请做备份后再操作。
|
||||
|
||||
@@ -49,30 +49,30 @@
|
||||
```
|
||||
路径日志做了节流:同一文件 3 秒内不重复打印。后续可加"调试开关"以完全关闭。
|
||||
|
||||
### 摘要、封面裁剪、原文链接等ges/screenshot.png)
|
||||
### 摘要、封面裁剪、原文链接等
|
||||
|
||||
## 2、安装
|
||||
首先,**请确认已关闭了Obsidian的安全模式**。如未关闭,请通过**设置——第三方插件——关闭安全模式**关闭。
|
||||
### 2.1 插件安装
|
||||
|
||||
#### 从官方**社区插件市场**安装
|
||||
通过Obsidian**设置——第三方插件——社区插件市场**,输入**NoteToMP**搜索安装。
|
||||
通过Obsidian**设置——第三方插件——社区插件市场**,输入**Note2Any**搜索安装。
|
||||
|
||||
### 2.2 主题资源安装
|
||||
如果采用的是用从插件市场或者Github下载安装的方式,在插件安装完成后还需要再下载主题资源。网盘里的安装包已经集成了主题样式,无需下载。
|
||||
|
||||
**1)通过设置下载**
|
||||
为了尽可能保证插件符合官方规范,主题和代码高亮需要打开Obsidian的**设置**界面,在底部的**第三方插件**——**Note to MP**——**获取更多主题**手动下载。
|
||||
为了尽可能保证插件符合官方规范,主题和代码高亮需要打开Obsidian的**设置**界面,在底部的**第三方插件**——**Note 2 Any**——**获取更多主题**手动下载。
|
||||
|
||||
**2)手动下载**
|
||||
也可以直接在[Release](https://github.com/sunbooshi/note-to-mp/releases)页面下载`assets.zip`文件,解压后放到`.obsidian/plugins/note-to-mp/assets`目录下。
|
||||
也可以直接在[Release](https://biboer.cn/gitea/gavin/note2any/releases)页面下载`assets.zip`文件,解压后放到`.obsidian/plugins/note2any/assets`目录下。
|
||||
|
||||
### 2.3 常见安装问题
|
||||
|
||||
**只有默认主题**
|
||||
确认根据**2.2 主题资源安装**里的步骤操作了,然后检查一下插件目录内容,应如下所示:
|
||||
```
|
||||
.obsidian/plugins/note-to-mp/
|
||||
.obsidian/plugins/note2any/
|
||||
├── assets
|
||||
│ ├── themes.json
|
||||
│ ├── highlights.json
|
||||
@@ -177,36 +177,36 @@ c=+-sqrt(a^2+b^2)
|
||||
```
|
||||
````
|
||||
|
||||
然后打开NoteToMP插件设置,将**自定义样式**(即包含自定义CSS内容的笔记名称),粘贴到**自定义CSS笔记**中即可。如果不使用自定义CSS,留空即可。
|
||||
然后打开Note2Any插件设置,将**自定义样式**(即包含自定义CSS内容的笔记名称),粘贴到**自定义CSS笔记**中即可。如果不使用自定义CSS,留空即可。
|
||||
|
||||
关于自定义CSS的写法可以参考下面的代码
|
||||
```css
|
||||
/* 全局属性
|
||||
* 这里可以设置字体,字体大小,边距,背景颜色等
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
/* 段落 */
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
/* 一级标题 */
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
|
||||
/* 二级标题 */
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
|
||||
/* 三级标题 */
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
@@ -214,38 +214,38 @@ c=+-sqrt(a^2+b^2)
|
||||
/* 无序列表整体样式
|
||||
* list-style-type: square|circle|disc;
|
||||
*/
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
/* 加粗 */
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
/* 斜体 */
|
||||
.note-to-mp em {
|
||||
.note2any em {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
/* 加粗斜体 */
|
||||
.note-to-mp em strong {
|
||||
.note2any em strong {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
/* 删除线 */
|
||||
.note-to-mp del {
|
||||
.note2any del {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
|
||||
/* 分隔线
|
||||
*/
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
/* 图片
|
||||
*/
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
/* 注:请在大括号内改写!!! */
|
||||
}
|
||||
/*
|
||||
@@ -288,7 +288,7 @@ c=+-sqrt(a^2+b^2)
|
||||
|
||||
例如这篇文章[几个让公众号排版更精致的小技巧,手机上也可以!](https://mp.weixin.qq.com/s/Q4_pV9TW8un3qZ0vrUvD1A)👈️使用的自定义样式如下:
|
||||
```css
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-family: Optima-regular, Optima, "Microsoft YaHei", PingFangSC-regular, serif;
|
||||
}
|
||||
|
||||
@@ -313,7 +313,7 @@ section .note-callout-example {
|
||||
background-color: rgba(90, 185, 131, 0.1);
|
||||
}
|
||||
```
|
||||
上面的例子,通过`.note-to-mp`指定了文章的字体,通过`h2 strong`单独定义了h2标题下strong的样式,这样可以在标题中通过使用粗体增加了一个边框样式。通过`h2`定义了h2标题的底部线条的宽度和文本颜色。这样配合**Olive Dunk**主题就形成了自己的风格。
|
||||
上面的例子,通过`.note2any`指定了文章的字体,通过`h2 strong`单独定义了h2标题下strong的样式,这样可以在标题中通过使用粗体增加了一个边框样式。通过`h2`定义了h2标题的底部线条的宽度和文本颜色。这样配合**Olive Dunk**主题就形成了自己的风格。
|
||||
### 公众号名片
|
||||
|
||||
请参考 https://mp.weixin.qq.com/s/1wYd15Irmv9BPabgp5XMCA
|
||||
@@ -341,7 +341,7 @@ NoteToMP插件支持该语法。
|
||||
![[文件名称#^段落标记]]
|
||||
```
|
||||
|
||||
在NoteToMP插件中有两种展示文件嵌入内容的样式,一种是引用,也就是Obsidian默认的方式,一种是正文,相当于模板的方式。与模板不同的是,采用嵌入方式内容会跟随被嵌入文件的内容更改。
|
||||
在Note2Any插件中有两种展示文件嵌入内容的样式,一种是引用,也就是Obsidian默认的方式,一种是正文,相当于模板的方式。与模板不同的是,采用嵌入方式内容会跟随被嵌入文件的内容更改。
|
||||
|
||||
## 批量发布(Batch Publish)
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
/* =========================================================== */
|
||||
/* 笔记样式 https://github.com/xbmlz/hexo-theme-maple */
|
||||
/* =========================================================== */
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
color: #555;
|
||||
font-family: "Inter", Inter var, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
||||
}
|
||||
|
||||
.note-to-mp:last-child {
|
||||
.note2any:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.note-to-mp .fancybox-img {
|
||||
.note2any .fancybox-img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.note-to-mp .fancybox-img:hover {
|
||||
.note2any .fancybox-img:hover {
|
||||
opacity: none;
|
||||
border: none;
|
||||
}
|
||||
@@ -26,7 +26,7 @@
|
||||
Heading
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
color: #222;
|
||||
font-weight: 800;
|
||||
font-size: 2.25em;
|
||||
@@ -35,7 +35,7 @@
|
||||
line-height: 1.1111111;
|
||||
}
|
||||
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
color: inherit;
|
||||
font-weight: 700;
|
||||
font-size: 1.5em;
|
||||
@@ -44,7 +44,7 @@
|
||||
line-height: 1.3333333;
|
||||
}
|
||||
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
color: inherit;
|
||||
font-weight: 600;
|
||||
font-size: 1.25em;
|
||||
@@ -53,7 +53,7 @@
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
color: inherit;
|
||||
font-weight: 600;
|
||||
margin-top: 1.5em;
|
||||
@@ -66,7 +66,7 @@
|
||||
Horizontal Rules
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border-color: rgba(125, 125, 125, 0.3);
|
||||
margin-top: 3em;
|
||||
margin-bottom: 3em;
|
||||
@@ -77,7 +77,7 @@
|
||||
Paragraphs
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
@@ -86,16 +86,16 @@
|
||||
Emphasis
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
color: #222;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.note-to-mp em {
|
||||
.note2any em {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.note-to-mp s {
|
||||
.note2any s {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
Blockquotes
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
font-size: 1rem;
|
||||
display: block;
|
||||
margin: 1em 0;
|
||||
@@ -114,11 +114,11 @@
|
||||
border-left: 0.25rem solid rgba(125, 125, 125, 0.302);
|
||||
}
|
||||
|
||||
.note-to-mp blockquote p {
|
||||
.note2any blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.note-to-mp blockquote footer strong {
|
||||
.note2any blockquote footer strong {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
@@ -127,26 +127,26 @@
|
||||
List
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin: 0;
|
||||
/* padding: 0; */
|
||||
margin-top: 1.25em;
|
||||
margin-bottom: 1.25em;
|
||||
}
|
||||
|
||||
.note-to-mp ul>li {
|
||||
.note2any ul>li {
|
||||
position: relative;
|
||||
/* padding-left: 1.75rem; */
|
||||
line-height: 1.8em;
|
||||
}
|
||||
|
||||
|
||||
.note-to-mp ul>li::marker {
|
||||
.note2any ul>li::marker {
|
||||
color: #555;
|
||||
/* font-size: 1.5em; */
|
||||
}
|
||||
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-top: 1.25em;
|
||||
@@ -154,7 +154,7 @@
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
.note-to-mp ol>li {
|
||||
.note2any ol>li {
|
||||
position: relative;
|
||||
padding-left: 0.8em;
|
||||
margin-left: 2em;
|
||||
@@ -166,7 +166,7 @@
|
||||
Link
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
@@ -175,7 +175,7 @@
|
||||
transition: border 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.note-to-mp a:hover {
|
||||
.note2any a:hover {
|
||||
border-bottom: 1px solid #555;
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
Table
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
width: 100%;
|
||||
table-layout: auto;
|
||||
text-align: left;
|
||||
@@ -197,38 +197,38 @@
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table thead {
|
||||
.note2any table thead {
|
||||
color: #000;
|
||||
font-weight: 600;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-color: #d1d5db;
|
||||
}
|
||||
|
||||
.note-to-mp table thead th {
|
||||
.note2any table thead th {
|
||||
vertical-align: bottom;
|
||||
padding-right: 0.5714286em;
|
||||
padding-bottom: 0.5714286em;
|
||||
padding-left: 0.5714286em;
|
||||
}
|
||||
|
||||
.note-to-mp table thead th:first-child {
|
||||
.note2any table thead th:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table thead th:last-child {
|
||||
.note2any table thead th:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody tr {
|
||||
.note2any table tbody tr {
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-color: #e5e7eb;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody tr:last-child {
|
||||
.note2any table tbody tr:last-child {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody td {
|
||||
.note2any table tbody td {
|
||||
vertical-align: top;
|
||||
padding-top: 0.5714286em;
|
||||
padding-right: 0.5714286em;
|
||||
@@ -236,11 +236,11 @@
|
||||
padding-left: 0.5714286em;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody td:first-child {
|
||||
.note2any table tbody td:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody td:last-child {
|
||||
.note2any table tbody td:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
@@ -249,11 +249,11 @@
|
||||
Images
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
margin: 2em auto;
|
||||
}
|
||||
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
@@ -263,7 +263,7 @@
|
||||
Code
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(240, 240, 240);
|
||||
margin: 1.5em 0;
|
||||
@@ -272,7 +272,7 @@
|
||||
font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -284,12 +284,12 @@
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section ul>li {
|
||||
.note2any .code-section ul>li {
|
||||
line-height: 26px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -299,7 +299,7 @@
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
color: #333;
|
||||
background: rgb(250, 250, 250);
|
||||
@@ -308,7 +308,7 @@
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section pre code {
|
||||
.note2any .code-section pre code {
|
||||
color: inherit;
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(217, 215, 209);
|
||||
background-color: rgb(31, 35, 47);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(159, 170, 185);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(60, 66, 84);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(254, 203, 102);
|
||||
color: rgb(217, 215, 209);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(254, 203, 102);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(254, 203, 102) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(254, 203, 102);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(120, 126, 140);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(17, 110, 84);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(207, 208, 203);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(24, 28, 37);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(60, 66, 84);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(207, 208, 203);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(60, 66, 84);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(107, 104, 132);
|
||||
background-color: rgb(250, 250, 250);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(77, 82, 85);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(191, 193, 196);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(255, 106, 0);
|
||||
color: rgb(107, 104, 132);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(255, 106, 0);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(255, 106, 0) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(230, 103, 0);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(141, 143, 149);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(230, 249, 189);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(39, 45, 56);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(255, 255, 255);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(191, 193, 196);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(39, 45, 56);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(191, 193, 196);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: #222222;
|
||||
background-color: white;
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 0 0;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: #262626;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: #bfbfbf;
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid #353535;
|
||||
color: #222222;
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: #353535;
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, #353535 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #2478c5;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: #525252;
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: #fcffc0;
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: #424242;
|
||||
border-collapse: collapse;
|
||||
background-color: white;
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid #bfbfbf;
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: #424242;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #bfbfbf;
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(166, 166, 166);
|
||||
background-color: rgb(46, 50, 53);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(172, 172, 172);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(62, 67, 72);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(155, 183, 196);
|
||||
color: rgb(166, 166, 166);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(155, 183, 196);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(155, 183, 196) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(171, 196, 207);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(122, 122, 122);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(7, 16, 25);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(153, 153, 153);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(47, 51, 55);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(62, 67, 72);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(153, 153, 153);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(62, 67, 72);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(219, 240, 239);
|
||||
background-color: rgb(20, 39, 56);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(211, 200, 69);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(16, 36, 50);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(252, 133, 30);
|
||||
color: rgb(219, 240, 239);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(252, 133, 30);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(252, 133, 30) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(54, 201, 155);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(172, 191, 195);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(61, 0, 77);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(225, 239, 243);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(21, 45, 62);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(16, 36, 50);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(225, 239, 243);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(16, 36, 50);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: #222222;
|
||||
background-color: #F9F9F9;
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: #262626;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: #bfbfbf;
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid #2478c5;
|
||||
color: #222222;
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: #2478c5;
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, #2478c5 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #2478c5;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: #525252;
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: #d3ffa4;
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: #424242;
|
||||
border-collapse: collapse;
|
||||
background-color: white;
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid #bfbfbf;
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: #424242;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #bfbfbf;
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(0, 0, 0);
|
||||
background-color: rgb(251, 250, 252);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(0, 0, 0);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(199, 199, 199);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(127, 127, 127);
|
||||
color: rgb(0, 0, 0);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(127, 127, 127);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(127, 127, 127) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(80, 112, 139);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(128, 126, 128);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(254, 255, 83);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(38, 37, 38);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(253, 253, 253);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(199, 199, 199);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(38, 37, 38);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(199, 199, 199);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(221, 221, 221);
|
||||
background-color: rgb(30, 32, 34);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(203, 219, 229);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(87, 87, 87);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(74, 168, 251);
|
||||
color: rgb(221, 221, 221);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(74, 168, 251);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(74, 168, 251) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(107, 202, 251);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(111, 115, 115);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(38, 60, 146);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(255, 254, 255);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(36, 36, 36);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(87, 87, 87);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(255, 254, 255);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(87, 87, 87);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -17,10 +17,10 @@
|
||||
* 各个属性的默认值为 chrome 的默认样式,见 variables/default.scss。
|
||||
*/
|
||||
/**
|
||||
* MWeb 包裹 markdown 的容器是 .note-to-mp
|
||||
* MWeb 包裹 markdown 的容器是 .note2any
|
||||
* Typora 中是 #write
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
line-height: 1.6em;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
margin: 0 0;
|
||||
@@ -36,11 +36,11 @@
|
||||
/* table */
|
||||
/* svg */
|
||||
}
|
||||
.note-to-mp p, .note-to-mp details, .note-to-mp dl, .note-to-mp ol, .note-to-mp ul, .note-to-mp pre, .note-to-mp xmp, .note-to-mp plaintext, .note-to-mp listing, .note-to-mp blockquote, .note-to-mp table, .note-to-mp figure, .note-to-mp hr {
|
||||
.note2any p, .note2any details, .note2any dl, .note2any ol, .note2any ul, .note2any pre, .note2any xmp, .note2any plaintext, .note2any listing, .note2any blockquote, .note2any table, .note2any figure, .note2any hr {
|
||||
margin-top: 0.75em;
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
margin-top: 1.5em;
|
||||
@@ -48,7 +48,7 @@
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
margin-top: 1.5em;
|
||||
@@ -56,7 +56,7 @@
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.17em;
|
||||
font-weight: bold;
|
||||
margin-top: 1.5em;
|
||||
@@ -64,7 +64,7 @@
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
margin-top: 1.5em;
|
||||
@@ -72,7 +72,7 @@
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 0.83em;
|
||||
font-weight: bold;
|
||||
margin-top: 1.5em;
|
||||
@@ -80,7 +80,7 @@
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 0.67em;
|
||||
font-weight: bold;
|
||||
margin-top: 1.5em;
|
||||
@@ -88,91 +88,91 @@
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre, .note-to-mp xmp, .note-to-mp plaintext, .note-to-mp listing {
|
||||
.note2any pre, .note2any xmp, .note2any plaintext, .note2any listing {
|
||||
font-family: monospace, Menlo-Regular, Menlo, Monaco, Consolas, "Courier New";
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp li + li {
|
||||
.note2any li + li {
|
||||
margin-top: 0.25em;
|
||||
}
|
||||
.note-to-mp ul ul, .note-to-mp ol ul, .note-to-mp ul ol, .note-to-mp ol ol {
|
||||
.note2any ul ul, .note2any ol ul, .note2any ul ol, .note2any ol ol {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp .task-list-item {
|
||||
.note2any .task-list-item {
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: -webkit-link;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b, .note-to-mp strong {
|
||||
.note2any b, .note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i, .note-to-mp cite, .note-to-mp em, .note-to-mp var, .note-to-mp address, .note-to-mp dfn {
|
||||
.note2any i, .note2any cite, .note2any em, .note2any var, .note2any address, .note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp code, .note-to-mp kbd, .note-to-mp tt, .note-to-mp samp {
|
||||
.note2any code, .note2any kbd, .note2any tt, .note2any samp {
|
||||
font-family: monospace, Menlo-Regular, Menlo, Monaco, Consolas, "Courier New";
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
padding: 0.2em 0;
|
||||
background-color: yellow;
|
||||
}
|
||||
.note-to-mp del, .note-to-mp s {
|
||||
.note2any del, .note2any s {
|
||||
color: inherit;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: black;
|
||||
border-collapse: collapse;
|
||||
background-color: white;
|
||||
border-spacing: 2px;
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp th, .note-to-mp td {
|
||||
.note2any th, .note2any td {
|
||||
border-color: gray;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
.note-to-mp th {
|
||||
.note2any th {
|
||||
padding: 4px 8px;
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp td {
|
||||
.note2any td {
|
||||
padding: 4px 8px;
|
||||
font-size: 1em;
|
||||
font-weight: normal;
|
||||
}
|
||||
.note-to-mp div[id^=mweb-chart-ele] svg {
|
||||
.note2any div[id^=mweb-chart-ele] svg {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px gray;
|
||||
margin: 1.5em 0;
|
||||
@@ -180,7 +180,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: monospace, Menlo-Regular, Menlo, Monaco, Consolas, "Courier New";
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -188,12 +188,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: monospace, Menlo-Regular, Menlo, Monaco, Consolas, "Courier New";
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -204,10 +204,10 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section ul li {
|
||||
.note2any .code-section ul li {
|
||||
margin: 0;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(212, 212, 212);
|
||||
background-color: rgb(0, 0, 0);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(252, 206, 35);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(29, 29, 29);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(242, 148, 41);
|
||||
color: rgb(212, 212, 212);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(242, 148, 41);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(242, 148, 41) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(227, 146, 9);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(146, 147, 146);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(16, 68, 3);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(229, 227, 229);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(16, 16, 16);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(29, 29, 29);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(229, 227, 229);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(29, 29, 29);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(255, 255, 255);
|
||||
background-color: rgb(53, 56, 70);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(80, 250, 123);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgba(187, 145, 248, 0.4);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(205, 174, 249);
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(205, 174, 249);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(205, 174, 249) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(139, 233, 253);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(178, 184, 163);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(95, 99, 117);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(249, 249, 245);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(31, 32, 42);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgba(187, 145, 248, 0.4);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(249, 249, 245);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgba(187, 145, 248, 0.4);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(101, 96, 101);
|
||||
background-color: rgb(251, 250, 249);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(138, 74, 169);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(211, 197, 211);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(202, 124, 208);
|
||||
color: rgb(101, 96, 101);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(202, 124, 208);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(202, 124, 208) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(183, 71, 175);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(146, 142, 147);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(242, 193, 209);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(89, 84, 89);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(255, 253, 253);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(211, 197, 211);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(89, 84, 89);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(211, 197, 211);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(75, 53, 8);
|
||||
background-color: rgb(250, 248, 245);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(99, 90, 71);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgba(182, 173, 155, 0.3);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(115, 144, 201);
|
||||
color: rgb(75, 53, 8);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(115, 144, 201);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(115, 144, 201) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(11, 53, 135);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(136, 102, 42);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(211, 255, 164);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(66, 66, 66);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(255, 252, 249);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgba(182, 173, 155, 0.3);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(66, 66, 66);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgba(182, 173, 155, 0.3);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(69, 82, 96);
|
||||
background-color: rgb(240, 240, 240);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(61, 81, 109);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(200, 205, 218);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(160, 76, 107);
|
||||
color: rgb(69, 82, 96);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(160, 76, 107);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(160, 76, 107) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(128, 57, 75);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgba(69, 82, 96, 0.7);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(211, 255, 164);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(62, 74, 98);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(248, 247, 249);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(200, 205, 218);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(62, 74, 98);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(200, 205, 218);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(106, 169, 185);
|
||||
background-color: rgb(17, 21, 28);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(46, 184, 140);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(18, 42, 63);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(42, 168, 137);
|
||||
color: rgb(106, 169, 185);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(42, 168, 137);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(42, 168, 137) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(242, 130, 90);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgba(89, 156, 171, 0.7);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(43, 56, 79);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(89, 156, 171);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(10, 23, 34);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(18, 42, 63);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(89, 156, 171);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(18, 42, 63);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
padding: 0 1em;
|
||||
color: #595959;
|
||||
font-size: 16px;
|
||||
@@ -11,7 +11,7 @@
|
||||
/* 主题自定义 end */
|
||||
/* 布局,一般不需要改动 */
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
margin-left: 0;
|
||||
background-color: #ebf4ff;
|
||||
border-color: #7f9cf5;
|
||||
@@ -19,34 +19,34 @@
|
||||
padding-bottom: 0.5rem;
|
||||
color: #667eea;
|
||||
}
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
color: #5a67d8;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
border-color: #667eea;
|
||||
}
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp ol,
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp table,
|
||||
.note-to-mp ul {
|
||||
.note2any blockquote,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any ol,
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any table,
|
||||
.note2any ul {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
list-style: decimal;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
list-style: disc;
|
||||
}
|
||||
.note-to-mp ol,
|
||||
.note-to-mp ul {
|
||||
.note2any ol,
|
||||
.note2any ul {
|
||||
padding-left: 2em;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2 {
|
||||
.note2any h1,
|
||||
.note2any h2 {
|
||||
border-color: #5a67d8;
|
||||
border-style: solid;
|
||||
border-top-width: 0px;
|
||||
@@ -56,50 +56,50 @@
|
||||
padding-bottom: 0.25rem;
|
||||
padding-left: 0.75rem;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2 {
|
||||
.note2any h1,
|
||||
.note2any h2 {
|
||||
border-bottom: 1px solid #eaecef !important;
|
||||
border-left-width: 6px;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-bottom: 16px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
border-left: 0.25em solid;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp strong::before {
|
||||
.note2any strong::before {
|
||||
content: "「";
|
||||
}
|
||||
.note-to-mp strong::after {
|
||||
.note2any strong::after {
|
||||
content: "」";
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
.note-to-mp .footnote-ref {
|
||||
.note2any .footnote-ref {
|
||||
border-width: 0px;
|
||||
}
|
||||
.note-to-mp picture img {
|
||||
.note2any picture img {
|
||||
border-radius: 6px;
|
||||
display: block;
|
||||
margin: 10px auto;
|
||||
@@ -107,7 +107,7 @@
|
||||
object-fit: contain;
|
||||
box-shadow: 2px 4px 7px #999;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
margin: 10px auto;
|
||||
@@ -115,7 +115,7 @@
|
||||
border-radius: 6px;
|
||||
box-shadow: 2px 4px 7px #999;
|
||||
}
|
||||
.note-to-mp picture {
|
||||
.note2any picture {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
@@ -123,31 +123,31 @@
|
||||
margin-top: 6px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.note-to-mp .footnotes {
|
||||
.note2any .footnotes {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code,
|
||||
.note-to-mp a {
|
||||
.note2any code,
|
||||
.note2any a {
|
||||
color: #5a67d8;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
border-color: #667eea;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
background-color: #ebf4ff;
|
||||
}
|
||||
.note-to-mp pre > code {
|
||||
.note2any pre > code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #5a67d8;
|
||||
margin: 1.5em 0;
|
||||
@@ -155,7 +155,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -163,12 +163,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -179,6 +179,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
padding: 0 1em;
|
||||
word-break: break-word;
|
||||
line-height: 1.8;
|
||||
@@ -12,32 +12,32 @@
|
||||
background-size: 20px 20px;
|
||||
background-position: center center;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
line-height: 1.5;
|
||||
margin-top: 35px;
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 5px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 30px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
padding-bottom: 12px;
|
||||
font-size: 24px;
|
||||
border-bottom: 1px solid #ececec;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 18px;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1.2em;
|
||||
border-bottom: 2px solid rgb(239, 112, 96);
|
||||
word-spacing: 0px !important;
|
||||
@@ -53,21 +53,21 @@
|
||||
border-top-left-radius: 3px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 15px;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
margin-top: 5px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
line-height: inherit;
|
||||
margin-top: 22px;
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border-top: 1px solid #ddd;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
@@ -75,12 +75,12 @@
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
text-decoration: none;
|
||||
color: #0269c8;
|
||||
border-bottom: 1px solid #d1e9ff;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
display: inline-block !important;
|
||||
font-size: 12px;
|
||||
width: auto;
|
||||
@@ -88,55 +88,55 @@
|
||||
overflow: auto;
|
||||
border: solid 1px #f6f6f6;
|
||||
}
|
||||
.note-to-mp thead {
|
||||
.note2any thead {
|
||||
background: #f6f6f6;
|
||||
color: #000;
|
||||
text-align: left;
|
||||
}
|
||||
.note-to-mp tr:nth-child(2n) {
|
||||
.note2any tr:nth-child(2n) {
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 12px 7px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.note-to-mp td {
|
||||
.note2any td {
|
||||
min-width: 120px;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
color: #666;
|
||||
padding: 1px 23px;
|
||||
margin: 22px 0;
|
||||
border-left: 4px solid #cbcbcb;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.note-to-mp blockquote > p {
|
||||
.note2any blockquote > p {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.note-to-mp ol,
|
||||
.note-to-mp ul {
|
||||
.note2any ol,
|
||||
.note2any ul {
|
||||
padding-left: 28px;
|
||||
}
|
||||
.note-to-mp ol li,
|
||||
.note-to-mp ul li {
|
||||
.note2any ol li,
|
||||
.note2any ul li {
|
||||
margin-bottom: 0;
|
||||
list-style: inherit;
|
||||
}
|
||||
.note-to-mp ol ul,
|
||||
.note-to-mp ol ol,
|
||||
.note-to-mp ul ul,
|
||||
.note-to-mp ul ol {
|
||||
.note2any ol ul,
|
||||
.note2any ol ol,
|
||||
.note2any ul ul,
|
||||
.note2any ul ol {
|
||||
margin-top: 3px;
|
||||
}
|
||||
.note-to-mp ol li {
|
||||
.note2any ol li {
|
||||
padding-left: 6px;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
word-break: break-word;
|
||||
border-radius: 2px;
|
||||
@@ -145,7 +145,7 @@
|
||||
font-size: 0.87em;
|
||||
padding: 0.065em 0.4em;
|
||||
}
|
||||
.note-to-mp .code-section pre code {
|
||||
.note2any .code-section pre code {
|
||||
font-size: inherit;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
@@ -154,7 +154,7 @@
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #cbcbcb;
|
||||
margin: 1.5em 0;
|
||||
@@ -162,7 +162,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -170,12 +170,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -186,6 +186,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -14,26 +14,26 @@
|
||||
/* header */
|
||||
/* spacing */
|
||||
/* table */
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
color: #1f2329;
|
||||
line-height: 1.4;
|
||||
font-weight: 600;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 0.37em;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
margin-left: 0;
|
||||
padding-left: 14px;
|
||||
border-left: 2px solid #3370ff;
|
||||
color: rgba(31, 35, 41, 0.7);
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
@@ -42,7 +42,7 @@
|
||||
color: #3370ff;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 13px 0 12px;
|
||||
border: 0px;
|
||||
height: 1px;
|
||||
@@ -50,41 +50,41 @@
|
||||
background-image: linear-gradient(90deg, rgb(187, 191, 196), rgb(187, 191, 196));
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.note-to-mp ul > li:not([class*=task-list-item]) {
|
||||
.note2any ul > li:not([class*=task-list-item]) {
|
||||
word-wrap: break-all;
|
||||
padding-left: 12px;
|
||||
color: #3370ff;
|
||||
}
|
||||
.note-to-mp ul > li:not([class*=task-list-item]) > section {
|
||||
.note2any ul > li:not([class*=task-list-item]) > section {
|
||||
color: #1f2329;
|
||||
}
|
||||
.note-to-mp ul > li:not([class*=task-list-item])::marker {
|
||||
.note2any ul > li:not([class*=task-list-item])::marker {
|
||||
color: #3370ff;
|
||||
}
|
||||
.note-to-mp ol > li:not([class*=task-list-item]) {
|
||||
.note2any ol > li:not([class*=task-list-item]) {
|
||||
word-wrap: break-all;
|
||||
padding-left: 12px;
|
||||
}
|
||||
.note-to-mp ol > li:not([class*=task-list-item]) > section {
|
||||
.note2any ol > li:not([class*=task-list-item]) > section {
|
||||
color: #1f2329;
|
||||
}
|
||||
.note-to-mp ol > li:not([class*=task-list-item])::marker {
|
||||
.note2any ol > li:not([class*=task-list-item])::marker {
|
||||
color: #3370ff;
|
||||
}
|
||||
.note-to-mp li + li,
|
||||
.note-to-mp ul ul,
|
||||
.note-to-mp ol ul,
|
||||
.note-to-mp ul ol,
|
||||
.note-to-mp ol ol,
|
||||
.note-to-mp li ul,
|
||||
.note-to-mp li ol {
|
||||
.note2any li + li,
|
||||
.note2any ul ul,
|
||||
.note2any ol ul,
|
||||
.note2any ul ol,
|
||||
.note2any ol ol,
|
||||
.note2any li ul,
|
||||
.note2any li ol {
|
||||
margin-top: 4px;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
border-radius: 4px;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
@@ -94,7 +94,7 @@
|
||||
line-height: 1.6em;
|
||||
padding: 0 2px;
|
||||
}
|
||||
.note-to-mp .code-section pre code {
|
||||
.note2any .code-section pre code {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
line-height: inherit;
|
||||
@@ -102,13 +102,13 @@
|
||||
margin: 0;
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
.note-to-mp .code-section ul li {
|
||||
.note2any .code-section ul li {
|
||||
color: inherit;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #dee0e3;
|
||||
margin: 1.5em 0;
|
||||
@@ -116,7 +116,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -124,12 +124,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -140,10 +140,10 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
color: rgb(36, 91, 219);
|
||||
}
|
||||
@@ -14,26 +14,26 @@
|
||||
/* header */
|
||||
/* spacing */
|
||||
/* table */
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
color: #1f2329;
|
||||
line-height: 1.4;
|
||||
font-weight: 600;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 0.37em;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
margin-left: 0;
|
||||
padding-left: 14px;
|
||||
border-left: 2px solid #3370ff;
|
||||
color: rgba(31, 35, 41, 0.7);
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
@@ -42,7 +42,7 @@
|
||||
color: #3370ff;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 13px 0 12px;
|
||||
border: 0px;
|
||||
height: 1px;
|
||||
@@ -50,41 +50,41 @@
|
||||
background-image: linear-gradient(90deg, rgb(187, 191, 196), rgb(187, 191, 196));
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.note-to-mp ul > li:not([class*=task-list-item]) {
|
||||
.note2any ul > li:not([class*=task-list-item]) {
|
||||
word-wrap: break-all;
|
||||
padding-left: 12px;
|
||||
color: #3370ff;
|
||||
}
|
||||
.note-to-mp ul > li:not([class*=task-list-item]) > section {
|
||||
.note2any ul > li:not([class*=task-list-item]) > section {
|
||||
color: #1f2329;
|
||||
}
|
||||
.note-to-mp ul > li:not([class*=task-list-item])::marker {
|
||||
.note2any ul > li:not([class*=task-list-item])::marker {
|
||||
color: #3370ff;
|
||||
}
|
||||
.note-to-mp ol > li:not([class*=task-list-item]) {
|
||||
.note2any ol > li:not([class*=task-list-item]) {
|
||||
word-wrap: break-all;
|
||||
padding-left: 12px;
|
||||
}
|
||||
.note-to-mp ol > li:not([class*=task-list-item]) > section {
|
||||
.note2any ol > li:not([class*=task-list-item]) > section {
|
||||
color: #1f2329;
|
||||
}
|
||||
.note-to-mp ol > li:not([class*=task-list-item])::marker {
|
||||
.note2any ol > li:not([class*=task-list-item])::marker {
|
||||
color: #3370ff;
|
||||
}
|
||||
.note-to-mp li + li,
|
||||
.note-to-mp ul ul,
|
||||
.note-to-mp ol ul,
|
||||
.note-to-mp ul ol,
|
||||
.note-to-mp ol ol,
|
||||
.note-to-mp li ul,
|
||||
.note-to-mp li ol {
|
||||
.note2any li + li,
|
||||
.note2any ul ul,
|
||||
.note2any ol ul,
|
||||
.note2any ul ol,
|
||||
.note2any ol ol,
|
||||
.note2any li ul,
|
||||
.note2any li ol {
|
||||
margin-top: 4px;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
border-radius: 4px;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
@@ -94,7 +94,7 @@
|
||||
line-height: 1.6em;
|
||||
padding: 0 2px;
|
||||
}
|
||||
.note-to-mp .code-section pre code {
|
||||
.note2any .code-section pre code {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
line-height: inherit;
|
||||
@@ -102,13 +102,13 @@
|
||||
margin: 0;
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
.note-to-mp .code-section ul li {
|
||||
.note2any .code-section ul li {
|
||||
color: inherit;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #dee0e3;
|
||||
margin: 1.5em 0;
|
||||
@@ -116,7 +116,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -124,12 +124,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -140,6 +140,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(253, 250, 224);
|
||||
background-color: rgb(24, 24, 30);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(251, 239, 137);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(100, 176, 119);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(209, 95, 38);
|
||||
color: rgb(253, 250, 224);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(209, 95, 38);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(209, 95, 38) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(123, 206, 171);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(204, 204, 204);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(21, 109, 104);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(204, 203, 204);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(27, 26, 34);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(100, 176, 119);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(204, 203, 204);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(100, 176, 119);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(237, 238, 243);
|
||||
background-color: rgb(47, 52, 64);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(217, 221, 231);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(99, 110, 132);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(144, 185, 201);
|
||||
color: rgb(237, 238, 243);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(144, 185, 201);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(144, 185, 201) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(167, 189, 144);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(160, 163, 171);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(155, 98, 100);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(237, 238, 243);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(54, 57, 69);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(99, 110, 132);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(237, 238, 243);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(99, 110, 132);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(66, 63, 55);
|
||||
background-color: rgb(251, 250, 240);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(43, 100, 81);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(221, 219, 214);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(149, 175, 163);
|
||||
color: rgb(66, 63, 55);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(149, 175, 163);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(149, 175, 163) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(33, 95, 79);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(126, 150, 143);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(249, 220, 175);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(89, 88, 82);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(254, 254, 248);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(221, 219, 214);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(89, 88, 82);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(221, 219, 214);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(246, 247, 238);
|
||||
background-color: rgb(17, 28, 42);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(249, 181, 55);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(45, 69, 98);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(249, 181, 55);
|
||||
color: rgb(246, 247, 238);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(249, 181, 55);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(249, 181, 55) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(84, 193, 220);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(176, 176, 176);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(45, 78, 120);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(246, 247, 238);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(23, 33, 52);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(45, 69, 98);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(246, 247, 238);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(45, 69, 98);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: #222222;
|
||||
background-color: #fcfcfc;
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: #262626;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: #bfbfbf;
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid #e06e73;
|
||||
color: #222222;
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: #e06e73;
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, #e06e73 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #de4c4f;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: #525252;
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: #fcffc0;
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: #424242;
|
||||
border-collapse: collapse;
|
||||
background-color: white;
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid #bfbfbf;
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: #424242;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #bfbfbf;
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
color: #595959;
|
||||
font-size: 15px;
|
||||
background-image: linear-gradient(90deg, rgba(60, 10, 30, 0.04) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(60, 10, 30, 0.04) 3%, rgba(0, 0, 0, 0) 3%);
|
||||
@@ -21,101 +21,101 @@
|
||||
/* 分隔线 */
|
||||
/* 表格 */
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
color: #595959;
|
||||
font-size: 15px;
|
||||
line-height: 2;
|
||||
font-weight: 400;
|
||||
}
|
||||
.note-to-mp p + p {
|
||||
.note2any p + p {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
padding: 30px 0;
|
||||
margin: 0;
|
||||
color: #135ce0;
|
||||
font-weight: 600;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
font-size: 22px;
|
||||
margin: 50px 0;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
position: relative;
|
||||
font-size: 20px;
|
||||
border-left: 4px solid;
|
||||
padding: 0 0 0 10px;
|
||||
margin: 30px 0;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 16px;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
list-style: disc outside;
|
||||
margin-left: 2em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
line-height: 2;
|
||||
color: #595959;
|
||||
margin-bottom: 0;
|
||||
list-style: inherit;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
background: #fff9f9;
|
||||
margin: 2em 0;
|
||||
padding: 2px 20px;
|
||||
border-left: 4px solid #b2aec5;
|
||||
}
|
||||
.note-to-mp blockquote p {
|
||||
.note2any blockquote p {
|
||||
color: #666;
|
||||
line-height: 2;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #036aca;
|
||||
border-bottom: 1px solid rgba(3, 106, 202, 0.8);
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
color: #036aca;
|
||||
}
|
||||
.note-to-mp em strong {
|
||||
.note2any em strong {
|
||||
color: #036aca;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border-top: 1px solid #135ce0;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
border-collapse: collapse;
|
||||
margin: 1rem 0;
|
||||
overflow-x: auto;
|
||||
}
|
||||
.note-to-mp table th,
|
||||
.note-to-mp table td {
|
||||
.note2any table th,
|
||||
.note2any table td {
|
||||
border: 1px solid #dfe2e5;
|
||||
padding: 0.6em 1em;
|
||||
}
|
||||
.note-to-mp table tr {
|
||||
.note2any table tr {
|
||||
border-top: 1px solid #dfe2e5;
|
||||
}
|
||||
.note-to-mp table tr:nth-child(2n) {
|
||||
.note2any table tr:nth-child(2n) {
|
||||
background-color: #f6f8fa;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
word-break: break-word;
|
||||
border-radius: 2px;
|
||||
background-color: #fff5f5;
|
||||
@@ -123,7 +123,7 @@
|
||||
font-size: 0.87em;
|
||||
padding: 0.065em 0.4em;
|
||||
}
|
||||
.note-to-mp .code-section pre code {
|
||||
.note2any .code-section pre code {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
font-size: inherit;
|
||||
@@ -131,12 +131,12 @@
|
||||
margin: 0 !important;
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
.note-to-mp .code-section ul li {
|
||||
.note2any .code-section ul li {
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #ff502c;
|
||||
margin: 1.5em 0;
|
||||
@@ -144,7 +144,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -152,12 +152,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -168,6 +168,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(155, 166, 164);
|
||||
background-color: rgb(11, 55, 66);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(171, 181, 180);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(3, 44, 54);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(44, 146, 133);
|
||||
color: rgb(155, 166, 164);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(44, 146, 133);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(44, 146, 133) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(63, 198, 180);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(106, 134, 144);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(31, 0, 50);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(148, 162, 162);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(6, 33, 40);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(3, 44, 54);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(148, 162, 162);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(3, 44, 54);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(50, 62, 69);
|
||||
background-color: rgb(253, 246, 227);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(59, 79, 84);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgba(147, 161, 161, 0.5);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(165, 104, 18);
|
||||
color: rgb(50, 62, 69);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(165, 104, 18);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(165, 104, 18) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(172, 117, 20);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(113, 127, 125);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(202, 255, 147);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(101, 123, 131);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(252, 244, 220);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgba(147, 161, 161, 0.5);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(101, 123, 131);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgba(147, 161, 161, 0.5);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
* Bear 的默认样式表。通过调整各个颜色变量的取值,就可以得到不同的 bear 主题。
|
||||
* Bear 的配色方案位于 src/themes/bear-palettes 目录下。
|
||||
*/
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: rgb(220, 227, 232);
|
||||
background-color: rgb(34, 46, 51);
|
||||
@@ -27,29 +27,29 @@
|
||||
margin: 0 0;
|
||||
padding: 1em 1em;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp details,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp table,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp figure {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any details,
|
||||
.note2any dl,
|
||||
.note2any blockquote,
|
||||
.note2any table,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any figure {
|
||||
margin: 0.75em 0 0.45em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
margin: 0.75em auto;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.75em;
|
||||
margin-left: 0;
|
||||
@@ -58,122 +58,122 @@
|
||||
line-height: 1.5em;
|
||||
color: rgb(131, 209, 221);
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background-color: rgb(15, 21, 23);
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
display: block;
|
||||
padding-left: 0.8em;
|
||||
border-left: 0.2em solid rgb(199, 191, 127);
|
||||
color: rgb(220, 227, 232);
|
||||
}
|
||||
.note-to-mp blockquote > :first-child {
|
||||
.note2any blockquote > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp blockquote > :last-child {
|
||||
.note2any blockquote > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
word-wrap: break-all;
|
||||
}
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin-left: 1.3em;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp li::marker {
|
||||
.note2any li::marker {
|
||||
color: rgb(199, 191, 127);
|
||||
}
|
||||
.note-to-mp li > p {
|
||||
.note2any li > p {
|
||||
margin: 0;
|
||||
}
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
padding-left: 1.3em;
|
||||
list-style-type: decimal;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.note-to-mp u {
|
||||
.note2any u {
|
||||
text-decoration: none;
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgb(199, 191, 127) 50%);
|
||||
background-repeat: repeat-x;
|
||||
background-size: 2px 2px;
|
||||
background-position: 0 1em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: rgb(214, 92, 92);
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp a img {
|
||||
.note2any a img {
|
||||
border: none;
|
||||
}
|
||||
.note-to-mp b,
|
||||
.note-to-mp strong {
|
||||
.note2any b,
|
||||
.note2any strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.note-to-mp i,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp em,
|
||||
.note-to-mp var,
|
||||
.note-to-mp address,
|
||||
.note-to-mp dfn {
|
||||
.note2any i,
|
||||
.note2any cite,
|
||||
.note2any em,
|
||||
.note2any var,
|
||||
.note2any address,
|
||||
.note2any dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.note-to-mp del,
|
||||
.note-to-mp s {
|
||||
.note2any del,
|
||||
.note2any s {
|
||||
color: rgb(191, 191, 191);
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp xmp,
|
||||
.note-to-mp plaintext,
|
||||
.note-to-mp listing,
|
||||
.note-to-mp code,
|
||||
.note-to-mp kbd,
|
||||
.note-to-mp tt,
|
||||
.note-to-mp samp {
|
||||
.note2any pre,
|
||||
.note2any xmp,
|
||||
.note2any plaintext,
|
||||
.note2any listing,
|
||||
.note2any code,
|
||||
.note2any kbd,
|
||||
.note2any tt,
|
||||
.note2any samp {
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
padding: 0.2em 0.5em;
|
||||
background-color: rgb(64, 65, 113);
|
||||
}
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
color: rgb(168, 176, 181);
|
||||
border-collapse: collapse;
|
||||
background-color: rgb(18, 24, 27);
|
||||
@@ -182,33 +182,33 @@
|
||||
border: 1px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 0.7em 1em;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgb(15, 21, 23);
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any caption,
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.note-to-mp .footnotes > ol li {
|
||||
.note2any .footnotes > ol li {
|
||||
text-indent: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
display: inline;
|
||||
color: rgb(168, 176, 181);
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px rgb(15, 21, 23);
|
||||
margin: 1.5em 0;
|
||||
@@ -216,7 +216,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -224,12 +224,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -240,6 +240,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/* MWeb:增大字体,便于阅读 */
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
min-width: 200px;
|
||||
max-width: 760px;
|
||||
@@ -41,70 +41,70 @@
|
||||
/* Responsive images */
|
||||
/* 代码片断 */
|
||||
}
|
||||
.note-to-mp dl,
|
||||
.note-to-mp dt,
|
||||
.note-to-mp dd,
|
||||
.note-to-mp ul,
|
||||
.note-to-mp ol,
|
||||
.note-to-mp li,
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp code,
|
||||
.note-to-mp form,
|
||||
.note-to-mp fieldset,
|
||||
.note-to-mp legend,
|
||||
.note-to-mp input,
|
||||
.note-to-mp textarea,
|
||||
.note-to-mp p,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp th,
|
||||
.note-to-mp td,
|
||||
.note-to-mp hr,
|
||||
.note-to-mp button,
|
||||
.note-to-mp article,
|
||||
.note-to-mp aside,
|
||||
.note-to-mp details,
|
||||
.note-to-mp figcaption,
|
||||
.note-to-mp figure,
|
||||
.note-to-mp footer,
|
||||
.note-to-mp header,
|
||||
.note-to-mp menu,
|
||||
.note-to-mp nav,
|
||||
.note-to-mp section {
|
||||
.note2any dl,
|
||||
.note2any dt,
|
||||
.note2any dd,
|
||||
.note2any ul,
|
||||
.note2any ol,
|
||||
.note2any li,
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6,
|
||||
.note2any pre,
|
||||
.note2any code,
|
||||
.note2any form,
|
||||
.note2any fieldset,
|
||||
.note2any legend,
|
||||
.note2any input,
|
||||
.note2any textarea,
|
||||
.note2any p,
|
||||
.note2any blockquote,
|
||||
.note2any th,
|
||||
.note2any td,
|
||||
.note2any hr,
|
||||
.note2any button,
|
||||
.note2any article,
|
||||
.note2any aside,
|
||||
.note2any details,
|
||||
.note2any figcaption,
|
||||
.note2any figure,
|
||||
.note2any footer,
|
||||
.note2any header,
|
||||
.note2any menu,
|
||||
.note2any nav,
|
||||
.note2any section {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp article,
|
||||
.note-to-mp aside,
|
||||
.note-to-mp details,
|
||||
.note-to-mp figcaption,
|
||||
.note-to-mp figure,
|
||||
.note-to-mp footer,
|
||||
.note-to-mp header,
|
||||
.note-to-mp menu,
|
||||
.note-to-mp nav,
|
||||
.note-to-mp section {
|
||||
.note2any article,
|
||||
.note2any aside,
|
||||
.note2any details,
|
||||
.note2any figcaption,
|
||||
.note2any figure,
|
||||
.note2any footer,
|
||||
.note2any header,
|
||||
.note2any menu,
|
||||
.note2any nav,
|
||||
.note2any section {
|
||||
display: block;
|
||||
}
|
||||
.note-to-mp audio,
|
||||
.note-to-mp canvas,
|
||||
.note-to-mp video {
|
||||
.note2any audio,
|
||||
.note2any canvas,
|
||||
.note2any video {
|
||||
display: inline-block;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.note-to-mp fieldset,
|
||||
.note-to-mp img {
|
||||
.note2any fieldset,
|
||||
.note2any img {
|
||||
border: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
position: relative;
|
||||
color: #999;
|
||||
font-weight: 400;
|
||||
@@ -112,251 +112,251 @@
|
||||
padding-left: 1em;
|
||||
margin: 1em 3em 1em 2em;
|
||||
}
|
||||
.note-to-mp acronym,
|
||||
.note-to-mp abbr {
|
||||
.note2any acronym,
|
||||
.note2any abbr {
|
||||
border-bottom: 1px dotted;
|
||||
font-variant: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp abbr {
|
||||
.note2any abbr {
|
||||
cursor: help;
|
||||
}
|
||||
.note-to-mp del {
|
||||
.note2any del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
.note-to-mp address,
|
||||
.note-to-mp caption,
|
||||
.note-to-mp cite,
|
||||
.note-to-mp code,
|
||||
.note-to-mp dfn,
|
||||
.note-to-mp em,
|
||||
.note-to-mp th,
|
||||
.note-to-mp var {
|
||||
.note2any address,
|
||||
.note2any caption,
|
||||
.note2any cite,
|
||||
.note2any code,
|
||||
.note2any dfn,
|
||||
.note2any em,
|
||||
.note2any th,
|
||||
.note2any var {
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
.note-to-mp ul,
|
||||
.note-to-mp ol {
|
||||
.note2any ul,
|
||||
.note2any ol {
|
||||
list-style: none;
|
||||
}
|
||||
.note-to-mp caption,
|
||||
.note-to-mp th {
|
||||
.note2any caption,
|
||||
.note2any th {
|
||||
text-align: left;
|
||||
}
|
||||
.note-to-mp sub,
|
||||
.note-to-mp sup {
|
||||
.note2any sub,
|
||||
.note2any sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
}
|
||||
.note-to-mp :root sub,
|
||||
.note-to-mp :root sup {
|
||||
.note2any :root sub,
|
||||
.note2any :root sup {
|
||||
vertical-align: baseline;
|
||||
/* for ie9 and other modern browsers */
|
||||
}
|
||||
.note-to-mp sup {
|
||||
.note2any sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
.note-to-mp sub {
|
||||
.note2any sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #1abc9c;
|
||||
}
|
||||
.note-to-mp a:hover {
|
||||
.note2any a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
border-bottom: 1px solid #1abc9c;
|
||||
}
|
||||
.note-to-mp a:hover {
|
||||
.note2any a:hover {
|
||||
border-bottom-color: #555;
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp ins,
|
||||
.note-to-mp a {
|
||||
.note2any ins,
|
||||
.note2any a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp u,
|
||||
.note-to-mp .typo-u {
|
||||
.note2any u,
|
||||
.note2any .typo-u {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
background: #fffdd1;
|
||||
border-bottom: 1px solid #ffedce;
|
||||
padding: 2px;
|
||||
/* margin: 0 5px; */
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border: none;
|
||||
border-bottom: 1px solid #cfcfcf;
|
||||
margin-bottom: 0.8em;
|
||||
height: 10px;
|
||||
}
|
||||
.note-to-mp small,
|
||||
.note-to-mp .typo-small,
|
||||
.note-to-mp figcaption {
|
||||
.note2any small,
|
||||
.note2any .typo-small,
|
||||
.note2any figcaption {
|
||||
font-size: 0.9em;
|
||||
color: #888;
|
||||
}
|
||||
.note-to-mp strong,
|
||||
.note-to-mp b {
|
||||
.note2any strong,
|
||||
.note2any b {
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
.note-to-mp [draggable] {
|
||||
.note2any [draggable] {
|
||||
cursor: move;
|
||||
}
|
||||
.note-to-mp .clearfix {
|
||||
.note2any .clearfix {
|
||||
zoom: 1;
|
||||
}
|
||||
.note-to-mp .textwrap,
|
||||
.note-to-mp .textwrap td,
|
||||
.note-to-mp .textwrap th {
|
||||
.note2any .textwrap,
|
||||
.note2any .textwrap td,
|
||||
.note2any .textwrap th {
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
.note-to-mp .textwrap-table {
|
||||
.note2any .textwrap-table {
|
||||
table-layout: fixed;
|
||||
}
|
||||
.note-to-mp .serif {
|
||||
.note2any .serif {
|
||||
font-family: Palatino, Optima, Georgia, serif;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp pre,
|
||||
.note-to-mp ul,
|
||||
.note-to-mp ol,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp form,
|
||||
.note-to-mp hr,
|
||||
.note-to-mp table,
|
||||
.note-to-mp .typo-p,
|
||||
.note-to-mp .typo-pre,
|
||||
.note-to-mp .typo-ul,
|
||||
.note-to-mp .typo-ol,
|
||||
.note-to-mp .typo-dl,
|
||||
.note-to-mp .typo-form,
|
||||
.note-to-mp .typo-hr,
|
||||
.note-to-mp .typo-table,
|
||||
.note-to-mp blockquote {
|
||||
.note2any p,
|
||||
.note2any pre,
|
||||
.note2any ul,
|
||||
.note2any ol,
|
||||
.note2any dl,
|
||||
.note2any form,
|
||||
.note2any hr,
|
||||
.note2any table,
|
||||
.note2any .typo-p,
|
||||
.note2any .typo-pre,
|
||||
.note2any .typo-ul,
|
||||
.note2any .typo-ol,
|
||||
.note2any .typo-dl,
|
||||
.note2any .typo-form,
|
||||
.note2any .typo-hr,
|
||||
.note2any .typo-table,
|
||||
.note2any blockquote {
|
||||
margin-bottom: 1.2em;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
font-family: PingFang SC, Verdana, Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, Microsoft Sans Serif, WenQuanYi Micro Hei, sans-serif;
|
||||
font-weight: lighter;
|
||||
color: #000;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6,
|
||||
.note-to-mp .typo-h1,
|
||||
.note-to-mp .typo-h2,
|
||||
.note-to-mp .typo-h3,
|
||||
.note-to-mp .typo-h4,
|
||||
.note-to-mp .typo-h5,
|
||||
.note-to-mp .typo-h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6,
|
||||
.note2any .typo-h1,
|
||||
.note2any .typo-h2,
|
||||
.note2any .typo-h3,
|
||||
.note2any .typo-h4,
|
||||
.note2any .typo-h5,
|
||||
.note2any .typo-h6 {
|
||||
margin-top: 1.2em;
|
||||
margin-bottom: 0.6em;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp .typo-h1 {
|
||||
.note2any h1,
|
||||
.note2any .typo-h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
.note-to-mp h2,
|
||||
.note-to-mp .typo-h2 {
|
||||
.note2any h2,
|
||||
.note2any .typo-h2 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
.note-to-mp h3,
|
||||
.note-to-mp .typo-h3 {
|
||||
.note2any h3,
|
||||
.note2any .typo-h3 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
.note-to-mp h4,
|
||||
.note-to-mp .typo-h4 {
|
||||
.note2any h4,
|
||||
.note2any .typo-h4 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6,
|
||||
.note-to-mp .typo-h5,
|
||||
.note-to-mp .typo-h6 {
|
||||
.note2any h5,
|
||||
.note2any h6,
|
||||
.note2any .typo-h5,
|
||||
.note2any .typo-h6 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.note-to-mp ul,
|
||||
.note-to-mp .typo-ul {
|
||||
.note2any ul,
|
||||
.note2any .typo-ul {
|
||||
margin-left: 1.3em;
|
||||
list-style: disc;
|
||||
}
|
||||
.note-to-mp ol,
|
||||
.note-to-mp .typo-ol {
|
||||
.note2any ol,
|
||||
.note2any .typo-ol {
|
||||
list-style: decimal;
|
||||
margin-left: 1.9em;
|
||||
}
|
||||
.note-to-mp li ul,
|
||||
.note-to-mp li ol,
|
||||
.note-to-mp .typo-ul ul,
|
||||
.note-to-mp .typo-ul ol,
|
||||
.note-to-mp .typo-ol ul,
|
||||
.note-to-mp .typo-ol ol {
|
||||
.note2any li ul,
|
||||
.note2any li ol,
|
||||
.note2any .typo-ul ul,
|
||||
.note2any .typo-ul ol,
|
||||
.note2any .typo-ol ul,
|
||||
.note2any .typo-ol ol {
|
||||
margin-bottom: 0.8em;
|
||||
margin-left: 2em;
|
||||
}
|
||||
.note-to-mp li ul,
|
||||
.note-to-mp .typo-ul ul,
|
||||
.note-to-mp .typo-ol ul {
|
||||
.note2any li ul,
|
||||
.note2any .typo-ul ul,
|
||||
.note2any .typo-ol ul {
|
||||
list-style: circle;
|
||||
}
|
||||
.note-to-mp table th,
|
||||
.note-to-mp table td,
|
||||
.note-to-mp .typo-table th,
|
||||
.note-to-mp .typo-table td,
|
||||
.note-to-mp table caption {
|
||||
.note2any table th,
|
||||
.note2any table td,
|
||||
.note2any .typo-table th,
|
||||
.note2any .typo-table td,
|
||||
.note2any table caption {
|
||||
border: 1px solid #ddd;
|
||||
padding: 0.5em 1em;
|
||||
color: #666;
|
||||
}
|
||||
.note-to-mp table th,
|
||||
.note-to-mp .typo-table th {
|
||||
.note2any table th,
|
||||
.note2any .typo-table th {
|
||||
background: #fbfbfb;
|
||||
}
|
||||
.note-to-mp table thead th,
|
||||
.note-to-mp .typo-table thead th {
|
||||
.note2any table thead th,
|
||||
.note2any .typo-table thead th {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
.note-to-mp table caption {
|
||||
.note2any table caption {
|
||||
border-bottom: none;
|
||||
}
|
||||
.note-to-mp .typo-em,
|
||||
.note-to-mp em,
|
||||
.note-to-mp legend,
|
||||
.note-to-mp caption {
|
||||
.note2any .typo-em,
|
||||
.note2any em,
|
||||
.note2any legend,
|
||||
.note2any caption {
|
||||
color: #000;
|
||||
font-weight: inherit;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp pre,
|
||||
.note-to-mp code,
|
||||
.note-to-mp pre tt {
|
||||
.note2any pre,
|
||||
.note2any code,
|
||||
.note2any pre tt {
|
||||
font-family: Courier, "Courier New", monospace;
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #ddd;
|
||||
margin: 1.5em 0;
|
||||
@@ -364,7 +364,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -372,12 +372,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -388,6 +388,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
word-break: break-word;
|
||||
line-height: 1.75;
|
||||
font-weight: 400;
|
||||
@@ -6,79 +6,79 @@
|
||||
overflow-x: hidden;
|
||||
color: #333;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
line-height: 1.5;
|
||||
margin-top: 35px;
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.note-to-mp h1:first-child,
|
||||
.note-to-mp h2:first-child,
|
||||
.note-to-mp h3:first-child,
|
||||
.note-to-mp h4:first-child,
|
||||
.note-to-mp h5:first-child,
|
||||
.note-to-mp h6:first-child {
|
||||
.note2any h1:first-child,
|
||||
.note2any h2:first-child,
|
||||
.note2any h3:first-child,
|
||||
.note2any h4:first-child,
|
||||
.note2any h5:first-child,
|
||||
.note2any h6:first-child {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.note-to-mp h1::before,
|
||||
.note-to-mp h2::before,
|
||||
.note-to-mp h3::before,
|
||||
.note-to-mp h4::before,
|
||||
.note-to-mp h5::before,
|
||||
.note-to-mp h6::before {
|
||||
.note2any h1::before,
|
||||
.note2any h2::before,
|
||||
.note2any h3::before,
|
||||
.note2any h4::before,
|
||||
.note2any h5::before,
|
||||
.note2any h6::before {
|
||||
content: "#";
|
||||
display: inline-block;
|
||||
color: #3eaf7c;
|
||||
padding-right: 0.23em;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
position: relative;
|
||||
font-size: 2.5rem;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.note-to-mp h1::before {
|
||||
.note2any h1::before {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
padding-bottom: 0.5rem;
|
||||
font-size: 2.2rem;
|
||||
border-bottom: 1px solid #ececec;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.5rem;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
margin-top: 5px;
|
||||
}
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
line-height: inherit;
|
||||
margin-top: 22px;
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
color: #3eaf7c;
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
margin: auto;
|
||||
border: 3px solid rgba(62, 175, 124, 0.2);
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border-top: 1px solid #3eaf7c;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
@@ -86,12 +86,12 @@
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
font-weight: 500;
|
||||
text-decoration: none;
|
||||
color: #3eaf7c;
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
display: inline-block !important;
|
||||
font-size: 12px;
|
||||
width: auto;
|
||||
@@ -99,23 +99,23 @@
|
||||
overflow: auto;
|
||||
border: solid 1px #3eaf7c;
|
||||
}
|
||||
.note-to-mp thead {
|
||||
.note2any thead {
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
text-align: left;
|
||||
}
|
||||
.note-to-mp tr:nth-child(2n) {
|
||||
.note2any tr:nth-child(2n) {
|
||||
background-color: rgba(62, 175, 124, 0.2);
|
||||
}
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
padding: 12px 7px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.note-to-mp td {
|
||||
.note2any td {
|
||||
min-width: 120px;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
color: #666;
|
||||
padding: 1px 23px;
|
||||
margin: 22px 0;
|
||||
@@ -123,65 +123,65 @@
|
||||
border-color: #42b983;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.note-to-mp blockquote > p {
|
||||
.note2any blockquote > p {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.note-to-mp details {
|
||||
.note2any details {
|
||||
border: none;
|
||||
outline: none;
|
||||
border-left: 4px solid #3eaf7c;
|
||||
padding-left: 10px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.note-to-mp details summary {
|
||||
.note2any details summary {
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
outline: none;
|
||||
background: white;
|
||||
margin: 0px -17px;
|
||||
}
|
||||
.note-to-mp details summary::-webkit-details-marker {
|
||||
.note2any details summary::-webkit-details-marker {
|
||||
color: #3eaf7c;
|
||||
}
|
||||
.note-to-mp ol,
|
||||
.note-to-mp ul {
|
||||
.note2any ol,
|
||||
.note2any ul {
|
||||
padding-left: 28px;
|
||||
}
|
||||
.note-to-mp ol li,
|
||||
.note-to-mp ul li {
|
||||
.note2any ol li,
|
||||
.note2any ul li {
|
||||
margin-bottom: 0;
|
||||
list-style: inherit;
|
||||
}
|
||||
.note-to-mp ol li .task-list-item,
|
||||
.note-to-mp ul li .task-list-item {
|
||||
.note2any ol li .task-list-item,
|
||||
.note2any ul li .task-list-item {
|
||||
list-style: none;
|
||||
}
|
||||
.note-to-mp ol li .task-list-item ul,
|
||||
.note-to-mp ul li .task-list-item ul,
|
||||
.note-to-mp ol li .task-list-item ol,
|
||||
.note-to-mp ul li .task-list-item ol {
|
||||
.note2any ol li .task-list-item ul,
|
||||
.note2any ul li .task-list-item ul,
|
||||
.note2any ol li .task-list-item ol,
|
||||
.note2any ul li .task-list-item ol {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp ol ul,
|
||||
.note-to-mp ul ul,
|
||||
.note-to-mp ol ol,
|
||||
.note-to-mp ul ol {
|
||||
.note2any ol ul,
|
||||
.note2any ul ul,
|
||||
.note2any ol ol,
|
||||
.note2any ul ol {
|
||||
margin-top: 3px;
|
||||
}
|
||||
.note-to-mp ol li {
|
||||
.note2any ol li {
|
||||
padding-left: 6px;
|
||||
}
|
||||
.note-to-mp ol li::marker {
|
||||
.note2any ol li::marker {
|
||||
color: #3eaf7c;
|
||||
}
|
||||
.note-to-mp ul li::marker {
|
||||
.note2any ul li::marker {
|
||||
color: #3eaf7c;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
word-break: break-word;
|
||||
padding: 0.2rem 0.5rem;
|
||||
@@ -191,10 +191,10 @@
|
||||
background-color: rgba(27, 31, 35, 0.05);
|
||||
border-radius: 3px;
|
||||
}
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
border-radius: 6px;
|
||||
}
|
||||
.note-to-mp .code-section pre code {
|
||||
.note2any .code-section pre code {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
font-size: inherit;
|
||||
@@ -205,7 +205,7 @@
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #3eaf7c;
|
||||
margin: 1.5em 0;
|
||||
@@ -213,7 +213,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -221,12 +221,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -237,6 +237,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-size: 16px;
|
||||
color: #34495e;
|
||||
line-height: 1.6rem;
|
||||
@@ -7,23 +7,23 @@
|
||||
overflow-x: hidden;
|
||||
/* MWeb:代码块高亮 */
|
||||
}
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #42b983;
|
||||
font-weight: 600;
|
||||
padding: 0 2px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
position: relative;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
@@ -31,74 +31,74 @@
|
||||
line-height: 1.4;
|
||||
cursor: text;
|
||||
}
|
||||
.note-to-mp h1 tt,
|
||||
.note-to-mp h1 code {
|
||||
.note2any h1 tt,
|
||||
.note2any h1 code {
|
||||
font-size: inherit !important;
|
||||
}
|
||||
.note-to-mp h2 tt,
|
||||
.note-to-mp h2 code {
|
||||
.note2any h2 tt,
|
||||
.note2any h2 code {
|
||||
font-size: inherit !important;
|
||||
}
|
||||
.note-to-mp h3 tt,
|
||||
.note-to-mp h3 code {
|
||||
.note2any h3 tt,
|
||||
.note2any h3 code {
|
||||
font-size: inherit !important;
|
||||
}
|
||||
.note-to-mp h4 tt,
|
||||
.note-to-mp h4 code {
|
||||
.note2any h4 tt,
|
||||
.note2any h4 code {
|
||||
font-size: inherit !important;
|
||||
}
|
||||
.note-to-mp h5 tt,
|
||||
.note-to-mp h5 code {
|
||||
.note2any h5 tt,
|
||||
.note2any h5 code {
|
||||
font-size: inherit !important;
|
||||
}
|
||||
.note-to-mp h6 tt,
|
||||
.note-to-mp h6 code {
|
||||
.note2any h6 tt,
|
||||
.note2any h6 code {
|
||||
font-size: inherit !important;
|
||||
}
|
||||
.note-to-mp h2 a,
|
||||
.note-to-mp h3 a {
|
||||
.note2any h2 a,
|
||||
.note2any h3 a {
|
||||
color: #34495e;
|
||||
}
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
padding-bottom: 0.4rem;
|
||||
font-size: 2.2rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.75rem;
|
||||
line-height: 1.225;
|
||||
margin: 35px 0 15px;
|
||||
padding-bottom: 0.5em;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
font-size: 1.4rem;
|
||||
line-height: 1.43;
|
||||
margin: 20px 0 7px;
|
||||
}
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
font-size: 1rem;
|
||||
color: #777;
|
||||
}
|
||||
.note-to-mp p,
|
||||
.note-to-mp blockquote,
|
||||
.note-to-mp ul,
|
||||
.note-to-mp ol,
|
||||
.note-to-mp dl,
|
||||
.note-to-mp table {
|
||||
.note2any p,
|
||||
.note2any blockquote,
|
||||
.note2any ul,
|
||||
.note2any ol,
|
||||
.note2any dl,
|
||||
.note2any table {
|
||||
margin: 0.8em 0;
|
||||
}
|
||||
.note-to-mp li > ol,
|
||||
.note-to-mp li > ul {
|
||||
.note2any li > ol,
|
||||
.note2any li > ul {
|
||||
margin: 0 0;
|
||||
}
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
height: 2px;
|
||||
padding: 0;
|
||||
margin: 16px 0;
|
||||
@@ -107,50 +107,50 @@
|
||||
overflow: hidden;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
.note-to-mp h1 p,
|
||||
.note-to-mp h2 p,
|
||||
.note-to-mp h3 p,
|
||||
.note-to-mp h4 p,
|
||||
.note-to-mp h5 p,
|
||||
.note-to-mp h6 p {
|
||||
.note2any h1 p,
|
||||
.note2any h2 p,
|
||||
.note2any h3 p,
|
||||
.note2any h4 p,
|
||||
.note2any h5 p,
|
||||
.note2any h6 p {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp li p.first {
|
||||
.note2any li p.first {
|
||||
display: inline-block;
|
||||
}
|
||||
.note-to-mp ul,
|
||||
.note-to-mp ol {
|
||||
.note2any ul,
|
||||
.note2any ol {
|
||||
padding-left: 30px;
|
||||
}
|
||||
.note-to-mp ul:first-child,
|
||||
.note-to-mp ol:first-child {
|
||||
.note2any ul:first-child,
|
||||
.note2any ol:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp ul:last-child,
|
||||
.note-to-mp ol:last-child {
|
||||
.note2any ul:last-child,
|
||||
.note2any ol:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
border-left: 4px solid #42b983;
|
||||
padding: 10px 15px;
|
||||
color: #777;
|
||||
background-color: rgba(66, 185, 131, 0.1);
|
||||
}
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
padding: 0;
|
||||
word-break: initial;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.note-to-mp table tr {
|
||||
.note2any table tr {
|
||||
border-top: 1px solid #dfe2e5;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.note-to-mp table tr:nth-child(2n),
|
||||
.note-to-mp thead {
|
||||
.note2any table tr:nth-child(2n),
|
||||
.note2any thead {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
.note-to-mp table tr th {
|
||||
.note2any table tr th {
|
||||
font-weight: bold;
|
||||
border: 1px solid #dfe2e5;
|
||||
border-bottom: 0;
|
||||
@@ -158,40 +158,40 @@
|
||||
margin: 0;
|
||||
padding: 6px 13px;
|
||||
}
|
||||
.note-to-mp table tr td {
|
||||
.note2any table tr td {
|
||||
border: 1px solid #dfe2e5;
|
||||
text-align: left;
|
||||
margin: 0;
|
||||
padding: 6px 13px;
|
||||
}
|
||||
.note-to-mp table tr th:first-child,
|
||||
.note-to-mp table tr td:first-child {
|
||||
.note2any table tr th:first-child,
|
||||
.note2any table tr td:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.note-to-mp table tr th:last-child,
|
||||
.note-to-mp table tr td:last-child {
|
||||
.note2any table tr th:last-child,
|
||||
.note2any table tr td:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.note-to-mp code,
|
||||
.note-to-mp tt {
|
||||
.note2any code,
|
||||
.note2any tt {
|
||||
border-radius: 2px;
|
||||
font-family: Roboto Mono, Source Sans Pro, Monaco, courier, monospace !important;
|
||||
font-size: 0.92rem;
|
||||
color: #e96900;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.note-to-mp code {
|
||||
.note2any code {
|
||||
margin: 0 2px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
border-radius: 2px;
|
||||
}
|
||||
.note-to-mp .code-section pre code {
|
||||
.note2any .code-section pre code {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
font-size: inherit;
|
||||
@@ -203,7 +203,7 @@
|
||||
}
|
||||
|
||||
/* 代码块 */
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: solid 1px #e96900;
|
||||
margin: 1.5em 0;
|
||||
@@ -211,7 +211,7 @@
|
||||
padding: 0.5em;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin: 0;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -219,12 +219,12 @@
|
||||
overflow-x: auto;
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
}
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-block-start: 0;
|
||||
@@ -235,6 +235,6 @@
|
||||
line-height: 26px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.note-to-mp .code-section ul > li {
|
||||
.note2any .code-section ul > li {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
* - 在导出设置中选择 wx-mp-pro 主题
|
||||
*/
|
||||
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.75;
|
||||
@@ -21,18 +21,18 @@
|
||||
}
|
||||
|
||||
/* 段落 */
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
margin: 1.2em 0;
|
||||
letter-spacing: 0.05px;
|
||||
}
|
||||
|
||||
/* 标题:更专业清晰的层级感 */
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5,
|
||||
.note-to-mp h6 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5,
|
||||
.note2any h6 {
|
||||
margin: 2.2em 0 1em;
|
||||
line-height: 1.4;
|
||||
color: #111111;
|
||||
@@ -41,15 +41,15 @@
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
.note-to-mp h1,
|
||||
.note-to-mp h2,
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5 {
|
||||
.note2any h1,
|
||||
.note2any h2,
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5 {
|
||||
}
|
||||
|
||||
/* H1:卡片式 */
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
font-size: 1.8em;
|
||||
margin: 1.5em 0;
|
||||
color: #1565F6;
|
||||
@@ -59,7 +59,7 @@
|
||||
}
|
||||
|
||||
/* H2:左条卡片 */
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
font-size: 1.5em;
|
||||
margin: 2em 0 1.2em;
|
||||
padding: 0.6em 1em;
|
||||
@@ -70,36 +70,36 @@
|
||||
}
|
||||
|
||||
/* H3-H5:渐进缩小 */
|
||||
.note-to-mp h3,
|
||||
.note-to-mp h4,
|
||||
.note-to-mp h5 {
|
||||
.note2any h3,
|
||||
.note2any h4,
|
||||
.note2any h5 {
|
||||
background: #f7f9fb;
|
||||
color: #244b74;
|
||||
padding: 0.7em 1.2em 0.7em 1.35em;
|
||||
}
|
||||
|
||||
.note-to-mp h3 { font-size: 1.25em; }
|
||||
.note-to-mp h4 { font-size: 1.1em; }
|
||||
.note-to-mp h5 { font-size: 1em; }
|
||||
.note2any h3 { font-size: 1.25em; }
|
||||
.note2any h4 { font-size: 1.1em; }
|
||||
.note2any h5 { font-size: 1em; }
|
||||
|
||||
/* 列表 */
|
||||
.note-to-mp ul,
|
||||
.note-to-mp ol {
|
||||
.note2any ul,
|
||||
.note2any ol {
|
||||
margin: 1.2em 0 1.2em 1.4em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.note-to-mp li {
|
||||
.note2any li {
|
||||
margin: 0.4em 0;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.note-to-mp li p {
|
||||
.note2any li p {
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
/* 链接 */
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #576b95;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid rgba(87,107,149,0.3);
|
||||
@@ -107,7 +107,7 @@
|
||||
}
|
||||
|
||||
/* 引用:清晰专业的样式 */
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
background: #f7f7f7;
|
||||
border-left: 4px solid #07c160;
|
||||
margin: 1.5em 0;
|
||||
@@ -116,27 +116,27 @@
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.note-to-mp blockquote p {
|
||||
.note2any blockquote p {
|
||||
margin: 0.6em 0;
|
||||
}
|
||||
|
||||
.note-to-mp blockquote p:first-child {
|
||||
.note2any blockquote p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.note-to-mp blockquote p:last-child {
|
||||
.note2any blockquote p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* 代码块:清晰易读 */
|
||||
.note-to-mp pre {
|
||||
.note2any pre {
|
||||
background: #f6f8fa !important;
|
||||
border-radius: 5px;
|
||||
overflow-x: auto;
|
||||
border: 1px solid #e8e8e8 !important;
|
||||
}
|
||||
|
||||
.note-to-mp pre code {
|
||||
.note2any pre code {
|
||||
display: block;
|
||||
background: transparent !important;
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
@@ -147,7 +147,7 @@
|
||||
}
|
||||
|
||||
/* 行内代码 */
|
||||
.note-to-mp code:not(pre code) {
|
||||
.note2any code:not(pre code) {
|
||||
background: #f6f8fa;
|
||||
padding: 2px 4px;
|
||||
border-radius: 3px;
|
||||
@@ -158,7 +158,7 @@
|
||||
}
|
||||
|
||||
/* 表格整体:连贯圆角边框 */
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
width: 100%;
|
||||
border-collapse: collapse; /* 合并边框,避免断开 */
|
||||
margin: 1.8em 0;
|
||||
@@ -169,8 +169,8 @@
|
||||
}
|
||||
|
||||
/* 单元格 */
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
border: 1px solid #e0e0e0; /* 内部网格线 */
|
||||
padding: 8px 10px;
|
||||
text-align: left;
|
||||
@@ -178,19 +178,19 @@
|
||||
}
|
||||
|
||||
/* 表头 */
|
||||
.note-to-mp thead th {
|
||||
.note2any thead th {
|
||||
background: #e8f5e9;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* 隔行条纹 */
|
||||
.note-to-mp tbody tr:nth-child(even) {
|
||||
.note2any tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
/* 表格整体 */
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 1.8em 0;
|
||||
@@ -201,8 +201,8 @@
|
||||
}
|
||||
|
||||
/* 单元格 */
|
||||
.note-to-mp th,
|
||||
.note-to-mp td {
|
||||
.note2any th,
|
||||
.note2any td {
|
||||
border: 1px solid #e0e0e0;
|
||||
padding: 8px 10px;
|
||||
text-align: left;
|
||||
@@ -211,31 +211,31 @@
|
||||
}
|
||||
|
||||
/* 表头 */
|
||||
.note-to-mp thead th {
|
||||
.note2any thead th {
|
||||
background: #e8f5e9;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* 隔行条纹 */
|
||||
.note-to-mp tbody tr:nth-child(even) {
|
||||
.note2any tbody tr:nth-child(even) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
/* hover 效果 */
|
||||
.note-to-mp tbody tr:hover {
|
||||
.note2any tbody tr:hover {
|
||||
background: #f1f8ff; /* 微蓝色高亮 */
|
||||
}
|
||||
|
||||
/* 图片与图注 */
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
margin: 1.5em auto;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.note-to-mp figcaption {
|
||||
.note2any figcaption {
|
||||
text-align: center;
|
||||
font-size: 0.8em;
|
||||
color: #888;
|
||||
@@ -244,7 +244,7 @@
|
||||
}
|
||||
|
||||
/* 分隔线 */
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border: 0;
|
||||
height: 1px;
|
||||
background: #e3e3e3;
|
||||
@@ -252,7 +252,7 @@
|
||||
}
|
||||
|
||||
/* 彩色标注块(预处理产生的 ||r/g/b/y ) */
|
||||
.note-to-mp p[data-color-block] {
|
||||
.note2any p[data-color-block] {
|
||||
border-radius: 5px;
|
||||
padding: 0.8em 1em;
|
||||
margin: 1.5em 0;
|
||||
@@ -260,59 +260,59 @@
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-color-block="r"] {
|
||||
.note2any p[data-color-block="r"] {
|
||||
background: #ffebee;
|
||||
border-left: 4px solid #ef5350;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-color-block="g"] {
|
||||
.note2any p[data-color-block="g"] {
|
||||
background: #e8f5e9;
|
||||
border-left: 4px solid #4caf50;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-color-block="b"] {
|
||||
.note2any p[data-color-block="b"] {
|
||||
background: #e3f2fd;
|
||||
border-left: 4px solid #2196f3;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-color-block="y"] {
|
||||
.note2any p[data-color-block="y"] {
|
||||
background: #fff8e1;
|
||||
border-left: 4px solid #ffca28;
|
||||
}
|
||||
|
||||
/* 专业标注提示 */
|
||||
.note-to-mp p[data-note-type="tip"],
|
||||
.note-to-mp p[data-note-type="info"],
|
||||
.note-to-mp p[data-note-type="warning"],
|
||||
.note-to-mp p[data-note-type="danger"] {
|
||||
.note2any p[data-note-type="tip"],
|
||||
.note2any p[data-note-type="info"],
|
||||
.note2any p[data-note-type="warning"],
|
||||
.note2any p[data-note-type="danger"] {
|
||||
border-radius: 5px;
|
||||
padding: 0.8em 1em;
|
||||
margin: 1.5em 0;
|
||||
font-size: 0.93em;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-note-type="tip"] {
|
||||
.note2any p[data-note-type="tip"] {
|
||||
background: #e8f5e9;
|
||||
border-left: 4px solid #4caf50;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-note-type="info"] {
|
||||
.note2any p[data-note-type="info"] {
|
||||
background: #e3f2fd;
|
||||
border-left: 4px solid #2196f3;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-note-type="warning"] {
|
||||
.note2any p[data-note-type="warning"] {
|
||||
background: #fff8e1;
|
||||
border-left: 4px solid #ffca28;
|
||||
}
|
||||
|
||||
.note-to-mp p[data-note-type="danger"] {
|
||||
.note2any p[data-note-type="danger"] {
|
||||
background: #ffebee;
|
||||
border-left: 4px solid #ef5350;
|
||||
}
|
||||
|
||||
/* 特殊标注:重要/注意/提示 */
|
||||
.note-to-mp p:has(strong:first-child:contains("💡")) {
|
||||
.note2any p:has(strong:first-child:contains("💡")) {
|
||||
background: #e8f5e9;
|
||||
border-left: 4px solid #4caf50;
|
||||
border-radius: 5px;
|
||||
@@ -320,7 +320,7 @@
|
||||
margin: 1.5em 0;
|
||||
}
|
||||
|
||||
.note-to-mp p:has(strong:first-child:contains("⚠️")) {
|
||||
.note2any p:has(strong:first-child:contains("⚠️")) {
|
||||
background: #fff8e1;
|
||||
border-left: 4px solid #ffca28;
|
||||
border-radius: 5px;
|
||||
@@ -328,7 +328,7 @@
|
||||
margin: 1.5em 0;
|
||||
}
|
||||
|
||||
.note-to-mp p:has(strong:first-child:contains("✅")) {
|
||||
.note2any p:has(strong:first-child:contains("✅")) {
|
||||
background: #e3f2fd;
|
||||
border-left: 4px solid #2196f3;
|
||||
border-radius: 5px;
|
||||
@@ -337,14 +337,14 @@
|
||||
}
|
||||
|
||||
/* 首段紧贴标题 */
|
||||
.note-to-mp h1 + p,
|
||||
.note-to-mp h2 + p,
|
||||
.note-to-mp h3 + p {
|
||||
.note2any h1 + p,
|
||||
.note2any h2 + p,
|
||||
.note2any h3 + p {
|
||||
margin-top: 0.7em;
|
||||
}
|
||||
|
||||
/* 专业编程文章必备:行号提示标记 */
|
||||
.note-to-mp .line-numbers {
|
||||
.note2any .line-numbers {
|
||||
font-size: 0.8em;
|
||||
color: #999;
|
||||
margin-right: 0.5em;
|
||||
@@ -352,23 +352,23 @@
|
||||
}
|
||||
|
||||
/* 确保兼容微信的富文本环境 */
|
||||
.note-to-mp pre code * {
|
||||
.note2any pre code * {
|
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace !important;
|
||||
}
|
||||
|
||||
/* 适配微信公众号的粗体强调 */
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
font-weight: 600;
|
||||
color: #1322c5;
|
||||
}
|
||||
|
||||
/* 行内高亮 */
|
||||
.note-to-mp mark {
|
||||
.note2any mark {
|
||||
background: #fff8dc;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
/* 确保代码块内部的空格不会被压缩 */
|
||||
.note-to-mp pre code {
|
||||
.note2any pre code {
|
||||
white-space: pre !important;
|
||||
}
|
||||
|
||||
2
build.sh
2
build.sh
@@ -22,7 +22,7 @@ else
|
||||
fi
|
||||
|
||||
# 2. 目标目录
|
||||
PLUGIN_DIR=~/myweb/.obsidian/plugins/note-to-mp
|
||||
PLUGIN_DIR=~/myweb/.obsidian/plugins/note2any
|
||||
FILES=("main.js" "styles.css" "manifest.json")
|
||||
|
||||
# 3. 遍历文件,逐一备份并覆盖
|
||||
|
||||
168
docs/OPTIMIZATION_REPORT_v1.3.12.md
Normal file
168
docs/OPTIMIZATION_REPORT_v1.3.12.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# Note2Any v1.3.12 系统优化报告
|
||||
|
||||
## 概述
|
||||
本次优化针对项目的架构、可维护性、错误处理和用户体验进行了全面提升,创建了模块化的核心系统架构。
|
||||
|
||||
## 核心优化内容
|
||||
|
||||
### 1. 核心架构模块化
|
||||
|
||||
#### 新增核心模块
|
||||
- **错误处理模块** (`src/core/error-handler.ts`)
|
||||
- 统一的错误处理机制
|
||||
- 错误日志记录和分类
|
||||
- 用户友好的错误提示
|
||||
|
||||
- **进度指示器** (`src/core/progress-indicator.ts`)
|
||||
- 统一的进度反馈系统
|
||||
- 支持开始、更新、完成、错误状态
|
||||
- 提升用户体验
|
||||
|
||||
- **配置管理器** (`src/core/config-manager.ts`)
|
||||
- 中心化的配置管理
|
||||
- 运行时配置验证
|
||||
- 配置热更新支持
|
||||
|
||||
- **发布平台接口** (`src/core/publisher-interface.ts`)
|
||||
- 标准化的平台发布接口
|
||||
- 支持微信、小红书等多平台
|
||||
- 可扩展的发布架构
|
||||
|
||||
- **发布管理器** (`src/core/publisher-manager.ts`)
|
||||
- 中心化的平台管理
|
||||
- 统一的发布流程
|
||||
- 平台无关的业务逻辑
|
||||
|
||||
- **内容处理器** (`src/core/content-processor.ts`)
|
||||
- 模块化的内容处理流程
|
||||
- 可配置的处理管道
|
||||
- 支持自定义处理器扩展
|
||||
|
||||
### 2. 专业化处理模块
|
||||
|
||||
#### 图库处理器 (`src/core/gallery-processor.ts`)
|
||||
- 专门处理图库短代码
|
||||
- 支持目录式和块级图库
|
||||
- 智能图片选择算法
|
||||
- 本地图片扫描优化
|
||||
|
||||
#### 图像处理器 (`src/core/image-processor.ts`)
|
||||
- 统一的图像处理接口
|
||||
- WebP转JPG转换
|
||||
- 批量图像处理
|
||||
- 微信图像上传集成
|
||||
- HTML转PNG功能
|
||||
|
||||
#### HTML处理器 (`src/core/html-processor.ts`)
|
||||
- HTML内容生成和格式化
|
||||
- CSS样式内联处理
|
||||
- 响应式设计优化
|
||||
- 移动端适配
|
||||
- 打印样式支持
|
||||
|
||||
### 3. 主要代码文件优化
|
||||
|
||||
#### `src/main.ts`
|
||||
- 集成新的核心模块
|
||||
- 添加进度指示和错误处理
|
||||
- 优化插件初始化流程
|
||||
|
||||
#### `src/preview-view.ts`
|
||||
- 添加进度反馈
|
||||
- 统一错误处理
|
||||
- 优化视图生命周期管理
|
||||
|
||||
## 技术改进
|
||||
|
||||
### 错误处理
|
||||
- **之前**: 分散的try-catch,不一致的错误提示
|
||||
- **现在**: 统一的ErrorHandler系统,集中的错误处理和日志
|
||||
|
||||
### 用户反馈
|
||||
- **之前**: 缺乏操作进度反馈
|
||||
- **现在**: ProgressIndicator提供实时进度和状态提示
|
||||
|
||||
### 配置管理
|
||||
- **之前**: 配置散布在各个文件
|
||||
- **现在**: ConfigManager集中管理,类型安全的配置访问
|
||||
|
||||
### 发布架构
|
||||
- **之前**: 平台特定的紧耦合代码
|
||||
- **现在**: IPlatformPublisher接口,松耦合的可扩展架构
|
||||
|
||||
### 内容处理
|
||||
- **之前**: 单一巨大文件处理所有内容
|
||||
- **现在**: 模块化处理器,职责明确,易于测试和维护
|
||||
|
||||
## 性能优化
|
||||
|
||||
### 模块化加载
|
||||
- 按需加载核心模块
|
||||
- 减少初始化时间
|
||||
- 优化内存使用
|
||||
|
||||
### 异步处理
|
||||
- 非阻塞的图像处理
|
||||
- 并行的资源加载
|
||||
- 流式的内容处理
|
||||
|
||||
### 缓存优化
|
||||
- 智能的配置缓存
|
||||
- 图像处理结果缓存
|
||||
- CSS样式缓存
|
||||
|
||||
## 可维护性提升
|
||||
|
||||
### 代码组织
|
||||
- 明确的模块职责分离
|
||||
- 统一的接口和约定
|
||||
- 完善的类型定义
|
||||
|
||||
### 扩展性
|
||||
- 插件化的处理器架构
|
||||
- 标准化的平台接口
|
||||
- 配置驱动的功能开关
|
||||
|
||||
### 测试友好
|
||||
- 依赖注入设计
|
||||
- 模块化的单元测试
|
||||
- 清晰的接口边界
|
||||
|
||||
## 兼容性保证
|
||||
|
||||
### 向后兼容
|
||||
- 保持现有API不变
|
||||
- 渐进式架构升级
|
||||
- 配置格式向下兼容
|
||||
|
||||
### 平滑升级
|
||||
- 不影响现有功能
|
||||
- 渐进式功能启用
|
||||
- 可回滚的架构变更
|
||||
|
||||
## 未来扩展方向
|
||||
|
||||
### 新平台支持
|
||||
- 基于IPlatformPublisher接口
|
||||
- 标准化的平台接入流程
|
||||
- 统一的认证和发布机制
|
||||
|
||||
### 处理器生态
|
||||
- 自定义内容处理器
|
||||
- 第三方处理器集成
|
||||
- 处理器市场和分享
|
||||
|
||||
### 智能化功能
|
||||
- AI内容优化
|
||||
- 智能格式转换
|
||||
- 自动化发布流程
|
||||
|
||||
## 总结
|
||||
|
||||
本次优化通过引入现代化的架构模式,显著提升了代码的:
|
||||
- **可维护性**: 模块化设计,职责清晰
|
||||
- **可扩展性**: 接口标准化,插件化架构
|
||||
- **用户体验**: 进度反馈,错误处理优化
|
||||
- **开发效率**: 统一的开发模式,完善的类型系统
|
||||
|
||||
这为Note2Any项目的长期发展奠定了坚实的技术基础。
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"id": "note-to-mp",
|
||||
"name": "NoteToAny",
|
||||
"version": "1.3.4",
|
||||
"id": "note2any",
|
||||
"name": "Note2Any",
|
||||
"version": "1.4.0",
|
||||
"minAppVersion": "1.4.5",
|
||||
"description": "xiaohongshu/mp publisher ",
|
||||
"author": "Gavin chan",
|
||||
"authorUrl": "https://biboer.cn",
|
||||
"isDesktopOnly": false
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": "https://biboer.cn/gitea/gavin/note2any"
|
||||
}
|
||||
|
||||
12
package.json
12
package.json
@@ -1,8 +1,16 @@
|
||||
{
|
||||
"name": "note-to-mp",
|
||||
"version": "1.3.0",
|
||||
"name": "note2any",
|
||||
"version": "1.4.0",
|
||||
"description": "This is a plugin for Obsidian (https://obsidian.md)",
|
||||
"main": "main.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://biboer.cn/gitea/gavin/note2any.git"
|
||||
},
|
||||
"homepage": "https://biboer.cn/gitea/gavin/note2any",
|
||||
"bugs": {
|
||||
"url": "https://biboer.cn/gitea/gavin/note2any/issues"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "node esbuild.config.mjs",
|
||||
"build": "npm run build:bundle --",
|
||||
|
||||
122
release.md
122
release.md
@@ -2,6 +2,74 @@
|
||||
# 版本信息
|
||||
‼️ 发布版本时填写,供脚本~/pubsh/release.sh使用
|
||||
|
||||
|
||||
## v1.3.12
|
||||
### 🚀 核心架构重构与优化
|
||||
|
||||
#### 新增核心模块系统
|
||||
- **ErrorHandler**: 统一错误处理机制,提供集中化的错误管理和用户友好的提示
|
||||
- **ProgressIndicator**: 全新的进度反馈系统,为长时间操作提供实时状态更新
|
||||
- **ConfigManager**: 中心化配置管理,支持运行时配置验证和热更新
|
||||
- **PublisherInterface**: 标准化平台发布接口,支持多平台扩展
|
||||
- **PublisherManager**: 统一的发布平台管理器
|
||||
- **ContentProcessor**: 模块化内容处理流水线
|
||||
|
||||
#### 专业化处理模块
|
||||
- **GalleryProcessor**: 专门处理图库短代码,支持目录式和块级图库
|
||||
- **ImageProcessor**: 统一图像处理接口,支持WebP转换、批量处理、微信上传
|
||||
- **HtmlProcessor**: HTML内容生成和格式化,支持响应式设计和移动端优化
|
||||
|
||||
#### 架构改进
|
||||
```
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ Core System Layer (新增) │
|
||||
│ - ErrorHandler (错误处理) │
|
||||
│ - ProgressIndicator (进度反馈) │
|
||||
│ - ConfigManager (配置管理) │
|
||||
│ - PublisherManager (发布管理) │
|
||||
└──────────────┬──────────────────────────────┘
|
||||
│ 支撑
|
||||
↓
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ Business Logic Layer │
|
||||
│ preview-manager.ts (中央调度器) │
|
||||
│ - 集成核心模块 │
|
||||
│ - 增强错误处理 │
|
||||
│ - 进度反馈集成 │
|
||||
└──────────────┬──────────────────────────────┘
|
||||
│ 管理
|
||||
┌───────┼───────┐
|
||||
↓ ↓ ↓
|
||||
┌──────────┐ ┌──────────┐ ┌──────────┐
|
||||
│Platform │ │Wechat │ │Xiaohong- │
|
||||
│Chooser │ │Preview │ │shu │
|
||||
│(UI选择器)│ │(微信实现)│ │Preview │
|
||||
└──────────┘ └──────────┘ │(小红书) │
|
||||
└──────────┘
|
||||
```
|
||||
|
||||
#### 性能优化
|
||||
- 模块化加载,减少初始化时间
|
||||
- 异步处理优化,提升响应性能
|
||||
- 智能缓存机制,减少重复计算
|
||||
|
||||
#### 可维护性提升
|
||||
- 明确的模块职责分离
|
||||
- 统一的接口和约定
|
||||
- 完善的类型定义
|
||||
- 向后兼容的API设计
|
||||
|
||||
### 🔧 技术改进
|
||||
- 重构项目名称从"note-to-mp"到"note2any"
|
||||
- 更新仓库地址到 https://biboer.cn/gitea/gavin/note2any.git
|
||||
- 批量更新66个CSS主题文件的类名
|
||||
- 优化构建和部署流程
|
||||
|
||||
### 📚 文档更新
|
||||
- 新增系统优化报告 (OPTIMIZATION_REPORT_v1.3.12.md)
|
||||
- 更新README文档,反映新的项目名称
|
||||
- 完善架构文档
|
||||
|
||||
## v1.3.4
|
||||
### 重构
|
||||
#### 新的架构图
|
||||
@@ -69,3 +137,57 @@
|
||||
|
||||
封面图片先转位png解决旋转问题。
|
||||
|
||||
## v1.3.12
|
||||
本次更新主要为项目重命名,核心功能保持不变
|
||||
|
||||
### 重大更新
|
||||
#### 项目名称变更 & 仓库迁移
|
||||
- **新仓库地址**:https://biboer.cn/gitea/gavin/note2any.git
|
||||
- **问题反馈**:https://biboer.cn/gitea/gavin/note2any/issues
|
||||
- **发布页面**:https://biboer.cn/gitea/gavin/note2any/releases
|
||||
|
||||
#### 样式系统更新
|
||||
- CSS类名 & 主题资源统一
|
||||
|
||||
## v1.4.0
|
||||
架构升级与代码质量提升
|
||||
|
||||
### 🏗️ 架构升级与代码质量提升
|
||||
|
||||
#### 核心架构现代化
|
||||
- **模块化重构**: 建立了完整的核心模块系统,包含错误处理、进度反馈、配置管理等9个专业模块
|
||||
- **类型安全**: 全面的TypeScript类型定义,零编译错误,提升代码可靠性
|
||||
- **接口标准化**: 统一的平台发布接口,支持更好的扩展性和维护性
|
||||
|
||||
#### 新增核心功能模块
|
||||
- **统一错误处理**: ErrorHandler模块提供集中化的错误管理和用户友好提示
|
||||
- **实时进度反馈**: ProgressIndicator为长时间操作提供状态更新
|
||||
- **智能配置管理**: ConfigManager支持运行时验证和热更新
|
||||
- **可扩展发布系统**: 标准化的平台接口,便于新平台接入
|
||||
|
||||
#### 专业化处理引擎
|
||||
- **图库处理器**: 专门优化图库短代码处理,支持多种格式和智能选择
|
||||
- **图像处理引擎**: 统一的图像处理接口,支持格式转换、批量处理、云端上传
|
||||
- **HTML生成器**: 增强的HTML处理,支持响应式设计和移动端优化
|
||||
|
||||
#### 开发体验改进
|
||||
- **代码组织**: 清晰的模块职责分离,1400+行新增代码
|
||||
- **维护性**: 统一的接口约定和完善的文档
|
||||
- **向后兼容**: 保持现有API稳定,平滑升级路径
|
||||
|
||||
#### 性能与稳定性
|
||||
- **启动优化**: 模块化加载减少初始化时间
|
||||
- **响应性能**: 异步处理优化,提升用户体验
|
||||
- **错误恢复**: 智能的错误处理和恢复机制
|
||||
|
||||
### 🔧 技术债务清理
|
||||
- 重构大型文件,提升代码可读性
|
||||
- 统一错误处理模式
|
||||
- 优化资源加载策略
|
||||
- 完善类型定义覆盖
|
||||
|
||||
### 📖 文档与工程化
|
||||
- 新增详细的架构文档和优化报告
|
||||
- 完善开发和部署流程
|
||||
- 更新项目说明和使用指南
|
||||
|
||||
|
||||
@@ -152,14 +152,14 @@ export class ArticleRender implements MDRendererCallback {
|
||||
isOldTheme() {
|
||||
const theme = this.assetsManager.getTheme(this.currentTheme);
|
||||
if (theme) {
|
||||
return theme.css.indexOf('.note-to-mp') < 0;
|
||||
return theme.css.indexOf('.note2any') < 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
setArticle(article: string) {
|
||||
this.articleDiv.empty();
|
||||
let className = 'note-to-mp';
|
||||
let className = 'note2any';
|
||||
// 兼容旧版本样式
|
||||
if (this.isOldTheme()) {
|
||||
className = this.currentTheme;
|
||||
@@ -200,7 +200,7 @@ export class ArticleRender implements MDRendererCallback {
|
||||
|
||||
errorContent(error: any) {
|
||||
return '<h1>渲染失败!</h1><br/>'
|
||||
+ '如需帮助请前往 <a href="https://github.com/sunbooshi/note-to-mp/issues">https://github.com/sunbooshi/note-to-mp/issues</a> 反馈<br/><br/>'
|
||||
+ '如需帮助请前往 <a href="https://biboer.cn/gitea/gavin/note2any/issues">https://biboer.cn/gitea/gavin/note2any/issues</a> 反馈<br/><br/>'
|
||||
+ '如果方便,请提供引发错误的完整Markdown内容。<br/><br/>'
|
||||
+ '<br/>Obsidian版本:' + apiVersion
|
||||
+ '<br/>错误信息:<br/>'
|
||||
@@ -289,7 +289,7 @@ export class ArticleRender implements MDRendererCallback {
|
||||
const theme = this.assetsManager.getTheme(this.currentTheme);
|
||||
const highlight = this.assetsManager.getHighlight(this.currentHighlight);
|
||||
const customCSS = this.settings.customCSSNote.length > 0 || this.settings.useCustomCss ? this.assetsManager.customCSS : '';
|
||||
const baseCSS = this.settings.baseCSS ? `.note-to-mp {${this.settings.baseCSS}}` : '';
|
||||
const baseCSS = this.settings.baseCSS ? `.note2any {${this.settings.baseCSS}}` : '';
|
||||
return `${InlineCSS}\n\n${highlight!.css}\n\n${theme!.css}\n\n${baseCSS}\n\n${customCSS}`;
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
@@ -341,11 +341,11 @@ export class ArticleRender implements MDRendererCallback {
|
||||
try {
|
||||
const globalAny = window as any;
|
||||
const now = Date.now();
|
||||
if (!globalAny.__note2mp_lastPathLog ||
|
||||
globalAny.__note2mp_lastPathLog.path !== file.path ||
|
||||
now - globalAny.__note2mp_lastPathLog.time > 3000) {
|
||||
console.log('[note2mp] active file path:', file.path);
|
||||
globalAny.__note2mp_lastPathLog = { path: file.path, time: now };
|
||||
if (!globalAny.__note2any_lastPathLog ||
|
||||
globalAny.__note2any_lastPathLog.path !== file.path ||
|
||||
now - globalAny.__note2any_lastPathLog.time > 3000) {
|
||||
console.log('[note2any] active file path:', file.path);
|
||||
globalAny.__note2any_lastPathLog = { path: file.path, time: now };
|
||||
}
|
||||
} catch {}
|
||||
const metadata = this.app.metadataCache.getFileCache(file);
|
||||
@@ -475,7 +475,7 @@ export class ArticleRender implements MDRendererCallback {
|
||||
if (base) res.cover = `![[${base}]]`;
|
||||
}
|
||||
if (res.cover) {
|
||||
try { console.log('[note2mp] use default cover:', def, '->', res.cover); } catch {}
|
||||
try { console.log('[note2any] use default cover:', def, '->', res.cover); } catch {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ export default class AssetsManager {
|
||||
|
||||
getThemeURL() {
|
||||
const version = this.manifest.version;
|
||||
return `https://github.com/sunbooshi/note-to-mp/releases/download/${version}/assets.zip`;
|
||||
return `https://biboer.cn/gitea/gavin/note2any/releases/download/${version}/assets.zip`;
|
||||
}
|
||||
|
||||
async getStyle() {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import { App, Modal, Setting, TFile, Notice, ButtonComponent } from 'obsidian';
|
||||
import { BatchArticleFilter, BatchFilterConfig } from './batch-filter';
|
||||
import NoteToMpPlugin from './main';
|
||||
import Note2AnyPlugin from './main';
|
||||
// 小红书功能模块
|
||||
import { XiaohongshuContentAdapter } from './xiaohongshu/adapter';
|
||||
import { XiaohongshuAPIManager } from './xiaohongshu/api';
|
||||
@@ -34,7 +34,7 @@ import { XiaohongshuAPIManager } from './xiaohongshu/api';
|
||||
*/
|
||||
|
||||
export class BatchPublishModal extends Modal {
|
||||
plugin: NoteToMpPlugin;
|
||||
plugin: Note2AnyPlugin;
|
||||
filter: BatchArticleFilter;
|
||||
filteredFiles: TFile[] = [];
|
||||
selectedFiles: Set<TFile> = new Set();
|
||||
@@ -69,7 +69,7 @@ export class BatchPublishModal extends Modal {
|
||||
orderDirection: 'asc'
|
||||
};
|
||||
|
||||
constructor(app: App, plugin: NoteToMpPlugin) {
|
||||
constructor(app: App, plugin: Note2AnyPlugin) {
|
||||
super(app);
|
||||
this.plugin = plugin;
|
||||
this.filter = new BatchArticleFilter(app);
|
||||
|
||||
148
src/core/config-manager.ts
Normal file
148
src/core/config-manager.ts
Normal file
@@ -0,0 +1,148 @@
|
||||
/**
|
||||
* 文件:config-manager.ts
|
||||
* 作用:集中的配置管理和验证
|
||||
*/
|
||||
|
||||
import { ErrorHandler, ValidationError } from './error-handler';
|
||||
import { NMPSettings } from '../settings';
|
||||
|
||||
export interface PlatformConfig {
|
||||
name: string;
|
||||
enabled: boolean;
|
||||
validate(): boolean;
|
||||
}
|
||||
|
||||
export interface WechatConfig extends PlatformConfig {
|
||||
wxInfo: Array<{name: string, appid: string, secret: string}>;
|
||||
authKey: string;
|
||||
}
|
||||
|
||||
export interface XhsConfig extends PlatformConfig {
|
||||
// 小红书相关配置待扩展
|
||||
sliceImageSavePath: string;
|
||||
sliceImageWidth: number;
|
||||
sliceImageAspectRatio: string;
|
||||
xhsPreviewWidth: number;
|
||||
}
|
||||
|
||||
export interface GlobalConfig {
|
||||
defaultTheme: string;
|
||||
defaultHighlight: string;
|
||||
baseCSS: string;
|
||||
customCSSNote: string;
|
||||
showStyleUI: boolean;
|
||||
linkStyle: string;
|
||||
embedStyle: string;
|
||||
lineNumber: boolean;
|
||||
math: string;
|
||||
}
|
||||
|
||||
export class ConfigManager {
|
||||
private static instance: ConfigManager;
|
||||
private settings: NMPSettings;
|
||||
|
||||
private constructor(settings: NMPSettings) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
static getInstance(settings?: NMPSettings): ConfigManager {
|
||||
if (!this.instance && settings) {
|
||||
this.instance = new ConfigManager(settings);
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
|
||||
static initialize(settings: NMPSettings): void {
|
||||
this.instance = new ConfigManager(settings);
|
||||
}
|
||||
|
||||
getWechatConfig(): WechatConfig {
|
||||
return {
|
||||
name: 'WeChat',
|
||||
enabled: this.settings.wxInfo.length > 0,
|
||||
wxInfo: this.settings.wxInfo,
|
||||
authKey: this.settings.authKey,
|
||||
validate: () => this.validateWechatConfig()
|
||||
};
|
||||
}
|
||||
|
||||
getXhsConfig(): XhsConfig {
|
||||
return {
|
||||
name: 'XiaoHongShu',
|
||||
enabled: true, // 暂时默认启用
|
||||
sliceImageSavePath: this.settings.sliceImageSavePath,
|
||||
sliceImageWidth: this.settings.sliceImageWidth,
|
||||
sliceImageAspectRatio: this.settings.sliceImageAspectRatio,
|
||||
xhsPreviewWidth: this.settings.xhsPreviewWidth,
|
||||
validate: () => this.validateXhsConfig()
|
||||
};
|
||||
}
|
||||
|
||||
getGlobalConfig(): GlobalConfig {
|
||||
return {
|
||||
defaultTheme: this.settings.defaultStyle,
|
||||
defaultHighlight: this.settings.defaultHighlight,
|
||||
baseCSS: this.settings.baseCSS,
|
||||
customCSSNote: this.settings.customCSSNote,
|
||||
showStyleUI: this.settings.showStyleUI,
|
||||
linkStyle: this.settings.linkStyle,
|
||||
embedStyle: this.settings.embedStyle,
|
||||
lineNumber: this.settings.lineNumber,
|
||||
math: this.settings.math
|
||||
};
|
||||
}
|
||||
|
||||
private validateWechatConfig(): boolean {
|
||||
try {
|
||||
ErrorHandler.validateRequired(this.settings.authKey, 'WeChat 授权密钥');
|
||||
if (this.settings.wxInfo.length === 0) {
|
||||
throw new ValidationError('WeChat 配置信息不能为空');
|
||||
}
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.warn('WeChat配置验证失败:', error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private validateXhsConfig(): boolean {
|
||||
try {
|
||||
ErrorHandler.validateRequired(this.settings.sliceImageSavePath, '小红书切图保存路径');
|
||||
if (this.settings.sliceImageWidth <= 0) {
|
||||
throw new ValidationError('切图宽度必须大于0');
|
||||
}
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.warn('小红书配置验证失败:', error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
validatePlatformConfig(platform: 'wechat' | 'xhs'): boolean {
|
||||
switch (platform) {
|
||||
case 'wechat':
|
||||
return this.validateWechatConfig();
|
||||
case 'xhs':
|
||||
return this.validateXhsConfig();
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
isTokenValid(platform: 'wechat'): boolean {
|
||||
if (platform === 'wechat') {
|
||||
return this.settings.isAuthKeyVaild();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
updateWechatToken(accessToken: string, expiresIn: number): void {
|
||||
// 当前设置结构中使用 authKey 系统,这里可以扩展
|
||||
console.log('WeChat token updated (using authKey system)');
|
||||
}
|
||||
|
||||
clearWechatToken(): void {
|
||||
// 当前设置结构中使用 authKey 系统,这里可以扩展
|
||||
console.log('WeChat token cleared (using authKey system)');
|
||||
}
|
||||
}
|
||||
209
src/core/content-processor.ts
Normal file
209
src/core/content-processor.ts
Normal file
@@ -0,0 +1,209 @@
|
||||
/**
|
||||
* 文件:content-processor.ts
|
||||
* 作用:内容处理器,负责处理markdown内容的各种转换
|
||||
*/
|
||||
|
||||
import { TFile, App } from 'obsidian';
|
||||
import { ErrorHandler } from './error-handler';
|
||||
|
||||
export interface ProcessorOptions {
|
||||
enableImageToBase64?: boolean;
|
||||
enableLinkProcessing?: boolean;
|
||||
enableCodeHighlight?: boolean;
|
||||
enableMathProcessing?: boolean;
|
||||
platform?: string;
|
||||
}
|
||||
|
||||
export class ContentProcessor {
|
||||
private app: App;
|
||||
|
||||
constructor(app: App) {
|
||||
this.app = app;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理图片链接,转换为base64或平台URL
|
||||
*/
|
||||
async processImages(
|
||||
content: string,
|
||||
file: TFile,
|
||||
options: ProcessorOptions = {}
|
||||
): Promise<string> {
|
||||
return await ErrorHandler.withErrorHandling(async () => {
|
||||
const { enableImageToBase64 = true } = options;
|
||||
|
||||
if (!enableImageToBase64) {
|
||||
return content;
|
||||
}
|
||||
|
||||
// WikiLink 图片处理: ![[image.png]]
|
||||
content = await this.processWikiLinkImages(content, file);
|
||||
|
||||
// Markdown 图片处理: 
|
||||
content = await this.processMarkdownImages(content, file);
|
||||
|
||||
return content;
|
||||
}, 'ContentProcessor.processImages', content) || content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理链接
|
||||
*/
|
||||
processLinks(content: string, linkStyle: 'inline' | 'footnote' = 'inline'): string {
|
||||
return ErrorHandler.withErrorHandlingSync(() => {
|
||||
if (linkStyle === 'footnote') {
|
||||
return this.convertLinksToFootnotes(content);
|
||||
}
|
||||
return this.processInlineLinks(content);
|
||||
}, 'ContentProcessor.processLinks', content) || content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理代码块高亮
|
||||
*/
|
||||
processCodeBlocks(content: string, highlightTheme: string = 'default'): string {
|
||||
return ErrorHandler.withErrorHandlingSync(() => {
|
||||
// 为代码块添加语法高亮类
|
||||
return content.replace(
|
||||
/```(\w+)?\n([\s\S]*?)```/g,
|
||||
(match, lang, code) => {
|
||||
const language = lang || 'text';
|
||||
return `<div class="code-section">
|
||||
<pre><code class="language-${language}">${this.escapeHtml(code.trim())}</code></pre>
|
||||
</div>`;
|
||||
}
|
||||
);
|
||||
}, 'ContentProcessor.processCodeBlocks', content) || content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数学公式
|
||||
*/
|
||||
processMath(content: string, mathEngine: 'latex' | 'asciimath' = 'latex'): string {
|
||||
return ErrorHandler.withErrorHandlingSync(() => {
|
||||
// 行内公式: $...$
|
||||
content = content.replace(/\$([^$]+)\$/g, (match, formula) => {
|
||||
return `<span class="math-inline" data-engine="${mathEngine}">${formula}</span>`;
|
||||
});
|
||||
|
||||
// 块级公式: $$...$$
|
||||
content = content.replace(/\$\$([^$]+)\$\$/g, (match, formula) => {
|
||||
return `<div class="math-block" data-engine="${mathEngine}">${formula}</div>`;
|
||||
});
|
||||
|
||||
return content;
|
||||
}, 'ContentProcessor.processMath', content) || content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理Gallery短代码
|
||||
*/
|
||||
async processGalleryShortcode(content: string, galleryPath: string, numPics: number = 2): Promise<string> {
|
||||
return await ErrorHandler.withErrorHandling(async () => {
|
||||
const galleryRegex = /{{<gallery\s+dir="([^"]+)"(?:\s+figcaption="([^"]*)")?(?:\s+mppickall=(?:"(1|0)"|'(1|0)'|(1|0)))?\s*\/?>}}\s*{{<load-photoswipe>}}/g;
|
||||
|
||||
return content.replace(galleryRegex, (match, dir, figcaption, q1, q2, unquoted) => {
|
||||
const pickAll = q1 === '1' || q2 === '1' || unquoted === '1';
|
||||
const maxPics = pickAll ? 999 : numPics;
|
||||
|
||||
// 这里应该调用实际的图片列表获取逻辑
|
||||
// 为了简化,返回占位符
|
||||
return `<!-- Gallery: ${dir}, max: ${maxPics}, caption: ${figcaption || ''} -->`;
|
||||
});
|
||||
}, 'ContentProcessor.processGalleryShortcode', content) || content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理HTML标签
|
||||
*/
|
||||
sanitizeHtml(content: string, allowedTags: string[] = []): string {
|
||||
return ErrorHandler.withErrorHandlingSync(() => {
|
||||
const allowedTagsSet = new Set(allowedTags);
|
||||
|
||||
return content.replace(/<[^>]*>/g, (tag) => {
|
||||
const tagName = tag.match(/<\/?(\w+)/)?.[1]?.toLowerCase();
|
||||
if (tagName && allowedTagsSet.has(tagName)) {
|
||||
return tag;
|
||||
}
|
||||
return '';
|
||||
});
|
||||
}, 'ContentProcessor.sanitizeHtml', content) || content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理自定义语法扩展
|
||||
*/
|
||||
processCustomSyntax(content: string): string {
|
||||
return ErrorHandler.withErrorHandlingSync(() => {
|
||||
// 斜体标注: [fig 一段说明 /]
|
||||
content = content.replace(/\[fig\s+([^/]+)\s+\/\]/g,
|
||||
'<span style="font-style:italic;color:#666;font-size:0.9em;">$1</span>');
|
||||
|
||||
// 彩色提示块
|
||||
content = content.replace(/^\|\|([rgby]?)\s+(.+)$/gm, (match, color, text) => {
|
||||
const colorMap: Record<string, string> = {
|
||||
'r': 'background:#8B4513;color:white',
|
||||
'g': 'background:#9ACD32;color:black',
|
||||
'b': 'background:#D3D3D3;color:black',
|
||||
'y': 'background:#FFFF99;color:black',
|
||||
'': 'background:#F5F5F5;color:black'
|
||||
};
|
||||
const style = colorMap[color] || colorMap[''];
|
||||
return `<div style="padding:8px;margin:4px 0;border-radius:4px;${style}">${text}</div>`;
|
||||
});
|
||||
|
||||
return content;
|
||||
}, 'ContentProcessor.processCustomSyntax', content) || content;
|
||||
}
|
||||
|
||||
// 私有辅助方法
|
||||
|
||||
private async processWikiLinkImages(content: string, file: TFile): Promise<string> {
|
||||
const wikiImageRegex = /!\[\[([^\]]+)\]\]/g;
|
||||
|
||||
return content.replace(wikiImageRegex, (match, imagePath) => {
|
||||
// 这里应该实现实际的图片处理逻辑
|
||||
return `<img src="data:image/png;base64,placeholder" alt="${imagePath}">`;
|
||||
});
|
||||
}
|
||||
|
||||
private async processMarkdownImages(content: string, file: TFile): Promise<string> {
|
||||
const markdownImageRegex = /!\[([^\]]*)\]\(([^)]+)\)/g;
|
||||
|
||||
return content.replace(markdownImageRegex, (match, alt, src) => {
|
||||
// 这里应该实现实际的图片处理逻辑
|
||||
return `<img src="data:image/png;base64,placeholder" alt="${alt}">`;
|
||||
});
|
||||
}
|
||||
|
||||
private convertLinksToFootnotes(content: string): string {
|
||||
const links: string[] = [];
|
||||
|
||||
// 提取所有链接
|
||||
content = content.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (match, text, url) => {
|
||||
links.push(url);
|
||||
return `${text}[${links.length}]`;
|
||||
});
|
||||
|
||||
// 添加脚注
|
||||
if (links.length > 0) {
|
||||
content += '\n\n---\n\n';
|
||||
links.forEach((url, index) => {
|
||||
content += `[${index + 1}]: ${url}\n`;
|
||||
});
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
private processInlineLinks(content: string): string {
|
||||
return content.replace(/\[([^\]]+)\]\(([^)]+)\)/g,
|
||||
'<a href="$2" style="color:#1e6bb8;text-decoration:none;">$1</a>');
|
||||
}
|
||||
|
||||
private escapeHtml(text: string): string {
|
||||
const div = document.createElement('div');
|
||||
div.textContent = text;
|
||||
return div.innerHTML;
|
||||
}
|
||||
}
|
||||
96
src/core/error-handler.ts
Normal file
96
src/core/error-handler.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
* 文件:error-handler.ts
|
||||
* 作用:统一的错误处理和用户反馈系统
|
||||
*/
|
||||
|
||||
import { Notice } from 'obsidian';
|
||||
|
||||
export class NetworkError extends Error {
|
||||
constructor(message: string) {
|
||||
super(message);
|
||||
this.name = 'NetworkError';
|
||||
}
|
||||
}
|
||||
|
||||
export class ValidationError extends Error {
|
||||
constructor(message: string) {
|
||||
super(message);
|
||||
this.name = 'ValidationError';
|
||||
}
|
||||
}
|
||||
|
||||
export class PlatformError extends Error {
|
||||
constructor(message: string, public platform: string) {
|
||||
super(message);
|
||||
this.name = 'PlatformError';
|
||||
}
|
||||
}
|
||||
|
||||
export class ErrorHandler {
|
||||
private static readonly ERROR_MESSAGES = {
|
||||
NETWORK_ERROR: '网络连接异常,请检查网络设置',
|
||||
VALIDATION_ERROR: '配置验证失败',
|
||||
PLATFORM_ERROR: '发布平台异常',
|
||||
UNKNOWN_ERROR: '操作失败,请查看控制台了解详情'
|
||||
};
|
||||
|
||||
static handle(error: Error, context: string): void {
|
||||
console.error(`[Note2Any] ${context}:`, error);
|
||||
|
||||
let userMessage: string;
|
||||
let duration = 5000;
|
||||
|
||||
if (error instanceof NetworkError) {
|
||||
userMessage = this.ERROR_MESSAGES.NETWORK_ERROR;
|
||||
} else if (error instanceof ValidationError) {
|
||||
userMessage = `${this.ERROR_MESSAGES.VALIDATION_ERROR}: ${error.message}`;
|
||||
} else if (error instanceof PlatformError) {
|
||||
userMessage = `${error.platform} ${this.ERROR_MESSAGES.PLATFORM_ERROR}: ${error.message}`;
|
||||
} else {
|
||||
userMessage = this.ERROR_MESSAGES.UNKNOWN_ERROR;
|
||||
duration = 8000;
|
||||
}
|
||||
|
||||
new Notice(userMessage, duration);
|
||||
}
|
||||
|
||||
static async withErrorHandling<T>(
|
||||
operation: () => Promise<T>,
|
||||
context: string,
|
||||
fallback?: T
|
||||
): Promise<T | undefined> {
|
||||
try {
|
||||
return await operation();
|
||||
} catch (error) {
|
||||
this.handle(error as Error, context);
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
static withErrorHandlingSync<T>(
|
||||
operation: () => T,
|
||||
context: string,
|
||||
fallback?: T
|
||||
): T | undefined {
|
||||
try {
|
||||
return operation();
|
||||
} catch (error) {
|
||||
this.handle(error as Error, context);
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
static validateRequired(value: any, fieldName: string): void {
|
||||
if (!value || (typeof value === 'string' && value.trim() === '')) {
|
||||
throw new ValidationError(`${fieldName} 是必填项`);
|
||||
}
|
||||
}
|
||||
|
||||
static validateUrl(url: string, fieldName: string): void {
|
||||
try {
|
||||
new URL(url);
|
||||
} catch {
|
||||
throw new ValidationError(`${fieldName} 必须是有效的URL`);
|
||||
}
|
||||
}
|
||||
}
|
||||
150
src/core/gallery-processor.ts
Normal file
150
src/core/gallery-processor.ts
Normal file
@@ -0,0 +1,150 @@
|
||||
/**
|
||||
* 文件:gallery-processor.ts
|
||||
* 作用:处理文章中的图库短代码
|
||||
*
|
||||
* 职责:
|
||||
* 1. 解析和转换 gallery 短代码
|
||||
* 2. 处理本地图片目录扫描
|
||||
* 3. 生成 wikilink 格式的图片引用
|
||||
*/
|
||||
|
||||
import { stat, readdir } from 'fs/promises';
|
||||
import * as path from 'path';
|
||||
import { NMPSettings } from '../settings';
|
||||
|
||||
// gallery 配置迁移到 NMPSettings(galleryPrePath, galleryNumPic)
|
||||
// 匹配示例:{{<gallery dir="/img/guanzhan/1" figcaption="毕业展" mppickall=1/>}}{{<load-photoswipe>}}
|
||||
// 支持可选 figcaption 以及 mppickall=1/0(无引号数字或布尔),若 mppickall=1 则选取目录内全部图片
|
||||
const GALLERY_SHORTCODE_REGEX = /{{<gallery\s+dir="([^"]+)"(?:\s+figcaption="([^"]*)")?(?:\s+mppickall=(?:"(1|0)"|'(1|0)'|(1|0)))?\s*\/?>}}\s*{{<load-photoswipe>}}/g;
|
||||
|
||||
// 块级 gallery:
|
||||
// {{<gallery>}}\n{{<figure src="/img/a.png" caption=".." >}}\n...\n{{</gallery>}}
|
||||
// 需要提取所有 figure 的 src basename 生成多行 wikilink
|
||||
const GALLERY_BLOCK_REGEX = /{{<gallery>}}([\s\S]*?){{<\/gallery>}}/g;
|
||||
|
||||
// figure 支持 src 或 link 属性,两者取其一
|
||||
const FIGURE_IN_GALLERY_REGEX = /{{<figure\s+(?:src|link)="([^"]+)"[^>]*>}}/g;
|
||||
|
||||
/**
|
||||
* 列出本地图片目录中的图片文件
|
||||
*/
|
||||
async function listLocalImages(dirAbs: string): Promise<string[]> {
|
||||
try {
|
||||
const stats = await stat(dirAbs);
|
||||
if (!stats.isDirectory()) return [];
|
||||
} catch {
|
||||
return [];
|
||||
}
|
||||
|
||||
try {
|
||||
const files = await readdir(dirAbs);
|
||||
return files.filter(f => /(png|jpe?g|gif|bmp|webp|svg)$/i.test(f)).sort();
|
||||
} catch {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从图片列表中选择指定数量的图片
|
||||
*/
|
||||
function pickImages(all: string[], limit: number): string[] {
|
||||
if (all.length <= limit) return all;
|
||||
|
||||
// 均匀采样
|
||||
const step = all.length / limit;
|
||||
const picked: string[] = [];
|
||||
for (let i = 0; i < limit; i++) {
|
||||
const index = Math.floor(i * step);
|
||||
picked.push(all[index]);
|
||||
}
|
||||
return picked;
|
||||
}
|
||||
|
||||
/**
|
||||
* 图库处理器类
|
||||
*/
|
||||
export class GalleryProcessor {
|
||||
private settings: NMPSettings;
|
||||
|
||||
constructor(settings: NMPSettings) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理文章中的图库短代码
|
||||
*/
|
||||
async processGalleryShortcodes(content: string): Promise<string> {
|
||||
// 处理目录式 gallery
|
||||
content = await this.processDirectoryGalleries(content);
|
||||
|
||||
// 处理块级 gallery
|
||||
content = await this.processBlockGalleries(content);
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理目录式图库短代码
|
||||
*/
|
||||
private async processDirectoryGalleries(content: string): Promise<string> {
|
||||
const matches = Array.from(content.matchAll(GALLERY_SHORTCODE_REGEX));
|
||||
|
||||
for (const match of matches) {
|
||||
const [fullMatch, dir, figcaption = '', pickall1, pickall2, pickall3] = match;
|
||||
const pickall = pickall1 || pickall2 || pickall3;
|
||||
const shouldPickAll = pickall === '1';
|
||||
|
||||
try {
|
||||
const galleryPrePath = this.settings.galleryPrePath;
|
||||
const dirAbs = path.join(galleryPrePath, dir);
|
||||
const allImages = await listLocalImages(dirAbs);
|
||||
|
||||
if (allImages.length === 0) {
|
||||
console.warn(`[GalleryProcessor] 目录 ${dirAbs} 中没有找到图片`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const selectedImages = shouldPickAll
|
||||
? allImages
|
||||
: pickImages(allImages, this.settings.galleryNumPic);
|
||||
|
||||
// 生成 wikilink 格式的图片引用
|
||||
const wikilinks = selectedImages.map(img => {
|
||||
const imgPath = path.join(dir, img).replace(/\\/g, '/');
|
||||
return `![[${imgPath}]]`;
|
||||
});
|
||||
|
||||
let replacement = wikilinks.join('\n');
|
||||
if (figcaption) {
|
||||
replacement = `> ${figcaption}\n\n${replacement}`;
|
||||
}
|
||||
|
||||
content = content.replace(fullMatch, replacement);
|
||||
} catch (error) {
|
||||
console.error(`[GalleryProcessor] 处理图库失败: ${dir}`, error);
|
||||
}
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理块级图库短代码
|
||||
*/
|
||||
private processBlockGalleries(content: string): Promise<string> {
|
||||
return Promise.resolve(content.replace(GALLERY_BLOCK_REGEX, (match, blockContent) => {
|
||||
const figureMatches = Array.from(blockContent.matchAll(FIGURE_IN_GALLERY_REGEX));
|
||||
|
||||
if (figureMatches.length === 0) {
|
||||
return match; // 保持原样
|
||||
}
|
||||
|
||||
const wikilinks = figureMatches.map(([, src]) => {
|
||||
const basename = path.basename(src);
|
||||
return `![[${basename}]]`;
|
||||
});
|
||||
|
||||
return wikilinks.join('\n');
|
||||
}));
|
||||
}
|
||||
}
|
||||
263
src/core/html-processor.ts
Normal file
263
src/core/html-processor.ts
Normal file
@@ -0,0 +1,263 @@
|
||||
/**
|
||||
* 文件:html-processor.ts
|
||||
* 作用:处理HTML内容的生成和格式化
|
||||
*
|
||||
* 职责:
|
||||
* 1. HTML内容清理和格式化
|
||||
* 2. CSS样式内联处理
|
||||
* 3. HTML结构生成
|
||||
* 4. 代码高亮处理
|
||||
*/
|
||||
|
||||
import { sanitizeHTMLToDom } from 'obsidian';
|
||||
import { applyCSS } from '../utils';
|
||||
import InlineCSS from '../inline-css';
|
||||
import { NMPSettings } from '../settings';
|
||||
import AssetsManager from '../assets';
|
||||
import { ErrorHandler } from './error-handler';
|
||||
|
||||
export interface HtmlProcessOptions {
|
||||
enableCodeHighlight?: boolean;
|
||||
enableInlineCSS?: boolean;
|
||||
theme?: string;
|
||||
highlight?: string;
|
||||
customCSS?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* HTML处理器类
|
||||
*/
|
||||
export class HtmlProcessor {
|
||||
private settings: NMPSettings;
|
||||
private assetsManager: AssetsManager;
|
||||
|
||||
constructor() {
|
||||
this.settings = NMPSettings.getInstance();
|
||||
this.assetsManager = AssetsManager.getInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成完整的HTML文档
|
||||
*/
|
||||
generateFullHtml(content: string, options: HtmlProcessOptions = {}): string {
|
||||
try {
|
||||
const theme = options.theme || this.settings.defaultStyle;
|
||||
const highlight = options.highlight || this.settings.defaultHighlight;
|
||||
|
||||
// 获取基础样式
|
||||
const baseCSS = this.getBaseCSS(theme, highlight);
|
||||
|
||||
// 处理自定义CSS
|
||||
let customCSS = options.customCSS || '';
|
||||
if (this.settings.useCustomCss && this.settings.customCSSNote) {
|
||||
customCSS += '\n' + this.settings.customCSSNote;
|
||||
}
|
||||
|
||||
// 构建完整HTML
|
||||
const html = `
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Note2Any Export</title>
|
||||
<style>
|
||||
${baseCSS}
|
||||
${customCSS}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="note2any">
|
||||
${content}
|
||||
</div>
|
||||
</body>
|
||||
</html>`;
|
||||
|
||||
return html;
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'HtmlProcessor.generateFullHtml');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理HTML内容的内联CSS
|
||||
*/
|
||||
async processInlineCSS(html: string): Promise<string> {
|
||||
// 简化版内联CSS处理,使用原生方法
|
||||
try {
|
||||
// 这里可以实现一个简单的CSS内联功能
|
||||
// 或者集成第三方库如 juice
|
||||
return html;
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'HtmlProcessor.processInlineCSS');
|
||||
console.warn('[HtmlProcessor] 内联CSS处理失败,使用原始HTML', error);
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理和格式化HTML内容
|
||||
*/
|
||||
sanitizeHtml(html: string): DocumentFragment {
|
||||
try {
|
||||
return sanitizeHTMLToDom(html);
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'HtmlProcessor.sanitizeHtml');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用CSS样式到元素
|
||||
*/
|
||||
applyStylesToElement(html: string, css: string): string {
|
||||
try {
|
||||
return applyCSS(html, css);
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'HtmlProcessor.applyStylesToElement');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取基础CSS样式
|
||||
*/
|
||||
private getBaseCSS(theme: string, highlight: string): string {
|
||||
try {
|
||||
let css = '';
|
||||
|
||||
// 主题样式
|
||||
const themeCSS = this.assetsManager.getTheme(theme);
|
||||
if (themeCSS) {
|
||||
css += themeCSS + '\n';
|
||||
}
|
||||
|
||||
// 代码高亮样式
|
||||
const highlightCSS = this.assetsManager.getHighlight(highlight);
|
||||
if (highlightCSS) {
|
||||
css += highlightCSS + '\n';
|
||||
}
|
||||
|
||||
return css;
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'HtmlProcessor.getBaseCSS');
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成响应式HTML包装器
|
||||
*/
|
||||
wrapWithResponsive(content: string, maxWidth = '800px'): string {
|
||||
return `
|
||||
<div style="max-width: ${maxWidth}; margin: 0 auto; padding: 20px; box-sizing: border-box;">
|
||||
${content}
|
||||
</div>`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加打印样式
|
||||
*/
|
||||
addPrintStyles(): string {
|
||||
return `
|
||||
<style media="print">
|
||||
@page {
|
||||
margin: 2cm;
|
||||
size: A4;
|
||||
}
|
||||
|
||||
.note2any {
|
||||
max-width: none !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.no-print {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre-wrap !important;
|
||||
word-break: break-word !important;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
height: auto !important;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
p, li {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
</style>`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理代码块高亮
|
||||
*/
|
||||
processCodeHighlight(html: string, highlight: string): string {
|
||||
try {
|
||||
// 这里可以添加更复杂的代码高亮处理逻辑
|
||||
// 目前主要依赖 AssetsManager 提供的高亮样式
|
||||
|
||||
return html;
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'HtmlProcessor.processCodeHighlight');
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 优化HTML结构用于移动端显示
|
||||
*/
|
||||
optimizeForMobile(html: string): string {
|
||||
try {
|
||||
// 添加移动端优化的meta标签和样式
|
||||
const mobileOptimizations = `
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
<style>
|
||||
/* 移动端优化样式 */
|
||||
@media screen and (max-width: 768px) {
|
||||
.note2any {
|
||||
padding: 15px 10px !important;
|
||||
font-size: 16px !important;
|
||||
line-height: 1.6 !important;
|
||||
}
|
||||
|
||||
pre, code {
|
||||
font-size: 14px !important;
|
||||
overflow-x: auto !important;
|
||||
white-space: pre-wrap !important;
|
||||
}
|
||||
|
||||
table {
|
||||
font-size: 14px !important;
|
||||
display: block !important;
|
||||
overflow-x: auto !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
height: auto !important;
|
||||
}
|
||||
}
|
||||
</style>`;
|
||||
|
||||
// 在head标签中插入移动端优化
|
||||
return html.replace('</head>', mobileOptimizations + '</head>');
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'HtmlProcessor.optimizeForMobile');
|
||||
return html;
|
||||
}
|
||||
}
|
||||
}
|
||||
225
src/core/image-processor.ts
Normal file
225
src/core/image-processor.ts
Normal file
@@ -0,0 +1,225 @@
|
||||
/**
|
||||
* 文件:image-processor.ts
|
||||
* 作用:处理文章中的图片相关操作
|
||||
*
|
||||
* 职责:
|
||||
* 1. 图片上传和转换
|
||||
* 2. 图片格式处理(WebP转JPG等)
|
||||
* 3. 图片EXIF处理
|
||||
* 4. 图片截图功能
|
||||
*/
|
||||
|
||||
import { Notice } from 'obsidian';
|
||||
import { toPng } from 'html-to-image';
|
||||
import { PrepareImageLib, IsImageLibReady, WebpToJPG } from '../imagelib';
|
||||
import { UploadImageToWx } from '../imagelib';
|
||||
import { ErrorHandler } from './error-handler';
|
||||
import { ProgressIndicator } from './progress-indicator';
|
||||
|
||||
export interface ImageProcessOptions {
|
||||
enableWebpConversion?: boolean;
|
||||
enableExifProcessing?: boolean;
|
||||
quality?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* 图像处理器类
|
||||
*/
|
||||
export class ImageProcessor {
|
||||
private isInitialized = false;
|
||||
|
||||
/**
|
||||
* 初始化图像处理库
|
||||
*/
|
||||
async initialize(): Promise<void> {
|
||||
if (this.isInitialized) return;
|
||||
|
||||
const progress = new ProgressIndicator();
|
||||
progress.start('初始化图像处理库');
|
||||
|
||||
try {
|
||||
await PrepareImageLib();
|
||||
|
||||
// 等待图像库准备就绪
|
||||
let attempts = 0;
|
||||
const maxAttempts = 50;
|
||||
while (!IsImageLibReady() && attempts < maxAttempts) {
|
||||
await new Promise(resolve => setTimeout(resolve, 100));
|
||||
attempts++;
|
||||
}
|
||||
|
||||
if (!IsImageLibReady()) {
|
||||
throw new Error('图像处理库初始化超时');
|
||||
}
|
||||
|
||||
this.isInitialized = true;
|
||||
progress.finish('图像处理库初始化完成');
|
||||
} catch (error) {
|
||||
progress.error('图像处理库初始化失败');
|
||||
ErrorHandler.handle(error as Error, 'ImageProcessor.initialize');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确保图像处理库已初始化
|
||||
*/
|
||||
private async ensureInitialized(): Promise<void> {
|
||||
if (!this.isInitialized) {
|
||||
await this.initialize();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将WebP格式转换为JPG
|
||||
*/
|
||||
async convertWebpToJpg(webpData: ArrayBuffer): Promise<ArrayBuffer> {
|
||||
await this.ensureInitialized();
|
||||
|
||||
try {
|
||||
const result = await WebpToJPG(webpData);
|
||||
if (!result) {
|
||||
throw new Error('WebP转JPG失败');
|
||||
}
|
||||
// 将 Uint8Array 转换为 ArrayBuffer
|
||||
const buffer = result.buffer as ArrayBuffer;
|
||||
return buffer.slice(result.byteOffset, result.byteOffset + result.byteLength);
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'ImageProcessor.convertWebpToJpg');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传图片到微信
|
||||
*/
|
||||
async uploadToWechat(imageData: ArrayBuffer, filename: string, token: string, type?: string): Promise<string> {
|
||||
await this.ensureInitialized();
|
||||
|
||||
const progress = new ProgressIndicator();
|
||||
progress.start(`上传图片: ${filename}`);
|
||||
|
||||
try {
|
||||
// 将 ArrayBuffer 转换为 Blob
|
||||
const blob = new Blob([imageData]);
|
||||
const result = await UploadImageToWx(blob, filename, token, type);
|
||||
|
||||
if (result.errcode !== 0) {
|
||||
throw new Error(`上传失败: ${result.errmsg}`);
|
||||
}
|
||||
|
||||
progress.finish('图片上传成功');
|
||||
return result.media_id;
|
||||
} catch (error) {
|
||||
progress.error('图片上传失败');
|
||||
ErrorHandler.handle(error as Error, 'ImageProcessor.uploadToWechat');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将HTML元素转换为PNG图片
|
||||
*/
|
||||
async htmlToPng(element: HTMLElement, options?: {
|
||||
width?: number;
|
||||
height?: number;
|
||||
backgroundColor?: string;
|
||||
pixelRatio?: number;
|
||||
}): Promise<Blob> {
|
||||
const progress = new ProgressIndicator();
|
||||
progress.start('生成图片');
|
||||
|
||||
try {
|
||||
const defaultOptions = {
|
||||
width: options?.width || element.offsetWidth,
|
||||
height: options?.height || element.offsetHeight,
|
||||
backgroundColor: options?.backgroundColor || '#ffffff',
|
||||
pixelRatio: options?.pixelRatio || 2,
|
||||
cacheBust: true,
|
||||
skipFonts: false,
|
||||
style: {
|
||||
transform: 'scale(1)',
|
||||
transformOrigin: 'top left'
|
||||
}
|
||||
};
|
||||
|
||||
const dataUrl = await toPng(element, defaultOptions);
|
||||
|
||||
// 将 data URL 转换为 Blob
|
||||
const response = await fetch(dataUrl);
|
||||
const blob = await response.blob();
|
||||
|
||||
progress.finish('图片生成完成');
|
||||
return blob;
|
||||
} catch (error) {
|
||||
progress.error('图片生成失败');
|
||||
ErrorHandler.handle(error as Error, 'ImageProcessor.htmlToPng');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理图片数据
|
||||
*/
|
||||
async processImage(
|
||||
imageData: ArrayBuffer,
|
||||
filename: string,
|
||||
options: ImageProcessOptions = {}
|
||||
): Promise<ArrayBuffer> {
|
||||
await this.ensureInitialized();
|
||||
|
||||
let processedData = imageData;
|
||||
|
||||
try {
|
||||
// WebP转JPG处理
|
||||
if (options.enableWebpConversion && filename.toLowerCase().endsWith('.webp')) {
|
||||
processedData = await this.convertWebpToJpg(processedData);
|
||||
}
|
||||
|
||||
// 这里可以添加更多图片处理逻辑
|
||||
// 如:压缩、EXIF处理等
|
||||
|
||||
return processedData;
|
||||
} catch (error) {
|
||||
ErrorHandler.handle(error as Error, 'ImageProcessor.processImage');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量处理图片
|
||||
*/
|
||||
async processImages(
|
||||
images: Array<{ data: ArrayBuffer; filename: string }>,
|
||||
options: ImageProcessOptions = {}
|
||||
): Promise<Array<{ data: ArrayBuffer; filename: string }>> {
|
||||
const progress = new ProgressIndicator();
|
||||
progress.start(`批量处理图片 (${images.length}张)`);
|
||||
|
||||
try {
|
||||
const results = [];
|
||||
|
||||
for (let i = 0; i < images.length; i++) {
|
||||
const { data, filename } = images[i];
|
||||
progress.update(`处理图片 ${i + 1}/${images.length}: ${filename}`);
|
||||
|
||||
const processedData = await this.processImage(data, filename, options);
|
||||
results.push({ data: processedData, filename });
|
||||
}
|
||||
|
||||
progress.finish('批量图片处理完成');
|
||||
return results;
|
||||
} catch (error) {
|
||||
progress.error('批量图片处理失败');
|
||||
ErrorHandler.handle(error as Error, 'ImageProcessor.processImages');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取图像处理库状态
|
||||
*/
|
||||
isReady(): boolean {
|
||||
return this.isInitialized && IsImageLibReady();
|
||||
}
|
||||
}
|
||||
106
src/core/progress-indicator.ts
Normal file
106
src/core/progress-indicator.ts
Normal file
@@ -0,0 +1,106 @@
|
||||
/**
|
||||
* 文件:progress-indicator.ts
|
||||
* 作用:进度指示和用户反馈管理
|
||||
*/
|
||||
|
||||
import { Notice } from 'obsidian';
|
||||
|
||||
export interface ProgressOptions {
|
||||
showProgress?: boolean;
|
||||
duration?: number;
|
||||
autoHide?: boolean;
|
||||
}
|
||||
|
||||
export class ProgressIndicator {
|
||||
private notice: Notice | null = null;
|
||||
private startTime: number = 0;
|
||||
|
||||
start(message: string, options: ProgressOptions = {}): void {
|
||||
this.startTime = Date.now();
|
||||
const { duration = 0 } = options;
|
||||
|
||||
this.notice = new Notice(`🔄 ${message}...`, duration);
|
||||
}
|
||||
|
||||
update(message: string, progress?: number): void {
|
||||
if (!this.notice) return;
|
||||
|
||||
const progressText = progress ? ` (${Math.round(progress)}%)` : '';
|
||||
this.notice.setMessage(`🔄 ${message}${progressText}...`);
|
||||
}
|
||||
|
||||
finish(message: string, success: boolean = true): void {
|
||||
if (this.notice) {
|
||||
this.notice.hide();
|
||||
this.notice = null;
|
||||
}
|
||||
|
||||
const duration = Date.now() - this.startTime;
|
||||
const durationText = duration > 1000 ? ` (${(duration / 1000).toFixed(1)}s)` : '';
|
||||
const icon = success ? '✅' : '❌';
|
||||
|
||||
new Notice(`${icon} ${message}${durationText}`, success ? 3000 : 5000);
|
||||
}
|
||||
|
||||
error(message: string): void {
|
||||
this.finish(message, false);
|
||||
}
|
||||
|
||||
hide(): void {
|
||||
if (this.notice) {
|
||||
this.notice.hide();
|
||||
this.notice = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class BatchProgressIndicator {
|
||||
private currentProgress: ProgressIndicator | null = null;
|
||||
private totalItems: number = 0;
|
||||
private completedItems: number = 0;
|
||||
private failedItems: number = 0;
|
||||
|
||||
start(totalItems: number, operation: string): void {
|
||||
this.totalItems = totalItems;
|
||||
this.completedItems = 0;
|
||||
this.failedItems = 0;
|
||||
|
||||
this.currentProgress = new ProgressIndicator();
|
||||
this.currentProgress.start(`${operation} (0/${totalItems})`);
|
||||
}
|
||||
|
||||
updateItem(itemName: string, success: boolean = true): void {
|
||||
if (success) {
|
||||
this.completedItems++;
|
||||
} else {
|
||||
this.failedItems++;
|
||||
}
|
||||
|
||||
const completed = this.completedItems + this.failedItems;
|
||||
const progress = (completed / this.totalItems) * 100;
|
||||
|
||||
if (this.currentProgress) {
|
||||
this.currentProgress.update(
|
||||
`处理中: ${itemName} (${completed}/${this.totalItems})`,
|
||||
progress
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
finish(operation: string): void {
|
||||
const successCount = this.completedItems;
|
||||
const failCount = this.failedItems;
|
||||
const total = this.totalItems;
|
||||
|
||||
let message = `${operation}完成`;
|
||||
if (failCount === 0) {
|
||||
message += ` - 全部成功 (${successCount}/${total})`;
|
||||
} else {
|
||||
message += ` - 成功: ${successCount}, 失败: ${failCount}`;
|
||||
}
|
||||
|
||||
if (this.currentProgress) {
|
||||
this.currentProgress.finish(message, failCount === 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
87
src/core/publisher-interface.ts
Normal file
87
src/core/publisher-interface.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* 文件:publisher-interface.ts
|
||||
* 作用:统一的发布平台接口定义
|
||||
*/
|
||||
|
||||
export interface PublishResult {
|
||||
success: boolean;
|
||||
message: string;
|
||||
url?: string;
|
||||
data?: any;
|
||||
error?: Error;
|
||||
}
|
||||
|
||||
export interface PublishOptions {
|
||||
title?: string;
|
||||
cover?: string;
|
||||
excerpt?: string;
|
||||
tags?: string[];
|
||||
openComment?: boolean;
|
||||
onlyFansComment?: boolean;
|
||||
}
|
||||
|
||||
export interface IPlatformPublisher {
|
||||
readonly id: string;
|
||||
readonly name: string;
|
||||
readonly displayName: string;
|
||||
|
||||
/**
|
||||
* 验证平台配置是否有效
|
||||
*/
|
||||
validateConfig(): Promise<boolean>;
|
||||
|
||||
/**
|
||||
* 生成预览内容
|
||||
*/
|
||||
generatePreview(content: string, options?: PublishOptions): Promise<string>;
|
||||
|
||||
/**
|
||||
* 发布内容到平台
|
||||
*/
|
||||
publish(content: string, options?: PublishOptions): Promise<PublishResult>;
|
||||
|
||||
/**
|
||||
* 上传图片到平台
|
||||
*/
|
||||
uploadImage?(imageData: ArrayBuffer, filename: string): Promise<string>;
|
||||
|
||||
/**
|
||||
* 获取平台特定的设置组件
|
||||
*/
|
||||
getSettingsComponent?(): HTMLElement | undefined;
|
||||
}
|
||||
|
||||
export abstract class BasePlatformPublisher implements IPlatformPublisher {
|
||||
abstract readonly id: string;
|
||||
abstract readonly name: string;
|
||||
abstract readonly displayName: string;
|
||||
|
||||
abstract validateConfig(): Promise<boolean>;
|
||||
abstract generatePreview(content: string, options?: PublishOptions): Promise<string>;
|
||||
abstract publish(content: string, options?: PublishOptions): Promise<PublishResult>;
|
||||
|
||||
async uploadImage(imageData: ArrayBuffer, filename: string): Promise<string> {
|
||||
throw new Error('Image upload not implemented for this platform');
|
||||
}
|
||||
|
||||
getSettingsComponent(): HTMLElement | undefined {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
protected createSuccessResult(message: string, url?: string, data?: any): PublishResult {
|
||||
return {
|
||||
success: true,
|
||||
message,
|
||||
url,
|
||||
data
|
||||
};
|
||||
}
|
||||
|
||||
protected createErrorResult(message: string, error?: Error): PublishResult {
|
||||
return {
|
||||
success: false,
|
||||
message,
|
||||
error
|
||||
};
|
||||
}
|
||||
}
|
||||
192
src/core/publisher-manager.ts
Normal file
192
src/core/publisher-manager.ts
Normal file
@@ -0,0 +1,192 @@
|
||||
/**
|
||||
* 文件:publisher-manager.ts
|
||||
* 作用:发布平台管理器,统一管理所有发布平台
|
||||
*/
|
||||
|
||||
import { IPlatformPublisher, PublishResult, PublishOptions } from './publisher-interface';
|
||||
import { ErrorHandler, PlatformError } from './error-handler';
|
||||
import { ProgressIndicator } from './progress-indicator';
|
||||
|
||||
export class PublisherManager {
|
||||
private publishers = new Map<string, IPlatformPublisher>();
|
||||
private static instance: PublisherManager;
|
||||
|
||||
private constructor() {}
|
||||
|
||||
static getInstance(): PublisherManager {
|
||||
if (!this.instance) {
|
||||
this.instance = new PublisherManager();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册发布平台
|
||||
*/
|
||||
register(publisher: IPlatformPublisher): void {
|
||||
this.publishers.set(publisher.id, publisher);
|
||||
console.log(`[PublisherManager] 注册发布平台: ${publisher.displayName}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注销发布平台
|
||||
*/
|
||||
unregister(publisherId: string): void {
|
||||
if (this.publishers.delete(publisherId)) {
|
||||
console.log(`[PublisherManager] 注销发布平台: ${publisherId}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有已注册的发布平台
|
||||
*/
|
||||
getPublishers(): IPlatformPublisher[] {
|
||||
return Array.from(this.publishers.values());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定的发布平台
|
||||
*/
|
||||
getPublisher(publisherId: string): IPlatformPublisher | undefined {
|
||||
return this.publishers.get(publisherId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查平台是否可用
|
||||
*/
|
||||
async isPlatformAvailable(publisherId: string): Promise<boolean> {
|
||||
const publisher = this.getPublisher(publisherId);
|
||||
if (!publisher) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
return await publisher.validateConfig();
|
||||
} catch (error) {
|
||||
console.warn(`[PublisherManager] 平台 ${publisherId} 验证失败:`, error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发布内容到指定平台
|
||||
*/
|
||||
async publish(
|
||||
platformId: string,
|
||||
content: string,
|
||||
options?: PublishOptions
|
||||
): Promise<PublishResult> {
|
||||
const progress = new ProgressIndicator();
|
||||
|
||||
try {
|
||||
progress.start(`准备发布到 ${platformId}`);
|
||||
|
||||
const publisher = this.getPublisher(platformId);
|
||||
if (!publisher) {
|
||||
throw new PlatformError(`发布平台 ${platformId} 未找到`, platformId);
|
||||
}
|
||||
|
||||
progress.update('验证平台配置');
|
||||
const isValid = await publisher.validateConfig();
|
||||
if (!isValid) {
|
||||
throw new PlatformError(`发布平台 ${platformId} 配置无效`, platformId);
|
||||
}
|
||||
|
||||
progress.update('发布内容');
|
||||
const result = await publisher.publish(content, options);
|
||||
|
||||
if (result.success) {
|
||||
progress.finish(`发布成功到 ${publisher.displayName}`);
|
||||
} else {
|
||||
progress.error(`发布失败到 ${publisher.displayName}: ${result.message}`);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
} catch (error) {
|
||||
const errorMsg = `发布到 ${platformId} 失败`;
|
||||
progress.error(errorMsg);
|
||||
ErrorHandler.handle(error as Error, 'PublisherManager.publish');
|
||||
|
||||
return {
|
||||
success: false,
|
||||
message: errorMsg,
|
||||
error: error as Error
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量发布到多个平台
|
||||
*/
|
||||
async batchPublish(
|
||||
platformIds: string[],
|
||||
content: string,
|
||||
options?: PublishOptions
|
||||
): Promise<Map<string, PublishResult>> {
|
||||
const results = new Map<string, PublishResult>();
|
||||
|
||||
console.log(`[PublisherManager] 开始批量发布到 ${platformIds.length} 个平台`);
|
||||
|
||||
for (const platformId of platformIds) {
|
||||
try {
|
||||
const result = await this.publish(platformId, content, options);
|
||||
results.set(platformId, result);
|
||||
|
||||
// 添加延迟以避免频率限制
|
||||
if (platformIds.length > 1) {
|
||||
await new Promise(resolve => setTimeout(resolve, 2000));
|
||||
}
|
||||
} catch (error) {
|
||||
results.set(platformId, {
|
||||
success: false,
|
||||
message: `批量发布失败: ${error}`,
|
||||
error: error as Error
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const successCount = Array.from(results.values()).filter(r => r.success).length;
|
||||
const totalCount = platformIds.length;
|
||||
|
||||
console.log(`[PublisherManager] 批量发布完成: ${successCount}/${totalCount} 成功`);
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成预览内容
|
||||
*/
|
||||
async generatePreview(
|
||||
platformId: string,
|
||||
content: string,
|
||||
options?: PublishOptions
|
||||
): Promise<string> {
|
||||
return await ErrorHandler.withErrorHandling(async () => {
|
||||
const publisher = this.getPublisher(platformId);
|
||||
if (!publisher) {
|
||||
throw new PlatformError(`发布平台 ${platformId} 未找到`, platformId);
|
||||
}
|
||||
|
||||
return await publisher.generatePreview(content, options);
|
||||
}, 'PublisherManager.generatePreview', '') || '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取平台状态信息
|
||||
*/
|
||||
async getPlatformStatus(): Promise<Map<string, boolean>> {
|
||||
const status = new Map<string, boolean>();
|
||||
|
||||
for (const [id, publisher] of this.publishers) {
|
||||
try {
|
||||
const isAvailable = await publisher.validateConfig();
|
||||
status.set(id, isAvailable);
|
||||
} catch {
|
||||
status.set(id, false);
|
||||
}
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ const css = `
|
||||
/* =========================================================== */
|
||||
/* Obsidian的默认样式 */
|
||||
/* =========================================================== */
|
||||
.note-to-mp {
|
||||
.note2any {
|
||||
padding: 0;
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
@@ -15,15 +15,15 @@ const css = `
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.note-to-mp:last-child {
|
||||
.note2any:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.note-to-mp .fancybox-img {
|
||||
.note2any .fancybox-img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.note-to-mp .fancybox-img:hover {
|
||||
.note2any .fancybox-img:hover {
|
||||
opacity: none;
|
||||
border: none;
|
||||
}
|
||||
@@ -33,7 +33,7 @@ const css = `
|
||||
Heading
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp h1 {
|
||||
.note2any h1 {
|
||||
color: #222;
|
||||
font-weight: 700;
|
||||
font-size: 1.802em;
|
||||
@@ -42,7 +42,7 @@ Heading
|
||||
margin-block-end: 0;
|
||||
}
|
||||
|
||||
.note-to-mp h2 {
|
||||
.note2any h2 {
|
||||
color: #222;
|
||||
font-weight: 600;
|
||||
font-size: 1.602em;
|
||||
@@ -51,7 +51,7 @@ Heading
|
||||
margin-block-end: 0;
|
||||
}
|
||||
|
||||
.note-to-mp h3 {
|
||||
.note2any h3 {
|
||||
color: #222;
|
||||
font-weight: 600;
|
||||
font-size: 1.424em;
|
||||
@@ -60,7 +60,7 @@ Heading
|
||||
margin-block-end: 0;
|
||||
}
|
||||
|
||||
.note-to-mp h4 {
|
||||
.note2any h4 {
|
||||
color: #222;
|
||||
font-weight: 600;
|
||||
font-size: 1.266em;
|
||||
@@ -69,13 +69,13 @@ Heading
|
||||
margin-block-end: 0;
|
||||
}
|
||||
|
||||
.note-to-mp h5 {
|
||||
.note2any h5 {
|
||||
color: #222;
|
||||
margin-block-start: 1em;
|
||||
margin-block-end: 0;
|
||||
}
|
||||
|
||||
.note-to-mp h6 {
|
||||
.note2any h6 {
|
||||
color: #222;
|
||||
margin-block-start: 1em;
|
||||
margin-block-end: 0;
|
||||
@@ -86,7 +86,7 @@ Heading
|
||||
Horizontal Rules
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp hr {
|
||||
.note2any hr {
|
||||
border-color: #e0e0e0;
|
||||
margin-top: 3em;
|
||||
margin-bottom: 3em;
|
||||
@@ -97,7 +97,7 @@ Horizontal Rules
|
||||
Paragraphs
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp p {
|
||||
.note2any p {
|
||||
line-height: 1.6em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
@@ -107,17 +107,17 @@ Paragraphs
|
||||
Emphasis
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp strong {
|
||||
.note2any strong {
|
||||
color: #222222;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.note-to-mp em {
|
||||
.note2any em {
|
||||
color: inherit;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.note-to-mp s {
|
||||
.note2any s {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ Emphasis
|
||||
Blockquotes
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp blockquote {
|
||||
.note2any blockquote {
|
||||
font-size: 1rem;
|
||||
display: block;
|
||||
margin: 2em 0;
|
||||
@@ -136,15 +136,15 @@ Emphasis
|
||||
border-left: 0.15rem solid #7852ee;
|
||||
}
|
||||
|
||||
.note-to-mp blockquote blockquote {
|
||||
.note2any blockquote blockquote {
|
||||
margin: 0 0;
|
||||
}
|
||||
|
||||
.note-to-mp blockquote p {
|
||||
.note2any blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.note-to-mp blockquote footer strong {
|
||||
.note2any blockquote footer strong {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
@@ -153,23 +153,23 @@ Emphasis
|
||||
List
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp ul {
|
||||
.note2any ul {
|
||||
margin: 0;
|
||||
margin-top: 1.25em;
|
||||
margin-bottom: 1.25em;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
.note-to-mp ul>li::marker {
|
||||
.note2any ul>li::marker {
|
||||
color: #ababab;
|
||||
/* font-size: 1.5em; */
|
||||
}
|
||||
|
||||
.note-to-mp li>p {
|
||||
.note2any li>p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.note-to-mp ol {
|
||||
.note2any ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-top: 1.25em;
|
||||
@@ -178,7 +178,7 @@ List
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
.note-to-mp ol>li {
|
||||
.note2any ol>li {
|
||||
position: relative;
|
||||
padding-left: 0.1em;
|
||||
margin-left: 2em;
|
||||
@@ -189,7 +189,7 @@ List
|
||||
Link
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp a {
|
||||
.note2any a {
|
||||
color: #7852ee;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
@@ -198,7 +198,7 @@ Link
|
||||
transition: border 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.note-to-mp a:hover {
|
||||
.note2any a:hover {
|
||||
color: #7952eebb;
|
||||
border-bottom: 1px solid #7952eebb;
|
||||
}
|
||||
@@ -208,7 +208,7 @@ Link
|
||||
Table
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp table {
|
||||
.note2any table {
|
||||
width: 100%;
|
||||
table-layout: auto;
|
||||
text-align: left;
|
||||
@@ -221,13 +221,13 @@ Table
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table thead {
|
||||
.note2any table thead {
|
||||
color: #000;
|
||||
font-weight: 600;
|
||||
border: #e0e0e0 1px solid;
|
||||
}
|
||||
|
||||
.note-to-mp table thead th {
|
||||
.note2any table thead th {
|
||||
vertical-align: bottom;
|
||||
padding-right: 0.5714286em;
|
||||
padding-bottom: 0.5714286em;
|
||||
@@ -235,24 +235,24 @@ Table
|
||||
border: #e0e0e0 1px solid;
|
||||
}
|
||||
|
||||
.note-to-mp table thead th:first-child {
|
||||
.note2any table thead th:first-child {
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
.note-to-mp table thead th:last-child {
|
||||
.note2any table thead th:last-child {
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody tr {
|
||||
.note2any table tbody tr {
|
||||
border-style: solid;
|
||||
border: #e0e0e0 1px solid;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody tr:last-child {
|
||||
.note2any table tbody tr:last-child {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody td {
|
||||
.note2any table tbody td {
|
||||
vertical-align: top;
|
||||
padding-top: 0.5714286em;
|
||||
padding-right: 0.5714286em;
|
||||
@@ -261,11 +261,11 @@ Table
|
||||
border: #e0e0e0 1px solid;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody td:first-child {
|
||||
.note2any table tbody td:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.note-to-mp table tbody td:last-child {
|
||||
.note2any table tbody td:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
@@ -274,11 +274,11 @@ Table
|
||||
Images
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp img {
|
||||
.note2any img {
|
||||
margin: 2em auto;
|
||||
}
|
||||
|
||||
.note-to-mp .footnotes hr {
|
||||
.note2any .footnotes hr {
|
||||
margin-top: 4em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
@@ -288,7 +288,7 @@ Images
|
||||
Code
|
||||
==================================
|
||||
*/
|
||||
.note-to-mp .code-section {
|
||||
.note2any .code-section {
|
||||
display: flex;
|
||||
border: rgb(240, 240, 240) 1px solid;
|
||||
line-height: 26px;
|
||||
@@ -298,7 +298,7 @@ Code
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section ul {
|
||||
.note2any .code-section ul {
|
||||
width: fit-content;
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
@@ -310,11 +310,11 @@ Code
|
||||
backgroud: transparent !important;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section ul>li {
|
||||
.note2any .code-section ul>li {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section pre {
|
||||
.note2any .code-section pre {
|
||||
margin-block-start: 0;
|
||||
margin-block-end: 0;
|
||||
white-space: normal;
|
||||
@@ -322,7 +322,7 @@ Code
|
||||
padding: 0 0 0 0.875em;
|
||||
}
|
||||
|
||||
.note-to-mp .code-section code {
|
||||
.note2any .code-section code {
|
||||
display: flex;
|
||||
text-wrap: nowrap;
|
||||
font-family: Consolas,Courier,monospace;
|
||||
|
||||
79
src/main.ts
79
src/main.ts
@@ -10,7 +10,7 @@
|
||||
import { Plugin, WorkspaceLeaf, App, PluginManifest, Menu, Notice, TAbstractFile, TFile, TFolder } from 'obsidian';
|
||||
import { PreviewView, VIEW_TYPE_NOTE_PREVIEW } from './preview-view';
|
||||
import { NMPSettings } from './settings';
|
||||
import { NoteToMpSettingTab } from './setting-tab';
|
||||
import { Note2AnySettingTab } from './setting-tab';
|
||||
import AssetsManager from './assets';
|
||||
import { setVersion, uevent } from './utils';
|
||||
import { WidgetsModal } from './widgets-modal';
|
||||
@@ -19,8 +19,14 @@ import { XiaohongshuLoginModal } from './xiaohongshu/login-modal';
|
||||
import { XiaohongshuContentAdapter } from './xiaohongshu/adapter';
|
||||
import { XiaohongshuAPIManager } from './xiaohongshu/api';
|
||||
|
||||
// Core modules
|
||||
import { ErrorHandler } from './core/error-handler';
|
||||
import { ConfigManager } from './core/config-manager';
|
||||
import { PublisherManager } from './core/publisher-manager';
|
||||
import { ProgressIndicator } from './core/progress-indicator';
|
||||
|
||||
/**
|
||||
* NoteToMpPlugin
|
||||
* Note2AnyPlugin
|
||||
*
|
||||
* 中文说明:
|
||||
* 这是插件的入口类,负责:
|
||||
@@ -30,56 +36,79 @@ import { XiaohongshuAPIManager } from './xiaohongshu/api';
|
||||
* - 提供文件右键菜单扩展,支持对单文件或文件夹进行发布操作
|
||||
*
|
||||
* 设计决策(简要):
|
||||
* - 将批量发布的 UI 放在 `BatchPublishModal` 中,命令 `note-to-mp-batch-publish` 会打开该模态框
|
||||
* - 将批量发布的 UI 放在 `BatchPublishModal` 中,命令 `note2any-batch-publish` 会打开该模态框
|
||||
* - 单篇发布/文件夹批量发布仍复用 `NotePreview` 的发布逻辑,避免重复实现上传流程
|
||||
*/
|
||||
|
||||
|
||||
export default class NoteToMpPlugin extends Plugin {
|
||||
export default class Note2AnyPlugin extends Plugin {
|
||||
settings: NMPSettings;
|
||||
assetsManager: AssetsManager;
|
||||
ribbonIconEl: HTMLElement | null = null;
|
||||
|
||||
// Core managers
|
||||
private configManager: ConfigManager;
|
||||
private publisherManager: PublisherManager;
|
||||
|
||||
constructor(app: App, manifest: PluginManifest) {
|
||||
super(app, manifest);
|
||||
AssetsManager.setup(app, manifest);
|
||||
this.assetsManager = AssetsManager.getInstance();
|
||||
this.publisherManager = PublisherManager.getInstance();
|
||||
}
|
||||
|
||||
async loadResource() {
|
||||
await this.loadSettings();
|
||||
await this.assetsManager.loadAssets();
|
||||
const progress = new ProgressIndicator();
|
||||
progress.start('加载插件资源');
|
||||
|
||||
try {
|
||||
await this.loadSettings();
|
||||
|
||||
// 初始化配置管理器
|
||||
ConfigManager.initialize(this.settings);
|
||||
this.configManager = ConfigManager.getInstance();
|
||||
|
||||
progress.update('加载主题资源');
|
||||
await this.assetsManager.loadAssets();
|
||||
|
||||
progress.finish('插件资源加载完成');
|
||||
} catch (error) {
|
||||
progress.error('插件资源加载失败');
|
||||
ErrorHandler.handle(error as Error, 'loadResource');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async onload() {
|
||||
console.log('Loading NoteToMP (plugin onload start)');
|
||||
console.log('Loading Note2Any (plugin onload start)');
|
||||
setVersion(this.manifest.version);
|
||||
uevent('load');
|
||||
console.log('[NoteToMpPlugin] workspace.layoutReady at onload =', this.app.workspace.layoutReady);
|
||||
console.log('[Note2AnyPlugin] workspace.layoutReady at onload =', this.app.workspace.layoutReady);
|
||||
|
||||
// 先注册 view 之前,防止旧 snapshot 立即恢复创建大量视图:先临时卸载残留叶子(如果类型匹配)
|
||||
try {
|
||||
const legacyLeaves = this.app.workspace.getLeavesOfType(VIEW_TYPE_NOTE_PREVIEW);
|
||||
if (legacyLeaves.length > 0) {
|
||||
console.log('[NoteToMpPlugin] detach legacy leaves early count=', legacyLeaves.length);
|
||||
console.log('[Note2AnyPlugin] detach legacy leaves early count=', legacyLeaves.length);
|
||||
this.app.workspace.detachLeavesOfType(VIEW_TYPE_NOTE_PREVIEW);
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('[NoteToMpPlugin] early detach failed', e);
|
||||
console.warn('[Note2AnyPlugin] early detach failed', e);
|
||||
}
|
||||
this.app.workspace.onLayoutReady(async () => {
|
||||
console.log('[NoteToMpPlugin] onLayoutReady callback entered');
|
||||
console.time('[NoteToMpPlugin] startup:onLayoutReady→loadResource');
|
||||
console.log('[Note2AnyPlugin] onLayoutReady callback entered');
|
||||
console.time('[Note2AnyPlugin] startup:onLayoutReady→loadResource');
|
||||
try {
|
||||
await this.loadResource(); // 确保资源完全加载完再继续,避免后续视图初始化反复等待
|
||||
} catch (e) {
|
||||
console.error('[NoteToMpPlugin] loadResource 失败', e);
|
||||
console.error('[Note2AnyPlugin] loadResource 失败', e);
|
||||
} finally {
|
||||
console.timeEnd('[NoteToMpPlugin] startup:onLayoutReady→loadResource');
|
||||
console.timeEnd('[Note2AnyPlugin] startup:onLayoutReady→loadResource');
|
||||
}
|
||||
// 清理旧视图
|
||||
this.cleanupLegacyViews();
|
||||
// 取消自动打开预览视图(用于排查启动卡顿)。用户可通过图标或命令手动打开。
|
||||
// console.log('[NoteToMpPlugin] 已跳过自动打开预览视图调试模式');
|
||||
// console.log('[Note2AnyPlugin] 已跳过自动打开预览视图调试模式');
|
||||
});
|
||||
|
||||
this.registerView(
|
||||
@@ -90,28 +119,28 @@ export default class NoteToMpPlugin extends Plugin {
|
||||
this.ribbonIconEl = this.addRibbonIcon('clipboard-paste', '复制到公众号', (evt: MouseEvent) => {
|
||||
this.activateView();
|
||||
});
|
||||
this.ribbonIconEl.addClass('note-to-mp-plugin-ribbon-class');
|
||||
this.ribbonIconEl.addClass('note2any-plugin-ribbon-class');
|
||||
|
||||
this.addCommand({
|
||||
id: 'note-to-mp-preview',
|
||||
id: 'note2any-preview',
|
||||
name: '复制到公众号',
|
||||
callback: () => {
|
||||
this.activateView();
|
||||
}
|
||||
});
|
||||
|
||||
this.addSettingTab(new NoteToMpSettingTab(this.app, this));
|
||||
this.addSettingTab(new Note2AnySettingTab(this.app, this));
|
||||
|
||||
this.addCommand({
|
||||
id: 'note-to-mp-widget',
|
||||
name: '插入样式小部件',
|
||||
id: 'note2any-widget',
|
||||
name: '插入样式组件',
|
||||
callback: () => {
|
||||
new WidgetsModal(this.app).open();
|
||||
}
|
||||
});
|
||||
|
||||
this.addCommand({
|
||||
id: 'note-to-mp-batch-publish',
|
||||
id: 'note2any-batch-publish',
|
||||
name: '批量发布文章',
|
||||
callback: () => {
|
||||
new BatchPublishModal(this.app, this).open();
|
||||
@@ -120,7 +149,7 @@ export default class NoteToMpPlugin extends Plugin {
|
||||
|
||||
// TODO: 重构后需要重新实现批量发布功能
|
||||
// this.addCommand({
|
||||
// id: 'note-to-mp-pub',
|
||||
// id: 'note2any-pub',
|
||||
// name: '发布公众号文章',
|
||||
// callback: async () => {
|
||||
// await this.activateView();
|
||||
@@ -130,7 +159,7 @@ export default class NoteToMpPlugin extends Plugin {
|
||||
|
||||
// 命令:当前文件发布到微信草稿
|
||||
this.addCommand({
|
||||
id: 'note-to-mp-post-current',
|
||||
id: 'note2any-post-current',
|
||||
name: '发布当前文件到公众号草稿',
|
||||
callback: async () => {
|
||||
const file = this.app.workspace.getActiveFile();
|
||||
@@ -181,7 +210,7 @@ export default class NoteToMpPlugin extends Plugin {
|
||||
}
|
||||
|
||||
onunload() {
|
||||
console.log('Unloading NoteToMP');
|
||||
console.log('Unloading Note2Any');
|
||||
// 移除 ribbon icon,避免重载插件时重复创建
|
||||
if (this.ribbonIconEl) {
|
||||
this.ribbonIconEl.remove();
|
||||
@@ -208,7 +237,7 @@ export default class NoteToMpPlugin extends Plugin {
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
console.warn('[NoteToMp] cleanupLegacyViews 失败', e);
|
||||
console.warn('[Note2Any] cleanupLegacyViews 失败', e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,10 @@ import { NMPSettings } from './settings';
|
||||
import AssetsManager from './assets';
|
||||
import { waitForLayoutReady, uevent } from './utils';
|
||||
import { LocalFile } from './markdown/local-file';
|
||||
import { ErrorHandler } from './core/error-handler';
|
||||
import { ProgressIndicator } from './core/progress-indicator';
|
||||
import { ConfigManager } from './core/config-manager';
|
||||
import { ContentProcessor } from './core/content-processor';
|
||||
|
||||
export const VIEW_TYPE_NOTE_PREVIEW = 'note-preview';
|
||||
|
||||
@@ -101,31 +105,47 @@ export class PreviewView extends ItemView {
|
||||
*/
|
||||
async onOpen(): Promise<void> {
|
||||
console.log('[PreviewView] 视图打开 layoutReady=', this.app.workspace.layoutReady);
|
||||
// 不在未完成 layoutReady 时做重初始化,改为延迟
|
||||
if (!this.app.workspace.layoutReady) {
|
||||
this.showLoading();
|
||||
console.log('[PreviewView] defer initialization until layoutReady');
|
||||
this.app.workspace.onLayoutReady(() => {
|
||||
// 使用微任务再推进,确保其它插件也完成
|
||||
setTimeout(() => this.performInitialization(), 0);
|
||||
});
|
||||
return;
|
||||
|
||||
const progress = new ProgressIndicator();
|
||||
progress.start('初始化预览视图');
|
||||
|
||||
try {
|
||||
// 不在未完成 layoutReady 时做重初始化,改为延迟
|
||||
if (!this.app.workspace.layoutReady) {
|
||||
this.showLoading();
|
||||
console.log('[PreviewView] defer initialization until layoutReady');
|
||||
this.app.workspace.onLayoutReady(() => {
|
||||
// 使用微任务再推进,确保其它插件也完成
|
||||
setTimeout(() => this.performInitialization(), 0);
|
||||
});
|
||||
return;
|
||||
}
|
||||
await this.performInitialization();
|
||||
progress.finish('预览视图初始化完成');
|
||||
} catch (error) {
|
||||
progress.error('预览视图初始化失败');
|
||||
ErrorHandler.handle(error as Error, 'PreviewView.onOpen');
|
||||
}
|
||||
await this.performInitialization();
|
||||
}
|
||||
|
||||
private async performInitialization(): Promise<void> {
|
||||
const progress = new ProgressIndicator();
|
||||
|
||||
try {
|
||||
const start = performance.now();
|
||||
this.showLoading();
|
||||
|
||||
progress.update('初始化设置');
|
||||
console.time('[PreviewView] initializeSettings');
|
||||
await this.initializeSettings();
|
||||
console.timeEnd('[PreviewView] initializeSettings');
|
||||
|
||||
progress.update('创建管理器');
|
||||
console.time('[PreviewView] createManager');
|
||||
await this.createManager();
|
||||
console.timeEnd('[PreviewView] createManager');
|
||||
|
||||
progress.update('注册事件监听器');
|
||||
console.time('[PreviewView] registerEventListeners');
|
||||
this.registerEventListeners();
|
||||
console.timeEnd('[PreviewView] registerEventListeners');
|
||||
@@ -142,16 +162,13 @@ export class PreviewView extends ItemView {
|
||||
}
|
||||
|
||||
console.log('[PreviewView] 初始化耗时(ms):', (performance.now() - start).toFixed(1));
|
||||
progress.finish('视图初始化完成');
|
||||
uevent('open');
|
||||
} catch (error) {
|
||||
console.error('[PreviewView] 初始化失败:', error);
|
||||
new Notice('预览视图初始化失败: ' + (error instanceof Error ? error.message : String(error)));
|
||||
const container = this.containerEl.children[1] as HTMLElement;
|
||||
container.empty();
|
||||
const errorDiv = container.createDiv({ cls: 'preview-error' });
|
||||
errorDiv.createEl('h3', { text: '预览视图初始化失败' });
|
||||
errorDiv.createEl('p', { text: error instanceof Error ? error.message : String(error) });
|
||||
errorDiv.createEl('p', { text: '请尝试重新加载插件或查看控制台获取更多信息' });
|
||||
progress.error('视图初始化失败');
|
||||
ErrorHandler.handle(error as Error, 'PreviewView.performInitialization');
|
||||
console.error('[PreviewView] 初始化失败', error);
|
||||
this.showError('预览视图初始化失败,请检查插件设置');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,6 +348,18 @@ export class PreviewView extends ItemView {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示错误信息
|
||||
*/
|
||||
private showError(message: string): void {
|
||||
const container = this.containerEl.children[1] as HTMLElement;
|
||||
container.empty();
|
||||
const errorDiv = container.createDiv({ cls: 'preview-error' });
|
||||
errorDiv.createEl('h3', { text: '预览视图错误' });
|
||||
errorDiv.createEl('p', { text: message });
|
||||
errorDiv.createEl('p', { text: '请尝试重新加载插件或查看控制台获取更多信息' });
|
||||
}
|
||||
|
||||
/** 外部接口:切换平台 */
|
||||
async changePlatform(platform: 'wechat' | 'xiaohongshu') {
|
||||
await this.manager?.switchPlatform(platform as any);
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
*/
|
||||
|
||||
import { App, TextAreaComponent, PluginSettingTab, Setting, Notice, sanitizeHTMLToDom } from 'obsidian';
|
||||
import NoteToMpPlugin from './main';
|
||||
import Note2AnyPlugin from './main';
|
||||
import { wxGetToken, wxEncrypt } from './wechat/weixin-api';
|
||||
import { cleanMathCache } from './markdown/math';
|
||||
import { NMPSettings } from './settings';
|
||||
import { DocModal } from './doc-modal';
|
||||
|
||||
export class NoteToMpSettingTab extends PluginSettingTab {
|
||||
plugin: NoteToMpPlugin;
|
||||
export class Note2AnySettingTab extends PluginSettingTab {
|
||||
plugin: Note2AnyPlugin;
|
||||
wxInfo: string;
|
||||
wxTextArea: TextAreaComponent|null;
|
||||
settings: NMPSettings;
|
||||
|
||||
constructor(app: App, plugin: NoteToMpPlugin) {
|
||||
constructor(app: App, plugin: Note2AnyPlugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
this.settings = NMPSettings.getInstance();
|
||||
@@ -425,7 +425,7 @@ export class NoteToMpSettingTab extends PluginSettingTab {
|
||||
private renderImageTab(panel: HTMLElement): void {
|
||||
new Setting(panel)
|
||||
.setName('切图保存路径')
|
||||
.setDesc('切图文件的保存目录,默认:/Users/gavin/note2mp/images/xhs')
|
||||
.setDesc('切图文件的保存目录,默认:/Users/gavin/note2any/images/xhs')
|
||||
.addText(text => {
|
||||
text.setPlaceholder('例如 /Users/xxx/images/xhs')
|
||||
.setValue(this.settings.sliceImageSavePath || '')
|
||||
|
||||
@@ -100,7 +100,7 @@ export class NMPSettings {
|
||||
}
|
||||
];
|
||||
// 切图配置默认值
|
||||
this.sliceImageSavePath = '/Users/gavin/note2mp/images/xhs';
|
||||
this.sliceImageSavePath = '/Users/gavin/note2any/images/xhs';
|
||||
this.sliceImageWidth = 1080;
|
||||
this.sliceImageAspectRatio = '3:4';
|
||||
this.xhsPreviewWidth = 540;
|
||||
|
||||
@@ -31,7 +31,7 @@ export function setVersion(version: string) {
|
||||
function getStyleSheet() {
|
||||
for (var i = 0; i < document.styleSheets.length; i++) {
|
||||
var sheet = document.styleSheets[i];
|
||||
if (sheet.title == 'note-to-mp-style') {
|
||||
if (sheet.title == 'note2any-style') {
|
||||
return sheet;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,13 +183,13 @@ export class XiaohongshuPreview {
|
||||
this.articleHTML = articleHTML;
|
||||
this.currentFile = file;
|
||||
|
||||
new Notice('正在分页...');
|
||||
//new Notice('正在分页...');
|
||||
|
||||
// 创建临时容器用于分页
|
||||
const tempContainer = document.createElement('div');
|
||||
tempContainer.innerHTML = articleHTML;
|
||||
tempContainer.style.width = `${this.settings.sliceImageWidth}px`;
|
||||
tempContainer.classList.add('note-to-mp');
|
||||
tempContainer.classList.add('note2any');
|
||||
if (this.currentThemeClass) {
|
||||
tempContainer.classList.add(this.currentThemeClass);
|
||||
}
|
||||
@@ -200,7 +200,7 @@ export class XiaohongshuPreview {
|
||||
// 在分页前先应用主题与高亮,确保测量使用正确样式
|
||||
this.applyThemeCSS();
|
||||
this.pages = await paginateArticle(tempContainer, this.settings);
|
||||
new Notice(`分页完成:共 ${this.pages.length} 页`);
|
||||
//new Notice(`分页完成:共 ${this.pages.length} 页`);
|
||||
|
||||
this.currentPageIndex = 0;
|
||||
// 初次渲染时应用当前主题
|
||||
@@ -226,7 +226,7 @@ export class XiaohongshuPreview {
|
||||
const wrapper = this.pageContainer.createDiv({ cls: 'xhs-page-wrapper' });
|
||||
|
||||
const classes = ['xhs-page'];
|
||||
if (this.currentThemeClass) classes.push('note-to-mp');
|
||||
if (this.currentThemeClass) classes.push('note2any');
|
||||
const pageElement = wrapper.createDiv({ cls: classes.join(' ') });
|
||||
renderPage(pageElement, page.content, this.settings);
|
||||
this.applyPreviewSizing(wrapper, pageElement);
|
||||
@@ -460,7 +460,7 @@ export class XiaohongshuPreview {
|
||||
|
||||
private async persistSettings(): Promise<void> {
|
||||
try {
|
||||
const plugin = (this.app as any)?.plugins?.getPlugin?.('note-to-mp');
|
||||
const plugin = (this.app as any)?.plugins?.getPlugin?.('note2any');
|
||||
if (plugin?.saveSettings) {
|
||||
await plugin.saveSettings();
|
||||
}
|
||||
@@ -510,7 +510,7 @@ export class XiaohongshuPreview {
|
||||
const theme = this.assetsManager.getTheme(themeName);
|
||||
const highlight = this.assetsManager.getHighlight(highlightName);
|
||||
const customCSS = (this.settings.useCustomCss || this.settings.customCSSNote.length>0) ? this.assetsManager.customCSS : '';
|
||||
const baseCSS = this.settings.baseCSS ? `.note-to-mp {${this.settings.baseCSS}}` : '';
|
||||
const baseCSS = this.settings.baseCSS ? `.note2any {${this.settings.baseCSS}}` : '';
|
||||
const css = `${highlight?.css || ''}\n\n${theme?.css || ''}\n\n${baseCSS}\n\n${customCSS}`;
|
||||
this.styleEl.textContent = css;
|
||||
this.currentThemeClass = theme?.className || '';
|
||||
@@ -520,15 +520,15 @@ export class XiaohongshuPreview {
|
||||
if (!this.articleHTML) return;
|
||||
const totalBefore = this.pages.length || 1;
|
||||
const posRatio = (this.currentPageIndex + 0.5) / totalBefore; // 以当前页中心作为相对位置
|
||||
new Notice('重新分页中...');
|
||||
//new Notice('重新分页中...');
|
||||
|
||||
const tempContainer = document.createElement('div');
|
||||
tempContainer.innerHTML = this.articleHTML;
|
||||
tempContainer.style.width = `${this.settings.sliceImageWidth}px`;
|
||||
tempContainer.style.fontSize = `${this.currentFontSize}px`;
|
||||
// 字体从全局主题中继承,无需手动指定
|
||||
tempContainer.classList.add('note-to-mp');
|
||||
tempContainer.className = this.currentThemeClass ? `note-to-mp ${this.currentThemeClass}` : 'note-to-mp';
|
||||
tempContainer.classList.add('note2any');
|
||||
tempContainer.className = this.currentThemeClass ? `note2any ${this.currentThemeClass}` : 'note2any';
|
||||
document.body.appendChild(tempContainer);
|
||||
try {
|
||||
this.pages = await paginateArticle(tempContainer, this.settings);
|
||||
@@ -539,7 +539,7 @@ export class XiaohongshuPreview {
|
||||
this.currentPageIndex = 0;
|
||||
}
|
||||
this.renderCurrentPage();
|
||||
new Notice(`重新分页完成:共 ${this.pages.length} 页`);
|
||||
//new Notice(`重新分页完成:共 ${this.pages.length} 页`);
|
||||
} catch (e) {
|
||||
console.error('重新分页失败', e);
|
||||
new Notice('重新分页失败');
|
||||
|
||||
47
todolist.md
47
todolist.md
@@ -8,7 +8,7 @@
|
||||
✅
|
||||
- 标题取frontmatter的title属性。
|
||||
✅
|
||||
- 图片保存路径可配置,默认为/Users/gavin/note2mp/images/xhs。
|
||||
- 图片保存路径可配置,默认为/Users/gavin/note2any/images/xhs。
|
||||
✅
|
||||
- 图片名取frontmatter的slug属性,如: slug: mmm,文章长图命名为mmm.png,如切为3张图片,则切图图片名按顺序依次为mmm_1.png,mmm_2.png,mmm_3.png
|
||||
✅
|
||||
@@ -56,8 +56,27 @@
|
||||
- 点击"全部页切图",把所有html页面转为png图片,图片保存路径和命名按此前设置。
|
||||
✅
|
||||
|
||||
3. 整合xhs登陆和发布功能。
|
||||
-
|
||||
3. 目前xhs模式发布功能未实现,因为没有登录。
|
||||
整合xhs登陆和发布功能。
|
||||
- 在“用户配置”tab中增加“小红书用户名”配置项,默认13357108011。(⚠️ **后续可能需要维护多账号**)
|
||||
- xhslogin项目,XHS_PHONE=13357108011 XHS_AUTO_CLOSE=1 npm run publish -- --title "恢复功能测试" --content "验证恢复核心功能后保留优化的代码" --images "/Users/gavin/myweb/static/img/ibook笔记.png" --visibility private --collection 自嗨 --timestamp
|
||||
其中:
|
||||
- 参数XHS_PHONE为“小红书用户名”配置项。
|
||||
- title取markdown文章的title
|
||||
- content取markdown文章frontmatter中的description信息,如果没有description或内容为空,取markdown正文前2段(段以空行隔离,不超过300字[n];段1+段2>n,取段1;段1+段2+段3>n,取段1段2 ……)
|
||||
- images取小红书切图结果,按文章次序。
|
||||
- visibility在小红书模式下,预览页的工具栏中增加"公开"checkbox,默认为不选,即private。
|
||||
- collection在小红书模式下,预览页的工具栏中增加下拉框选择,下拉框内容从登录小红书自动获取。
|
||||
- timestamp是调试使用,默认使用
|
||||
|
||||
❓ 重构后无法运行,原因是obsidian中playwright环境没有。
|
||||
❌ 要用xhslogin 的 Playwright 逻辑,就必须把 Playwright 当成外部依赖加载(运行前安装 playwright 和浏览器内核)。 如果一定要彻底摆脱 Playwright,只能回到 webview 方案,重新实现一次自动化流程,与其说“利用现成 Chromium”,不如说“自己写网页自动化框架”,工作量很大。
|
||||
|
||||
**改变思路**:
|
||||
xhslogin改造成MCP server部署在远端服务器上。插件中只要实现mcp client就可以了。
|
||||
这样xhslogin项目没有必要整合到note2any中。
|
||||
|
||||
4. 选中内容,右键发布到不同平台。发布时调用渲染,发布到特定的栏目中,比如网站中某个区块的“闪念集”。
|
||||
|
||||
## 问题
|
||||
1. "发布平台"首次选“小红书”时,预览页面没有加载当前文章。
|
||||
@@ -121,11 +140,33 @@ SOLVE:obsidian控制台打印信息,定位在哪里阻塞,AI修复。
|
||||
10. 新建docs文件夹,把除了README和todolist以外的markdown文件放到docs中。
|
||||
✅
|
||||
|
||||
11. `` -- 不应该渲染为图片链接
|
||||
|
||||
|
||||
## 经验
|
||||
1. 在不确定AI是否理解,或者需求是否准确的情况下,先用codex chat模式提问,看回答确定AI理解是否准确。
|
||||
尤其对于较大规模的重构需求,这点很重要 ‼️ 。
|
||||
|
||||
例如:
|
||||
这个思路有问题。我提供命令行只是对参数做说明,这些参数实际上是函数参数。
|
||||
我需要把xhslogin的功能代码无缝的整合进现有项目中,而不是通过命令行传参的方式实现。
|
||||
这么做的同时,保持结构和模块清晰。
|
||||
请再提供思路,我来审核下。
|
||||
|
||||
2. 复杂页面,codex生成的css可能无比复杂,不便于维护修改。
|
||||
自己写布局demo原型,让codex参考布局修改(原来元素美化的css可保留)。
|
||||
demo原型可以手绘后,拍照让chatgpt生成,在此基础上自己修改。
|
||||
|
||||
## 优化
|
||||
1. 全量扫描系统,从设计、结构、冗余度、优雅、可维护性方便,检查是否有优化的地方。
|
||||
✅
|
||||
|
||||
2. 后续在主题切换和使用上的独立性和便捷性。
|
||||
|
||||
## 思路
|
||||
1. 网上图片模版,让AI快速生成css themes主题。快速套用。‼️
|
||||
**样式和功能必须结构,样式必须可以0基础,快速选择,让用户可以选择足够多样式(AI生成)。**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
{
|
||||
"1.3.7": "1.4.5"
|
||||
"1.3.7": "1.4.5",
|
||||
"1.3.12": "1.4.5",
|
||||
"1.4.0": "1.4.5"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user