Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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(
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 496 |
current_markdown = st.session_state.markdown_content
|
| 497 |
lines = current_markdown.strip().split('\n')
|
| 498 |
-
|
| 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
|
| 504 |
-
|
| 505 |
-
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
|
|
|
|
| 509 |
else:
|
| 510 |
-
recommended_columns =
|
| 511 |
-
st.
|
| 512 |
-
|
| 513 |
-
|
|
|
|
| 514 |
|
| 515 |
-
column_options = [
|
| 516 |
num_columns = st.selectbox(
|
| 517 |
"Number of Columns",
|
| 518 |
options=column_options,
|
| 519 |
-
index=
|
| 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")
|