added better favicons, moved from sass to glamor, moved components

and utils to src dir, and removed packages no longer being used
This commit is contained in:
JJ Kasper
2018-11-04 01:28:46 -06:00
parent b47f3917bd
commit 31321e635a
99 changed files with 3821 additions and 21818 deletions

View File

@@ -1 +1 @@
lIlrIl8Q~DS1M0c3OvDaq
MdYEkay1bViLxxtsssdFt

View File

@@ -2,47 +2,44 @@
"devFiles": [],
"pages": {
"/_app": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/css/styles.e4072c36.chunk.css",
"static/chunks/styles.0a3c172918137cfae229.js",
"static/css/static/lIlrIl8Q~DS1M0c3OvDaq/pages/_app.js.970d9d14.chunk.css",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
],
"/edit": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
],
"/index": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
],
"/k": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
],
"/new": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
],
"/settings": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
],
"/_error": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
],
"/": [
"static/runtime/webpack-fe16071eecbc94b71bd0.js",
"static/chunks/commons.be3566392b121f4c3810.js",
"static/runtime/main-90d05adf631f91fa8cca.js"
"static/runtime/webpack-d2e3d1ffeaa85b5443c6.js",
"static/chunks/commons.633cb95994571bd38b02.js",
"static/runtime/main-a0940d6708920bf8234a.js"
]
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,404 +1,410 @@
{
"mini-css-extract-plugin node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!styles/style.sass": [
{
"modules": {
"byIdentifier": {
"node_modules/css-loader/lib/css-base.js": 0,
"node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!styles/style.sass": 1,
"node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!node_modules/codemirror/lib/codemirror.css": 2,
"node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!node_modules/codemirror/theme/monokai.css": 3
},
"usedIds": {
"0": 0,
"1": 1,
"2": 2,
"3": 3
}
},
"chunks": {
"byName": {
"mini-css-extract-plugin": 0
},
"bySource": {},
"usedIds": [
0
]
}
}
],
"modules": {
"byIdentifier": {
"node_modules/react/index.js": 0,
"node_modules/@babel/runtime/regenerator/index.js": 1,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/getUrl.js": 2,
"node_modules/core-js/library/modules/_core.js": 3,
"node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js": 4,
"node_modules/prop-types/index.js": 5,
"node_modules/core-js/library/modules/_export.js": 6,
"node_modules/core-js/library/modules/_global.js": 7,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/getJwt.js": 8,
"node_modules/react-redux/es/index.js 67b03e0c128d2b1ee84267ae4ef3254d": 9,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!redux/actions/userAct.js": 10,
"node_modules/core-js/library/modules/_wks.js": 11,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/mapUser.js": 12,
"node_modules/core-js/library/modules/_is-object.js": 13,
"node_modules/glamor/lib/index.js": 1,
"node_modules/@babel/runtime/regenerator/index.js": 2,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/getUrl.js": 3,
"node_modules/core-js/library/modules/_core.js": 4,
"node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js": 5,
"node_modules/prop-types/index.js": 6,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/styles/theme.js": 7,
"node_modules/core-js/library/modules/_export.js": 8,
"node_modules/core-js/library/modules/_global.js": 9,
"node_modules/core-js/library/modules/_wks.js": 10,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/getJwt.js": 11,
"node_modules/react-redux/es/index.js 67b03e0c128d2b1ee84267ae4ef3254d": 12,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/redux/actions/userAct.js": 13,
"node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js": 14,
"node_modules/@babel/runtime-corejs2/helpers/createClass.js": 15,
"node_modules/isomorphic-unfetch/browser.js": 16,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/Page.js 8245350fae66397bf5f4212c5f0830f5": 17,
"node_modules/next/dynamic.js": 18,
"node_modules/next/router.js": 19,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/mapUser.js": 16,
"node_modules/core-js/library/modules/_is-object.js": 17,
"node_modules/isomorphic-unfetch/browser.js": 18,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/Page.js 7cd3bec4a0252faf8f91892a2f798527": 19,
"node_modules/core-js/library/modules/_object-dp.js": 20,
"node_modules/core-js/library/modules/_an-object.js": 21,
"node_modules/core-js/library/modules/_descriptors.js": 22,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/PaddedRow.js": 23,
"node_modules/core-js/library/modules/_ctx.js": 24,
"node_modules/@babel/runtime-corejs2/helpers/defineProperty.js": 25,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!redux/store.js 7cc7cd85ea10446cff073ac9df0a14ef": 26,
"node_modules/core-js/library/modules/_fails.js": 27,
"node_modules/core-js/library/modules/_hide.js": 28,
"node_modules/@babel/runtime-corejs2/helpers/objectSpread.js": 29,
"node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js": 30,
"node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js": 31,
"node_modules/@babel/runtime-corejs2/helpers/inherits.js": 32,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/updStateFromId.js": 33,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/Markdown.js 2b6f97fce7c4009b6ee9a243ff44d63a": 34,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/Spinner.js": 35,
"node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js": 36,
"node_modules/core-js/library/modules/_to-iobject.js": 37,
"node_modules/core-js/library/modules/_has.js": 38,
"node_modules/core-js/library/modules/_a-function.js": 39,
"node_modules/@babel/runtime-corejs2/helpers/typeof.js": 40,
"node_modules/next/dist/lib/utils.js": 41,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/checkDirParts.js": 42,
"node_modules/core-js/library/modules/_to-object.js": 43,
"node_modules/@babel/runtime-corejs2/core-js/promise.js": 44,
"node_modules/core-js/library/modules/es6.string.iterator.js": 45,
"node_modules/core-js/library/modules/_iterators.js": 46,
"node_modules/next/link.js": 47,
"node_modules/redux/es/redux.js": 48,
"node_modules/core-js/library/modules/_cof.js": 49,
"node_modules/core-js/library/modules/_property-desc.js": 50,
"node_modules/core-js/library/modules/_library.js": 51,
"node_modules/core-js/library/modules/_set-to-string-tag.js": 52,
"node_modules/core-js/library/modules/_object-keys.js": 53,
"node_modules/core-js/library/modules/_object-create.js": 54,
"node_modules/@babel/runtime-corejs2/core-js/object/keys.js": 55,
"node_modules/core-js/library/modules/web.dom.iterable.js": 56,
"node_modules/core-js/library/modules/_for-of.js": 57,
"node_modules/next/dist/lib/router/index.js": 58,
"node_modules/next/dist/lib/dynamic.js": 59,
"node_modules/url/url.js": 60,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/MngDoc.js": 61,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/AddDoc.js": 62,
"node_modules/core-js/library/modules/_object-pie.js": 63,
"node_modules/@babel/runtime-corejs2/core-js/object/define-property.js": 64,
"node_modules/core-js/library/modules/_uid.js": 65,
"node_modules/core-js/library/modules/_to-length.js": 66,
"node_modules/@babel/runtime-corejs2/regenerator/index.js": 67,
"node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js": 68,
"node_modules/core-js/library/modules/_classof.js": 69,
"node_modules/@babel/runtime-corejs2/core-js/set.js": 70,
"node_modules/webpack/buildin/global.js": 71,
"node_modules/@babel/runtime-corejs2/core-js/object/assign.js": 72,
"node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js": 73,
"node_modules/next/dist/lib/loadable.js": 74,
"node_modules/invariant/browser.js": 75,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/CodeMirror.js": 76,
"node_modules/core-js/library/modules/_iobject.js": 77,
"node_modules/core-js/library/modules/_defined.js": 78,
"node_modules/core-js/library/modules/_object-gopd.js": 79,
"node_modules/core-js/library/modules/_to-primitive.js": 80,
"node_modules/core-js/library/modules/_dom-create.js": 81,
"node_modules/core-js/library/modules/_object-sap.js": 82,
"node_modules/core-js/library/modules/_meta.js": 83,
"node_modules/core-js/library/modules/_shared.js": 84,
"node_modules/core-js/library/modules/_wks-ext.js": 85,
"node_modules/core-js/library/modules/_wks-define.js": 86,
"node_modules/core-js/library/modules/_to-integer.js": 87,
"node_modules/core-js/library/modules/_shared-key.js": 88,
"node_modules/core-js/library/modules/_enum-bug-keys.js": 89,
"node_modules/core-js/library/modules/_object-gops.js": 90,
"node_modules/core-js/library/modules/_is-array.js": 91,
"node_modules/core-js/library/modules/es6.object.to-string.js": 92,
"node_modules/core-js/library/modules/_iter-define.js": 93,
"node_modules/core-js/library/modules/_an-instance.js": 94,
"node_modules/core-js/library/modules/core.get-iterator-method.js": 95,
"node_modules/core-js/library/modules/_new-promise-capability.js": 96,
"node_modules/core-js/library/modules/_redefine-all.js": 97,
"node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js": 98,
"node_modules/@babel/runtime-corejs2/core-js/array/is-array.js": 99,
"node_modules/next/dist/lib/EventEmitter.js": 100,
"node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js": 101,
"node_modules/next/app.js": 102,
"node_modules/symbol-observable/es/index.js": 103,
"node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js": 104,
"node_modules/core-js/library/modules/_ie8-dom-define.js": 105,
"node_modules/core-js/library/modules/es6.symbol.js": 106,
"node_modules/core-js/library/modules/_redefine.js": 107,
"node_modules/core-js/library/modules/_object-keys-internal.js": 108,
"node_modules/core-js/library/modules/_html.js": 109,
"node_modules/core-js/library/modules/_object-gopn.js": 110,
"node_modules/regenerator-runtime/runtime-module.js": 111,
"node_modules/core-js/library/modules/_object-gpo.js": 112,
"node_modules/core-js/library/modules/_iter-step.js": 113,
"node_modules/core-js/library/modules/_iter-call.js": 114,
"node_modules/core-js/library/modules/_is-array-iter.js": 115,
"node_modules/core-js/library/modules/_species-constructor.js": 116,
"node_modules/core-js/library/modules/_task.js": 117,
"node_modules/core-js/library/modules/_invoke.js": 118,
"node_modules/core-js/library/modules/_perform.js": 119,
"node_modules/core-js/library/modules/_promise-resolve.js": 120,
"node_modules/core-js/library/modules/_set-species.js": 121,
"node_modules/core-js/library/modules/_iter-detect.js": 122,
"node_modules/object-assign/index.js": 123,
"node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js": 124,
"node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js": 125,
"node_modules/core-js/library/modules/_validate-collection.js": 126,
"node_modules/webpack/buildin/module.js": 127,
"node_modules/next/dist/lib/shallow-equals.js": 128,
"node_modules/isomorphic-unfetch/node_modules/unfetch/dist/unfetch.es.js": 129,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/keys.js": 130,
"node_modules/symbol-observable/es/ponyfill.js": 131,
"node_modules/lodash-es/_freeGlobal.js": 132,
"node_modules/react-paginate/dist/index.js": 133,
"node_modules/process/browser.js": 134,
"multi node_modules/next/dist/client/next": 135,
"node_modules/next/dist/client/next.js": 136,
"node_modules/core-js/library/fn/object/get-own-property-descriptor.js": 137,
"node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js": 138,
"node_modules/core-js/library/fn/object/define-property.js": 139,
"node_modules/core-js/library/modules/es6.object.define-property.js": 140,
"node_modules/next/dist/client/index.js": 141,
"node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js": 142,
"node_modules/core-js/library/fn/object/get-own-property-symbols.js": 143,
"node_modules/core-js/library/modules/_enum-keys.js": 144,
"node_modules/core-js/library/modules/_array-includes.js": 145,
"node_modules/core-js/library/modules/_to-absolute-index.js": 146,
"node_modules/core-js/library/modules/_object-dps.js": 147,
"node_modules/core-js/library/modules/_object-gopn-ext.js": 148,
"node_modules/core-js/library/fn/object/keys.js": 149,
"node_modules/core-js/library/modules/es6.object.keys.js": 150,
"node_modules/regenerator-runtime/runtime.js": 151,
"node_modules/core-js/library/fn/promise.js": 152,
"node_modules/core-js/library/modules/_string-at.js": 153,
"node_modules/core-js/library/modules/_iter-create.js": 154,
"node_modules/core-js/library/modules/es6.array.iterator.js": 155,
"node_modules/core-js/library/modules/_add-to-unscopables.js": 156,
"node_modules/core-js/library/modules/es6.promise.js": 157,
"node_modules/core-js/library/modules/_microtask.js": 158,
"node_modules/core-js/library/modules/_user-agent.js": 159,
"node_modules/core-js/library/modules/es7.promise.finally.js": 160,
"node_modules/core-js/library/modules/es7.promise.try.js": 161,
"node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js": 162,
"node_modules/core-js/library/fn/array/is-array.js": 163,
"node_modules/core-js/library/modules/es6.array.is-array.js": 164,
"node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js": 165,
"node_modules/@babel/runtime-corejs2/core-js/get-iterator.js": 166,
"node_modules/core-js/library/fn/get-iterator.js": 167,
"node_modules/core-js/library/modules/core.get-iterator.js": 168,
"node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js": 169,
"node_modules/react/cjs/react.production.min.js": 170,
"node_modules/react-dom/index.js": 171,
"node_modules/react-dom/cjs/react-dom.production.min.js": 172,
"node_modules/schedule/index.js": 173,
"node_modules/schedule/cjs/schedule.production.min.js": 174,
"node_modules/next/dist/client/head-manager.js": 175,
"node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js": 176,
"node_modules/core-js/library/fn/symbol/iterator.js": 177,
"node_modules/@babel/runtime-corejs2/core-js/symbol.js": 178,
"node_modules/core-js/library/fn/symbol/index.js": 179,
"node_modules/core-js/library/modules/es7.symbol.async-iterator.js": 180,
"node_modules/core-js/library/modules/es7.symbol.observable.js": 181,
"node_modules/@babel/runtime-corejs2/helpers/construct.js": 182,
"node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js": 183,
"node_modules/core-js/library/fn/reflect/construct.js": 184,
"node_modules/core-js/library/modules/es6.reflect.construct.js": 185,
"node_modules/core-js/library/modules/_bind.js": 186,
"node_modules/core-js/library/fn/object/set-prototype-of.js": 187,
"node_modules/core-js/library/modules/es6.object.set-prototype-of.js": 188,
"node_modules/core-js/library/modules/_set-proto.js": 189,
"node_modules/next/dist/lib/router/router.js": 190,
"node_modules/core-js/library/fn/set.js": 191,
"node_modules/core-js/library/modules/es6.set.js": 192,
"node_modules/core-js/library/modules/_collection-strong.js": 193,
"node_modules/core-js/library/modules/_collection.js": 194,
"node_modules/core-js/library/modules/_array-methods.js": 195,
"node_modules/core-js/library/modules/_array-species-create.js": 196,
"node_modules/core-js/library/modules/_array-species-constructor.js": 197,
"node_modules/core-js/library/modules/es7.set.to-json.js": 198,
"node_modules/core-js/library/modules/_collection-to-json.js": 199,
"node_modules/core-js/library/modules/_array-from-iterable.js": 200,
"node_modules/core-js/library/modules/es7.set.of.js": 201,
"node_modules/core-js/library/modules/_set-collection-of.js": 202,
"node_modules/core-js/library/modules/es7.set.from.js": 203,
"node_modules/core-js/library/modules/_set-collection-from.js": 204,
"node_modules/punycode/punycode.js": 205,
"node_modules/url/util.js": 206,
"node_modules/querystring-es3/index.js": 207,
"node_modules/querystring-es3/decode.js": 208,
"node_modules/querystring-es3/encode.js": 209,
"node_modules/next/dist/lib/p-queue.js": 210,
"node_modules/core-js/library/fn/object/assign.js": 211,
"node_modules/core-js/library/modules/es6.object.assign.js": 212,
"node_modules/core-js/library/modules/_object-assign.js": 213,
"node_modules/next/dist/lib/router/with-router.js": 214,
"node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js": 215,
"node_modules/core-js/library/fn/object/get-prototype-of.js": 216,
"node_modules/core-js/library/modules/es6.object.get-prototype-of.js": 217,
"node_modules/@babel/runtime-corejs2/core-js/object/create.js": 218,
"node_modules/core-js/library/fn/object/create.js": 219,
"node_modules/core-js/library/modules/es6.object.create.js": 220,
"node_modules/prop-types/factoryWithThrowingShims.js": 221,
"node_modules/prop-types/lib/ReactPropTypesSecret.js": 222,
"node_modules/next/dist/lib/page-loader.js": 223,
"node_modules/next/dist/lib/asset.js": 224,
"node_modules/next/dist/lib/runtime-config.js": 225,
"node_modules/next/dist/client/error-boundary.js": 226,
"multi ./pages/_app.js": 227,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/_app.js": 228,
"node_modules/next/dist/lib/app.js": 229,
"node_modules/@babel/runtime-corejs2/helpers/extends.js": 230,
"node_modules/url-join/lib/url-join.js": 231,
"node_modules/webpack/buildin/harmony-module.js": 232,
"node_modules/mini-css-extract-plugin/dist/loader.js!node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!styles/style.sass": 233,
"css node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!node_modules/codemirror/lib/codemirror.css 0": 234,
"css node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!node_modules/codemirror/theme/monokai.css 0": 235,
"css node_modules/css-loader/index.js??ref--6-1!node_modules/sass-loader/lib/loader.js??ref--6-2!styles/style.sass 0": 236,
"multi ./pages/edit.js": 237,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/edit.js": 238,
"node_modules/next/dist/lib/link.js": 239,
"node_modules/@babel/runtime-corejs2/core-js/json/stringify.js": 240,
"node_modules/core-js/library/fn/json/stringify.js": 241,
"multi ./pages/index.js": 242,
"node_modules/react-paginate/dist/PaginationBoxView.js": 243,
"node_modules/react-paginate/dist/PageView.js": 244,
"node_modules/react-paginate/dist/BreakView.js": 245,
"multi ./pages/k.js": 246,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/k.js": 247,
"multi ./pages/new.js": 248,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/new.js": 249,
"multi ./pages/settings.js": 250,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/settings.js": 251,
"multi node_modules/next/dist/pages/_error.js": 252,
"node_modules/next/dist/pages/_error.js": 253,
"node_modules/next/error.js": 254,
"node_modules/next/dist/lib/error.js": 255,
"node_modules/http-status/lib/index.js": 256,
"node_modules/next/dist/lib/head.js": 257,
"node_modules/next/dist/lib/side-effect.js": 258,
"node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js": 259,
"node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js": 260,
"node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js": 261,
"node_modules/@babel/runtime-corejs2/core-js/array/from.js": 262,
"node_modules/core-js/library/fn/array/from.js": 263,
"node_modules/core-js/library/modules/es6.array.from.js": 264,
"node_modules/core-js/library/modules/_create-property.js": 265,
"node_modules/@babel/runtime-corejs2/core-js/is-iterable.js": 266,
"node_modules/core-js/library/fn/is-iterable.js": 267,
"node_modules/core-js/library/modules/core.is-iterable.js": 268,
"node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js": 269,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/index.js 02f73884633e8b54d3220884b54a8b51": 270,
"node_modules/is-whitespace-character/index.js": 271,
"node_modules/xtend/immutable.js": 272,
"node_modules/trim/index.js": 273,
"node_modules/codemirror/lib/codemirror.js": 274,
"node_modules/is-decimal/index.js": 275,
"node_modules/unist-util-visit/index.js": 276,
"node_modules/parse-entities/index.js": 277,
"node_modules/repeat-string/index.js": 278,
"node_modules/trim-trailing-lines/index.js": 279,
"node_modules/remark-parse/lib/util/interrupt.js": 280,
"node_modules/remark-parse/lib/util/normalize.js": 281,
"node_modules/path-browserify/index.js": 282,
"node_modules/is-alphabetical/index.js": 283,
"node_modules/remark-parse/lib/defaults.js": 284,
"node_modules/remark-parse/lib/util/get-indentation.js": 285,
"node_modules/remark-parse/lib/util/html.js": 286,
"node_modules/remark-parse/lib/locate/tag.js": 287,
"node_modules/remark-parse/lib/locate/link.js": 288,
"node_modules/codemirror/mode/markdown/markdown.js": 289,
"node_modules/codemirror/mode/xml/xml.js": 290,
"node_modules/codemirror/mode/meta.js": 291,
"node_modules/unified/index.js": 292,
"node_modules/extend/index.js": 293,
"node_modules/bail/index.js": 294,
"node_modules/vfile/index.js": 295,
"node_modules/vfile-message/index.js": 296,
"node_modules/unist-util-stringify-position/index.js": 297,
"node_modules/vfile/core.js": 298,
"node_modules/replace-ext/index.js": 299,
"node_modules/is-buffer/index.js": 300,
"node_modules/trough/index.js": 301,
"node_modules/trough/wrap.js": 302,
"node_modules/x-is-string/index.js": 303,
"node_modules/is-plain-obj/index.js": 304,
"node_modules/remark-parse/index.js": 305,
"node_modules/unherit/index.js": 306,
"node_modules/inherits/inherits_browser.js": 307,
"node_modules/remark-parse/lib/parser.js": 308,
"node_modules/state-toggle/index.js": 309,
"node_modules/vfile-location/index.js": 310,
"node_modules/remark-parse/lib/unescape.js": 311,
"node_modules/remark-parse/lib/decode.js": 312,
"node_modules/character-entities/index.json": 313,
"node_modules/character-entities-legacy/index.json": 314,
"node_modules/character-reference-invalid/index.json": 315,
"node_modules/is-hexadecimal/index.js": 316,
"node_modules/is-alphanumerical/index.js": 317,
"node_modules/remark-parse/lib/tokenizer.js": 318,
"node_modules/remark-parse/lib/set-options.js": 319,
"node_modules/markdown-escapes/index.js": 320,
"node_modules/remark-parse/lib/block-elements.json": 321,
"node_modules/remark-parse/lib/parse.js": 322,
"node_modules/unist-util-remove-position/index.js": 323,
"node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js": 324,
"node_modules/unist-util-is/index.js": 325,
"node_modules/remark-parse/lib/tokenize/newline.js": 326,
"node_modules/remark-parse/lib/tokenize/code-indented.js": 327,
"node_modules/remark-parse/lib/tokenize/code-fenced.js": 328,
"node_modules/remark-parse/lib/tokenize/blockquote.js": 329,
"node_modules/remark-parse/lib/tokenize/heading-atx.js": 330,
"node_modules/remark-parse/lib/tokenize/thematic-break.js": 331,
"node_modules/remark-parse/lib/tokenize/list.js": 332,
"node_modules/remark-parse/lib/util/remove-indentation.js": 333,
"node_modules/remark-parse/lib/tokenize/heading-setext.js": 334,
"node_modules/remark-parse/lib/tokenize/html-block.js": 335,
"node_modules/remark-parse/lib/tokenize/footnote-definition.js": 336,
"node_modules/collapse-white-space/index.js": 337,
"node_modules/remark-parse/lib/tokenize/definition.js": 338,
"node_modules/remark-parse/lib/tokenize/table.js": 339,
"node_modules/remark-parse/lib/tokenize/paragraph.js": 340,
"node_modules/remark-parse/lib/tokenize/escape.js": 341,
"node_modules/remark-parse/lib/locate/escape.js": 342,
"node_modules/remark-parse/lib/tokenize/auto-link.js": 343,
"node_modules/remark-parse/lib/tokenize/url.js": 344,
"node_modules/remark-parse/lib/locate/url.js": 345,
"node_modules/remark-parse/lib/tokenize/html-inline.js": 346,
"node_modules/remark-parse/lib/tokenize/link.js": 347,
"node_modules/remark-parse/lib/tokenize/reference.js": 348,
"node_modules/remark-parse/lib/tokenize/strong.js": 349,
"node_modules/remark-parse/lib/locate/strong.js": 350,
"node_modules/remark-parse/lib/tokenize/emphasis.js": 351,
"node_modules/is-word-character/index.js": 352,
"node_modules/remark-parse/lib/locate/emphasis.js": 353,
"node_modules/remark-parse/lib/tokenize/delete.js": 354,
"node_modules/remark-parse/lib/locate/delete.js": 355,
"node_modules/remark-parse/lib/tokenize/code-inline.js": 356,
"node_modules/remark-parse/lib/locate/code-inline.js": 357,
"node_modules/remark-parse/lib/tokenize/break.js": 358,
"node_modules/remark-parse/lib/locate/break.js": 359,
"node_modules/remark-parse/lib/tokenize/text.js": 360,
"node_modules/mdast-add-list-metadata/index.js": 361,
"node_modules/unist-util-visit-parents/index.js": 362,
"node_modules/react-markdown/lib/plugins/naive-html.js": 363,
"node_modules/react-markdown/lib/plugins/disallow-node.js": 364,
"node_modules/react-markdown/lib/ast-to-react.js": 365,
"node_modules/react-markdown/lib/wrap-table-rows.js": 366,
"node_modules/react-markdown/lib/get-definitions.js": 367,
"node_modules/react-markdown/lib/uriTransformer.js": 368,
"node_modules/react-markdown/lib/renderers.js": 369,
"node_modules/react-markdown/lib/react-markdown.js": 370
"node_modules/next/dynamic.js": 21,
"node_modules/next/router.js": 22,
"node_modules/core-js/library/modules/_an-object.js": 23,
"node_modules/@babel/runtime-corejs2/helpers/defineProperty.js": 24,
"node_modules/core-js/library/modules/_descriptors.js": 25,
"node_modules/core-js/library/modules/_ctx.js": 26,
"node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js": 27,
"node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js": 28,
"node_modules/@babel/runtime-corejs2/helpers/inherits.js": 29,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/PaddedRow.js": 30,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/redux/store.js 4e1280ed09dd33013b4dfa4dd70e85b4": 31,
"node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js": 32,
"node_modules/core-js/library/modules/_fails.js": 33,
"node_modules/core-js/library/modules/_hide.js": 34,
"node_modules/@babel/runtime-corejs2/helpers/objectSpread.js": 35,
"node_modules/core-js/library/modules/es6.string.iterator.js": 36,
"node_modules/next/dist/lib/utils.js": 37,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/updStateFromId.js": 38,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/Markdown.js d5b5492a768bba52c33c5b22a90aa8a1": 39,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/Spinner.js": 40,
"node_modules/core-js/library/modules/_to-iobject.js": 41,
"node_modules/core-js/library/modules/_has.js": 42,
"node_modules/core-js/library/modules/_a-function.js": 43,
"node_modules/core-js/library/modules/_to-object.js": 44,
"node_modules/core-js/library/modules/_iterators.js": 45,
"node_modules/@babel/runtime-corejs2/helpers/typeof.js": 46,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/checkDirParts.js": 47,
"node_modules/core-js/library/modules/_property-desc.js": 48,
"node_modules/@babel/runtime-corejs2/core-js/promise.js": 49,
"node_modules/core-js/library/modules/web.dom.iterable.js": 50,
"node_modules/@babel/runtime-corejs2/core-js/set.js": 51,
"node_modules/next/link.js": 52,
"node_modules/redux/es/redux.js": 53,
"node_modules/core-js/library/modules/_cof.js": 54,
"node_modules/core-js/library/modules/_library.js": 55,
"node_modules/core-js/library/modules/_set-to-string-tag.js": 56,
"node_modules/core-js/library/modules/_object-keys.js": 57,
"node_modules/core-js/library/modules/_to-length.js": 58,
"node_modules/core-js/library/modules/_object-create.js": 59,
"node_modules/@babel/runtime-corejs2/core-js/object/keys.js": 60,
"node_modules/core-js/library/modules/_classof.js": 61,
"node_modules/core-js/library/modules/_for-of.js": 62,
"node_modules/object-assign/index.js": 63,
"node_modules/next/dist/lib/router/index.js": 64,
"node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js": 65,
"node_modules/css-in-js-utils/lib/isPrefixedValue.js": 66,
"node_modules/next/dist/lib/dynamic.js": 67,
"node_modules/url/url.js": 68,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/AddDoc.js": 69,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/MngDoc.js cfa406d5564443825298c8c4c761c7c2": 70,
"node_modules/core-js/library/modules/_object-pie.js": 71,
"node_modules/@babel/runtime-corejs2/core-js/object/define-property.js": 72,
"node_modules/core-js/library/modules/_uid.js": 73,
"node_modules/@babel/runtime-corejs2/regenerator/index.js": 74,
"node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js": 75,
"node_modules/core-js/library/modules/core.get-iterator-method.js": 76,
"node_modules/@babel/runtime-corejs2/core-js/array/is-array.js": 77,
"node_modules/@babel/runtime-corejs2/core-js/object/assign.js": 78,
"node_modules/next/dist/lib/loadable.js": 79,
"node_modules/invariant/browser.js": 80,
"node_modules/core-js/library/modules/_iobject.js": 81,
"node_modules/core-js/library/modules/_defined.js": 82,
"node_modules/core-js/library/modules/_object-gopd.js": 83,
"node_modules/core-js/library/modules/_to-primitive.js": 84,
"node_modules/core-js/library/modules/_dom-create.js": 85,
"node_modules/core-js/library/modules/_object-sap.js": 86,
"node_modules/core-js/library/modules/_meta.js": 87,
"node_modules/core-js/library/modules/_shared.js": 88,
"node_modules/core-js/library/modules/_wks-ext.js": 89,
"node_modules/core-js/library/modules/_wks-define.js": 90,
"node_modules/core-js/library/modules/_to-integer.js": 91,
"node_modules/core-js/library/modules/_shared-key.js": 92,
"node_modules/core-js/library/modules/_enum-bug-keys.js": 93,
"node_modules/core-js/library/modules/_object-gops.js": 94,
"node_modules/core-js/library/modules/_is-array.js": 95,
"node_modules/core-js/library/modules/es6.object.to-string.js": 96,
"node_modules/core-js/library/modules/_iter-define.js": 97,
"node_modules/core-js/library/modules/_an-instance.js": 98,
"node_modules/core-js/library/modules/_iter-call.js": 99,
"node_modules/core-js/library/modules/_is-array-iter.js": 100,
"node_modules/core-js/library/modules/_new-promise-capability.js": 101,
"node_modules/core-js/library/modules/_redefine-all.js": 102,
"node_modules/core-js/library/modules/_iter-detect.js": 103,
"node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js": 104,
"node_modules/webpack/buildin/global.js": 105,
"node_modules/next/dist/lib/EventEmitter.js": 106,
"node_modules/next/dist/lib/head.js": 107,
"node_modules/next/dist/lib/side-effect.js": 108,
"node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js": 109,
"node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js": 110,
"node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js": 111,
"node_modules/@babel/runtime-corejs2/core-js/array/from.js": 112,
"node_modules/core-js/library/fn/array/from.js": 113,
"node_modules/core-js/library/modules/es6.array.from.js": 114,
"node_modules/core-js/library/modules/_create-property.js": 115,
"node_modules/@babel/runtime-corejs2/core-js/is-iterable.js": 116,
"node_modules/core-js/library/fn/is-iterable.js": 117,
"node_modules/core-js/library/modules/core.is-iterable.js": 118,
"node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js": 119,
"node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js": 120,
"node_modules/symbol-observable/es/index.js": 121,
"node_modules/next/app.js": 122,
"node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js": 123,
"node_modules/core-js/library/modules/_ie8-dom-define.js": 124,
"node_modules/core-js/library/modules/es6.symbol.js": 125,
"node_modules/core-js/library/modules/_redefine.js": 126,
"node_modules/core-js/library/modules/_object-keys-internal.js": 127,
"node_modules/core-js/library/modules/_html.js": 128,
"node_modules/core-js/library/modules/_object-gopn.js": 129,
"node_modules/regenerator-runtime/runtime-module.js": 130,
"node_modules/core-js/library/modules/_object-gpo.js": 131,
"node_modules/core-js/library/modules/_iter-step.js": 132,
"node_modules/core-js/library/modules/_species-constructor.js": 133,
"node_modules/core-js/library/modules/_task.js": 134,
"node_modules/core-js/library/modules/_invoke.js": 135,
"node_modules/core-js/library/modules/_perform.js": 136,
"node_modules/core-js/library/modules/_promise-resolve.js": 137,
"node_modules/core-js/library/modules/_set-species.js": 138,
"node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js": 139,
"node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js": 140,
"node_modules/core-js/library/modules/_validate-collection.js": 141,
"node_modules/webpack/buildin/module.js": 142,
"node_modules/next/dist/lib/shallow-equals.js": 143,
"node_modules/glamor/lib/CSSPropertyOperations/index.js": 144,
"node_modules/fbjs/lib/warning.js": 145,
"node_modules/inline-style-prefixer/utils/capitalizeString.js": 146,
"node_modules/isomorphic-unfetch/node_modules/unfetch/dist/unfetch.es.js": 147,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/keys.js": 148,
"node_modules/next/head.js": 149,
"node_modules/symbol-observable/es/ponyfill.js": 150,
"node_modules/lodash-es/_freeGlobal.js": 151,
"node_modules/react-paginate/dist/index.js": 152,
"node_modules/process/browser.js": 153,
"multi node_modules/next/dist/client/next": 154,
"node_modules/next/dist/client/next.js": 155,
"node_modules/core-js/library/fn/object/get-own-property-descriptor.js": 156,
"node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js": 157,
"node_modules/core-js/library/fn/object/define-property.js": 158,
"node_modules/core-js/library/modules/es6.object.define-property.js": 159,
"node_modules/next/dist/client/index.js": 160,
"node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js": 161,
"node_modules/core-js/library/fn/object/get-own-property-symbols.js": 162,
"node_modules/core-js/library/modules/_enum-keys.js": 163,
"node_modules/core-js/library/modules/_array-includes.js": 164,
"node_modules/core-js/library/modules/_to-absolute-index.js": 165,
"node_modules/core-js/library/modules/_object-dps.js": 166,
"node_modules/core-js/library/modules/_object-gopn-ext.js": 167,
"node_modules/core-js/library/fn/object/keys.js": 168,
"node_modules/core-js/library/modules/es6.object.keys.js": 169,
"node_modules/regenerator-runtime/runtime.js": 170,
"node_modules/core-js/library/fn/promise.js": 171,
"node_modules/core-js/library/modules/_string-at.js": 172,
"node_modules/core-js/library/modules/_iter-create.js": 173,
"node_modules/core-js/library/modules/es6.array.iterator.js": 174,
"node_modules/core-js/library/modules/_add-to-unscopables.js": 175,
"node_modules/core-js/library/modules/es6.promise.js": 176,
"node_modules/core-js/library/modules/_microtask.js": 177,
"node_modules/core-js/library/modules/_user-agent.js": 178,
"node_modules/core-js/library/modules/es7.promise.finally.js": 179,
"node_modules/core-js/library/modules/es7.promise.try.js": 180,
"node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js": 181,
"node_modules/core-js/library/fn/array/is-array.js": 182,
"node_modules/core-js/library/modules/es6.array.is-array.js": 183,
"node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js": 184,
"node_modules/@babel/runtime-corejs2/core-js/get-iterator.js": 185,
"node_modules/core-js/library/fn/get-iterator.js": 186,
"node_modules/core-js/library/modules/core.get-iterator.js": 187,
"node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js": 188,
"node_modules/react/cjs/react.production.min.js": 189,
"node_modules/react-dom/index.js": 190,
"node_modules/react-dom/cjs/react-dom.production.min.js": 191,
"node_modules/schedule/index.js": 192,
"node_modules/schedule/cjs/schedule.production.min.js": 193,
"node_modules/next/dist/client/head-manager.js": 194,
"node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js": 195,
"node_modules/core-js/library/fn/symbol/iterator.js": 196,
"node_modules/@babel/runtime-corejs2/core-js/symbol.js": 197,
"node_modules/core-js/library/fn/symbol/index.js": 198,
"node_modules/core-js/library/modules/es7.symbol.async-iterator.js": 199,
"node_modules/core-js/library/modules/es7.symbol.observable.js": 200,
"node_modules/@babel/runtime-corejs2/helpers/construct.js": 201,
"node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js": 202,
"node_modules/core-js/library/fn/reflect/construct.js": 203,
"node_modules/core-js/library/modules/es6.reflect.construct.js": 204,
"node_modules/core-js/library/modules/_bind.js": 205,
"node_modules/core-js/library/fn/object/set-prototype-of.js": 206,
"node_modules/core-js/library/modules/es6.object.set-prototype-of.js": 207,
"node_modules/core-js/library/modules/_set-proto.js": 208,
"node_modules/next/dist/lib/router/router.js": 209,
"node_modules/core-js/library/fn/set.js": 210,
"node_modules/core-js/library/modules/es6.set.js": 211,
"node_modules/core-js/library/modules/_collection-strong.js": 212,
"node_modules/core-js/library/modules/_collection.js": 213,
"node_modules/core-js/library/modules/_array-methods.js": 214,
"node_modules/core-js/library/modules/_array-species-create.js": 215,
"node_modules/core-js/library/modules/_array-species-constructor.js": 216,
"node_modules/core-js/library/modules/es7.set.to-json.js": 217,
"node_modules/core-js/library/modules/_collection-to-json.js": 218,
"node_modules/core-js/library/modules/_array-from-iterable.js": 219,
"node_modules/core-js/library/modules/es7.set.of.js": 220,
"node_modules/core-js/library/modules/_set-collection-of.js": 221,
"node_modules/core-js/library/modules/es7.set.from.js": 222,
"node_modules/core-js/library/modules/_set-collection-from.js": 223,
"node_modules/punycode/punycode.js": 224,
"node_modules/url/util.js": 225,
"node_modules/querystring-es3/index.js": 226,
"node_modules/querystring-es3/decode.js": 227,
"node_modules/querystring-es3/encode.js": 228,
"node_modules/next/dist/lib/p-queue.js": 229,
"node_modules/core-js/library/fn/object/assign.js": 230,
"node_modules/core-js/library/modules/es6.object.assign.js": 231,
"node_modules/core-js/library/modules/_object-assign.js": 232,
"node_modules/next/dist/lib/router/with-router.js": 233,
"node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js": 234,
"node_modules/core-js/library/fn/object/get-prototype-of.js": 235,
"node_modules/core-js/library/modules/es6.object.get-prototype-of.js": 236,
"node_modules/@babel/runtime-corejs2/core-js/object/create.js": 237,
"node_modules/core-js/library/fn/object/create.js": 238,
"node_modules/core-js/library/modules/es6.object.create.js": 239,
"node_modules/prop-types/factoryWithThrowingShims.js": 240,
"node_modules/prop-types/lib/ReactPropTypesSecret.js": 241,
"node_modules/next/dist/lib/page-loader.js": 242,
"node_modules/next/dist/lib/asset.js": 243,
"node_modules/next/dist/lib/runtime-config.js": 244,
"node_modules/next/dist/client/error-boundary.js": 245,
"multi ./pages/_app.js": 246,
"node_modules/glamor/lib/sheet.js": 247,
"node_modules/fbjs/lib/camelizeStyleName.js": 248,
"node_modules/fbjs/lib/camelize.js": 249,
"node_modules/glamor/lib/CSSPropertyOperations/dangerousStyleValue.js": 250,
"node_modules/glamor/lib/CSSPropertyOperations/CSSProperty.js": 251,
"node_modules/fbjs/lib/emptyFunction.js": 252,
"node_modules/fbjs/lib/hyphenateStyleName.js": 253,
"node_modules/fbjs/lib/hyphenate.js": 254,
"node_modules/fbjs/lib/memoizeStringOnly.js": 255,
"node_modules/glamor/lib/clean.js": 256,
"node_modules/glamor/lib/plugins.js": 257,
"node_modules/glamor/lib/prefixer.js": 258,
"node_modules/inline-style-prefixer/static/staticData.js": 259,
"node_modules/inline-style-prefixer/utils/prefixProperty.js": 260,
"node_modules/inline-style-prefixer/utils/prefixValue.js": 261,
"node_modules/inline-style-prefixer/static/plugins/cursor.js": 262,
"node_modules/inline-style-prefixer/static/plugins/crossFade.js": 263,
"node_modules/inline-style-prefixer/static/plugins/filter.js": 264,
"node_modules/inline-style-prefixer/static/plugins/flex.js": 265,
"node_modules/inline-style-prefixer/static/plugins/flexboxOld.js": 266,
"node_modules/inline-style-prefixer/static/plugins/gradient.js": 267,
"node_modules/inline-style-prefixer/static/plugins/imageSet.js": 268,
"node_modules/inline-style-prefixer/static/plugins/position.js": 269,
"node_modules/inline-style-prefixer/static/plugins/sizing.js": 270,
"node_modules/inline-style-prefixer/static/plugins/transition.js": 271,
"node_modules/css-in-js-utils/lib/hyphenateProperty.js": 272,
"node_modules/hyphenate-style-name/index.js": 273,
"node_modules/glamor/lib/hash.js": 274,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/styles/milligram.js": 275,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/styles/Roboto.js": 276,
"node_modules/url-join/lib/url-join.js": 277,
"node_modules/webpack/buildin/harmony-module.js": 278,
"node_modules/next/dist/lib/app.js": 279,
"node_modules/@babel/runtime-corejs2/helpers/extends.js": 280,
"multi ./pages/edit.js": 281,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/edit.js": 282,
"node_modules/next/dist/lib/link.js": 283,
"node_modules/@babel/runtime-corejs2/core-js/json/stringify.js": 284,
"node_modules/core-js/library/fn/json/stringify.js": 285,
"multi ./pages/index.js": 286,
"node_modules/react-paginate/dist/PaginationBoxView.js": 287,
"node_modules/react-paginate/dist/PageView.js": 288,
"node_modules/react-paginate/dist/BreakView.js": 289,
"multi ./pages/k.js": 290,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/k.js": 291,
"multi ./pages/new.js": 292,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/new.js": 293,
"multi ./pages/settings.js": 294,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/settings.js": 295,
"multi node_modules/next/dist/pages/_error.js": 296,
"node_modules/next/dist/pages/_error.js": 297,
"node_modules/next/error.js": 298,
"node_modules/next/dist/lib/error.js": 299,
"node_modules/http-status/lib/index.js": 300,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/index.js 63f90c0b7addefbc51a5877f453fdcbd": 301,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/_app.js 1362119e6d3d895366421ac2b14cb639": 302,
"node_modules/is-whitespace-character/index.js": 303,
"node_modules/xtend/immutable.js": 304,
"node_modules/trim/index.js": 305,
"node_modules/codemirror/lib/codemirror.js": 306,
"node_modules/is-decimal/index.js": 307,
"node_modules/unist-util-visit/index.js": 308,
"node_modules/parse-entities/index.js": 309,
"node_modules/repeat-string/index.js": 310,
"node_modules/trim-trailing-lines/index.js": 311,
"node_modules/remark-parse/lib/util/interrupt.js": 312,
"node_modules/remark-parse/lib/util/normalize.js": 313,
"node_modules/path-browserify/index.js": 314,
"node_modules/is-alphabetical/index.js": 315,
"node_modules/remark-parse/lib/defaults.js": 316,
"node_modules/remark-parse/lib/util/get-indentation.js": 317,
"node_modules/remark-parse/lib/util/html.js": 318,
"node_modules/remark-parse/lib/locate/tag.js": 319,
"node_modules/remark-parse/lib/locate/link.js": 320,
"node_modules/codemirror/mode/markdown/markdown.js": 321,
"node_modules/codemirror/mode/xml/xml.js": 322,
"node_modules/codemirror/mode/meta.js": 323,
"node_modules/unified/index.js": 324,
"node_modules/extend/index.js": 325,
"node_modules/bail/index.js": 326,
"node_modules/vfile/index.js": 327,
"node_modules/vfile-message/index.js": 328,
"node_modules/unist-util-stringify-position/index.js": 329,
"node_modules/vfile/core.js": 330,
"node_modules/replace-ext/index.js": 331,
"node_modules/is-buffer/index.js": 332,
"node_modules/trough/index.js": 333,
"node_modules/trough/wrap.js": 334,
"node_modules/x-is-string/index.js": 335,
"node_modules/is-plain-obj/index.js": 336,
"node_modules/remark-parse/index.js": 337,
"node_modules/unherit/index.js": 338,
"node_modules/inherits/inherits_browser.js": 339,
"node_modules/remark-parse/lib/parser.js": 340,
"node_modules/state-toggle/index.js": 341,
"node_modules/vfile-location/index.js": 342,
"node_modules/remark-parse/lib/unescape.js": 343,
"node_modules/remark-parse/lib/decode.js": 344,
"node_modules/character-entities/index.json": 345,
"node_modules/character-entities-legacy/index.json": 346,
"node_modules/character-reference-invalid/index.json": 347,
"node_modules/is-hexadecimal/index.js": 348,
"node_modules/is-alphanumerical/index.js": 349,
"node_modules/remark-parse/lib/tokenizer.js": 350,
"node_modules/remark-parse/lib/set-options.js": 351,
"node_modules/markdown-escapes/index.js": 352,
"node_modules/remark-parse/lib/block-elements.json": 353,
"node_modules/remark-parse/lib/parse.js": 354,
"node_modules/unist-util-remove-position/index.js": 355,
"node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js": 356,
"node_modules/unist-util-is/index.js": 357,
"node_modules/remark-parse/lib/tokenize/newline.js": 358,
"node_modules/remark-parse/lib/tokenize/code-indented.js": 359,
"node_modules/remark-parse/lib/tokenize/code-fenced.js": 360,
"node_modules/remark-parse/lib/tokenize/blockquote.js": 361,
"node_modules/remark-parse/lib/tokenize/heading-atx.js": 362,
"node_modules/remark-parse/lib/tokenize/thematic-break.js": 363,
"node_modules/remark-parse/lib/tokenize/list.js": 364,
"node_modules/remark-parse/lib/util/remove-indentation.js": 365,
"node_modules/remark-parse/lib/tokenize/heading-setext.js": 366,
"node_modules/remark-parse/lib/tokenize/html-block.js": 367,
"node_modules/remark-parse/lib/tokenize/footnote-definition.js": 368,
"node_modules/collapse-white-space/index.js": 369,
"node_modules/remark-parse/lib/tokenize/definition.js": 370,
"node_modules/remark-parse/lib/tokenize/table.js": 371,
"node_modules/remark-parse/lib/tokenize/paragraph.js": 372,
"node_modules/remark-parse/lib/tokenize/escape.js": 373,
"node_modules/remark-parse/lib/locate/escape.js": 374,
"node_modules/remark-parse/lib/tokenize/auto-link.js": 375,
"node_modules/remark-parse/lib/tokenize/url.js": 376,
"node_modules/remark-parse/lib/locate/url.js": 377,
"node_modules/remark-parse/lib/tokenize/html-inline.js": 378,
"node_modules/remark-parse/lib/tokenize/link.js": 379,
"node_modules/remark-parse/lib/tokenize/reference.js": 380,
"node_modules/remark-parse/lib/tokenize/strong.js": 381,
"node_modules/remark-parse/lib/locate/strong.js": 382,
"node_modules/remark-parse/lib/tokenize/emphasis.js": 383,
"node_modules/is-word-character/index.js": 384,
"node_modules/remark-parse/lib/locate/emphasis.js": 385,
"node_modules/remark-parse/lib/tokenize/delete.js": 386,
"node_modules/remark-parse/lib/locate/delete.js": 387,
"node_modules/remark-parse/lib/tokenize/code-inline.js": 388,
"node_modules/remark-parse/lib/locate/code-inline.js": 389,
"node_modules/remark-parse/lib/tokenize/break.js": 390,
"node_modules/remark-parse/lib/locate/break.js": 391,
"node_modules/remark-parse/lib/tokenize/text.js": 392,
"node_modules/mdast-add-list-metadata/index.js": 393,
"node_modules/unist-util-visit-parents/index.js": 394,
"node_modules/react-markdown/lib/plugins/naive-html.js": 395,
"node_modules/react-markdown/lib/plugins/disallow-node.js": 396,
"node_modules/react-markdown/lib/ast-to-react.js": 397,
"node_modules/react-markdown/lib/wrap-table-rows.js": 398,
"node_modules/react-markdown/lib/get-definitions.js": 399,
"node_modules/react-markdown/lib/uriTransformer.js": 400,
"node_modules/react-markdown/lib/renderers.js": 401,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/CodeMirror.js": 402,
"node_modules/react-markdown/lib/react-markdown.js": 403
},
"usedIds": {
"0": 0,
@@ -771,7 +777,40 @@
"367": 367,
"368": 368,
"369": 369,
"370": 370
"370": 370,
"371": 371,
"372": 372,
"373": 373,
"374": 374,
"375": 375,
"376": 376,
"377": 377,
"378": 378,
"379": 379,
"380": 380,
"381": 381,
"382": 382,
"383": 383,
"384": 384,
"385": 385,
"386": 386,
"387": 387,
"388": 388,
"389": 389,
"390": 390,
"391": 391,
"392": 392,
"393": 393,
"394": 394,
"395": 395,
"396": 396,
"397": 397,
"398": 398,
"399": 399,
"400": 400,
"401": 401,
"402": 402,
"403": 403
}
},
"chunks": {
@@ -779,25 +818,23 @@
"commons": 0,
"static/runtime/webpack.js": 1,
"static/runtime/main.js": 2,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_app.js": 3,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/edit.js": 4,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/index.js": 5,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/k.js": 6,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/new.js": 7,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/settings.js": 8,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_error.js": 9,
"styles": 12
"static/MdYEkay1bViLxxtsssdFt/pages/_app.js": 3,
"static/MdYEkay1bViLxxtsssdFt/pages/edit.js": 4,
"static/MdYEkay1bViLxxtsssdFt/pages/index.js": 5,
"static/MdYEkay1bViLxxtsssdFt/pages/k.js": 6,
"static/MdYEkay1bViLxxtsssdFt/pages/new.js": 7,
"static/MdYEkay1bViLxxtsssdFt/pages/settings.js": 8,
"static/MdYEkay1bViLxxtsssdFt/pages/_error.js": 9
},
"bySource": {
"0 node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/MngDoc.js ../comps/CodeMirror": 10,
"0 node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/Markdown.js react-markdown": 11
"0 node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/MngDoc.js ../components/CodeMirror": 10,
"0 node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/Markdown.js react-markdown": 11
},
"usedIds": [
0,
1,
10,
11,
12,
2,
3,
4,

View File

@@ -1 +1 @@
{"/_app":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_app.js","/_document":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_document.js","/edit":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/edit.js","/index":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/index.js","/k":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/k.js","/new":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/new.js","/settings":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/settings.js","/_error":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_error.js","/":"static/lIlrIl8Q~DS1M0c3OvDaq/pages/index.js"}
{"/_app":"static/MdYEkay1bViLxxtsssdFt/pages/_app.js","/_document":"static/MdYEkay1bViLxxtsssdFt/pages/_document.js","/edit":"static/MdYEkay1bViLxxtsssdFt/pages/edit.js","/index":"static/MdYEkay1bViLxxtsssdFt/pages/index.js","/k":"static/MdYEkay1bViLxxtsssdFt/pages/k.js","/new":"static/MdYEkay1bViLxxtsssdFt/pages/new.js","/settings":"static/MdYEkay1bViLxxtsssdFt/pages/settings.js","/_error":"static/MdYEkay1bViLxxtsssdFt/pages/_error.js","/":"static/MdYEkay1bViLxxtsssdFt/pages/index.js"}

View File

@@ -2,54 +2,59 @@
"modules": {
"byIdentifier": {
"external \"react\"": 0,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/getUrl.js": 1,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!redux/actions/userAct.js": 2,
"external \"@babel/runtime/regenerator\"": 3,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!redux/store.js 7cc7cd85ea10446cff073ac9df0a14ef": 4,
"external \"react-redux\"": 5,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/mapUser.js": 6,
"external \"isomorphic-unfetch\"": 7,
"external \"next/router\"": 8,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/PaddedRow.js": 9,
"external \"redux\"": 10,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/Spinner.js": 11,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/keys.js": 12,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/getJwt.js": 13,
"external \"next/link\"": 14,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/Page.js 8245350fae66397bf5f4212c5f0830f5": 15,
"external \"url\"": 16,
"external \"url-join\"": 17,
"external \"next/dynamic\"": 18,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/updStateFromId.js": 19,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/Markdown.js 2b6f97fce7c4009b6ee9a243ff44d63a": 20,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!util/checkDirParts.js": 21,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/CodeMirror.js": 22,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/MngDoc.js": 23,
"external \"codemirror\"": 24,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!comps/AddDoc.js": 25,
"external \"react-markdown\"": 26,
"external \"next/document\"": 27,
"external \"codemirror/mode/markdown/markdown\"": 28,
"external \"next/app\"": 29,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/getUrl.js": 1,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/redux/actions/userAct.js": 2,
"external \"glamor\"": 3,
"external \"@babel/runtime/regenerator\"": 4,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/styles/theme.js": 5,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/redux/store.js 4e1280ed09dd33013b4dfa4dd70e85b4": 6,
"external \"react-redux\"": 7,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/mapUser.js": 8,
"external \"isomorphic-unfetch\"": 9,
"external \"next/router\"": 10,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/PaddedRow.js": 11,
"external \"redux\"": 12,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/Spinner.js": 13,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/getJwt.js": 14,
"external \"next/link\"": 15,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/Page.js 7cd3bec4a0252faf8f91892a2f798527": 16,
"external \"url\"": 17,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/keys.js": 18,
"external \"url-join\"": 19,
"external \"next/dynamic\"": 20,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/updStateFromId.js": 21,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/Markdown.js d5b5492a768bba52c33c5b22a90aa8a1": 22,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/util/checkDirParts.js": 23,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/AddDoc.js": 24,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/MngDoc.js cfa406d5564443825298c8c4c761c7c2": 25,
"external \"next/document\"": 26,
"external \"next/app\"": 27,
"external \"next/head\"": 28,
"external \"glamor/server\"": 29,
"external \"react-paginate\"": 30,
"multi ./pages/_app.js": 31,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/_app.js": 32,
"node_modules/ignore-loader/index.js!styles/style.sass": 33,
"multi ./pages/_document.js": 34,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/_document.js": 35,
"multi ./pages/edit.js": 36,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/edit.js": 37,
"multi ./pages/index.js": 38,
"multi ./pages/k.js": 39,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/k.js": 40,
"multi ./pages/new.js": 41,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/new.js": 42,
"multi ./pages/settings.js": 43,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/settings.js": 44,
"multi node_modules/next/dist/pages/_error.js": 45,
"node_modules/next/dist/pages/_error.js": 46,
"external \"next/error\"": 47,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/index.js 02f73884633e8b54d3220884b54a8b51": 48
"external \"codemirror\"": 31,
"external \"codemirror/mode/markdown/markdown\"": 32,
"external \"react-markdown\"": 33,
"multi ./pages/_app.js": 34,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/styles/milligram.js": 35,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/styles/Roboto.js": 36,
"multi ./pages/_document.js": 37,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/_document.js": 38,
"multi ./pages/edit.js": 39,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/edit.js": 40,
"multi ./pages/index.js": 41,
"multi ./pages/k.js": 42,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/k.js": 43,
"multi ./pages/new.js": 44,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/new.js": 45,
"multi ./pages/settings.js": 46,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/settings.js": 47,
"multi node_modules/next/dist/pages/_error.js": 48,
"node_modules/next/dist/pages/_error.js": 49,
"external \"next/error\"": 50,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/index.js 63f90c0b7addefbc51a5877f453fdcbd": 51,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!pages/_app.js 1362119e6d3d895366421ac2b14cb639": 52,
"node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/CodeMirror.js": 53
},
"usedIds": {
"0": 0,
@@ -100,21 +105,28 @@
"45": 45,
"46": 46,
"47": 47,
"48": 48
"48": 48,
"49": 49,
"50": 50,
"51": 51,
"52": 52,
"53": 53
}
},
"chunks": {
"byName": {
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_app.js": 0,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_document.js": 1,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/edit.js": 2,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/index.js": 3,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/k.js": 4,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/new.js": 5,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/settings.js": 6,
"static/lIlrIl8Q~DS1M0c3OvDaq/pages/_error.js": 7
"static/MdYEkay1bViLxxtsssdFt/pages/_app.js": 0,
"static/MdYEkay1bViLxxtsssdFt/pages/_document.js": 1,
"static/MdYEkay1bViLxxtsssdFt/pages/edit.js": 2,
"static/MdYEkay1bViLxxtsssdFt/pages/index.js": 3,
"static/MdYEkay1bViLxxtsssdFt/pages/k.js": 4,
"static/MdYEkay1bViLxxtsssdFt/pages/new.js": 5,
"static/MdYEkay1bViLxxtsssdFt/pages/settings.js": 6,
"static/MdYEkay1bViLxxtsssdFt/pages/_error.js": 7
},
"bySource": {
"0 node_modules/next/dist/build/webpack/loaders/next-babel-loader.js??ref--4!src/components/MngDoc.js ../components/CodeMirror": 8
},
"bySource": {},
"usedIds": [
0,
1,
@@ -123,7 +135,8 @@
4,
5,
6,
7
7,
8
]
}
}

View File

@@ -1,603 +0,0 @@
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = require('../../../ssr-module-cache.js');
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ var threw = true;
/******/ try {
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ threw = false;
/******/ } finally {
/******/ if(threw) delete installedModules[moduleId];
/******/ }
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 31);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = require("react");
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
var url = __webpack_require__(16);
var urljoin = __webpack_require__(17);
module.exports = function (path, absolute) {
var _ref = typeof window === 'undefined' ? app.get('kbConf') : window.kbConf,
pathPrefix = _ref.pathPrefix;
path = urljoin(pathPrefix, path);
if (!absolute) return path; // absolute should only be used during ssr
return url.format({
hostname: app.get('host'),
port: app.get('port'),
pathname: path,
protocol: 'http'
});
};
/***/ }),
/* 2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return SET_USER; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return LOGIN_PENDING; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LOGIN_FAILED; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return LOGOUT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return setUser; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return doLogout; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return doLogin; });
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
/* harmony import */ var isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);
/* harmony import */ var _util_getUrl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);
/* harmony import */ var _util_getUrl__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_util_getUrl__WEBPACK_IMPORTED_MODULE_3__);
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
// define action types
var SET_USER = 'SET_USER';
var LOGIN_PENDING = 'LOGIN_PENDING';
var LOGIN_FAILED = 'LOGIN_FAILED';
var LOGOUT = 'LOGOUT';
var setUser = function setUser(user) {
_store__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dispatch({
type: SET_USER,
data: user
});
}; // setUser
var doLogout = function doLogout() {
if (typeof window !== 'undefined') {
window.localStorage.removeItem('jwt');
document.cookie = 'jwt=; expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;';
}
_store__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dispatch({
type: LOGOUT
});
}; // doLogout
function doLogin(_x, _x2, _x3) {
return _doLogin.apply(this, arguments);
} // doLogin
function _doLogin() {
_doLogin = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(creds, jwt, noPend) {
var authReqOpts, authReqHead, authReqBody, authReq, authRes, error, _ref, accessToken, payload, _JSON$parse, userId, userReq, userRes;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
!noPend && _store__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dispatch({
type: LOGIN_PENDING
});
authReqOpts = {
method: 'POST',
credentials: 'include'
};
authReqHead = {
headers: jwt ? {
Authorization: jwt
} : {
'Content-Type': 'application/json'
}
};
authReqBody = jwt ? null : {
body: JSON.stringify(_objectSpread({}, creds, {
strategy: 'local'
}))
};
authReq = new Request(_util_getUrl__WEBPACK_IMPORTED_MODULE_3___default()('auth'), _objectSpread({}, authReqOpts, authReqHead, authReqBody));
_context.next = 7;
return isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_1___default()(authReq).catch(function (err) {
_store__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dispatch({
type: LOGIN_FAILED,
data: err.message
});
});
case 7:
authRes = _context.sent;
if (authRes.ok) {
_context.next = 20;
break;
}
_context.prev = 9;
_context.next = 12;
return authRes.json();
case 12:
error = _context.sent;
error = error.message;
_context.next = 19;
break;
case 16:
_context.prev = 16;
_context.t0 = _context["catch"](9);
error = authRes.status === 429 ? 'Max login attempts reached' : 'An error occurred during login';
case 19:
return _context.abrupt("return", _store__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dispatch({
type: LOGIN_FAILED,
data: error
}));
case 20:
_context.next = 22;
return authRes.json();
case 22:
_ref = _context.sent;
accessToken = _ref.accessToken;
payload = accessToken.split('.')[1];
_JSON$parse = JSON.parse(atob(payload)), userId = _JSON$parse.userId;
userReq = new Request(_util_getUrl__WEBPACK_IMPORTED_MODULE_3___default()("/users/".concat(userId)), {
headers: {
Authorization: accessToken
}
});
_context.next = 29;
return isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_1___default()(userReq);
case 29:
userRes = _context.sent;
if (userRes.ok) {
_context.next = 32;
break;
}
return _context.abrupt("return", _store__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dispatch({
type: LOGIN_FAILED,
data: 'failed to get user'
}));
case 32:
window.localStorage.setItem('jwt', accessToken);
_context.t1 = setUser;
_context.next = 36;
return userRes.json();
case 36:
_context.t2 = _context.sent;
(0, _context.t1)(_context.t2);
case 38:
case "end":
return _context.stop();
}
}
}, _callee, this, [[9, 16]]);
}));
return _doLogin.apply(this, arguments);
}
/***/ }),
/* 3 */
/***/ (function(module, exports) {
module.exports = require("@babel/runtime/regenerator");
/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXTERNAL MODULE: external "redux"
var external_redux_ = __webpack_require__(10);
// EXTERNAL MODULE: ./redux/actions/userAct.js
var userAct = __webpack_require__(2);
// CONCATENATED MODULE: ./redux/reducers/userRed.js
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var initState = {
setup: false,
_id: null,
email: null,
admin: null,
pending: false,
error: null
};
function user() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case userAct["d" /* SET_USER */]:
{
return _objectSpread({}, initState, action.data);
}
case userAct["b" /* LOGIN_PENDING */]:
{
return _objectSpread({}, initState, {
pending: true
});
}
case userAct["a" /* LOGIN_FAILED */]:
{
return _objectSpread({}, state, {
pending: false,
error: action.data
});
}
case userAct["c" /* LOGOUT */]:
{
return initState;
}
default:
return state;
}
}
/* harmony default export */ var userRed = (user);
// CONCATENATED MODULE: ./redux/store.js
var middleware;
if (false) { var logger; }
var reducers = Object(external_redux_["combineReducers"])({
user: userRed
});
/* harmony default export */ var store = __webpack_exports__["a"] = (middleware ? Object(external_redux_["createStore"])(reducers, middleware) : Object(external_redux_["createStore"])(reducers));
/***/ }),
/* 5 */
/***/ (function(module, exports) {
module.exports = require("react-redux");
/***/ }),
/* 6 */,
/* 7 */
/***/ (function(module, exports) {
module.exports = require("isomorphic-unfetch");
/***/ }),
/* 8 */,
/* 9 */,
/* 10 */
/***/ (function(module, exports) {
module.exports = require("redux");
/***/ }),
/* 11 */,
/* 12 */,
/* 13 */,
/* 14 */,
/* 15 */,
/* 16 */
/***/ (function(module, exports) {
module.exports = require("url");
/***/ }),
/* 17 */
/***/ (function(module, exports) {
module.exports = require("url-join");
/***/ }),
/* 18 */,
/* 19 */,
/* 20 */,
/* 21 */,
/* 22 */,
/* 23 */,
/* 24 */,
/* 25 */,
/* 26 */,
/* 27 */,
/* 28 */,
/* 29 */
/***/ (function(module, exports) {
module.exports = require("next/app");
/***/ }),
/* 30 */,
/* 31 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(32);
/***/ }),
/* 32 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MyApp; });
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var next_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29);
/* harmony import */ var next_app__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_app__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _redux_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _redux_actions_userAct__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
// Don't load sass during ssr
if (!global.kbConf) {
__webpack_require__(33);
}
var ssr = typeof window === 'undefined';
var MyApp =
/*#__PURE__*/
function (_App) {
_inherits(MyApp, _App);
function MyApp() {
_classCallCheck(this, MyApp);
return _possibleConstructorReturn(this, _getPrototypeOf(MyApp).apply(this, arguments));
}
_createClass(MyApp, [{
key: "componentWillMount",
value: function componentWillMount() {
var _this$props = this.props,
user = _this$props.user,
setup = _this$props.setup;
Object(_redux_actions_userAct__WEBPACK_IMPORTED_MODULE_5__[/* setUser */ "g"])(_objectSpread({}, user, {
setup: setup
}));
if (!ssr && !user.email) {
var jwt = window.localStorage.jwt;
if (jwt) Object(_redux_actions_userAct__WEBPACK_IMPORTED_MODULE_5__[/* doLogin */ "e"])(null, jwt, true);
}
}
}, {
key: "render",
value: function render() {
var _this$props2 = this.props,
Component = _this$props2.Component,
pageProps = _this$props2.pageProps;
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_redux__WEBPACK_IMPORTED_MODULE_4__["Provider"], {
store: _redux_store__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]
}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(next_app__WEBPACK_IMPORTED_MODULE_2__["Container"], null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Component, pageProps)));
}
}], [{
key: "getInitialProps",
value: function () {
var _getInitialProps = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(_ref) {
var Component, ctx, user, setup, pageProps;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
Component = _ref.Component, ctx = _ref.ctx;
user = {};
setup = false;
if (ssr) {
user = ctx.req.user || {};
setup = ctx.req.doSetup || false;
}
pageProps = {};
if (!Component.getInitialProps) {
_context.next = 9;
break;
}
_context.next = 8;
return Component.getInitialProps(ctx);
case 8:
pageProps = _context.sent;
case 9:
return _context.abrupt("return", {
Component: Component,
pageProps: pageProps,
user: user,
setup: setup
});
case 10:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
return function getInitialProps(_x) {
return _getInitialProps.apply(this, arguments);
};
}()
}]);
return MyApp;
}(next_app__WEBPACK_IMPORTED_MODULE_2___default.a);
/***/ }),
/* 33 */
/***/ (function(module, exports) {
/***/ })
/******/ ]);

