Selaa lähdekoodia

#439 further simplify layout for code examples

Falko Schindler 2 vuotta sitten
vanhempi
säilyke
ef8b060786
4 muutettua tiedostoa jossa 18 lisäystä ja 18 poistoa
  1. 2 2
      main.py
  2. 3 1
      website/example.py
  3. 12 14
      website/more_reference/table_reference.py
  4. 1 1
      website/reference_tools.py

+ 2 - 2
main.py

@@ -20,7 +20,7 @@ from nicegui import globals as nicegui_globals
 from nicegui import ui
 from website import demo_card, reference, svg
 from website.example import bash_window, browser_window, python_window
-from website.reference_tools import create_anchor_name
+from website.reference_tools import create_anchor_name, element_example
 from website.star import add_star
 from website.style import example_link, features, heading, link_target, section_heading, side_menu, subtitle, title
 
@@ -312,7 +312,7 @@ def reference_page_more(name: str):
     with ui.column().classes('w-full p-8 lg:p-16 max-w-[1250px] mx-auto'):
         section_heading('Reference', f'ui.*{name}*')
         module = importlib.import_module(f'website.more_reference.{name}_reference')
-        getattr(module, 'intro')()
+        element_example(getattr(ui, name))(getattr(module, 'main_example'))
         getattr(module, 'more')()
 
 

+ 3 - 1
website/example.py

@@ -30,7 +30,9 @@ class example:
             while not code[0].strip().startswith('def'):
                 del code[0]
             del code[0]
-            code = ['from nicegui import ui'] + [remove_prefix(line[8:], '# ') for line in code]
+            indentation = len(code[0]) - len(code[0].lstrip())
+            code = [line[indentation:] for line in code]
+            code = ['from nicegui import ui'] + [remove_prefix(line, '# ') for line in code]
             code = ['' if line == '#' else line for line in code]
             if not code[-1].startswith('ui.run('):
                 code.append('')

+ 12 - 14
website/more_reference/table_reference.py

@@ -1,21 +1,19 @@
 from nicegui import ui
 
-from ..reference_tools import element_example, text_example
+from ..reference_tools import text_example
 
 
-def intro() -> None:
-    @element_example(ui.table)
-    def table_example():
-        columns = [
-            {'name': 'name', 'label': 'Name', 'field': 'name', 'required': True, 'align': 'left'},
-            {'name': 'age', 'label': 'Age', 'field': 'age', 'sortable': True},
-        ]
-        rows = [
-            {'name': 'Alice', 'age': 18},
-            {'name': 'Bob', 'age': 21},
-            {'name': 'Carol'},
-        ]
-        ui.table(columns=columns, rows=rows, row_key='name')
+def main_example() -> None:
+    columns = [
+        {'name': 'name', 'label': 'Name', 'field': 'name', 'required': True, 'align': 'left'},
+        {'name': 'age', 'label': 'Age', 'field': 'age', 'sortable': True},
+    ]
+    rows = [
+        {'name': 'Alice', 'age': 18},
+        {'name': 'Bob', 'age': 21},
+        {'name': 'Carol'},
+    ]
+    ui.table(columns=columns, rows=rows, row_key='name')
 
 
 def more() -> None:

+ 1 - 1
website/reference_tools.py

@@ -102,4 +102,4 @@ def load_example(element_class: type) -> None:
         return re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower()
     name = pascal_to_snake(element_class.__name__)
     module = importlib.import_module(f'website.more_reference.{name}_reference')
-    getattr(module, 'intro')()
+    element_example(element_class)(getattr(module, 'main_example'))