Flathub | 11 |
12 |
13 | |
16 |
Archlinux AUR | 19 |20 | simple-diary-gtk, 21 | simple-diary-gtk-git 22 | | 23 |
Designed to be easy to use and be out of the way, to let you focus on documenting and reflecting over your daily life.
13 |A few notable features are:
14 |Fix bug not properly deleting photos when deleting diary.
185 |Improve interface for small formfactor devices.
190 |\n{self.render_children(element)}\n" 132 | 133 | def render_fenced_code(self, element): 134 | lang = ( 135 | f' class="language-{element.lang}"' 136 | if element.lang 137 | else "" 138 | ) 139 | return "
{}
\n".format(
140 | lang, html.escape(element.children[0].children)
141 | )
142 |
143 | def render_code_block(self, element):
144 | return self.render_fenced_code(element)
145 |
146 | def render_html_block(self, element):
147 | return element.children
148 |
149 | def render_thematic_break(self, element):
150 | return "{html.escape(element.children)}
"
217 |
218 |
219 | def latex2md(md_path):
220 | title = os.path.basename(md_path)[:-3]
221 | print(f"converting '{title}'")
222 | tex_path = f"{tex_dir}/{title}.tex"
223 | with open(md_path, "r") as md_file:
224 | tex_str = ""
225 | tex_str += "\section*{" + latex_escape(title) + "}\n"
226 | md_str = md_file.read()
227 | converter = marko.Markdown(renderer=LatexRenderer)
228 | tex_str += converter.convert(md_str)
229 | with open(tex_path, "w") as tex_file:
230 | tex_file.write(tex_str)
231 | return title
232 |
233 | if os.path.isdir(md_dir):
234 | entries = []
235 | md_file_paths = os.listdir(md_dir)
236 | for md_path in md_file_paths:
237 | if not md_path.endswith(".md"):
238 | continue
239 | md_path_full = f"{md_dir}/{md_path}"
240 | entry_name = latex2md(md_path_full)
241 | entries.append(entry_name)
242 |
243 | root_str = ""
244 | root_str += "\documentclass[a4paper,12pt]{article}\n"
245 | root_str += "\n"
246 | # International characters
247 | root_str += "\\usepackage[utf8]{inputenc}\n"
248 | # Font family
249 | root_str += "\\usepackage[T1]{fontenc}\n"
250 | root_str += "\\usepackage{charter}\n"
251 | #
252 | root_str += "\\usepackage{graphicx}\n"
253 | root_str += "\\usepackage[space]{grffile}\n"
254 | root_str += "\\usepackage[labelformat=empty]{caption}\n"
255 | root_str += "\\usepackage[labelformat=empty]{subcaption}\n"
256 | # 2cm margins
257 | root_str += "\\usepackage{geometry}\n"
258 | root_str += "\\geometry{margin=2cm}\n"
259 | # Allow more floats
260 | root_str += "\\extrafloats{1000}\n"
261 | # No newline after sections
262 | root_str += "\\usepackage{newclude}\n"
263 | # Float barriers
264 | root_str += "\\usepackage[section]{placeins}\n"
265 | root_str += "\n"
266 | root_str += "\\begin{document}\n"
267 | root_str += "\n"
268 |
269 | for entry_name in sorted(entries):
270 | #root_str += "\\include{" + entry_name + "}\n"
271 | root_str += "\\include*{" + entry_name + "}\n"
272 | root_str += "\n"
273 | root_str += "\end{document}\n"
274 | with open(f"{tex_dir}/diary.tex", "w") as diary_file:
275 | diary_file.write(root_str)
276 | else:
277 | if not md_dir.endswith(".md"):
278 | print("file has to end with .md")
279 | exit(1)
280 | latex2md(md_dir)
281 |
--------------------------------------------------------------------------------