awacke1 commited on
Commit
3cfd36a
·
verified ·
1 Parent(s): 7d4dece

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -16
app.py CHANGED
@@ -213,7 +213,7 @@ def create_pdf(markdown_text, base_font_size, num_columns, add_space_before_numb
213
  usable_width = page_width - 72
214
  avg_line_chars = total_chars / total_lines if total_lines > 0 else 50
215
  ideal_lines_per_col = 20
216
- suggested_columns = max(1, min(6, int(total_lines / ideal_lines_per_col) + 1))
217
  num_columns = num_columns if num_columns != 0 else suggested_columns
218
  col_width = usable_width / num_columns
219
  min_font_size = 6
@@ -492,33 +492,37 @@ with st.sidebar:
492
  )
493
  auto_columns = st.checkbox("AutoColumns", value=True)
494
 
495
- if auto_columns and 'markdown_content' in st.session_state:
 
 
 
496
  current_markdown = st.session_state.markdown_content
497
  lines = current_markdown.strip().split('\n')
498
- longest_line_words = 0
499
  for line in lines:
500
  if line.strip():
501
  word_count = len(line.split())
502
  longest_line_words = max(longest_line_words, word_count)
503
- if longest_line_words > 38:
504
- recommended_columns = 2
505
- elif longest_line_words >= 25:
506
- recommended_columns = 3
507
- elif longest_line_words >= 18:
508
- recommended_columns = 4
 
509
  else:
510
- recommended_columns = 5
511
- st.info(f"Longest line has {longest_line_words} words. Recommending {recommended_columns} columns.")
512
- else:
513
- recommended_columns = 3
 
514
 
515
- column_options = ["Auto"] + list(range(1, 7))
516
  num_columns = st.selectbox(
517
  "Number of Columns",
518
  options=column_options,
519
- index=0 if recommended_columns == "Auto" else column_options.index(recommended_columns)
520
  )
521
- num_columns = 0 if num_columns == "Auto" else int(num_columns)
522
  st.info("Font size and columns adjust to fit one page.")
523
 
524
  st.markdown("### ✍️ Edit Markdown")
 
213
  usable_width = page_width - 72
214
  avg_line_chars = total_chars / total_lines if total_lines > 0 else 50
215
  ideal_lines_per_col = 20
216
+ suggested_columns = max(2, min(4, int(total_lines / ideal_lines_per_col) + 1))
217
  num_columns = num_columns if num_columns != 0 else suggested_columns
218
  col_width = usable_width / num_columns
219
  min_font_size = 6
 
492
  )
493
  auto_columns = st.checkbox("AutoColumns", value=True)
494
 
495
+ # Calculate document stats
496
+ longest_line_words = 0
497
+ total_lines = 0
498
+ if 'markdown_content' in st.session_state:
499
  current_markdown = st.session_state.markdown_content
500
  lines = current_markdown.strip().split('\n')
501
+ total_lines = len([line for line in lines if line.strip()])
502
  for line in lines:
503
  if line.strip():
504
  word_count = len(line.split())
505
  longest_line_words = max(longest_line_words, word_count)
506
+ if auto_columns:
507
+ if longest_line_words > 38:
508
+ recommended_columns = 2
509
+ elif longest_line_words < 18 and total_lines < 20:
510
+ recommended_columns = 4
511
+ else:
512
+ recommended_columns = 3
513
  else:
514
+ recommended_columns = 3
515
+ st.markdown(f"**Document Stats**")
516
+ st.write(f"- Longest Line: {longest_line_words} words")
517
+ st.write(f"- Total Lines: {total_lines}")
518
+ st.write(f"- Recommended Columns: {recommended_columns}")
519
 
520
+ column_options = [2, 3, 4]
521
  num_columns = st.selectbox(
522
  "Number of Columns",
523
  options=column_options,
524
+ index=column_options.index(recommended_columns)
525
  )
 
526
  st.info("Font size and columns adjust to fit one page.")
527
 
528
  st.markdown("### ✍️ Edit Markdown")