mdproc 0.2.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
mdproc/mdimgupload.py CHANGED
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Markdown Image Uploader to COS
3
3
  """
4
+ import urllib.parse
4
5
  import httpx
5
6
 
6
7
  import argparse
@@ -17,6 +18,11 @@ from .cos_uploader import upload
17
18
 
18
19
  load_dotenv()
19
20
 
21
+ def get_img_filename(url):
22
+ url = urllib.parse.unquote(url)
23
+ # Remove query parameters and anchor in url
24
+ url = url.split('?', 1)[0].split('#', 1)[0]
25
+ return os.path.basename(url)
20
26
 
21
27
  def main():
22
28
  parser = argparse.ArgumentParser(
@@ -36,8 +42,8 @@ def main():
36
42
  os.makedirs(img_dir, exist_ok=True)
37
43
 
38
44
  # Regex to match img URLs in markdown image tags
39
- pattern = re.compile(r"!\[(.*?)\]\((https?://[^\s)]+?\.(?:png|jpg|jpeg))\)")
40
- # Find all img links match group 2
45
+ # url example: ![alt text](http://example.com/image.png?param=value#anchor)
46
+ pattern = re.compile(r"!\[(.*?)\]\((https?://[^\s)]+?\.(?:png|jpg|jpeg|gif)(?:\?[^\s)#]*)?(?:#[^\s)]*)?)\)")
41
47
  matches = list(pattern.finditer(content))
42
48
  print(f"Find {len(matches)} img links")
43
49
 
@@ -50,7 +56,7 @@ def main():
50
56
  print(f"Reusing img for {url} -> {img_path}")
51
57
  continue
52
58
  # Use a hash or basename for unique filename
53
- basename = os.path.basename(url)
59
+ basename = get_img_filename(url)
54
60
  name, ext = os.path.splitext(basename)
55
61
  # Use hash to avoid collision
56
62
  url_hash = hashlib.md5(url.encode("utf-8")).hexdigest()[:8]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdproc
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: A tool to process markdown files.
5
5
  Project-URL: Homepage, https://github.com/honghe/mdproc
6
6
  Project-URL: Repository, https://github.com/honghe/mdproc
@@ -0,0 +1,10 @@
1
+ mdproc/cos_uploader.py,sha256=iauaoiIaOGMpS9yT4YCmnLtLPU6pR3wKJOjElcheNlY,1407
2
+ mdproc/demo.md,sha256=FH3lwSQZyIlhjeokH4Kn0tx8PMZpVu9eSr0snY1tlgA,93
3
+ mdproc/demo_output.md,sha256=Uwfonxc6SZeChIEy54BO0CyeUWJfO-WCxx2oKrvK5Qg,126
4
+ mdproc/mdimgupload.py,sha256=usc9vTyUZar-73bXKeDOKd4zNzgk30MRtKeDtzL2-aY,3117
5
+ mdproc/mdproc.py,sha256=OXeLqVzaJnhrcIKmEULito7G8ZKj_d5GSxWjh90-c3E,63
6
+ mdproc-0.2.1.dist-info/METADATA,sha256=yFCx5VJpO4jR7i0M8MFJSRsZbFGVyRzKn7AHnTlNzCw,1600
7
+ mdproc-0.2.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8
+ mdproc-0.2.1.dist-info/entry_points.txt,sha256=h_F4bqOgpAHXfbIxFLJL8syo84-N-3z3T3Zf2LnG8R0,89
9
+ mdproc-0.2.1.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
10
+ mdproc-0.2.1.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- mdproc/cos_uploader.py,sha256=iauaoiIaOGMpS9yT4YCmnLtLPU6pR3wKJOjElcheNlY,1407
2
- mdproc/demo.md,sha256=FH3lwSQZyIlhjeokH4Kn0tx8PMZpVu9eSr0snY1tlgA,93
3
- mdproc/demo_output.md,sha256=Uwfonxc6SZeChIEy54BO0CyeUWJfO-WCxx2oKrvK5Qg,126
4
- mdproc/mdimgupload.py,sha256=GOST3cKRRLpCm_d3i92MwTXITOw2t8w1t3bGjbkDZ4A,2826
5
- mdproc/mdproc.py,sha256=OXeLqVzaJnhrcIKmEULito7G8ZKj_d5GSxWjh90-c3E,63
6
- mdproc-0.2.0.dist-info/METADATA,sha256=VHSdbretwGYKP2hXGkgsAvWQRq81bCViHWyqrHc6zN0,1600
7
- mdproc-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8
- mdproc-0.2.0.dist-info/entry_points.txt,sha256=h_F4bqOgpAHXfbIxFLJL8syo84-N-3z3T3Zf2LnG8R0,89
9
- mdproc-0.2.0.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
10
- mdproc-0.2.0.dist-info/RECORD,,
File without changes