Afeezee commited on
Commit
250167c
·
verified ·
1 Parent(s): 61d7218

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -8
app.py CHANGED
@@ -14,12 +14,14 @@ def generate_svg(description):
14
  Create an SVG diagram for {description} with the following specifications:
15
  1. Canvas Setup:
16
  - Use viewBox="0 0 800 600"
17
- 3. Visual Style Requirements (apply when needed):
18
  - Text: centered, with title (14px, bold) and details (12px)
 
 
19
  - Color scheme: professional color choices
20
  - Consistent stroke width: 2px
21
  - Avoid line crossings in connections
22
- 6. Additional Requirements:
23
  Put the name of the Diagram in bold on top
24
  - Multiple Color coding
25
  Please generate a complete SVG code that can be directly used. Ensure the code follows SVG best practices and includes proper spacing and formatting for readability.
@@ -42,7 +44,7 @@ Generate the correct code, ensure it is free from construct error and this kind
42
  with open("diagram.svg", "w") as f:
43
  f.write(full_svg_code)
44
 
45
- # Return the HTML display, download file, and store the full code in state for editing in Tab 2.
46
  return full_svg_code, "diagram.svg", full_svg_code
47
 
48
  def update_svg(modified_svg_code):
@@ -51,7 +53,9 @@ def update_svg(modified_svg_code):
51
  f.write(modified_svg_code)
52
  return modified_svg_code, "diagram.svg"
53
 
54
- with gr.Blocks() as demo:
 
 
55
  gr.Markdown("# Miru - Diagram Viewer")
56
  gr.Markdown("Use the **Generate Diagram** tab to create a diagram by describing it. In the **Update Diagram** tab, you can edit the generated SVG code and update the diagram.")
57
 
@@ -65,10 +69,9 @@ with gr.Blocks() as demo:
65
  interactive=True)
66
  # Generated SVG displayed in a larger HTML area
67
  svg_output = gr.HTML(label="Generated SVG", elem_id="svg-container", value="")
68
- svg_output.style(height="600px")
69
  download_svg_output = gr.File(label="Download SVG")
70
 
71
- # When the user presses Enter, generate_svg is called and updates the outputs and state.
72
  description_input.submit(fn=generate_svg,
73
  inputs=description_input,
74
  outputs=[svg_output, download_svg_output, svg_state])
@@ -78,7 +81,7 @@ with gr.Blocks() as demo:
78
  modified_svg_input = gr.Textbox(label="Edit SVG Code", lines=10, interactive=True)
79
  load_button = gr.Button("Load Generated Code")
80
  update_button = gr.Button("Update Diagram")
81
- updated_svg_output = gr.HTML(label="Updated SVG", elem_id="svg-container", value="")
82
  updated_download_svg_output = gr.File(label="Download SVG")
83
 
84
  # Load the generated SVG code from state into the editable textbox
@@ -88,4 +91,4 @@ with gr.Blocks() as demo:
88
  inputs=modified_svg_input,
89
  outputs=[updated_svg_output, updated_download_svg_output])
90
 
91
- demo.launch()
 
14
  Create an SVG diagram for {description} with the following specifications:
15
  1. Canvas Setup:
16
  - Use viewBox="0 0 800 600"
17
+ 2. Visual Style Requirements (apply when needed):
18
  - Text: centered, with title (14px, bold) and details (12px)
19
+ - Ensure consistent spacing
20
+ - Ensure proper use of arrow only when needed
21
  - Color scheme: professional color choices
22
  - Consistent stroke width: 2px
23
  - Avoid line crossings in connections
24
+ 3. Additional Requirements:
25
  Put the name of the Diagram in bold on top
26
  - Multiple Color coding
27
  Please generate a complete SVG code that can be directly used. Ensure the code follows SVG best practices and includes proper spacing and formatting for readability.
 
44
  with open("diagram.svg", "w") as f:
45
  f.write(full_svg_code)
46
 
47
+ # Return: HTML for display, file path, and store the full code in state for editing in Tab 2.
48
  return full_svg_code, "diagram.svg", full_svg_code
49
 
50
  def update_svg(modified_svg_code):
 
53
  f.write(modified_svg_code)
54
  return modified_svg_code, "diagram.svg"
55
 
56
+ with gr.Blocks(css="""
57
+
58
+ """) as demo:
59
  gr.Markdown("# Miru - Diagram Viewer")
60
  gr.Markdown("Use the **Generate Diagram** tab to create a diagram by describing it. In the **Update Diagram** tab, you can edit the generated SVG code and update the diagram.")
61
 
 
69
  interactive=True)
70
  # Generated SVG displayed in a larger HTML area
71
  svg_output = gr.HTML(label="Generated SVG", elem_id="svg-container", value="")
 
72
  download_svg_output = gr.File(label="Download SVG")
73
 
74
+ # Submit on pressing Enter in the description box
75
  description_input.submit(fn=generate_svg,
76
  inputs=description_input,
77
  outputs=[svg_output, download_svg_output, svg_state])
 
81
  modified_svg_input = gr.Textbox(label="Edit SVG Code", lines=10, interactive=True)
82
  load_button = gr.Button("Load Generated Code")
83
  update_button = gr.Button("Update Diagram")
84
+ updated_svg_output = gr.HTML(label="Updated SVG", elem_id="updated-svg-container", value="")
85
  updated_download_svg_output = gr.File(label="Download SVG")
86
 
87
  # Load the generated SVG code from state into the editable textbox
 
91
  inputs=modified_svg_input,
92
  outputs=[updated_svg_output, updated_download_svg_output])
93
 
94
+ demo.launch()