v0.4.0
Pre-releaseThis is a big release with a large number of added features, security and performance improvements and fixes. It is still under heavy development and not yet ready for production, but hopefully approaching there :)
The project has also been renamed from LocalPen
to LiveCodes
.
This is a summary of the significant changes:
⚠ BREAKING CHANGES
- config: remove
baseUrl
config option - config:
config.modules
has been replaced byconfig.imports
- config: use config option
activeEditor
instead oflanguage
(automatically changed in config upgrade) - config:
autoprefixer
config option moved toprocessors.postcss
Features
- API: expose API (7114905)
- app: allow enabling specific languages/editors (e11d857)
- app: allow to restore last unsaved project (06bd659)
- app: convert to async indexedDB storage using localforage (28c637a)
- app: organize saved projects (4ea78f6)
- auth: github auth (5e1074a)
- auth: Lazy load authentication (58c70a8)
- compilers: add AssemblyScript language support (2ada4d6)
- compilers: add babel as compiler (b545498)
- compilers: add blockly (38bcd53)
- compilers: add custom settings for brython python compiler (20f2e1e)
- compilers: add dependencies and aliases for compilers (b2cadc2)
- compilers: add doT compiler (cee6db4)
- compilers: add EJS compiler (75b8c51)
- compilers: add haml language support (2751fc9)
- compilers: add Handlebars compiler (c8f99fb)
- compilers: add language info (2fb3558)
- compilers: add LiquidJS (4d3348c)
- compilers: add livescript language support (2a2cafc)
- compilers: add lua language support (2616156)
- compilers: add MDX support (68bde77)
- compilers: add Nunjucks compiler (71bcc6a)
- compilers: add Perl language support (3fb78a6)
- compilers: add PHP language support via uniter (6b585ca)
- compilers: add postcss plugins support (83baa78)
- compilers: add pyodide as additional python compiler (727f654)
- compilers: add Python language support via Brython (bed2e0c)
- compilers: add ReScript support (8ab265d)
- compilers: add Scheme language support (39f9931)
- compilers: add solidjs support (6ca125f)
- compilers: add SQL language support (8923111)
- compilers: add Stencil support (b9bca2c)
- compilers: add support for Astro (01f38d7)
- compilers: add support for Go (f74b7b3)
- compilers: add support for malinajs (18b7da2)
- compilers: add support for React Native (d72b5dd)
- compilers: add support for Reason and OCaml (0d21867)
- compilers: add support for Riot.js (0e01bf4)
- compilers: add support for Twig templating engine (3b6f214)
- compilers: add Svelte support (fdb1e17)
- compilers: add tailwindcss JIT compiler (4336916)
- compilers: add TSX support, with intellisense for react (d706f56)
- compilers: add Vue 2 SFC support (71bb81d)
- compilers: add Vue 3 SFC support (2173eac)
- compilers: add WebAssembly Text Format (aaea694)
- compilers: add windicss (cab11f6)
- compilers: allow compiler to use other compilers (2719fed)
- compilers: allow compilers to live reload (3cbee30)
- compilers: allow compiling in the sandboxed iframe outside the web worker (5d356fa)
- compilers: allow dynamically adding scripts to result page during compile (2b19ae1)
- compilers: allow importing CSS from URL and from CDN (5fb6b58)
- compilers: allow importing python modules from external URL by setting pythonpath (4b5f960)
- compilers: allow loading db file or sql scripts from URL (57c54d8)
- compilers: allow using processors (compilers) for SFC blocks (866cd40)
- compilers: dom manipulation using blockly (c2ec045)
- compilers: enable style import in vue SFC (ece3bf2)
- compilers: enable users to configure compilers via custom config scripts in markup (67c6cdf)
- compilers: haml dynamic evaluation (8587a17)
- compilers: prerender markup templating engines by default (083be37)
- compilers: Pug templates load as prerendered or dynamic (40892a5)
- compilers: run compilers in sandboxed iframe (163db41)
- compilers: send compiler messages to console (c67ea42)
- compilers: support processors in riotjs components (2e3f55d)
- config: add version to config (0b3c050)
- config: store user config (45de26b)
- config: upgrade config from previous versions (237c137)
- config: validate config before load (e2f82bf)
- deploy: allow commiting source code and result as separate files (a183ede)
- deploy: allow deploy to github pages (997ab39)
- editor: add codemirror emmet support (f4c2c0f)
- editor: add prismjs as readonly code editor (5c0b6c2)
- editor: allow defining custom types for languages (bae28f3)
- editor: autoload typescript types (777a96f)
- editor: create CodeEditor interface (f788857)
- editor: dynamically load monaco-editor or codemirror (24d8143)
- editor: fallback to codemirror on-error loading the editor (e151b2c)
- editor: show npm package info on hover (in monaco) (7de356c)
- embed: add "edit in LocalPen" link (3d83d97)
- export-share: allow sharing project by URL (f929c7a)
- export-share: enable social share (bd5ea08)
- export-share: export all saved projects (38c6589)
- export-share: export to github gist (23d30f4)
- export-share: share permanent or short url (8cc7b78)
- export-share: show share url (e36ede8)
- export-share: use dpaste.com for share service (c57f72b)
- formatter: add Go formatter (a47d073)
- import: allow logged in user to import from private github repos (4a23f7a)
- import: bulk import projects (859cad1)
- import: import from JS Bin (2b1a559)
- import: improve auto identification of raw code on import (3b08cbe)
- import: use cors service for url import (42c25c6)
- import: use cors service to import from JS Bin (2c1ae89)
- result: move result page to a separate subdomain (a4a0186)
- result: use the standard import-maps instead of custom modules (1a50ac5)
- services: add cors service (0fc2230)
- services: add services for API access (e5e831b)
- services: allow specifying CDN service to use for bare modules import (aaef9f1)
- services: create result service (d36cc39)
- services: use domain alias for result page (7cfbf80)
- templates: add backbone starter template (48de466)
- templates: add coffeescript starter template (02b6e32)
- templates: add Go starter template (bceeca5)
- templates: add knockout starter template (37287b1)
- templates: add Polymer starter template and improve baseUrl mapping in templates (a946a26)
- templates: add ReScript starter template (a69bd74)
- templates: add Riot.js starter template (fd9717b)
- templates: add solid starter template and typescript support (5b80f9b)
- templates: allow loading starter template by name from query string param (38f3587)
- UI: add light theme (d24953d)
- UI: add project info screen (5d35416)
- UI: add project info screen (a691e71)
- UI: add result button (9aa2f3e)
- UI: add tags in project info (7509d10)
- UI: add tooltips (be6b5e3)
- UI: allow adding language info (3d4484e)
- UI: allow adding language info (a3422cb)
- UI: allow language menus to scroll (12a9f98)
- UI: allow showing UI screens from query string (a698adb)
- UI: modify UI for postcss plugins (aa0f12b)
- UI: multi-column language menu (edf3df8)
- UI: multi-column settings menu (761e809)
- UI: set window title to reflect project title (a191718)
- UI: show code/output on button click when the pane is closed (f7f05f0)
- UI: show loading screen when opening a saved project (3304641)
- UI: style scrollbars (514883e)
- UI: updateUrl on save (07c3ad5)
- UI: use code editors for custom settings UI screen (511caea)
- UI: use snackbar for notifications (b5b5c9d)
- add config option to show version and git commit in console (e700235)
Bug Fixes
-
app: do not skip initial page load (9769fd2)
-
app: fix detecting style-only changes (b91a392)
-
app: fix saved status (687c575)
-
compilers: compile and replace imports astro frontmatter (408735e)
-
compilers: do not add DOM element if svelete customElement is enabled (8c3f330)
-
compilers: fix cannot use import outside module (e58cd28)
-
compilers: fix imports not being replaced in javascript (87d733a)
-
compilers: fix Sass on safari (9480361)
-
compilers: use pyodide new API (67a627b)
-
config: remove
baseUrl
config options and always use the loaded module url (14b7968) -
editor: editor.getLanguage() should return the actual language not the mapped one (ecf5cba)
-
editor: fix duplicate emmet suggestions (0a930c9)
-
editor: fix duplicate identifier in typescript (27397fd)
-
result: escape closing script tags in script content (77db4d9)
-
improve restore state (57a9b0a)
-
race on monaco dispose (59c48c2)
-
compiled: fix compiled code viewer going out of sync (9493224)
-
compilers: fix rescript compiler (a7ad75c)
-
console: fix console (message source check) (dfd3fd7)
-
editor: fix autofocus active editor (cf5b11c)
-
editor: fix editor inconsistencies on changing languages (3fb51a6)
-
editor: fix emmet multiple invocations (f407d75)
-
editor: fix monaco duplicate types (fdb4d33)
-
editor: fix monaco language highlight for rescript, reason, and wat (77f0956)
-
editor: fix monaco unhandled 'Canceled' promise rejection (8e172b4)
-
editor: re-activate fixed test (0e13c85)
-
import: fix not selecting pug editor when importing github gist (e123c42)
-
result: move all styles and scripts to result head (only keep markup and editor script) (40ebd85)
-
UI: fix allowLangChange (1d78659)
-
UI: fix autocomplete error on closing deploy screen before fetching results (118a58d)
-
UI: fix displayName null (99e335f)
-
UI: fix menus on safari (5799560)
-
UI: fix mobile layout (ae0bb2d)
-
UI: fix modal click outside (9b55b68)
-
UI: fix modal click outside (c3ecf28)
-
UI: fix modal click outside to close (5c27d62)
-
UI: fix modal event listeners (5f0c9ee)
-
UI: fix modes showing tools pane (0a6da7e)
-
UI: fix project title (7f1411d)
-
UI: fix safari (31cea26)
-
UI: fix settings menu container preventing interaction (7517845)
-
config: use config option
activeEditor
instead oflanguage
(f951f79)