fmard/pdf-api
0
1<!DOCTYPE html>2<html lang="en">3<head>4 <meta charset="UTF-8">5 <title>{{ course_name | default('Course Syllabus') }}</title>6 <style>7 * { margin: 0; padding: 0; box-sizing: border-box; }8 body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; padding: 40px; font-size: 14px; line-height: 1.6; color: #1f2937; }9 .header { text-align: center; border-bottom: 3px solid #4f46e5; padding-bottom: 20px; margin-bottom: 25px; }10 .header .institution { font-size: 18px; font-weight: 700; color: #374151; }11 .header h1 { font-size: 22px; color: #4f46e5; margin-top: 5px; }12 .header .course-code { font-size: 14px; color: #6b7280; margin-top: 3px; }13 .info-box { background: #f9fafb; border-left: 4px solid #4f46e5; padding: 15px; margin-bottom: 25px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 30px; }14 .info-item span:first-child { font-weight: 600; color: #4f46e5; }15 .section { margin-bottom: 22px; }16 .section-title { font-size: 15px; font-weight: 700; color: #4f46e5; border-bottom: 1px solid #e5e7eb; padding-bottom: 5px; margin-bottom: 10px; }17 ul { padding-left: 20px; }18 li { margin-bottom: 4px; }19 table { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 13px; }20 th, td { border: 1px solid #d1d5db; padding: 7px 10px; text-align: left; }21 th { background: #4f46e5; color: white; font-weight: 600; }22 tr:nth-child(even) { background: #f9fafb; }23 .grading-table { width: 50%; }24 .grading-table td:last-child { text-align: center; font-weight: 600; }25 </style>26</head>27<body>28 <div class="header">29 <div class="institution">{{ institution_name | default('University Name') }}</div>30 <h1>COURSE SYLLABUS</h1>31 <div class="course-code">{{ course_code | default('CS101') }} — {{ course_name | default('Introduction to Computer Science') }}</div>32 </div>33 34 <div class="info-box">35 <div class="info-item"><span>Instructor:</span> {{ instructor | default('Instructor Name') }}</div>36 <div class="info-item"><span>Semester:</span> {{ semester | default('Fall') }} {{ year | default('2024') }}</div>37 <div class="info-item"><span>Credits:</span> {{ credits | default('3') }} SKS</div>38 <div class="info-item"><span>Prerequisites:</span> {{ prerequisites | default(['None']) | join(', ') }}</div>39 </div>40 41 <div class="section">42 <div class="section-title">Course Description</div>43 <p>{{ description | default('This course provides an introduction to the fundamental concepts.') }}</p>44 </div>45 46 <div class="section">47 <div class="section-title">Course Objectives</div>48 <ul>49 {% for obj in objectives | default(['Understand fundamental concepts', 'Apply theoretical knowledge']) %}50 <li>{{ obj }}</li>51 {% endfor %}52 </ul>53 </div>54 55 <div class="section">56 <div class="section-title">Course Schedule</div>57 <table>58 <thead><tr><th>Week</th><th>Topic</th><th>Readings</th><th>Assignment</th></tr></thead>59 <tbody>60 {% for item in schedule | default([{'week': '1', 'topic': 'Introduction', 'readings': 'Ch. 1', 'assignment': '-'}]) %}61 <tr><td>{{ item.week }}</td><td>{{ item.topic }}</td><td>{{ item.readings }}</td><td>{{ item.assignment }}</td></tr>62 {% endfor %}63 </tbody>64 </table>65 </div>66 67 <div class="section">68 <div class="section-title">Grading</div>69 <table class="grading-table">70 <thead><tr><th>Component</th><th>Weight</th></tr></thead>71 <tbody>72 {% for g in grading | default([{'component': 'Midterm', 'weight': '30%'}, {'component': 'Final', 'weight': '40%'}, {'component': 'Assignments', 'weight': '30%'}]) %}73 <tr><td>{{ g.component }}</td><td>{{ g.weight }}</td></tr>74 {% endfor %}75 </tbody>76 </table>77 </div>78 79 <div class="section">80 <div class="section-title">Course Policies</div>81 <ul>82 {% for policy in policies | default(['Attendance is mandatory', 'Late submissions will receive a penalty']) %}83 <li>{{ policy }}</li>84 {% endfor %}85 </ul>86 </div>87 88 <div class="section">89 <div class="section-title">Textbooks & References</div>90 <ul>91 {% for book in textbooks | default(['Required textbook TBD']) %}92 <li>{{ book }}</li>93 {% endfor %}94 </ul>95 </div>96</body>97</html>98 