Generate Markdown export of wiki pages. Args: repo_url: The repository URL pages: List of wiki pages Returns: Markdown content as string
(repo_url: str, pages: List[WikiPage])
| 320 | ) |
| 321 | |
| 322 | def generate_markdown_export(repo_url: str, pages: List[WikiPage]) -> str: |
| 323 | """ |
| 324 | Generate Markdown export of wiki pages. |
| 325 | |
| 326 | Args: |
| 327 | repo_url: The repository URL |
| 328 | pages: List of wiki pages |
| 329 | |
| 330 | Returns: |
| 331 | Markdown content as string |
| 332 | """ |
| 333 | # Start with metadata |
| 334 | markdown = f"# Wiki Documentation for {repo_url}\n\n" |
| 335 | markdown += f"Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n" |
| 336 | |
| 337 | # Add table of contents |
| 338 | markdown += "## Table of Contents\n\n" |
| 339 | for page in pages: |
| 340 | markdown += f"- [{page.title}](#{page.id})\n" |
| 341 | markdown += "\n" |
| 342 | |
| 343 | # Add each page |
| 344 | for page in pages: |
| 345 | markdown += f"<a id='{page.id}'></a>\n\n" |
| 346 | markdown += f"## {page.title}\n\n" |
| 347 | |
| 348 | |
| 349 | |
| 350 | # Add related pages |
| 351 | if page.relatedPages and len(page.relatedPages) > 0: |
| 352 | markdown += "### Related Pages\n\n" |
| 353 | related_titles = [] |
| 354 | for related_id in page.relatedPages: |
| 355 | # Find the title of the related page |
| 356 | related_page = next((p for p in pages if p.id == related_id), None) |
| 357 | if related_page: |
| 358 | related_titles.append(f"[{related_page.title}](#{related_id})") |
| 359 | |
| 360 | if related_titles: |
| 361 | markdown += "Related topics: " + ", ".join(related_titles) + "\n\n" |
| 362 | |
| 363 | # Add page content |
| 364 | markdown += f"{page.content}\n\n" |
| 365 | markdown += "---\n\n" |
| 366 | |
| 367 | return markdown |
| 368 | |
| 369 | def generate_json_export(repo_url: str, pages: List[WikiPage]) -> str: |
| 370 | """ |