From 801e4f3a0ffe66c6979833bae113f868bbba3f38 Mon Sep 17 00:00:00 2001 From: enncy <877526278@qq.com> Date: Mon, 4 Apr 2022 09:23:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AD=94=E6=A1=88=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/.gitignore | 134 ++++++++++++++++++++++++++++++++ packages/core/src/core/utils.ts | 9 +++ packages/core/src/index.ts | 3 +- 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 packages/core/.gitignore diff --git a/packages/core/.gitignore b/packages/core/.gitignore new file mode 100644 index 00000000..61dafb35 --- /dev/null +++ b/packages/core/.gitignore @@ -0,0 +1,134 @@ +# customize + +test/ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* \ No newline at end of file diff --git a/packages/core/src/core/utils.ts b/packages/core/src/core/utils.ts index 906c9586..2447cb4f 100644 --- a/packages/core/src/core/utils.ts +++ b/packages/core/src/core/utils.ts @@ -156,6 +156,15 @@ export function domSearchAll( * */ export function answerSimilar(answers: string[], options: string[]): Rating[] { + /** + * 删除题目选项中开头的冗余字符串 + */ + const removeRedundant = (str: string) => { + return str.replace(/[A-Z]{1}[^A-Za-z0-9\u4e00-\u9fa5]+([A-Za-z0-9\u4e00-\u9fa5]+)/, "$1"); + }; + answers = answers.map(removeRedundant); + options = options.map(removeRedundant); + const similar = answers.length !== 0 ? options.map((option) => findBestMatch(option, answers).bestMatch) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 2b774d1d..0741f680 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,3 +1,4 @@ +import { defineScript } from "./core/define.script"; import { OCSWorker } from "./core/worker"; import { logger } from "./logger"; import { getItem, setItem } from "./core/store"; @@ -10,7 +11,7 @@ import { defaultsDeep } from "lodash"; import { CommonScript } from "./common"; /** 统一导出 */ -export { getItem, setItem, logger, OCSWorker, QuestionTypeEnum, defaultAnswerWrapperHandler }; +export { getItem, setItem, logger, defineScript, OCSWorker, QuestionTypeEnum, defaultAnswerWrapperHandler }; export * as utils from "./core/utils"; export { start, app, panel } from "./bootstrap";