浏览代码

:arrow_up:

Vanessa 1 年之前
父节点
当前提交
7ec5d0c50a
共有 7 个文件被更改,包括 456 次插入435 次删除
  1. 0 1
      .eslintignore
  2. 0 10
      .eslintrc
  3. 20 0
      eslint.config.mjs
  4. 0 189
      jest.config.js
  5. 76 74
      package.json
  6. 359 160
      pnpm-lock.yaml
  7. 1 1
      src/ts/toolbar/Export.ts

+ 0 - 1
.eslintignore

@@ -1 +0,0 @@
-**/*.js

+ 0 - 10
.eslintrc

@@ -1,10 +0,0 @@
-{
-  "root": true,
-  "parser": "@typescript-eslint/parser",
-  "plugins": ["@typescript-eslint", "jest", "prettier"],
-  "extends": [
-    "eslint:recommended",
-    "plugin:@typescript-eslint/recommended",
-    "plugin:jest/recommended"
-  ]
-}

+ 20 - 0
eslint.config.mjs

@@ -0,0 +1,20 @@
+import typescriptEslintParser from "@typescript-eslint/parser";
+import eslint from "@eslint/js";
+import tseslint from "typescript-eslint";
+
+export default tseslint.config({
+    ignores: ["**/*.js"],
+}, {
+    files: ["src/**/*.ts"],
+    extends:  [
+        eslint.configs.recommended,
+        ...tseslint.configs.recommended,
+    ],
+    languageOptions: {
+        parser: typescriptEslintParser,
+        parserOptions: {
+            project: ["./tsconfig.json"],
+            createDefaultProgram: true,
+        },
+    },
+},);

+ 0 - 189
jest.config.js

@@ -1,189 +0,0 @@
-// For a detailed explanation regarding each configuration property, visit:
-// https://jestjs.io/docs/en/configuration.html
-
-module.exports = {
-  // All imported modules in your tests should be mocked automatically
-  // automock: false,
-
-  // Stop running tests after `n` failures
-  // bail: 0,
-
-  // Respect "browser" field in package.json when resolving modules
-  // browser: false,
-
-  // The directory where Jest should store its cached dependency information
-  // cacheDirectory: "/private/var/folders/bm/7369j389267bsy4rhs0t51km0000gn/T/jest_dx",
-
-  // Automatically clear mock calls and instances between every test
-  // clearMocks: true,
-
-  // Indicates whether the coverage information should be collected while executing the test
-  // collectCoverage: false,
-
-  // An array of glob patterns indicating a set of files for which coverage information should be collected
-  // collectCoverageFrom: null,
-
-  // The directory where Jest should output its coverage files
-  coverageDirectory: "coverage",
-
-  // An array of regexp pattern strings used to skip coverage collection
-  // coveragePathIgnorePatterns: [
-  //   "/node_modules/"
-  // ],
-
-  // A list of reporter names that Jest uses when writing coverage reports
-  // coverageReporters: [
-  //   "json",
-  //   "text",
-  //   "lcov",
-  //   "clover"
-  // ],
-
-  // An object that configures minimum threshold enforcement for coverage results
-  // coverageThreshold: null,
-
-  // A path to a custom dependency extractor
-  // dependencyExtractor: null,
-
-  // Make calling deprecated APIs throw helpful error messages
-  // errorOnDeprecated: false,
-
-  // Force coverage collection from ignored files usin a array of glob patterns
-  // forceCoverageMatch: [],
-
-  // A path to a module which exports an async function that is triggered once before all test suites
-  // globalSetup: null,
-
-  // A path to a module which exports an async function that is triggered once after all test suites
-  // globalTeardown: null,
-
-  // A set of global variables that need to be available in all test environments
-  // globals: {},
-
-  // An array of directory names to be searched recursively up from the requiring module's location
-  // moduleDirectories: [
-  //   "node_modules"
-  // ],
-
-  // An array of file extensions your modules use
-  // moduleFileExtensions: [
-  //   "js",
-  //   "json",
-  //   "jsx",
-  //   "ts",
-  //   "tsx",
-  //   "node"
-  // ],
-
-  // A map from regular expressions to module names that allow to stub out resources with a single module
-  moduleNameMapper: {
-    ".+\\.(svg|png|jpg)$": "identity-obj-proxy"
-  },
-
-  // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
-  // modulePathIgnorePatterns: [],
-
-  // Activates notifications for test results
-  // notify: false,
-
-  // An enum that specifies notification mode. Requires { notify: true }
-  // notifyMode: "failure-change",
-
-  // A preset that is used as a base for Jest's configuration
-  // preset: null,
-
-  // Run tests from one or more projects
-  // projects: null,
-
-  // Use this configuration option to add custom reporters to Jest
-  // reporters: undefined,
-
-  // Automatically reset mock state between every test
-  // resetMocks: false,
-
-  // Reset the module registry before running each individual test
-  // resetModules: false,
-
-  // A path to a custom resolver
-  // resolver: null,
-
-  // Automatically restore mock state between every test
-  // restoreMocks: false,
-
-  // The root directory that Jest should scan for tests and modules within
-  // rootDir: null,
-
-  // A list of paths to directories that Jest should use to search for files in
-  // roots: [
-  //   "<rootDir>"
-  // ],
-
-  // Allows you to use a custom runner instead of Jest's default test runner
-  // runner: "jest-runner",
-
-  // The paths to modules that run some code to configure or set up the testing environment before each test
-  setupFiles: ["<rootDir>/src/js/mermaid/mermaid.min.js"],
-
-  // A list of paths to modules that run some code to configure or set up the testing framework before each test
-  // setupFilesAfterEnv: [],
-
-  // A list of paths to snapshot serializer modules Jest should use for snapshot testing
-  // snapshotSerializers: [],
-
-  // The test environment that will be used for testing
-  // testEnvironment: "jest-environment-jsdom",
-
-  // Options that will be passed to the testEnvironment
-  // testEnvironmentOptions: {},
-
-  // Adds a location field to test results
-  // testLocationInResults: false,
-
-  // The glob patterns Jest uses to detect test files
-  // testMatch: [
-  //   "**/__tests__/**/*.[jt]s?(x)",
-  //   "**/?(*.)+(spec|test).[tj]s?(x)"
-  // ],
-
-  // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
-  // testPathIgnorePatterns: [
-  //   "/node_modules/"
-  // ],
-
-  // The regexp pattern or array of patterns that Jest uses to detect test files
-  testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.ts$",
-
-  // This option allows the use of a custom results processor
-  // testResultsProcessor: null,
-
-  // This option allows use of a custom test runner
-  // testRunner: "jasmine2",
-
-  // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
-  // testURL: "http://localhost",
-
-  // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
-  // timers: "real",
-
-  // A map from regular expressions to paths to transformers
-  transform: {
-    "^.+\\.ts$": "ts-jest",
-  },
-
-  // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
-  // transformIgnorePatterns: [
-  //   "/node_modules/"
-  // ],
-
-  // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
-  // unmockedModulePathPatterns: undefined,
-
-  // Indicates whether each individual test should be reported during the run
-  // verbose: null,
-
-  // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
-  // watchPathIgnorePatterns: [],
-
-  // Whether to use watchman for file crawling
-  // watchman: true,
-};

