Skip to content

Commit e561b54

Browse files
committed
fixed file sorting in menu by title instead of filename
1 parent 46e5f6a commit e561b54

4 files changed

Lines changed: 26 additions & 8 deletions

File tree

markopolis/dantic.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class NoteHtml(BaseModel):
2626

2727
class File(BaseModel):
2828
filename: str
29+
title: str
2930
link: str
3031

3132

markopolis/md.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,12 +243,31 @@ def build_file_tree(root_path: Path, current_path: str = "") -> D.Folder:
243243
else:
244244
updated_path = f"{current_path}/{folder_name}".lstrip("/")
245245

246-
# List files and sort them lexicographically
247-
files = sorted(root_path.glob("*.md"), key=lambda f: f.name)
246+
# List files, extract titles from frontmatter, and sort them by title lexicographically
247+
files = list(root_path.glob("*.md"))
248+
file_info = []
249+
248250
for file in files:
251+
ftitle = os.path.relpath(file, md_root)
252+
fpath = os.path.join(md_root, ftitle)
253+
254+
# Extract title from the frontmatter
255+
_title = extract_title_from_frontmatter(fpath)
256+
if _title is None:
257+
_title = ftitle.split(".")[0]
258+
259+
file_info.append({"file": file, "title": _title})
260+
261+
# Sort the files by title
262+
sorted_files = sorted(file_info, key=lambda x: x["title"])
263+
264+
for info in sorted_files:
265+
file = info["file"]
266+
_title = info["title"]
249267
file_obj = D.File(
250268
filename=file.name.split(".")[0],
251-
link=f"/{updated_path}/{file.stem}".lstrip("/"),
269+
link=f"{updated_path}/{file.stem}",
270+
title=_title,
252271
)
253272
members.append(file_obj)
254273

markopolis/static/styles.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ a:hover {
143143
/* font-family: "Literata", sans-serif; */
144144
font-size: 18px;
145145
/* line-height: 26.4384px; */
146-
line-height: 30px;
146+
line-height: 32px;
147147
color: var(--text-primary);
148148
overflow-wrap: break-word;
149149
box-sizing: border-box;

markopolis/templates/page.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@
107107
member in folder.members %} {% if member.filename %}
108108
<div class="file">
109109
<a href="{{ member.link }}">
110-
<i class="fas fa-file"></i> {{ member.filename
111-
}}
110+
<i class="fas fa-file"></i> {{ member.title }}
112111
</a>
113112
</div>
114113
{% elif member.folder_name %}
@@ -135,8 +134,7 @@
135134
member.filename %}
136135
<div class="file">
137136
<a href="{{ member.link }}">
138-
<i class="fas fa-file"></i> {{ member.filename
139-
}}
137+
<i class="fas fa-file"></i> {{ member.title }}
140138
</a>
141139
</div>
142140
{% elif member.folder_name %}

0 commit comments

Comments
 (0)