|
17 | 17 | Image, |
18 | 18 | Platform, |
19 | 19 | ) |
| 20 | +from extension.utils.markdown_img_encoder import MarkdownImageEncoder |
20 | 21 | from logger import Logger |
21 | 22 | from utils import valid_semver |
22 | 23 |
|
@@ -74,6 +75,11 @@ async def fetch_readme(url: str) -> str: |
74 | 75 | raise Exception(f"Could not get readme, expected type to be text/plain but got {resp.content_type}") |
75 | 76 | return await resp.text() |
76 | 77 |
|
| 78 | + @staticmethod |
| 79 | + async def process_readme_md(readme: str, resources_url: str) -> str: |
| 80 | + encoder = MarkdownImageEncoder(readme, resources_url) |
| 81 | + return str(await encoder.get_processed_markdown()) |
| 82 | + |
77 | 83 | def __extract_images_from_tag(self, tag: Tag) -> List[Image]: |
78 | 84 | active_images = [ |
79 | 85 | image |
@@ -156,9 +162,14 @@ async def __create_version_from_tag_blob(self, version_tag: Tag, blob: Blob) -> |
156 | 162 |
|
157 | 163 | readme = labels.get("readme", None) |
158 | 164 | if readme is not None: |
159 | | - readme = readme.replace(r"{tag}", version_tag.name) |
| 165 | + url = readme.replace(r"{tag}", version_tag.name) |
160 | 166 | try: |
161 | | - readme = await Extension.fetch_readme(readme) |
| 167 | + readme = await Extension.fetch_readme(url) |
| 168 | + try: |
| 169 | + url = url.rsplit("/", 1)[0] |
| 170 | + readme = await Extension.process_readme_md(readme, url) |
| 171 | + except Exception as error: # pylint: disable=broad-except |
| 172 | + Logger.warning(self.identifier, str(error)) |
162 | 173 | except Exception as error: # pylint: disable=broad-except |
163 | 174 | Logger.warning(self.identifier, str(error)) |
164 | 175 | readme = str(error) |
|
0 commit comments