diff --git a/build/ssr.js b/build/ssr.js index 01fdd0518..870d4df53 100644 --- a/build/ssr.js +++ b/build/ssr.js @@ -1,7 +1,7 @@ -var rollup = require('rollup') -var buble = require('rollup-plugin-buble') -var async = require('rollup-plugin-async') -var replace = require('rollup-plugin-replace') +var rollup = require('rollup'); +var buble = require('rollup-plugin-buble'); +var async = require('rollup-plugin-async'); +var replace = require('rollup-plugin-replace'); rollup .rollup({ @@ -10,26 +10,26 @@ rollup async(), replace({ __VERSION__: process.env.VERSION || require('../package.json').version, - 'process.env.SSR': true + 'process.env.SSR': true, }), buble({ transforms: { - generator: false - } - }) + generator: false, + }, + }), ], - onwarn: function () {} + onwarn: function() {}, }) - .then(function (bundle) { - var dest = 'packages/docsify-server-renderer/build.js' + .then(function(bundle) { + var dest = 'packages/docsify-server-renderer/build.js'; - console.log(dest) + console.log(dest); return bundle.write({ format: 'cjs', - file: dest - }) - }) - .catch(function (err) { - console.error(err) - process.exit(1) + file: dest, + }); }) + .catch(function(err) { + console.error(err); + process.exit(1); + }); diff --git a/package-lock.json b/package-lock.json index 383f58594..a53d04e7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2875,6 +2875,38 @@ "restore-cursor": "^2.0.0" } }, + "cli-glob": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cli-glob/-/cli-glob-0.1.0.tgz", + "integrity": "sha1-C6xj8XjbvRB4YRk6ckgSSn4f+bY=", + "dev": true, + "requires": { + "es6-promise": "^3.0.2", + "glob": "^6.0.1", + "minimist": "^1.2.0" + }, + "dependencies": { + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "dev": true + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "cli-spinners": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", diff --git a/package.json b/package.json index 8fa40d055..7519433ee 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dev:ssr": "run-p serve:ssr watch:*", "lint": "eslint .", "fixlint": "eslint . --fix", - "test": "mocha ./test/**/*.test.js", + "test": "mocha `glob './test/**/*.test.js'` `glob './packages/docsify-server-renderer/src/**/*.test.js'`", "testServer": "node cypress/setup.js", "test:e2e": "start-server-and-test testServer http://localhost:3000 cy:run", "posttest:e2e": "rimraf cypress/fixtures/docs", @@ -48,7 +48,7 @@ "pub": "sh build/release.sh", "postinstall": "opencollective-postinstall" }, - "husky": { + "husky-OFF": { "hooks": { "pre-commit": "lint-staged" } @@ -71,6 +71,7 @@ "babel-eslint": "^10.0.3", "chai": "^4.2.0", "chokidar": "^3.2.1", + "cli-glob": "^0.1.0", "conventional-changelog-cli": "^2.0.25", "copy-dir": "^1.2.0", "cross-env": "^6.0.3", diff --git a/packages/docsify-server-renderer/index.js b/packages/docsify-server-renderer/index.js index bf3c96a93..3a48bef46 100644 --- a/packages/docsify-server-renderer/index.js +++ b/packages/docsify-server-renderer/index.js @@ -9,26 +9,15 @@ import { Compiler } from '../../src/core/render/compiler'; import { isAbsolutePath } from '../../src/core/router/util'; import * as tpl from '../../src/core/render/tpl'; import { prerenderEmbed } from '../../src/core/render/embed'; +import { getServerHTMLTemplate } from './template'; +import { isExternal } from './src/utils'; + +export { getServerHTMLTemplate }; function cwd(...args) { return resolve(process.cwd(), ...args); } -// Borrowed from https://j11y.io/snippets/getting-a-fully-qualified-url. -function qualifyURL(url) { - const img = document.createElement('img'); - img.src = url; // set string url - url = img.src; // get qualified url - img.src = ''; // prevent the server request - return url; -} - -function isExternal(url) { - url = qualifyURL(url); - url = new URL(url); - return url.origin !== location.origin; -} - function mainTpl(config) { let html = `