Skip to content

v0.4.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@hatemhosny hatemhosny released this 19 Nov 20:51
· 2650 commits to develop since this release
71c3450

This 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 by config.imports
  • config: use config option activeEditor instead of language
    (automatically changed in config upgrade)
  • config: autoprefixer config option moved to processors.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 of language (f951f79)