diff --git a/docs/_ext/lv_example.py b/docs/_ext/lv_example.py index d50851850..34d13ed5c 100644 --- a/docs/_ext/lv_example.py +++ b/docs/_ext/lv_example.py @@ -1,30 +1,37 @@ import os from docutils import nodes -from docutils.parsers.rst import Directive +from docutils.parsers.rst import Directive, directives from docutils.parsers.rst.directives.images import Image from sphinx.directives.code import LiteralInclude +def excluded_list(argument): + return argument.split(',') + + + + class LvExample(Directive): - required_arguments = 3 - def run(self): - example_path = self.arguments[0] - example_name = os.path.split(example_path)[1] - language = self.arguments[2] - node_list = [] - - env = self.state.document.settings.env - - if self.arguments[2] == 'py': - paragraph_node = nodes.raw(text=f"Click to try in the simulator!
{example_name}", format='html') + required_arguments = 1 + option_spec = { + 'excluded_languages': excluded_list, + 'language': directives.unchanged + } + def get_example_code_path(self, example_path, language): + return os.path.abspath("../examples/" + example_path + "." + language) + def human_language_name(self, language): + if language == 'py': + return 'MicroPython' + elif language == 'c': + return 'C' else: - paragraph_node = nodes.raw(text=f"", format='html') + return language + def embed_code(self, example_file, example_path, language): + env = self.state.document.settings.env toggle = nodes.container('', literal_block=False, classes=['toggle']) header = nodes.container('', literal_block=False, classes=['header']) toggle.append(header) - example_file = os.path.abspath("../examples/" + example_path + "." + self.arguments[2]) - try: with open(example_file) as f: contents = f.read() @@ -33,10 +40,35 @@ class LvExample(Directive): literal_list = nodes.literal_block(contents, contents) literal_list['language'] = language toggle.append(literal_list) - header.append(nodes.raw(text=f"

code     view on GitHub

", format='html')) - if env.app.tags.has('html'): - node_list.append(paragraph_node) - node_list.append(toggle) + header.append(nodes.raw(text=f"

{self.human_language_name(language)} code     view on GitHub

", format='html')) + return toggle + def run(self): + example_path = self.arguments[0] + example_name = os.path.split(example_path)[1] + excluded_languages = self.options.get('excluded_languages', []) + node_list = [] + + env = self.state.document.settings.env + + iframe_node = nodes.raw(text=f"", format='html') + micropython_node = nodes.raw(text=f"Click to try in the MicroPython simulator!", format='html') + + c_path = self.get_example_code_path(example_path, 'c') + py_path = self.get_example_code_path(example_path, 'py') + + c_code = self.embed_code(c_path, example_path, 'c') + py_code = self.embed_code(py_path, example_path, 'py') + + if not 'c' in excluded_languages: + if env.app.tags.has('html'): + node_list.append(iframe_node) + if not 'py' in excluded_languages: + node_list.append(micropython_node) + if not 'c' in excluded_languages: + node_list.append(c_code) + if not 'py' in excluded_languages: + node_list.append(py_code) + return node_list def setup(app): diff --git a/examples/anim/index.rst b/examples/anim/index.rst index 11ece8e28..537061848 100644 --- a/examples/anim/index.rst +++ b/examples/anim/index.rst @@ -1,5 +1,3 @@ -C -^ Start animation on an event """""""""""""""""""""""""""" @@ -13,7 +11,3 @@ Playback animation :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/event/index.rst b/examples/event/index.rst index 45a0ab284..79f9d0f94 100644 --- a/examples/event/index.rst +++ b/examples/event/index.rst @@ -1,5 +1,3 @@ -C -^ Button click event """"""""""""""""""" @@ -19,7 +17,3 @@ Event bubbling :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/get_started/index.rst b/examples/get_started/index.rst index bd75fbd78..15e784266 100644 --- a/examples/get_started/index.rst +++ b/examples/get_started/index.rst @@ -1,5 +1,3 @@ -C -^ A button with a label and react on click event """"""""""""""""""""""""""""""""""""""""""""""""" @@ -18,7 +16,3 @@ Create a slider and write its value on a label :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/header.py b/examples/header.py index d74504ebf..a7bb96098 100644 --- a/examples/header.py +++ b/examples/header.py @@ -1,3 +1,14 @@ #!/opt/bin/lv_micropython -i + import lvgl as lv +try: + import sys +except ImportError: + import usys as sys + +# JS requires a special import +if sys.platform == 'javascript': + import imp + sys.path.append('https://raw.githubusercontent.com/lvgl/lv_binding_micropython/4c04dba836a5affcf86cef107b538e45278117ae/lib') + import display_driver diff --git a/examples/layouts/flex/index.rst b/examples/layouts/flex/index.rst index 8af8ee69a..86661a612 100644 --- a/examples/layouts/flex/index.rst +++ b/examples/layouts/flex/index.rst @@ -1,5 +1,3 @@ -C -^ A simple row and a column layout with flexbox """"""""""""""""""""""""""""""""""""""""""""""" @@ -37,7 +35,3 @@ RTL base direction changes order of the items :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/layouts/grid/index.rst b/examples/layouts/grid/index.rst index b411c71ae..e455d2010 100644 --- a/examples/layouts/grid/index.rst +++ b/examples/layouts/grid/index.rst @@ -1,5 +1,3 @@ -C -^ A simple grid """"""""""""""" @@ -37,7 +35,3 @@ Demonstrate RTL direction on grid :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/scroll/index.rst b/examples/scroll/index.rst index 524f2f8f6..94011a1b8 100644 --- a/examples/scroll/index.rst +++ b/examples/scroll/index.rst @@ -1,5 +1,3 @@ -C -^ Nested scrolling """""""""""""""" @@ -33,7 +31,3 @@ Translate on scroll :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/styles/index.rst b/examples/styles/index.rst index b166be6e2..5c84d95f0 100644 --- a/examples/styles/index.rst +++ b/examples/styles/index.rst @@ -1,5 +1,3 @@ -C -^ Size styles """"""""""""""""""" @@ -91,7 +89,3 @@ Extending the current theme :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/arc/index.rst b/examples/widgets/arc/index.rst index ef4b5d5b9..7c529f990 100644 --- a/examples/widgets/arc/index.rst +++ b/examples/widgets/arc/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Arc """""""""""""""" @@ -13,7 +11,3 @@ Loader with Arc .. lv_example:: widgets/arc/lv_example_arc_2 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/bar/index.rst b/examples/widgets/bar/index.rst index 02e0701f7..f54fbebc8 100644 --- a/examples/widgets/bar/index.rst +++ b/examples/widgets/bar/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Bar """""""""""""""" @@ -36,7 +34,3 @@ Custom drawr to show the current value .. lv_example:: widgets/bar/lv_example_bar_6 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/btn/index.rst b/examples/widgets/btn/index.rst index c8acd8ff6..dc1ab0f85 100644 --- a/examples/widgets/btn/index.rst +++ b/examples/widgets/btn/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Buttons """""""""""""""" @@ -20,7 +18,3 @@ Gummy button .. lv_example:: widgets/btn/lv_example_btn_3 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/btnmatrix/index.rst b/examples/widgets/btnmatrix/index.rst index 99be9852b..0a882b827 100644 --- a/examples/widgets/btnmatrix/index.rst +++ b/examples/widgets/btnmatrix/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Button matrix """""""""""""""""""""" @@ -22,7 +20,3 @@ Pagination :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/calendar/index.rst b/examples/widgets/calendar/index.rst index 17a68ceba..c53bd2f5c 100644 --- a/examples/widgets/calendar/index.rst +++ b/examples/widgets/calendar/index.rst @@ -1,5 +1,3 @@ -C -^ Calendar with header """""""""""""""""""""" @@ -7,7 +5,3 @@ Calendar with header .. lv_example:: widgets/calendar/lv_example_calendar_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/canvas/index.rst b/examples/widgets/canvas/index.rst index 51640d3ca..93130e0ae 100644 --- a/examples/widgets/canvas/index.rst +++ b/examples/widgets/canvas/index.rst @@ -1,5 +1,3 @@ -C -^ Drawing on the Canvas and rotate """""""""""""""""""""""""""""""""" @@ -13,7 +11,3 @@ Transparent Canvas with chroma keying .. lv_example:: widgets/canvas/lv_example_canvas_2 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/chart/index.rst b/examples/widgets/chart/index.rst index eb28f2c06..a0326925e 100644 --- a/examples/widgets/chart/index.rst +++ b/examples/widgets/chart/index.rst @@ -1,5 +1,3 @@ -C -^ Line Chart """""""""" @@ -45,7 +43,3 @@ Scatter chart :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/checkbox/index.rst b/examples/widgets/checkbox/index.rst index 3682ba691..107664514 100644 --- a/examples/widgets/checkbox/index.rst +++ b/examples/widgets/checkbox/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Checkboxes """"""""""""""""" @@ -7,7 +5,3 @@ Simple Checkboxes .. lv_example:: widgets/checkbox/lv_example_checkbox_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/colorwheel/index.rst b/examples/widgets/colorwheel/index.rst index baa7179ae..342be739c 100644 --- a/examples/widgets/colorwheel/index.rst +++ b/examples/widgets/colorwheel/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Colorwheel """"""""""""""""" @@ -7,7 +5,3 @@ Simple Colorwheel .. lv_example:: widgets/colorwheel/lv_example_colorwheel_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/dropdown/index.rst b/examples/widgets/dropdown/index.rst index 6319ab1d2..c396361ac 100644 --- a/examples/widgets/dropdown/index.rst +++ b/examples/widgets/dropdown/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Drop down list """""""""""""""""""""" @@ -20,7 +18,3 @@ Menu .. lv_example:: widgets/dropdown/lv_example_dropdown_3 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/img/index.rst b/examples/widgets/img/index.rst index b7559547f..ede75e4ae 100644 --- a/examples/widgets/img/index.rst +++ b/examples/widgets/img/index.rst @@ -1,5 +1,3 @@ -C -^ Image from variable and symbol """"""""""""""""""""""""""""""" @@ -28,7 +26,3 @@ Image offset and styling :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/imgbtn/index.rst b/examples/widgets/imgbtn/index.rst index 7084327b2..69810abbb 100644 --- a/examples/widgets/imgbtn/index.rst +++ b/examples/widgets/imgbtn/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Image button """"""""""""""""""" @@ -7,7 +5,3 @@ Simple Image button .. lv_example:: widgets/imgbtn/lv_example_imgbtn_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/keyboard/index.rst b/examples/widgets/keyboard/index.rst index f68484570..a99683171 100644 --- a/examples/widgets/keyboard/index.rst +++ b/examples/widgets/keyboard/index.rst @@ -1,5 +1,3 @@ -C -^ Keyboard with text area """"""""""""""""""""""" @@ -7,10 +5,3 @@ Keyboard with text area .. lv_example:: _widgets/keyboard/lv_example_keyboard_1 :language: c -MicroPython -^^^^^^^^^^^ - -Keyboard with text area -""""""""""""""""""""""" - -No examples yet. diff --git a/examples/widgets/label/index.rst b/examples/widgets/label/index.rst index 16b7bf5e3..02631a1df 100644 --- a/examples/widgets/label/index.rst +++ b/examples/widgets/label/index.rst @@ -1,5 +1,3 @@ -C -^ Line wrap, recoloring and scrolling """"""""""""""""""""""""""""""""""" @@ -19,7 +17,3 @@ Show LTR, RTL and Chinese texts .. lv_example:: widgets/label/lv_example_label_3 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/led/index.rst b/examples/widgets/led/index.rst index 853370ca1..abfa810c8 100644 --- a/examples/widgets/led/index.rst +++ b/examples/widgets/led/index.rst @@ -1,5 +1,3 @@ -C -^ LED with custom style """"""""""""""""""""" @@ -7,7 +5,3 @@ LED with custom style .. lv_example:: widgets/led/lv_example_led_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/line/index.rst b/examples/widgets/line/index.rst index 24acffebe..bbdaa478d 100644 --- a/examples/widgets/line/index.rst +++ b/examples/widgets/line/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Line """""""""""""""" @@ -7,7 +5,3 @@ Simple Line .. lv_example:: widgets/line/lv_example_line_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/list/index.rst b/examples/widgets/list/index.rst index 732743248..9e3e58bba 100644 --- a/examples/widgets/list/index.rst +++ b/examples/widgets/list/index.rst @@ -1,5 +1,3 @@ -C -^ Simple List """""""""""""""" @@ -7,7 +5,3 @@ Simple List .. lv_example:: widgets/list/lv_example_list_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/meter/index.rst b/examples/widgets/meter/index.rst index a00316136..08dfb0fc6 100644 --- a/examples/widgets/meter/index.rst +++ b/examples/widgets/meter/index.rst @@ -1,5 +1,3 @@ -C -^ Simple meter """"""""""""""""""""""" @@ -28,7 +26,3 @@ Pie chart .. lv_example:: widgets/meter/lv_example_meter_4 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/msgbox/index.rst b/examples/widgets/msgbox/index.rst index 44e4019be..d21fb80e5 100644 --- a/examples/widgets/msgbox/index.rst +++ b/examples/widgets/msgbox/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Message box """"""""""""""""""" @@ -8,7 +6,3 @@ Simple Message box :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/obj/index.rst b/examples/widgets/obj/index.rst index 737e9abd2..6f9b081f3 100644 --- a/examples/widgets/obj/index.rst +++ b/examples/widgets/obj/index.rst @@ -1,5 +1,3 @@ -C -^ Base objects with custom styles """""""""""""""""""""""""""""""" @@ -13,7 +11,3 @@ Make an object draggable .. lv_example:: widgets/obj/lv_example_obj_2 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/roller/index.rst b/examples/widgets/roller/index.rst index 791de9c3f..5e154dc2c 100644 --- a/examples/widgets/roller/index.rst +++ b/examples/widgets/roller/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Roller """""""""""""""" @@ -19,7 +17,3 @@ add fade mask to roller .. lv_example:: widgets/roller/lv_example_roller_3 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/slider/index.rst b/examples/widgets/slider/index.rst index 6d496094e..96dcf0f6b 100644 --- a/examples/widgets/slider/index.rst +++ b/examples/widgets/slider/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Slider """"""""""""""""""""""""" @@ -20,7 +18,3 @@ Slider with extended drawer :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/span/index.rst b/examples/widgets/span/index.rst index cc7effe2e..470de97d5 100644 --- a/examples/widgets/span/index.rst +++ b/examples/widgets/span/index.rst @@ -1,5 +1,3 @@ -C -^ Span with custom styles """""""""""""""""""""""" @@ -7,7 +5,3 @@ Span with custom styles .. lv_example:: widgets/span/lv_example_span_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/spinbox/index.rst b/examples/widgets/spinbox/index.rst index c7c6767b3..ee4bcd8f8 100644 --- a/examples/widgets/spinbox/index.rst +++ b/examples/widgets/spinbox/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Spinbox """"""""""""""""""""""" @@ -7,7 +5,3 @@ Simple Spinbox .. lv_example:: widgets/spinbox/lv_example_spinbox_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/spinner/index.rst b/examples/widgets/spinner/index.rst index 556084f66..b999a737b 100644 --- a/examples/widgets/spinner/index.rst +++ b/examples/widgets/spinner/index.rst @@ -1,5 +1,3 @@ -C -^ Simple spinner """""""""""""""""""""""""""" @@ -7,5 +5,3 @@ Simple spinner .. lv_example:: widgets/spinner/lv_example_spinner_1 :language: c -MicroPython -^^^^^^^^^^^ diff --git a/examples/widgets/switch/index.rst b/examples/widgets/switch/index.rst index 2ac076fa6..c2f294ca5 100644 --- a/examples/widgets/switch/index.rst +++ b/examples/widgets/switch/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Switch """"""""""""""""""""""" @@ -7,7 +5,3 @@ Simple Switch .. lv_example:: widgets/switch/lv_example_switch_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/table/index.rst b/examples/widgets/table/index.rst index edbe74094..abd5c7474 100644 --- a/examples/widgets/table/index.rst +++ b/examples/widgets/table/index.rst @@ -1,5 +1,4 @@ -C -^ + Simple table """"""""""""""""""""""" @@ -13,7 +12,3 @@ Lightweighted list from table .. lv_example:: widgets/table/lv_example_table_2 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/tabview/index.rst b/examples/widgets/tabview/index.rst index df1cc09bb..cf92a4117 100644 --- a/examples/widgets/tabview/index.rst +++ b/examples/widgets/tabview/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Tabview """"""""""""""""""""""" @@ -14,7 +12,3 @@ Tabs on the left, styling and no scrolling :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/textarea/index.rst b/examples/widgets/textarea/index.rst index 72fd93511..5ea651c76 100644 --- a/examples/widgets/textarea/index.rst +++ b/examples/widgets/textarea/index.rst @@ -1,5 +1,3 @@ -C -^ Simple Text area """"""""""""""""""""""" @@ -20,7 +18,3 @@ Text auto-formatting .. lv_example:: widgets/textarea/lv_example_textarea_3 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/tileview/index.rst b/examples/widgets/tileview/index.rst index 751a70790..75ade97b5 100644 --- a/examples/widgets/tileview/index.rst +++ b/examples/widgets/tileview/index.rst @@ -1,5 +1,3 @@ -C -^ Tileview with content """"""""""""""""""""""""""" @@ -7,7 +5,3 @@ Tileview with content .. lv_example:: widgets/tileview/lv_example_tileview_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet. diff --git a/examples/widgets/win/index.rst b/examples/widgets/win/index.rst index 5064612d8..95017fa0c 100644 --- a/examples/widgets/win/index.rst +++ b/examples/widgets/win/index.rst @@ -1,5 +1,3 @@ -C -^ Simple window """"""""""""""" @@ -7,7 +5,3 @@ Simple window .. lv_example:: widgets/win/lv_example_win_1 :language: c -MicroPython -^^^^^^^^^^^ - -No examples yet.