JSenkCC commited on
Commit
5b83407
·
verified ·
1 Parent(s): f51608f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -11
app.py CHANGED
@@ -473,18 +473,21 @@ def generate_pdf(documentation):
473
  pdf = FPDF()
474
  pdf.set_auto_page_break(auto=True, margin=15)
475
  pdf.add_page()
476
- pdf.set_font("Arial", size=12)
477
 
478
- # Add headers and content
479
  for line in documentation.splitlines():
 
 
 
 
480
  if line.startswith("Project Summary:") or line.startswith("Functionality Summary:") or \
481
  line.startswith("Functionality Flow:") or line.startswith("Function Documentation:"):
482
- pdf.set_font("Arial", style="B", size=14)
483
- elif line.startswith("*") or line.startswith("- **Function**"):
484
- pdf.set_font("Arial", style="B", size=12)
485
  else:
486
- pdf.set_font("Arial", size=12)
487
- pdf.multi_cell(0, 10, line)
488
 
489
  # Save and download the PDF
490
  pdf_file = tempfile.NamedTemporaryFile(delete=False, suffix=".pdf")
@@ -499,15 +502,33 @@ def generate_pdf(documentation):
499
 
500
  # Helper function to generate Markdown file
501
  def generate_markdown_file(documentation):
502
- # Format the documentation
503
- formatted_documentation = documentation.replace("**", "**").replace(":", ":\n")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
504
 
505
- # Save as a temporary Markdown file
506
  markdown_file = tempfile.NamedTemporaryFile(delete=False, suffix=".md")
507
  with open(markdown_file.name, "w") as f:
508
  f.write(formatted_documentation)
509
 
510
- # Download the Markdown file
511
  st.download_button(
512
  label="Download Markdown File",
513
  data=open(markdown_file.name, "rb").read(),
 
473
  pdf = FPDF()
474
  pdf.set_auto_page_break(auto=True, margin=15)
475
  pdf.add_page()
476
+ pdf.set_font("Courier", size=12) # Monospaced font for IDE-like appearance
477
 
478
+ # Process and format content
479
  for line in documentation.splitlines():
480
+ # Remove asterisks and backticks
481
+ line = line.replace("*", "").replace("`", "'")
482
+
483
+ # Detect headers and adjust formatting
484
  if line.startswith("Project Summary:") or line.startswith("Functionality Summary:") or \
485
  line.startswith("Functionality Flow:") or line.startswith("Function Documentation:"):
486
+ pdf.set_font("Courier", style="B", size=14)
487
+ pdf.cell(0, 10, line, ln=True)
488
+ pdf.set_font("Courier", size=12) # Reset font for content
489
  else:
490
+ pdf.multi_cell(0, 10, line.strip()) # Handle regular content
 
491
 
492
  # Save and download the PDF
493
  pdf_file = tempfile.NamedTemporaryFile(delete=False, suffix=".pdf")
 
502
 
503
  # Helper function to generate Markdown file
504
  def generate_markdown_file(documentation):
505
+ """
506
+ Generate a Markdown file from the documentation with IDE-like formatting.
507
+ Adjustments:
508
+ - Removes asterisks (*)
509
+ - Replaces backticks (`) with single quotes (')
510
+ - Removes extra spaces between section headers and their content
511
+ - Removes Markdown-specific delimiters (e.g., ``` at the top and bottom)
512
+ """
513
+ # Process and format content
514
+ formatted_documentation = ""
515
+ for line in documentation.splitlines():
516
+ # Remove asterisks and backticks
517
+ line = line.replace("*", "").replace("`", "'")
518
+
519
+ # Add a newline only for headers for better structure in Markdown
520
+ if line.startswith("Project Summary:") or line.startswith("Functionality Summary:") or \
521
+ line.startswith("Functionality Flow:") or line.startswith("Function Documentation:"):
522
+ formatted_documentation += f"## {line.strip()}\n"
523
+ else:
524
+ formatted_documentation += f"{line.strip()}\n"
525
 
526
+ # Save to a temporary Markdown file
527
  markdown_file = tempfile.NamedTemporaryFile(delete=False, suffix=".md")
528
  with open(markdown_file.name, "w") as f:
529
  f.write(formatted_documentation)
530
 
531
+ # Allow the user to download the Markdown file
532
  st.download_button(
533
  label="Download Markdown File",
534
  data=open(markdown_file.name, "rb").read(),