View File

@@ -1,234 +0,0 @@
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = require('../../../ssr-module-cache.js');
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ var threw = true;
/******/ try {
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ threw = false;
/******/ } finally {
/******/ if(threw) delete installedModules[moduleId];
/******/ }
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 34);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, exports) {
module.exports = require("react");
/***/ }),
/***/ 1:
/***/ (function(module, exports, __webpack_require__) {
var url = __webpack_require__(16);
var urljoin = __webpack_require__(17);
module.exports = function (path, absolute) {
var _ref = typeof window === 'undefined' ? app.get('kbConf') : window.kbConf,
pathPrefix = _ref.pathPrefix;
path = urljoin(pathPrefix, path);
if (!absolute) return path; // absolute should only be used during ssr
return url.format({
hostname: app.get('host'),
port: app.get('port'),
pathname: path,
protocol: 'http'
});
};
/***/ }),
/***/ 16:
/***/ (function(module, exports) {
module.exports = require("url");
/***/ }),
/***/ 17:
/***/ (function(module, exports) {
module.exports = require("url-join");
/***/ }),
/***/ 27:
/***/ (function(module, exports) {
module.exports = require("next/document");
/***/ }),
/***/ 34:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(35);
/***/ }),
/***/ 35:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MyDocument; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27);
/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_document__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _util_getUrl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
/* harmony import */ var _util_getUrl__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_util_getUrl__WEBPACK_IMPORTED_MODULE_2__);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
var MyDocument =
/*#__PURE__*/
function (_Document) {
_inherits(MyDocument, _Document);
function MyDocument() {
_classCallCheck(this, MyDocument);
return _possibleConstructorReturn(this, _getPrototypeOf(MyDocument).apply(this, arguments));
}
_createClass(MyDocument, [{
key: "render",
value: function render() {
var favicon = _util_getUrl__WEBPACK_IMPORTED_MODULE_2___default()('favicon.ico');
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("html", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(next_document__WEBPACK_IMPORTED_MODULE_1__["Head"], null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("meta", {
charSet: "utf-8"
}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("meta", {
name: "viewport",
content: "width=device-width, initial-scale=1, shrink-to-fit=no"
}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("link", {
rel: "shortcut icon",
href: favicon,
type: "image/x-icon"
}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("link", {
rel: "icon",
href: favicon,
type: "image/x-icon"
}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("title", null, "My Knowledge Base"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("script", {
dangerouslySetInnerHTML: {
__html: 'window.kbConf=' + JSON.stringify(app.get('kbConf'))
}
})), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("body", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(next_document__WEBPACK_IMPORTED_MODULE_1__["Main"], null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(next_document__WEBPACK_IMPORTED_MODULE_1__["NextScript"], null)));
}
}]);
return MyDocument;
}(next_document__WEBPACK_IMPORTED_MODULE_1___default.a);
/***/ })
/******/ });

View File

@@ -1,119 +0,0 @@
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = require('../../../ssr-module-cache.js');
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ var threw = true;
/******/ try {
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ threw = false;
/******/ } finally {
/******/ if(threw) delete installedModules[moduleId];
/******/ }
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 45);
/******/ })
/************************************************************************/
/******/ ({
/***/ 45:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(46);
/***/ }),
/***/ 46:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(47)
/***/ }),
/***/ 47:
/***/ (function(module, exports) {
module.exports = require("next/error");
/***/ })
/******/ });

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{233:function(n,w,o){}}]);

