From 2129a222e51ccf8bfccb8e6c2991c76b5a979c58 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 15 Dec 2020 18:01:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=9A=E7=82=B9=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 5 +++++ src/AppConfig.js | 2 +- src/components/render-html.jsx | 22 +++++++++++++++++++--- src/forge/About/Index.jsx | 2 +- src/forge/Main/CoderRootDirectory.js | 2 +- src/forge/Main/CoderRootFileDetail.js | 2 +- src/forge/Merge/MessageCount.js | 2 +- src/forge/Order/Detail.js | 2 +- src/forge/comments/children_comments.js | 2 +- src/forge/comments/children_journals.js | 2 +- src/forge/comments/comments.js | 2 +- 11 files changed, 33 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4aa513cec..f5aabc0e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3888,6 +3888,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/crypto-js/download/crypto-js-4.0.0.tgz", + "integrity": "sha1-KQSrJnep0EKFai6i74DekuSjbcw=" + }, "crypto-random-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", diff --git a/src/AppConfig.js b/src/AppConfig.js index a212448fb..a369d843b 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/components/render-html.jsx b/src/components/render-html.jsx index 057a28f7f..ebad16de9 100644 --- a/src/components/render-html.jsx +++ b/src/components/render-html.jsx @@ -2,7 +2,7 @@ import React, { useEffect, useRef, useMemo } from 'react' import 'katex/dist/katex.min.css' import marked, { getTocContent, cleanToc, getMathExpressions, resetMathExpressions } from '../common/marked'; import 'code-prettify' -import dompurify from 'dompurify' +import dompurify from 'dompurify'; import { renderToString } from 'katex' @@ -14,12 +14,14 @@ function _unescape(str) { } + export default ({ value = '', className, style = {}, + url }) => { - let str = String(value) + let str = String(value); const html = useMemo(() => { let rs = marked(str) @@ -36,7 +38,21 @@ export default ({ resetMathExpressions() return dompurify.sanitize(rs) - }, [str]) + }, [str]); + + // 锚点跳转,链接地址里含#对应的id + useEffect(()=>{ + if(url && url.hash && html){ + let u = url.hash; + if(u){ + let id = decodeURIComponent(u.split("#")[1]); + let ele = document.getElementById(id); + if(ele){ + window.scrollTo(0, ele.offsetTop - window.innerHeight / 5); + } + } + } + },[url]) const el = useRef(); function onAncherHandler(e) { diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index 964c4e0a2..c0a404e29 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -116,7 +116,7 @@ function Index(props){ :
{content ? - + :
暂无简介~
} diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index f81aa4fba..35ce2a49d 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -308,7 +308,7 @@ class CoderRootDirectory extends Component {
{readMeContent[0].content ? - + : 暂无~ } diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index 343d2826f..eacf623b3 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -260,7 +260,7 @@ class CoderRootFileDetail extends Component { ) : ( md && readOnly ?
- +
: { - return ; + return ; }; setCopyVisible=(e)=>{ diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js index 87d774a5d..874059190 100644 --- a/src/forge/Order/Detail.js +++ b/src/forge/Order/Detail.js @@ -182,7 +182,7 @@ class Detail extends Component { }; commentCtx = (v) => { - return ; + return ; }; render() { diff --git a/src/forge/comments/children_comments.js b/src/forge/comments/children_comments.js index d1e228155..65cf7784e 100644 --- a/src/forge/comments/children_comments.js +++ b/src/forge/comments/children_comments.js @@ -86,7 +86,7 @@ class children_comments extends Component { }; commentCtx = (v) => { - return ; + return ; }; Paginations =()=> { diff --git a/src/forge/comments/children_journals.js b/src/forge/comments/children_journals.js index cb9756ff6..e7eaae8ca 100644 --- a/src/forge/comments/children_journals.js +++ b/src/forge/comments/children_journals.js @@ -51,7 +51,7 @@ class children_journals extends Component { }; commentCtx = (v) => { - return ; + return ; }; Paginations =()=> { diff --git a/src/forge/comments/comments.js b/src/forge/comments/comments.js index 93e591c8c..acb24cda4 100644 --- a/src/forge/comments/comments.js +++ b/src/forge/comments/comments.js @@ -263,7 +263,7 @@ class comments extends Component { } commentCtx = (v) => { - return ; + return ; }; Paginations = ()=>{ const { page, limit, search_count } = this.state;