+ 76 - 74
package.json

@@ -1,76 +1,78 @@
 {
-  "name": "vditor",
-  "version": "3.10.7",
-  "description": "♏ 易于使用的 Markdown 编辑器,为适配不同的应用场景而生",
-  "author": "Vanessa <[email protected]> (http://vanessa.b3log.org)",
-  "homepage": "https://b3log.org/vditor",
-  "jsdelivr": "dist/index.min.js",
-  "main": "dist/index.js",
-  "funding": "https://ld246.com/sponsor",
-  "files": [
-    "dist/*",
-    "src/index.ts",
-    "src/method.ts",
-    "src/ts/*",
-    "src/assets/*"
-  ],
-  "dependencies": {
-    "diff-match-patch": "^1.0.5"
-  },
-  "types": "dist/index.d.ts",
-  "devDependencies": {
-    "@babel/core": "^7.25.2",
-    "@babel/preset-env": "^7.14.2",
-    "@types/diff-match-patch": "^1.0.32",
-    "@types/jest": "^26.0.23",
-    "@types/node": "^17.0.19",
-    "@types/puppeteer": "^2.1.5",
-    "@typescript-eslint/eslint-plugin": "^5.12.0",
-    "@typescript-eslint/parser": "^5.12.0",
-    "autoprefixer": "^10.4.2",
-    "babel-loader": "^8.2.2",
-    "clean-webpack-plugin": "^4.0.0-alpha.0",
-    "copy-webpack-plugin": "^6.4.1",
-    "css-loader": "^5.2.4",
-    "eslint": "^8.9.0",
-    "eslint-plugin-jest": "^26.1.1",
-    "eslint-plugin-prettier": "^4.0.0",
-    "file-loader": "^6.2.0",
-    "html-webpack-plugin": "^5.3.1",
-    "identity-obj-proxy": "^3.0.0",
-    "jest": "^26.6.3",
-    "less": "^4.1.2",
-    "less-loader": "^10.2.0",
-    "mini-css-extract-plugin": "^2.6.0",
-    "postcss": "^8.4.12",
-    "postcss-loader": "^5.2.0",
-    "prettier": "^2.5.1",
-    "puppeteer": "^23.0.2",
-    "style-loader": "^1.3.0",
-    "terser-webpack-plugin": "^5.3.0",
-    "ts-jest": "^26.5.6",
-    "ts-loader": "^6.2.2",
-    "typescript": "^4.9.5",
-    "webpack": "^5.66.0",
-    "webpack-bundle-analyzer": "^4.10.2",
-    "webpack-cli": "^4.9.1",
-    "webpack-dev-server": "^4.1.0"
-  },
-  "license": "MIT",
-  "repository": "git://github.com/Vanessa219/vditor.git",
-  "bugs": {
-    "url": "https://github.com/Vanessa219/vditor/issues"
-  },
-  "scripts": {
-    "lint": "eslint --fix --ext src/**/*.ts",
-    "test:watch": "jest --watch",
-    "test": "jest --coverage",
-    "start": "webpack serve --config webpack.start.js",
-    "build": "webpack"
-  },
-  "keywords": [
-    "editor",
-    "markdown",
-    "b3log"
-  ]
+    "name": "vditor",
+    "version": "3.10.7",
+    "description": "♏ 易于使用的 Markdown 编辑器,为适配不同的应用场景而生",
+    "author": "Vanessa <[email protected]> (http://vanessa.b3log.org)",
+    "homepage": "https://b3log.org/vditor",
+    "jsdelivr": "dist/index.min.js",
+    "main": "dist/index.js",
+    "funding": "https://ld246.com/sponsor",
+    "files": [
+        "dist/*",
+        "src/index.ts",
+        "src/method.ts",
+        "src/ts/*",
+        "src/assets/*"
+    ],
+    "dependencies": {
+        "diff-match-patch": "^1.0.5"
+    },
+    "types": "dist/index.d.ts",
+    "devDependencies": {
+        "@babel/core": "^7.25.2",
+        "@babel/preset-env": "^7.14.2",
+        "@eslint/js": "9.12.0",
+        "@types/diff-match-patch": "^1.0.32",
+        "@types/jest": "^26.0.23",
+        "@types/node": "^17.0.19",
+        "@types/puppeteer": "^2.1.5",
+        "@typescript-eslint/eslint-plugin": "^8.9.0",
+        "@typescript-eslint/parser": "^8.9.0",
+        "autoprefixer": "^10.4.2",
+        "babel-loader": "^9.2.1",
+        "clean-webpack-plugin": "^4.0.0-alpha.0",
+        "copy-webpack-plugin": "^6.4.1",
+        "css-loader": "^5.2.4",
+        "eslint": "^9.12.0",
+        "eslint-plugin-jest": "^26.1.1",
+        "eslint-plugin-prettier": "^4.0.0",
+        "file-loader": "^6.2.0",
+        "html-webpack-plugin": "^5.3.1",
+        "identity-obj-proxy": "^3.0.0",
+        "jest": "^26.6.3",
+        "less": "^4.1.2",
+        "less-loader": "^10.2.0",
+        "mini-css-extract-plugin": "^2.6.0",
+        "postcss": "^8.4.12",
+        "postcss-loader": "^5.2.0",
+        "prettier": "^2.5.1",
+        "puppeteer": "^23.0.2",
+        "style-loader": "^1.3.0",
+        "terser-webpack-plugin": "^5.3.0",
+        "ts-jest": "^26.5.6",
+        "ts-loader": "^9.5.1",
+        "typescript": "^4.9.5",
+        "typescript-eslint": "^8.9.0",
+        "webpack": "^5.66.0",
+        "webpack-bundle-analyzer": "^4.10.2",
+        "webpack-cli": "^4.9.1",
+        "webpack-dev-server": "^4.1.0"
+    },
+    "license": "MIT",
+    "repository": "git://github.com/Vanessa219/vditor.git",
+    "bugs": {
+        "url": "https://github.com/Vanessa219/vditor/issues"
+    },
+    "scripts": {
+        "lint": "eslint eslint.config.mjs",
+        "test:watch": "jest --watch",
+        "test": "jest --coverage",
+        "start": "webpack serve --config webpack.start.js",
+        "build": "webpack"
+    },
+    "keywords": [
+        "editor",
+        "markdown",
+        "b3log"
+    ]
 }

文件差异内容过多而无法显示
+ 359 - 160
pnpm-lock.yaml


+ 1 - 1
src/ts/toolbar/Export.ts

@@ -1,4 +1,4 @@
-import {exportHTML, exportMarkdown, exportPDF} from "../export";
+import {exportHTML, exportMarkdown, exportPDF} from "../export/index";
 import {getEventName} from "../util/compatibility";
 import {MenuItem} from "./MenuItem";
 import {hidePanel, toggleSubMenu} from "./setToolbar";

部分文件因为文件数量过多而无法显示