diff --git a/components/counter/counters.module.scss b/components/counter/counters.module.scss
deleted file mode 100644
index 4a5d0c8..0000000
--- a/components/counter/counters.module.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-.counter {
- border: 1px solid #ccc;
- border-radius: 5px;
- padding: 2px 6px;
- margin: 12px 0 0;
-}
diff --git a/components/counter/counters.tsx b/components/counter/counters.tsx
deleted file mode 100644
index eed17bb..0000000
--- a/components/counter/counters.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-// Example from https://beta.reactjs.org/learn
-
-import { useState } from 'react'
-import styles from './counters.module.scss'
-
-function MyButton() {
- const [count, setCount] = useState(0)
-
- function handleClick() {
- setCount(count + 1)
- }
-
- return (
-
-
-
- )
-}
-
-export default function MyApp() {
- return
-}
diff --git a/components/iframe.tsx b/components/iframe.tsx
new file mode 100644
index 0000000..84e6366
--- /dev/null
+++ b/components/iframe.tsx
@@ -0,0 +1,8 @@
+import { Bleed } from "nextra-theme-docs";
+
+export default function Iframe(props) {
+ return <>
+
+ {/* */}
+ >
+}
\ No newline at end of file
diff --git a/components/logo.tsx b/components/logo.tsx
index 82c4d6c..fd6d005 100644
--- a/components/logo.tsx
+++ b/components/logo.tsx
@@ -5,7 +5,7 @@ export default function Logo(props) {
{props.title && <>
- {props.title}
+ {props.title}
>}
>
)
diff --git a/main.scss b/main.scss
index 0291b18..ec0eb03 100644
--- a/main.scss
+++ b/main.scss
@@ -49,6 +49,7 @@
--mainTeal: rgba(32, 143, 163, 1);
--blackGlass: rgba(0, 0, 0, 0.75);
--silverGlass: rgba(0, 0, 0, 0.35);
+ --piratechsBlue: rgba(1, 47, 74, 1);
--mainGlass: rgba(255, 28, 11, 0.75);
--dangerColor: rgba(255, 28, 11, 0.75);
--softWhite: rgba(255, 255, 255, 0.87);
@@ -57,8 +58,108 @@
--transition: 0.24s cubic-bezier(0.77, 0.2, 0.05, 1) !important;
}
+.line {
+ &::before {
+ color: var(--softWhite) !important;
+ }
+}
+
+article {
+ padding: 1em 0;
+ main {
+ max-width: 92rem !important;
+ width: 100% !important;
+ padding: 0;
+ }
+}
+
+.nextra-toc {
+ width: auto;
+ padding: 0 !important;
+ margin: 0 !important;
+ .nextra-scrollbar {
+ p, ul {
+ padding: 0 0 1em 2em;
+ li {
+ position: relative;
+ a {
+ font-size: 13px;
+ margin: 0;
+ max-width: 200px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ }
+ }
+ div {
+ padding: 2em 0 0 2em !important;
+ }
+ }
+}
+
+[dir="ltr"] .ltr\:-nx-mr-4 {
+ margin-right: -2rem;
+}
+
+html[class~="dark"] .dark\:nx-border-neutral-800 {
+ border-color: hsl(var(--nextra-primary-hue)100% 94%/.1) !important;
+}
+
+.dark {
+
+ .nx-sticky {
+ background: black !important;
+ }
+
+ html[class~="dark"] .dark\:nx-shadow-\[0_-12px_16px_\#111\] {
+ background: black !important;
+ }
+
+ aside {
+ border-right: solid 1px var(--bg);
+ background: black !important;
+ }
+
+ body {
+ background: black !important;
+ }
+
+ article {
+ background: var(--piratechsBlue);
+ }
+
+ .nextra-toc {
+ border-left: solid 1px var(--bg);
+ }
+
+ header, nav {
+ background: black !important;
+ border-bottom: solid 1px var(--bg);
+ --tw-shadow: 0 -12px 16px #111;
+ }
+
+ html[class~=dark] .dark\:nx-bg-dark {
+ background: black !important;
+ }
+
+ footer {
+ div {
+ background: black;
+ }
+ }
+
+}
+
+.textOverflow {
+ max-width: 60%;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ margin: 0;
+}
+
html[class~=dark] .dark\:nx-bg-dark {
- background: black !important;
padding: 1em;
margin: 0;
}
@@ -71,10 +172,28 @@ html[class~=dark] .dark\:nx-text-neutral-500, html[class~=dark] .dark\:nx-text-g
}
}
-header, nav {
- background: black !important;
- border-bottom: solid 1px var(--bg);
+main {
--tw-shadow: 0 -12px 16px #111;
+ // border-top: solid 1px var(--bg);
+ // border-left: solid 1px var(--bg);
+ // border-right: solid 1px var(--bg);
+}
+
+.nx-max-w-\[90rem\] {
+ max-width: 100% !important;
+ padding: 0em;
+}
+
+@media (min-width: 768px) {
+ aside {
+ width: auto !important;
+ }
+}
+
+footer {
+ div {
+ padding: 1em !important;
+ }
}
.logo {
@@ -101,28 +220,11 @@ header, nav {
}
}
-main {
- --tw-shadow: 0 -12px 16px #111;
- // border-top: solid 1px var(--bg);
- border-left: solid 1px var(--bg);
- border-right: solid 1px var(--bg);
-}
-
-footer {
- display: none;
-}
-
-.nx-max-w-\[90rem\] {
- max-width: 100% !important;
- padding: 1.5em !important;
-}
-
body {
// margin: 0;
// padding: 0;
// width: 100%;
- // overflow-x: hidden;
- background: black !important;
+ overflow-x: hidden;
font-family: Montserrat, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
@@ -669,14 +771,6 @@ body {
// }
// }
-// .textOverflow {
-// max-width: 60%;
-// text-overflow: ellipsis;
-// white-space: nowrap;
-// overflow: hidden;
-// margin: 0;
-// }
-
// .alert {
// top: 50%;
// left: 50%;
diff --git a/pages/_meta.json b/pages/_meta.json
index 77e2bcf..b5043fe 100644
--- a/pages/_meta.json
+++ b/pages/_meta.json
@@ -1,11 +1,27 @@
{
- "index": "Home",
- "archive": "Archive",
- "schedule": "Schedule",
+ "index": {
+ "title": "Home"
+ },
+ "projects": "Projects",
+ "code-snippets": "Code Snippets",
"about": {
"title": "About",
"type": "page"
},
+ "company": {
+ "title": "Company",
+ "type": "menu",
+ "items": {
+ "about": {
+ "title": "Piratechs",
+ "href": "https://piratechs.com/"
+ },
+ "contact": {
+ "title": "Text Me",
+ "href": "sms:6787903980"
+ }
+ }
+ },
"contact": {
"title": "Contact ↗",
"type": "page",
diff --git a/pages/about.mdx b/pages/about.mdx
index ec6faed..55777c6 100644
--- a/pages/about.mdx
+++ b/pages/about.mdx
@@ -1,3 +1,3 @@
# About
-This is the about page! This page is shown on the navbar.
+This is the About Page
\ No newline at end of file
diff --git a/pages/archive.mdx b/pages/archive.mdx
deleted file mode 100644
index 2400563..0000000
--- a/pages/archive.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
-# Archived Tasks
-
-```js filename="demo.js" {3} copy
-let a = 1;
-
-console.log(a);
-```
-
-## Component
-
-import { useState } from 'react'
-
-{/* Import CSS modules */}
-import styles from '../components/counter/counters.module.scss'
-
-export const Counter = () => {
- const [count, setCount] = useState(0);
- return (
-
-
-
- );
-};
-
-
-
-## External Component
-
-import Counters from '../components/counter/counters'
-
-
diff --git a/pages/code-snippets.mdx b/pages/code-snippets.mdx
new file mode 100644
index 0000000..401196d
--- /dev/null
+++ b/pages/code-snippets.mdx
@@ -0,0 +1,15 @@
+# Code
+
+These are some Code Snippets that I always find helpful, maybe you will too!
+
+
+
+## Tips
+
+If you are using JavaScript instead of TypeScript, you may need to ***Remove Type Definitions.***
+
+Turn `(objectWithTypeDefinition?: typeDefinition)` into `(objectWithoutTypeDefinition)`.
+
+If you are using CSS instead of SCSS, you may need to take the children out of the parent!
+
+Turn `Parent { Child { style } }` into `Parent Child { style }`.
\ No newline at end of file
diff --git a/pages/code-snippets/_meta.json b/pages/code-snippets/_meta.json
new file mode 100644
index 0000000..5cfbee0
--- /dev/null
+++ b/pages/code-snippets/_meta.json
@@ -0,0 +1,6 @@
+{
+ "typescript": "TypeScript",
+ "javascript": "JavaScript",
+ "scss": "SCSS",
+ "css": "CSS"
+}
\ No newline at end of file
diff --git a/pages/code-snippets/css.mdx b/pages/code-snippets/css.mdx
new file mode 100644
index 0000000..0d586ab
--- /dev/null
+++ b/pages/code-snippets/css.mdx
@@ -0,0 +1,20 @@
+# CSS
+
+If you are using CSS instead of SCSS, you may need to take the children out of the parent!
+
+Turn `Parent { Child { style } }` into `Parent Child { style }`.
+
+## textOverflow
+
+```scss showLineNumbers filename="textOverflow.scss" {1,3} copy
+.textOverflowParent {
+ position: relative;
+ .textOverflow {
+ margin: 0;
+ max-width: 60%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+}
+```
\ No newline at end of file
diff --git a/pages/code-snippets/javascript.mdx b/pages/code-snippets/javascript.mdx
new file mode 100644
index 0000000..b150446
--- /dev/null
+++ b/pages/code-snippets/javascript.mdx
@@ -0,0 +1,92 @@
+# JavaScript
+
+If you are using JavaScript instead of TypeScript, you may need to ***Remove Type Definitions.***
+
+Turn `(objectWithTypeDefinition?: typeDefinition)` into `(objectWithoutTypeDefinition)`.
+
+Code gets more ***Advanced*** towards the bottom!
+
+
+
+## getCurrentPageName
+
+```js showLineNumbers filename="getCurrentPageName.js" {2} copy
+export const getCurrentPageName = () => {
+ return window.location.hash.slice(window.location.hash.lastIndexOf(`/`)).replace(`/`, ``);
+};
+```
+
+## getNumberFromString
+
+```js showLineNumbers filename="getNumberFromString.js" {1,4} copy
+export const getNumberFromString = (string: string) => {
+ let result: any = string.match(/\d+/);
+ let number = parseInt(result[0]);
+ return number;
+};
+```
+
+## createHTMLElementFromXMLString
+
+```js showLineNumbers filename="createHTMLElementFromXMLString.js" {1,4} copy
+export const createHTMLElementFromXMLString = (xmlString: string) => {
+ let div = document.createElement('div');
+ div.innerHTML = xmlString.trim();
+ return div.firstChild;
+};
+```
+
+## cutOffTextAndReplace
+
+```js showLineNumbers filename="cutOffTextAndReplace.js" {1,5,8} copy
+export const cutOffTextAndReplace = (string: string, end: number, replacement?: string) => {
+ if (!replacement) {
+ replacement = `...` || `-`;
+ }
+ return string?.length > end ? string?.substring(0, end - 1) + replacement : string;
+};
+```
+
+```
+
+## capitalizeAllWordsInString
+
+```js showLineNumbers filename="capitalizeAllWordsInString.js" {1,4} copy
+export const capitalizeAllWordsInString = (string: string) => {
+ if (string != null || string != undefined) {
+ return string.replace(` `,` `).split(` `).map((word: any) => {
+ return word?.charAt(0)?.toUpperCase() + word?.slice(1).toLowerCase()).join();
+ };
+ }
+};
+```
+
+## removeDuplicateObjectFromArray
+
+```js showLineNumbers filename="removeDuplicateObjectFromArray.js" {1,5,8} copy
+export const removeDuplicateObjectFromArray = (arrayOfObjects: any) => {
+ const uniqueArray = arrayOfObjects?.filter((value?: any, index?: any) => {
+ const _value = JSON.stringify(value);
+ return index === arrayOfObjects?.findIndex((obj?: any) => {
+ return JSON.stringify(obj) === _value;
+ });
+ });
+ return uniqueArray;
+};
+```
+
+## getFormValuesFromFormFields
+
+```js showLineNumbers filename="getFormValuesFromFormFields.js" {1,5,7,9} copy
+export const getFormValuesFromFormFields = (formFields: any) => {
+ let formValues = [];
+ for (let i = 0; i < formFields.length; i++) {
+ let field = formFields[i];
+ if (field.type != `submit`) {
+ formValues.push({
+ [field.name]: field.value,
+ });
+ return formValues;
+ };
+ };
+};
\ No newline at end of file
diff --git a/pages/code-snippets/scss.mdx b/pages/code-snippets/scss.mdx
new file mode 100644
index 0000000..42ab283
--- /dev/null
+++ b/pages/code-snippets/scss.mdx
@@ -0,0 +1,20 @@
+# SCSS
+
+If you are using CSS instead of SCSS, you may need to take the children out of the parent!
+
+Turn `Parent { Child { style } }` into `Parent Child { style }`.
+
+## textOverflow
+
+```scss showLineNumbers filename="textOverflow.scss" {1,3} copy
+.textOverflowParent {
+ position: relative;
+ .textOverflow {
+ margin: 0;
+ max-width: 60%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+}
+```
\ No newline at end of file
diff --git a/pages/code-snippets/typescript.mdx b/pages/code-snippets/typescript.mdx
new file mode 100644
index 0000000..d33907c
--- /dev/null
+++ b/pages/code-snippets/typescript.mdx
@@ -0,0 +1,92 @@
+# TypeScript
+
+If you are using JavaScript instead of TypeScript, you may need to ***Remove Type Definitions.***
+
+Turn `(objectWithTypeDefinition?: typeDefinition)` into `(objectWithoutTypeDefinition)`.
+
+Code gets more ***Advanced*** towards the bottom!
+
+
+
+## getCurrentPageName
+
+```js showLineNumbers filename="getCurrentPageName.js" {2} copy
+export const getCurrentPageName = () => {
+ return window.location.hash.slice(window.location.hash.lastIndexOf(`/`)).replace(`/`, ``);
+};
+```
+
+## getNumberFromString
+
+```js showLineNumbers filename="getNumberFromString.js" {1,4} copy
+export const getNumberFromString = (string: string) => {
+ let result: any = string.match(/\d+/);
+ let number = parseInt(result[0]);
+ return number;
+};
+```
+
+## createHTMLElementFromXMLString
+
+```js showLineNumbers filename="createHTMLElementFromXMLString.js" {1,4} copy
+export const createHTMLElementFromXMLString = (xmlString: string) => {
+ let div = document.createElement('div');
+ div.innerHTML = xmlString.trim();
+ return div.firstChild;
+};
+```
+
+## cutOffTextAndReplace
+
+```js showLineNumbers filename="cutOffTextAndReplace.js" {1,5,8} copy
+export const cutOffTextAndReplace = (string: string, end: number, replacement?: string) => {
+ if (!replacement) {
+ replacement = `...` || `-`;
+ }
+ return string?.length > end ? string?.substring(0, end - 1) + replacement : string;
+};
+```
+
+```
+
+## capitalizeAllWordsInString
+
+```js showLineNumbers filename="capitalizeAllWordsInString.js" {1,4} copy
+export const capitalizeAllWordsInString = (string: string) => {
+ if (string != null || string != undefined) {
+ return string.replace(` `,` `).split(` `).map((word: any) => {
+ return word?.charAt(0)?.toUpperCase() + word?.slice(1).toLowerCase()).join();
+ };
+ }
+};
+```
+
+## removeDuplicateObjectFromArray
+
+```js showLineNumbers filename="removeDuplicateObjectFromArray.js" {1,5,8} copy
+export const removeDuplicateObjectFromArray = (arrayOfObjects: any) => {
+ const uniqueArray = arrayOfObjects?.filter((value?: any, index?: any) => {
+ const _value = JSON.stringify(value);
+ return index === arrayOfObjects?.findIndex((obj?: any) => {
+ return JSON.stringify(obj) === _value;
+ });
+ });
+ return uniqueArray;
+};
+```
+
+## getFormValuesFromFormFields
+
+```js showLineNumbers filename="getFormValuesFromFormFields.js" {1,5,7,9} copy
+export const getFormValuesFromFormFields = (formFields: any) => {
+ let formValues = [];
+ for (let i = 0; i < formFields.length; i++) {
+ let field = formFields[i];
+ if (field.type != `submit`) {
+ formValues.push({
+ [field.name]: field.value,
+ });
+ return formValues;
+ };
+ };
+};
\ No newline at end of file
diff --git a/pages/index.mdx b/pages/index.mdx
index 02ac09a..7f3062e 100644
--- a/pages/index.mdx
+++ b/pages/index.mdx
@@ -1,15 +1,17 @@
-# Home
+# ProductIVF
-Welcome to ProductIVF! This is a productivity app.
+Welcome to ProductIVF! This is an app where I just store code I like. Right now im experimenting with making my own productivity app. I guess I am still trying to figure out what to do with this website.
-## What is ProductIVF?
+## Who am I?
-A **simple**, **powerful** and **flexible** site generation framework with everything you love from Next.js.
+A **Developer**, **Designer** and **Digital Media Expert** who codes for fun as well as professionally as a tutor or for my day job at Mitsubishi Electric!
-## Documentation
+## Latest Task
-The documentation is available at [ProductIVF Github](https://github.com/strawhat19/ProductIVF).
+***Sortable Draggable and Droppable Lists*** (Work in Progress).
-import List from '../components/list/list'
+import Iframe from '../components/iframe'
-
\ No newline at end of file
+
+
+You can see my projects at [Piratechs](https://piratechs.com).
\ No newline at end of file
diff --git a/pages/projects.mdx b/pages/projects.mdx
new file mode 100644
index 0000000..c4ddcfe
--- /dev/null
+++ b/pages/projects.mdx
@@ -0,0 +1,3 @@
+# Projects
+
+These are some of my Projects.
diff --git a/pages/projects/_meta.json b/pages/projects/_meta.json
new file mode 100644
index 0000000..07e13f5
--- /dev/null
+++ b/pages/projects/_meta.json
@@ -0,0 +1,8 @@
+{
+ "game": {
+ "title": "Game",
+ "theme": {
+ "layout": "full"
+ }
+ }
+}
\ No newline at end of file
diff --git a/pages/projects/game.mdx b/pages/projects/game.mdx
new file mode 100644
index 0000000..0c064af
--- /dev/null
+++ b/pages/projects/game.mdx
@@ -0,0 +1,11 @@
+# Game
+
+## This is the Game Page.
+
+```
+We Code Games
+```
+
+import Iframe from '../../components/iframe'
+
+
\ No newline at end of file
diff --git a/pages/schedule.mdx b/pages/schedule.mdx
deleted file mode 100644
index e3bd600..0000000
--- a/pages/schedule.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
-# Schedule
-
-This is the index page for the Schedule Pages!
diff --git a/pages/schedule/events.mdx b/pages/schedule/events.mdx
deleted file mode 100644
index d951b4d..0000000
--- a/pages/schedule/events.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
-# Events
-
-Satori (悟り) is a Japanese Buddhist term for awakening, "comprehension; understanding".
-
-## This is the Events Page.
-
-```
-We Code Things
-```
diff --git a/theme.config.tsx b/theme.config.tsx
index e0cdab8..b18f610 100644
--- a/theme.config.tsx
+++ b/theme.config.tsx
@@ -1,5 +1,4 @@
import React from 'react';
-let appName = `ProductIVF`;
import Logo from './components/logo';
import { DocsThemeConfig } from 'nextra-theme-docs';
@@ -13,6 +12,29 @@ const config: DocsThemeConfig = {
return {
titleTemplate: `%s | ProductIVF`
}
+ },
+ feedback: {
+ content: null,
+ // content: <>form>,
+ },
+ editLink: {
+ text: null,
+ // text: `Quote goes here`,
+ // component: <>to> as any,
+ },
+ // sidebar: {
+ // titleComponent: <>Yo>
+ // },
+ // toc: {
+ // extraContent: <>Hello>,
+ // },
+ // navbar: {
+ // extraContent: <>Hello>,
+ // },
+ head: ,
+ logo: ,
+ search: {
+ placeholder: `Search...`
},
// faviconGlyph: `Pr`,
project: {
@@ -23,10 +45,8 @@ const config: DocsThemeConfig = {
},
docsRepositoryBase: 'https://github.com/strawhat19/ProductIVF/',
footer: {
- text: appName,
+ text: `ProductIVF Copyright Ⓒ 2023`,
},
- head: ,
- logo: ,
}
export default config