├── .travis.yml
├── LICENSE
├── README.md
├── docs
├── .env.enc
├── .firebase
│ └── hosting.LnZ1ZXByZXNzXGRpc3Q.cache
├── .firebaserc
├── .gitignore
├── .vuepress
│ ├── admonition.styl
│ ├── analytics.js
│ ├── body-styles.styl
│ ├── buildAssets
│ │ ├── api
│ │ │ ├── api.png
│ │ │ ├── references.png
│ │ │ └── structures.png
│ │ ├── arrow-up.svg
│ │ ├── command-palette.png
│ │ ├── examples-activity-monitor.mp4
│ │ ├── examples-activity-monitor.png
│ │ ├── examples-hash.png
│ │ ├── examples-price.png
│ │ ├── getting-started
│ │ │ ├── project-start-demo.jpg
│ │ │ └── project-start-demo.mp4
│ │ ├── guide
│ │ │ ├── getting-started.png
│ │ │ ├── getting-started
│ │ │ │ ├── enter-project-name.png
│ │ │ │ ├── open-project.png
│ │ │ │ └── start-new-project.png
│ │ │ ├── hello-world-intro.mp4
│ │ │ ├── hello-world-intro.png
│ │ │ ├── intro
│ │ │ │ ├── build-focus.png
│ │ │ │ ├── build.png
│ │ │ │ ├── new-project.png
│ │ │ │ ├── run.png
│ │ │ │ └── setup-editor.png
│ │ │ ├── introduction.png
│ │ │ ├── quark-ide.png
│ │ │ ├── quark-ide
│ │ │ │ ├── changed-settings-markers.png
│ │ │ │ ├── explorer.png
│ │ │ │ ├── extensible.mp4
│ │ │ │ ├── extensible.png
│ │ │ │ ├── introduction.mp4
│ │ │ │ ├── introduction.png
│ │ │ │ ├── multiple-terminals.png
│ │ │ │ ├── setting-group.png
│ │ │ │ ├── settings.mp4
│ │ │ │ ├── settings.png
│ │ │ │ ├── terminal.mp4
│ │ │ │ ├── terminal.png
│ │ │ │ ├── themes.mp4
│ │ │ │ ├── themes.png
│ │ │ │ └── ui-overview.png
│ │ │ ├── setting-up-quark.png
│ │ │ ├── showcase.png
│ │ │ └── showcase
│ │ │ │ ├── control-system-1.mp4
│ │ │ │ ├── control-system-1.png
│ │ │ │ ├── control-system-2.mp4
│ │ │ │ ├── control-system-2.png
│ │ │ │ ├── news-app.mp4
│ │ │ │ ├── news-app.png
│ │ │ │ ├── scientific-charts.mp4
│ │ │ │ ├── scientific-charts.png
│ │ │ │ ├── stock.mp4
│ │ │ │ ├── stock.png
│ │ │ │ ├── system-monitor.mp4
│ │ │ │ ├── system-monitor.png
│ │ │ │ ├── web-browser.mp4
│ │ │ │ └── web-browser.png
│ │ ├── hello-world-app
│ │ │ └── directory-structure.png
│ │ ├── key-binding-component.png
│ │ ├── landing-page-svgs
│ │ │ ├── configuration-ui.svg
│ │ │ ├── control-hardware.svg
│ │ │ ├── cross-platform.svg
│ │ │ ├── error-overlay.svg
│ │ │ ├── find-and-replace.svg
│ │ │ ├── integrated-terminal.svg
│ │ │ ├── key-binding.svg
│ │ │ ├── monaco-editor.svg
│ │ │ ├── multiple-themes.svg
│ │ │ ├── nodejs.svg
│ │ │ ├── npm-support.svg
│ │ │ ├── smart-autoCompletion.svg
│ │ │ ├── typescript.svg
│ │ │ ├── under-the-hood.svg
│ │ │ ├── web-technologies.svg
│ │ │ └── webpack-build.svg
│ │ ├── libraries
│ │ │ ├── create-vue-web-component-example.png
│ │ │ ├── installed-libs-list.png
│ │ │ ├── npm-client-search.png
│ │ │ ├── npm-install-status.png
│ │ │ ├── react-functional-component-view.png
│ │ │ ├── serial-port-in-dom.png
│ │ │ ├── serial-port-list.png
│ │ │ └── view-preinstalled-libs-menu.png
│ │ ├── quick-open.png
│ │ ├── release-channel.png
│ │ └── signature
│ │ │ ├── github.svg
│ │ │ ├── instagram.svg
│ │ │ ├── linkedin.svg
│ │ │ ├── mail.svg
│ │ │ ├── twitter.svg
│ │ │ └── website.svg
│ ├── components
│ │ ├── Breadcrumbs.vue
│ │ ├── CarbonAds.vue
│ │ ├── Download.vue
│ │ ├── DropDown.vue
│ │ ├── Header.vue
│ │ ├── Landing.vue
│ │ ├── Landing2.vue
│ │ ├── Message.vue
│ │ ├── MetaCard.vue
│ │ ├── ReleaseNotes.vue
│ │ ├── SocialIcons.vue
│ │ ├── Tag.vue
│ │ ├── landing-components
│ │ │ ├── companyLogos.vue
│ │ │ ├── floaters.vue
│ │ │ ├── hero-download.vue
│ │ │ ├── hero-features.vue
│ │ │ ├── hero-section.vue
│ │ │ ├── hero-top.vue
│ │ │ ├── svg.js
│ │ │ └── util.js
│ │ ├── mermaid.vue
│ │ └── signature.vue
│ ├── config.js
│ ├── enhanceApp.js
│ ├── fly-annoying.styl
│ ├── fly-mixin.styl
│ ├── landing.scss
│ ├── override.styl
│ ├── public
│ │ ├── assets
│ │ │ ├── custom.css
│ │ │ ├── eina-700.woff2
│ │ │ ├── ionic-prism.css
│ │ │ ├── ionic.css
│ │ │ └── material-icons.woff2
│ │ ├── images
│ │ │ ├── apple-logo.svg
│ │ │ ├── arrow.svg
│ │ │ ├── background-base.svg
│ │ │ ├── background.svg
│ │ │ ├── download.svg
│ │ │ ├── icon-svg.svg
│ │ │ ├── icon.png
│ │ │ ├── linux-logo.png
│ │ │ ├── old-icon.png
│ │ │ └── windows-logo.png
│ │ ├── logos
│ │ │ ├── css.svg
│ │ │ ├── javascript.svg
│ │ │ ├── nodejs.svg
│ │ │ ├── npm.svg
│ │ │ ├── react_ts.svg
│ │ │ ├── stylus.svg
│ │ │ ├── typescript.svg
│ │ │ └── webpack.svg
│ │ ├── pwa
│ │ │ ├── images
│ │ │ │ └── icons
│ │ │ │ │ ├── icon-128x128.png
│ │ │ │ │ ├── icon-144x144.png
│ │ │ │ │ ├── icon-152x152.png
│ │ │ │ │ ├── icon-192x192.png
│ │ │ │ │ ├── icon-384x384.png
│ │ │ │ │ ├── icon-512x512.png
│ │ │ │ │ ├── icon-72x72.png
│ │ │ │ │ └── icon-96x96.png
│ │ │ └── manifest.json
│ │ └── references
│ │ │ └── commands
│ │ │ └── registered-command.png
│ ├── scoped-containers.scss
│ ├── sidebar.styl
│ ├── style.styl
│ └── theme
│ │ ├── Disqus.vue
│ │ ├── Layout.vue
│ │ ├── Layouttt.vue
│ │ └── PageBottom.vue
├── FAQ
│ ├── about.md
│ ├── glossary.md
│ ├── license.md
│ └── terms-of-service.md
├── README.md
├── azure-pipelines.yml
├── cloud-storage-key.json.enc
├── cloudbuild.yaml
├── devtime.md
├── download
│ ├── README.md
│ └── insiders.md
├── examples
│ ├── activity-monitor.md
│ ├── arduino-dashboard.md
│ ├── hash.md
│ ├── mirror.md
│ └── prices.md
├── firebase.json
├── guide
│ ├── getting-started.md
│ ├── hello-world-app.md
│ ├── intro.md
│ ├── quark-ide.md
│ ├── setup.md
│ └── showcase.md
├── libraries
│ ├── electron-js.md
│ ├── intro.md
│ ├── react-js.md
│ ├── serialport.md
│ └── vue-js.md
├── package-lock.json
├── package.json
├── references
│ ├── app.md
│ ├── clipboard.md
│ ├── commands.md
│ ├── icons.md
│ ├── storage.md
│ ├── util.md
│ ├── views.md
│ └── window.md
├── releases
│ ├── Quark-v0.1.md
│ ├── Quark-v0.2.md
│ ├── Quark-v0.3.md
│ ├── Quark-v0.4.md
│ ├── Quark-v0.5.md
│ └── current-release.md
├── scripts
│ ├── check-files.ts
│ ├── cloud-storage-hosting.ts
│ ├── convert-images.ts
│ ├── convert-videos.ts
│ ├── create-site-map.ts
│ ├── download-raw-content.ts
│ ├── electron-dependent.ts
│ ├── fix-shasum.ts
│ ├── generate-service-worker.ts
│ ├── make-release-dir.ts
│ ├── non-electron-dependent.ts
│ ├── open-links.ts
│ ├── post-build.ts
│ ├── purge-cache.ts
│ ├── send-build-notification.ts
│ ├── sw.js
│ ├── types.js
│ ├── util.ts
│ ├── versions.json
│ └── video-speed-defaults.ts
├── snippets
│ ├── auto-update.md
│ ├── configuring-build.md
│ └── convert-existing-electron-app.md
├── structures
│ ├── ICommand.md
│ ├── IKeyBindingRegister.md
│ ├── ISnackbarButton.md
│ ├── MemoryStore.md
│ ├── PersistantStore.md
│ ├── SnackbarItem.md
│ ├── bottomview-controller.md
│ ├── button-field.md
│ ├── context-menu-ref.md
│ ├── icon.md
│ ├── input-field.md
│ ├── menu-item.md
│ ├── menu-ref.md
│ ├── select-field.md
│ ├── sideview-controller.md
│ ├── tabsview-controller.md
│ └── view-provider.md
├── style-guide
│ ├── README.md
│ └── creating-templates.md
├── travis-secrets.tar.enc
├── tsconfig.json
└── version-assets
│ ├── insiders
│ ├── __broken-releases.json
│ ├── __downloads.json
│ ├── __package.json
│ ├── __shasum.json
│ └── __versions.json
│ └── stable
│ ├── __broken-releases.json
│ ├── __downloads.json
│ ├── __package.json
│ ├── __shasum.json
│ └── __versions.json
└── images
├── control-system.gif
├── hello-world.gif
├── news-app.gif
├── plot-charts.gif
├── stock-analyzing-app.gif
├── system-monitor.gif
└── web-browser.gif
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: required
2 | dist: trusty
3 | language: node_js
4 | cache:
5 | - npm
6 | notifications:
7 | slack:
8 | secure: ymYswTlnKqLE/s8fbI3EJ4iRPPn3Jqr7YYJOnIFaDUpI3COD8Qce3VJ1barYTF1HVW9sfm95VSnYes7JajgQSf8YHzohIarxPDvTJTN3FvKH0c+7b32reBLHbiWbK5T1dnT6OAQ1GNeXMOsBZHxdkMeIIbRQdwUGO4qlt4X0RGcsZjhY7zZhrp+4ACb0r6eaGAUEaJpkVkSor1M3WUmY848aw1UMvBuioaYWTrX8KLGAaKfIxrnNSQnNUVCMcBQqzSsJTcdifD9oZFJoCu00oGrR9x+Yk6Iw8gEolwXuTWcNI2pgN2IFfzKOJFRWdOKoSmaOV39MJY4Y/Wy+Ht51ig4wYKBBYO+NqcJ0QYItRO7hde/hb2rHaONpAjDkrEIMqN/TlIBOFXfFCJvXfFi5uksappYRWcYeKiXVaxVXloqMt8Do+fXyw2x67QLJ3Kkb9FgK3ur6WO0FLIwy7jA+wkINgzlQjYD8Iu2QRvbGmnyL5xlph8MBouLrDb90aDRQEvFZ76kAjs43o2rVDmWQtsvgrKK2ZaUsoYzigu2j78PFN0Hbi4NFLe8oHV6upC7ymPwuCt2Z4H2Fh2B73X6BdKTtRWfn69Wx/954FK5lkHQ5JH+KiTXSGtH4fe4GxOPwlMG7D1+w9Xlq5J8LeN4cKZCL4fUnPZIrR8A04gi0ImI=
9 | email:
10 | on_success: never
11 | on_failure: change
12 | matrix:
13 | include:
14 | - os: linux
15 | node_js: lts/*
16 | before_install:
17 | - cd docs
18 | - openssl aes-256-cbc -K $encrypted_4afc4fad916e_key -iv $encrypted_4afc4fad916e_iv
19 | -in travis-secrets.tar.enc -out travis-secrets.tar -d
20 | - tar xvf travis-secrets.tar -C ./
21 | - npm i -g firebase-tools
22 | install:
23 | - npm install
24 | script:
25 | - npm run cloud-build
26 | - npm run post-build
27 | - npm run deploy-to-bucket
28 | deploy:
29 | provider: firebase
30 | token:
31 | secure: LF/KYTxiB8tcvwpBlg5z0W/BHk868uTZGLDFgD48ajEM7rRMBmKrPlZx9tV8xFCHsXEmBTGThDGXGzvPZsXD6m8kSM+fRZuf5Hz97R2aFYwwi0HpE/mtbBedClhDCxX2hA8/2fJ9avitjXGCf3ZrBBYJ55du0pf55iQyybQAtgZV3AMbtcUg5NZZvTGm4L2xfCLUtloAw7YnpYDndtfEa/1Mne0rYP+aQTN/NgL9xTK2uDeLqi2HHH9wWjg2X16DfiQzeB24v9pv/AgfIk0X0gEi1NpdQwpmS2zYJzl0Re9J9npxWajUCSmHv1Mi5pKypxudTi5Pn6VcDydfdE3/4gJx7KHXjueyzpGaCkM3GhsJbggEWWE2gOcEyNB98TLNl/v5nM2zjEPxOytkwgHGgNZEc7xFV4BTnujQLaGdhtzHdxP4Joqd4YmRPTgD2MpqtLnm+H9aXs1D8gkpJ0US2AunqZYdUGoodI/YNhUeJBzZtEcZFhv2gtYjuAHsCqAUgBqYZyb7ai6CbOSuGgBAbvwOGXrLdS/X/nlXVgN4plNHrbR9h8I63GH2KyR6jiG/rH0x1M0CpvMsEddUzynXTVXLkJiEHpuCj9F6AHe1sy1cp/ZUH+c2nnQh5lXTasrCCZCnx4u+BHgjTd2qzcWOX273Syhn6paLpwcL/AndMbU=
32 | project: diy-mechatronics
33 | local_dir: "./.vuepress/dist"
34 | skip_cleanup: true
35 | env:
36 | global:
37 | secure: tuHY+rHarKQ2vz5NBUWGqNbWM65Nkd6blCGCQPwA2mwSpFj6P34sjPeBfP/ugtLX93oBXs3upkRFgdjwELYO82TC+0guRkvP+fQVqHCkkhvZkgZwbixTVbiryS1/TRffjY94tB3gRhaTT4rlk1f7pCskSVNo9xMMSrl67DV8iodbjnlXai+FI6TLmipX20pda3Ln3dA2HuOOk2CPf6b5BZeR5W6VQkWoPye+EX3zQSIu3zNwwbwyQIRQ7QOHNbpBcvHMexSYuJaqxZwSybg+8uMokNaP7rxy5cSnibveP20KzUkwK06fms6q7Wi3KZhcCqq3bc0Pv4JY95wQJe07rux5Vh9ri/Ss4ozckXAP2Af88nR6Xchke0bFCjfHMZ5Q7glfh5WqE6B+x8N13lSSUt4zEE7/LTnJpShIe8EfRB+ZP3c/VvMfnokbEJWpx/KHYiOhoHVBPUZUbs6Sy7SyHo7XX7XRDXKhNLC/f5YrS8sec5pZfz9aRnM+7IAsjJTIwmrK50E8q9UIDnlx1qLm6j+6k0JHIi3OQLwessXVJthScWon0XOwkza4x+QN1QbhE/Io/12Hc2I1h974IAMad+jMGgqOKImnzIRqr9aA68jllU4WpuF66jYC/CyTk2NKgpjD6HFA7YzP6wZRXg2vk1480FGm/59CvvRVpRA/hgg=
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Nishkalkashyap
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # The Repository
2 |
3 | [](https://travis-ci.org/Nishkalkashyap/Quark-docs)
4 | [](https://github.com/Nishkalkashyap/Quark-docs)
5 |
6 |
7 | This repo contains the website and documentation for the [Quark](https://quarkjs.io) product.
8 |
9 | ## Quark
10 |
11 | 
12 |
13 | Quark is a general purpose software tool specifically designed to help you create projects written in HTML, CSS and JavaScript with native desktop app like capabilities.
14 |
15 | ## Goals
16 |
17 | #### ⚡ Rapid prototyping and project development
18 | Projects build with Quark should be easy and quick to setup.
19 |
20 | #### 💻 Cross-platform
21 | Projects build with Quark should run on all platforms such as Windows, Linux and Mac, sharing the same code base.
22 |
23 | #### 🐱 Simplicity
24 | Quark is built with simplicity in mind, so that creating projects with Quark is enjoyable, easy to learn, and accessible to just about anyone with basic programming skills.
25 |
26 | ## Showcase
27 |
28 | #### System resource monitor
29 | Monitors system resources. View CPU loads, memory usage, process explorer.
30 |
31 | 
32 |
33 | #### Digital control systems
34 | Digital control system made with Arduino UNO using pre-installed serialport library.
35 |
36 | 
37 |
38 |
39 | #### Plot Charts
40 | Plot charts using plotly.js
41 |
42 | 
43 |
44 | #### Stock analyzing app
45 | Analyze historic/real-time stock data.
46 |
47 | 
48 |
49 | #### News App
50 | News app with multiple country and source filter.
51 |
52 | 
53 |
54 | #### Web Browser
55 | Web browser with multiple split view support.
56 |
57 | 
58 |
59 |
60 | ## Feedback
61 |
62 | * Ask a question on Stack Overflow
63 | * [File an issue](https://github.com/Nishkalkashyap/Quark-docs/issues)
--------------------------------------------------------------------------------
/docs/.env.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.env.enc
--------------------------------------------------------------------------------
/docs/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "diy-mechatronics"
4 | },
5 | "targets": {
6 | "diy-mechatronics": {
7 | "hosting": {
8 | "docs": [
9 | "quark-documentation"
10 | ]
11 | }
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (https://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # TypeScript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # Yarn Integrity file
55 | .yarn-integrity
56 |
57 | # dotenv environment variables file
58 | .env
59 | .env.test
60 |
61 | # parcel-bundler cache (https://parceljs.org/)
62 | .cache
63 |
64 | # next.js build output
65 | .next
66 |
67 | # nuxt.js build output
68 | .nuxt
69 |
70 | # vuepress build output
71 | .vuepress/dist
72 |
73 | # Serverless directories
74 | .serverless/
75 |
76 | # FuseBox cache
77 | .fusebox/
78 |
79 | # DynamoDB Local files
80 | .dynamodb/
81 |
82 | videos/
83 | videos/output
84 | # .vuepress/public/c-assets/
85 | dist-previous/
86 | tags/
87 | snippets/README.md
88 | FAQ/README.md
89 | guide/README.md
90 | references/README.md
91 | structures/README.md
92 | all/README.md
93 | releases/README.md
94 | libraries/README.md
95 | examples/README.md
96 |
97 | .vuepress/public/g-images/
98 | cloud-storage-key.json
99 | routes.json
100 | travis-secrets.tar
--------------------------------------------------------------------------------
/docs/.vuepress/analytics.js:
--------------------------------------------------------------------------------
1 | module.exports = addAnalytics = (router, GA_ID) => {
2 | if (process.env.NODE_ENV === 'production' && GA_ID && typeof window !== 'undefined') {
3 | (function (i, s, o, g, r, a, m) {
4 | i['GoogleAnalyticsObject'] = r
5 | i[r] = i[r] || function () {
6 | (i[r].q = i[r].q || []).push(arguments)
7 | }
8 | i[r].l = 1 * new Date()
9 | a = s.createElement(o)
10 | m = s.getElementsByTagName(o)[0]
11 | a.async = 1
12 | a.src = g
13 | m.parentNode.insertBefore(a, m)
14 | })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga')
15 |
16 | ga('create', GA_ID, 'auto');
17 | ga('set', 'anonymizeIp', true);
18 |
19 | let previous;
20 | router.afterEach(function (to) {
21 | if (previous != to.path) {
22 | previous = to.path;
23 | ga('send', 'pageview', to.path);
24 | }
25 | });
26 | }
27 | }
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/api/api.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/api/api.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/api/references.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/api/references.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/api/structures.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/api/structures.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/arrow-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/command-palette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/command-palette.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/examples-activity-monitor.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/examples-activity-monitor.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/examples-activity-monitor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/examples-activity-monitor.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/examples-hash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/examples-hash.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/examples-price.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/examples-price.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/getting-started/project-start-demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/getting-started/project-start-demo.jpg
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/getting-started/project-start-demo.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/getting-started/project-start-demo.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/getting-started.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/getting-started.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/getting-started/enter-project-name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/getting-started/enter-project-name.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/getting-started/open-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/getting-started/open-project.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/getting-started/start-new-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/getting-started/start-new-project.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/hello-world-intro.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/hello-world-intro.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/hello-world-intro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/hello-world-intro.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/intro/build-focus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/intro/build-focus.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/intro/build.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/intro/build.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/intro/new-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/intro/new-project.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/intro/run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/intro/run.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/intro/setup-editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/intro/setup-editor.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/introduction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/introduction.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/changed-settings-markers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/changed-settings-markers.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/explorer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/explorer.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/extensible.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/extensible.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/extensible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/extensible.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/introduction.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/introduction.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/introduction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/introduction.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/multiple-terminals.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/multiple-terminals.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/setting-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/setting-group.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/settings.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/settings.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/settings.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/terminal.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/terminal.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/terminal.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/themes.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/themes.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/themes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/themes.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/quark-ide/ui-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/quark-ide/ui-overview.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/setting-up-quark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/setting-up-quark.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/control-system-1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/control-system-1.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/control-system-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/control-system-1.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/control-system-2.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/control-system-2.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/control-system-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/control-system-2.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/news-app.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/news-app.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/news-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/news-app.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/scientific-charts.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/scientific-charts.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/scientific-charts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/scientific-charts.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/stock.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/stock.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/stock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/stock.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/system-monitor.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/system-monitor.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/system-monitor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/system-monitor.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/web-browser.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/web-browser.mp4
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/guide/showcase/web-browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/guide/showcase/web-browser.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/hello-world-app/directory-structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/hello-world-app/directory-structure.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/key-binding-component.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/key-binding-component.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/configuration-ui.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/cross-platform.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/error-overlay.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/find-and-replace.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/integrated-terminal.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/key-binding.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/monaco-editor.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/multiple-themes.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/nodejs.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/npm-support.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/smart-autoCompletion.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/typescript.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/under-the-hood.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/web-technologies.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/landing-page-svgs/webpack-build.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/create-vue-web-component-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/create-vue-web-component-example.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/installed-libs-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/installed-libs-list.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/npm-client-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/npm-client-search.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/npm-install-status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/npm-install-status.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/react-functional-component-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/react-functional-component-view.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/serial-port-in-dom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/serial-port-in-dom.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/serial-port-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/serial-port-list.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/libraries/view-preinstalled-libs-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/libraries/view-preinstalled-libs-menu.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/quick-open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/quick-open.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/release-channel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/buildAssets/release-channel.png
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/signature/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/signature/instagram.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/signature/linkedin.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/signature/mail.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/signature/twitter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/buildAssets/signature/website.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/Breadcrumbs.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Quark Documentation
4 |
{{title}}
5 |
{{title}}
6 |
{{test}}
7 |
8 |
9 |
10 |
31 |
32 |
34 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/CarbonAds.vue:
--------------------------------------------------------------------------------
1 |
35 |
36 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/DropDown.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | arrow_back_ios
9 |
10 |
14 |
15 |
16 |
17 |
18 |
19 |
34 |
35 |
64 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/Header.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
22 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/Landing2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Build and ship 🔥 your app ⚡ faster
6 |
Coder is an open source remote development environment serving Visual Studio Code. Accelerate your workflow and surpass the capabilities of your local development machine.
7 |
9 |
Button
10 |
11 |
12 |
13 |
14 | Your browser does not support the video tag.
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | Your Host
29 |
30 |
31 | Hi, I'm
32 | Nishkal Kashyap and I created this project to help people build and ship high-quality apps. My mission is simple 👉 produce practical content that
33 | increases developer happiness and productivity 🚀.
34 |
35 |
36 |
37 |
38 |
39 |
40 |
52 |
53 |
120 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/Message.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Note: This project is currently under active development. Documentation is incomplete and things may not work as expected. 🤯
6 |
7 |
8 |
Visit
9 |
Dismiss
10 |
11 |
12 |
13 |
14 |
31 |
32 |
84 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/ReleaseNotes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | File
6 | Hash
7 |
8 |
9 |
10 |
11 | {{key}}
12 | {{value}}
13 |
14 |
15 |
16 |
17 |
18 |
35 |
36 |
56 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/SocialIcons.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
46 |
47 |
56 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/Tag.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | #{{name}}
8 |
9 |
10 |
11 |
36 |
37 |
55 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/landing-components/companyLogos.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
55 |
56 |
72 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/landing-components/floaters.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
43 |
44 |
82 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/landing-components/hero-download.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
Download
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
83 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/landing-components/hero-section.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{heading}}
6 |
7 |
8 |
9 |
Learn more
10 |
Learn more
11 |
12 |
13 |
14 |
15 |
16 |
17 |
39 |
40 |
142 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/landing-components/hero-top.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Lightning fast app creation.
6 |
Quark is a general purpose software tool specifically designed to help you create projects written in HTML, CSS and JavaScript with native desktop app like capabilities. Quark apps run on Mac, Windows, and Linux from a single codebase.
7 |
8 | Get Started →
9 |
10 |
11 |
12 |
13 |
14 |
15 |
23 |
24 |
80 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/landing-components/util.js:
--------------------------------------------------------------------------------
1 | export function isInViewport(el) {
2 |
3 | if (!el) {
4 | return true;
5 | }
6 |
7 | var rect = el.getBoundingClientRect();
8 |
9 | return rect.bottom > 0 &&
10 | rect.right > 0 &&
11 | rect.left < (window.innerWidth || document.documentElement.clientWidth) /* or $(window).width() */ &&
12 | rect.top < (window.innerHeight || document.documentElement.clientHeight) /* or $(window).height() */;
13 | }
--------------------------------------------------------------------------------
/docs/.vuepress/components/mermaid.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/signature.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Nishkal Kashyap
6 |
7 |
8 |
Engineer
9 |
Developer
10 |
Blogger
11 |
12 | Creator of
13 | Quark.js
14 |
15 |
16 |
nishkal.in
17 |
hello@nishkal.in
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
34 |
35 |
86 |
--------------------------------------------------------------------------------
/docs/.vuepress/enhanceApp.js:
--------------------------------------------------------------------------------
1 | import json from './routes.json';
2 | import addAnalytics from './analytics';
3 |
4 | export default ({
5 | Vue, // the version of Vue being used in the VuePress app
6 | // options, // the options for the root Vue instance
7 | router, // the router instance for the app
8 | // siteData // site metadata
9 | }) => {
10 | router.addRoutes(json);
11 | addAnalytics(router, 'UA-112064718-3');
12 | }
--------------------------------------------------------------------------------
/docs/.vuepress/fly-annoying.styl:
--------------------------------------------------------------------------------
1 | random(a,b)
2 | return math(math(0, 'random')*(b - a + 1) + a, 'floor')
3 |
4 | makeMeFly(duration=5s, delay=0s, negative=-50px, positive=50px)
5 | animation-duration: duration;
6 | animation-timing-function: ease-in-out;
7 | animation-delay: delay;
8 | animation-iteration-count: infinite;
9 | animation-direction: alternate;
10 | animation-fill-mode: none;
11 | animation-play-state: running;
12 | $rand = myMove + random(10,1000000);
13 | animation-name: $rand;
14 | @keyframes {$rand}
15 | 0%
16 | transform: translateY(negative);
17 | // transform: translateY(- + negative);
18 | -webkit-transform: translateY(negative);
19 | // -webkit-transform: translateY(- + negative);
20 | -moz-transform: translateY(negative);
21 | // -moz-transform: translateY(- + negative);
22 | -o-transform: translateY(negative);
23 | // -o-transform: translateY(- + negative);
24 | 100%
25 | transform: translateY(positive);
26 | -webkit-transform: translateY(positive);
27 | -moz-transform: translateY(positive);
28 | -o-transform: translateY(positive);
29 |
30 | makeMeRotate(duration=5s, delay=0s, deg1=0deg, deg2=359deg)
31 | $rand = myMove + random(10,1000000);
32 | animation-name: $rand;
33 | animation: duration linear delay infinite normal none running $rand;
34 | animation-timing-function: ease-in-out;
35 |
36 | @keyframes {$rand}
37 | from {
38 | transform: rotate(deg1);
39 | }
40 | to {
41 | transform: rotate(deg2);
42 | }
43 |
44 |
45 | @media only screen and (min-width:450px)
46 | .landing-page-background:before,
47 | .landing-page-background:after
48 | makeMeFly(12s, 0s, -90px, 90px)
49 |
50 | .landing-page-background video
51 | makeMeFly(10s, 3s)
52 |
53 | .landing-page-background .random-svgs-container
54 | makeMeFly(8s, 0s, -40px, 40px)
55 |
56 | .landing-page-background img.logo
57 | makeMeFly(6s, 0s, -20px)
58 |
59 | .landing-page-background.hero h1
60 | makeMeFly(6s, 0s, -20px, 15px)
61 |
62 |
63 | .landing-page-background .hero-features-component h1,
64 | .landing-page-background .hero-features-component .features-container,
65 | .landing-page-background.downloads-container h1,
66 | .landing-page-background.downloads-container h3,
67 | .landing-page-background .download-page-component .container
68 | makeMeFly(8s, 0s, -20px, 20px)
69 |
70 |
71 | @media only screen and (max-width:600px) and (min-width:450px)
72 | .landing-page-background video
73 | makeMeFly(10s, 3s, -20px, 30px)
74 |
75 | .landing-page-background img.logo
76 | makeMeFly(6s, 0s, 0px, 55px)
77 |
78 | .landing-page-background .random-svg.hexa
79 | makeMeRotate(12s, 0s, 0deg, 360deg)
80 |
81 | .landing-page-background .random-svg.triangle
82 | makeMeRotate(10s, 0s, 0deg, 360deg)
--------------------------------------------------------------------------------
/docs/.vuepress/fly-mixin.styl:
--------------------------------------------------------------------------------
1 | random(a,b)
2 | return math(math(0, 'random')*(b - a + 1) + a, 'floor')
3 |
4 | makeMeFly(duration=5s, delay=0s, negative=-50px, positive=50px)
5 | animation-duration: duration;
6 | animation-timing-function: ease-in-out;
7 | animation-delay: delay;
8 | animation-iteration-count: infinite;
9 | animation-direction: alternate;
10 | animation-fill-mode: none;
11 | animation-play-state: running;
12 | $rand = myMove + random(10,1000000);
13 | animation-name: $rand;
14 | @keyframes {$rand}
15 | 0%
16 | transform: translateY(negative);
17 | // transform: translateY(- + negative);
18 | -webkit-transform: translateY(negative);
19 | // -webkit-transform: translateY(- + negative);
20 | -moz-transform: translateY(negative);
21 | // -moz-transform: translateY(- + negative);
22 | -o-transform: translateY(negative);
23 | // -o-transform: translateY(- + negative);
24 | 100%
25 | transform: translateY(positive);
26 | -webkit-transform: translateY(positive);
27 | -moz-transform: translateY(positive);
28 | -o-transform: translateY(positive);
29 |
30 | makeMeRotate(duration=5s, delay=0s, deg1=0deg, deg2=359deg)
31 | $rand = myMove + random(10,1000000);
32 | animation-name: $rand;
33 | animation: duration linear delay infinite normal none running $rand;
34 | animation-timing-function: ease-in-out;
35 |
36 | @keyframes {$rand}
37 | from {
38 | transform: rotate(deg1);
39 | }
40 | to {
41 | transform: rotate(deg2);
42 | }
43 |
44 | // @media only screen and (min-width:450px)
45 | // .landing-page-background:before,
46 | // .landing-page-background:after
47 | // makeMeFly(12s, 0s, -10px, 10px)
48 |
49 | // .landing-page-background .random-svgs-container
50 | // makeMeFly(8s, 0s, -10px, 10px)
51 |
52 |
53 | // @media only screen and (min-width:450px) and (max-width: 2000px)
54 | // .landing-page-background .random-svg.box.right
55 | // makeMeRotate(12s, 0s, 0deg, 360deg)
56 |
57 | // .landing-page-background .random-svg.hexa
58 | // makeMeRotate(12s, 0s, 0deg, 360deg)
59 |
60 | // .landing-page-background .random-svg.triangle
61 | // makeMeRotate(10s, 0s, 0deg, 360deg)
--------------------------------------------------------------------------------
/docs/.vuepress/override.styl:
--------------------------------------------------------------------------------
1 | $accentColor = #055af9
2 | $borderColor = #edf2f6
3 | $codeBgColor = #000000
4 | $textLightColor = #777777
5 |
6 | // colors
7 | // $accentColor = #3eaf7c
8 | // $textColor = #2c3e50
9 | // $borderColor = #eaecef
10 | // $codeBgColor = #282c34
11 | // $arrowBgColor = #ccc
12 |
13 | // // layout
14 | // $navbarHeight = 3.6rem
15 | // $sidebarWidth = 20rem
16 | // $contentWidth = 740px
17 |
18 | // // responsive breakpoints
19 | // $MQNarrow = 959px
20 | // $MQMobile = 719px
21 | // $MQMobileNarrow = 419px
22 |
23 |
24 | // // code
25 | // $lineNumbersWrapperWidth = 3.5rem
26 | // $codeLang = js ts html md vue css sass scss less stylus go java c sh yaml py
27 |
28 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/assets/custom.css:
--------------------------------------------------------------------------------
1 | /* sidebar stuff */
2 |
3 | @media only screen and (min-width: 600px) {
4 | .no-sidebar-metacard-container .content {
5 | max-width: calc(100% - 20px);
6 | padding: 32px 100px;
7 | }
8 |
9 | .sidebar-metacard-container .content {
10 | max-width: calc(100% - 100px);
11 | padding: 32px 30px;
12 | }
13 | }
14 |
15 | .download-page a svg {
16 | display: none !important;
17 | }
18 |
19 | .download-page table {
20 | display: table;
21 | }
22 |
23 | .download-page table td,
24 | th {
25 | text-align: center;
26 | }
27 |
28 | .download-page .release-notes {
29 | font-weight: 500;
30 | margin-top: 20px;
31 | background-color: var(--code-background);
32 | padding: 10px 15px 9px;
33 | border-radius: 4px;
34 | font-size: 14px;
35 | text-align: center;
36 | }
37 |
38 | .download-page .release-notes a {
39 | color: var(--text-color--darker) !important;
40 | font-weight: 900;
41 | font-size: 16px;
42 | font-family: var(--heading-font-family);
43 | }
44 |
45 | .build-status {
46 | display: flex;
47 | justify-content: space-around;
48 | margin: 20px 0px;
49 | }
50 |
51 |
52 | .no-sidebar-metacard-container .tags-container,
53 | .sidebar-metacard-container .tags-container {
54 | display: flex;
55 | justify-content: left;
56 | flex-wrap: wrap;
57 | }
58 |
59 |
60 | /* Prism language js */
61 | div[class*="language-"]:before {
62 | color: var(--accent-color);
63 | font-family: var(--heading-font-family);
64 | }
65 |
66 | .sw-update-popup {
67 | border: none;
68 | border-radius: 0px;
69 | background-color: var(--text-color--dark);
70 | color: var(--accent-color);
71 | font-family: var(--heading-font-family);
72 | }
73 |
74 | .sw-update-popup button {
75 | border: none;
76 | background-color: var(--accent-color);
77 | font-family: var(--heading-font-family);
78 | font-size: 16px;
79 | margin-top: 15px !important;
80 | cursor: pointer;
81 | }
--------------------------------------------------------------------------------
/docs/.vuepress/public/assets/eina-700.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/assets/eina-700.woff2
--------------------------------------------------------------------------------
/docs/.vuepress/public/assets/ionic-prism.css:
--------------------------------------------------------------------------------
1 | div[class*="language-"] {
2 | background-color: transparent !important;
3 | }
4 |
5 |
6 | code[class*="language-"],
7 | pre[class*="language-"] {
8 | color: #4d4d4c !important;
9 | background: none;
10 | white-space: pre;
11 | word-spacing: normal;
12 | word-break: normal;
13 | word-wrap: normal;
14 | line-height: 1.5;
15 |
16 | -moz-tab-size: 4;
17 | -o-tab-size: 4;
18 | tab-size: 4;
19 |
20 | -webkit-hyphens: none;
21 | -moz-hyphens: none;
22 | -ms-hyphens: none;
23 | hyphens: none;
24 | }
25 |
26 | pre[class*="language-"],
27 | :not(pre)>code[class*="language-"] {
28 | background: hsl(30, 20%, 25%);
29 | }
30 |
31 | /* Code blocks */
32 | pre[class*="language-"] {
33 | padding: 1em;
34 | margin: .5em 0;
35 | overflow: auto;
36 | border-radius: .5em;
37 | }
38 |
39 | /* Inline code */
40 | :not(pre)>code[class*="language-"] {
41 | padding: .15em .2em .05em;
42 | border-radius: .3em;
43 | white-space: normal;
44 | }
45 |
46 | /* Tomorrow Comment */
47 | .token.comment,
48 | .token.prolog,
49 | .token.doctype,
50 | .token.cdata {
51 | color: #8c9296;
52 | }
53 |
54 | .token.punctuation {
55 | opacity: .7;
56 | color: inherit !important;
57 | }
58 |
59 | .namespace {
60 | opacity: .7;
61 | }
62 |
63 | .token.tag {
64 | color: #91c5ff !important;
65 | }
66 |
67 | .token.tag .token.tag {
68 | color: #2b90ff !important;
69 | }
70 |
71 | .token.property,
72 | .token.attr-name,
73 | .token.boolean,
74 | .token.number,
75 | .token.constant,
76 | .token.symbol {
77 | color: #8454ff !important;
78 | }
79 |
80 | .token.selector,
81 | .token.char,
82 | .token.function,
83 | .token.builtin{
84 | color: #ff6810 !important;
85 | }
86 |
87 | .token.inserted {
88 | color: #10dc60 !important;
89 | }
90 |
91 | .token.operator,
92 | .token.string,
93 | .token.entity,
94 | .token.url,
95 | .token.attr-value,
96 | .language-css .token.string,
97 | .style .token.string,
98 | .token.variable {
99 | color: #42b983 !important;
100 | }
101 |
102 | .token.atrule {
103 | color: #ffbb01 !important;
104 | }
105 |
106 | .token.regex,
107 | .token.keyword,
108 | .token.important {
109 | color: #f55073 !important;
110 | }
111 |
112 | .token.important,
113 | .token.bold {
114 | font-weight: bold;
115 | }
116 |
117 | .token.italic {
118 | font-style: italic;
119 | }
120 |
121 | .token.entity {
122 | cursor: help;
123 | }
124 |
125 | .token.deleted {
126 | color: red !important;
127 | }
128 |
129 | docs-code[language="shell"]>pre {
130 | background-color: var(--text-color--dark);
131 | border-radius: 7px;
132 | }
133 |
134 | docs-code[language="shell"]:before {
135 | display: none;
136 | }
137 |
138 | docs-code[language="shell"] code {
139 | color: rgba(255, 255, 255, 0.7);
140 | font-size: 13px;
141 | }
142 |
143 | docs-code[language="shell"] .token {
144 | color: inherit;
145 | }
146 |
147 | docs-code[language="shell"] .token.prompt {
148 | color: #fb96f9 !important;
149 | -webkit-user-select: none;
150 | -moz-user-select: none;
151 | -ms-user-select: none;
152 | user-select: none;
153 | }
154 |
155 | docs-code[language="shell"] .token.comment {
156 | color: rgba(255, 255, 255, 0.45) !important;
157 | }
158 |
159 |
160 | docs-code {
161 | display: block;
162 | position: relative;
163 | }
164 |
165 | docs-code:before {
166 | color: #bdc5d1;
167 | content: attr(language);
168 | font-family: var(--code-font-family);
169 | font-size: 10px;
170 | letter-spacing: 0.05em;
171 | line-height: 1;
172 | padding: 0.75em;
173 | position: absolute;
174 | right: 0;
175 | text-transform: uppercase;
176 | top: 0;
177 | }
--------------------------------------------------------------------------------
/docs/.vuepress/public/assets/material-icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/assets/material-icons.woff2
--------------------------------------------------------------------------------
/docs/.vuepress/public/images/apple-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/images/arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/images/download.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/images/icon.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/images/linux-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/images/linux-logo.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/images/old-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/images/old-icon.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/images/windows-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/images/windows-logo.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/css.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/javascript.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/nodejs.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/npm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | n
7 |
8 |
9 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/react_ts.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/stylus.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/typescript.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logos/webpack.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-128x128.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-144x144.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-152x152.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-192x192.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-384x384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-384x384.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-512x512.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-72x72.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/images/icons/icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/pwa/images/icons/icon-96x96.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/pwa/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quark",
3 | "short_name": "Quark",
4 | "theme_color": "#055af9",
5 | "background_color": "#ffffff",
6 | "display": "standalone",
7 | "Scope": "/",
8 | "start_url": "/",
9 | "icons": [
10 | {
11 | "src": "/pwa/images/icons/icon-72x72.png",
12 | "sizes": "72x72",
13 | "type": "image/png"
14 | },
15 | {
16 | "src": "/pwa/images/icons/icon-96x96.png",
17 | "sizes": "96x96",
18 | "type": "image/png"
19 | },
20 | {
21 | "src": "/pwa/images/icons/icon-128x128.png",
22 | "sizes": "128x128",
23 | "type": "image/png"
24 | },
25 | {
26 | "src": "/pwa/images/icons/icon-144x144.png",
27 | "sizes": "144x144",
28 | "type": "image/png"
29 | },
30 | {
31 | "src": "/pwa/images/icons/icon-152x152.png",
32 | "sizes": "152x152",
33 | "type": "image/png"
34 | },
35 | {
36 | "src": "/pwa/images/icons/icon-192x192.png",
37 | "sizes": "192x192",
38 | "type": "image/png"
39 | },
40 | {
41 | "src": "/pwa/images/icons/icon-384x384.png",
42 | "sizes": "384x384",
43 | "type": "image/png"
44 | },
45 | {
46 | "src": "/pwa/images/icons/icon-512x512.png",
47 | "sizes": "512x512",
48 | "type": "image/png"
49 | }
50 | ],
51 | "splash_pages": null
52 | }
--------------------------------------------------------------------------------
/docs/.vuepress/public/references/commands/registered-command.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/.vuepress/public/references/commands/registered-command.png
--------------------------------------------------------------------------------
/docs/.vuepress/scoped-containers.scss:
--------------------------------------------------------------------------------
1 | .home4-component {
2 | overflow: hidden;
3 | align-items: center;
4 | display: flex;
5 | flex-direction: column;
6 | position: relative;
7 | }
8 |
9 | .hero-section-component {
10 | position: relative;
11 | height: 100vh;
12 | display: flex;
13 | align-items: center;
14 | }
15 |
16 | .hero-features-component {
17 | position: relative;
18 | display: flex;
19 | align-items: center;
20 | justify-content: center;
21 | width: 100%;
22 | }
23 |
24 | .message-component {
25 | position: relative;
26 | }
27 | #app > div > div.page > div:nth-child(1){
28 | position: relative;
29 | }
--------------------------------------------------------------------------------
/docs/.vuepress/sidebar.styl:
--------------------------------------------------------------------------------
1 | .sidebar
2 | ul
3 | padding 0
4 | margin 0
5 | list-style-type none
6 | a
7 | display inline-block
8 | .nav-links
9 | display none
10 | border-bottom 1px solid $borderColor
11 | padding 0.5rem 0 0.75rem 0
12 | a
13 | font-weight 600
14 | .nav-item, .repo-link
15 | display block
16 | line-height 1.25rem
17 | font-size 1.1em
18 | padding 0.5rem 0 0.5rem 1.5rem
19 | & > .sidebar-links
20 | padding 1.5rem 0
21 | & > li > a.sidebar-link
22 | font-size 1.1em
23 | line-height 1.7
24 | font-weight bold
25 | & > li:not(:first-child)
26 | margin-top .75rem
27 | @media (max-width: 800px)
28 | .sidebar
29 | .nav-links
30 | display block
31 | .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active::after
32 | top calc(1rem - 2px)
33 | & > .sidebar-links
34 | padding 1rem 0
--------------------------------------------------------------------------------
/docs/.vuepress/style.styl:
--------------------------------------------------------------------------------
1 | @import "~@public/assets/ionic-prism.css"
2 | @import "~@public/assets/ionic.css"
3 | @import "~@public/assets/custom.css"
4 |
5 | @import '~@vuepress/override.styl'
6 |
7 | @import "~@vuepress/fly-mixin.styl"
8 | @import "~@vuepress/admonition.styl"
9 | @import "~@vuepress/body-styles.styl"
10 | @import "~@vuepress/sidebar.styl"
11 |
12 | @import "~@vuepress/landing.scss"
13 | @import "~@vuepress/scoped-containers.scss"
14 |
15 | @font-face {
16 | src: url("~@public/assets/eina-700.woff2") format("woff2");
17 | font-family: "Eina";
18 | font-style: normal;
19 | font-weight: 700;
20 | font-display: swap;
21 | }
22 |
23 | @font-face {
24 | src: url("~@public/assets/material-icons.woff2") format('woff2');
25 | font-family: 'Material Icons';
26 | font-style: normal;
27 | font-weight: 400;
28 | font-display: swap;
29 | }
30 |
31 | .material-icons {
32 | font-family: 'Material Icons';
33 | font-weight: normal;
34 | font-style: normal;
35 | font-size: 24px;
36 | line-height: 1;
37 | letter-spacing: normal;
38 | text-transform: none;
39 | display: inline-block;
40 | white-space: nowrap;
41 | word-wrap: normal;
42 | direction: ltr;
43 | -webkit-font-feature-settings: 'liga';
44 | -webkit-font-smoothing: antialiased;
45 | }
46 |
47 |
48 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/Disqus.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
42 |
43 |
56 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/Layout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/PageBottom.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
18 |
19 |
48 |
--------------------------------------------------------------------------------
/docs/FAQ/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : About
3 | description : About this project.
4 | author : nishkal
5 | tags : ['faq']
6 | pageClass : about-page
7 | ---
8 |
9 | # About
10 |
11 |
12 | Hi, I'm your host 🎙️ Nishkal Kashyap and I'm the author of this project.
13 |
14 | The idea of this project started when I was pursuing my degree in Mechanical Engineering and felt a need for a software tool that would help me do things like - plot charts, IoT development, create dashboards/GUI's for my personal projects etc. To much of my own surprise, I could not find an easy way to do so. Hence, I decided to create this project.
15 |
16 | My mission is simple, that is to increases developer happiness and productivity 🚀 by providing them with the necessary tools 🔨 to do so.
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | # home: false
3 | # heroImage: /images/icon-svg.svg
4 | # heroText: Lightning fast app creation.
5 | # tagline: Ionic Studio is a powerful app builder that delivers a smooth developer experience for teams building with Ionic. Get started with the fastest and easiest way to create award-winning cross-platform apps, from a single tool.
6 | # actionText: Get Started →
7 | # actionLink: /guide/intro.html
8 | # footer: MIT Licensed | Copyright © 2019-present Nishkal Kashyap
9 | pageClass: landing-page
10 | layout: Landing
11 | ---
--------------------------------------------------------------------------------
/docs/azure-pipelines.yml:
--------------------------------------------------------------------------------
1 | # Node.js
2 | # Build a general Node.js project with npm.
3 | # Add steps that analyze code, save build artifacts, deploy, and more:
4 | # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
5 |
6 | trigger:
7 | - master
8 |
9 | pool:
10 | vmImage: 'ubuntu-latest'
11 |
12 | steps:
13 | - task: NodeTool@0
14 | inputs:
15 | versionSpec: '10.x'
16 | displayName: 'Install Node.js'
17 |
18 | - script: |
19 | npm install
20 | displayName: 'npm install and build'
21 |
--------------------------------------------------------------------------------
/docs/cloud-storage-key.json.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/cloud-storage-key.json.enc
--------------------------------------------------------------------------------
/docs/cloudbuild.yaml:
--------------------------------------------------------------------------------
1 | steps:
2 | # Decrypt
3 | - name: gcr.io/cloud-builders/gcloud
4 | args:
5 | - kms
6 | - decrypt
7 | - --ciphertext-file=.env.enc
8 | - --plaintext-file=.env
9 | - --location=global
10 | - --keyring=cloud-build
11 | - --key=cloud_build_docs-env
12 |
13 | # install
14 | - name: 'gcr.io/cloud-builders/npm'
15 | args : ['install']
16 |
17 | # build
18 | - name: 'gcr.io/cloud-builders/npm'
19 | args : ['run','cloud-build']
20 |
21 | # post-build
22 | - name: 'gcr.io/cloud-builders/npm'
23 | args : ['run','post-build']
24 |
25 | # worker
26 | # - name: 'gcr.io/cloud-builders/npm'
27 | # args : ['run','worker']
28 |
29 | # deploy
30 | - name: 'gcr.io/cloud-builders/npm'
31 | args : ['run','deploy-ci']
32 |
33 | # build-notofication
34 | - name: 'gcr.io/cloud-builders/npm'
35 | args : ['run','ssn']
--------------------------------------------------------------------------------
/docs/devtime.md:
--------------------------------------------------------------------------------
1 | # Devtime References
2 |
3 | ::: tip
4 | This is a tip
5 | :::
6 |
7 | ::: warning
8 | This is a warning
9 | :::
10 |
11 | ::: danger
12 | This is a dangerous warning
13 | :::
14 |
15 | ### Badge
16 | [Link](https://v0.vuepress.vuejs.org/guide/using-vue.html#badge)
17 | text : string
18 | type : 'tip' | 'warn' | 'error'
19 | vertical : "top"|"middle" default 'top'
20 |
21 |
22 |
23 | admonitions
24 |
25 |
28 |
29 | types = note abstract info tip success warning failure danger bug example quote
30 |
31 |
32 | note
33 | success
34 | warning
35 | danger
36 |
37 | !!! note Testing Notes
38 | Good Note
39 | !!!
40 | !!! abstract Testing Notes
41 | Good Note
42 | !!!
43 | !!! info Testing Notes
44 | Good Note
45 | !!!
46 | !!! tip Testing Notes
47 | Good Note
48 | !!!
49 | !!! success Testing Notes
50 | Good Note
51 | !!!
52 | !!! warning Testing Notes
53 | Good Note
54 | !!!
55 | !!! failure Testing Notes
56 | Good Note
57 | !!!
58 | !!! danger Testing Notes
59 | Good Note
60 | !!!
61 | !!! bug Testing Notes
62 | Good Note
63 | !!!
64 | !!! example Testing Notes
65 | Good Note
66 | !!!
67 | !!! quote Testing Notes
68 | Good Note
69 | !!!
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | Like this?
78 |
79 | Useful Source
80 |
81 | It's because the details block is html5. If you want to modify it your best bet is using html5.
82 |
83 |
--------------------------------------------------------------------------------
/docs/download/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | pageClass: download-page
3 | ---
4 |
5 | # All Downloads
6 | | 🆕 Release type | ⚡ Latest Version | 📅 Release Date |
7 | | ------------------- | -------------------- | --------------- |
8 | | stable | 0.6.2 | September 29 2019, 11:51:37 AM |
9 |
12 |
13 |
View Release Notes
14 |
15 | !!! note See SHA-512 Hashes
16 |
17 |
18 |
19 | !!!
20 |
21 |
--------------------------------------------------------------------------------
/docs/download/insiders.md:
--------------------------------------------------------------------------------
1 | ---
2 | pageClass: download-page
3 | ---
4 |
5 | # All Downloads
6 | | 🆕 Release type | ⚡ Latest Version | 📅 Release Date |
7 | | ------------------- | -------------------- | --------------- |
8 | | insiders | 0.6.4 | April 26 2020, 12:45:12 PM |
9 |
12 |
13 | View Release Notes
14 |
15 | !!! note See SHA-512 Hashes
16 |
17 |
18 |
19 | !!!
20 |
21 |
--------------------------------------------------------------------------------
/docs/examples/arduino-dashboard.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'Create a dashboard and a data logger for Arduino using the serialport library.'
3 | author : nishkal
4 | tags : ['javascript', 'arduino']
5 | sidebarDepth: 2
6 | ---
7 |
8 | # Arduino dashboard and data logger
9 |
10 |
11 |
12 | [[toc]]
13 |
14 | ##### The project that we are finally going to build, will look something like this:
15 |
16 |
17 |
18 | Your browser does not support the video tag.
19 |
20 |
21 | !!! note Note
22 | The complete project could be found [here](https://github.com/Nishkalkashyap/Quark-samples/tree/master/examples/arduino-dashboard) on the github repo.
23 | !!!
24 |
25 | ## Features
26 | __Serialport selector:__ A graphical user interface component that allows you to select the serialport for your Arduino.
27 |
28 | 
29 |
30 | __Dashboard:__ A dashboard that prints the real time values on the screen and also draws charts.
31 |
32 | 
33 |
34 | __Datalogger:__ A data logger that will read data from arduino and save it on your computer in csv format.
35 |
36 | 
37 |
38 | ## Getting started
39 | * Clone [this repository](https://github.com/Nishkalkashyap/Quark-samples/tree/master/examples/arduino-dashboard)
40 | * cd `examples/arduino-dashboard`
41 | * Upload the `arduino.ino` file to the arduino.
42 | * Open project file `arduino-dashboard.qrk` to edit project, or build file `arduino-dashboard.build.qrk` to run the project in Quark.
43 |
44 | ## Running the project
45 | * Open the build file `arduino-dashboard.build.qrk` in Quark.
46 | * Press `ctrl+p` and select the COM port of your arduino from the serial port selector.
47 | * To start the data logger, open the [commands palette](/guide/quark-ide.html#command-palette) by pressing `ctrl+shift+p`, and select `Datalogger: Start` command. You will see a notification on the bottom right of your screen if the logger was started.
48 | * To stop the data logger, open the commands palette and select command `Datalogger: Stop`. This will open a save dialog where you can enter the path of the file where you want to save your data.
49 |
--------------------------------------------------------------------------------
/docs/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": [{
3 | "public": "./.vuepress/dist",
4 | "target": "docs",
5 | "ignore": [
6 | "firebase.json",
7 | "**/.*",
8 | "**/node_modules/**"
9 | ],
10 | "rewrites": [{
11 | "source": "/GetDashboardStats{,/**}",
12 | "function": "GetDashboardStats"
13 | },
14 | {
15 | "source": "/downloadCount{,/**}",
16 | "function": "downloadCount"
17 | }
18 | ],
19 | "cleanUrls": false,
20 | "trailingSlash": false,
21 | "headers": [{
22 | "source": "**/*.@(jpg|jpeg|gif|png|mp4)",
23 | "headers": [{
24 | "key": "Cache-Control",
25 | "value": "max-age=2592000"
26 | }]
27 | },
28 | {
29 | "source": "**/!(*worker).js",
30 | "headers": [{
31 | "key": "Cache-Control",
32 | "value": "max-age=2592000"
33 | }]
34 | },
35 | {
36 | "source": "**/*.@(woff|woff2|css)",
37 | "headers": [{
38 | "key": "Cache-Control",
39 | "value": "max-age=2592000"
40 | }]
41 | }
42 | ]
43 | }]
44 | }
--------------------------------------------------------------------------------
/docs/guide/showcase.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'Following are some sample projects made with Quark.'
3 | author : nishkal
4 | tags : ['guide']
5 | cover : ~@buildAssets/guide/showcase.png
6 | ---
7 |
8 | # Showcase
9 |
10 |
11 |
12 | [[toc]]
13 |
14 | ## System resource monitor
15 | * Monitors system resources. View CPU loads, memory usage, process explorer.
16 |
17 |
18 |
19 | Your browser does not support the video tag.
20 |
21 |
22 | ## Digital control systems
23 | * Digital control system made with Arduino UNO using pre-installed serialport library.
24 |
25 |
26 |
27 | Your browser does not support the video tag.
28 |
29 |
30 |
31 |
32 | Your browser does not support the video tag.
33 |
34 |
35 | ## Plot Charts
36 | * Plot charts using [plotly.js](https://plot.ly/javascript/)
37 |
38 |
39 |
40 | Your browser does not support the video tag.
41 |
42 |
43 | ## Stock analyzing app
44 | * Analyze historic/real-time stock data.
45 |
46 |
47 |
48 | Your browser does not support the video tag.
49 |
50 |
51 | ## News App
52 | * News app with multiple country and source filter.
53 |
54 |
55 |
56 | Your browser does not support the video tag.
57 |
58 |
59 | ## Web Browser
60 | * Web browser with multiple tabs, split view support. __(Written under 200 lines of code!!)__
61 |
62 |
63 |
64 | Your browser does not support the video tag.
65 |
66 |
67 | !!! note Note
68 | Find these projects on [Github](https://github.com/Nishkalkashyap/quark-projects)
69 | !!!
--------------------------------------------------------------------------------
/docs/libraries/electron-js.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. This guide describes how you can use electron in your projects.'
3 | author : nishkal
4 | tags : []
5 | ---
6 |
7 | # Electron
8 |
9 |
10 |
11 | #### Using the electron's renderer process api.
12 | In your sketches you have access to all of the electron's renderer process API's. Let's see how we can use the [`notifications`](https://electronjs.org/docs/tutorial/notifications) api in your sketches.
13 | ```js
14 | // setup.js
15 | import { remote } from 'electron';
16 | import * as path from 'path';
17 |
18 | // notificationWithImage
19 | const notificationWithImage = new remote.Notification({
20 | title: 'Notification with image',
21 | body: 'Short message plus a custom image',
22 | icon: path.join(remote.app.getAppPath(), '/appAssets/32x32.png')
23 | });
24 |
25 | notificationWithImage.addListener('click', (e, i) => {
26 | console.log('Notification clicked');
27 | });
28 | notificationWithImage.show();
29 |
30 |
31 |
32 | // notificationWithoutImage
33 | const notificationWithoutImage = new remote.Notification({
34 | title: 'Basic notification',
35 | body: 'Short message'
36 | });
37 |
38 | notificationWithoutImage.addListener('click', (e, i) => {
39 | console.log('Notification clicked');
40 | });
41 | notificationWithoutImage.show();
42 | ```
--------------------------------------------------------------------------------
/docs/libraries/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'This section will cover how to use pre-installed libraries and how to install new libraries.'
3 | author : nishkal
4 | tags : []
5 | ---
6 |
7 | # Introduction
8 |
9 |
10 |
11 | [[toc]]
12 |
13 | ## Using existing libraries
14 | Quark comes pre-installed with a few libraries. You can check which libraries are pre-installed by going to
15 | `Help > View Installed Libraries` from the main menu.
16 |
17 | 
18 |
19 | __This will open a dialog listing all the pre-installed libraries.__
20 |
21 | 
22 |
23 | Some of these libraries are used internally by the software, some of these libraries are proxied and exposed as an API, and some are used by the build system. Nonetheless all of them can be used from your project. Find out specific tutorials of using some of those libraries [here.](/libraries/)
24 |
25 | ## Installing new libraries
26 | Once you are comfortable with the Quark software and using the built-in functions/features, you may want to extend the ability of your project with additional libraries.
27 |
28 | ##### Using the built-in npm client
29 | To install a new library in your project you can use the built-in npm client. Click on the `npm` logo in the sideview to open the client, and search for the library you want to use.
30 |
31 | 
32 |
33 | You can install the library by pressing on the `install` button, or first view the library repository by pressing on the `Repository` button.
34 |
35 | After hitting the install button, you will be presented with an install status snackbar. If installing the library fails, you can check the logs from the `Devtools` section in the `output-channel`.
36 |
37 | 
38 |
39 | ##### Using systems package manager
40 | If you happen to have a package manager installed on your machine (e.g. `npm` or `yarn`) you can use that too.
41 |
42 | ```bash
43 | # e.g. npm
44 | npm install express
45 |
46 | # e.g. yarn
47 | yarn add express
48 | ```
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/docs/libraries/react-js.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'React is a javascript library for building user interfaces. Examples below describe how you can use React to create views in your project.'
3 | author : nishkal
4 | tags : []
5 | ---
6 |
7 | # React
8 |
9 |
10 |
11 |
12 |
13 |
16 |
17 |
18 |
19 |
20 |
21 | #### Creating and using a react functional component.
22 | ```jsx
23 | // setup.js
24 | import { render } from 'react-dom';
25 |
26 | function App() {
27 | const greeting = 'Hello Functional Component!';
28 | return {greeting} ;
29 | }
30 |
31 | const view = quark.views.createTabsView('React view');
32 | view.onDidConnectElement = () => {
33 | view.element.style.backgroundColor = '#f0f0f0';
34 | view.element.style.height = '100%';
35 | render( , view.element);
36 | };
37 |
38 | view.focus();
39 | ```
40 | ##### Result
41 | 
42 |
43 | #### Render a react component inside another component
44 | ```jsx
45 | // setup.js
46 | import { render } from 'react-dom';
47 |
48 | function App() {
49 | return ;
50 | }
51 |
52 | function Headline() {
53 | const greeting = 'Hello Functional Component!';
54 | return {greeting} ;
55 | }
56 |
57 | const view = quark.views.createTabsView('React view');
58 | view.onDidConnectElement = () => {
59 | view.element.style.backgroundColor = '#f0f0f0';
60 | view.element.style.height = '100%';
61 | render( , view.element);
62 | };
63 |
64 | view.focus();
65 | ```
66 |
67 | #### Using import/export statements
68 | ```jsx
69 | // headline.js
70 | function Headline() {
71 | const greeting = 'Hello Functional Component!';
72 | return {greeting} ;
73 | }
74 |
75 | export default Headline;
76 | ```
77 | ```jsx
78 | // setup.js
79 | import { render } from 'react-dom';
80 | import Headline from './headline';
81 |
82 | function App() {
83 | return ;
84 | }
85 |
86 | const view = quark.views.createTabsView('React view');
87 | view.onDidConnectElement = () => {
88 | view.element.style.backgroundColor = '#f0f0f0';
89 | view.element.style.height = '100%';
90 | render( , view.element);
91 | };
92 |
93 | view.focus();
94 | ```
95 |
96 | #### Creating react class components
97 | ```jsx
98 | import { render } from 'react-dom';
99 | import Headline from './import-export/headline';
100 | import React from 'react';
101 |
102 | class App extends React.Component {
103 | render() {
104 | return (
105 | {this.props.greeting}
106 | );
107 | }
108 | }
109 |
110 | const view = quark.views.createTabsView('React view');
111 | view.onDidConnectElement = () => {
112 | view.element.style.backgroundColor = '#f0f0f0';
113 | view.element.style.height = '100%';
114 | render( , view.element);
115 | };
116 |
117 | view.focus();
118 | ```
119 |
120 |
--------------------------------------------------------------------------------
/docs/libraries/serialport.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'Access serial ports with JavaScript. Examples below describe how you can use node-serialport library in your projects.'
3 | author : nishkal
4 | tags : []
5 | ---
6 |
7 | # Serialport
8 |
9 |
10 |
11 | #### Listing all available serialports
12 | ```js
13 | import * as serial from 'serialport';
14 |
15 | serial.list().then((list) => {
16 | list.map((port)=>{
17 | console.log(`COM name: ${port.comName}, Manufacturer : ${port.manufacturer}`)
18 | });
19 | }).catch(console.error);
20 | ```
21 |
22 | ##### Result
23 | 
24 |
25 | #### Listing all available ports in DOM
26 | ```js
27 | import * as serial from 'serialport';
28 |
29 | serial.list().then((list) => {
30 | list.map((port) => {
31 | console.log(`COM name: ${port.comName}, Manufacturer : ${port.manufacturer}`)
32 | });
33 | }).catch(console.error);
34 |
35 | const view = quark.views.createTabsView('Serial ports');
36 | view.onDidConnectElement = async () => {
37 | try {
38 | const list = await serial.list();
39 | let html = 'Available Ports ';
40 | list.map((port) => {
41 | html = html.concat(`${port.comName} `);
42 | });
43 | view.element.style.padding = '20px';
44 | view.element.innerHTML = html;
45 | } catch (err) {
46 | console.err(err);
47 | }
48 | }
49 | view.focus();
50 | ```
51 |
52 | ##### Result
53 | 
54 |
--------------------------------------------------------------------------------
/docs/libraries/vue-js.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'Vue is a progressive framework for building user interfaces. Examples below describe how you can use Vue.js to create views in your project.'
3 | author : nishkal
4 | tags : []
5 | ---
6 |
7 | # Vue
8 |
9 |
10 |
11 |
14 |
56 |
57 | #### Using the esm build
58 | ```js
59 | // setup.js
60 | import Vue from 'vue/dist/vue.esm';
61 |
62 | const view = quark.views.createTabsView('My Vue');
63 | view.onDidConnectElement = () => {
64 | const app = new Vue({
65 | el: view.element,
66 | data() {
67 | return {
68 | greetings: 'Hello Vue.js'
69 | }
70 | },
71 | template: `{{greetings}} `
72 | });
73 | }
74 | view.focus();
75 | ```
76 |
77 | ##### Result
78 | 
79 |
80 | #### Using multiple components
81 | ```js
82 | // setup.js
83 | import Vue from 'vue/dist/vue.esm';
84 |
85 | const myComponent = Vue.component('my-component', {
86 | template : 'Hello parent component '
87 | });
88 |
89 | const view = quark.views.createTabsView('My Vue');
90 | view.onDidConnectElement = () => {
91 | const app = new Vue({
92 | el: view.element,
93 | components : {
94 | myComponent
95 | },
96 | template: ` `
97 | });
98 | }
99 | view.focus();
100 | ```
101 |
102 | #### Importing external html template.
103 | ```html
104 |
105 | {{greetings}}
106 | ```
107 |
108 | ```js
109 | // setup.js
110 | import Vue from 'vue/dist/vue.esm';
111 | import htmlTemplate from './template.html';
112 |
113 | const view = quark.views.createTabsView('My Vue');
114 | view.onDidConnectElement = () => {
115 | const app = new Vue({
116 | el: view.element,
117 | data() {
118 | return {
119 | greetings: 'Hello Vue.js'
120 | }
121 | },
122 | template: htmlTemplate
123 | });
124 | }
125 | view.focus();
126 | ```
--------------------------------------------------------------------------------
/docs/references/app.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : Provides methods to perform lower level operations.
3 | author : nishkal
4 | tags : ['api', 'references']
5 | cover : ~@buildAssets/api/references.png
6 | ---
7 |
8 | # app
9 |
10 | [[toc]]
11 |
12 | ### app.showItemInFolder([fullPath])
13 | Show the given file in a file manager. If possible, select the file. If no path is provided, opens the current process path.
14 | * returns `void`
15 |
16 | ### app.beep()
17 | Play the beep sound.
18 | * returns `void`
19 |
20 | ### app.getAppMetrics()
21 | Gets the [`ProcessMetric`](/)` object;
22 | * returns [`ProcessMetric`](/)
23 |
24 | ### app.getAppPath()
25 | Gets the installation path of the app.
26 | * returns `string`
27 |
28 | ### app.getVersion()
29 | Gets the current version of app.
30 | * returns `string`
31 |
32 | ### app.showMessageBox(title, message, buttons[, type])
33 | Shows a message box. Returns a promise that resolves to the text of the selected button.
34 | * arguments
35 | * title `string`
36 | * message `string`
37 | * buttons `Array`
38 | * type `("none" | "info" | "error" | "question" | "warning")` (optional)
39 | * returns `Promise`
40 | * Usage
41 |
42 | ```js
43 | quark.app.showMessageBox('Select your hero', 'Superman or Batman?', ['Superman', 'Batman'], 'question')
44 | .then((hero)=>{
45 | if(hero == 'Superman'){
46 | console.log('Meh!');
47 | }else {
48 | console.log('Yuss!');
49 | }
50 | }).catch((err)=>{
51 | console.log(err);
52 | });
53 | ```
54 |
55 | ### app.showErrorBox(title, content)
56 | Shows an error box.
57 | * arguments
58 | * title `string`
59 | * content `string`
60 | * returns `void`
61 | * Usage
62 |
63 | ```js
64 | quark.app.showErrorBox('Connection Failed!','Failed to connect to board at COM port 5');
65 | ```
66 |
67 | ### app.showOpenDialog([options])
68 | Shows a file/folder open dialog.
69 | * arguments
70 | * options [`OpenDialogOptions`](/)(optional)
71 | * returns `Promise<{ filePaths: Array, bookmarks: Array }?`
72 | * Usage
73 |
74 | ```js
75 | quark.app.showOpenDialog({
76 | title : 'Open Logs',
77 | defaultPath : 'C://User/Desktop',
78 | properties : ['openFile', 'multiSelections']
79 | }).then((result)=>{
80 | const filePaths = result.filePaths;
81 | const bookmarks = result.bookmarks;
82 | console.log(filePaths, bookmarks);
83 | }).catch((err)=>{
84 | console.log(err);
85 | });
86 | ```
87 |
88 | ### app.showSaveDialog([options])
89 | Shows a save dialog.
90 | * arguments
91 | * options [`SaveDialogOptions`](/)
92 | * returns `Promise<{ filename: string, bookmark: string }>`
93 | * Usage
94 |
95 | ```js
96 | quark.app.showSaveDialog({
97 | title : 'Open Logs',
98 | defaultPath : 'C://User/Desktop'
99 | }).then((result)=>{
100 | const filename = result.fileName;
101 | const bookmark = result.bookmark;
102 | console.log(fileName, bookmark);
103 | }).catch((err)=>{
104 | console.log('user dismissed the dialog');
105 | });
106 | ```
--------------------------------------------------------------------------------
/docs/references/clipboard.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : Perform copy and paste operations on the system clipboard.
3 | author : nishkal
4 | tags : ['api', 'references']
5 | cover : ~@buildAssets/api/references.png
6 | ---
7 |
8 | # clipboard
9 |
10 | [[toc]]
11 |
12 |
13 | ### clipboard.readText()
14 | Returns the text saved in clipboard.
15 | * returns `string`
16 |
17 | ### clipboard.writeText(text)
18 | Writes text to clipboard.
19 | * arguments
20 | * text `string`
21 | * returns `void`
22 |
23 | ### clipboard.readHTML()
24 | Returns the markup saved in clipboard.
25 | * returns `string`
26 |
27 | ### clipboard.writeHTML(text)
28 | Writes markup to the clipboard.
29 | * arguments
30 | * text `string`
31 | * returns `void`
32 |
33 | ### clipboard.clear()
34 | Clears the text saved in clipboard.
35 | * returns `void`
36 |
--------------------------------------------------------------------------------
/docs/references/commands.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : Register globally executable commands that trigger an action on invocation.
3 | author : nishkal
4 | tags : ['api', 'references']
5 | cover : ~@buildAssets/api/references.png
6 | ---
7 |
8 | # commands
9 |
10 | [[toc]]
11 |
12 | ### commands.registerCommand(id, handle[, thisArg, label])
13 | Registers a globally executable command.
14 | * arguments
15 | * id `string`
16 | * handle `Function`
17 | * thisArg `any`(optional)
18 | * label `string`(optional)
19 | * returns [`IKeyBindingRegister`](/structures/IKeyBindingRegister.md)
20 | * Usage
21 |
22 |
23 | #### Registering a command.
24 | ```js
25 | quark.commands.registerCommand('my.awesome.command.id', () => {
26 | console.log('I ran');
27 | });
28 |
29 | quark.commands.executeCommand('my.awesome.command.id');
30 | //logs `I ran` to console.
31 | ```
32 |
33 | #### Adding a KeyBinding to the command.
34 | ```js
35 | const register = quark.commands.registerCommand('my.awesome.command.id', () => {
36 | console.log('I ran');
37 | });
38 | register.addKeyBinding('ctrl+i');
39 | //Now pressing the key combination "ctrl+i" will invoke the command.
40 | ```
41 |
42 | #### Passing arguments to the command.
43 | ```js
44 | quark.commands.registerCommand('my.awesome.command.id', (label) => {
45 | console.log(label);
46 | });
47 |
48 | quark.commands.executeCommand('my.awesome.command.id', 'I ran');
49 | //logs `I ran` to console.
50 | ```
51 |
52 | #### Adding command to the commands palette.
53 | The example below shows how to add a command to the commands palette. The only thing you need to do differently is to provide the label argument to the `commands.registerCommand` function.
54 | ```js
55 | quark.commands.registerCommand('my.awesome.command.id', () => {
56 | console.log('I ran');
57 | }, null, 'My Awesome Command');
58 | ```
59 | Now the command should be available in the commands palette like so.
60 |
61 | 
62 |
63 |
64 | ### commands.executeCommand(id, [...args])
65 | Executes a registered command.
66 | * arguments
67 | * id `string`
68 | * ...args `any`
69 | * returns `void`
70 |
71 | ### commands.getCommand(id)
72 | Returns a registered command with the provided id.
73 | * arguments
74 | * id `string`
75 | * returns [`ICommand`](/structures/ICommand.md) | `undefined`
76 | * Usage
77 |
78 | ```js
79 | //e.g. Getting a command and then disposing it.
80 | const command = quark.commands.getCommand('my.awesome.command.id');
81 | command.dispose();
82 | //unregisters the command
83 | ```
84 |
85 | ### commands.getAllCommands()
86 | Returns an array of all the registered commands.
87 | * returns [`Array`](/structures/ICommand.md)
88 | * Usage
89 |
90 | ```js
91 | //e.g. filtering all commands registered in commands palette.
92 | const commands = quark.commands.getAllCommands().map((command) => {
93 | if(command.label) {
94 | return command;
95 | }
96 | });
97 | ```
98 |
99 |
--------------------------------------------------------------------------------
/docs/references/icons.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : Register icons to be used in UI components.
3 | author : nishkal
4 | tags : ['api', 'references']
5 | cover : ~@buildAssets/api/references.png
6 | ---
7 |
8 | # icons
9 |
10 | [[toc]]
11 |
12 | ### icons.registerIcon(icon)
13 | Registers an icon in global icon namespace.
14 | * arguments
15 | * icon [`Icon`](/structures/icon.md)
16 | * returns `void`
17 | * Usage
18 |
19 | ```js
20 | quark.icons.registerIcon({
21 | name: 'my-custom-icon',
22 | path: './my-custom-icon.svg'
23 | });
24 |
25 | const view = quark.views.createSideView('my-side-view', document.createElement('my-custom-element'));
26 | view.icon = 'my-custom-icon';
27 | view.focus();
28 | ```
29 |
30 |
31 | ### icons.registerIcons(icons)
32 | Registers multiple icons in global icon namespace.
33 | * arguments
34 | * icons [`Array`](/structures/icon.md)
35 | * returns `void`
36 |
37 |
38 | ### icons.registerIconInNamespace(icon, namespace)
39 | Registers an icon under a namespace.
40 | * arguments
41 | * icon [`Icon`](/structures/icon.md)
42 | * namespace `string`
43 | * returns `void`
44 | * Usage
45 |
46 | ```js
47 | quark.icons.registerIconInNamespace({
48 | name: 'my-custom-icon',
49 | path: './my-custom-icon.svg'
50 | }, 'my-namespace');
51 |
52 | const view = quark.views.createSideView('my-side-view', document.createElement('my-custom-element'));
53 | view.icon = 'my-namespace:my-custom-icon';
54 | view.focus();
55 | ```
56 |
57 |
58 | ### icons.registerIconsInNamespace(icons, namespace)
59 | Registers multiple icons under a namespace.
60 | * arguments
61 | * icons [`Array`](/structures/icon.md)
62 | * namespace `string`
63 | * returns `void`
64 |
65 | ### Tip
66 | Quark comes pre installed with [Material icons](https://material.io/tools/icons/?style=baseline) and [Ionicons](https://ionicons.com/). You can use them in your views as follows:
67 | ```js
68 | /*
69 | * Using material icons.
70 | * All material icons are registered under the namespace 'mat'
71 | */
72 |
73 | const view = quark.views.createSideView('my-material-icon-view', document.createElement('my-custom-element'));
74 | view.icon = 'mat:close';
75 |
76 | /*
77 | * Using ionicons.
78 | * All ionicons are registered under the namespace 'ionicon'
79 | *
80 | * Important: You also have to specify the platform of the icon. i.e. 'md-' or 'ios-' before the name of the icon.
81 | * e.g. 'ionicon:md-close' would work but 'ionicon:close' would not.
82 | */
83 |
84 | const view = quark.views.createSideView('my-ionicon-view', document.createElement('my-custom-element'));
85 | view.icon = 'ionicon:md-close';
86 | ```
87 |
--------------------------------------------------------------------------------
/docs/references/storage.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : Store data
3 | author : nishkal
4 | tags : ['api', 'references']
5 | cover : ~@buildAssets/api/references.png
6 | ---
7 |
8 | # storage
9 |
10 | [[toc]]
11 |
12 |
13 |
14 | ### inMemory
15 | Store temporary data in memory while your code is running. As soon as the window is closed, all data is lost. The data may or may not be JSON serializable.
16 | * see [MemoryStore](/structures/MemoryStore.md)
17 |
18 |
19 | ### local
20 | Store data locally in an external file. File is created on per project basis. You can only store JSON serializable data.
21 | * see [PersistantStore](/structures/PersistantStore.md)
22 |
23 |
24 | ### global
25 | Store data locally in an external file. Common for a system. You can only store JSON serializable data.
26 | * see [PersistantStore](/structures/PersistantStore.md)
--------------------------------------------------------------------------------
/docs/references/util.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : Utilitiy methods to quark api.
3 | author : nishkal
4 | tags : ['api', 'references']
5 | cover : ~@buildAssets/api/references.png
6 | ---
7 |
8 | # util
9 |
10 | [[toc]]
11 |
12 | ### util.createContextMenu(items)
13 | * arguments
14 | * items [`Array`](/structures/menu-item.md)
15 | * returns [`ContextMenuRef`](/structures/context-menu-ref.md)
16 |
17 | ### util.createElementFromHtml(html)
18 | Creates an HTML element from string.
19 | * arguments
20 | * html `string`
21 | * returns `Element`
22 |
23 | ### util.createFileSystemWatcher(path[, options])
24 | Creates a file system watcher.
25 | * arguments
26 | * path `string | Array`
27 | * options `WatchOptions`(optional)
28 | * returns [`Watcher`](/)
29 |
30 | ### util.createInputBox()
31 | Creates an Input box
32 | * returns [`InputBox`](/)
33 |
34 | ### util.createMainMenuItem(label, items[, priority])
35 | Creates a main menu item.
36 | * arguments
37 | * label `string`
38 | * items [`Array`](/structures/menu-item.md)
39 | * returns [`MenuRef`](/structures/menu-ref.md)
40 |
41 | ### util.createOutputChannel(name)
42 | Creates an output channel.
43 | * arguments
44 | * name `string`
45 | * returns [`OutputChannel`](/)
46 |
47 | ### util.createQuickView(name)
48 | Creates a quick view pannel. Similar to the one used by commands.
49 | * arguments
50 | * name `string`
51 | * returns [`IQuickPick`](/)
52 |
53 | ### util.createSnackbar(message[, type, duration])
54 | Creates a snackbar notification.
55 | * arguments
56 | * message `string`
57 | * type `'danger' | 'success' | 'warning' | 'info'`
58 | * duration `number`
59 | * returns [`SnackbarItem`](/structures/SnackbarItem.md)
60 |
--------------------------------------------------------------------------------
/docs/references/views.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : Create and control views of your app.
3 | author : nishkal
4 | tags : ['api', 'references']
5 | cover : ~@buildAssets/api/references.png
6 | ---
7 |
8 | # views
9 |
10 | [[toc]]
11 |
12 | ### views.createSideView()
13 | Creates a side view.
14 | * returns [`ViewProvider`](/structures/view-provider.md)
15 |
16 | ### views.createBottomView()
17 | Creates a bottom view.
18 | * returns [`ViewProvider`](/structures/view-provider.md)
19 |
20 | ### views.createTabsView()
21 | Creates a tabs view.
22 | * returns [`ViewProvider`](/structures/view-provider.md)
23 |
24 | ### views.sideviewController
25 | * see [SideviewController](/structures/sideview-controller.md)
26 |
27 | ### views.bottomviewController
28 | * see [BottomviewController](/structures/bottomview-controller.md)
29 |
30 | ### views.tabsviewController
31 | * see [TabsviewController](/structures/tabsview-controller.md)
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/docs/releases/Quark-v0.1.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: "Release notes for all the releases in minor version: Quark-0.1.x"
3 | title: "Release notes: Quark-0.1.x"
4 | author: nishkal
5 | tags: []
6 | sidebarDepth: 4
7 | ---
8 |
9 |
10 | # Release Notes
11 |
12 | ## Version: Quark-v0.1.x
13 |
14 |
15 |
16 | [[toc]]
17 |
18 |
19 | ## Quark 0.1.19 - April 20, 2019
20 |
21 | #### Minor Changes:
22 | * 🚑 Fixed windows nsis installer issue.
23 | * Added builds for *.tar.gz, *.deb and *.zip
24 | * Added shasum check table
25 |
26 | !!! note See SHA-512 Hashes
27 |
28 |
35 |
36 | !!!
37 |
38 |
39 |
--------------------------------------------------------------------------------
/docs/scripts/check-files.ts:
--------------------------------------------------------------------------------
1 | import * as recc from 'recursive-readdir';
2 | import { getFrontmatterFromPath, printConsoleStatus, reccursiveIgnoreFunction } from './util';
3 | import { AllTags } from './types';
4 | import * as fs from 'fs-extra';
5 |
6 | const GIMAGES_OUT = './.vuepress/public';
7 | checkFiles().catch(console.error);
8 |
9 | async function checkFiles() {
10 | const files = await recc('./', [reccursiveIgnoreFunction]);
11 |
12 | files.map((file) => {
13 | const result = isValidFile(file);
14 | if (!result.isValid) {
15 | printConsoleStatus(`Invalid file: ${file}`, 'danger');
16 | printConsoleStatus(`Error: ${result.errMsg}\n`, 'danger');
17 | }
18 | });
19 |
20 | console.log(`Checked: ${files.length}`);
21 | }
22 |
23 | export function isValidFile(path: string): { isValid: boolean, errMsg: string } {
24 | const check1 = path.endsWith('README.md') || path.match(/(style-guide|tags|devtime|release-notes|insiders.md)/) != null;
25 | if (check1) {
26 | return { isValid: check1, errMsg: 'Is ignored file.' };
27 | }
28 |
29 | const frontmatter = getFrontmatterFromPath(path);
30 | if(!frontmatter) {
31 | return { isValid: false, errMsg: 'No Frontmatter' };
32 | }
33 |
34 | const check2 = !!(!!frontmatter.author && frontmatter.description != null && !!frontmatter.tags!!);
35 | if (!check2) {
36 | return { isValid: check2, errMsg: 'Frontmatter required member missing.' };
37 | }
38 |
39 | const check3 = checkForVideoTagCrossOriginAttribute(path);
40 | if (!check3) {
41 | return { isValid: check3, errMsg: 'Video tags do not include cross-origin attribute.' };
42 | }
43 |
44 | // const check3 = frontmatter.cover ? fs.existsSync(Path.join(GIMAGES_OUT, frontmatter.cover)) : true;
45 | // if (!check3) {
46 | // return { isValid: check3, errMsg: `Cover image path does not exists. ${(Path.join(GIMAGES_OUT, frontmatter.cover))}` };
47 | // }
48 |
49 | const check4 = frontmatter.tags.every((val) => { return AllTags[val] });
50 | return { isValid: check4, errMsg: 'Tags match.' };
51 | }
52 |
53 | function checkForVideoTagCrossOriginAttribute(path: string): boolean {
54 | const file = fs.readFileSync(path).toString();
55 | const videoTags = file.match(/<\s*video.+?>/g) || [];
56 | const result = videoTags.every((tag) => {
57 | return tag.includes('crossOrigin="anonymous"') && tag.includes('muted');
58 | });
59 | return result;;
60 | }
--------------------------------------------------------------------------------
/docs/scripts/cloud-storage-hosting.ts:
--------------------------------------------------------------------------------
1 | import { Storage } from '@google-cloud/storage';
2 | import * as recc from 'recursive-readdir';
3 | import { printConsoleStatus } from './util';
4 | import * as path from 'path';
5 |
6 | const bucketName = 'quarkjs.io';
7 | const folder = './.vuepress/dist';
8 | process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve('./cloud-storage-key.json');
9 | process.chdir(folder);
10 |
11 | uploadFileToBucket()
12 | .catch((err) => {
13 | console.error(err);
14 | process.exit(1);
15 | });
16 |
17 | async function uploadFileToBucket() {
18 | const storage = new Storage({
19 | projectId: 'diy-mechatronics'
20 | });
21 |
22 | const bucket = storage.bucket(bucketName);
23 | // await bucket.deleteFiles();
24 |
25 | const files = await recc('./');
26 | const promises = files.map(async (_file) => {
27 | const file = _file.replace(/\\/g, '/');
28 | // console.log(`File: ${file}; ${getCacheControlForFile(file)}`);
29 | const f = await bucket.upload(file, {
30 | gzip: true,
31 | public: true,
32 | destination: file,
33 | metadata: {
34 | cacheControl: `public, max-age=${getCacheControlForFile(file)}`,
35 | }
36 | });
37 | return f;
38 | });
39 | await Promise.all(promises);
40 | printConsoleStatus(`Uploaded all files`, 'success');
41 | }
42 |
43 | function getCacheControlForFile(file: string) {
44 | // html max-age 3600
45 | // html max-age 3600
46 |
47 | // cache service-worker
48 | if (file.match(/.+worker\.js/)) {
49 | printConsoleStatus(`Service worker cache set to zero: ${file}`, 'info');
50 | return 0;
51 | }
52 |
53 | // cache images
54 | if (file.match(/\.(jpg|jpeg|gif|png|mp4)$/)) {
55 | return 2592000;
56 | }
57 |
58 | // cache javascript
59 | if (file.match(/assets\/js.+(js)$/)) {
60 | return 2592000;
61 | }
62 |
63 | // cache assets
64 | if (file.match(/\.(woff|woff2|css)$/)) {
65 | return 2592000;
66 | }
67 |
68 | // return 3600;
69 | return 7200;
70 | }
--------------------------------------------------------------------------------
/docs/scripts/convert-images.ts:
--------------------------------------------------------------------------------
1 | import * as sharp from 'sharp';
2 | import * as Path from 'path';
3 | import * as fs from 'fs-extra';
4 | import * as recc from 'recursive-readdir';
5 | import { printConsoleStatus } from './util'
6 |
7 | const ignoreFunction = (file: string, stat: fs.Stats) => {
8 | if (file.endsWith('.png')) {
9 | return false;
10 | }
11 | // if (stat.isDirectory()) {
12 | // return false;
13 | // }
14 | return true;
15 | }
16 |
17 | const guideInputPath = './.vuepress/buildAssets/guide';
18 | const apiInputPath = './.vuepress/buildAssets/api';
19 | const guideOutputPath = './.vuepress/public/g-images/guide';
20 | const apiOutputPath = './.vuepress/public/g-images/api';
21 |
22 | const arr: IMap[] = [
23 | {
24 | inputPath: Path.join(apiInputPath, './'),
25 | outputPath: Path.join(apiOutputPath, './'),
26 | },
27 | {
28 | inputPath: Path.join(guideInputPath, './'),
29 | outputPath: Path.join(guideOutputPath, './'),
30 | },
31 | {
32 | inputPath: Path.join(guideInputPath, './intro'),
33 | outputPath: Path.join(guideOutputPath, './intro'),
34 | width: 1200
35 | },
36 | {
37 | inputPath: Path.join(guideInputPath, './user-interface'),
38 | outputPath: Path.join(guideOutputPath, './user-interface'),
39 | width: 1200
40 | }
41 | ];
42 |
43 | fs.emptyDirSync('./.vuepress/public/g-images');
44 | convert(arr);
45 |
46 | function convert(maps: IMap[]) {
47 | maps.map((map) => {
48 |
49 | if (fs.statSync(map.inputPath).isDirectory()) {
50 | convertFolder(map);
51 | return;
52 | }
53 | convertFile(map);
54 | });
55 | }
56 |
57 | async function convertFolder(map: IMap) {
58 | const files = await recc(map.inputPath, [ignoreFunction]);
59 | files.map(async (file) => {
60 | const newMap = JSON.parse(JSON.stringify(map)) as IMap;
61 | newMap.inputPath = file;
62 | newMap.outputPath = Path.join(map.outputPath, Path.basename(file));
63 | convertFile(newMap);
64 | });
65 | }
66 |
67 | async function convertFile(map: IMap) {
68 |
69 | if (map.outputPath.includes('buildAssets')) {
70 | throw Error('Output path is input path');
71 | }
72 |
73 | const meta = await sharp(map.inputPath).metadata();
74 | let width: number = map.width || 600;
75 | let height: number = map.height;
76 |
77 | if ((meta.width < width) && !map.forceGivenSize) {
78 | width = meta.width;
79 | }
80 |
81 | if (height && (meta.height < height) && !map.forceGivenSize) {
82 | height = meta.height;
83 | }
84 |
85 | const buffer = await sharp(map.inputPath)
86 | .resize(width, height)
87 | .toBuffer();
88 |
89 | fs.ensureDirSync(Path.dirname(map.outputPath));
90 |
91 | await fs.writeFile(map.outputPath, buffer);
92 | printConsoleStatus(`Generated image at: ${map.outputPath};`, 'success')
93 | }
94 |
95 | interface IMap {
96 | inputPath: string;
97 | outputPath: string;
98 | width?: number;
99 | height?: number;
100 | forceGivenSize?: boolean
101 | }
--------------------------------------------------------------------------------
/docs/scripts/create-site-map.ts:
--------------------------------------------------------------------------------
1 | import * as recc from 'recursive-readdir';
2 | import * as Path from 'path';
3 | import * as fs from 'fs-extra';
4 | import { ChildProcess, exec } from 'child_process';
5 |
6 | const domainName = 'quarkjs.io';
7 |
8 | createSiteMap().catch(console.error);
9 |
10 | export async function createSiteMap() {
11 | let files = await recc('./', [(path, stat) => {
12 | if (stat.isDirectory() && path.includes('node_modules')) {
13 | return true;
14 | }
15 |
16 | if (stat.isDirectory()) {
17 | return false;
18 | }
19 |
20 | if (path.includes('devtime.md')) {
21 | return true;
22 | }
23 |
24 | if (!path.endsWith('md')) {
25 | return true;
26 | }
27 | }]);
28 |
29 | files = files.map((file) => {
30 | return file
31 | .replace(/README.md/, '')
32 | .replace(/[\\\/]/g, '/')
33 | });
34 |
35 | let str = `\n`;
36 | str = str.concat(``, '\n');
37 |
38 | const promises = files.map(async (file) => {
39 | const cp = exec(`git --no-pager log -1 --format="%cd" ${file}`, {
40 | timeout: 1000
41 | });
42 | let obj = { str: '' }
43 | await promiseFromChildProcess(cp, obj);
44 | let url = ''
45 | if (!file.endsWith('.md') || obj.str.length == 0) {
46 | url = url.concat(`
47 |
48 | https://${domainName}/${file.replace(/\.(md)$/g, '.html')}
49 | daily
50 |
51 | `);
52 | } else {
53 | const date = obj.str.replace(/\n/g, '');
54 | url = url.concat(`
55 |
56 | https://${domainName}/${file.replace(/\.(md)$/g, '.html')}
57 | ${(new Date(date)).toISOString()}
58 |
59 | `);
60 | }
61 | str = str.concat(url.replace(/(\n|\s)/g, '').concat('\n'));
62 | });
63 | await Promise.all(promises);
64 |
65 | str = str.concat(` `);
66 | const sitemapPath = `./.vuepress/dist/sitemap.xml`;
67 | fs.ensureFileSync(sitemapPath);
68 | fs.writeFileSync(sitemapPath, str);
69 | }
70 |
71 | function promiseFromChildProcess(child: ChildProcess, obj: { str: string }) {
72 |
73 | child.stdout.on('data', (data) => { obj.str = obj.str.concat(data) });
74 | child.stderr.on('data', (data) => { console.error(data) });
75 | child.on('close', (code) => {
76 | if (code !== 0) {
77 | throw Error(`Closing code: ${code}`);
78 | }
79 | });
80 |
81 | return new Promise((resolve, reject) => {
82 | child.addListener("error", reject);
83 | child.addListener("exit", resolve);
84 | });
85 | }
--------------------------------------------------------------------------------
/docs/scripts/fix-shasum.ts:
--------------------------------------------------------------------------------
1 | import * as fs from 'fs-extra';
2 | import fetch from 'node-fetch';
3 | import * as js from 'js-beautify';
4 | import * as path from 'path';
5 | import { Storage } from '@google-cloud/storage';
6 | import * as compareVersions from 'compare-versions';
7 | import { makeReleaseDir } from './make-release-dir';
8 |
9 | const bucketUrl = `https://quark-release.quarkjs.io`;
10 | const insiders_versionFilePath = './version-assets/insiders/__versions.json';
11 | const stable_versionFilePath = './version-assets/stable/__versions.json';
12 | const badReleases: string[] = JSON.parse(fs.readFileSync(`./version-assets/insiders/__broken-releases.json`).toString());
13 |
14 | const bucketName = 'quark-release.quarkjs.io';
15 | process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve('./cloud-storage-key.json');
16 |
17 | const storage = new Storage({
18 | projectId: 'diy-mechatronics'
19 | });
20 |
21 | const bucket = storage.bucket(bucketName);
22 |
23 |
24 | root().catch(console.error);
25 | async function root() {
26 | const insiders_versionJson = JSON.parse(fs.readFileSync(insiders_versionFilePath).toString());
27 | const stable_versionJson = JSON.parse(fs.readFileSync(stable_versionFilePath).toString());
28 |
29 | const allReleasedVersions = Object.keys(insiders_versionJson);
30 |
31 | const insidersObject = {} as any;
32 | const stableObject = {} as any;
33 | const promises = allReleasedVersions.map(async (version, index) => {
34 | // if (index > 2) {
35 | // return;
36 | // }
37 | const fix = await fixForVersion(version);
38 | console.log(`Fixed version: ${version}`);
39 |
40 | insidersObject[version] = fix;
41 | if (!badReleases.includes(version) && stable_versionJson[version]) {
42 | stableObject[version] = fix;
43 | }
44 | });
45 | await Promise.all(promises);
46 |
47 | const insiders_filteredObject: any = {};
48 | const stable_filteredObject: any = {};
49 |
50 | Object.keys(insidersObject).sort(compareVersions).reverse().map((key) => { insiders_filteredObject[key] = insidersObject[key] });
51 | Object.keys(stableObject).sort(compareVersions).reverse().map((key) => { stable_filteredObject[key] = stableObject[key] });
52 |
53 | fs.writeFileSync(insiders_versionFilePath, JSON.stringify(insiders_filteredObject, undefined, 4));
54 | fs.writeFileSync(stable_versionFilePath, JSON.stringify(stable_filteredObject, undefined, 4));
55 |
56 | async function fixForVersion(version: string) {
57 | try {
58 | const win32_SHA = JSON.parse((await bucket.file(`Quark-insiders-${version}/win32-shasum.json`).download())[0].toString());
59 | const linux_SHA = JSON.parse((await bucket.file(`Quark-insiders-${version}/linux-shasum.json`).download())[0].toString());
60 | const darwin_SHA = JSON.parse((await bucket.file(`Quark-insiders-${version}/darwin-shasum.json`).download())[0].toString());
61 |
62 | const shaObj = Object.assign({}, win32_SHA, linux_SHA, darwin_SHA);
63 |
64 | const newNotes = ` `;
65 | const newString = (insiders_versionJson[version] as string).replace(/ /, newNotes);
66 | return newString;
67 | } catch (err) {
68 | return insiders_versionJson[version];
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/docs/scripts/generate-service-worker.ts:
--------------------------------------------------------------------------------
1 | import * as path from 'path';
2 | import * as fs from 'fs-extra';
3 |
4 | const outDir = path.resolve('./.vuepress/dist');
5 |
6 | generateServiceWorker().catch(console.error);
7 |
8 | async function generateServiceWorker() {
9 | const initialSw = (await fs.readFile(path.resolve(outDir, 'service-worker.js'))).toString();
10 | const custom = (await fs.readFile('./scripts/sw.js')).toString();
11 | await fs.writeFile(
12 | path.resolve(outDir, 'service-worker.js'),
13 | String().concat(initialSw, custom)
14 | );
15 | }
--------------------------------------------------------------------------------
/docs/scripts/open-links.ts:
--------------------------------------------------------------------------------
1 | const op: typeof import('open') = require('open');
2 |
3 |
4 | const links = [
5 | // 'https://electronjs.org/docs',
6 | // 'https://fireship.io/',
7 | // 'https://processing.org/',
8 | // 'https://vuejs.org/',
9 | // 'https://docs.npmjs.com/about-npm/',
10 | // 'https://ionicframework.com/docs/intro/',
11 | // "https://ionicframework.com/studio",
12 | // 'https://medium.com/@ericsimons/stackblitz-online-vs-code-ide-for-angular-react-7d09348497f4',
13 | // 'https://styleguide.mailchimp.com/writing-technical-content/',
14 | // "https://code.visualstudio.com/docs/setup/setup-overview",
15 | // "https://docs.platformio.org/en/latest/what-is-platformio.html"
16 | "http://tushkiz.github.io/",
17 | "https://arthelon.github.io",
18 | "https://jsonnull.com/",
19 | "https://elrumordelaluz.com/",
20 | "http://ivesvh.com/",
21 | "https://valentin-hervieu.fr",
22 | "http://anenth.js.org",
23 | "http://nyaganti.com/",
24 | "http://bogas04.github.io",
25 | "https://www.ispoljaric.com"
26 | ]
27 |
28 |
29 | links.map((url) => {
30 | op(url, {
31 | background: true
32 | });
33 | })
--------------------------------------------------------------------------------
/docs/scripts/post-build.ts:
--------------------------------------------------------------------------------
1 | import * as path from 'path';
2 | import * as fs from 'fs-extra';
3 | import * as wbb from 'workbox-build';
4 |
5 | const outDir = path.resolve('./.vuepress/dist');
6 | const vuepressDefaultFiles = `js,css,html,png,jpg,jpeg,gif,svg,woff,woff2,eot,ttf,otf`;
7 |
8 | generateServiceWorker().catch(console.error);
9 |
10 | async function generateServiceWorker() {
11 | const result = await wbb.generateSW({
12 | swDest: path.resolve(outDir, 'service-worker.js'),
13 | globDirectory: outDir,
14 | globPatterns: [`**\/*.{${vuepressDefaultFiles}}`]
15 | });
16 | console.log(result);
17 |
18 | const initialSw = (await fs.readFile(path.resolve(outDir, 'service-worker.js'))).toString();
19 | const custom = (await fs.readFile('./scripts/sw.js')).toString();
20 | const skipWaiting = (await fs.readFile(path.resolve('./node_modules/vuepress/lib', 'service-worker/skip-waiting.js'))).toString();
21 | await fs.writeFile(
22 | path.resolve(outDir, 'service-worker.js'),
23 | String().concat(initialSw, custom, skipWaiting)
24 | );
25 | }
--------------------------------------------------------------------------------
/docs/scripts/purge-cache.ts:
--------------------------------------------------------------------------------
1 | import fetch from 'node-fetch';
2 | import * as dotenv from 'dotenv';
3 | dotenv.config({ path: '.env' });
4 |
5 | purgeCache().then((res) => {
6 | console.log(res);
7 | }).catch(console.error);
8 |
9 | async function purgeCache() {
10 | const result = await fetch(`https://api.cloudflare.com/client/v4/zones/7d5732fab88b05cc381a9479ad89a090/purge_cache`, {
11 | method: 'post',
12 | headers: {
13 | 'X-Auth-Email': 'kashyapnishkal@gmail.com',
14 | 'X-Auth-Key': process.env.CLOUD_FLARE_API_KEY,
15 | 'Content-Type': 'application/json'
16 | },
17 | body: JSON.stringify({
18 | purge_everything: true
19 | })
20 | });
21 | console.log(await result.text());
22 | }
--------------------------------------------------------------------------------
/docs/scripts/send-build-notification.ts:
--------------------------------------------------------------------------------
1 | import * as dotenv from 'dotenv';
2 | dotenv.config({ path: './.env' });
3 |
4 | import * as web from '@slack/web-api';
5 | import * as fs from 'fs-extra';
6 |
7 | type channels = 'storage' | 'general' | 'compute' | 'billing' | 'download' | 'documentation';
8 |
9 | const token = (process.env.BOT_ACCESS_TOKEN);
10 | const client = new web.WebClient(token);
11 | function postMessage(channel: channels, text: string) {
12 | client.chat.postMessage({
13 | channel,
14 | text,
15 | mrkdwn: true
16 | }).then((value) => {
17 | console.log(text);
18 | }).catch((err) => {
19 | console.log(err);
20 | });
21 | }
22 |
23 | const version = fs.readJsonSync('./package.json').version;
24 | postMessage('documentation', `Build version:${version} was uploaded.`);
--------------------------------------------------------------------------------
/docs/scripts/sw.js:
--------------------------------------------------------------------------------
1 | workbox.routing.registerRoute(
2 | /^https:\/\/fonts\.gstatic\.com/,
3 | new workbox.strategies.CacheFirst({
4 | cacheName: 'google-fonts-webfonts',
5 | plugins: [
6 | new workbox.cacheableResponse.Plugin({
7 | statuses: [200],
8 | }),
9 | new workbox.expiration.Plugin({
10 | maxAgeSeconds: 60 * 60 * 24 * 365,
11 | maxEntries: 30,
12 | }),
13 | ],
14 | })
15 | );
16 |
17 | workbox.routing.registerRoute(
18 | new RegExp('/__/'),
19 | new workbox.strategies.StaleWhileRevalidate({
20 | cacheName: 'firebase',
21 | })
22 | );
23 |
24 | workbox.routing.registerRoute(
25 | /^https:\/\/google-analytics\.com/,
26 | new workbox.strategies.StaleWhileRevalidate({
27 | cacheName: 'google-analytics',
28 | })
29 | );
30 |
31 | workbox.routing.registerRoute(
32 | /^https:\/\/static\.hotjat\.com/,
33 | new workbox.strategies.StaleWhileRevalidate({
34 | cacheName: 'hotjar',
35 | })
36 | );
37 |
38 | // imgur images
39 | workbox.routing.registerRoute(
40 | /^https:.*imgur.*\.(png|jpg|jpeg|gif)$/,
41 | new workbox.strategies.StaleWhileRevalidate({
42 | cacheName: 'imgur-images',
43 | plugins: [
44 | new workbox.cacheableResponse.Plugin({
45 | statuses: [200],
46 | }),
47 | new workbox.expiration.Plugin({
48 | maxAgeSeconds: 60 * 60 * 24 * 7,
49 | maxEntries: 30,
50 | })
51 | ]
52 | })
53 | );
54 |
55 | // imgur videos
56 | workbox.routing.registerRoute(
57 | /^https:.*imgur.*\.(mp4)$/,
58 | new workbox.strategies.StaleWhileRevalidate({
59 | cacheName: 'imgur-videos',
60 | plugins: [
61 | new workbox.cacheableResponse.Plugin({
62 | statuses: [200],
63 | }),
64 | new workbox.rangeRequests.Plugin(),
65 | new workbox.expiration.Plugin({
66 | maxAgeSeconds: 60 * 60 * 24 * 7,
67 | maxEntries: 30,
68 | })
69 | ]
70 | })
71 | );
72 |
73 | // https://developers.google.com/web/tools/workbox/guides/advanced-recipes#cached-av
74 | workbox.routing.registerRoute(
75 | // new RegExp('.(mp4)$'),
76 | // /.*\.mp4/,//
77 | /.*quarkjs.*\.mp4/,//
78 | new workbox.strategies.CacheFirst({
79 | cacheName: 'videos',
80 | plugins: [
81 | new workbox.cacheableResponse.Plugin({ statuses: [200] }),
82 | new workbox.rangeRequests.Plugin(),
83 | ],
84 | })
85 | );
--------------------------------------------------------------------------------
/docs/scripts/types.js:
--------------------------------------------------------------------------------
1 | exports.AllTags = reverse({
2 | javascript: {
3 | background: 'var(--text-color--dark)',
4 | color: '#f0db4f',
5 | description: `JavaScript (JS) is a lightweight interpreted or just-in-time compiled programming language.`
6 | },
7 | typescript: {
8 | background: 'var(--text-color--dark)',
9 | color: '#2775c3',
10 | description: `TypeScript is an open-source programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript.`
11 | },
12 | nodejs: {
13 | background: 'var(--text-color--dark)',
14 | color: '#90c53f',
15 | description: `Node.js is an open-source, cross-platform JavaScript runtime environment that executes JavaScript code outside of a browser.`
16 | },
17 | structures: {
18 | background: '#ffffff',
19 | color: '#ff5252',
20 | description: `Data structures used in the API.`
21 | },
22 | references: {
23 | background: '#ffffff',
24 | color: '#3880ff',
25 | description: `API Reference Overview for Quark API.`
26 | },
27 | api: {
28 | background: '#ffffff',
29 | color: '#6675e0',
30 | description: `Quark API is a set of JavaScript APIs that you can invoke in your sketches.`
31 | },
32 | guide: {
33 | background: '#ffffff',
34 | color: '#a481d5',
35 | description: `Outline. Download and install Quark. See an overview of the user interface.`
36 | },
37 | faq: {
38 | background: '#ffffff',
39 | color: '#6675e0',
40 | description: `A common questions section as needed for specific topics. We've captured items here that don't fit in the other topics.`
41 | },
42 | arduino: {
43 | background: '#ffffff',
44 | color: '#00979d',
45 | description: `Arduino is an open-source hardware and software company, project and user community that designs and manufactures single-board microcontrollers.`
46 | }
47 | });
48 |
49 | function reverse(tags) {
50 | // Object.keys(tags).map((tag) => {
51 | // const background = tags[tag].background;
52 | // const color = tags[tag].color;
53 |
54 | // tags[tag].background = color;
55 | // tags[tag].color = background;
56 | // });
57 |
58 | for (let tag in tags) {
59 | const background = tags[tag].background;
60 | const color = tags[tag].color;
61 |
62 | tags[tag].background = color;
63 | tags[tag].color = background;
64 | }
65 | return tags;
66 | }
--------------------------------------------------------------------------------
/docs/scripts/util.ts:
--------------------------------------------------------------------------------
1 | import * as YAML from 'yamljs';
2 | import * as fs from 'fs-extra';
3 | import chalk from 'chalk';
4 | import { Storage } from '@google-cloud/storage';
5 | process.env.GOOGLE_APPLICATION_CREDENTIALS = './cloud-storage-key.json';
6 |
7 | export function printConsoleStatus(message: string, status: 'danger' | 'success' | 'warning' | 'info'): void {
8 | let emoji = (status == 'danger') ? ' ❗' : (status == 'success') ? ' ✅ ' : (status == 'warning') ? ' ⚠️ ' : ' ️️💁 ';
9 | const color = (status == 'danger') ? chalk.redBright : (status == 'success') ? chalk.greenBright : (status == 'warning') ? chalk.yellowBright : chalk.whiteBright;
10 | console.log(color(`| ${emoji} | ${message}`));
11 | }
12 | export function randomIntFromInterval(min: number, max: number) {
13 | return Math.floor(Math.random() * (max - min + 1) + min);
14 | }
15 |
16 | export function getFrontmatterFromPath(path: string): (Frontmatter & { path: string }) | null {
17 | const frontmatter = fs.readFileSync(path).toString().match(/---([\s\S\n]+?)---/);
18 | try {
19 | const data = YAML.parse(frontmatter[1]);
20 | data.path = path;
21 | return data;
22 | } catch (err) {
23 | return null;
24 | }
25 | }
26 |
27 | export function capitalize(s: string) {
28 | var splitStr = s.split(' ');
29 | for (var i = 0; i < splitStr.length; i++) {
30 | splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);
31 | }
32 | return splitStr.join(' ');
33 | }
34 |
35 | export function getFiles(bucketName: string, version: string): Promise {
36 | return new Promise((resolve) => {
37 |
38 | const arr: string[] = [];
39 | const storage = new Storage({
40 | projectId: 'diy-mechatronics'
41 | });
42 | storage.bucket(bucketName).getFiles().then((folders) => {
43 | folders.map((files) => {
44 | files.map((file) => {
45 | if (file.name.includes(`Quark-${version}`)) {
46 | arr.push(file.name.replace(`Quark-${version}/`, ''));
47 | }
48 | });
49 | resolve(arr);
50 | });
51 | });
52 | });
53 | }
54 |
55 | export function getFrontmatterFromObject(obj: object) {
56 | let str = '';
57 | str = str.concat(`---`, '\n');
58 | Object.keys(obj).map((key) => {
59 | str = str.concat(`${key}: ${obj[key]}`, '\n');
60 | });
61 | str = str.concat(`---`, '\n');
62 | return str;
63 | }
64 |
65 | export type IFrontmatterData = {
66 | path: string;
67 | frontmatter: Frontmatter;
68 | };
69 |
70 | export type Frontmatter = {
71 | author: string;
72 | tags: string[];
73 | description: string;
74 | cover: string;
75 | };
76 |
77 | type releaseType = 'stable' | 'insiders';
78 | interface releaseInterface {
79 | downloadFilePath: string;
80 | bucketSubUrl: releaseType;
81 | }
82 |
83 | export const releaseVariables: { [key in releaseType]: releaseInterface } = {
84 | stable: {
85 | downloadFilePath: './download/README.md',
86 | bucketSubUrl: 'stable'
87 | },
88 | insiders: {
89 | downloadFilePath: './download/insiders.md',
90 | bucketSubUrl: 'insiders'
91 | }
92 | }
93 |
94 | export function reccursiveIgnoreFunction(path: string, stat: fs.Stats) {
95 | const Path = require('path');
96 |
97 | if (stat.isDirectory() && path.includes('node_modules')) {
98 | return true;
99 | }
100 |
101 | if (stat.isDirectory() && Path.resolve(path) == Path.resolve('./tags')) {
102 | return true;
103 | }
104 |
105 | if (stat.isDirectory()) {
106 | return false;
107 | }
108 |
109 | if (!path.endsWith('md')) {
110 | return true;
111 | }
112 | }
--------------------------------------------------------------------------------
/docs/scripts/versions.json:
--------------------------------------------------------------------------------
1 | {
2 | "versions": [
3 | 0.1,
4 | 0.2,
5 | 0.3,
6 | 0.4,
7 | 0.5,
8 | 0.6
9 | ],
10 | "currentVersion": 0.6
11 | }
--------------------------------------------------------------------------------
/docs/scripts/video-speed-defaults.ts:
--------------------------------------------------------------------------------
1 | import * as path from 'path';
2 |
3 | interface IDefaults {
4 | [path: string]: {
5 | size?: string;
6 | bitrate?: string;
7 | speed?: number;
8 | }
9 | }
10 |
11 | const defaultsInner: IDefaults = {
12 | './videos/guide/hello-world-intro.avi': {
13 | speed: 2
14 | },
15 | './videos/guide/showcase/control-system-1.mp4' : {
16 | bitrate : '1000k'
17 | },
18 | './videos/guide/showcase/system-monitor.mp4' : {
19 | bitrate : '512k'
20 | }
21 | }
22 |
23 | export const defaults: IDefaults = {};
24 | Object.keys(defaultsInner).map((key) => {
25 | defaults[path.resolve(key)] = defaultsInner[key];
26 | });
--------------------------------------------------------------------------------
/docs/snippets/auto-update.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'A brief introduction of the auto-updates feature.'
3 | author : nishkal
4 | tags : ['nodejs', 'javascript']
5 | # title : 'Configuring build process'
6 | ---
7 |
8 | # Auto updates
9 |
10 |
11 |
12 | Quark comes pre-built with auto-updates feature. But this feature is only supported in a few distributions.
13 |
14 | ### Auto-updatable distributions
15 | * MacOS: DMG
16 | * Linux: AppImage
17 | * Windows: EXE
18 |
19 | Since Quark is currently a __beta software__, we are shipping updates almost daily. It is __highly reccomended__ that you only download these distributions to get the latest features and bug fixes.
20 |
21 | ### Release channels
22 | We support 2 release channels.
23 | 1. __Insiders release:__ Insiders has the most recent code pushes and may lead to the occasional broken build. New releases are published almost every other day.
24 | 2. __Stable release:__ Only stable releases are published on this channel. This channel may be updated once a month.
25 |
26 | By default, your release channel is set to __Stable__. You will need to change this setting to move to the insiders release.
27 |
28 | ### Selecting the release channel
29 | You can select the release channel from [settings](/guide/quark-ide.html#settings). (`Settings > General > Auto Updates > Release channel`)
30 |
31 | 
32 |
33 | ### Disabling auto-updates
34 | You can optionally choose to disable auto-updates feature from `Settings > General > Auto Updates > Disable auto-updates`
35 |
36 |
--------------------------------------------------------------------------------
/docs/snippets/configuring-build.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'Quark uses webpack behind the scenes to build your project. You would configure the build process, by adding a webpack config file.'
3 | author : nishkal
4 | tags : ['nodejs', 'javascript']
5 | # title : 'Configuring build process'
6 | ---
7 |
8 | # Configuring build
9 |
10 |
11 |
12 |
13 |
14 | ##### Create the config file
15 | Create a `webpack.config.js` file at the root of your project. e.g.
16 | ```
17 | .
18 | ├─ setup.js
19 | └─ webpack.config.js
20 | ```
21 |
22 | ##### Add webpack config
23 | [Config reference](https://webpack.js.org)
24 | ```js
25 | // webpack.config.js
26 | module.exports = {
27 | ...
28 | }
29 | ```
30 |
31 | !!! warning Caveats
32 | Quark uses an in-memory file system with webpack. This requires a little patch behind the scenes. The only thing you need to remember is that:-
33 | 1. The `entry` key must be an object with a `src` key.
34 | 2. The value of this key must concat `/src/` in front of the absolute file path of the file you want to be the entry point of your application.
35 |
36 | __Example:__ If your entry point file is `index.ts` at the root of your project, your config must look like this-
37 |
38 | ```js
39 | // .
40 | // ├─ setup.js
41 | // ├─ index.ts
42 | // └─ webpack.config.js
43 | {
44 | ...
45 | "entry": {
46 | "src" : "/src/index.ts"
47 | }
48 | }
49 | ```
50 |
51 | __Example:__ If your entry point file is `index.ts` nested inside of a folder (`view`), your config must look like this-
52 |
53 | ```js
54 | // .
55 | // ├── view
56 | // │ └── index.ts
57 | // ├── setup.js
58 | // └── webpack.config.js
59 | {
60 | ...
61 | "entry": {
62 | "src" : "/src/view/index.ts"
63 | }
64 | }
65 | ```
66 | !!!
67 |
--------------------------------------------------------------------------------
/docs/snippets/convert-existing-electron-app.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : 'Convert existing electron app to a Quark sketch. In this guide, we are going to load an existing electron application into a webview and also bundle the application as a Quark sketch.'
3 | author : nishkal
4 | tags : ['nodejs', 'javascript']
5 | pageClass: small-heading-page
6 | ---
7 |
8 | # Convert existing electron app to a sketch
9 |
10 |
11 |
12 | ##### Write the following code in the entry point of your application. In this case, `index.js` file.
13 | ```ts
14 | // index.ts
15 | import * as path from 'path';
16 | import * as fs from 'fs';
17 | import { remote } from 'electron';
18 |
19 | quark.views.tabsviewController.hideNavbar();
20 |
21 | const indexFilePath = path.resolve(`./${__projectfile}/index.html`);
22 |
23 | const view = quark.views.createTabsView('My Electron App', document.createElement('webview'));
24 | view.onDidConnectElement = () => {
25 |
26 | const url = `file://` + indexFilePath;
27 |
28 | let webview: Electron.WebviewTag = view.element as any;
29 | webview.setAttribute('src', url);
30 | webview.setAttribute('nodeintegration', '');
31 | webview.setAttribute('style', "display:flex;height:100%");
32 |
33 | const devtools = quark.util.createOutputChannel('App logs');
34 | devtools.show();
35 |
36 | webview.getWebContents().on('console-message', (e, level, message, line, sourceId) => {
37 | devtools.appendLine(message);
38 | });
39 |
40 | const status = quark.util.createStatusBarItem();
41 | status.text = 'Toggle dev tools';
42 | status.show();
43 | status.command = () => {
44 | webview.getWebContents().toggleDevTools();
45 | }
46 | }
47 | view.focus();
48 | ```
49 |
50 | ##### Build and test the application.
51 | First build the application, and then package the application into the archive format. To pack the application, select `Builder: Package` command from the command palette.
52 |
53 | If the application was packed successfully, test the app by running the command `Run: Package`.
--------------------------------------------------------------------------------
/docs/structures/ICommand.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # ICommand
9 |
10 | [[toc]]
11 |
12 |
20 |
21 | ### id
22 | * type `string`
23 |
24 | ### handle
25 | * type `Function`
26 |
27 | ### thisArg
28 | * type `any`(optional)
29 |
30 | ### label
31 | * type `string`(optional)
32 |
33 | ### dispose
34 | * type `Function`
--------------------------------------------------------------------------------
/docs/structures/IKeyBindingRegister.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # IKeyBindingRegister
9 |
10 | [[toc]]
11 |
12 | ### addKeyBinding(keybindings[, when])
13 | * arguments
14 | * keybindings - `string | Array`
15 | * when - `string`(optional)
16 | * returns `void`
--------------------------------------------------------------------------------
/docs/structures/ISnackbarButton.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # SnackbarItem
9 |
10 | [[toc]]
11 |
12 | ### label
13 | * type `string`
14 |
15 | ### handle()
16 | * type `Function`
17 |
18 | ### icon
19 | * type `string`
--------------------------------------------------------------------------------
/docs/structures/MemoryStore.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # MemoryStore
9 |
10 | [[toc]]
11 |
12 | ### get(path[, defaultValue])
13 | Gets the property value at path of object. If the resolved value is undefined the defaultValue is used in its place.
14 | * arguments
15 | * path `string`
16 | * defaultValue `any`(optional)
17 | * returns `any`
18 |
19 |
20 | ### set(path, value)
21 | Sets the value at path of object. If a portion of path doesn’t exist it’s created. Arrays are created for missing index properties while objects are created for all other missing properties.
22 | * arguments
23 | * path `string`
24 | * value `any`
25 | * returns `any`
26 |
27 |
28 | ### update(path, updater)
29 | This method is like `set` except that accepts updater to produce the value to set.
30 | * arguments
31 | * path `string`
32 | * updater `(value) => any`
33 | * returns `any`
34 |
35 | ### has(path)
36 | Checks if path is a direct property of object.
37 | * arguments
38 | * path `string`
39 | * returns `boolean`
40 |
41 |
42 | ### delete(path)
43 | Deletes the property of the object.
44 | * arguments
45 | * path `string`
46 | * returns `void`
47 |
48 |
49 | ### size()
50 | Gets the size of collection by returning its length for array-like values or the number of own enumerable properties for objects.
51 | * returns `number`
--------------------------------------------------------------------------------
/docs/structures/PersistantStore.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # PersistantStore
9 |
10 | [[toc]]
11 |
12 | ### get(path[, defaultValue])
13 | Gets the property value at path of object. If the resolved value is undefined the defaultValue is used in its place.
14 | * arguments
15 | * path `string`
16 | * defaultValue `any`(optional)
17 | * returns `any`
18 |
19 |
20 | ### set(path, value)
21 | Sets the value at path of object. If a portion of path doesn’t exist it’s created. Arrays are created for missing index properties while objects are created for all other missing properties.
22 | * arguments
23 | * path `string`
24 | * value `any`
25 | * returns `any`
26 |
27 |
28 | ### update(path, updater)
29 | This method is like `set` except that accepts updater to produce the value to set.
30 | * arguments
31 | * path `string`
32 | * updater `(value) => any`
33 | * returns `any`
34 |
35 | ### has(path)
36 | Checks if path is a direct property of object.
37 | * arguments
38 | * path `string`
39 | * returns `boolean`
40 |
41 |
42 | ### delete(path)
43 | Deletes the property of the object.
44 | * arguments
45 | * path `string`
46 | * returns `void`
47 |
48 |
49 | ### size
50 | Gets the size of collection by returning its length for array-like values or the number of own enumerable properties for objects.
51 | * returns `number`
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | ### forceUpdate([, key])
62 | Writes the store's data to the file system.
63 | * arguments
64 | * key `string`(optional)
65 | * returns `void`
66 |
67 | ### onDidChange(key, callback)
68 | Watches the given key, calling callback on any changes. When a key is first set oldValue will be undefined, and when a key is deleted newValue will be undefined.
69 | * arguments
70 | * key `string`
71 | * callback `(newValue, oldValue) => void`
72 | * returns `void`
--------------------------------------------------------------------------------
/docs/structures/SnackbarItem.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # SnackbarItem
9 |
10 | [[toc]]
11 |
12 | ### buttons
13 |
14 | * type [`ISnackbarButton[]`](/structures/ISnackbarButton)
15 |
16 | ### dispose()
17 | * type `Function`
18 |
19 | ### duration
20 | * type `number`
21 |
22 | ### element
23 | * type `HTMLElement`
24 |
25 | ### id
26 | * type `string`
27 |
28 | ### message
29 | * type `string`
30 |
31 | ### show()
32 | * type `Function`
33 | * returns `void`
34 |
35 | ### type
36 | * type `"danger" | "success" | "warning" | "info"`
--------------------------------------------------------------------------------
/docs/structures/bottomview-controller.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | view : 'bottomview'
6 | cover: ~@buildAssets/api/structures.png
7 | ---
8 |
9 | # BottomviewController
10 |
11 | [[toc]]
12 |
13 | ### getCurrentView()
14 | Returns the current {{$page.frontmatter.view}}.
15 | * returns [`ViewProvider`](/structures/view-provider.md)
16 |
17 | ### getCurrentView()
18 | Returns all registered {{$page.frontmatter.view}}s.
19 | * returns `Array`
20 |
21 |
22 | ### isNavbarVisible()
23 | Returns boolean.
24 | * returns `boolean`
25 |
26 |
27 | ### toggleNavbar()
28 | Toggles the navbar.
29 | * returns `void`
30 |
31 |
32 | ### hideNavbar()
33 | Hides the navbar.
34 | * returns `void`
35 |
36 |
37 | ### showNavbar()
38 | Shows the navbar.
39 | * returns `void`
40 |
41 |
42 | ### selectNextView()
43 | Selects the next {{$page.frontmatter.view}}.
44 | * returns `void`
45 |
46 |
47 | ### selectPreviousView()
48 | Selects the previous {{$page.frontmatter.view}}.
49 | * returns `void`
50 |
51 |
52 | ### triggerUpdate()
53 | Triggers {{$page.frontmatter.view}} update.
54 | * returns `void`
55 |
56 |
57 | ### removeView(view)
58 | Removed the view.
59 | * arguments
60 | * view - [`ViewProvider`](/structures/view-provider.md)
61 | * returns `void`
62 |
63 | ### getViewById(id)
64 | Removed the view.
65 | * arguments
66 | * id - `string`
67 | * returns `void`
68 |
69 | ### setView(view)
70 | Removed the view.
71 | * arguments
72 | * view - [`ViewProvider`](/structures/view-provider.md)
73 | * returns `void`
74 |
75 | ### isVisible()
76 | Returns boolean
77 | * returns `boolean`
78 |
79 | ### toggle()
80 | Toggles view visibility.
81 | * returns `void`
82 |
83 | ### hide()
84 | Hides the view.
85 | * returns `void`
86 |
87 | ### show()
88 | Shows the view.
89 | * returns `void`
90 |
91 | ### maximize()
92 | Maximizes the view.
93 | * returns `void`
94 |
95 | ### minimize()
96 | Minimized the view.
97 | * returns `void`
--------------------------------------------------------------------------------
/docs/structures/button-field.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # ButtonField
9 |
10 | [[toc]]
11 |
12 | ### label
13 | * type `string`
14 |
15 | ### handle
16 | * type `Function`
17 |
18 | ### icon
19 | * type `string`(optional)
--------------------------------------------------------------------------------
/docs/structures/context-menu-ref.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # ContextMenuRef
9 |
10 | [[toc]]
11 |
12 | ## Methods
13 |
14 | ### dispose()
15 | Removed the menu and clears the associated resources.
16 | * returns `void`
17 |
18 | ### update(menu)
19 | Updates the menu.
20 | * arguments
21 | * menu [`Array`](/structures/menu-item.md)
22 | * returns `void`
23 |
24 | ### show(x, y)
25 | Shows the ContextMenu at the specified x and y positions.
26 | * arguments
27 | * x `number`
28 | * y `number`
29 | * returns `void`
30 |
31 | ## Properties
32 |
33 | ### items
34 | Menu items.
35 | * type [`Array`](/structures/menu-item.md)
36 |
37 |
--------------------------------------------------------------------------------
/docs/structures/icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # Icon
9 |
10 | [[toc]]
11 |
12 | ### name
13 | The name of the icon.
14 | * type `string`
15 |
16 | ### path
17 | The path of the icon file.
18 | * type `string`
--------------------------------------------------------------------------------
/docs/structures/input-field.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # InputField
9 |
10 | [[toc]]
11 |
12 | ### placeholder
13 | Placeholder for the select field.
14 | * type `string`
15 |
16 | ### currentValue
17 | Current value of the select field. Must be one of the values provided in `options` array.
18 | * type `Function`
19 |
20 | ### isHidden
21 | Controls whether the field is visible or hidden.
22 | * type `boolean`
23 |
24 | ### handle
25 | * type `(value?: string) => void`
--------------------------------------------------------------------------------
/docs/structures/menu-item.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # MenuItem
9 |
10 | [[toc]]
11 |
12 | ### label
13 | Label of the menu item.
14 | * type `string`
15 |
16 | ### command
17 | Command to execute on click.
18 | * type `string | Function`(optional)
19 |
20 | ### children
21 | Children of the menu item.
22 | * type `Array`(optional)
23 |
24 | ### divider
25 | Controls whether to show divider or not.
26 | * type `boolean`(optional)
27 |
28 | ### icon
29 | Icon to show at the menu item.
30 | * type `string`(optional)
31 |
32 |
33 | ### disabled
34 | Icon to show at the menu item.
35 | * type `boolean`(optional)
--------------------------------------------------------------------------------
/docs/structures/menu-ref.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # MenuRef
9 |
10 | [[toc]]
11 |
12 | ## Methods
13 |
14 | ### dispose()
15 | Removed the menu and clears the associated resources.
16 | * returns `void`
17 |
18 | ### update(menu)
19 | Updates the menu.
20 | * arguments
21 | * menu [`Array`](/structures/menu-item.md)
22 | * returns `void`
23 |
24 | ## Properties
25 |
26 | ### items
27 | Menu items.
28 | * type [`Array`](/structures/menu-item.md)
29 |
30 |
--------------------------------------------------------------------------------
/docs/structures/select-field.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # SelectField
9 |
10 | [[toc]]
11 |
12 | ### placeholder
13 | Placeholder for the select field.
14 | * type `string`
15 |
16 | ### currentValue
17 | Current value of the select field. Must be one of the values provided in `options` array.
18 | * type `Function`
19 |
20 | ### isHidden
21 | Controls whether the field is visible or hidden.
22 | * type `boolean`
23 |
24 | ### options
25 | * type `Array`
26 |
27 | ### viewOptions
28 | * type `Array`
29 |
30 | ### handle
31 | * type `(option?: string) => void`
--------------------------------------------------------------------------------
/docs/structures/sideview-controller.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | view : 'sideview'
7 | ---
8 |
9 | # SideviewController
10 |
11 | [[toc]]
12 |
13 | ### getCurrentView()
14 | Returns the current {{$page.frontmatter.view}}.
15 | * returns [`ViewProvider`](/structures/view-provider.md)
16 |
17 | ### getCurrentView()
18 | Returns all registered {{$page.frontmatter.view}}s.
19 | * returns `Array`
20 |
21 |
22 | ### isNavbarVisible()
23 | Returns boolean.
24 | * returns `boolean`
25 |
26 |
27 | ### toggleNavbar()
28 | Toggles the navbar.
29 | * returns `void`
30 |
31 |
32 | ### hideNavbar()
33 | Hides the navbar.
34 | * returns `void`
35 |
36 |
37 | ### showNavbar()
38 | Shows the navbar.
39 | * returns `void`
40 |
41 |
42 | ### selectNextView()
43 | Selects the next {{$page.frontmatter.view}}.
44 | * returns `void`
45 |
46 |
47 | ### selectPreviousView()
48 | Selects the previous {{$page.frontmatter.view}}.
49 | * returns `void`
50 |
51 |
52 | ### triggerUpdate()
53 | Triggers {{$page.frontmatter.view}} update.
54 | * returns `void`
55 |
56 |
57 | ### removeView(view)
58 | Removed the view.
59 | * arguments
60 | * view - [`ViewProvider`](/structures/view-provider.md)
61 | * returns `void`
62 |
63 | ### getViewById(id)
64 | Removed the view.
65 | * arguments
66 | * id - `string`
67 | * returns `void`
68 |
69 | ### setView(view)
70 | Removed the view.
71 | * arguments
72 | * view - [`ViewProvider`](/structures/view-provider.md)
73 | * returns `void`
74 |
75 | ### isVisible()
76 | Returns boolean
77 | * returns `boolean`
78 |
79 | ### toggle()
80 | Toggles view visibility.
81 | * returns `void`
82 |
83 | ### hide()
84 | Hides the view.
85 | * returns `void`
86 |
87 | ### show()
88 | Shows the view.
89 | * returns `void`
90 |
91 | ### maximize()
92 | Maximizes the view.
93 | * returns `void`
94 |
95 | ### minimize()
96 | Minimized the view.
97 | * returns `void`
--------------------------------------------------------------------------------
/docs/structures/tabsview-controller.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | view : 'tabsview'
7 | ---
8 |
9 | # TabsviewController
10 |
11 | [[toc]]
12 |
13 | ### getCurrentView()
14 | Returns the current {{$page.frontmatter.view}}.
15 | * returns [`ViewProvider`](/structures/view-provider.md)
16 |
17 | ### getCurrentView()
18 | Returns all registered {{$page.frontmatter.view}}s.
19 | * returns `Array`
20 |
21 |
22 | ### isNavbarVisible()
23 | Returns boolean.
24 | * returns `boolean`
25 |
26 |
27 | ### toggleNavbar()
28 | Toggles the navbar.
29 | * returns `void`
30 |
31 |
32 | ### hideNavbar()
33 | Hides the navbar.
34 | * returns `void`
35 |
36 |
37 | ### showNavbar()
38 | Shows the navbar.
39 | * returns `void`
40 |
41 |
42 | ### selectNextView()
43 | Selects the next {{$page.frontmatter.view}}.
44 | * returns `void`
45 |
46 |
47 | ### selectPreviousView()
48 | Selects the previous {{$page.frontmatter.view}}.
49 | * returns `void`
50 |
51 |
52 | ### triggerUpdate()
53 | Triggers {{$page.frontmatter.view}} update.
54 | * returns `void`
55 |
56 |
57 | ### removeView(view)
58 | Removed the view.
59 | * arguments
60 | * view - [`ViewProvider`](/structures/view-provider.md)
61 | * returns `void`
62 |
63 | ### getViewById(id)
64 | Removed the view.
65 | * arguments
66 | * id - `string`
67 | * returns `void`
68 |
69 | ### setView(view)
70 | Removed the view.
71 | * arguments
72 | * view - [`ViewProvider`](/structures/view-provider.md)
73 | * returns `void`
--------------------------------------------------------------------------------
/docs/structures/view-provider.md:
--------------------------------------------------------------------------------
1 | ---
2 | description : ''
3 | author : nishkal
4 | tags : ['structures', 'api']
5 | cover: ~@buildAssets/api/structures.png
6 | ---
7 |
8 | # ViewProvider
9 |
10 | [[toc]]
11 |
12 | ## Methods
13 |
14 | ### dispose()
15 | Removes the view
16 | * returns `void`
17 |
18 | ### isVisible()
19 | Returns boolean.
20 | * returns `void`
21 |
22 | ### hide()
23 | Hides the view.
24 | * returns `void`
25 |
26 | ### show()
27 | Shows the view.
28 | * returns `void`
29 |
30 | ### isFocused()
31 | Returns `true` if the view is focused.
32 | * returns `boolean`
33 |
34 | ### blur()
35 | Removes the focus from view and selects previous view.
36 | * returns `boolean`
37 |
38 |
39 |
40 |
41 |
42 | ### onWillCreateElement()
43 | Removes the focus from view and selects previous view.
44 | * returns `void`
45 |
46 | ### onDidCreateElement()
47 | Removes the focus from view and selects previous view.
48 | * returns `void`
49 |
50 | ### onDidConnectElement()
51 | Removes the focus from view and selects previous view.
52 | * returns `void`
53 |
54 | ### onWillRemoveElement()
55 | Removes the focus from view and selects previous view.
56 | * returns `void`
57 |
58 | ### onDidRemoveElement()
59 | Removes the focus from view and selects previous view.
60 | * returns `void`
61 |
62 | ### onCanEnterView()
63 | Removes the focus from view and selects previous view.
64 | * returns `Promise | boolean`
65 |
66 | ### onDidEnterView()
67 | Removes the focus from view and selects previous view.
68 | * returns `void`
69 |
70 | ### onCanRemoveView()
71 | Removes the focus from view and selects previous view.
72 | * returns `Promise | boolean`
73 |
74 | ### onDidRemoveView()
75 | Removes the focus from view and selects previous view.
76 | * returns `void`
77 |
78 | ### getProgressBarValue()
79 | Removes the focus from view and selects previous view.
80 | * returns `number | 'indeterminate'`
81 |
82 |
83 | ### setProgressBar([value])
84 | Removes the focus from view and selects previous view.
85 | * arguments
86 | * value `number`
87 | * returns `void`
88 |
89 |
90 |
91 |
92 |
93 |
94 | ## Properties
95 |
96 | ### label
97 | * type `string`
98 |
99 | ### element
100 | * type `Element`
101 |
102 | ### keepConnected
103 | * type `boolean`
104 |
105 | ### busy
106 | * type `boolean`
107 |
108 | ### badge
109 | * type `string | number`
110 |
111 | ### icon
112 | * type `string`
113 |
114 | ### tooltip
115 | * type `string`
116 |
117 | ### data
118 | * type `any`
119 |
120 | ### actionIcon
121 | * type `string`
122 |
123 | ### contextMenu
124 | * type [`ContextMenuRef`](/)
125 |
126 | ### buttons
127 | * type [`Array`](/)
128 |
129 | ### inputField
130 | * type [`InputField`](/)
131 |
132 | ### selectField
133 | * type [`SelectField`](/)
134 |
--------------------------------------------------------------------------------
/docs/style-guide/README.md:
--------------------------------------------------------------------------------
1 | # Style Guide
2 |
3 | This is the official style guide for Quark-specific code. This is a great reference to avoid errors, bikeshedding, and anti-patterns for projects made with Quark. However, we don’t believe that any style guide is ideal for all teams or projects, so mindful deviations are encouraged based on past experience and the surrounding tech stack.
4 |
5 | For the most part, we also avoid suggestions about JavaScript or HTML in general. We don’t mind whether you use semicolons or trailing commas. We don’t mind whether your HTML uses single-quotes or double-quotes for attribute values. Some exceptions will exist however, where we’ve found that a particular pattern is helpful in the context of Quark.
--------------------------------------------------------------------------------
/docs/style-guide/creating-templates.md:
--------------------------------------------------------------------------------
1 | # Creating Templates
2 |
3 | There are several ways in which
--------------------------------------------------------------------------------
/docs/travis-secrets.tar.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/docs/travis-secrets.tar.enc
--------------------------------------------------------------------------------
/docs/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "allowSyntheticDefaultImports": true,
5 | "importHelpers": true,
6 | "outDir": "./dist/out-tsc",
7 | "sourceMap": false,
8 | "declaration": false,
9 | "moduleResolution": "node",
10 | "emitDecoratorMetadata": true,
11 | "experimentalDecorators": true,
12 | "target": "es5",
13 | "lib": [
14 | "es2018",
15 | "dom"
16 | ],
17 | "baseUrl": "./",
18 | "module": "commonjs",
19 | "types": [
20 | "node"
21 | ],
22 | "typeRoots": [
23 | "node_modules/@types"
24 | ],
25 | "strict": false,
26 | "skipLibCheck": true,
27 | "allowJs": true,
28 | "strictNullChecks": false
29 | },
30 | "include": [
31 | "./"
32 | ],
33 | "exclude": [
34 | "**/node_modules/**/*",
35 | "scripts",
36 | "**/@squirtle/api/**"
37 | ]
38 | }
--------------------------------------------------------------------------------
/docs/version-assets/insiders/__broken-releases.json:
--------------------------------------------------------------------------------
1 | [
2 | "0.3.8",
3 | "0.4.0",
4 | "0.4.2",
5 | "0.4.3",
6 | "0.5.3",
7 | "0.5.4",
8 | "0.6.1",
9 | "0.6.3"
10 | ]
--------------------------------------------------------------------------------
/docs/version-assets/insiders/__downloads.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.6.4",
3 | "channel": "insiders",
4 | "linux_main": "Quark-linux-x86_64-0.6.4.AppImage",
5 | "linux_other": "[\"Quark-linux-amd64-0.6.4.deb\",\"Quark-linux-x64-0.6.4.tar.gz\"]",
6 | "windows_main": "Quark-win-0.6.4.exe",
7 | "windows_other": "[\"Quark-win-x64-0.6.4.msi\",\"Quark-win-x64-0.6.4.zip\"]",
8 | "darwin_main": "Quark-mac-0.6.4.dmg",
9 | "darwin_other": "[\"Quark-mac-0.6.4.zip\"]"
10 | }
--------------------------------------------------------------------------------
/docs/version-assets/insiders/__shasum.json:
--------------------------------------------------------------------------------
1 | {
2 | "Quark-win-0.6.4.exe": "NWBInY86gRb9vjLjJ4yvmHL9NfJD3aREh6kD5sNQPH7DiepG5iP7kuceDCOoyL40mh0GAkWRrysNpEMVlpcJHg==",
3 | "Quark-win-x64-0.6.4.msi": "YFmL3LyxiZ/tG0WtpjwSfONLRujH7bBA+3MAi23vxuk2e96BW7OXXUjXm2sYxV/6xBlxK3zt/Yi9Zha573zkag==",
4 | "Quark-win-x64-0.6.4.zip": "rQ7IJzrV2wEZjP63+UIi1oPp8RAAQiLw4reejeUpeOQ/YfDDbFuxIF8ji40wsZyqb5so//69f8fXs1RJiQTzgg==",
5 | "Quark-linux-amd64-0.6.4.deb": "koBaXZPYa2/B+aVfTPJhOkv4Eyf/pbNkLpZGPYIZqHhjSAU0AP3gvLjLpcQV50m1XlyNRQrEMo3SzsV+19Dlug==",
6 | "Quark-linux-x64-0.6.4.tar.gz": "BskTQcPovdc1fKIWyVQdnkSXn0mJg+7LDpZcO/NKG8353c/nBbmHWpI4tzb++9V9lcnQTSff3G9TSoAryed3kA==",
7 | "Quark-linux-x86_64-0.6.4.AppImage": "8Q7kd8koo/bf9638beVZRra16vXpmb+8vpmNMo+vBCoJQJOeJfJ2aa/LBK20bU5w4oRpQg4B8a7M7QUm88O3Lg==",
8 | "Quark-mac-0.6.4.zip": "eQFEp9G5hz5l/zDygMmD4rmBGd0AwH2InMlimUv7veYDl/EzEu/XKPVXvK28J90KhSxVUeuj8TjDZKTV7ttxVw==",
9 | "Quark-mac-0.6.4.dmg": "7NAewgqi4Tojxo1UC4FebLkmCoq7iGuphbn2rKp7trPeVSAhORFSeMwwpjZn8GidqheTFguBOpA0F5G4LaLTpQ=="
10 | }
--------------------------------------------------------------------------------
/docs/version-assets/stable/__broken-releases.json:
--------------------------------------------------------------------------------
1 | [
2 | "0.3.8",
3 | "0.4.0",
4 | "0.4.2",
5 | "0.4.3",
6 | "0.5.3",
7 | "0.5.4",
8 | "0.6.1"
9 | ]
--------------------------------------------------------------------------------
/docs/version-assets/stable/__downloads.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.6.2",
3 | "channel": "stable",
4 | "linux_main": "Quark-linux-x86_64-0.6.2.AppImage",
5 | "linux_other": "[\"Quark-linux-amd64-0.6.2.deb\",\"Quark-linux-x64-0.6.2.tar.gz\"]",
6 | "windows_main": "Quark-win-0.6.2.exe",
7 | "windows_other": "[\"Quark-win-x64-0.6.2.msi\",\"Quark-win-x64-0.6.2.zip\"]",
8 | "darwin_main": "Quark-mac-0.6.2.dmg",
9 | "darwin_other": "[\"Quark-mac-0.6.2.zip\"]"
10 | }
--------------------------------------------------------------------------------
/docs/version-assets/stable/__shasum.json:
--------------------------------------------------------------------------------
1 | {
2 | "Quark-win-0.6.2.exe": "AxbhzSej8eL76UDOnRNCRyP2GiaP4tYltbhZXAi6A7JlEBH7jVBz+PXDTqoCAXx8NAAxkK8imOcgIjA2HMVQ5g==",
3 | "Quark-win-x64-0.6.2.msi": "WYKOCuJsmqiJ5B4FRg362ozllzOmB0oaBW7nawJY9dcH53di7W9MU/FVMUx+HV7zqxV5lRhlu5G2xVnwsJh37A==",
4 | "Quark-win-x64-0.6.2.zip": "a/skPj9QuzDJxFVaInj/G7v6ruiznZZV/84vWBPS3T/gX+IUNPDrNvUZ4i2Rxtpu4TNzi5JAN6NKM5YmYSUZZw==",
5 | "Quark-linux-amd64-0.6.2.deb": "eJNcvSNoV7sfruJXMEV3ZwTeYpjMC96nqRX+CbK7J9nSNyGvG3V40BVSRfUY1R1uPTEypvdODV5V/5VJlUC46A==",
6 | "Quark-linux-x64-0.6.2.tar.gz": "67qa3hLh9cX2tAvOBxKBWk/S13mx+c3ifIVNaTBH4zOh6TJveGcmcB44raVxBZKCL9rvup/v9MF6pTm/KfH49w==",
7 | "Quark-linux-x86_64-0.6.2.AppImage": "gt6AmiJt68U96cTD8b7cBBJY3oKiRPLGVlPFaHme4mt/de8hfyHnS9hV713lIlv06rmHASYwYl5viQ8WVEf9Og==",
8 | "Quark-mac-0.6.2.zip": "Uq4Z5Kn6x4LILe+n5mLcAR53ZJqkEnPt3McdajYpZaL87hlljbPPUGavGteC8WUJNOISwj60FchQ2VjlVMtRHA==",
9 | "Quark-mac-0.6.2.dmg": "NLc9hpiDTooV27GjadlWAr6ewMRRKmb5W6fNWJz31GdUC/hixkABO6jm3SFrxZ5+GloNxhPXEdBkLtnesqeoZg=="
10 | }
--------------------------------------------------------------------------------
/images/control-system.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/images/control-system.gif
--------------------------------------------------------------------------------
/images/hello-world.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/images/hello-world.gif
--------------------------------------------------------------------------------
/images/news-app.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/images/news-app.gif
--------------------------------------------------------------------------------
/images/plot-charts.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/images/plot-charts.gif
--------------------------------------------------------------------------------
/images/stock-analyzing-app.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/images/stock-analyzing-app.gif
--------------------------------------------------------------------------------
/images/system-monitor.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/images/system-monitor.gif
--------------------------------------------------------------------------------
/images/web-browser.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nishkalkashyap/Quark-docs/014c0e96557aa720fc226dc424098f56cef1cf6c/images/web-browser.gif
--------------------------------------------------------------------------------