broadfield-dev commited on
Commit
12df627
·
verified ·
1 Parent(s): 727236c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -11
app.py CHANGED
@@ -25,6 +25,7 @@ DEFAULT_STYLES = {
25
  "text_color": "#333333",
26
  "background_color": "#ffffff",
27
  "code_bg_color": "#f4f4f4",
 
28
  "custom_css": ""
29
  }
30
 
@@ -49,6 +50,7 @@ def index():
49
  "text_color": request.form.get("text_color", DEFAULT_STYLES["text_color"]),
50
  "background_color": request.form.get("background_color", DEFAULT_STYLES["background_color"]),
51
  "code_bg_color": request.form.get("code_bg_color", DEFAULT_STYLES["code_bg_color"]),
 
52
  "custom_css": request.form.get("custom_css", DEFAULT_STYLES["custom_css"])
53
  }
54
  include_fontawesome = "include_fontawesome" in request.form
@@ -82,11 +84,6 @@ def index():
82
  padding: 25px;
83
  display: inline-block; /* Helps imgkit to crop correctly */
84
  }}
85
- pre, code {{
86
- background: {styles['code_bg_color']};
87
- padding: 10px;
88
- border-radius: 5px;
89
- }}
90
  table {{
91
  border-collapse: collapse;
92
  width: 100%;
@@ -103,6 +100,36 @@ def index():
103
  max-width: 100%;
104
  height: auto;
105
  }}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  /* User-defined custom CSS */
107
  {styles['custom_css']}
108
  </style>
