From 4879f5a7cfcb38c38bcf1bb29c6bd66d7bd94e6f Mon Sep 17 00:00:00 2001 From: dakedres <ramondolive@gmail.com> Date: Sat, 23 Dec 2023 17:03:28 -0500 Subject: [PATCH] Neutralino & new project structure --- .gitignore | 11 +++- build.js | 54 ++++++++++++++++++++ index.js => editor.js | 3 +- index.html | 10 ++-- libs.js => libs/index.js | 0 rollup.config.mjs => libs/rollup.config.mjs | 4 +- neutralino.config.json | 46 +++++++++++++++++ notes.txt | 4 ++ package.json | 8 ++- platforms/browser.js | 22 ++++++++ platforms/neutralino.js | 3 ++ resources/icon.png | Bin 0 -> 16392 bytes yarn.lock | 4 ++ 13 files changed, 159 insertions(+), 10 deletions(-) create mode 100644 build.js rename index.js => editor.js (99%) rename libs.js => libs/index.js (100%) rename rollup.config.mjs => libs/rollup.config.mjs (75%) create mode 100644 neutralino.config.json create mode 100644 notes.txt create mode 100644 platforms/browser.js create mode 100644 platforms/neutralino.js create mode 100644 resources/icon.png diff --git a/.gitignore b/.gitignore index db6695d..6df2256 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ -.temp/ +.temp +.tmp node_modules/ -dist/ +/index.html +/bin +/dist +/build + +yarn-error.log +neutralinojs.log \ No newline at end of file diff --git a/build.js b/build.js new file mode 100644 index 0000000..1b9021e --- /dev/null +++ b/build.js @@ -0,0 +1,54 @@ +// Usage: node build <platform> <[dev]/prod> + +import Path from 'path' +import { copyFile } from 'fs/promises' + +let [ platform, environment = 'dev' ] = process.argv.slice(2) +let projectRoot = Path.dirname(new URL(import.meta.url).pathname) + +const indexTemplate = scripts => `\ +<html> + +<head> + +<!-- <link rel="icon" href=".temp/editorapp/resources/icons/appIcon.png"> --> +${scripts.map(src => "<script async src=" + JSON.stringify(src) + "></script>").join('\n')} + +<style id="stylesheet"> +body { display: flex; flex-direction: column; margin: 0; height: 100vh; max-height: 100vh; font-size: 14px; } +nav { background: #f5f5f5; color: #6c6c6c; margin: 2px 5px } +nav input { all: unset; text-decoration: underline; font-family: sans-serif; } +.cm-editor { flex-grow: 1; outline: 1px solid #ddd; overflow-y: auto; } +</style> + +</head> + +</html> +` + +let out + +switch(environment) { + case 'dev': + out = indexTemplate([ + Path.join('platforms', platform + '.js'), + 'editor.js', + 'build/libs.js' + ]) + break + + case 'prod': + await copyFile( + Path.join(projectRoot, 'platforms', platform + '.js'), + Path.join(projectRoot, 'build', 'platform.js') + ) + + out = indexTemplate([ + 'platform.js', + 'editor.js', + 'libs.js' + ]) + break +} + +process.stdout.write(out) \ No newline at end of file diff --git a/index.js b/editor.js similarity index 99% rename from index.js rename to editor.js index 046db47..32ac818 100644 --- a/index.js +++ b/editor.js @@ -147,7 +147,7 @@ function App() { } }, { - key: 'Ctrl-n', + key: 'Ctrl-r', run(state, event) { event.preventDefault() let mainSelection = self.editor.state.selection.main @@ -269,6 +269,7 @@ function ChildWindow(index) { this.index = app.views.length this.window = window.open('about:blank', '_blank') + console.log(this) this.window.document.head.appendChild(document.getElementById('stylesheet').cloneNode(true)) this.editor = new $.EditorView({ state, diff --git a/index.html b/index.html index 6701d5e..5802b6f 100644 --- a/index.html +++ b/index.html @@ -2,11 +2,13 @@ <head> -<script async src="./dist/libs.js"></script> -<script async src="./index.js"></script> +<!-- <link rel="icon" href=".temp/editorapp/resources/icons/appIcon.png"> --> +<script async src="platforms/neutralino.js"></script> +<script async src="editor.js"></script> +<script async src="build/libs.js"></script> <style id="stylesheet"> -body { display: flex; flex-direction: column; margin: 0; height: 100vh; max-height: 100vh; } +body { display: flex; flex-direction: column; margin: 0; height: 100vh; max-height: 100vh; font-size: 14px; } nav { background: #f5f5f5; color: #6c6c6c; margin: 2px 5px } nav input { all: unset; text-decoration: underline; font-family: sans-serif; } .cm-editor { flex-grow: 1; outline: 1px solid #ddd; overflow-y: auto; } @@ -14,4 +16,4 @@ nav input { all: unset; text-decoration: underline; font-family: sans-serif; } </head> -</html> \ No newline at end of file +</html> diff --git a/libs.js b/libs/index.js similarity index 100% rename from libs.js rename to libs/index.js diff --git a/rollup.config.mjs b/libs/rollup.config.mjs similarity index 75% rename from rollup.config.mjs rename to libs/rollup.config.mjs index 55781d4..12588b2 100644 --- a/rollup.config.mjs +++ b/libs/rollup.config.mjs @@ -1,9 +1,9 @@ import nodeResolve from "@rollup/plugin-node-resolve"; export default { - input: "./libs.js", + input: "./index.js", output: { - file: "./dist/libs.js", + file: "../build/libs.js", name: '$', format: "iife" }, diff --git a/neutralino.config.json b/neutralino.config.json new file mode 100644 index 0000000..2473b05 --- /dev/null +++ b/neutralino.config.json @@ -0,0 +1,46 @@ +{ + "applicationId": "net.sys42.dakedres.editor", + "version": "1.0.0", + "defaultMode": "window", + "port": 0, + "documentRoot": "/", + "url": "/index.html", + "enableServer": true, + "enableNativeAPI": true, + "tokenSecurity": "one-time", + "logging": { + "enabled": true, + "writeToLogFile": true + }, + "nativeAllowList": [ + "app.*", + "os.*", + "debug.log" + ], + "globalVariables": {}, + "modes": { + "window": { + "title": "waw", + "width": 800, + "height": 500, + "minWidth": 400, + "minHeight": 200, + "fullScreen": false, + "alwaysOnTop": false, + "icon": "/resources/icon.png", + "enableInspector": false, + "borderless": false, + "maximize": false, + "hidden": false, + "resizable": true, + "exitProcessOnClose": true + } + }, + "cli": { + "binaryName": "waw", + "resourcesPath": "/build/", + "clientLibrary": "/build/neutralino.js", + "binaryVersion": "4.14.1", + "clientVersion": "3.12.0" + } +} \ No newline at end of file diff --git a/notes.txt b/notes.txt new file mode 100644 index 0000000..cc07a67 --- /dev/null +++ b/notes.txt @@ -0,0 +1,4 @@ +# Deps + +Needed to +```sudo apt install libsoup-2.4-dev libwebkit2gtk-4.0-dev libjavascriptcoregtk-4.0-dev``` \ No newline at end of file diff --git a/package.json b/package.json index 98638e7..379434c 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,15 @@ "main": "index.js", "license": "MIT", "dependencies": { + "@neutralinojs/lib": "neutralinojs/neutralino.js", "@neutralinojs/neu": "^10.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "codemirror": "^6.0.1", "rollup": "^4.9.1" - } + }, + "scripts": { + "dev": "node build neutralino > index.html && neu run", + "build": "node build neutralino prod > index.html && neu build" + }, + "type": "module" } diff --git a/platforms/browser.js b/platforms/browser.js new file mode 100644 index 0000000..205efb4 --- /dev/null +++ b/platforms/browser.js @@ -0,0 +1,22 @@ +function Platform() { + this.save = async (path, data) => { + localStorage.setItem(path, data) + } + + this.open = (path) => { + return localStorage.getItem(path) + } + + this.readdir = (path) => { + return Object.keys(localStorage) + .filter(key => key.startsWith(path)) + } + + this.createWindow = url => { + return window.open(url ?? 'about:blank', '_blank') + } + + this.createInstance = url => { + return window.open(url ?? this.location) + } +} \ No newline at end of file diff --git a/platforms/neutralino.js b/platforms/neutralino.js new file mode 100644 index 0000000..60004c9 --- /dev/null +++ b/platforms/neutralino.js @@ -0,0 +1,3 @@ +function Platform() { + +} \ No newline at end of file diff --git a/resources/icon.png b/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d708bc3cc0f64c18aac9ff49d28476c02c9dca0c GIT binary patch literal 16392 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 literal 0 HcmV?d00001 diff --git a/yarn.lock b/yarn.lock index a0a9a43..ed7967d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -85,6 +85,10 @@ dependencies: "@lezer/common" "^1.0.0" +"@neutralinojs/lib@neutralinojs/neutralino.js": + version "3.13.0" + resolved "https://codeload.github.com/neutralinojs/neutralino.js/tar.gz/080900b7af3d79c6e387d213b437bdb62870f109" + "@neutralinojs/neu@^10.1.0": version "10.1.0" resolved "https://registry.yarnpkg.com/@neutralinojs/neu/-/neu-10.1.0.tgz#7c0fc2eaee14583651203309c9f653811df15499"