add generateREADME.py, update README

- renumber two first lectures
main
borb 1 week ago
parent 96611d1ba9
commit 441a7424cc

@ -0,0 +1,49 @@
import os
import re
from pathlib import Path
def get_first_title(md_path):
with open(md_path, 'r', encoding='utf-8') as file:
for line in file:
match = re.match(r'^#\s+(.*)', line.strip())
if match:
return match.group(1)
return "Untitled"
def extract_leading_number(filename):
match = re.match(r'^(\d{1,2})[_\- ]', filename)
return match.group(1) if match else None
def generate_markdown_table(directory):
entries = []
for filename in os.listdir(directory):
if filename.endswith('.md'):
number = extract_leading_number(filename)
if number is None:
continue # Skip files without leading number
filepath = os.path.join(directory, filename)
title = get_first_title(filepath)
entries.append((int(number), number, title, filename))
entries.sort(key=lambda x: x[0])
table = ["| # | Lecture | Slides |", "|:------|:-----|:------|"]
for _, number, title, filename in entries:
table.append(f"| {number} | [{title}]({filename}) | [Download slides]({Path(filename).stem}-slides.html) |")
return '\n'.join(table)
def main():
directory = "./../" # current directory, or change to any other path
output_file = directory + "README.md"
table_md = generate_markdown_table(directory)
with open(output_file, 'a', encoding='utf-8') as f:
f.write("# Contents\n\n")
f.write(table_md)
f.write("\n")
print(f"Index written to {output_file}")
if __name__ == "__main__":
main()

@ -3,7 +3,7 @@ marp: true
paginate: true paginate: true
math: mathjax math: mathjax
theme: buutti theme: buutti
title: 1. Introduction to C# and .NET title: 0. Introduction to C# and .NET
--- ---
# Introduction to C# and .NET # Introduction to C# and .NET

@ -3,7 +3,7 @@ marp: true
paginate: true paginate: true
math: mathjax math: mathjax
theme: buutti theme: buutti
title: 1.5. Introduction to Visual Studio title: 1. Introduction to Visual Studio
--- ---
# Introduction to Visual Studio # Introduction to Visual Studio

@ -1,18 +1,23 @@
# Contents <!-- <a href="/education/csharp-basics/raw/branch/main/5-arrays-and-lists-slides.html" download >Download</a>
[Download3b](5-arrays-and-lists-slides.html "juuh")## Contents -->
Material completion denoted with 🌑🌘🌗🌖🌕 .
| # | Lecture | Materials | Exercises | # Contents
|---:|------------------------------------------------------------------------|----------:|----------:|
| 8 | [Inheritance and Abstract Classes](8-inheritance-and-abstract-classes.md) | 🌕 | 🌕 |
| 9 | [Interfaces](9-interfaces.md) | 🌕 | 🌕 |
| 10 | [Static Members, Methods, and Classes](10-static-members-methods-and-classes.md) | 🌕 | 🌕 |
| 11 | [Delegates and Events](11-delegates-and-events.md) | 🌕 | 🌗 |
| 12 | [Files and Streams](12-files-and-streams.md) | 🌕 | 🌕 |
| 13 | [Generics, IEnumberable and LINQ](13-generics-ienumerable-and-linq.md) | 🌕 | 🌕 |
| 14 | [Exceptions, Threads and Tasks](14-exceptions-threads-and-tasks.md) | 🌕 | 🌕 |
| 15 | [Design Patterns in C#](15-design-patterns-in-csharp.md) | 🌗 | 🌑 |
<a href="/education/csharp-basics/raw/branch/main/5-arrays-and-lists-slides.html" download >Download</a> | # | Lecture | Slides |
[Download2b](/raw/branch/main/5-arrays-and-lists-slides.html "juuh") |:---|:--------------------------------------------------------------------------------|:---------------------------------------------------------------------|
[Download3b](5-arrays-and-lists-slides.html "juuh") | 0 | [Introduction to C# and .NET](0-introduction-to-csharp-and-dotnet.md) | [Download slides](0-introduction-to-csharp-and-dotnet-slides.html) |
| 1 | [Introduction to Visual Studio](1-introduction-to-visual-studio.md) | [Download slides](1-introduction-to-visual-studio-slides.html) |
| 2 | [Variables and Types](2-variables-and-types.md) | [Download slides](2-variables-and-types-slides.html) |
| 3 | [Conditionals](3-conditionals.md) | [Download slides](3-conditionals-slides.html) |
| 4 | [Loops](4-loops.md) | [Download slides](4-loops-slides.html) |
| 5 | [Arrays and Lists](5-arrays-and-lists.md) | [Download slides](5-arrays-and-lists-slides.html) |
| 6 | [Methods](6-methods.md) | [Download slides](6-methods-slides.html) |
| 7 | [Classes And Objects](7-classes-and-objects.md) | [Download slides](7-classes-and-objects-slides.html) |
| 8 | [Inheritance & Abstract Classes](8-inheritance-and-abstract-classes.md) | [Download slides](8-inheritance-and-abstract-classes-slides.html) |
| 9 | [Interfaces](9-interfaces.md) | [Download slides](9-interfaces-slides.html) |
| 10 | [Static Members, Methods and Classes](10-static-members-methods-and-classes.md) | [Download slides](10-static-members-methods-and-classes-slides.html) |
| 11 | [Delegates and events](11-delegates-and-events.md) | [Download slides](11-delegates-and-events-slides.html) |
| 12 | [Files and Streams](12-files-and-streams.md) | [Download slides](12-files-and-streams-slides.html) |
| 13 | [Generics, IEnumerable and LINQ](13-generics-ienumerable-and-linq.md) | [Download slides](13-generics-ienumerable-and-linq-slides.html) |
| 14 | [Exceptions, Threads and Tasks](14-exceptions-threads-and-tasks.md) | [Download slides](14-exceptions-threads-and-tasks-slides.html) |
| 15 | [Design Patterns in C#](15-design-patterns-in-csharp.md) | [Download slides](15-design-patterns-in-csharp-slides.html) |

Loading…
Cancel
Save