File tree Expand file tree Collapse file tree 5 files changed +39
-4
lines changed
Expand file tree Collapse file tree 5 files changed +39
-4
lines changed Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ for (const [TYPE] of TYPES) {
7070
7171 let config ,
7272 type ,
73+ parser ,
7374 pyElement ,
7475 pyConfigs = $$ ( `${ TYPE } -config` ) ,
7576 attrConfigs = $$ (
@@ -92,9 +93,11 @@ for (const [TYPE] of TYPES) {
9293 [ pyElement ] = pyConfigs ;
9394 config = pyElement . getAttribute ( "src" ) || pyElement . textContent ;
9495 type = pyElement . getAttribute ( "type" ) ;
96+ parser = pyElement . getAttribute ( "config-parser" ) ;
9597 } else if ( attrConfigs . length ) {
9698 [ pyElement , ...attrConfigs ] = attrConfigs ;
9799 config = pyElement . getAttribute ( "config" ) ;
100+ parser = pyElement . getAttribute ( "config-parser" ) ;
98101 // throw an error if dirrent scripts use different configs
99102 if (
100103 attrConfigs . some ( ( el ) => el . getAttribute ( "config" ) !== config )
@@ -120,9 +123,12 @@ for (const [TYPE] of TYPES) {
120123 }
121124 } else if ( toml || type === "toml" ) {
122125 try {
123- const { parse } = await import (
124- /* webpackIgnore: true */ "./3rd-party/toml.js"
125- ) ;
126+ const module = parser
127+ ? await import ( parser )
128+ : await import (
129+ /* webpackIgnore: true */ "./3rd-party/toml.js"
130+ ) ;
131+ const parse = module . parse || module . default ;
126132 parsed = parse ( text ) ;
127133 } catch ( e ) {
128134 error = syntaxError ( "TOML" , url , e ) ;
Original file line number Diff line number Diff line change 1414 a : hover { opacity : 1 ; }
1515 </ style >
1616 </ head >
17- < body > < ul > < li > < strong > < span > javascript</ span > </ strong > < ul > < li > < a href ="./javascript/async-listener.html "> async-listener< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/config-url.html "> config-url< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/config_type.html "> config_type< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/fetch/index.html "> fetch</ a > </ strong > </ li > < li > < a href ="./javascript/ffi.html "> ffi< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/hooks.html "> hooks< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/issue-2093/index.html "> issue-2093</ a > </ strong > </ li > < li > < a href ="./javascript/js-storage.html "> js-storage< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/js_modules.html "> js_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/loader/index.html "> loader</ a > </ strong > </ li > < li > < a href ="./javascript/media.html "> media< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-error.html "> mpy-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-no-error.html "> mpy-no-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy.html "> mpy< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-main.html "> py-terminal-main< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-worker.html "> py-terminal-worker< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal.html "> py-terminal< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminals.html "> py-terminals< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/pyodide-cache/index.html "> pyodide-cache</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/pyodide-lockfile/index.html "> pyodide-lockfile</ a > </ strong > </ li > < li > < a href ="./javascript/storage.html "> storage< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/worker-symbols.html "> worker-symbols< small > .html</ small > </ a > </ li > < li > < strong > < span > workers</ span > </ strong > < ul > < li > < strong > < a href ="./javascript/workers/create_named/index.html "> create_named</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/mpy/index.html "> mpy</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/py/index.html "> py</ a > </ strong > </ li > </ ul > </ li > </ ul > </ li > < li > < strong > < a href ="./manual/index.html "> manual</ a > </ strong > < ul > < li > < a href ="./manual/all-done.html "> all-done< small > .html</ small > </ a > </ li > < li > < a href ="./manual/async.html "> async< small > .html</ small > </ a > </ li > < li > < a href ="./manual/camera.html "> camera< small > .html</ small > </ a > </ li > < li > < a href ="./manual/click.html "> click< small > .html</ small > </ a > </ li > < li > < a href ="./manual/code-a-part.html "> code-a-part< small > .html</ small > </ a > </ li > < li > < a href ="./manual/combo.html "> combo< small > .html</ small > </ a > </ li > < li > < a href ="./manual/config.html "> config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/create-element.html "> create-element< small > .html</ small > </ a > </ li > < li > < a href ="./manual/dialog.html "> dialog< small > .html</ small > </ a > </ li > < li > < a href ="./manual/display.html "> display< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/donkey/index.html "> donkey</ a > </ strong > </ li > < li > < a href ="./manual/emoji.html "> emoji< small > .html</ small > </ a > </ li > < li > < a href ="./manual/error.html "> error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/ffi_timeout/index.html "> ffi_timeout</ a > </ strong > </ li > < li > < strong > < a href ="./manual/fs/index.html "> fs</ a > </ strong > </ li > < li > < strong > < a href ="./manual/game/index.html "> game</ a > </ strong > </ li > < li > < a href ="./manual/html-decode.html "> html-decode< small > .html</ small > </ a > </ li > < li > < a href ="./manual/input.html "> input< small > .html</ small > </ a > </ li > < li > < a href ="./manual/interpreter.html "> interpreter< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/issue-2228/index.html "> issue-2228</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2246/index.html "> issue-2246</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2302/index.html "> issue-2302</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2304/index.html "> issue-2304</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-7015/index.html "> issue-7015</ a > </ strong > </ li > < li > < a href ="./manual/multi.html "> multi< small > .html</ small > </ a > </ li > < li > < a href ="./manual/multiple-editors.html "> multiple-editors< small > .html</ small > </ a > </ li > < li > < a href ="./manual/no-error.html "> no-error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/no_sab/index.html "> no_sab</ a > </ strong > </ li > < li > < strong > < a href ="./manual/piratical/index.html "> piratical</ a > </ strong > </ li > < li > < a href ="./manual/py-editor.html "> py-editor< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-editor-failure.html "> py-editor-failure< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/py-terminals/index.html "> py-terminals</ a > </ strong > < ul > < li > < a href ="./manual/py-terminals/no-repl.html "> no-repl< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-terminals/repl.html "> repl< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < a href ="./manual/py_modules.html "> py_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/remote/index.html "> remote</ a > </ strong > </ li > < li > < strong > < a href ="./manual/service-worker/index.html "> service-worker</ a > </ strong > </ li > < li > < a href ="./manual/split-config.html "> split-config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/submit.html "> submit< small > .html</ small > </ a > </ li > < li > < a href ="./manual/target.html "> target< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_display_HTML.html "> test_display_HTML< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_when.html "> test_when< small > .html</ small > </ a > </ li > < li > < a href ="./manual/worker.html "> worker< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < strong > < a href ="./python/index.html "> python</ a > </ strong > </ li > </ ul > </ body >
17+ < body > < ul > < li > < strong > < span > javascript</ span > </ strong > < ul > < li > < a href ="./javascript/async-listener.html "> async-listener< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/config-parser/index.html "> config-parser</ a > </ strong > </ li > < li > < a href ="./javascript/config-url.html "> config-url< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/config_type.html "> config_type< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/fetch/index.html "> fetch</ a > </ strong > </ li > < li > < a href ="./javascript/ffi.html "> ffi< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/hooks.html "> hooks< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/issue-2093/index.html "> issue-2093</ a > </ strong > </ li > < li > < a href ="./javascript/js-storage.html "> js-storage< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/js_modules.html "> js_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/loader/index.html "> loader</ a > </ strong > </ li > < li > < a href ="./javascript/media.html "> media< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-error.html "> mpy-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-no-error.html "> mpy-no-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy.html "> mpy< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-main.html "> py-terminal-main< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-worker.html "> py-terminal-worker< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal.html "> py-terminal< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminals.html "> py-terminals< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/pyodide-cache/index.html "> pyodide-cache</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/pyodide-lockfile/index.html "> pyodide-lockfile</ a > </ strong > </ li > < li > < a href ="./javascript/storage.html "> storage< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/worker-symbols.html "> worker-symbols< small > .html</ small > </ a > </ li > < li > < strong > < span > workers</ span > </ strong > < ul > < li > < strong > < a href ="./javascript/workers/create_named/index.html "> create_named</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/mpy/index.html "> mpy</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/py/index.html "> py</ a > </ strong > </ li > </ ul > </ li > </ ul > </ li > < li > < strong > < a href ="./manual/index.html "> manual</ a > </ strong > < ul > < li > < a href ="./manual/all-done.html "> all-done< small > .html</ small > </ a > </ li > < li > < a href ="./manual/async.html "> async< small > .html</ small > </ a > </ li > < li > < a href ="./manual/camera.html "> camera< small > .html</ small > </ a > </ li > < li > < a href ="./manual/click.html "> click< small > .html</ small > </ a > </ li > < li > < a href ="./manual/code-a-part.html "> code-a-part< small > .html</ small > </ a > </ li > < li > < a href ="./manual/combo.html "> combo< small > .html</ small > </ a > </ li > < li > < a href ="./manual/config.html "> config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/create-element.html "> create-element< small > .html</ small > </ a > </ li > < li > < a href ="./manual/dialog.html "> dialog< small > .html</ small > </ a > </ li > < li > < a href ="./manual/display.html "> display< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/donkey/index.html "> donkey</ a > </ strong > </ li > < li > < a href ="./manual/emoji.html "> emoji< small > .html</ small > </ a > </ li > < li > < a href ="./manual/error.html "> error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/ffi_timeout/index.html "> ffi_timeout</ a > </ strong > </ li > < li > < strong > < a href ="./manual/fs/index.html "> fs</ a > </ strong > </ li > < li > < strong > < a href ="./manual/game/index.html "> game</ a > </ strong > </ li > < li > < a href ="./manual/html-decode.html "> html-decode< small > .html</ small > </ a > </ li > < li > < a href ="./manual/input.html "> input< small > .html</ small > </ a > </ li > < li > < a href ="./manual/interpreter.html "> interpreter< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/issue-2228/index.html "> issue-2228</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2246/index.html "> issue-2246</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2302/index.html "> issue-2302</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2304/index.html "> issue-2304</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-7015/index.html "> issue-7015</ a > </ strong > </ li > < li > < a href ="./manual/multi.html "> multi< small > .html</ small > </ a > </ li > < li > < a href ="./manual/multiple-editors.html "> multiple-editors< small > .html</ small > </ a > </ li > < li > < a href ="./manual/no-error.html "> no-error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/no_sab/index.html "> no_sab</ a > </ strong > </ li > < li > < strong > < a href ="./manual/piratical/index.html "> piratical</ a > </ strong > </ li > < li > < a href ="./manual/py-editor.html "> py-editor< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-editor-failure.html "> py-editor-failure< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/py-terminals/index.html "> py-terminals</ a > </ strong > < ul > < li > < a href ="./manual/py-terminals/no-repl.html "> no-repl< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-terminals/repl.html "> repl< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < a href ="./manual/py_modules.html "> py_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/remote/index.html "> remote</ a > </ strong > </ li > < li > < strong > < a href ="./manual/service-worker/index.html "> service-worker</ a > </ strong > </ li > < li > < a href ="./manual/split-config.html "> split-config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/submit.html "> submit< small > .html</ small > </ a > </ li > < li > < a href ="./manual/target.html "> target< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_display_HTML.html "> test_display_HTML< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_when.html "> test_when< small > .html</ small > </ a > </ li > < li > < a href ="./manual/worker.html "> worker< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < strong > < a href ="./python/index.html "> python</ a > </ strong > </ li > </ ul > </ body >
1818</ html >
Original file line number Diff line number Diff line change 1+ print ("OK" )
Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+ < head >
4+ < meta charset ="UTF-8 ">
5+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6+ < link rel ="stylesheet " href ="../../../dist/core.css ">
7+ < script type ="module " src ="../../../dist/core.js "> </ script >
8+ </ head >
9+ < body >
10+ < py-config config-parser ="https://esm.run/basic-toml ">
11+ [files]
12+ 'file.py' = ""
13+ </ py-config >
14+ < script type ="py ">
15+ import file
16+ from pyscript import document
17+ document . documentElement . classList . add ( "done" )
18+ document . body . append ( "OK" )
19+ </ script >
20+ </ body >
21+ </ html >
Original file line number Diff line number Diff line change @@ -2,6 +2,13 @@ import { test, expect } from '@playwright/test';
22
33test . setTimeout ( 120 * 1000 ) ;
44
5+ test ( 'config-parser custom TOML' , async ( { page } ) => {
6+ await page . goto ( 'http://localhost:8080/tests/javascript/config-parser/index.html' ) ;
7+ await page . waitForSelector ( 'html.done' ) ;
8+ const body = await page . evaluate ( ( ) => document . body . innerText ) ;
9+ await expect ( body . trim ( ) ) . toBe ( 'OK' ) ;
10+ } ) ;
11+
512test ( 'MicroPython display' , async ( { page } ) => {
613 await page . goto ( 'http://localhost:8080/tests/javascript/mpy.html' ) ;
714 await page . waitForSelector ( 'html.done.worker' ) ;
You can’t perform that action at this time.
0 commit comments