View File

@@ -1,516 +0,0 @@
/* BASICS */
.CodeMirror {
/* Set height, width, borders, and global font properties here */
font-family: monospace;
height: 300px;
color: black;
direction: ltr; }
/* PADDING */
.CodeMirror-lines {
padding: 4px 0;
/* Vertical padding around content */ }
.CodeMirror pre {
padding: 0 4px;
/* Horizontal padding of content */ }
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
background-color: white;
/* The little square between H and V scrollbars */ }
/* GUTTER */
.CodeMirror-gutters {
border-right: 1px solid #ddd;
background-color: #f7f7f7;
white-space: nowrap; }
.CodeMirror-linenumber {
padding: 0 3px 0 5px;
min-width: 20px;
text-align: right;
color: #999;
white-space: nowrap; }
.CodeMirror-guttermarker {
color: black; }
.CodeMirror-guttermarker-subtle {
color: #999; }
/* CURSOR */
.CodeMirror-cursor {
border-left: 1px solid black;
border-right: none;
width: 0; }
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
border-left: 1px solid silver; }
.cm-fat-cursor .CodeMirror-cursor {
width: auto;
border: 0 !important;
background: #7e7; }
.cm-fat-cursor div.CodeMirror-cursors {
z-index: 1; }
.cm-fat-cursor-mark {
background-color: rgba(20, 255, 20, 0.5);
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite; }
.cm-animate-fat-cursor {
width: auto;
border: 0;
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
background-color: #7e7; }
@-moz-keyframes blink {
0% { }
50% {
background-color: transparent; }
100% { } }
@-webkit-keyframes blink {
0% { }
50% {
background-color: transparent; }
100% { } }
@keyframes blink {
0% { }
50% {
background-color: transparent; }
100% { } }
/* Can style cursor different in overwrite (non-insert) mode */
.cm-tab {
display: inline-block;
text-decoration: inherit; }
.CodeMirror-rulers {
position: absolute;
left: 0;
right: 0;
top: -50px;
bottom: -20px;
overflow: hidden; }
.CodeMirror-ruler {
border-left: 1px solid #ccc;
top: 0;
bottom: 0;
position: absolute; }
/* DEFAULT THEME */
.cm-s-default .cm-header {
color: blue; }
.cm-s-default .cm-quote {
color: #090; }
.cm-negative {
color: #d44; }
.cm-positive {
color: #292; }
.cm-header, .cm-strong {
font-weight: bold; }
.cm-em {
font-style: italic; }
.cm-link {
text-decoration: underline; }
.cm-strikethrough {
text-decoration: line-through; }
.cm-s-default .cm-keyword {
color: #708; }
.cm-s-default .cm-atom {
color: #219; }
.cm-s-default .cm-number {
color: #164; }
.cm-s-default .cm-def {
color: #00f; }
.cm-s-default .cm-variable-2 {
color: #05a; }
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {
color: #085; }
.cm-s-default .cm-comment {
color: #a50; }
.cm-s-default .cm-string {
color: #a11; }
.cm-s-default .cm-string-2 {
color: #f50; }
.cm-s-default .cm-meta {
color: #555; }
.cm-s-default .cm-qualifier {
color: #555; }
.cm-s-default .cm-builtin {
color: #30a; }
.cm-s-default .cm-bracket {
color: #997; }
.cm-s-default .cm-tag {
color: #170; }
.cm-s-default .cm-attribute {
color: #00c; }
.cm-s-default .cm-hr {
color: #999; }
.cm-s-default .cm-link {
color: #00c; }
.cm-s-default .cm-error {
color: #f00; }
.cm-invalidchar {
color: #f00; }
.CodeMirror-composing {
border-bottom: 2px solid; }
/* Default styles for common addons */
div.CodeMirror span.CodeMirror-matchingbracket {
color: #0b0; }
div.CodeMirror span.CodeMirror-nonmatchingbracket {
color: #a22; }
.CodeMirror-matchingtag {
background: rgba(255, 150, 0, 0.3); }
.CodeMirror-activeline-background {
background: #e8f2ff; }
/* STOP */
/* The rest of this file contains styles related to the mechanics of
the editor. You probably shouldn't touch them. */
.CodeMirror {
position: relative;
overflow: hidden;
background: white; }
.CodeMirror-scroll {
overflow: scroll !important;
/* Things will break if this is overridden */
/* 30px is the magic margin used to hide the element's real scrollbars */
/* See overflow: hidden in .CodeMirror */
margin-bottom: -30px;
margin-right: -30px;
padding-bottom: 30px;
height: 100%;
outline: none;
/* Prevent dragging from highlighting the element */
position: relative; }
.CodeMirror-sizer {
position: relative;
border-right: 30px solid transparent; }
/* The fake, visible scrollbars. Used to force redraw during scrolling
before actual scrolling happens, thus preventing shaking and
flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
position: absolute;
z-index: 6;
display: none; }
.CodeMirror-vscrollbar {
right: 0;
top: 0;
overflow-x: hidden;
overflow-y: scroll; }
.CodeMirror-hscrollbar {
bottom: 0;
left: 0;
overflow-y: hidden;
overflow-x: scroll; }
.CodeMirror-scrollbar-filler {
right: 0;
bottom: 0; }
.CodeMirror-gutter-filler {
left: 0;
bottom: 0; }
.CodeMirror-gutters {
position: absolute;
left: 0;
top: 0;
min-height: 100%;
z-index: 3; }
.CodeMirror-gutter {
white-space: normal;
height: 100%;
display: inline-block;
vertical-align: top;
margin-bottom: -30px; }
.CodeMirror-gutter-wrapper {
position: absolute;
z-index: 4;
background: none !important;
border: none !important; }
.CodeMirror-gutter-background {
position: absolute;
top: 0;
bottom: 0;
z-index: 4; }
.CodeMirror-gutter-elt {
position: absolute;
cursor: default;
z-index: 4; }
.CodeMirror-gutter-wrapper ::selection {
background-color: transparent; }
.CodeMirror-gutter-wrapper ::-moz-selection {
background-color: transparent; }
.CodeMirror-lines {
cursor: text;
min-height: 1px;
/* prevents collapsing before first draw */ }
.CodeMirror pre {
/* Reset some styles that the rest of the page might have set */
-moz-border-radius: 0;
-webkit-border-radius: 0;
border-radius: 0;
border-width: 0;
background: transparent;
font-family: inherit;
font-size: inherit;
margin: 0;
white-space: pre;
word-wrap: normal;
line-height: inherit;
color: inherit;
z-index: 2;
position: relative;
overflow: visible;
-webkit-tap-highlight-color: transparent;
-webkit-font-variant-ligatures: contextual;
font-variant-ligatures: contextual; }
.CodeMirror-wrap pre {
word-wrap: break-word;
white-space: pre-wrap;
word-break: normal; }
.CodeMirror-linebackground {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 0; }
.CodeMirror-linewidget {
position: relative;
z-index: 2;
padding: 0.1px;
/* Force widget margins to stay inside of the container */ }
.CodeMirror-rtl pre {
direction: rtl; }
.CodeMirror-code {
outline: none; }
/* Force content-box sizing for the elements where we expect it */
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-gutter,
.CodeMirror-gutters,
.CodeMirror-linenumber {
-moz-box-sizing: content-box;
box-sizing: content-box; }
.CodeMirror-measure {
position: absolute;
width: 100%;
height: 0;
overflow: hidden;
visibility: hidden; }
.CodeMirror-cursor {
position: absolute;
pointer-events: none; }
.CodeMirror-measure pre {
position: static; }
div.CodeMirror-cursors {
visibility: hidden;
position: relative;
z-index: 3; }
div.CodeMirror-dragcursors {
visibility: visible; }
.CodeMirror-focused div.CodeMirror-cursors {
visibility: visible; }
.CodeMirror-selected {
background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected {
background: #d7d4f0; }
.CodeMirror-crosshair {
cursor: crosshair; }
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection {
background: #d7d4f0; }
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection {
background: #d7d4f0; }
.cm-searching {
background-color: #ffa;
background-color: rgba(255, 255, 0, 0.4); }
/* Used to force a border model for a node */
.cm-force-border {
padding-right: .1px; }
@media print {
/* Hide the cursor when printing */
.CodeMirror div.CodeMirror-cursors {
visibility: hidden; } }
/* See issue #2901 */
.cm-tab-wrap-hack:after {
content: ''; }
/* Help users use markselection to safely style text background */
span.CodeMirror-selectedtext {
background: none; }
/* Based on Sublime Text's Monokai theme */
.cm-s-monokai.CodeMirror {
background: #272822;
color: #f8f8f2; }
.cm-s-monokai div.CodeMirror-selected {
background: #49483E; }
.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection {
background: rgba(73, 72, 62, 0.99); }
.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection {
background: rgba(73, 72, 62, 0.99); }
.cm-s-monokai .CodeMirror-gutters {
background: #272822;
border-right: 0px; }
.cm-s-monokai .CodeMirror-guttermarker {
color: white; }
.cm-s-monokai .CodeMirror-guttermarker-subtle {
color: #d0d0d0; }
.cm-s-monokai .CodeMirror-linenumber {
color: #d0d0d0; }
.cm-s-monokai .CodeMirror-cursor {
border-left: 1px solid #f8f8f0; }
.cm-s-monokai span.cm-comment {
color: #75715e; }
.cm-s-monokai span.cm-atom {
color: #ae81ff; }
.cm-s-monokai span.cm-number {
color: #ae81ff; }
.cm-s-monokai span.cm-comment.cm-attribute {
color: #97b757; }
.cm-s-monokai span.cm-comment.cm-def {
color: #bc9262; }
.cm-s-monokai span.cm-comment.cm-tag {
color: #bc6283; }
.cm-s-monokai span.cm-comment.cm-type {
color: #5998a6; }
.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {
color: #a6e22e; }
.cm-s-monokai span.cm-keyword {
color: #f92672; }
.cm-s-monokai span.cm-builtin {
color: #66d9ef; }
.cm-s-monokai span.cm-string {
color: #e6db74; }
.cm-s-monokai span.cm-variable {
color: #f8f8f2; }
.cm-s-monokai span.cm-variable-2 {
color: #9effff; }
.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type {
color: #66d9ef; }
.cm-s-monokai span.cm-def {
color: #fd971f; }
.cm-s-monokai span.cm-bracket {
color: #f8f8f2; }
.cm-s-monokai span.cm-tag {
color: #f92672; }
.cm-s-monokai span.cm-header {
color: #ae81ff; }
.cm-s-monokai span.cm-link {
color: #ae81ff; }
.cm-s-monokai span.cm-error {
background: #f92672;
color: #f8f8f0; }
.cm-s-monokai .CodeMirror-activeline-background {
background: #373831; }
.cm-s-monokai .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important; }

View File

@@ -1,923 +0,0 @@
*,
*:after,
*:before {
box-sizing: inherit; }
html {
box-sizing: border-box;
font-size: 62.5%; }
body {
color: #606c76;
font-family: 'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
font-size: 1.6em;
font-weight: 300;
letter-spacing: .01em;
line-height: 1.6; }
blockquote {
border-left: 0.3rem solid #d1d1d1;
margin-left: 0;
margin-right: 0;
padding: 1rem 1.5rem; }
blockquote *:last-child {
margin-bottom: 0; }
.button,
button,
input[type='button'],
input[type='reset'],
input[type='submit'] {
background-color: #9b4dca;
border: 0.1rem solid #9b4dca;
border-radius: .4rem;
color: #fff;
cursor: pointer;
display: inline-block;
font-size: 1.1rem;
font-weight: 700;
height: 3.8rem;
letter-spacing: .1rem;
line-height: 3.8rem;
padding: 0 3.0rem;
text-align: center;
text-decoration: none;
text-transform: uppercase;
white-space: nowrap; }
.button:focus, .button:hover,
button:focus,
button:hover,
input[type='button']:focus,
input[type='button']:hover,
input[type='reset']:focus,
input[type='reset']:hover,
input[type='submit']:focus,
input[type='submit']:hover {
background-color: #606c76;
border-color: #606c76;
color: #fff;
outline: 0; }
.button[disabled],
button[disabled],
input[type='button'][disabled],
input[type='reset'][disabled],
input[type='submit'][disabled] {
cursor: default;
opacity: .5; }
.button[disabled]:focus, .button[disabled]:hover,
button[disabled]:focus,
button[disabled]:hover,
input[type='button'][disabled]:focus,
input[type='button'][disabled]:hover,
input[type='reset'][disabled]:focus,
input[type='reset'][disabled]:hover,
input[type='submit'][disabled]:focus,
input[type='submit'][disabled]:hover {
background-color: #9b4dca;
border-color: #9b4dca; }
.button.button-outline,
button.button-outline,
input[type='button'].button-outline,
input[type='reset'].button-outline,
input[type='submit'].button-outline {
background-color: transparent;
color: #9b4dca; }
.button.button-outline:focus, .button.button-outline:hover,
button.button-outline:focus,
button.button-outline:hover,
input[type='button'].button-outline:focus,
input[type='button'].button-outline:hover,
input[type='reset'].button-outline:focus,
input[type='reset'].button-outline:hover,
input[type='submit'].button-outline:focus,
input[type='submit'].button-outline:hover {
background-color: transparent;
border-color: #606c76;
color: #606c76; }
.button.button-outline[disabled]:focus, .button.button-outline[disabled]:hover,
button.button-outline[disabled]:focus,
button.button-outline[disabled]:hover,
input[type='button'].button-outline[disabled]:focus,
input[type='button'].button-outline[disabled]:hover,
input[type='reset'].button-outline[disabled]:focus,
input[type='reset'].button-outline[disabled]:hover,
input[type='submit'].button-outline[disabled]:focus,
input[type='submit'].button-outline[disabled]:hover {
border-color: inherit;
color: #9b4dca; }
.button.button-clear,
button.button-clear,
input[type='button'].button-clear,
input[type='reset'].button-clear,
input[type='submit'].button-clear {
background-color: transparent;
border-color: transparent;
color: #9b4dca; }
.button.button-clear:focus, .button.button-clear:hover,
button.button-clear:focus,
button.button-clear:hover,
input[type='button'].button-clear:focus,
input[type='button'].button-clear:hover,
input[type='reset'].button-clear:focus,
input[type='reset'].button-clear:hover,
input[type='submit'].button-clear:focus,
input[type='submit'].button-clear:hover {
background-color: transparent;
border-color: transparent;
color: #606c76; }
.button.button-clear[disabled]:focus, .button.button-clear[disabled]:hover,
button.button-clear[disabled]:focus,
button.button-clear[disabled]:hover,
input[type='button'].button-clear[disabled]:focus,
input[type='button'].button-clear[disabled]:hover,
input[type='reset'].button-clear[disabled]:focus,
input[type='reset'].button-clear[disabled]:hover,
input[type='submit'].button-clear[disabled]:focus,
input[type='submit'].button-clear[disabled]:hover {
color: #9b4dca; }
code {
background: #f4f5f6;
border-radius: .4rem;
font-size: 86%;
margin: 0 .2rem;
padding: .2rem .5rem;
white-space: nowrap; }
pre {
background: #f4f5f6;
border-left: 0.3rem solid #9b4dca;
overflow-y: hidden; }
pre > code {
border-radius: 0;
display: block;
padding: 1rem 1.5rem;
white-space: pre; }
hr {
border: 0;
border-top: 0.1rem solid #f4f5f6;
margin: 3.0rem 0; }
input[type='email'],
input[type='number'],
input[type='password'],
input[type='search'],
input[type='tel'],
input[type='text'],
input[type='url'],
textarea,
select {
appearance: none;
background-color: transparent;
border: 0.1rem solid #d1d1d1;
border-radius: .4rem;
box-shadow: none;
box-sizing: inherit;
height: 3.8rem;
padding: .6rem 1.0rem;
width: 100%; }
input[type='email']:focus,
input[type='number']:focus,
input[type='password']:focus,
input[type='search']:focus,
input[type='tel']:focus,
input[type='text']:focus,
input[type='url']:focus,
textarea:focus,
select:focus {
border-color: #9b4dca;
outline: 0; }
select {
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="#d1d1d1" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>') center right no-repeat;
padding-right: 3.0rem; }
select:focus {
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="#9b4dca" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>'); }
textarea {
min-height: 6.5rem; }
label,
legend {
display: block;
font-size: 1.6rem;
font-weight: 700;
margin-bottom: .5rem; }
fieldset {
border-width: 0;
padding: 0; }
input[type='checkbox'],
input[type='radio'] {
display: inline; }
.label-inline {
display: inline-block;
font-weight: normal;
margin-left: .5rem; }
.container {
margin: 0 auto;
max-width: 112.0rem;
padding: 0 2.0rem;
position: relative;
width: 100%; }
.row {
display: flex;
flex-direction: column;
padding: 0;
width: 100%; }
.row.row-no-padding {
padding: 0; }
.row.row-no-padding > .column {
padding: 0; }
.row.row-wrap {
flex-wrap: wrap; }
.row.row-top {
align-items: flex-start; }
.row.row-bottom {
align-items: flex-end; }
.row.row-center {
align-items: center; }
.row.row-stretch {
align-items: stretch; }
.row.row-baseline {
align-items: baseline; }
.row .column {
display: block;
flex: 1 1 auto;
margin-left: 0;
max-width: 100%;
width: 100%; }
.row .column.column-offset-10 {
margin-left: 10%; }
.row .column.column-offset-20 {
margin-left: 20%; }
.row .column.column-offset-25 {
margin-left: 25%; }
.row .column.column-offset-33, .row .column.column-offset-34 {
margin-left: 33.3333%; }
.row .column.column-offset-50 {
margin-left: 50%; }
.row .column.column-offset-66, .row .column.column-offset-67 {
margin-left: 66.6666%; }
.row .column.column-offset-75 {
margin-left: 75%; }
.row .column.column-offset-80 {
margin-left: 80%; }
.row .column.column-offset-90 {
margin-left: 90%; }
.row .column.column-10 {
flex: 0 0 10%;
max-width: 10%; }
.row .column.column-20 {
flex: 0 0 20%;
max-width: 20%; }
.row .column.column-25 {
flex: 0 0 25%;
max-width: 25%; }
.row .column.column-33, .row .column.column-34 {
flex: 0 0 33.3333%;
max-width: 33.3333%; }
.row .column.column-40 {
flex: 0 0 40%;
max-width: 40%; }
.row .column.column-50 {
flex: 0 0 50%;
max-width: 50%; }
.row .column.column-60 {
flex: 0 0 60%;
max-width: 60%; }
.row .column.column-66, .row .column.column-67 {
flex: 0 0 66.6666%;
max-width: 66.6666%; }
.row .column.column-75 {
flex: 0 0 75%;
max-width: 75%; }
.row .column.column-80 {
flex: 0 0 80%;
max-width: 80%; }
.row .column.column-90 {
flex: 0 0 90%;
max-width: 90%; }
.row .column .column-top {
align-self: flex-start; }
.row .column .column-bottom {
align-self: flex-end; }
.row .column .column-center {
align-self: center; }
@media (min-width: 40rem) {
.row {
flex-direction: row;
margin-left: -1.0rem;
width: calc(100% + 2.0rem); }
.row .column {
margin-bottom: inherit;
padding: 0 1.0rem; } }
a {
color: #9b4dca;
text-decoration: none; }
a:focus, a:hover {
color: #606c76; }
dl,
ol,
ul {
list-style: none;
margin-top: 0;
padding-left: 0; }
dl dl,
dl ol,
dl ul,
ol dl,
ol ol,
ol ul,
ul dl,
ul ol,
ul ul {
font-size: 90%;
margin: 1.5rem 0 1.5rem 3.0rem; }
ol {
list-style: decimal inside; }
ul {
list-style: circle inside; }
.button,
button,
dd,
dt,
li {
margin-bottom: 1.0rem; }
fieldset,
input,
select,
textarea {
margin-bottom: 1.5rem; }
blockquote,
dl,
figure,
form,
ol,
p,
pre,
table,
ul {
margin-bottom: 2.5rem; }
table {
border-spacing: 0;
width: 100%; }
td,
th {
border-bottom: 0.1rem solid #e1e1e1;
padding: 1.2rem 1.5rem;
text-align: left; }
td:first-child,
th:first-child {
padding-left: 0; }
td:last-child,
th:last-child {
padding-right: 0; }
b,
strong {
font-weight: bold; }
p {
margin-top: 0; }
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 300;
letter-spacing: -.1rem;
margin-bottom: 2.0rem;
margin-top: 0; }
h1 {
font-size: 4.6rem;
line-height: 1.2; }
h2 {
font-size: 3.6rem;
line-height: 1.25; }
h3 {
font-size: 2.8rem;
line-height: 1.3; }
h4 {
font-size: 2.2rem;
letter-spacing: -.08rem;
line-height: 1.35; }
h5 {
font-size: 1.8rem;
letter-spacing: -.05rem;
line-height: 1.5; }
h6 {
font-size: 1.6rem;
letter-spacing: 0;
line-height: 1.4; }
img {
max-width: 100%; }
.clearfix:after {
clear: both;
content: ' ';
display: table; }
.float-left {
float: left; }
.float-right {
float: right; }
/* cyrillic-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local("Roboto Light Italic"), local("Roboto-LightItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc3CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
/* cyrillic */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local("Roboto Light Italic"), local("Roboto-LightItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc-CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local("Roboto Light Italic"), local("Roboto-LightItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc2CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+1F00-1FFF; }
/* greek */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local("Roboto Light Italic"), local("Roboto-LightItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc5CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0370-03FF; }
/* vietnamese */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local("Roboto Light Italic"), local("Roboto-LightItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc1CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }
/* latin-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local("Roboto Light Italic"), local("Roboto-LightItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc0CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local("Roboto Light Italic"), local("Roboto-LightItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc6CsTYl4BO.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* cyrillic-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic3CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
/* cyrillic */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic-CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic2CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+1F00-1FFF; }
/* greek */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic5CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0370-03FF; }
/* vietnamese */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic1CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }
/* latin-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic0CsTYl4BOQ3o.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic6CsTYl4BO.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* cyrillic-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local("Roboto Light"), local("Roboto-Light"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
/* cyrillic */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local("Roboto Light"), local("Roboto-Light"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local("Roboto Light"), local("Roboto-Light"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+1F00-1FFF; }
/* greek */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local("Roboto Light"), local("Roboto-Light"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0370-03FF; }
/* vietnamese */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local("Roboto Light"), local("Roboto-Light"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }
/* latin-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local("Roboto Light"), local("Roboto-Light"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local("Roboto Light"), local("Roboto-Light"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* cyrillic-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
/* cyrillic */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+1F00-1FFF; }
/* greek */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0370-03FF; }
/* vietnamese */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }
/* latin-ext */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face {
font-display: swap;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
.footer {
text-align: center;
padding: 10px 10px 15px;
background: #2c2f33; }
.footer p {
margin-bottom: 0; }
.navbar {
background: #2c2f33;
display: flex;
flex-direction: row;
align-items: center;
height: 55px; }
.navbar .navbar-brand {
margin-left: 0.75em;
margin-right: auto; }
.navbar .navbar-brand h3 {
margin-bottom: 0; }
.navbar .navbar-burger {
display: none;
width: 32px;
margin-right: 10px; }
.navbar .navbar-burger.active div:nth-child(1) {
transform-origin: center;
transform: translateY(8px) rotate(45deg); }
.navbar .navbar-burger.active div:nth-child(2) {
opacity: 0; }
.navbar .navbar-burger.active div:nth-child(3) {
transform-origin: left -6px;
transform: translateY(8px) rotate(-45deg); }
.navbar .navbar-burger div {
transition: all ease-in-out 150ms;
width: 100%;
height: 2px;
margin: 5px 0;
border-radius: 1px;
background: #dcddde; }
.navbar .navbar-items {
display: inline-flex;
flex-direction: row; }
.navbar .navbar-items .active .item, .navbar .navbar-items .item:hover {
background: #202225; }
.navbar .navbar-items .item {
margin: 0;
cursor: pointer;
padding: 15px 20px; }
@media screen and (max-width: 840px) {
.navbar .navbar-burger {
display: inline-block; }
.navbar .navbar-items {
display: block;
overflow: hidden;
position: fixed;
top: 55px;
left: 0;
z-index: 5;
background: #2c2f33;
width: 100%;
transform: scaleY(0);
transform-origin: top;
transition: all ease-in-out 125ms; }
.navbar .navbar-items.active {
transform: scaleY(1);
overflow: auto; }
.navbar .navbar-items .item {
text-align: center;
width: 100%;
padding: 5px 0; } }
.spinner {
height: 24px;
width: 24px;
border-radius: 100%;
border: 2px solid #dcddde;
border-right: none;
border-bottom: none;
animation: spinner 500ms linear infinite; }
@keyframes spinner {
from {
transform: rotate(0deg); }
to {
transform: rotate(360deg); } }
.paginate {
list-style: none;
text-align: center;
user-select: none;
margin: 0; }
.paginate li {
display: inline-block; }
.paginate li.active a {
border-color: #00d1b2; }
.paginate li a {
outline: 0;
border-radius: 50%;
border: 1px solid;
border-color: transparent;
padding: 3px 8px; }
body, code, pre {
background: #202225;
color: #dcddde;
margin: 0; }
pre, code {
font-size: 1.5rem; }
input, textarea, select, button,
.button, .cm-s-monokai.CodeMirror {
color: #dcddde;
border: none !important;
border-radius: .4rem;
background-color: #2c2f33 !important; }
button[disabled], button.disabled {
cursor: default; }
input, textarea {
font-size: 1.6rem;
font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
font-weight: 300;
resize: none; }
input[disabled], textarea[disabled] {
opacity: 0.8;
cursor: not-allowed; }
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
opacity: 0.85;
color: #dcddde; }
input::-moz-placeholder, textarea::-moz-placeholder {
opacity: 0.85;
color: #dcddde; }
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
opacity: 0.85;
color: #dcddde; }
input:-moz-placeholder, textarea:-moz-placeholder {
opacity: 0.85;
color: #dcddde; }
input::placeholder, textarea::placeholder {
opacity: 0.85;
color: #dcddde; }
select {
-webkit-appearance: none;
-moz-appearance: none;
text-overflow: '';
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%23d1d1d1" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>') center right no-repeat; }
select:focus {
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%239b4dca" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>'); }
.button.disabled {
cursor: default; }
a {
color: #00d1b2;
cursor: pointer; }
a:visited, a:focus {
color: #00d1b2; }
a:hover {
color: #009e87; }
.danger {
color: #d44848; }
.noMargin {
margin: 0 !important; }
.float-right {
margin-left: auto; }
.float-left {
margin-right: auto; }
.container {
display: flex;
flex-direction: column; }
.CodeMirror {
width: 100%; }
.cm-s-monokai span.cm-comment {
color: #ccc9ba; }
.content {
min-height: calc(100vh - 55px - 50px);
padding: 10px; }
.content p, .content pre {
word-wrap: break-word; }
.v-center {
min-height: calc(100vh - 55px - 50px - 20px);
flex-direction: row;
align-items: center; }
.nomob {
display: none !important; }
.inline {
display: inline-flex !important;
align-items: middle; }
.inline select, .inline input {
width: auto;
height: 28px;
flex-grow: 1;
margin-left: 5px;
margin-bottom: 0;
padding: 6px;
border: none; }
.Markdown pre {
margin-bottom: 2.5rem; }
@media screen and (max-width: 639px) {
.row .column.column-50 {
max-width: 100%; } }
@media screen and (min-width: 640px) {
.nomob {
display: block !important; } }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
!function(e){function t(t){for(var n,i,a=t[0],l=t[1],c=t[2],p=0,s=[];p<a.length;p++)i=a[p],o[i]&&s.push(o[i][0]),o[i]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);for(f&&f(t);s.length;)s.shift()();return u.push.apply(u,c||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var l=r[a];0!==o[l]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}},o=!0;try{e[t].call(r.exports,r,r.exports,i),o=!1}finally{o&&delete n[t]}return r.l=!0,r.exports}i.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise(function(t,n){r=o[e]=[t,n]});t.push(r[2]=n);var u,a=document.getElementsByTagName("head")[0],l=document.createElement("script");l.charset="utf-8",l.timeout=120,i.nc&&l.setAttribute("nonce",i.nc),l.src=function(e){return i.p+"static/chunks/"+({}[e]||e)+"."+{10:"92205884f2772342b0b5",11:"7a232aeb103ef6f4d6d4"}[e]+".js"}(e),u=function(t){l.onerror=l.onload=null,clearTimeout(c);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src,i=new Error("Loading chunk "+e+" failed.\n("+n+": "+u+")");i.type=n,i.request=u,r[1](i)}o[e]=void 0}};var c=setTimeout(function(){u({type:"timeout",target:l})},12e4);l.onerror=l.onload=u,a.appendChild(l)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i.oe=function(e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],l=a.push.bind(a);a.push=t,a=a.slice();for(var c=0;c<a.length;c++)t(a[c]);var f=l;r()}([]);

View File

@@ -1,16 +0,0 @@
const Footer = () => (
<footer className="footer">
<p>
Powered by{' '}
<a
href="//github.com/ijjk/mykb"
target="_blank"
rel="noopener noreferrer"
>
MYKB
</a>
</p>
</footer>
)
export default Footer

View File

@@ -7,7 +7,7 @@
"max": 50
},
"authentication": {
"secret": "",
"secret": "030c8d13ff1eb57c5f7dfcd604005a034f2b1fcf89ce7898d30fab5908e33185d3eb94d9849a7d5aaac3c888e3a0d93031d32a04830609768abe6744513d2433f8dad73b8aab46f50d7d2cf4b58f20b2766815969db3dfa6653b110f305f17f757119004b862e6df3a3da6f0e1d9b24c98515fbf29729e42cc274ef28f87cdd84e48622f86102e7a046e1c83ed5e0c06921ad3093c1ffadfb8b2c1f9214c934dc3a118ed615d40f180d79c65f3a7ef2e30d10e3260e11be4535eeaabcd2ff16415760811a2a02817acad5701e735c40622f37c7b055d5cab3c7aa0539550c3e20479ceda988fdcd9c743b982f018a1800b8e4f4c08ccaae679f2fe1d798251cf",
"strategies": [
"jwt",
"local"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,26 +1,3 @@
const { ANALYZE, BUILD, NODE_ENV } = process.env
let conf = {
module.exports = {
poweredByHeader: false,
}
if (ANALYZE) {
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer')
conf.webpack = function(config, { isServer }) {
config.plugins.push(
new BundleAnalyzerPlugin({
analyzerMode: 'server',
analyzerPort: isServer ? 8888 : 8889,
openAnalyzer: true,
})
)
return config
}
}
// Only add sass module when building or during dev
if (BUILD || NODE_ENV !== 'production') {
const withSass = require('@zeit/next-sass')
conf = withSass(conf)
}
module.exports = conf

View File

@@ -1,7 +1,7 @@
{
"name": "mykb",
"description": "A file system/markdown based knowledge base editor/viewer",
"version": "0.2.0",
"version": "0.3.0",
"main": "src",
"keywords": [
"feathers",
@@ -27,9 +27,9 @@
"format": "prettier --ignore-path .eslintignore --write '**/*.js'",
"lint": "eslint . --config .eslintrc.json",
"mocha": "cross-env NODE_ENV=production mocha test/ --recursive --exit",
"build": "cross-env BUILD=true next build",
"build": "next build",
"analyze": "cross-env ANALYZE=true next build",
"dev": "nodemon -w ./src -w ./config -w ./util -w next.config.js --exec 'npm run start:dev'",
"dev": "nodemon --ignore src/components --ignore src/redux --ignore src/styles --exec 'npm run start:dev'",
"start:dev": "node src/",
"start": "cross-env NODE_ENV=production node src/",
"test": "npm run lint && npm run build && npm run mocha",
@@ -52,6 +52,7 @@
"express-rate-limit": "^2.11.0",
"feathers-nedb": "^3.0.0",
"fs-extra": "^5.0.0",
"glamor": "^2.20.40",
"glob": "^7.1.2",
"helmet": "^3.12.0",
"if-env": "^1.0.4",
@@ -65,23 +66,19 @@
"react-paginate": "^5.2.3",
"react-redux": "^5.0.7",
"redux": "^4.0.0",
"serve-favicon": "^2.5.0",
"simple-git": "^1.92.0",
"url-join": "^4.0.0",
"winston": "^2.4.1"
},
"devDependencies": {
"@zeit/next-sass": "^1.0.1",
"babel-eslint": "^8.2.3",
"eslint": "^4.19.1",
"eslint-plugin-react": "^7.8.2",
"mocha": "^5.1.1",
"node-sass": "^4.9.0",
"nodemon": "^1.17.3",
"prettier": "^1.13.4",
"redux-logger": "^3.0.6",
"request": "^2.85.0",
"request-promise": "^4.2.2",
"webpack-bundle-analyzer": "^2.11.1"
"request-promise": "^4.2.2"
}
}

View File

@@ -1,11 +1,10 @@
import App, { Container } from 'next/app'
import store from '../redux/store'
import Head from 'next/head'
import '../src/styles/global'
import store from '../src/redux/store'
import { Provider } from 'react-redux'
import { setUser, doLogin } from '../redux/actions/userAct'
// Don't load sass during ssr
if (!global.kbConf) {
require('../styles/style.sass')
}
import App, { Container } from 'next/app'
import { setUser, doLogin } from '../src/redux/actions/userAct'
const ssr = typeof window === 'undefined'
export default class MyApp extends App {
@@ -36,9 +35,15 @@ export default class MyApp extends App {
let { Component, pageProps } = this.props
return (
<Provider store={store}>
<Container>
<Component {...pageProps} />
</Container>
<>
<Head>
<title>My Knowledge Base</title>
</Head>
<Container>
<Component {...pageProps} />
</Container>
</>
</Provider>
)
}

View File

@@ -1,9 +1,23 @@
import getUrl from '../src/util/getUrl'
import { renderStaticOptimized } from 'glamor/server'
import Document, { Head, Main, NextScript } from 'next/document'
import getUrl from '../util/getUrl'
export default class MyDocument extends Document {
static async getInitialProps({ renderPage }) {
const page = renderPage()
const styles = renderStaticOptimized(() => page.html || page.errorHtml)
return { ...page, ...styles }
}
constructor(props) {
super(props)
const { __NEXT_DATA__, ids } = props
if (ids) {
__NEXT_DATA__.ids = this.props.ids
}
}
render() {
const favicon = getUrl('favicon.ico')
return (
<html>
<Head>
@@ -12,9 +26,14 @@ export default class MyDocument extends Document {
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<link rel="shortcut icon" href={favicon} type="image/x-icon" />
<link rel="icon" href={favicon} type="image/x-icon" />
<title>My Knowledge Base</title>
<link rel="apple-touch-icon" sizes="180x180" href={getUrl("/apple-touch-icon.png")}/>
<link rel="icon" type="image/png" sizes="32x32" href={getUrl("/favicon-32x32.png")}/>
<link rel="icon" type="image/png" sizes="16x16" href={getUrl("/favicon-16x16.png")}/>
<link rel="manifest" href={getUrl("/site.webmanifest")}/>
<link rel="mask-icon" href={getUrl("/safari-pinned-tab.svg")} color="#00d1b2"/>
<meta name="msapplication-TileColor" content="#202225"/>
<meta name="theme-color" content="#202225"/>
<style dangerouslySetInnerHTML={{ __html: this.props.css }} data-glamor />
<script
dangerouslySetInnerHTML={{
__html: 'window.kbConf=' + JSON.stringify(app.get('kbConf')),

View File

@@ -1,7 +1,7 @@
import React, { Component } from 'react'
import Page from '../comps/Page'
import MngDoc from '../comps/MngDoc'
import AddDoc from '../comps/AddDoc'
import Page from '../src/components/Page'
import MngDoc from '../src/components/MngDoc'
import AddDoc from '../src/components/AddDoc'
class Edit extends Component {
render() {

View File

@@ -3,14 +3,14 @@ import { connect } from 'react-redux'
import Router from 'next/router'
import Paginate from 'react-paginate'
import { format } from 'url'
import Page from '../comps/Page'
import PaddedRow from '../comps/PaddedRow'
import Spinner from '../comps/Spinner'
import DocItem from '../comps/DocItem'
import { $limit, getDocs, buildQ } from '../util/getDocs'
import getJwt from '../util/getJwt'
import getUrl from '../util/getUrl'
import mapUser from '../util/mapUser'
import Page from '../src/components/Page'
import PaddedRow from '../src/components/PaddedRow'
import Spinner from '../src/components/Spinner'
import DocItem from '../src/components/DocItem'
import { $limit, getDocs, buildQ } from '../src/util/getDocs'
import getJwt from '../src/util/getJwt'
import getUrl from '../src/util/getUrl'
import mapUser from '../src/util/mapUser'
class Index extends Component {
state = {

View File

@@ -2,11 +2,11 @@ import React, { Component } from 'react'
import Link from 'next/link'
import Router from 'next/router'
import fetch from 'isomorphic-unfetch'
import Page from '../comps/Page'
import Markdown from '../comps/Markdown'
import AddDoc from '../comps/AddDoc'
import getUrl from '../util/getUrl'
import getJwt from '../util/getJwt'
import Page from '../src/components/Page'
import Markdown from '../src/components/Markdown'
import AddDoc from '../src/components/AddDoc'
import getUrl from '../src/util/getUrl'
import getJwt from '../src/util/getJwt'
class k extends Component {
delete = async () => {

View File

@@ -1,2 +1,2 @@
import MngDoc from '../comps/MngDoc'
import MngDoc from '../src/components/MngDoc'
export default MngDoc

View File

@@ -1,13 +1,13 @@
import React, { Component } from 'react'
import { connect } from 'react-redux'
import fetch from 'isomorphic-unfetch'
import Page from '../comps/Page'
import PaddedRow from '../comps/PaddedRow'
import Spinner from '../comps/Spinner'
import updStateFromId from '../util/updStateFromId'
import mapUser from '../util/mapUser'
import getUrl from '../util/getUrl'
import getJwt from '../util/getJwt'
import Page from '../src/components/Page'
import PaddedRow from '../src/components/PaddedRow'
import Spinner from '../src/components/Spinner'
import updStateFromId from '../src/util/updStateFromId'
import mapUser from '../src/util/mapUser'
import getUrl from '../src/util/getUrl'
import getJwt from '../src/util/getJwt'
class Settings extends Component {
state = {

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

9
public/browserconfig.xml Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#202225</TileColor>
</tile>
</msapplication>
</browserconfig>

BIN
public/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 979 B

BIN
public/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
public/mstile-150x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="380.000000pt" height="380.000000pt" viewBox="0 0 380.000000 380.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,380.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M1188 3550 c-20 -4 -48 -14 -62 -23 -54 -36 -66 -56 -160 -261 -20
-43 -53 -99 -75 -125 -56 -67 -64 -86 -55 -134 11 -64 7 -97 -22 -187 -41
-130 -97 -240 -159 -309 -62 -69 -59 -61 -56 -157 4 -117 -72 -330 -166 -466
-46 -67 -47 -70 -48 -151 -2 -68 -8 -99 -40 -182 -49 -130 -95 -222 -158 -314
-41 -62 -49 -81 -47 -110 7 -67 0 -175 -15 -239 -27 -114 -15 -198 46 -321 41
-84 160 -205 249 -254 136 -74 66 -70 1210 -71 564 -1 1052 2 1085 6 121 15
267 116 331 228 14 24 117 346 229 715 112 368 220 724 240 790 161 529 176
581 176 642 1 61 -26 139 -63 184 -18 22 -88 69 -102 69 -6 0 -12 -20 -13 -44
-2 -43 -25 -125 -208 -726 -48 -157 -170 -557 -271 -890 -166 -545 -187 -607
-216 -637 -65 -67 2 -64 -1198 -61 l-1085 3 -53 24 c-86 39 -145 128 -128 195
14 58 -39 55 1071 58 948 3 1024 5 1073 21 71 24 122 72 162 154 46 95 55 124
291 903 116 382 253 834 305 1003 116 382 120 426 46 537 -42 63 -117 114
-184 124 -23 4 -454 6 -959 6 -505 -1 -922 0 -926 2 -4 3 -24 2 -45 -2z m1650
-574 c15 -33 -35 -187 -72 -225 l-26 -26 -668 -1 c-367 -1 -677 1 -690 3 -42
9 -44 43 -11 142 49 145 -35 131 769 131 l687 0 11 -24z m-184 -542 c20 -19
21 -13 -10 -113 -28 -91 -65 -140 -106 -142 -13 0 -320 -1 -682 -1 l-659 -1
-18 22 c-10 12 -16 27 -14 34 44 143 59 178 83 196 26 20 43 20 709 21 607 0
683 -2 697 -16z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

19
public/site.webmanifest Normal file
View File

@@ -0,0 +1,19 @@
{
"name": "MYKB",
"short_name": "MYKB",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-256x256.png",
"sizes": "256x256",
"type": "image/png"
}
],
"theme_color": "#202225",
"background_color": "#202225",
"display": "standalone"
}

View File

@@ -1,4 +1,3 @@
const favicon = require('serve-favicon')
const fs = require('fs')
const path = require('path')
const compress = require('compression')
@@ -21,24 +20,24 @@ const channels = require('./channels')
const authentication = require('./authentication')
const dev = process.env.NODE_ENV !== 'production'
const pathPrefix = require('../util/pathPrefix')
const stripBase = require('../util/stripPrefix')
const getUrl = require('../util/getUrl')
const pathPrefix = require('./util/pathPrefix')
const stripBase = require('./util/stripPrefix')
const getUrl = require('./util/getUrl')
const { parse } = require('url')
const nxt = require('next')({ dev, quiet: true })
const nxtHandler = nxt.getRequestHandler()
const Next = require('next')({ dev, quiet: true })
const nextHandler = Next.getRequestHandler()
const app = express(feathers())
global.app = app
app.run = async port => {
const server = app.listen(port)
await nxt.prepare()
await Next.prepare()
if (dev) {
server.on('upgrade', (req, socket) => {
req.url = stripBase(req.url)
nxtHandler(req, socket, parse(req.url, true))
nextHandler(req, socket, parse(req.url, true))
})
}
return server
@@ -82,17 +81,18 @@ app.use(
})
)
app.use(getUrl('/'), express.static(path.join(__dirname, '../public')))
if (!dev) app.use(compress())
app.use(express.json()) // use { limit } option to increase max post size
app.use(express.urlencoded({ extended: true }))
app.use(getUrl('/'), favicon('favicon.ico'))
app.configure(express.rest()) // Set up Plugins and providers
app.configure(middleware) // middleware/index.js
app.configure(authentication) // Set up authentication
app.configure(services) // Set up our services (see `services/index.js`)
app.configure(channels) // Set up event channels (see channels.js)
nxt.setAssetPrefix(pathPrefix)
Next.setAssetPrefix(pathPrefix)
const checkJWT = async (req, res, next) => {
const result = await req.app.authenticate('jwt', {})(req)
@@ -106,12 +106,12 @@ const checkJWT = async (req, res, next) => {
;['/', '/logout', '/new', '/settings'].forEach(route => {
app.get(getUrl(route), cookieParser, checkJWT, (req, res) => {
const { query } = parse(req.url, true)
nxt.render(req, res, route, query)
Next.render(req, res, route, query)
})
})
;['/k', '/edit'].forEach(route => {
app.get(getUrl(route + '/:id'), cookieParser, checkJWT, (req, res) => {
nxt.render(req, res, route, { id: req.params.id })
Next.render(req, res, route, { id: req.params.id })
})
})
@@ -121,10 +121,10 @@ app.use((req, res, next) => {
if (accept && accept.toLowerCase() === 'application/json')
return notFound(req, res, next)
if (req.url.substr(0, pathPrefix.length) !== pathPrefix)
return nxt.render404(req, res)
return Next.render404(req, res)
req.url = stripBase(req.url)
nxtHandler(req, res, parse(req.url, true))
nextHandler(req, res, parse(req.url, true))
})
app.use(express.errorHandler({ logger }))

View File

@@ -1,7 +1,7 @@
const authentication = require('@feathersjs/authentication')
const jwt = require('@feathersjs/authentication-jwt')
const local = require('@feathersjs/authentication-local')
const getUrl = require('../util/getUrl')
const getUrl = require('./util/getUrl')
module.exports = function(app) {
const config = app.get('authentication')

29
src/components/Footer.js Normal file
View File

@@ -0,0 +1,29 @@
import { css } from 'glamor'
import theme from '../styles/theme';
const style = {
textAlign: 'center',
padding: '10px 10px 15px',
background: theme.primaryAlt,
'& p': {
marginBottom: 0,
}
}
const Footer = () => (
<footer className={ css(style) }>
<p>
Powered by{' '}
<a
href="//github.com/ijjk/mykb"
target="_blank"
rel="noopener noreferrer"
>
MYKB
</a>
</p>
</footer>
)
export default Footer

View File

@@ -1,4 +1,6 @@
import React, { Component } from 'react'
import { css } from 'glamor'
import theme from '../styles/theme'
import { withRouter } from 'next/router'
import { connect } from 'react-redux'
import { doLogout } from '../redux/actions/userAct'
@@ -6,6 +8,95 @@ import Link from 'next/link'
import getUrl from '../util/getUrl'
import mapUser from '../util/mapUser'
const style = {
background: theme.primaryAlt,
display: 'flex',
flexDirection: 'row',
alignItems: 'center',
height: 55,
'& .navbar-brand': {
marginLeft: '0.75em',
marginRight: 'auto',
'& h3': {
marginBottom: 0,
},
},
'& .navbar-burger': {
width: 32,
display: 'none',
marginRight: 10,
'&.active div': {
'&:nth-child(1)': {
transformOrigin: 'center',
transform: 'translateY(8px) rotate(45deg)',
},
'&:nth-child(2)': {
opacity: 0,
},
'&:nth-child(3)': {
transformOrigin: 'left -6px',
transform: 'translateY(8px) rotate(-45deg)',
},
},
'& div': {
transition: 'all ease-in-out 150ms',
width: '100%',
height: 2,
margin: '5px 0',
borderRadius: 1,
background: theme.text,
},
},
'& .navbar-items': {
display: 'inline-flex',
flexDirection: 'row',
'& .active .item, .item:hover': {
background: theme.primary,
},
'& .item': {
margin: 0,
cursor: 'pointer',
padding: '15px 20px',
}
},
'@media screen and (max-width: 840px)': {
'& .navbar-burger': {
display: 'inline-block',
},
'& .navbar-items': {
display: 'block',
overflow: 'hidden',
position: 'fixed',
top: 55,
left: 0,
zIndex: 5,
background: theme.primaryAlt,
width: '100%',
transform: 'scaleY(0)',
transformOrigin: 'top',
transition: 'all ease-in-out 125ms',
'&.active': {
transform: 'scaleY(1)',
overflow: 'auto',
},
'& .item': {
width: '100%',
padding: '5px 0',
textAlign: 'center',
}
}
}
}
const NavLink = ({ children, href, active }) => {
const activeClass = active ? ' active' : ''
return (
@@ -36,7 +127,7 @@ class Header extends Component {
const expandClass = this.state.open ? ' active' : ''
const { user } = this.props
return (
<nav className="navbar" role="navigation" aria-label="main navigation">
<nav className={ "navbar " + css(style) } role="navigation" aria-label="main navigation">
<div className="navbar-brand">
<NavLink href="/">
<h3 onClick={this.hideNav}>MYKB</h3>

View File

@@ -1,19 +1,21 @@
import React, { Component } from 'react'
import Router from 'next/router'
import dynamic from 'next/dynamic'
import Page from '../comps/Page'
import Markdown from '../comps/Markdown'
import { checkDir, checkName } from '../util/checkDirParts'
import updStateFromId from '../util/updStateFromId'
import getUrl from '../util/getUrl'
import getJwt from '../util/getJwt'
import Page from '../components/Page'
import Markdown from '../components/Markdown'
import updStateFromId from '../util/updStateFromId'
import { checkDir, checkName } from '../util/checkDirParts'
import '../styles/monokai'
import '../styles/codemirror'
const CodeMirrorSkel = () => (
<div className="column">
<textarea style={{ height: 'calc(300px - 1.2rem)', margin: 0 }} />
</div>
)
const CodeMirror = dynamic(import('../comps/CodeMirror'), {
const CodeMirror = dynamic(typeof window !== 'undefined' && import('../components/CodeMirror'), {
loading: CodeMirrorSkel,
ssr: false,
})

View File

@@ -1,7 +1,7 @@
const { authenticate } = require('@feathersjs/authentication').hooks
const { checkDir, checkName } = require('../../../util/checkDirParts')
const { checkDir, checkName } = require('../../util/checkDirParts')
const { disable, invalid, adminOnly } = require('../hooksUtil')
const getUrl = require('../../../util/getUrl')
const getUrl = require('../../util/getUrl')
const nameIsValid = name => {
name = checkName(name)
if (!name) return invalid('name')

View File

@@ -1,7 +1,7 @@
// Initializes the `docs` service on path `/docs`
const createService = require('./docs.class.js')
const hooks = require('./docs.hooks')
const getUrl = require('../../../util/getUrl')
const getUrl = require('../../util/getUrl')
module.exports = function(app) {
const paginate = app.get('paginate')

View File

@@ -2,7 +2,7 @@
const createService = require('feathers-nedb')
const createModel = require('../../models/users.model')
const hooks = require('./users.hooks')
const getUrl = require('../../../util/getUrl')
const getUrl = require('../../util/getUrl')
module.exports = function(app) {
const Model = createModel(app)

View File

@@ -1,262 +1,225 @@
$primary: #202225;
$primaryAlt: lighten($primary, 5);
$danger: #d44848;
$text: #dcddde;
$link: #00d1b2;
$linkAct: darken($link, 10);
$fontFamily: 'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
// Roboto font
// weights: 300, italic-300, 700, italic-700
/* cyrillic-ext */
@font-face
font-display: swap;
import { css } from 'glamor'
css.insert(`/* cyrillic-ext */
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc3CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc-CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc2CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc5CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc1CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc0CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 300;
src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TjASc6CsTYl4BO.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic3CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic-CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic2CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic5CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic1CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic0CsTYl4BOQ3o.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51TzBic6CsTYl4BO.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face
font-display: swap;
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}`)

350
src/styles/codemirror.js Normal file
View File

@@ -0,0 +1,350 @@
import { css } from 'glamor'
console.log('codemirror styles!!!')
css.insert(`
/* BASICS */
.CodeMirror {
/* Set height, width, borders, and global font properties here */
font-family: monospace;
height: 300px;
color: black;
direction: ltr;
}
/* PADDING */
.CodeMirror-lines {
padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre {
padding: 0 4px; /* Horizontal padding of content */
}
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
background-color: white; /* The little square between H and V scrollbars */
}
/* GUTTER */
.CodeMirror-gutters {
border-right: 1px solid #ddd;
background-color: #f7f7f7;
white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
padding: 0 3px 0 5px;
min-width: 20px;
text-align: right;
color: #999;
white-space: nowrap;
}
.CodeMirror-guttermarker { color: black; }
.CodeMirror-guttermarker-subtle { color: #999; }
/* CURSOR */
.CodeMirror-cursor {
border-left: 1px solid black;
border-right: none;
width: 0;
}
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
border-left: 1px solid silver;
}
.cm-fat-cursor .CodeMirror-cursor {
width: auto;
border: 0 !important;
background: #7e7;
}
.cm-fat-cursor div.CodeMirror-cursors {
z-index: 1;
}
.cm-fat-cursor-mark {
background-color: rgba(20, 255, 20, 0.5);
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
}
.cm-animate-fat-cursor {
width: auto;
border: 0;
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
background-color: #7e7;
}
@-moz-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@-webkit-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror-overwrite .CodeMirror-cursor {}
.cm-tab { display: inline-block; text-decoration: inherit; }
.CodeMirror-rulers {
position: absolute;
left: 0; right: 0; top: -50px; bottom: -20px;
overflow: hidden;
}
.CodeMirror-ruler {
border-left: 1px solid #ccc;
top: 0; bottom: 0;
position: absolute;
}
/* DEFAULT THEME */
.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}
.cm-strikethrough {text-decoration: line-through;}
.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable,
.cm-s-default .cm-punctuation,
.cm-s-default .cm-property,
.cm-s-default .cm-operator {}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}
.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}
.CodeMirror-composing { border-bottom: 2px solid; }
/* Default styles for common addons */
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
.CodeMirror-activeline-background {background: #e8f2ff;}
/* STOP */
/* The rest of this file contains styles related to the mechanics of
the editor. You probably shouldn't touch them. */
.CodeMirror {
position: relative;
overflow: hidden;
background: white;
}
.CodeMirror-scroll {
overflow: scroll !important; /* Things will break if this is overridden */
/* 30px is the magic margin used to hide the element's real scrollbars */
/* See overflow: hidden in .CodeMirror */
margin-bottom: -30px; margin-right: -30px;
padding-bottom: 30px;
height: 100%;
outline: none; /* Prevent dragging from highlighting the element */
position: relative;
}
.CodeMirror-sizer {
position: relative;
border-right: 30px solid transparent;
}
/* The fake, visible scrollbars. Used to force redraw during scrolling
before actual scrolling happens, thus preventing shaking and
flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
position: absolute;
z-index: 6;
display: none;
}
.CodeMirror-vscrollbar {
right: 0; top: 0;
overflow-x: hidden;
overflow-y: scroll;
}
.CodeMirror-hscrollbar {
bottom: 0; left: 0;
overflow-y: hidden;
overflow-x: scroll;
}
.CodeMirror-scrollbar-filler {
right: 0; bottom: 0;
}
.CodeMirror-gutter-filler {
left: 0; bottom: 0;
}
.CodeMirror-gutters {
position: absolute; left: 0; top: 0;
min-height: 100%;
z-index: 3;
}
.CodeMirror-gutter {
white-space: normal;
height: 100%;
display: inline-block;
vertical-align: top;
margin-bottom: -30px;
}
.CodeMirror-gutter-wrapper {
position: absolute;
z-index: 4;
background: none !important;
border: none !important;
}
.CodeMirror-gutter-background {
position: absolute;
top: 0; bottom: 0;
z-index: 4;
}
.CodeMirror-gutter-elt {
position: absolute;
cursor: default;
z-index: 4;
}
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
.CodeMirror-lines {
cursor: text;
min-height: 1px; /* prevents collapsing before first draw */
}
.CodeMirror pre {
/* Reset some styles that the rest of the page might have set */
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
border-width: 0;
background: transparent;
font-family: inherit;
font-size: inherit;
margin: 0;
white-space: pre;
word-wrap: normal;
line-height: inherit;
color: inherit;
z-index: 2;
position: relative;
overflow: visible;
-webkit-tap-highlight-color: transparent;
-webkit-font-variant-ligatures: contextual;
font-variant-ligatures: contextual;
}
.CodeMirror-wrap pre {
word-wrap: break-word;
white-space: pre-wrap;
word-break: normal;
}
.CodeMirror-linebackground {
position: absolute;
left: 0; right: 0; top: 0; bottom: 0;
z-index: 0;
}
.CodeMirror-linewidget {
position: relative;
z-index: 2;
padding: 0.1px; /* Force widget margins to stay inside of the container */
}
.CodeMirror-widget {}
.CodeMirror-rtl pre { direction: rtl; }
.CodeMirror-code {
outline: none;
}
/* Force content-box sizing for the elements where we expect it */
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-gutter,
.CodeMirror-gutters,
.CodeMirror-linenumber {
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.CodeMirror-measure {
position: absolute;
width: 100%;
height: 0;
overflow: hidden;
visibility: hidden;
}
.CodeMirror-cursor {
position: absolute;
pointer-events: none;
}
.CodeMirror-measure pre { position: static; }
div.CodeMirror-cursors {
visibility: hidden;
position: relative;
z-index: 3;
}
div.CodeMirror-dragcursors {
visibility: visible;
}
.CodeMirror-focused div.CodeMirror-cursors {
visibility: visible;
}
.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
.CodeMirror-crosshair { cursor: crosshair; }
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
.cm-searching {
background-color: #ffa;
background-color: rgba(255, 255, 0, .4);
}
/* Used to force a border model for a node */
.cm-force-border { padding-right: .1px; }
@media print {
/* Hide the cursor when printing */
.CodeMirror div.CodeMirror-cursors {
visibility: hidden;
}
}
/* See issue #2901 */
.cm-tab-wrap-hack:after { content: ''; }
/* Help users use markselection to safely style text background */
span.CodeMirror-selectedtext { background: none; }
`)

209
src/styles/global.js Normal file
View File

@@ -0,0 +1,209 @@
import { css, rehydrate, media, keyframes } from 'glamor'
import theme from './theme'
// rehydrate must be called before any glamor calls
// or else styles will duplicate
if (typeof window !== 'undefined') {
rehydrate(window.__NEXT_DATA__.ids)
}
// must be required after rehydrate or it will duplicate
require('./milligram')
require('./Roboto')
css.global('body, code, pre', {
background: theme.primary,
color: theme.text,
margin: 0,
})
css.global('pre, code', {
fontSize: '1.5rem',
})
css.global('input, textarea, select, button, .button, .cm-s-monokai.CodeMirror', {
color: theme.text,
borderRadius: '.4rem',
border: 'none !important',
backgroundColor: `${theme.primaryAlt} !important`,
})
css.global('button[disabled], button.disabled', {
cursor: 'default',
})
css.global('input, textarea', {
fontSize: '1.6rem',
fontFamily: theme.fontFamily,
fontWeight: 300,
resize: 'none',
})
css.global('input[disabled], textarea[disabled]', {
opacity: 0.8,
cursor: 'not-allowed',
})
css.global('input::placeholder, textarea::placeholder', {
opacity: 0.85,
color: theme.text,
})
css.global('select', {
WebkitAppearance: 'none',
MozAppearance: 'none',
textOverflow: '',
background: `url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%23d1d1d1" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>') center right no-repeat`,
})
css.global('select:focus', {
backgroundImage: `url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%239b4dca" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>')`,
})
css.global('a', {
color: theme.link,
cursor: 'pointer',
})
css.global('a:visited, a:focus', {
color: theme.link,
})
css.global('a:hover', {
color: theme.linkAct,
})
css.global('.danger', {
color: theme.danger,
})
css.global('.noMargin', {
margin: '0 !important',
})
css.global('.float-right', {
marginLeft: 'auto',
})
css.global('.float-left', {
marginRight: 'auto',
})
css.global('.container', {
display: 'flex',
flexDirection: 'column',
})
css.global('.CodeMirror', {
width: '100%',
})
css.global('.cm-s-monokai span.cm-comment', {
color: '#ccc9ba',
})
css.global('.content', {
minHeight: 'calc(100vh - 55px - 50px)',
padding: 10,
})
css.global('.content p, .content pre', {
wordWrap: 'break-word',
})
css.global('.v-center', {
minHeight: 'calc(100vh - 55px - 50px - 20px)',
flexDirection: 'row',
alignItems: 'center',
})
css.global('.nomob', {
display: 'none !important',
})
css.global('.inline', {
display: 'inline-flex !important',
alignItems: 'center',
})
css.global('.inline select, .inline input', {
width: 'auto',
height: 28,
flexGrow: 1,
marginLeft: 5,
marginBottom: 0,
padding: 6,
border: 'none',
})
css.global('.Markdown pre', {
marginBottom: '2.5rem',
})
const spinKeys = keyframes('spinner', {
from: {
transform: 'rotate(0deg)',
},
to: {
transform: 'rotate(360deg)',
},
})
css.global('.spinner', {
height: 24,
width: 24,
borderRadius: '100%',
border: `2px solid ${theme.text}`,
borderRight: 'none',
borderBottom: 'none',
animation: `${spinKeys} 500ms linear infinite`,
})
css.global('.paginate', {
listStyle: 'none',
textAlign: 'center',
userSelect: 'none',
margin: 0,
})
css.global('.paginate li', {
display: 'inline-block',
})
css.global('.paginate li.active a', {
borderColor: theme.link,
})
css.global('.paginate a', {
outline: 0,
borderRadius: '50%',
border: '1px solid',
borderColor: 'transparent',
padding: '3px 8px',
})
css.insert(`
@media screen and (max-width: 639px) {
.row .column.column-50 {
max-width: 100%;
}
}
@media screen and (min-width: 640px) {
.nomob {
display: block !important;
}
}
`)
media('screen and (max-width: 639px)', {
'.row .column.column-50': {
maxWidth: '100%'
}
})
media('screen and (min-width: 640px)', {
'.nomob': {
display: 'block !important',
}
})

2
src/styles/milligram.js Normal file

File diff suppressed because one or more lines are too long

44
src/styles/monokai.js Normal file
View File

@@ -0,0 +1,44 @@
import { css } from 'glamor'
css.insert(`
/* Based on Sublime Text's Monokai theme */
.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }
.cm-s-monokai div.CodeMirror-selected { background: #49483E; }
.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }
.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }
.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }
.cm-s-monokai .CodeMirror-guttermarker { color: white; }
.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
.cm-s-monokai span.cm-comment { color: #75715e; }
.cm-s-monokai span.cm-atom { color: #ae81ff; }
.cm-s-monokai span.cm-number { color: #ae81ff; }
.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }
.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }
.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }
.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }
.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }
.cm-s-monokai span.cm-keyword { color: #f92672; }
.cm-s-monokai span.cm-builtin { color: #66d9ef; }
.cm-s-monokai span.cm-string { color: #e6db74; }
.cm-s-monokai span.cm-variable { color: #f8f8f2; }
.cm-s-monokai span.cm-variable-2 { color: #9effff; }
.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }
.cm-s-monokai span.cm-def { color: #fd971f; }
.cm-s-monokai span.cm-bracket { color: #f8f8f2; }
.cm-s-monokai span.cm-tag { color: #f92672; }
.cm-s-monokai span.cm-header { color: #ae81ff; }
.cm-s-monokai span.cm-link { color: #ae81ff; }
.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }
.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }
.cm-s-monokai .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}
`)

9
src/styles/theme.js Normal file
View File

@@ -0,0 +1,9 @@
export default {
primary: '#202225',
primaryAlt: '#2c2f33',
danger: '#d44848',
text: '#dcddde',
link: '#00d1b2',
linkAct: '#009e87',
fontFamily: `'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif`,
}

1
src/util/mapUser.js Normal file
View File

@@ -0,0 +1 @@
export default ({ user }) => ({ user })

View File

@@ -1,5 +1,5 @@
// make sure basePath doesn't end with /
let { pathPrefix } = require('../config/host.json')
let { pathPrefix } = require('../../config/host.json')
const urlChars = pathPrefix.split('')
if (pathPrefix.length > 1 && urlChars.pop() === '/') {

View File

@@ -1,5 +0,0 @@
// import all components from this folder
@import 'footer.sass';
@import 'navbar.sass';
@import 'spinner.sass';
@import 'paginate.sass';

View File

@@ -1,6 +0,0 @@
.footer
text-align: center;
padding: 10px 10px 15px;
background: $primaryAlt;
p
margin-bottom: 0;

View File

@@ -1,126 +0,0 @@
.navbar
background: $primaryAlt;
display: flex;
flex-direction: row;
align-items: center;
height: 55px;
.navbar-brand
margin-left: 0.75em;
margin-right: auto;
h3
margin-bottom: 0;
.navbar-burger
display: none;
width: 32px;
margin-right: 10px;
&.active div
&:nth-child(1)
transform-origin: center;
transform: translateY(8px) rotate(45deg);
&:nth-child(2)
opacity: 0;
&:nth-child(3)
transform-origin: left -6px;
transform: translateY(8px) rotate(-45deg);
div
transition: all ease-in-out 150ms;
width: 100%;
height: 2px;
margin: 5px 0;
border-radius: 1px;
background: $text;
.navbar-items
display: inline-flex;
flex-direction: row;
.active .item, .item:hover
background: $primary;
.item
margin: 0;
cursor: pointer;
padding: 15px 20px;
// .dropdown
// position: relative;
// &:hover
// .dropdown-items
// height: auto;
// .dropdown-root:after
// content: ' \25BE';
// .dropdown-items
// height: 0;
// width: 125px;
// overflow: hidden;
// top: 100%;
// left: 0px;
// z-index: 6;
// position: absolute;
// background: $primaryAlt;
// .item
// padding: 0;
// margin: 0 !important;
// padding: 8px 10px;
// &.active, &:hover,
// background: none;
// color: $linkAct;
@media screen and (max-width: 840px)
.navbar
.navbar-burger
display: inline-block;
.navbar-items
display: block;
overflow: hidden;
position: fixed;
top: 55px;
left: 0;
z-index: 5;
background: $primaryAlt;
width: 100%;
transform: scaleY(0);
transform-origin: top;
transition: all ease-in-out 125ms;
&.active
transform: scaleY(1);
overflow: auto;
.item
text-align: center;
width: 100%;
padding: 5px 0;
// .dropdown
// padding: 0 !important;
// .dropdown-root
// display: none;
// .dropdown-items
// position: relative !important;
// overflow: hidden;
// padding: 0 !important;
// height: auto !important;
// width: 100% !important;
// .item
// width: 100% !important;
// padding: 5px 0 !important;
// text-align: center !important;
// &:last-child
// padding: 5px 0 0 !important;

View File

@@ -1,18 +0,0 @@
.paginate
list-style: none;
text-align: center;
user-select: none;
margin: 0;
li
display: inline-block;
&.active a
border-color: $link;
a
outline: 0;
border-radius: 50%;
border: 1px solid;
border-color: transparent;
padding: 3px 8px;

View File

@@ -1,15 +0,0 @@
.spinner
height: 24px;
width: 24px;
border-radius: 100%;
border: 2px solid $text;
$noBorder: none;
border-right: $noBorder;
border-bottom: $noBorder;
animation: spinner 500ms linear infinite;
@keyframes spinner
from
transform: rotate(0deg);
to
transform: rotate(360deg);

View File

@@ -1,2 +0,0 @@
// import all mixins from this folder
@import '_placeholder.sass';

View File

@@ -1,11 +0,0 @@
@mixin placeholder()
&::-webkit-input-placeholder
@content
&::-moz-placeholder
@content
&:-ms-input-placeholder
@content
&:-moz-placeholder
@content
&::placeholder
@content

View File

@@ -1,123 +0,0 @@
// import milligram
@import '../node_modules/milligram/src/milligram.sass';
// import codemirror
@import '../node_modules/codemirror/lib/codemirror.css';
@import '../node_modules/codemirror/theme/monokai.css';
// import other stuff
@import '_theme.sass';
@import 'mixins/_all.sass';
@import 'comps/_all.sass';
body, code, pre
background: $primary;
color: $text;
margin: 0;
pre, code
font-size: 1.5rem;
input, textarea, select, button,
.button, .cm-s-monokai.CodeMirror
color: $text
border: none !important;
border-radius: .4rem;
background-color: $primaryAlt !important;
button
&[disabled], &.disabled
cursor: default;
input, textarea
font-size: 1.6rem;
font-family: $fontFamily;
font-weight: 300;
resize: none;
&[disabled]
opacity: 0.8;
cursor: not-allowed;
@include placeholder()
opacity: 0.85;
color: $text;
select
-webkit-appearance: none;
-moz-appearance: none;
text-overflow: '';
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%23d1d1d1" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>') center right no-repeat;
&:focus
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%239b4dca" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>')
.button.disabled
cursor: default;
a
color: $link
cursor: pointer;
&:visited, &:focus
color: $link;
&:hover
color: $linkAct;
.danger
color: $danger;
.noMargin
margin: 0 !important;
.float-right
margin-left: auto;
.float-left
margin-right: auto;
.container
display: flex;
flex-direction: column;
.CodeMirror
width: 100%;
.cm-s-monokai span.cm-comment
color: #ccc9ba;
.content
min-height: calc(100vh - 55px - 50px);
padding: 10px;
p, pre
word-wrap: break-word;
.v-center
min-height: calc(100vh - 55px - 50px - 20px);
flex-direction: row;
align-items: center;
.nomob
display: none !important;
.inline
display: inline-flex !important;
align-items: middle;
select, input
width: auto;
height: 28px;
flex-grow: 1;
margin-left: 5px;
margin-bottom: 0;
padding: 6px;
border: none;
.Markdown
pre
margin-bottom: 2.5rem
@media screen and (max-width: 639px)
.row .column.column-50
max-width: 100%
@media screen and (min-width: 640px)
.nomob
display: block !important;

View File

@@ -1,3 +0,0 @@
export default ({ user }) => {
return { user }
}

7020
yarn.lock

File diff suppressed because it is too large Load Diff