Skip to content

Commit

Permalink
Import PoC
Browse files Browse the repository at this point in the history
  • Loading branch information
zvecr committed Sep 22, 2024
1 parent 166ef53 commit ae16656
Show file tree
Hide file tree
Showing 27 changed files with 2,033 additions and 1 deletion.
33 changes: 33 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Generate Site

on:
push:
branches:
- main

pull_request:

jobs:
generate:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20

- name: Build Site
run: |
yarn install
yarn build
- name: Deploy
if: ${{ github.event_name != 'pull_request' }}
uses: JamesIves/[email protected]
with:
branch: gh-pages
folder: dist
git-config-name: QMK Bot
git-config-email: [email protected]
82 changes: 81 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,81 @@
# qmk_compile_keymap
# Vuetify (Default)

This is the official scaffolding tool for Vuetify, designed to give you a head start in building your new Vuetify application. It sets up a base template with all the necessary configurations and standard directory structure, enabling you to begin development without the hassle of setting up the project from scratch.

## ❗️ Important Links

- 📄 [Docs](https://vuetifyjs.com/)
- 🚨 [Issues](https://issues.vuetifyjs.com/)
- 🏬 [Store](https://store.vuetifyjs.com/)
- 🎮 [Playground](https://play.vuetifyjs.com/)
- 💬 [Discord](https://community.vuetifyjs.com)

## 💿 Install

Set up your project using your preferred package manager. Use the corresponding command to install the dependencies:

| Package Manager | Command |
|---------------------------------------------------------------|----------------|
| [yarn](https://yarnpkg.com/getting-started) | `yarn install` |
| [npm](https://docs.npmjs.com/cli/v7/commands/npm-install) | `npm install` |
| [pnpm](https://pnpm.io/installation) | `pnpm install` |
| [bun](https://bun.sh/#getting-started) | `bun install` |

After completing the installation, your environment is ready for Vuetify development.

## ✨ Features

- 🖼️ **Optimized Front-End Stack**: Leverage the latest Vue 3 and Vuetify 3 for a modern, reactive UI development experience. [Vue 3](https://v3.vuejs.org/) | [Vuetify 3](https://vuetifyjs.com/en/)
- 🗃️ **State Management**: Integrated with [Pinia](https://pinia.vuejs.org/), the intuitive, modular state management solution for Vue.
- 🚦 **Routing and Layouts**: Utilizes Vue Router for SPA navigation and vite-plugin-vue-layouts for organizing Vue file layouts. [Vue Router](https://router.vuejs.org/) | [vite-plugin-vue-layouts](https://github.com/JohnCampionJr/vite-plugin-vue-layouts)
- 💻 **Enhanced Development Experience**: Benefit from TypeScript's static type checking and the ESLint plugin suite for Vue, ensuring code quality and consistency. [TypeScript](https://www.typescriptlang.org/) | [ESLint Plugin Vue](https://eslint.vuejs.org/)
-**Next-Gen Tooling**: Powered by Vite, experience fast cold starts and instant HMR (Hot Module Replacement). [Vite](https://vitejs.dev/)
- 🧩 **Automated Component Importing**: Streamline your workflow with unplugin-vue-components, automatically importing components as you use them. [unplugin-vue-components](https://github.com/antfu/unplugin-vue-components)
- 🛠️ **Strongly-Typed Vue**: Use vue-tsc for type-checking your Vue components, and enjoy a robust development experience. [vue-tsc](https://github.com/johnsoncodehk/volar/tree/master/packages/vue-tsc)

These features are curated to provide a seamless development experience from setup to deployment, ensuring that your Vuetify application is both powerful and maintainable.

## 💡 Usage

This section covers how to start the development server and build your project for production.

### Starting the Development Server

To start the development server with hot-reload, run the following command. The server will be accessible at [http://localhost:3000](http://localhost:3000):

```bash
yarn dev
```

(Repeat for npm, pnpm, and bun with respective commands.)

> Add NODE_OPTIONS='--no-warnings' to suppress the JSON import warnings that happen as part of the Vuetify import mapping. If you are on Node [v21.3.0](https://nodejs.org/en/blog/release/v21.3.0) or higher, you can change this to NODE_OPTIONS='--disable-warning=5401'. If you don't mind the warning, you can remove this from your package.json dev script.
### Building for Production

To build your project for production, use:

```bash
yarn build
```

(Repeat for npm, pnpm, and bun with respective commands.)

Once the build process is completed, your application will be ready for deployment in a production environment.

## 💪 Support Vuetify Development

This project is built with [Vuetify](https://vuetifyjs.com/en/), a UI Library with a comprehensive collection of Vue components. Vuetify is an MIT licensed Open Source project that has been made possible due to the generous contributions by our [sponsors and backers](https://vuetifyjs.com/introduction/sponsors-and-backers/). If you are interested in supporting this project, please consider:

- [Requesting Enterprise Support](https://support.vuetifyjs.com/)
- [Sponsoring John on Github](https://github.com/users/johnleider/sponsorship)
- [Sponsoring Kael on Github](https://github.com/users/kaelwd/sponsorship)
- [Supporting the team on Open Collective](https://opencollective.com/vuetify)
- [Becoming a sponsor on Patreon](https://www.patreon.com/vuetify)
- [Becoming a subscriber on Tidelift](https://tidelift.com/subscription/npm/vuetify)
- [Making a one-time donation with Paypal](https://paypal.me/vuetify)

## 📑 License
[MIT](http://opensource.org/licenses/MIT)

Copyright (c) 2016-present Vuetify, LLC
18 changes: 18 additions & 0 deletions components.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}

/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
Compile: typeof import('./src/components/Compile.vue')['default']
ConfigOptions: typeof import('./src/components/ConfigOptions.vue')['default']
copy: typeof import('./src/components/ConfigOptions copy.vue')['default']
Editor: typeof import('./src/components/Editor.vue')['default']
Features: typeof import('./src/components/Features.vue')['default']
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
SideBar: typeof import('./src/components/SideBar.vue')['default']
}
}
17 changes: 17 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/favicon.png" />
<title>QMK Keymap Compiler</title>
</head>

<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>

</html>
31 changes: 31 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"name": "qmk_compile_keymap",
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview"
},
"dependencies": {
"@guolao/vue-monaco-editor": "^1.5.4",
"@mdi/font": "7.4.47",
"@vueuse/core": "^11.1.0",
"file-saver": "^2.0.5",
"roboto-fontface": "*",
"vue": "^3.4.31",
"vuetify": "^3.6.11"
},
"devDependencies": {
"@babel/types": "^7.24.7",
"@fortawesome/fontawesome-free": "^6.6.0",
"@types/node": "^20.14.10",
"@vitejs/plugin-vue": "^5.0.5",
"sass": "1.77.6",
"typescript": "^5.4.2",
"unplugin-fonts": "^1.1.1",
"unplugin-vue-components": "^0.27.2",
"vite": "^5.3.3",
"vite-plugin-vuetify": "^2.0.3",
"vue-tsc": "^2.0.26"
}
}
1 change: 1 addition & 0 deletions public/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
keymap.zvecr.com
Binary file added public/favicon.ico
Binary file not shown.
Binary file added public/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions src/App.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<template>
<v-app>
<v-app-bar :elevation="2">
<template v-slot:prepend>
<v-fab-transition>
<v-img src="@/assets/logo.svg" height="32px" width="48px" />
</v-fab-transition>
</template>

<v-app-bar-title>QMK Keymap Compiler</v-app-bar-title>

<template v-slot:append>
<v-switch class="d-none d-sm-flex" inset true-icon="fa-regular fa-moon" false-icon="fa-regular fa-sun"
true-value="dark" false-value="light" v-model="mode" />
<v-divider class="mx-2 my-4 d-none d-md-flex" vertical />
<v-btn class="d-none d-md-flex" size="small" href="https://discord.gg/qmk" icon="fa-brands fa-discord" />
<v-btn class="d-none d-md-flex" size="small" href="https://github.com/qmk/qmk_browser" icon="fa-brands fa-github" />
</template>
</v-app-bar>

<v-main>
<SideBar/>
<Editor/>
</v-main>

<v-footer app class="text-center d-flex flex-column" :elevation="2">
<small>This project is maintained by QMK collaborators and contributors like you!</small>
</v-footer>
</v-app>
</template>

<script lang="ts" setup>
import { useColorMode } from "@vueuse/core";
import { useTheme } from "vuetify";
const theme = useTheme();
const mode = useColorMode({
onChanged: (mode) => {
theme.global.name.value = mode;
},
});
theme.global.name.value = mode.value;
</script>
Loading

0 comments on commit ae16656

Please sign in to comment.