From 2741e7aff9c757c17420279bd9e5378f5d28f695 Mon Sep 17 00:00:00 2001
From: xiaozzzi <42293085+xiaozzzi@users.noreply.github.com>
Date: Sat, 14 Oct 2023 14:38:22 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A1=8C=E6=95=B0=E4=B8=8E?=
=?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=8D=E5=88=B6=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/exportTemplate.html | 386 ++++++++++++++++--
.../src/renderer/src/assets/utils/hljsTest.ts | 28 +-
.../src/views/article/styles/bl-preview.css | 8 +-
.../src/renderer/src/views/doc/type.d.ts | 86 ++--
blossom-web/src/views/article/Articles.vue | 232 +++++++----
blossom-web/src/views/article/index.d.ts | 72 ++--
6 files changed, 609 insertions(+), 203 deletions(-)
diff --git a/blossom-backend/backend/src/main/resources/exportTemplate.html b/blossom-backend/backend/src/main/resources/exportTemplate.html
index 67a2c8c..3e873d8 100644
--- a/blossom-backend/backend/src/main/resources/exportTemplate.html
+++ b/blossom-backend/backend/src/main/resources/exportTemplate.html
@@ -10,135 +10,159 @@
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Caligraphic';
src: url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Bold.ttf) format('truetype');
font-weight: bold;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Caligraphic';
src: url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Fraktur';
src: url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'), url(fonts/KaTeX_Fraktur-Bold.ttf) format('truetype');
font-weight: bold;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Fraktur';
src: url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'), url(fonts/KaTeX_Fraktur-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Main';
src: url(fonts/KaTeX_Main-Bold.woff2) format('woff2'), url(fonts/KaTeX_Main-Bold.woff) format('woff'), url(fonts/KaTeX_Main-Bold.ttf) format('truetype');
font-weight: bold;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Main';
src: url(fonts/KaTeX_Main-BoldItalic.woff2) format('woff2'), url(fonts/KaTeX_Main-BoldItalic.woff) format('woff'), url(fonts/KaTeX_Main-BoldItalic.ttf) format('truetype');
font-weight: bold;
font-style: italic;
}
+
@font-face {
font-family: 'KaTeX_Main';
src: url(fonts/KaTeX_Main-Italic.woff2) format('woff2'), url(fonts/KaTeX_Main-Italic.woff) format('woff'), url(fonts/KaTeX_Main-Italic.ttf) format('truetype');
font-weight: normal;
font-style: italic;
}
+
@font-face {
font-family: 'KaTeX_Main';
src: url(fonts/KaTeX_Main-Regular.woff2) format('woff2'), url(fonts/KaTeX_Main-Regular.woff) format('woff'), url(fonts/KaTeX_Main-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Math';
src: url(fonts/KaTeX_Math-BoldItalic.woff2) format('woff2'), url(fonts/KaTeX_Math-BoldItalic.woff) format('woff'), url(fonts/KaTeX_Math-BoldItalic.ttf) format('truetype');
font-weight: bold;
font-style: italic;
}
+
@font-face {
font-family: 'KaTeX_Math';
src: url(fonts/KaTeX_Math-Italic.woff2) format('woff2'), url(fonts/KaTeX_Math-Italic.woff) format('woff'), url(fonts/KaTeX_Math-Italic.ttf) format('truetype');
font-weight: normal;
font-style: italic;
}
+
@font-face {
font-family: 'KaTeX_SansSerif';
src: url(fonts/KaTeX_SansSerif-Bold.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Bold.woff) format('woff'), url(fonts/KaTeX_SansSerif-Bold.ttf) format('truetype');
font-weight: bold;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_SansSerif';
src: url(fonts/KaTeX_SansSerif-Italic.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Italic.woff) format('woff'), url(fonts/KaTeX_SansSerif-Italic.ttf) format('truetype');
font-weight: normal;
font-style: italic;
}
+
@font-face {
font-family: 'KaTeX_SansSerif';
src: url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'), url(fonts/KaTeX_SansSerif-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Script';
src: url(fonts/KaTeX_Script-Regular.woff2) format('woff2'), url(fonts/KaTeX_Script-Regular.woff) format('woff'), url(fonts/KaTeX_Script-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Size1';
src: url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size1-Regular.woff) format('woff'), url(fonts/KaTeX_Size1-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Size2';
src: url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size2-Regular.woff) format('woff'), url(fonts/KaTeX_Size2-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Size3';
src: url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size3-Regular.woff) format('woff'), url(fonts/KaTeX_Size3-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Size4';
src: url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size4-Regular.woff) format('woff'), url(fonts/KaTeX_Size4-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: 'KaTeX_Typewriter';
src: url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'), url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'), url(fonts/KaTeX_Typewriter-Regular.ttf) format('truetype');
font-weight: normal;
font-style: normal;
}
+
.katex {
font: normal 1.21em KaTeX_Main, Times New Roman, serif;
line-height: 1.2;
text-indent: 0;
text-rendering: auto;
}
+
.katex * {
-ms-high-contrast-adjust: none !important;
}
+
.katex * {
border-color: currentColor;
}
+
.katex .katex-version::after {
content: "0.16.8";
}
+
.katex .katex-mathml {
/* Accessibility hack to only show to screen readers
Found at: http://a11yproject.com/posts/how-to-hide-content/ */
@@ -150,12 +174,15 @@
width: 1px;
overflow: hidden;
}
+
.katex .katex-html {
/* \newline is an empty block at top level, between .base elements */
}
+
.katex .katex-html > .newline {
display: block;
}
+
.katex .base {
position: relative;
display: inline-block;
@@ -164,111 +191,140 @@
width: -moz-min-content;
width: min-content;
}
+
.katex .strut {
display: inline-block;
}
+
.katex .textbf {
font-weight: bold;
}
+
.katex .textit {
font-style: italic;
}
+
.katex .textrm {
font-family: KaTeX_Main;
}
+
.katex .textsf {
font-family: KaTeX_SansSerif;
}
+
.katex .texttt {
font-family: KaTeX_Typewriter;
}
+
.katex .mathnormal {
font-family: KaTeX_Math;
font-style: italic;
}
+
.katex .mathit {
font-family: KaTeX_Main;
font-style: italic;
}
+
.katex .mathrm {
font-style: normal;
}
+
.katex .mathbf {
font-family: KaTeX_Main;
font-weight: bold;
}
+
.katex .boldsymbol {
font-family: KaTeX_Math;
font-weight: bold;
font-style: italic;
}
+
.katex .amsrm {
font-family: KaTeX_AMS;
}
+
.katex .mathbb,
.katex .textbb {
font-family: KaTeX_AMS;
}
+
.katex .mathcal {
font-family: KaTeX_Caligraphic;
}
+
.katex .mathfrak,
.katex .textfrak {
font-family: KaTeX_Fraktur;
}
+
.katex .mathtt {
font-family: KaTeX_Typewriter;
}
+
.katex .mathscr,
.katex .textscr {
font-family: KaTeX_Script;
}
+
.katex .mathsf,
.katex .textsf {
font-family: KaTeX_SansSerif;
}
+
.katex .mathboldsf,
.katex .textboldsf {
font-family: KaTeX_SansSerif;
font-weight: bold;
}
+
.katex .mathitsf,
.katex .textitsf {
font-family: KaTeX_SansSerif;
font-style: italic;
}
+
.katex .mainrm {
font-family: KaTeX_Main;
font-style: normal;
}
+
.katex .vlist-t {
display: inline-table;
table-layout: fixed;
border-collapse: collapse;
}
+
.katex .vlist-r {
display: table-row;
}
+
.katex .vlist {
display: table-cell;
vertical-align: bottom;
position: relative;
}
+
.katex .vlist > span {
display: block;
height: 0;
position: relative;
}
+
.katex .vlist > span > span {
display: inline-block;
}
+
.katex .vlist > span > .pstrut {
overflow: hidden;
width: 0;
}
+
.katex .vlist-t2 {
margin-right: -2px;
}
+
.katex .vlist-s {
display: table-cell;
vertical-align: bottom;
@@ -276,33 +332,40 @@
width: 2px;
min-width: 2px;
}
+
.katex .vbox {
display: inline-flex;
flex-direction: column;
align-items: baseline;
}
+
.katex .hbox {
display: inline-flex;
flex-direction: row;
width: 100%;
}
+
.katex .thinbox {
display: inline-flex;
flex-direction: row;
width: 0;
max-width: 0;
}
+
.katex .msupsub {
text-align: left;
}
+
.katex .mfrac > span > span {
text-align: center;
}
+
.katex .mfrac .frac-line {
display: inline-block;
width: 100%;
border-bottom-style: solid;
}
+
.katex .mfrac .frac-line,
.katex .overline .overline-line,
.katex .underline .underline-line,
@@ -311,41 +374,50 @@
.katex .rule {
min-height: 1px;
}
+
.katex .mspace {
display: inline-block;
}
+
.katex .llap,
.katex .rlap,
.katex .clap {
width: 0;
position: relative;
}
+
.katex .llap > .inner,
.katex .rlap > .inner,
.katex .clap > .inner {
position: absolute;
}
+
.katex .llap > .fix,
.katex .rlap > .fix,
.katex .clap > .fix {
display: inline-block;
}
+
.katex .llap > .inner {
right: 0;
}
+
.katex .rlap > .inner,
.katex .clap > .inner {
left: 0;
}
+
.katex .clap > .inner > span {
margin-left: -50%;
margin-right: 50%;
}
+
.katex .rule {
display: inline-block;
border: solid 0;
position: relative;
}
+
.katex .overline .overline-line,
.katex .underline .underline-line,
.katex .hline {
@@ -353,569 +425,715 @@
width: 100%;
border-bottom-style: solid;
}
+
.katex .hdashline {
display: inline-block;
width: 100%;
border-bottom-style: dashed;
}
+
.katex .sqrt > .root {
/* These values are taken from the definition of `\r@@t`,
`\mkern 5mu` and `\mkern -10mu`. */
margin-left: 0.27777778em;
margin-right: -0.55555556em;
}
+
.katex .sizing.reset-size1.size1,
.katex .fontsize-ensurer.reset-size1.size1 {
font-size: 1em;
}
+
.katex .sizing.reset-size1.size2,
.katex .fontsize-ensurer.reset-size1.size2 {
font-size: 1.2em;
}
+
.katex .sizing.reset-size1.size3,
.katex .fontsize-ensurer.reset-size1.size3 {
font-size: 1.4em;
}
+
.katex .sizing.reset-size1.size4,
.katex .fontsize-ensurer.reset-size1.size4 {
font-size: 1.6em;
}
+
.katex .sizing.reset-size1.size5,
.katex .fontsize-ensurer.reset-size1.size5 {
font-size: 1.8em;
}
+
.katex .sizing.reset-size1.size6,
.katex .fontsize-ensurer.reset-size1.size6 {
font-size: 2em;
}
+
.katex .sizing.reset-size1.size7,
.katex .fontsize-ensurer.reset-size1.size7 {
font-size: 2.4em;
}
+
.katex .sizing.reset-size1.size8,
.katex .fontsize-ensurer.reset-size1.size8 {
font-size: 2.88em;
}
+
.katex .sizing.reset-size1.size9,
.katex .fontsize-ensurer.reset-size1.size9 {
font-size: 3.456em;
}
+
.katex .sizing.reset-size1.size10,
.katex .fontsize-ensurer.reset-size1.size10 {
font-size: 4.148em;
}
+
.katex .sizing.reset-size1.size11,
.katex .fontsize-ensurer.reset-size1.size11 {
font-size: 4.976em;
}
+
.katex .sizing.reset-size2.size1,
.katex .fontsize-ensurer.reset-size2.size1 {
font-size: 0.83333333em;
}
+
.katex .sizing.reset-size2.size2,
.katex .fontsize-ensurer.reset-size2.size2 {
font-size: 1em;
}
+
.katex .sizing.reset-size2.size3,
.katex .fontsize-ensurer.reset-size2.size3 {
font-size: 1.16666667em;
}
+
.katex .sizing.reset-size2.size4,
.katex .fontsize-ensurer.reset-size2.size4 {
font-size: 1.33333333em;
}
+
.katex .sizing.reset-size2.size5,
.katex .fontsize-ensurer.reset-size2.size5 {
font-size: 1.5em;
}
+
.katex .sizing.reset-size2.size6,
.katex .fontsize-ensurer.reset-size2.size6 {
font-size: 1.66666667em;
}
+
.katex .sizing.reset-size2.size7,
.katex .fontsize-ensurer.reset-size2.size7 {
font-size: 2em;
}
+
.katex .sizing.reset-size2.size8,
.katex .fontsize-ensurer.reset-size2.size8 {
font-size: 2.4em;
}
+
.katex .sizing.reset-size2.size9,
.katex .fontsize-ensurer.reset-size2.size9 {
font-size: 2.88em;
}
+
.katex .sizing.reset-size2.size10,
.katex .fontsize-ensurer.reset-size2.size10 {
font-size: 3.45666667em;
}
+
.katex .sizing.reset-size2.size11,
.katex .fontsize-ensurer.reset-size2.size11 {
font-size: 4.14666667em;
}
+
.katex .sizing.reset-size3.size1,
.katex .fontsize-ensurer.reset-size3.size1 {
font-size: 0.71428571em;
}
+
.katex .sizing.reset-size3.size2,
.katex .fontsize-ensurer.reset-size3.size2 {
font-size: 0.85714286em;
}
+
.katex .sizing.reset-size3.size3,
.katex .fontsize-ensurer.reset-size3.size3 {
font-size: 1em;
}
+
.katex .sizing.reset-size3.size4,
.katex .fontsize-ensurer.reset-size3.size4 {
font-size: 1.14285714em;
}
+
.katex .sizing.reset-size3.size5,
.katex .fontsize-ensurer.reset-size3.size5 {
font-size: 1.28571429em;
}
+
.katex .sizing.reset-size3.size6,
.katex .fontsize-ensurer.reset-size3.size6 {
font-size: 1.42857143em;
}
+
.katex .sizing.reset-size3.size7,
.katex .fontsize-ensurer.reset-size3.size7 {
font-size: 1.71428571em;
}
+
.katex .sizing.reset-size3.size8,
.katex .fontsize-ensurer.reset-size3.size8 {
font-size: 2.05714286em;
}
+
.katex .sizing.reset-size3.size9,
.katex .fontsize-ensurer.reset-size3.size9 {
font-size: 2.46857143em;
}
+
.katex .sizing.reset-size3.size10,
.katex .fontsize-ensurer.reset-size3.size10 {
font-size: 2.96285714em;
}
+
.katex .sizing.reset-size3.size11,
.katex .fontsize-ensurer.reset-size3.size11 {
font-size: 3.55428571em;
}
+
.katex .sizing.reset-size4.size1,
.katex .fontsize-ensurer.reset-size4.size1 {
font-size: 0.625em;
}
+
.katex .sizing.reset-size4.size2,
.katex .fontsize-ensurer.reset-size4.size2 {
font-size: 0.75em;
}
+
.katex .sizing.reset-size4.size3,
.katex .fontsize-ensurer.reset-size4.size3 {
font-size: 0.875em;
}
+
.katex .sizing.reset-size4.size4,
.katex .fontsize-ensurer.reset-size4.size4 {
font-size: 1em;
}
+
.katex .sizing.reset-size4.size5,
.katex .fontsize-ensurer.reset-size4.size5 {
font-size: 1.125em;
}
+
.katex .sizing.reset-size4.size6,
.katex .fontsize-ensurer.reset-size4.size6 {
font-size: 1.25em;
}
+
.katex .sizing.reset-size4.size7,
.katex .fontsize-ensurer.reset-size4.size7 {
font-size: 1.5em;
}
+
.katex .sizing.reset-size4.size8,
.katex .fontsize-ensurer.reset-size4.size8 {
font-size: 1.8em;
}
+
.katex .sizing.reset-size4.size9,
.katex .fontsize-ensurer.reset-size4.size9 {
font-size: 2.16em;
}
+
.katex .sizing.reset-size4.size10,
.katex .fontsize-ensurer.reset-size4.size10 {
font-size: 2.5925em;
}
+
.katex .sizing.reset-size4.size11,
.katex .fontsize-ensurer.reset-size4.size11 {
font-size: 3.11em;
}
+
.katex .sizing.reset-size5.size1,
.katex .fontsize-ensurer.reset-size5.size1 {
font-size: 0.55555556em;
}
+
.katex .sizing.reset-size5.size2,
.katex .fontsize-ensurer.reset-size5.size2 {
font-size: 0.66666667em;
}
+
.katex .sizing.reset-size5.size3,
.katex .fontsize-ensurer.reset-size5.size3 {
font-size: 0.77777778em;
}
+
.katex .sizing.reset-size5.size4,
.katex .fontsize-ensurer.reset-size5.size4 {
font-size: 0.88888889em;
}
+
.katex .sizing.reset-size5.size5,
.katex .fontsize-ensurer.reset-size5.size5 {
font-size: 1em;
}
+
.katex .sizing.reset-size5.size6,
.katex .fontsize-ensurer.reset-size5.size6 {
font-size: 1.11111111em;
}
+
.katex .sizing.reset-size5.size7,
.katex .fontsize-ensurer.reset-size5.size7 {
font-size: 1.33333333em;
}
+
.katex .sizing.reset-size5.size8,
.katex .fontsize-ensurer.reset-size5.size8 {
font-size: 1.6em;
}
+
.katex .sizing.reset-size5.size9,
.katex .fontsize-ensurer.reset-size5.size9 {
font-size: 1.92em;
}
+
.katex .sizing.reset-size5.size10,
.katex .fontsize-ensurer.reset-size5.size10 {
font-size: 2.30444444em;
}
+
.katex .sizing.reset-size5.size11,
.katex .fontsize-ensurer.reset-size5.size11 {
font-size: 2.76444444em;
}
+
.katex .sizing.reset-size6.size1,
.katex .fontsize-ensurer.reset-size6.size1 {
font-size: 0.5em;
}
+
.katex .sizing.reset-size6.size2,
.katex .fontsize-ensurer.reset-size6.size2 {
font-size: 0.6em;
}
+
.katex .sizing.reset-size6.size3,
.katex .fontsize-ensurer.reset-size6.size3 {
font-size: 0.7em;
}
+
.katex .sizing.reset-size6.size4,
.katex .fontsize-ensurer.reset-size6.size4 {
font-size: 0.8em;
}
+
.katex .sizing.reset-size6.size5,
.katex .fontsize-ensurer.reset-size6.size5 {
font-size: 0.9em;
}
+
.katex .sizing.reset-size6.size6,
.katex .fontsize-ensurer.reset-size6.size6 {
font-size: 1em;
}
+
.katex .sizing.reset-size6.size7,
.katex .fontsize-ensurer.reset-size6.size7 {
font-size: 1.2em;
}
+
.katex .sizing.reset-size6.size8,
.katex .fontsize-ensurer.reset-size6.size8 {
font-size: 1.44em;
}
+
.katex .sizing.reset-size6.size9,
.katex .fontsize-ensurer.reset-size6.size9 {
font-size: 1.728em;
}
+
.katex .sizing.reset-size6.size10,
.katex .fontsize-ensurer.reset-size6.size10 {
font-size: 2.074em;
}
+
.katex .sizing.reset-size6.size11,
.katex .fontsize-ensurer.reset-size6.size11 {
font-size: 2.488em;
}
+
.katex .sizing.reset-size7.size1,
.katex .fontsize-ensurer.reset-size7.size1 {
font-size: 0.41666667em;
}
+
.katex .sizing.reset-size7.size2,
.katex .fontsize-ensurer.reset-size7.size2 {
font-size: 0.5em;
}
+
.katex .sizing.reset-size7.size3,
.katex .fontsize-ensurer.reset-size7.size3 {
font-size: 0.58333333em;
}
+
.katex .sizing.reset-size7.size4,
.katex .fontsize-ensurer.reset-size7.size4 {
font-size: 0.66666667em;
}
+
.katex .sizing.reset-size7.size5,
.katex .fontsize-ensurer.reset-size7.size5 {
font-size: 0.75em;
}
+
.katex .sizing.reset-size7.size6,
.katex .fontsize-ensurer.reset-size7.size6 {
font-size: 0.83333333em;
}
+
.katex .sizing.reset-size7.size7,
.katex .fontsize-ensurer.reset-size7.size7 {
font-size: 1em;
}
+
.katex .sizing.reset-size7.size8,
.katex .fontsize-ensurer.reset-size7.size8 {
font-size: 1.2em;
}
+
.katex .sizing.reset-size7.size9,
.katex .fontsize-ensurer.reset-size7.size9 {
font-size: 1.44em;
}
+
.katex .sizing.reset-size7.size10,
.katex .fontsize-ensurer.reset-size7.size10 {
font-size: 1.72833333em;
}
+
.katex .sizing.reset-size7.size11,
.katex .fontsize-ensurer.reset-size7.size11 {
font-size: 2.07333333em;
}
+
.katex .sizing.reset-size8.size1,
.katex .fontsize-ensurer.reset-size8.size1 {
font-size: 0.34722222em;
}
+
.katex .sizing.reset-size8.size2,
.katex .fontsize-ensurer.reset-size8.size2 {
font-size: 0.41666667em;
}
+
.katex .sizing.reset-size8.size3,
.katex .fontsize-ensurer.reset-size8.size3 {
font-size: 0.48611111em;
}
+
.katex .sizing.reset-size8.size4,
.katex .fontsize-ensurer.reset-size8.size4 {
font-size: 0.55555556em;
}
+
.katex .sizing.reset-size8.size5,
.katex .fontsize-ensurer.reset-size8.size5 {
font-size: 0.625em;
}
+
.katex .sizing.reset-size8.size6,
.katex .fontsize-ensurer.reset-size8.size6 {
font-size: 0.69444444em;
}
+
.katex .sizing.reset-size8.size7,
.katex .fontsize-ensurer.reset-size8.size7 {
font-size: 0.83333333em;
}
+
.katex .sizing.reset-size8.size8,
.katex .fontsize-ensurer.reset-size8.size8 {
font-size: 1em;
}
+
.katex .sizing.reset-size8.size9,
.katex .fontsize-ensurer.reset-size8.size9 {
font-size: 1.2em;
}
+
.katex .sizing.reset-size8.size10,
.katex .fontsize-ensurer.reset-size8.size10 {
font-size: 1.44027778em;
}
+
.katex .sizing.reset-size8.size11,
.katex .fontsize-ensurer.reset-size8.size11 {
font-size: 1.72777778em;
}
+
.katex .sizing.reset-size9.size1,
.katex .fontsize-ensurer.reset-size9.size1 {
font-size: 0.28935185em;
}
+
.katex .sizing.reset-size9.size2,
.katex .fontsize-ensurer.reset-size9.size2 {
font-size: 0.34722222em;
}
+
.katex .sizing.reset-size9.size3,
.katex .fontsize-ensurer.reset-size9.size3 {
font-size: 0.40509259em;
}
+
.katex .sizing.reset-size9.size4,
.katex .fontsize-ensurer.reset-size9.size4 {
font-size: 0.46296296em;
}
+
.katex .sizing.reset-size9.size5,
.katex .fontsize-ensurer.reset-size9.size5 {
font-size: 0.52083333em;
}
+
.katex .sizing.reset-size9.size6,
.katex .fontsize-ensurer.reset-size9.size6 {
font-size: 0.5787037em;
}
+
.katex .sizing.reset-size9.size7,
.katex .fontsize-ensurer.reset-size9.size7 {
font-size: 0.69444444em;
}
+
.katex .sizing.reset-size9.size8,
.katex .fontsize-ensurer.reset-size9.size8 {
font-size: 0.83333333em;
}
+
.katex .sizing.reset-size9.size9,
.katex .fontsize-ensurer.reset-size9.size9 {
font-size: 1em;
}
+
.katex .sizing.reset-size9.size10,
.katex .fontsize-ensurer.reset-size9.size10 {
font-size: 1.20023148em;
}
+
.katex .sizing.reset-size9.size11,
.katex .fontsize-ensurer.reset-size9.size11 {
font-size: 1.43981481em;
}
+
.katex .sizing.reset-size10.size1,
.katex .fontsize-ensurer.reset-size10.size1 {
font-size: 0.24108004em;
}
+
.katex .sizing.reset-size10.size2,
.katex .fontsize-ensurer.reset-size10.size2 {
font-size: 0.28929605em;
}
+
.katex .sizing.reset-size10.size3,
.katex .fontsize-ensurer.reset-size10.size3 {
font-size: 0.33751205em;
}
+
.katex .sizing.reset-size10.size4,
.katex .fontsize-ensurer.reset-size10.size4 {
font-size: 0.38572806em;
}
+
.katex .sizing.reset-size10.size5,
.katex .fontsize-ensurer.reset-size10.size5 {
font-size: 0.43394407em;
}
+
.katex .sizing.reset-size10.size6,
.katex .fontsize-ensurer.reset-size10.size6 {
font-size: 0.48216008em;
}
+
.katex .sizing.reset-size10.size7,
.katex .fontsize-ensurer.reset-size10.size7 {
font-size: 0.57859209em;
}
+
.katex .sizing.reset-size10.size8,
.katex .fontsize-ensurer.reset-size10.size8 {
font-size: 0.69431051em;
}
+
.katex .sizing.reset-size10.size9,
.katex .fontsize-ensurer.reset-size10.size9 {
font-size: 0.83317261em;
}
+
.katex .sizing.reset-size10.size10,
.katex .fontsize-ensurer.reset-size10.size10 {
font-size: 1em;
}
+
.katex .sizing.reset-size10.size11,
.katex .fontsize-ensurer.reset-size10.size11 {
font-size: 1.19961427em;
}
+
.katex .sizing.reset-size11.size1,
.katex .fontsize-ensurer.reset-size11.size1 {
font-size: 0.20096463em;
}
+
.katex .sizing.reset-size11.size2,
.katex .fontsize-ensurer.reset-size11.size2 {
font-size: 0.24115756em;
}
+
.katex .sizing.reset-size11.size3,
.katex .fontsize-ensurer.reset-size11.size3 {
font-size: 0.28135048em;
}
+
.katex .sizing.reset-size11.size4,
.katex .fontsize-ensurer.reset-size11.size4 {
font-size: 0.32154341em;
}
+
.katex .sizing.reset-size11.size5,
.katex .fontsize-ensurer.reset-size11.size5 {
font-size: 0.36173633em;
}
+
.katex .sizing.reset-size11.size6,
.katex .fontsize-ensurer.reset-size11.size6 {
font-size: 0.40192926em;
}
+
.katex .sizing.reset-size11.size7,
.katex .fontsize-ensurer.reset-size11.size7 {
font-size: 0.48231511em;
}
+
.katex .sizing.reset-size11.size8,
.katex .fontsize-ensurer.reset-size11.size8 {
font-size: 0.57877814em;
}
+
.katex .sizing.reset-size11.size9,
.katex .fontsize-ensurer.reset-size11.size9 {
font-size: 0.69453376em;
}
+
.katex .sizing.reset-size11.size10,
.katex .fontsize-ensurer.reset-size11.size10 {
font-size: 0.83360129em;
}
+
.katex .sizing.reset-size11.size11,
.katex .fontsize-ensurer.reset-size11.size11 {
font-size: 1em;
}
+
.katex .delimsizing.size1 {
font-family: KaTeX_Size1;
}
+
.katex .delimsizing.size2 {
font-family: KaTeX_Size2;
}
+
.katex .delimsizing.size3 {
font-family: KaTeX_Size3;
}
+
.katex .delimsizing.size4 {
font-family: KaTeX_Size4;
}
+
.katex .delimsizing.mult .delim-size1 > span {
font-family: KaTeX_Size1;
}
+
.katex .delimsizing.mult .delim-size4 > span {
font-family: KaTeX_Size4;
}
+
.katex .nulldelimiter {
display: inline-block;
width: 0.12em;
}
+
.katex .delimcenter {
position: relative;
}
+
.katex .op-symbol {
position: relative;
}
+
.katex .op-symbol.small-op {
font-family: KaTeX_Size1;
}
+
.katex .op-symbol.large-op {
font-family: KaTeX_Size2;
}
+
.katex .op-limits > .vlist-t {
text-align: center;
}
+
.katex .accent > .vlist-t {
text-align: center;
}
+
.katex .accent .accent-body {
position: relative;
}
+
.katex .accent .accent-body:not(.accent-full) {
width: 0;
}
+
.katex .overlay {
display: block;
}
+
.katex .mtable .vertical-separator {
display: inline-block;
min-width: 1px;
}
+
.katex .mtable .arraycolsep {
display: inline-block;
}
+
.katex .mtable .col-align-c > .vlist-t {
text-align: center;
}
+
.katex .mtable .col-align-l > .vlist-t {
text-align: left;
}
+
.katex .mtable .col-align-r > .vlist-t {
text-align: right;
}
+
.katex .svg-align {
text-align: left;
}
+
.katex svg {
display: block;
position: absolute;
@@ -933,9 +1151,11 @@
stroke-dashoffset: 0;
stroke-opacity: 1;
}
+
.katex svg path {
stroke: none;
}
+
.katex img {
border-style: none;
min-width: 0;
@@ -943,143 +1163,174 @@
max-width: none;
max-height: none;
}
+
.katex .stretchy {
width: 100%;
display: block;
position: relative;
overflow: hidden;
}
+
.katex .stretchy::before,
.katex .stretchy::after {
content: "";
}
+
.katex .hide-tail {
width: 100%;
position: relative;
overflow: hidden;
}
+
.katex .halfarrow-left {
position: absolute;
left: 0;
width: 50.2%;
overflow: hidden;
}
+
.katex .halfarrow-right {
position: absolute;
right: 0;
width: 50.2%;
overflow: hidden;
}
+
.katex .brace-left {
position: absolute;
left: 0;
width: 25.1%;
overflow: hidden;
}
+
.katex .brace-center {
position: absolute;
left: 25%;
width: 50%;
overflow: hidden;
}
+
.katex .brace-right {
position: absolute;
right: 0;
width: 25.1%;
overflow: hidden;
}
+
.katex .x-arrow-pad {
padding: 0 0.5em;
}
+
.katex .cd-arrow-pad {
padding: 0 0.55556em 0 0.27778em;
}
+
.katex .x-arrow,
.katex .mover,
.katex .munder {
text-align: center;
}
+
.katex .boxpad {
padding: 0 0.3em;
}
+
.katex .fbox,
.katex .fcolorbox {
box-sizing: border-box;
border: 0.04em solid;
}
+
.katex .cancel-pad {
padding: 0 0.2em;
}
+
.katex .cancel-lap {
margin-left: -0.2em;
margin-right: -0.2em;
}
+
.katex .sout {
border-bottom-style: solid;
border-bottom-width: 0.08em;
}
+
.katex .angl {
box-sizing: border-box;
border-top: 0.049em solid;
border-right: 0.049em solid;
margin-right: 0.03889em;
}
+
.katex .anglpad {
padding: 0 0.03889em;
}
+
.katex .eqn-num::before {
counter-increment: katexEqnNo;
content: "(" counter(katexEqnNo) ")";
}
+
.katex .mml-eqn-num::before {
counter-increment: mmlEqnNo;
content: "(" counter(mmlEqnNo) ")";
}
+
.katex .mtr-glue {
width: 50%;
}
+
.katex .cd-vert-arrow {
display: inline-block;
position: relative;
}
+
.katex .cd-label-left {
display: inline-block;
position: absolute;
right: calc(50% + 0.3em);
text-align: left;
}
+
.katex .cd-label-right {
display: inline-block;
position: absolute;
left: calc(50% + 0.3em);
text-align: right;
}
+
.katex-display {
display: block;
margin: 1em 0;
text-align: center;
}
+
.katex-display > .katex {
display: block;
text-align: center;
white-space: nowrap;
}
+
.katex-display > .katex > .katex-html {
display: block;
position: relative;
}
+
.katex-display > .katex > .katex-html > .tag {
position: absolute;
right: 0;
}
+
.katex-display.leqno > .katex > .katex-html > .tag {
left: 0;
right: auto;
}
+
.katex-display.fleqn > .katex {
text-align: left;
padding-left: 2em;
}
+
body {
counter-reset: katexEqnNo mmlEqnNo;
}
@@ -1144,17 +1395,17 @@
height: 100%;
width: 300px;
padding-left: 15px;
- border-right: 1px solid#eeeeee;
+ border-right: 1px solid #eeeeee;
overflow-x: hidden;
overflow-y: scroll
}
- .toc>h1,
- .toc>h2,
- .toc>h3,
- .toc>h4,
- .toc>h5,
- .toc>h6 {
+ .toc > h1,
+ .toc > h2,
+ .toc > h3,
+ .toc > h4,
+ .toc > h5,
+ .toc > h6 {
margin: 0;
font-size: 15px;
font-weight: 300;
@@ -1162,12 +1413,12 @@
color: #727272
}
- .toc>h1:hover,
- .toc>h2:hover,
- .toc>h3:hover,
- .toc>h4:hover,
- .toc>h5:hover,
- .toc>h6:hover {
+ .toc > h1:hover,
+ .toc > h2:hover,
+ .toc > h3:hover,
+ .toc > h4:hover,
+ .toc > h5:hover,
+ .toc > h6:hover {
color: #7843E9
}
@@ -1222,7 +1473,7 @@
--bl-preview-border-radius: 4px;
--bl-preview-toc-border-color: #e0e0e0;
--bl-preview-h1-bg-color: #eaeaea;
- --bl-preview-h1-box-shadow: 3px 3px 5px 1px#a8a8a8;
+ --bl-preview-h1-box-shadow: 3px 3px 5px 1px #a8a8a8;
--bl-preview-h1-text-shadow: 3px 3px 3px rgb(148, 148, 148);
--bl-preview-table-border-color: #939393;
--bl-preview-table-thead-bg-color: #2b2b2b;
@@ -1241,11 +1492,11 @@
--bl-preview-blockquote-border-purple: #ba9bf2;
--bl-preview-blockquote-bg-black: rgba(0, 0, 0, 0.7);
--bl-preview-blockquote-border-black: #000000;
- --bl-preview-img-box-shadow: 2px 2px 10px 3px#c6c6c6;
+ --bl-preview-img-box-shadow: 2px 2px 10px 3px #c6c6c6;
--bl-preview-img-filter: brightness(100%);
--bl-preview-code-bg-color: #eaeaea;
--bl-preview-pre-bg-color: #2b2b2b;
- --bl-preview-pre-box-shadow: 2px 2px 10px 1px#000;
+ --bl-preview-pre-box-shadow: 2px 2px 10px 1px #000;
}
html.dark {
@@ -1272,8 +1523,8 @@
--bl-preview-border-radius: 4px;
--bl-preview-toc-border-color: #525252;
--bl-preview-h1-bg-color: #545454;
- --bl-preview-h1-box-shadow: 3px 3px 5px 1px#000000;
- --bl-preview-h1-text-shadow: 3px 3px 3px#000000;
+ --bl-preview-h1-box-shadow: 3px 3px 5px 1px #000000;
+ --bl-preview-h1-text-shadow: 3px 3px 3px #000000;
--bl-preview-table-border-color: #525252;
--bl-preview-table-thead-bg-color: #454545;
--bl-preview-blockquote-color: #b9b9b9;
@@ -1291,11 +1542,11 @@
--bl-preview-blockquote-border-purple: #4600c8;
--bl-preview-blockquote-bg-black: #181818;
--bl-preview-blockquote-border-black: #000000;
- --bl-preview-img-box-shadow: 2px 2px 10px 3px#000000;
+ --bl-preview-img-box-shadow: 2px 2px 10px 3px #000000;
--bl-preview-img-filter: brightness(80%);
--bl-preview-code-bg-color: #414141;
--bl-preview-pre-bg-color: #131313;
- --bl-preview-pre-box-shadow: inset 0 0 5px 3px#000;
+ --bl-preview-pre-box-shadow: inset 0 0 5px 3px #000;
}
* {
@@ -1445,7 +1696,8 @@
color: #d4d4d4;
}
- .bl-preview table thead tr {}
+ .bl-preview table thead tr {
+ }
.bl-preview table thead tr th {
font-size: 16px !important;
@@ -1457,9 +1709,11 @@
border: 0;
}
- .bl-preview table tbody {}
+ .bl-preview table tbody {
+ }
- .bl-preview table tbody tr {}
+ .bl-preview table tbody tr {
+ }
.bl-preview table tbody tr td {
padding: 5px;
@@ -1473,7 +1727,8 @@
border-right: 0
}
- .bl-preview table tbody tr:last-child {}
+ .bl-preview table tbody tr:last-child {
+ }
.bl-preview table tbody tr:last-child td {
border-bottom: 0
@@ -1487,7 +1742,8 @@
display: none
}
- .bl-preview .bl-table-container tbody {}
+ .bl-preview .bl-table-container tbody {
+ }
.bl-preview .bl-table-container tbody td {
border: 0
@@ -1544,12 +1800,57 @@
}
.bl-preview pre {
- padding: 10px 10px 10px 10px;
+ padding: 10px 10px 10px 30px;
background-color: var(--bl-preview-pre-bg-color);
overflow: scroll;
border-radius: var(--bl-preview-border-radius);
box-shadow: var(--bl-preview-pre-box-shadow);
- font-size: 13px
+ font-size: 13px;
+ position: relative;
+ }
+
+ .bl-preview pre .pre-copy {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ text-align: right;
+ z-index: 10;
+ color: #5c5c5c;
+ padding: 1px 8px;
+ border-radius: 4px;
+ cursor: pointer;
+ user-select: none;
+ }
+
+ .bl-preview pre .pre-copy:hover {
+ background-color: #1a1a1a;
+ color: #9d9d9d;
+ }
+
+ .bl-preview pre .pre-copy:active {
+ color: #e2e2e2;
+ }
+
+ .bl-preview pre ol {
+ margin: 0;
+ padding-left: 0;
+ position: absolute;
+ top: 10px;
+ left: 3px;
+ user-select: none;
+ }
+
+ .bl-preview pre ol li {
+ list-style: none;
+ }
+
+ .bl-preview pre ol li .line-num {
+ width: 30px;
+ display: inline-block;
+ text-align: right;
+ padding-right: 10px;
+ color: #6a6a6a;
+ user-select: none;
}
.bl-preview pre code {
@@ -1694,7 +1995,36 @@
color: #ffffff
}
-
+
diff --git a/blossom-editor/src/renderer/src/assets/utils/hljsTest.ts b/blossom-editor/src/renderer/src/assets/utils/hljsTest.ts
index 4bb616a..404d5d4 100644
--- a/blossom-editor/src/renderer/src/assets/utils/hljsTest.ts
+++ b/blossom-editor/src/renderer/src/assets/utils/hljsTest.ts
@@ -2,19 +2,31 @@ import hljs from 'highlight.js'
hljs.addPlugin({
'after:highlight': (el) => {
- console.log(el);
-
+ // console.log(el.value);
+ // let result = '
'
+ let lines: any[] = el.value.split(/\n|\r\n?|\n\n+/g)
+ // snsArr.forEach((item: string) => {
+ // result += `- ${item}
`
+ // })
+ // el.value = result += '
'
let result = ''
- let snsArr: string[] = el.value.split(/[\n\r]+/)
- snsArr.forEach((item: string) => {
- result += `- ${item}
`
- })
- el.value = result += '
'
+ for (let i = 0; i < lines.length; i++) {
+ let line = lines[i]
+ result += `${i + 1}`
+ }
+ el.value = el.value + result + ''
}
})
const html = hljs.highlight(
- `public void main () {
+ `/**
+ * 注释
+ */
+
+
+
+
+public void main () {
li
神经
}`,
diff --git a/blossom-editor/src/renderer/src/views/article/styles/bl-preview.css b/blossom-editor/src/renderer/src/views/article/styles/bl-preview.css
index 3b8c949..27b5e25 100644
--- a/blossom-editor/src/renderer/src/views/article/styles/bl-preview.css
+++ b/blossom-editor/src/renderer/src/views/article/styles/bl-preview.css
@@ -246,7 +246,7 @@ table container
.bl-preview pre .pre-copy {
position: absolute;
- top: 5px;
+ top: 10px;
right: 10px;
text-align: right;
z-index: 10;
@@ -254,10 +254,16 @@ table container
padding: 1px 8px;
border-radius: 4px;
cursor: pointer;
+ user-select: none;
}
.bl-preview pre .pre-copy:hover {
background-color: #1a1a1a;
+ color: #9d9d9d;
+}
+
+.bl-preview pre .pre-copy:active {
+ color: #e2e2e2;
}
.bl-preview pre ol {
diff --git a/blossom-editor/src/renderer/src/views/doc/type.d.ts b/blossom-editor/src/renderer/src/views/doc/type.d.ts
index 34b7d63..31e4eb5 100644
--- a/blossom-editor/src/renderer/src/views/doc/type.d.ts
+++ b/blossom-editor/src/renderer/src/views/doc/type.d.ts
@@ -3,27 +3,27 @@
*/
declare interface DocTree {
/** id */
- i: number,
+ i: number
/** pid */
- p: number,
+ p: number
/** name */
- n: string,
+ n: string
/** open: 0:否;1:是; */
- o: number,
+ o: number
/** 版本有差异, 公开文章才会有此项 */
- vd?: number | null,
+ vd?: number | null
/** Tags */
- t: string[],
+ t: string[]
/** 排序 */
- s: number,
+ s: number
/** 图标 */
- icon: string,
+ icon: string
/** 文档类型: 1:文章文件夹|2:图片文件夹|3:文章; */
- ty: DocType,
+ ty: DocType
/** 是否 star */
- star: number,
+ star: number
/** 是否显示排序 */
- showSort?: boolean,
+ showSort?: boolean
/** 子集 */
children?: DocTree[]
}
@@ -32,47 +32,49 @@ declare interface DocTree {
* 文章详情
*/
declare interface DocInfo {
- id: number,
- pid: number,
- name: string,
- icon?: string,
- tags: string[],
- sort: number,
- cover?: string,
- color?: string,
- describes?: string,
- starStatus: number,
- pv?: number,
- uv?: number,
- likes?: number,
- words?: number,
- version?: number,
- storePath?: string,
- subjectWords?: string,
- subjectUpdTime?: string,
- type: DocType,
- creTime?: string,
- updTime?: string,
- toc?: string,
+ id: number
+ pid: number
+ name: string
+ icon?: string
+ tags: string[]
+ sort: number
+ cover?: string
+ color?: string
+ describes?: string
+ starStatus: number
+ pv?: number
+ uv?: number
+ likes?: number
+ words?: number
+ version?: number
+ storePath?: string
+ subjectWords?: string
+ subjectUpdTime?: string
+ type: DocType
+ creTime?: string
+ updTime?: string
+ toc?: string
// 文章正文
- markdown?: string,
- html?: string,
+ markdown?: string
+ html?: string
// 公开文章的信息
- openStatus: number,
- openTime?: string,
- openVersion?: number,
- syncTime?: string,
+ openStatus: number
+ openTime?: string
+ openVersion?: number
+ syncTime?: string
}
/** 文档类型: 1:文章文件夹|2:图片文件夹|3:文章|11:分隔文档; */
-declare type DocType = 1 | 2 | 3 | 11;
+declare type DocType = 1 | 2 | 3 | 11
/** 文档弹框类型: 增|删|查 */
declare type DocDialogType = 'add' | 'upd' | 'info'
/** 右键菜单对象的显示位置 */
-declare type RightMenu = { show: boolean, clientX?: number, clientY?: number }
+declare type RightMenu = { show: boolean; clientX?: number; clientY?: number }
declare type RightMenuLevel2 = { top: string }
-
+declare interface Window {
+ onHtmlEventDispatch: any
+}
diff --git a/blossom-web/src/views/article/Articles.vue b/blossom-web/src/views/article/Articles.vue
index ce42528..f8e43bf 100644
--- a/blossom-web/src/views/article/Articles.vue
+++ b/blossom-web/src/views/article/Articles.vue
@@ -8,22 +8,24 @@
-
@@ -81,21 +81,23 @@
-
《{{ article?.name }}》
+
《{{ article?.name }}》
- {{ article?.words }} 字 |
- {{ article?.uv }} |
+ {{ article?.words }} 字 | {{ article?.uv }} |
{{ article?.likes }}
-
公开 {{ article?.openTime }}
+
+ 公开
+ {{ article?.openTime }}
-
修改 {{ article?.syncTime }}
+
+ 修改
+ {{ article?.syncTime }}
目录
@@ -111,16 +113,20 @@