Add installation instruction file;
Order directories.
This commit is contained in:
parent
766e51af4c
commit
3ac005708d
49 changed files with 61 additions and 0 deletions
51
html/gmi.py
51
html/gmi.py
|
@ -1,51 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
class HtmlGmi:
|
||||
|
||||
def convert_to_gmi(html_content):
|
||||
soup = BeautifulSoup(html_content, 'html.parser')
|
||||
footnotes = ['### References\n']
|
||||
footnote_counter = 1
|
||||
|
||||
# Extract text and links
|
||||
for a in soup.find_all('a'):
|
||||
link_text = a.get_text()
|
||||
url = a['href']
|
||||
if not url.startswith('#') and not url.startswith('/'):
|
||||
url_modified = url.replace(' ', '%20')
|
||||
url_modified = url_modified.replace('(', '%28')
|
||||
url_modified = url_modified.replace(')', '%29')
|
||||
#footnotes.append(f"=> {url_modified} [{footnote_counter}]: {link_text}")
|
||||
footnotes.append(f"=> {url_modified} [{footnote_counter}]: {url}")
|
||||
footnote_marker = f"{link_text}[{footnote_counter}]"
|
||||
a.replace_with(footnote_marker)
|
||||
footnote_counter += 1
|
||||
|
||||
# Handle <code> tags
|
||||
for code in soup.find_all('code'):
|
||||
if code.string:
|
||||
original_text = code.get_text()
|
||||
modified_text = '`' + original_text + '`'
|
||||
code.string.replace_with(modified_text)
|
||||
|
||||
# Handle <pre> tags
|
||||
for pre in soup.find_all('pre'):
|
||||
pre.insert_before('\n```\n') # Add Markdown code block start
|
||||
pre.insert_after('\n```\n') # Add Markdown code block end
|
||||
|
||||
# Convert <ul> and <li> to Markdown bullet points
|
||||
for ul in soup.find_all('ul'):
|
||||
for li in ul.find_all('li'):
|
||||
if li.string:
|
||||
original_text = li.get_text()
|
||||
modified_text = '- ' + original_text
|
||||
li.string.replace_with(modified_text)
|
||||
|
||||
# Get the text without HTML tags
|
||||
text = soup.get_text().strip().replace('#', '⋕')
|
||||
|
||||
# Combine text with footnotes
|
||||
return f"{text}\n\n" + "\n".join(footnotes) if footnotes else text
|
Loading…
Add table
Add a link
Reference in a new issue