diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..5d6e794 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v14.16.1 diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 27f6562..9e31e58 100755 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -39,12 +39,12 @@ module.exports = { link: '/guide/', }, { - text: 'Config', - link: '/config/' + text: 'Development', + link: '/development/' }, { - text: 'VuePress', - link: 'https://v1.vuepress.vuejs.org' + text: 'Shop', + link: 'https://blueforcer.de/shop/' } ], /* diff --git a/docs/development/README.md b/docs/development/README.md new file mode 100644 index 0000000..c1112a7 --- /dev/null +++ b/docs/development/README.md @@ -0,0 +1,62 @@ +## Awtrix HD Development + +The development ecosystem of Awtrix HD has improved substantially over previous +Awtrix versions, making it easier than before to write your own apps. If you've +worked with javascript based web frameworks before, chances are you'll be +developing your own Awtrix HD apps in no time. + +Awtrix HD apps can be written either in [TypeScript](ts) or [JavaScript](js) +and run directly in the browser and optionally in [node.js](nodejs). + +For frontend work you will make use of the [Vue framework](vue) and our +custom-built development tools that make creating and running your apps +extremely quick and fun. + +::: tip +Because of the improved tooling and code editor support for TypeScript, we +strongly recommend you to write your apps in TypeScript as well, though pure +JavaScript is also supported if you prefer. +::: + +### Centralized app library + +Awtrix HD uses a centralized app library that is hosted on GitHub. Therefore +your app's source code will be public, which makes it easier for other users to +trust your code isn't harmful. + +The App library repository is a good source for more information about the app +publishing process. + +### Requirements + +Awtrix HD is written for node.js 14.16. It might be able to run on older node.js +versions, but we don't guarantee it. To make your work easier we recommend to +use at least node.js 14.16 as well. + +Because our own Awtrix HD image uses node.js 14.16 too, you might even want to +have this exact version installed to make sure that your app functions properly +on all other Awtrix HD devices. + +::: tip +If you already have another version of Node.js installed, you can use +a version manager such as [nvm](nvm) to install multiple versions at the +same time. +::: + +#### Supplemental reading material +If you are totally unfamiliar with the languages and technologies mentioned +above, or if you just want to refresh your knowledge, these links might help +you out a bit. + +- [Vue Documentation](vue-guide) +- [TypeScript Handbook](ts-handbook) +- [Git Introduction](git) + +[ts]: https://www.typescriptlang.org/ +[js]: https://developer.mozilla.org/en-US/docs/Web/JavaScript +[nodejs]: https://nodejs.org/en/about/ +[vue]: https://vuejs.org/ +[ts-handbook]: https://www.typescriptlang.org/docs/ +[git]: https://git-scm.com/docs/gittutorial +[vue-guide]: https://v3.vuejs.org/guide/introduction.html +[nvm]: https://github.com/nvm-sh/nvm diff --git a/docs/guide/development/getting-started.md b/docs/development/getting-started.md similarity index 100% rename from docs/guide/development/getting-started.md rename to docs/development/getting-started.md diff --git a/docs/guide/README.md b/docs/guide/README.md deleted file mode 100755 index fc82aec..0000000 --- a/docs/guide/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Introduction - -VuePress is composed of two parts: a [minimalistic static site generator](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/core) with a Vue-powered [theming system](https://v1.vuepress.vuejs.org/theme/) and [Plugin API](https://v1.vuepress.vuejs.org/plugin/), and a [default theme](https://v1.vuepress.vuejs.org/theme/default-theme-config.html) optimized for writing technical documentation. It was created to support the documentation needs of Vue's own sub projects. - -Each page generated by VuePress has its own pre-rendered static HTML, providing great loading performance and is SEO-friendly. Once the page is loaded, however, Vue takes over the static content and turns it into a full Single-Page Application (SPA). Additional pages are fetched on demand as the user navigates around the site. diff --git a/docs/guide/development/README.md b/docs/guide/development/README.md deleted file mode 100644 index 065bb6b..0000000 --- a/docs/guide/development/README.md +++ /dev/null @@ -1,30 +0,0 @@ -## Awtrix HD Development - -The development ecosystem of Awtrix HD has improved substantially over previous -Awtrix versions, making it easier than before to write your own apps. - -Awtrix HD apps can be written either in TypeScript or JavaScript and use the -Vue framework for the frontend. - -### Centralized app library - -Awtrix HD uses a centralized app library. You can configure your own 3rd party -library, but if you want your app to be available on the official app library, -they will need to be open source and reviewed by one of Awtrix's maintainers. - -All apps can be found in the awtrix-hd-apps repository on GitHub, which is also -the place to - -### Requirements - -Awtrix HD runs on node.js 10.2, so you will need to have it installed as well -in order to run it. -Awtrix HD is built to be run on Node.js 10.2, so if possible try to install -this exact version. If you already have another version of Node.js installed, -you can use a version manager such as nvm to install multiple versions at the -same time. - -#### Supplemental reading material -- Vue Documentation -- TypeScript Hand Book -- Git Introduction diff --git a/docs/guide/using-vue.md b/docs/guide/using-vue.md deleted file mode 100755 index 71ac45b..0000000 --- a/docs/guide/using-vue.md +++ /dev/null @@ -1,9 +0,0 @@ -# Using Vue in Markdown - -## Browser API Access Restrictions - -Because VuePress applications are server-rendered in Node.js when generating static builds, any Vue usage must conform to the [universal code requirements](https://ssr.vuejs.org/en/universal.html). In short, make sure to only access Browser / DOM APIs in `beforeMount` or `mounted` hooks. - -If you are using or demoing components that are not SSR friendly (for example containing custom directives), you can wrap them inside the built-in `` component: - -## diff --git a/package.json b/package.json new file mode 100644 index 0000000..8ee8413 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "root", + "private": true, + "scripts": { + "docs:dev": "vuepress dev docs", + "docs:build": "vuepress build docs" + }, + "devDependencies": { + "babel-plugin-transform-regenerator": "^6.26.0", + "cache-loader": "^4.1.0", + "lerna": "^3.22.1", + "vuepress": "^1.6.0", + "vuepress-plugin-code-switcher": "^1.0.3" + } +} diff --git a/packages/common/package-lock.json b/packages/common/package-lock.json index 513b219..0677e6a 100644 --- a/packages/common/package-lock.json +++ b/packages/common/package-lock.json @@ -1,6 +1,6 @@ { "name": "@awtrix/common", - "version": "0.1.9", + "version": "0.1.10", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -124,9 +124,9 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "source-map": { "version": "0.6.1",