diff --git a/.eslintrc.cjs b/.eslintrc.cjs index f0dc02b..c699e1a 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -11,4 +11,4 @@ module.exports = { 'vue/max-attributes-per-line': 'off', 'vue/multi-word-component-names': 'off' } -} \ No newline at end of file +} diff --git a/README.md b/README.md index 2b89487..0ebb975 100644 --- a/README.md +++ b/README.md @@ -28,4 +28,4 @@ yarn install yarn dev ``` -It can now be reached at http://localhost:3000/. \ No newline at end of file +It can now be reached at http://localhost:3000/. diff --git a/app.config.ts b/app.config.ts index 9e372b3..87c2caf 100644 --- a/app.config.ts +++ b/app.config.ts @@ -44,9 +44,13 @@ export default defineAppConfig({ href: '/docs' }, { - text: 'Code Editor', + text: 'Code Generator', href: '/editor' }, + { + text: 'Translation Tool', + href: '/translate' + }, { text: 'Demo', href: 'https://demo.emulatorjs.org', diff --git a/components/AppHeader.vue b/components/AppHeader.vue index 7d40746..1118724 100644 --- a/components/AppHeader.vue +++ b/components/AppHeader.vue @@ -121,4 +121,4 @@ css({ } } }) - \ No newline at end of file + diff --git a/components/AppHeaderDialog.vue b/components/AppHeaderDialog.vue index c99a10d..9cc4c2c 100644 --- a/components/AppHeaderDialog.vue +++ b/components/AppHeaderDialog.vue @@ -131,4 +131,4 @@ css({ height: '{space.4}' } }) - \ No newline at end of file + diff --git a/components/AppLayout.vue b/components/AppLayout.vue index ee87f3d..36c47b4 100644 --- a/components/AppLayout.vue +++ b/components/AppLayout.vue @@ -41,4 +41,4 @@ css({ } } }) - \ No newline at end of file + diff --git a/components/DocsPageLayout.vue b/components/DocsPageLayout.vue index d110beb..73d9253 100644 --- a/components/DocsPageLayout.vue +++ b/components/DocsPageLayout.vue @@ -295,4 +295,4 @@ css({ } } }) - \ No newline at end of file + diff --git a/components/NavigationLink.vue b/components/NavigationLink.vue index 0dc4419..e78ad00 100644 --- a/components/NavigationLink.vue +++ b/components/NavigationLink.vue @@ -84,4 +84,4 @@ css({ } }) - \ No newline at end of file + diff --git a/content/1.docs/1.index.md b/content/1.docs/1.index.md index 9849888..5cf0264 100644 --- a/content/1.docs/1.index.md +++ b/content/1.docs/1.index.md @@ -1,6 +1,6 @@ # Introduction -You can use the [Code Editor](/editor) to generate the embed code for your website. +You can use the [Code Generator](/editor) to generate the embed code for your website. [EmulatorJS](https://github.com/EmulatorJS/EmulatorJS) runs RetroArch compiled to webassembly, optimized for running in the web browser. diff --git a/content/1.docs/8.systems/_dir.yml b/content/1.docs/8.systems/_dir.yml index b62c469..a211792 100644 --- a/content/1.docs/8.systems/_dir.yml +++ b/content/1.docs/8.systems/_dir.yml @@ -1,2 +1,2 @@ title: Systems -aside.collapsed: true \ No newline at end of file +aside.collapsed: true diff --git a/content/1.docs/_dir.yml b/content/1.docs/_dir.yml index 6f9f50b..b39a275 100644 --- a/content/1.docs/_dir.yml +++ b/content/1.docs/_dir.yml @@ -1,3 +1,3 @@ title: Docs icon: mdi:books -aside.collapsed: false \ No newline at end of file +aside.collapsed: false diff --git a/content/2.docs4devs/_dir.yml b/content/2.docs4devs/_dir.yml index ba08baa..a11ce41 100644 --- a/content/2.docs4devs/_dir.yml +++ b/content/2.docs4devs/_dir.yml @@ -1,3 +1,3 @@ title: Docs for Devs icon: wpf:books -aside.collapsed: false \ No newline at end of file +aside.collapsed: false diff --git a/nuxt.config.ts b/nuxt.config.ts index 7c8e08a..b2af3c1 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -61,7 +61,3 @@ export default defineNuxtConfig({ compatibilityDate: '2024-12-21', }) - -function resolve(arg0: string): string | undefined { - throw new Error("Function not implemented."); -} diff --git a/package.json b/package.json index 7ba812f..898f018 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "emulatorjs.org", - "version": "1.1.2", + "version": "1.1.3", "description": "The EmulatorJS Website", "main": "index.js", "license": "MIT", @@ -19,17 +19,17 @@ }, "devDependencies": { "@nuxt-themes/docus": "^1.15.1", - "@nuxt/eslint-config": "^1.2.0", - "@types/node": "^22.13.10", + "@nuxt/eslint-config": "^1.3.0", + "@types/node": "^22.15.0", "@vue/compiler-sfc": "^3.5.13", - "eslint": "^9.17.0", - "nuxt": "^3.16.0", + "eslint": "^9.25.1", + "nuxt": "^3.16.2", "nuxt-anchorscroll": "^1.0.5", - "nuxt-custom-elements": "^2.0.0-beta.31", + "nuxt-custom-elements": "^2.0.0-beta.32", "nuxt-gtag": "^3.0.2", "postcss": "^8.5.3", "typescript": "^5.8.2", - "vite": "^6.2.3", + "vite": "^6.3.3", "vue": "^3.5.13" } } diff --git a/pages/editor.vue b/pages/editor.vue index d46bc1d..376dbaf 100644 --- a/pages/editor.vue +++ b/pages/editor.vue @@ -1,16 +1,16 @@ diff --git a/public/ads.txt b/public/ads.txt index 4cad853..c62ac5e 100644 --- a/public/ads.txt +++ b/public/ads.txt @@ -1 +1 @@ -google.com, pub-8832864985153925, DIRECT, f08c47fec0942fa0 \ No newline at end of file +google.com, pub-8832864985153925, DIRECT, f08c47fec0942fa0 diff --git a/public/backToTop.svg b/public/backToTop.svg index 9509bd5..09040ec 100644 --- a/public/backToTop.svg +++ b/public/backToTop.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/public/css/backToTop.min.css b/public/css/backToTop.min.css index 4e34835..d8f2f23 100644 --- a/public/css/backToTop.min.css +++ b/public/css/backToTop.min.css @@ -1 +1 @@ -.jquery-back-to-top{cursor:pointer;display:block;overflow:hidden;text-align:center;text-overflow:clip;visibility:hidden;white-space:nowrap;word-wrap:break-word}.jquery-back-to-top i{display:none}.jquery-back-to-top-status-on{animation-iteration-count:1;opacity:1;visibility:visible}.jquery-back-to-top-status-off{animation-iteration-count:1;transition:visibility .4s;visibility:hidden}@-moz-keyframes jquery-back-to-top-fadein{0{opacity:0}100%{opacity:1}}@-webkit-keyframes jquery-back-to-top-fadein{0{opacity:0}100%{opacity:1}}@keyframes jquery-back-to-top-fadein{0{opacity:0}100%{opacity:1}}@-moz-keyframes jquery-back-to-top-fadeout{0{opacity:1}100%{opacity:0}}@-webkit-keyframes jquery-back-to-top-fadeout{0{opacity:1}100%{opacity:0}}@keyframes jquery-back-to-top-fadeout{0{opacity:1}100%{opacity:0}}.jquery-back-to-top-theme-default{-moz-border-radius:50%;-webkit-border-radius:50%;background:url('/backToTop.svg') no-repeat center 43%;border-radius:50%}.jquery-back-to-top-theme-default:hover{box-shadow:0 0 20px 0 rgba(0,0,0,0.40)}.jquery-back-to-top-theme-fawesome{-moz-border-radius:25%;-webkit-border-radius:25%;border-radius:25%;font-size:150%}.jquery-back-to-top-theme-fawesome i{display:inline-block}.jquery-back-to-top-effect-fade-on{-moz-animation:jquery-back-to-top-fadein .4s ease-in;-webkit-animation:jquery-back-to-top-fadein .4s ease-in;animation:jquery-back-to-top-fadein .4s ease-in}.jquery-back-to-top-effect-fade-off{-moz-animation:jquery-back-to-top-fadeout .4s ease-in;-webkit-animation:jquery-back-to-top-fadeout .4s ease-in;animation:jquery-back-to-top-fadeout .4s ease-in}.jquery-back-to-top-effect-spin-on{-moz-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);-webkit-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-180p .7s cubic-bezier(0.59,0.14,0.33,0.92)}.jquery-back-to-top-effect-spin-off{-moz-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);-webkit-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-180n .5s cubic-bezier(0.6,0.27,0.19,0.83)}@-moz-keyframes jquery-back-to-top-effect-kf-spin-180p{from{-moz-transform:rotate(180deg)}to{-moz-transform:rotate(0)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-180p{from{-webkit-transform:rotate(180deg)}to{-webkit-transform:rotate(0)}}@keyframes jquery-back-to-top-effect-kf-spin-180p{from{transform:rotate(180deg)}to{transform:rotate(0)}}@-moz-keyframes jquery-back-to-top-effect-kf-spin-180n{from{-moz-transform:rotate(0)}to{-moz-transform:rotate(180deg)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-180n{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(180deg)}}@keyframes jquery-back-to-top-effect-kf-spin-180n{from{transform:rotate(0)}to{transform:rotate(180deg)}}.jquery-back-to-top-effect-spin-inverse-on{-moz-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);-webkit-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180p .7s cubic-bezier(0.59,0.14,0.33,0.92)}.jquery-back-to-top-effect-spin-inverse-off{-moz-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);-webkit-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180n .5s cubic-bezier(0.6,0.27,0.19,0.83)}@-moz-keyframes jquery-back-to-top-effect-kf-spin-inverse-180p{from{-moz-transform:rotate(180deg)}to{-moz-transform:rotate(360deg)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-inverse-180p{from{-webkit-transform:rotate(180deg)}to{-webkit-transform:rotate(360deg)}}@keyframes jquery-back-to-top-effect-kf-spin-inverse-180p{from{transform:rotate(180deg)}to{transform:rotate(360deg)}}@-moz-keyframes jquery-back-to-top-effect-kf-spin-inverse-180n{from{-moz-transform:rotate(0)}to{-moz-transform:rotate(-180deg)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-inverse-180n{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(-180deg)}}@keyframes jquery-back-to-top-effect-kf-spin-inverse-180n{from{transform:rotate(0)}to{transform:rotate(-180deg)}}.jquery-back-to-top-effect-zoom-on{-moz-animation:jquery-back-to-top-effect-kf-zoom-in .5s cubic-bezier(0.4,0,1,1);-webkit-animation:jquery-back-to-top-effect-kf-zoom-in .5s cubic-bezier(0.4,0,1,1);animation:jquery-back-to-top-effect-kf-zoom-in .5s cubic-bezier(0.4,0,1,1);transform:scale(1.0)}.jquery-back-to-top-effect-zoom-off{-moz-animation:jquery-back-to-top-fadeout 1s ease-in,jquery-back-to-top-effect-kf-zoom-out .4s cubic-bezier(0.79,0.22,0.36,0.6);-webkit-animation:jquery-back-to-top-fadeout 1s ease-in,jquery-back-to-top-effect-kf-zoom-out .4s cubic-bezier(0.79,0.22,0.36,0.6);animation:jquery-back-to-top-fadeout 1s ease-in,jquery-back-to-top-effect-kf-zoom-out .4s cubic-bezier(0.79,0.22,0.36,0.6);transform:scale(0.0)}@-moz-keyframes jquery-back-to-top-effect-kf-zoom-in{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@-webkit-keyframes jquery-back-to-top-effect-kf-zoom-in{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@keyframes jquery-back-to-top-effect-kf-zoom-in{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@-moz-keyframes jquery-back-to-top-effect-kf-zoom-out{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@-webkit-keyframes jquery-back-to-top-effect-kf-zoom-out{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@keyframes jquery-back-to-top-effect-kf-zoom-out{0{transform:scale(1.00)}25%{transform:scale(0.90)}50%{transform:scale(0.50)}75%{transform:scale(0.15)}100%{transform:scale(0.00)}} \ No newline at end of file +.jquery-back-to-top{cursor:pointer;display:block;overflow:hidden;text-align:center;text-overflow:clip;visibility:hidden;white-space:nowrap;word-wrap:break-word}.jquery-back-to-top i{display:none}.jquery-back-to-top-status-on{animation-iteration-count:1;opacity:1;visibility:visible}.jquery-back-to-top-status-off{animation-iteration-count:1;transition:visibility .4s;visibility:hidden}@-moz-keyframes jquery-back-to-top-fadein{0{opacity:0}100%{opacity:1}}@-webkit-keyframes jquery-back-to-top-fadein{0{opacity:0}100%{opacity:1}}@keyframes jquery-back-to-top-fadein{0{opacity:0}100%{opacity:1}}@-moz-keyframes jquery-back-to-top-fadeout{0{opacity:1}100%{opacity:0}}@-webkit-keyframes jquery-back-to-top-fadeout{0{opacity:1}100%{opacity:0}}@keyframes jquery-back-to-top-fadeout{0{opacity:1}100%{opacity:0}}.jquery-back-to-top-theme-default{-moz-border-radius:50%;-webkit-border-radius:50%;background:url('/backToTop.svg') no-repeat center 43%;border-radius:50%}.jquery-back-to-top-theme-default:hover{box-shadow:0 0 20px 0 rgba(0,0,0,0.40)}.jquery-back-to-top-theme-fawesome{-moz-border-radius:25%;-webkit-border-radius:25%;border-radius:25%;font-size:150%}.jquery-back-to-top-theme-fawesome i{display:inline-block}.jquery-back-to-top-effect-fade-on{-moz-animation:jquery-back-to-top-fadein .4s ease-in;-webkit-animation:jquery-back-to-top-fadein .4s ease-in;animation:jquery-back-to-top-fadein .4s ease-in}.jquery-back-to-top-effect-fade-off{-moz-animation:jquery-back-to-top-fadeout .4s ease-in;-webkit-animation:jquery-back-to-top-fadeout .4s ease-in;animation:jquery-back-to-top-fadeout .4s ease-in}.jquery-back-to-top-effect-spin-on{-moz-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);-webkit-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-180p .7s cubic-bezier(0.59,0.14,0.33,0.92)}.jquery-back-to-top-effect-spin-off{-moz-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);-webkit-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-180n .5s cubic-bezier(0.6,0.27,0.19,0.83)}@-moz-keyframes jquery-back-to-top-effect-kf-spin-180p{from{-moz-transform:rotate(180deg)}to{-moz-transform:rotate(0)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-180p{from{-webkit-transform:rotate(180deg)}to{-webkit-transform:rotate(0)}}@keyframes jquery-back-to-top-effect-kf-spin-180p{from{transform:rotate(180deg)}to{transform:rotate(0)}}@-moz-keyframes jquery-back-to-top-effect-kf-spin-180n{from{-moz-transform:rotate(0)}to{-moz-transform:rotate(180deg)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-180n{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(180deg)}}@keyframes jquery-back-to-top-effect-kf-spin-180n{from{transform:rotate(0)}to{transform:rotate(180deg)}}.jquery-back-to-top-effect-spin-inverse-on{-moz-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);-webkit-animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180p .7s cubic-bezier(0.59,0.14,0.33,0.92);animation:jquery-back-to-top-fadein .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180p .7s cubic-bezier(0.59,0.14,0.33,0.92)}.jquery-back-to-top-effect-spin-inverse-off{-moz-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);-webkit-animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180n .5s cubic-bezier(0.6,0.27,0.19,0.83);animation:jquery-back-to-top-fadeout .4s ease-in,jquery-back-to-top-effect-kf-spin-inverse-180n .5s cubic-bezier(0.6,0.27,0.19,0.83)}@-moz-keyframes jquery-back-to-top-effect-kf-spin-inverse-180p{from{-moz-transform:rotate(180deg)}to{-moz-transform:rotate(360deg)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-inverse-180p{from{-webkit-transform:rotate(180deg)}to{-webkit-transform:rotate(360deg)}}@keyframes jquery-back-to-top-effect-kf-spin-inverse-180p{from{transform:rotate(180deg)}to{transform:rotate(360deg)}}@-moz-keyframes jquery-back-to-top-effect-kf-spin-inverse-180n{from{-moz-transform:rotate(0)}to{-moz-transform:rotate(-180deg)}}@-webkit-keyframes jquery-back-to-top-effect-kf-spin-inverse-180n{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(-180deg)}}@keyframes jquery-back-to-top-effect-kf-spin-inverse-180n{from{transform:rotate(0)}to{transform:rotate(-180deg)}}.jquery-back-to-top-effect-zoom-on{-moz-animation:jquery-back-to-top-effect-kf-zoom-in .5s cubic-bezier(0.4,0,1,1);-webkit-animation:jquery-back-to-top-effect-kf-zoom-in .5s cubic-bezier(0.4,0,1,1);animation:jquery-back-to-top-effect-kf-zoom-in .5s cubic-bezier(0.4,0,1,1);transform:scale(1.0)}.jquery-back-to-top-effect-zoom-off{-moz-animation:jquery-back-to-top-fadeout 1s ease-in,jquery-back-to-top-effect-kf-zoom-out .4s cubic-bezier(0.79,0.22,0.36,0.6);-webkit-animation:jquery-back-to-top-fadeout 1s ease-in,jquery-back-to-top-effect-kf-zoom-out .4s cubic-bezier(0.79,0.22,0.36,0.6);animation:jquery-back-to-top-fadeout 1s ease-in,jquery-back-to-top-effect-kf-zoom-out .4s cubic-bezier(0.79,0.22,0.36,0.6);transform:scale(0.0)}@-moz-keyframes jquery-back-to-top-effect-kf-zoom-in{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@-webkit-keyframes jquery-back-to-top-effect-kf-zoom-in{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@keyframes jquery-back-to-top-effect-kf-zoom-in{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@-moz-keyframes jquery-back-to-top-effect-kf-zoom-out{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@-webkit-keyframes jquery-back-to-top-effect-kf-zoom-out{0{transform:scale(0)}25%{transform:scale(0.75)}50%{transform:scale(1.15)}75%{transform:scale(1.075)}100%{transform:scale(1.00)}}@keyframes jquery-back-to-top-effect-kf-zoom-out{0{transform:scale(1.00)}25%{transform:scale(0.90)}50%{transform:scale(0.50)}75%{transform:scale(0.15)}100%{transform:scale(0.00)}} diff --git a/public/css/editor.css b/public/css/editor.css index 8356eca..dffd7ce 100644 --- a/public/css/editor.css +++ b/public/css/editor.css @@ -1,5 +1,5 @@ -body, html { - background-color : transparent; +main, footer { + background-color: var(--docus-body-backgroundColor); } .dropbtn { diff --git a/public/css/main.css b/public/css/main.css index 8e5caac..4ea7f76 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -26,4 +26,4 @@ .block-hero { padding-top: var(--space-8) !important; } -} \ No newline at end of file +} diff --git a/public/css/translate.css b/public/css/translate.css new file mode 100644 index 0000000..9c92243 --- /dev/null +++ b/public/css/translate.css @@ -0,0 +1,67 @@ +main, footer { + background-color: var(--docus-body-backgroundColor); +} + +.translate .header { + text-align: center; + align-items: center; + margin-bottom: 2rem; +} + +.boxes { + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.translate textarea { + padding: 12px 20px; + border: 2px solid var(--color-gray-500); + border-radius: 4px; + background-color: var(--prose-code-block-backgroundColor); + height: 50vh; + font-family: inherit; +} + +.translate #box3:not(:placeholder-shown) { + color: var(--success); +} + +.translate textarea::placeholder { + font-size: 1rem; +} + +.translate textarea:focus-visible { + outline: 2px solid var(--color-primary-500); +} + +.translate .box { + position: relative; +} + +.translate button { + appearance: none; + background-color: var(--color-primary-600); + border: none; + border-radius: 0.5rem; + padding: 0.625rem 1.25rem; + color: var(--docus-body-color); + position: absolute; + cursor: pointer; +} + +.translate button:hover { + background-color: #47b7da; +} + +.translate .nextBtn { + bottom: 1rem; + right: 1rem; +} + +.translate .copyBtn { + top: 1rem; + right: 1rem; +} diff --git a/public/flappybird.txt b/public/flappybird.txt index 9414928..396e2ad 100644 --- a/public/flappybird.txt +++ b/public/flappybird.txt @@ -7,4 +7,4 @@ As said there is only one button, so with this button you can give your bird som So you need to keep clicking and keep the correct height, which isn't easy at all. https://forums.nesdev.com/viewtopic.php?f=22&t=11425 -https://www.youtube.com/watch?v=cFsm4O00aE0 \ No newline at end of file +https://www.youtube.com/watch?v=cFsm4O00aE0 diff --git a/public/google9e9775efc00ff979.html b/public/google9e9775efc00ff979.html index 1ed0d21..129ba5e 100644 --- a/public/google9e9775efc00ff979.html +++ b/public/google9e9775efc00ff979.html @@ -1 +1 @@ -google-site-verification: google9e9775efc00ff979.html \ No newline at end of file +google-site-verification: google9e9775efc00ff979.html diff --git a/public/js/backToTop.min.js b/public/js/backToTop.min.js index 205061d..4b73700 100644 --- a/public/js/backToTop.min.js +++ b/public/js/backToTop.min.js @@ -1 +1 @@ -(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(a){let _BackToTop=function(c){this._version="0.2.5";this._body=a("body");let _defaults={_positionX:"",_positionY:"",container:this._body,effect:"spin",enabled:true,height:70,icon:"fas fa-chevron-up",marginX:20,marginY:20,position:"bottom right",pxToTrigger:600,scrollAnimation:0,theme:"default",width:70,zIndex:999};this._options=a.extend(_defaults,c);this._obj=null;this._opened=false;this._actualTheme="";this._actualEffect={off:"",on:""};this._fixed=false;this._isWindowContainer=false;let self=this;this._randomID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(d){let r=Math.random()*16|0,v=d==="x"?r:(r&3|8);return v.toString(16)})};this._parseNumber=function(d){return parseFloat(d.toString())};this._warn=function(d){console.warn("jquery-backToTop v"+this._version+": "+d.toString())};this._applyTheme=function(d){if(this._obj===null){return}if(this._actualTheme!==""){this._obj.removeClass(this._actualTheme)}this._actualTheme="jquery-back-to-top-theme-"+d;this._obj.addClass(this._actualTheme);this._obj.css({color:this._options.backgroundColor,"float":this._options._positionX,width:this._options.width+"px","z-index":this._options.zIndex});this.resize(this._options.width,this._options.height);if(this._options._positionX==="right"){this._obj.css("right",this._options.marginX+"px")}else{this._obj.css("left",this._options.marginX+"px")}if(this._options._positionY==="bottom"){this._obj.css("bottom",this._options.marginY+"px")}else{this._obj.css("top",this._options.marginY+"px")}if(!this._fixed){this._obj.css("position","sticky")}else{this._obj.css("position","fixed")}};this.resize=function(d,e){this._obj.css({height:this._parseNumber(e)+"px","line-height":this._parseNumber(e)+"px",width:this._parseNumber(d)+"px"})};this.changeTheme=function(d){this._options.theme=d;this._applyTheme(d);if(this._opened){this.show(true)}};this._applyEffect=function(d){if(this._obj===null){return}if(this._actualEffect.on!==""){this._obj.removeClass(this._actualEffect.on)}if(this._actualEffect.off!==""){this._obj.removeClass(this._actualEffect.off)}this._actualEffect.on="jquery-back-to-top-status-on jquery-back-to-top-effect-"+d+"-on";this._actualEffect.off="jquery-back-to-top-status-off jquery-back-to-top-effect-"+d+"-off"};this.changeEffect=function(d){this._options.effect=d;this._applyEffect(d);if(this._opened){this.show(true)}};this.show=function(d){if(self._options.container.scrollTop()>self._options.pxToTrigger){this._obj.removeClass(this._actualEffect.off);if(d){this._obj.addClass("jquery-back-to-top-status-on")}else{this._obj.addClass(this._actualEffect.on)}self._opened=true}};this.hide=function(d){this._obj.removeClass(this._actualEffect.on);if(d){this._obj.addClass("jquery-back-to-top-status-off")}else{this._obj.addClass(this._actualEffect.off)}self._opened=false};this.toggle=function(d){if(self._opened){this.hide(d)}else{this.show(d)}};this.enable=function(d,e){this._options.enabled=d;if(!this._options.enabled&&this._opened){this.hide(e)}if(this._options.enabled&&!this._options){this.show(e)}};this._checkScroll=function(){if(!self._options.enabled){return}if(self._options.container.scrollTop()>self._options.pxToTrigger){if(self._opened){return}self.show()}else{if(!self._opened){return}self.hide()}};this._initEvent=function(){let $id=this._randomID();self._options.container.on("scroll."+$id,function(){self._checkScroll()});this._obj.off("click.backToTop");this._obj.on("click.backToTop",function(d){d.preventDefault();if(self._options.scrollAnimation===0){self._options.container.scrollTop(0)}else{if(self._isWindowContainer){a("html,body").stop().animate({scrollTop:0},self._options.scrollAnimation)}else{self._options.container.animate({scrollTop:0},self._options.scrollAnimation)}}})};if(a(this._options.container).find(".back-to-top-container").length===0){try{this._options.marginX=this._parseNumber(this._options.marginX)}catch(b){this._warn("marginX parameter not valid")}try{this._options.marginY=this._parseNumber(this._options.marginY)}catch(b){this._warn("marginY parameter not valid")}try{this._options.pxToTrigger=Math.max(0,this._parseNumber(this._options.pxToTrigger))}catch(b){this._warn("pxToTrigger parameter not valid")}try{this._options.scrollAnimation=Math.max(0,this._parseNumber(this._options.scrollAnimation))}catch(b){this._warn("scrollAnimation parameter not valid")}try{this._options.zIndex=this._parseNumber(this._options.zIndex)}catch(b){this._warn("zIndex parameter not valid")}if(!(this._options.container instanceof jQuery)||this._options.container.length===0){this._warn("Container is not jQuery instance or it's empty, using container=body and enabled=false");this._options.container=this._body;this._options.enabled=false}let $pos=this._options.position.toLowerCase().split(" ");if($pos.length!==2){this._warn("Position is not valid");$pos=["bottom","right"]}if($pos[0]==="left"||$pos[0]==="right"){self._options._positionX=$pos[0];self._options._positionY=$pos[1]}else{self._options._positionX=$pos[1];self._options._positionY=$pos[0]}if(!(self._options._positionX==="left"||self._options._positionX==="right")){this._warn("Position in X is not correct (left/right)");self._options._positionX="right"}if(!(self._options._positionY==="bottom"||self._options._positionY==="top")){this._warn("Position in Y is not correct (bottom/top)");self._options._positionY="bottom"}let $id=this._randomID();a(this._options.container).append('
');self._obj=a("#"+$id);if(this._options.container.get(0)===this._body.get(0)){self._isWindowContainer=true;self._options.container=a(window);self._fixed=true}else{if(self._options._positionY==="top"){this._warn("Position top inside div is actually not allowed");self._options._positionY="bottom"}}this._applyTheme(this._options.theme);this._applyEffect(this._options.effect);this._initEvent()}};a.backToTop=function(b){return new _BackToTop(b)}})); \ No newline at end of file +(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(a){let _BackToTop=function(c){this._version="0.2.5";this._body=a("body");let _defaults={_positionX:"",_positionY:"",container:this._body,effect:"spin",enabled:true,height:70,icon:"fas fa-chevron-up",marginX:20,marginY:20,position:"bottom right",pxToTrigger:600,scrollAnimation:0,theme:"default",width:70,zIndex:999};this._options=a.extend(_defaults,c);this._obj=null;this._opened=false;this._actualTheme="";this._actualEffect={off:"",on:""};this._fixed=false;this._isWindowContainer=false;let self=this;this._randomID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(d){let r=Math.random()*16|0,v=d==="x"?r:(r&3|8);return v.toString(16)})};this._parseNumber=function(d){return parseFloat(d.toString())};this._warn=function(d){console.warn("jquery-backToTop v"+this._version+": "+d.toString())};this._applyTheme=function(d){if(this._obj===null){return}if(this._actualTheme!==""){this._obj.removeClass(this._actualTheme)}this._actualTheme="jquery-back-to-top-theme-"+d;this._obj.addClass(this._actualTheme);this._obj.css({color:this._options.backgroundColor,"float":this._options._positionX,width:this._options.width+"px","z-index":this._options.zIndex});this.resize(this._options.width,this._options.height);if(this._options._positionX==="right"){this._obj.css("right",this._options.marginX+"px")}else{this._obj.css("left",this._options.marginX+"px")}if(this._options._positionY==="bottom"){this._obj.css("bottom",this._options.marginY+"px")}else{this._obj.css("top",this._options.marginY+"px")}if(!this._fixed){this._obj.css("position","sticky")}else{this._obj.css("position","fixed")}};this.resize=function(d,e){this._obj.css({height:this._parseNumber(e)+"px","line-height":this._parseNumber(e)+"px",width:this._parseNumber(d)+"px"})};this.changeTheme=function(d){this._options.theme=d;this._applyTheme(d);if(this._opened){this.show(true)}};this._applyEffect=function(d){if(this._obj===null){return}if(this._actualEffect.on!==""){this._obj.removeClass(this._actualEffect.on)}if(this._actualEffect.off!==""){this._obj.removeClass(this._actualEffect.off)}this._actualEffect.on="jquery-back-to-top-status-on jquery-back-to-top-effect-"+d+"-on";this._actualEffect.off="jquery-back-to-top-status-off jquery-back-to-top-effect-"+d+"-off"};this.changeEffect=function(d){this._options.effect=d;this._applyEffect(d);if(this._opened){this.show(true)}};this.show=function(d){if(self._options.container.scrollTop()>self._options.pxToTrigger){this._obj.removeClass(this._actualEffect.off);if(d){this._obj.addClass("jquery-back-to-top-status-on")}else{this._obj.addClass(this._actualEffect.on)}self._opened=true}};this.hide=function(d){this._obj.removeClass(this._actualEffect.on);if(d){this._obj.addClass("jquery-back-to-top-status-off")}else{this._obj.addClass(this._actualEffect.off)}self._opened=false};this.toggle=function(d){if(self._opened){this.hide(d)}else{this.show(d)}};this.enable=function(d,e){this._options.enabled=d;if(!this._options.enabled&&this._opened){this.hide(e)}if(this._options.enabled&&!this._options){this.show(e)}};this._checkScroll=function(){if(!self._options.enabled){return}if(self._options.container.scrollTop()>self._options.pxToTrigger){if(self._opened){return}self.show()}else{if(!self._opened){return}self.hide()}};this._initEvent=function(){let $id=this._randomID();self._options.container.on("scroll."+$id,function(){self._checkScroll()});this._obj.off("click.backToTop");this._obj.on("click.backToTop",function(d){d.preventDefault();if(self._options.scrollAnimation===0){self._options.container.scrollTop(0)}else{if(self._isWindowContainer){a("html,body").stop().animate({scrollTop:0},self._options.scrollAnimation)}else{self._options.container.animate({scrollTop:0},self._options.scrollAnimation)}}})};if(a(this._options.container).find(".back-to-top-container").length===0){try{this._options.marginX=this._parseNumber(this._options.marginX)}catch(b){this._warn("marginX parameter not valid")}try{this._options.marginY=this._parseNumber(this._options.marginY)}catch(b){this._warn("marginY parameter not valid")}try{this._options.pxToTrigger=Math.max(0,this._parseNumber(this._options.pxToTrigger))}catch(b){this._warn("pxToTrigger parameter not valid")}try{this._options.scrollAnimation=Math.max(0,this._parseNumber(this._options.scrollAnimation))}catch(b){this._warn("scrollAnimation parameter not valid")}try{this._options.zIndex=this._parseNumber(this._options.zIndex)}catch(b){this._warn("zIndex parameter not valid")}if(!(this._options.container instanceof jQuery)||this._options.container.length===0){this._warn("Container is not jQuery instance or it's empty, using container=body and enabled=false");this._options.container=this._body;this._options.enabled=false}let $pos=this._options.position.toLowerCase().split(" ");if($pos.length!==2){this._warn("Position is not valid");$pos=["bottom","right"]}if($pos[0]==="left"||$pos[0]==="right"){self._options._positionX=$pos[0];self._options._positionY=$pos[1]}else{self._options._positionX=$pos[1];self._options._positionY=$pos[0]}if(!(self._options._positionX==="left"||self._options._positionX==="right")){this._warn("Position in X is not correct (left/right)");self._options._positionX="right"}if(!(self._options._positionY==="bottom"||self._options._positionY==="top")){this._warn("Position in Y is not correct (bottom/top)");self._options._positionY="bottom"}let $id=this._randomID();a(this._options.container).append('
');self._obj=a("#"+$id);if(this._options.container.get(0)===this._body.get(0)){self._isWindowContainer=true;self._options.container=a(window);self._fixed=true}else{if(self._options._positionY==="top"){this._warn("Position top inside div is actually not allowed");self._options._positionY="bottom"}}this._applyTheme(this._options.theme);this._applyEffect(this._options.effect);this._initEvent()}};a.backToTop=function(b){return new _BackToTop(b)}})); diff --git a/public/js/editor.js b/public/js/editor.js deleted file mode 100644 index af7f576..0000000 --- a/public/js/editor.js +++ /dev/null @@ -1,197 +0,0 @@ -let radioContainerHTML; -function editorMain() { - if (!radioContainerHTML) { - loadsystems(); - } - const radioContainer = document.getElementById('radioContainer'); - radioContainer.innerHTML = radioContainerHTML; - var startBtn = document.getElementById('start'); - var systemSelect = document.getElementById('systemSelect'); - var select2 = document.getElementById('select2'); - startBtn.style = "display:none;" - systemSelect.style = "display:block;" - document.getElementById('p2d').addEventListener('change', function (e) { - document.getElementById('ptwod').style = (document.getElementById('p2d').checked ? 'display:block;' : 'display:none'); - }) - document.getElementById('offline').addEventListener('change', function (e) { - document.getElementById('pathToData').style = (document.getElementById('offline').checked ? 'display:none;' : 'display:block'); - document.getElementById('singleFile').style = (document.getElementById('offline').checked ? 'display:block;' : 'display:none'); - document.getElementById('bf').style = (document.getElementById('offline').checked ? 'display:none;' : 'display:block'); - document.getElementById('ss').style = (document.getElementById('offline').checked ? 'display:none;' : 'display:block'); - }) - document.getElementById('systemSelected').addEventListener('click', function (e) { - let system = null; - var radios = document.getElementsByName('systemSelect'); - for (var i = 0; i < radios.length; i++) { - if (radios[i].checked) { - system = radios[i].value; - break; - }; - }; - if (system === null) { return }; - for (var i = 0; i < systems.length; i++) { - if (systems[i].core === system) { - system = systems[i] - break - } - } - if (system.lightgun) { - document.getElementById('lg').style = "display:block;" - } - if (system.bios) { - document.getElementById('bf').style = "display:block;" - } - if (system.mouse) { - document.getElementById('sm').style = "display:block;" - } - if (system.multitap) { - document.getElementById('smt').style = "display:block;" - } - window.selectedCoreData = system; - window.scrollTo(0, 0); - systemSelect.style = "display:none;" - select2.style = "display:block;" - }) - document.getElementById('generateFile').addEventListener('click', async function (e) { - let data = {} - let zip = new JSZip(); - let file = document.getElementById('gameRom').files[0] - let ejsColor = document.getElementById('ejsColor') - let errors = document.getElementById('errors') - let path2Data = document.getElementById('path2Data') - let biosFile = document.getElementById('biosFile') - let offline = document.getElementById('offline') - let stateOnLoad = document.getElementById('stateOnLoad') - if (ejsColor.value && ejsColor.value.trim() !== '') { - if (!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(ejsColor.value)) { - errors.innerHTML = '

An error occured When Generating

' - return - } - } - if (!file) { - errors.innerHTML = '

An error occured When Generating

' - return - } - let gameName = (document.getElementById('nameOfGame').value && document.getElementById('nameOfGame').value.trim() !== '') ? document.getElementById('nameOfGame').value : file.name; - try { - //let isChromebook = window.navigator.userAgent.includes("CrOS"); - //window.sendLog("A user just generated a page with the EmulatorJS code helper.\n Game Name: "+gameName+"\n File name: "+file.name+"\n System: "+window.selectedCoreData.core+"\n Offline: "+(offline.checked ? (document.getElementById('offlinePack').checked ? "pack" : "yes") : "no")+"\n Custom path to data: "+((document.getElementById('p2d').checked&&path2Data.value.trim()) ? path2Data.value : "no")+"\n Ad Url: "+(document.getElementById('adUrl').value.trim() ? "<"+document.getElementById('adUrl').value.trim()+">" : "no")+"\n Is Chromebook: "+(isChromebook ? "yes" : "no")); - } catch (e) { } - data['EJS_player'] = '#game'; - data['EJS_core'] = window.selectedCoreData.core; - if (document.getElementById('snesMouse').checked) { - data['EJS_mouse'] = true; - } - if (document.getElementById('snesMultiTap').checked) { - data['EJS_multitap'] = true; - } - if (document.getElementById('nameOfGame').value && document.getElementById('nameOfGame').value.trim() !== '') { - data['EJS_gameName'] = document.getElementById('nameOfGame').value; - } - if (document.getElementById('adUrl').value && document.getElementById('adUrl').value.trim() !== '') { - data['EJS_AdUrl'] = document.getElementById('adUrl').value; - } - if (ejsColor.value && ejsColor.value.trim() !== '') { - data['EJS_color'] = ejsColor.value; - } - if (document.getElementById('startOnLoad').checked) { - data['EJS_startOnLoaded'] = true; - } - if (document.getElementById('p2d').checked && path2Data.value && path2Data.value.trim() !== '') { - data['EJS_pathtodata'] = path2Data.value; - if (!data['EJS_pathtodata'].endsWith('/')) { - data['EJS_pathtodata'] += '/'; - } - } else { - data['EJS_pathtodata'] = 'https://cdn.emulatorjs.org/stable/data/'; - } - - let zipOut = true; - let fileData = '\n \n \n \n \n \n
\n
\n
\n