Skip to content

Commit

Permalink
feat: add mathjax css
Browse files Browse the repository at this point in the history
  • Loading branch information
Dup4 committed Jun 8, 2022
1 parent d7fd683 commit a811fd2
Show file tree
Hide file tree
Showing 13 changed files with 1,000 additions and 34 deletions.
5 changes: 3 additions & 2 deletions .vscode/settings.json
Expand Up @@ -6,16 +6,17 @@
"antfu",
"arithmatex",
"bumpp",
"camelcase",
"esmo",
"esno",
"mathjax",
"mkdocs",
"nextui",
"nprogress",
"pnpm",
"typecheck",
"vite",
"vitest",
"nprogress"
"vitest"
],
"typescript.tsdk": "node_modules/typescript/lib",
"[typescript]": {
Expand Down
19 changes: 18 additions & 1 deletion packages/mathjax-render-react/build.config.ts
@@ -1,4 +1,8 @@
import { defineBuildConfig } from "unbuild";
import { BuildContext, defineBuildConfig } from "unbuild";
import { RollupOptions } from "rollup";

import postcss from "rollup-plugin-postcss";
import camelcase from "camelcase";

export default defineBuildConfig({
entries: ["src/index"],
Expand All @@ -7,4 +11,17 @@ export default defineBuildConfig({
rollup: {
emitCJS: true,
},
hooks: {
"rollup:options": (ctx: BuildContext, options: RollupOptions): void => {
options.plugins.push(
postcss({
inject: true,
use: ["less"],
namedExports(name) {
return camelcase(name);
},
}),
);
},
},
});
8 changes: 7 additions & 1 deletion packages/mathjax-render-react/package.json
Expand Up @@ -50,7 +50,13 @@
"devDependencies": {
"@types/react": "^18.0.11",
"@types/react-dom": "^18.0.5",
"camelcase": "^7.0.0",
"less": "^4.1.2",
"postcss": "^8.4.14",
"react": "^18.1.0",
"react-dom": "^18.1.0"
"react-dom": "^18.1.0",
"rollup": "^2.75.5",
"rollup-plugin-postcss": "^4.0.2",
"typescript": "4.7.3"
}
}
20 changes: 18 additions & 2 deletions packages/mathjax-render-react/src/MathJaxNode.tsx
@@ -1,5 +1,6 @@
import React from "react";
import { Options, Tex2SVG } from "mathjax-render/browser";
import style from "./mathjaxNode.module.less";

export interface MathJaxNodeProps extends Options {
tex: string;
Expand All @@ -9,11 +10,26 @@ export interface MathJaxNodeProps extends Options {
export const MathJaxNode: React.FC<MathJaxNodeProps> = (props) => {
const { tex, display, ...options } = props;

if (!options.nodeClassNameList) {
options.nodeClassNameList = [];
options.nodeClassNameList.push(
style.MathJax,
display ? style.block : style.inline,
);
}

if (!options.errorMessageClassNameList) {
options.errorMessageClassNameList = [];
options.errorMessageClassNameList.push(style.MathJax, style.errorMessage);
}

const html = Tex2SVG(tex, display, options).outerHTML;

if (display) {
return (
<div
dangerouslySetInnerHTML={{
__html: Tex2SVG(tex, display, options).outerHTML,
__html: html,
}}
></div>
);
Expand All @@ -22,7 +38,7 @@ export const MathJaxNode: React.FC<MathJaxNodeProps> = (props) => {
return (
<span
dangerouslySetInnerHTML={{
__html: Tex2SVG(tex, display, options).outerHTML,
__html: html,
}}
></span>
);
Expand Down
1 change: 1 addition & 0 deletions packages/mathjax-render-react/src/index.ts
@@ -0,0 +1 @@
export * from "./mathjaxNode";
1 change: 0 additions & 1 deletion packages/mathjax-render-react/src/index.tsx

This file was deleted.

27 changes: 27 additions & 0 deletions packages/mathjax-render-react/src/mathjaxNode.module.less
@@ -0,0 +1,27 @@
.MathJax {
&.inline {
font-size: 16px;
}

&.block {
overflow: auto;
overflow-y: hidden;
font-size: 18px;

&:first-child {
padding-top: 0;
}

&:last-child {
padding-bottom: 0;
}
}

&.error-message {
font-weight: bold;
display: inline-block;
border: 2px solid #000;
padding: 0 4px;
text-align: left;
}
}
7 changes: 4 additions & 3 deletions packages/mathjax-render-react/tsconfig.json
@@ -1,10 +1,11 @@
{
"extends": "../../tsconfig.base.json",
"include": [
"src"
"src",
"typings.d.ts",
],
"compilerOptions": {
"jsx": "react-jsx",
"jsx": "react",
"lib": [
"DOM"
],
Expand All @@ -16,6 +17,6 @@
"mathjax-render/browser": [
"../mathjax-render/src/browser"
]
}
},
}
}
1 change: 1 addition & 0 deletions packages/mathjax-render-react/typings.d.ts
@@ -0,0 +1 @@
declare module "*.module.less";
5 changes: 4 additions & 1 deletion packages/mathjax-render/package.json
Expand Up @@ -26,7 +26,10 @@
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./browser": "./dist/esm/browser/index.mjs"
"./browser": {
"import": "./dist/esm/browser/index.mjs",
"types": "./dist/esm/browser/index.d.ts"
}
},
"browser": {
"./dist/index.cjs": "./dist/esm/browser/index.ts",
Expand Down
1 change: 1 addition & 0 deletions packages/mathjax-render/src/browser/Tex2SVG.ts
Expand Up @@ -58,6 +58,7 @@ export function Tex2SVG(math: string, display: boolean, options?: Options) {
if (options?.errorMessageClassNameList) {
message.classList.add(...options.errorMessageClassNameList);
} else {
// default style
message.style.fontWeight = "bold";
message.style.display = "inline-block";
message.style.border = "2px solid #000";
Expand Down
1 change: 0 additions & 1 deletion packages/mathjax-render/src/common/CSS.ts
Expand Up @@ -131,5 +131,4 @@ foreignObject[data-mjx-xml] {
.MathJax path {
stroke-width: 3;
}
`;

0 comments on commit a811fd2

Please sign in to comment.