Skip to content

Commit

Permalink
addcd
Browse files Browse the repository at this point in the history
  • Loading branch information
mayfwl committed Aug 10, 2024
1 parent 8f759d1 commit 6f75ef8
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 25 deletions.
82 changes: 60 additions & 22 deletions app/components/markdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,29 +122,29 @@ export function PreCode(props: { children: any }) {
}
}, []);

const [collapsed, setCollapsed] = useState(true);
const [showToggle, setShowToggle] = useState(false);
// const [collapsed, setCollapsed] = useState(true);
// const [showToggle, setShowToggle] = useState(false);

useEffect(() => {
if (ref.current) {
const codeHeight = ref.current.scrollHeight;
setShowToggle(codeHeight > 400);
ref.current.scrollTop = ref.current.scrollHeight;
}
}, [props.children]);
// useEffect(() => {
// if (ref.current) {
// const codeHeight = ref.current.scrollHeight;
// setShowToggle(codeHeight > 400);
// ref.current.scrollTop = ref.current.scrollHeight;
// }
// }, [props.children]);

const toggleCollapsed = () => {
setCollapsed(!collapsed);
};
// const toggleCollapsed = () => {
// setCollapsed(collapsed=>!collapsed);
// };

return (
<>
<div style={{ position: "relative" }}>
<pre
ref={ref}
style={{
maxHeight: collapsed ? "400px" : "none",
overflow: "hidden",
// maxHeight: collapsed ? "400px" : "none",
overflowY: "hidden",
}}
>
<span
Expand All @@ -157,18 +157,13 @@ export function PreCode(props: { children: any }) {
}}
></span>
{props.children}
{showToggle && collapsed && (
{/* {showToggle && collapsed && (
<div
className="show-hide-button"
style={{
backgroundImage: collapsed
? "linear-gradient(to bottom, rgba(0,0,0,.8), rgba(0,0,0,.06))"
: "none",
}}
className={`show-hide-button ${collapsed ? 'collapsed' : 'expanded'}`}
>
<button onClick={toggleCollapsed}>查看全部</button>
</div>
)}
)} */}
</pre>
</div>
{mermaidCode.length > 0 && (
Expand All @@ -191,6 +186,46 @@ export function PreCode(props: { children: any }) {
);
}

function CustomCode(props: { children: any }) {
const ref = useRef<HTMLPreElement>(null);
const [collapsed, setCollapsed] = useState(true);
const [showToggle, setShowToggle] = useState(false);

useEffect(() => {
if (ref.current) {
const codeHeight = ref.current.scrollHeight;
setShowToggle(codeHeight > 400);
ref.current.scrollTop = ref.current.scrollHeight;
}
}, [props.children]);

const toggleCollapsed = () => {
setCollapsed((collapsed) => !collapsed);
};
return (
<>
<code
ref={ref}
style={{
maxHeight: collapsed ? "400px" : "none",
overflowY: "hidden",
}}
>
{props.children}
{showToggle && collapsed && (
<div
className={`show-hide-button ${
collapsed ? "collapsed" : "expanded"
}`}
>
<button onClick={toggleCollapsed}>查看全部</button>
</div>
)}
</code>
</>
);
}

function escapeDollarNumber(text: string) {
let escapedText = "";

Expand Down Expand Up @@ -231,6 +266,8 @@ function _MarkDownContent(props: { content: string }) {
return escapeBrackets(escapeDollarNumber(props.content));
}, [props.content]);

console.log(escapedContent, 11233);

return (
<ReactMarkdown
remarkPlugins={[RemarkMath, RemarkGfm, RemarkBreaks]}
Expand All @@ -246,6 +283,7 @@ function _MarkDownContent(props: { content: string }) {
]}
components={{
pre: PreCode,
code: CustomCode,
p: (pProps) => <p {...pProps} dir="auto" />,
a: (aProps) => {
const href = aProps.href || "";
Expand Down
15 changes: 12 additions & 3 deletions app/styles/globals.scss
Original file line number Diff line number Diff line change
Expand Up @@ -301,10 +301,15 @@ pre {
opacity: 1;
}
}
}

code{
.show-hide-button {
border-radius: 10px;
position: absolute;
top: 0;
left: 0;
right: 0;
width: 100%;
margin: auto;
height: fit-content;
Expand All @@ -322,11 +327,15 @@ pre {
background: #464e4e;
}
}


.expanded {
background-image: none;
}
.collapsed {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.06));
}
}



.clickable {
cursor: pointer;

Expand Down

0 comments on commit 6f75ef8

Please sign in to comment.