@@ -167,15 +194,15 @@ def index():
167
  h1 { text-align: center; color: #333; }
168
  form { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
169
  textarea { width: 100%; height: 300px; margin-bottom: 10px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 4px; padding: 10px; }
170
- .controls { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; }
171
- .main-actions, .style-options { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; }
172
  fieldset { border: 1px solid #ddd; padding: 15px; border-radius: 5px; margin-top: 20px; }
173
- legend { font-weight: bold; color: #555; }
174
  .style-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 15px; }
175
  .style-grid > div { display: flex; flex-direction: column; }
176
- label { margin-bottom: 5px; color: #666; }
177
  select, input[type="number"], input[type="color"], input[type="text"] { padding: 8px; border: 1px solid #ccc; border-radius: 4px; }
178
- button { padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; }
179
  .generate-btn { background-color: #007BFF; color: white; }
180
  .generate-btn:hover { background-color: #0056b3; }
181
  .download-btn { background-color: #28a745; color: white; }
@@ -188,7 +215,7 @@ def index():
188
  <body>
189
  <h1>Advanced Markdown to PNG/HTML Converter</h1>
190
  <form method="post">
191
- <textarea name="markdown_text" placeholder="Paste your Markdown here...">{{ styles.get('markdown_text', '') }}</textarea>
192
  <div class="info">
193
  <b>Tip:</b> To include images, use full public URLs (e.g., `https://.../image.png`).
194
  To use icons, check "Include Font Awesome" below and use tags like `<i class="fa-solid fa-star"></i>`.
@@ -223,6 +250,10 @@ def index():
223
  <label for="code_bg_color">Code BG Color:</label>
224
  <input type="color" id="code_bg_color" name="code_bg_color" value="{{ styles.code_bg_color }}">
225
  </div>
 
 
 
 
226
  </div>
227
  <div>
228
  <input type="checkbox" id="include_fontawesome" name="include_fontawesome" {% if include_fontawesome %}checked{% endif %}>
 
25
  "text_color": "#333333",
26
  "background_color": "#ffffff",
27
  "code_bg_color": "#f4f4f4",
28
+ "code_padding": "15", # Default padding for code blocks
29
  "custom_css": ""
30
  }
31
 
 
50
  "text_color": request.form.get("text_color", DEFAULT_STYLES["text_color"]),
51
  "background_color": request.form.get("background_color", DEFAULT_STYLES["background_color"]),
52
  "code_bg_color": request.form.get("code_bg_color", DEFAULT_STYLES["code_bg_color"]),
53
+ "code_padding": request.form.get("code_padding", DEFAULT_STYLES["code_padding"]),
54
  "custom_css": request.form.get("custom_css", DEFAULT_STYLES["custom_css"])
55
  }
56
  include_fontawesome = "include_fontawesome" in request.form
 
84
  padding: 25px;
85
  display: inline-block; /* Helps imgkit to crop correctly */
86
  }}
 
 
 
 
 
87
  table {{
88
  border-collapse: collapse;
89
  width: 100%;
 
100
  max-width: 100%;
101
  height: auto;
102
  }}
103
+
104
+ /* --- Enhanced Code Block Styling --- */
105
+
106
+ /* Style for the code block container */
107
+ pre {{
108
+ background: {styles['code_bg_color']};
109
+ padding: {styles['code_padding']}px;
110
+ border-radius: 5px;
111
+ white-space: pre-wrap; /* Wrap long lines of code */
112
+ word-wrap: break-word; /* Break long words if necessary */
113
+ }}
114
+
115
+ /* Style for inline `code` snippets */
116
+ code {{
117
+ background: {styles['code_bg_color']};
118
+ padding: 0.2em 0.4em;
119
+ margin: 0;
120
+ font-size: 85%;
121
+ border-radius: 3px;
122
+ }}
123
+
124
+ /* Reset styling for <code> inside <pre> to avoid double-styling */
125
+ pre > code {{
126
+ padding: 0;
127
+ margin: 0;
128
+ font-size: inherit;
129
+ background: transparent;
130
+ border-radius: 0;
131
+ }}
132
+
133
  /* User-defined custom CSS */
134
  {styles['custom_css']}
135
  </style>
 
194
  h1 { text-align: center; color: #333; }
195
  form { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
196
  textarea { width: 100%; height: 300px; margin-bottom: 10px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 4px; padding: 10px; }
197
+ .controls { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; margin-top: 20px; }
198
+ .main-actions { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; }
199
  fieldset { border: 1px solid #ddd; padding: 15px; border-radius: 5px; margin-top: 20px; }
200
+ legend { font-weight: bold; color: #555; padding: 0 10px; }
201
  .style-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 15px; }
202
  .style-grid > div { display: flex; flex-direction: column; }
203
+ label { margin-bottom: 5px; color: #666; font-size: 14px; }
204
  select, input[type="number"], input[type="color"], input[type="text"] { padding: 8px; border: 1px solid #ccc; border-radius: 4px; }
205
+ button { padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; transition: background-color 0.2s; }
206
  .generate-btn { background-color: #007BFF; color: white; }
207
  .generate-btn:hover { background-color: #0056b3; }
208
  .download-btn { background-color: #28a745; color: white; }
 
215
  <body>
216
  <h1>Advanced Markdown to PNG/HTML Converter</h1>
217
  <form method="post">
218
+ <textarea name="markdown_text" placeholder="Paste your Markdown here...">{{ markdown_text }}</textarea>
219
  <div class="info">
220
  <b>Tip:</b> To include images, use full public URLs (e.g., `https://.../image.png`).
221
  To use icons, check "Include Font Awesome" below and use tags like `<i class="fa-solid fa-star"></i>`.
 
250
  <label for="code_bg_color">Code BG Color:</label>
251
  <input type="color" id="code_bg_color" name="code_bg_color" value="{{ styles.code_bg_color }}">
252
  </div>
253
+ <div>
254
+ <label for="code_padding">Code Padding (px):</label>
255
+ <input type="number" id="code_padding" name="code_padding" value="{{ styles.code_padding }}">
256
+ </div>
257
  </div>
258
  <div>
259
  <input type="checkbox" id="include_fontawesome" name="include_fontawesome" {% if include_fontawesome %}checked{% endif %}>