From fe181e95271927ca125bb8a58d8853691182cd73 Mon Sep 17 00:00:00 2001 From: shloktech Date: Wed, 1 Jan 2025 23:06:41 +0530 Subject: [PATCH 1/2] package refactoring and import rename --- build/lib/md2docx_python/__init__.py | 0 build/lib/md2docx_python/src/__init__.py | 1 - .../lib/md2docx_python/src/md2docx_python.py | 48 --------- dist/md2docx_python-python-0.1.0.tar.gz | Bin 4053 -> 0 bytes ...2docx_python_python-0.1.0-py3-none-any.whl | Bin 5367 -> 0 bytes .../src/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 151 bytes .../__pycache__/md2docx_python.cpython-39.pyc | Bin 0 -> 1145 bytes md2docx_python/src/md2docx_python.py | 5 - md2docx_python_python.egg-info/PKG-INFO | 99 ------------------ md2docx_python_python.egg-info/SOURCES.txt | 9 -- .../dependency_links.txt | 1 - md2docx_python_python.egg-info/requires.txt | 3 - md2docx_python_python.egg-info/top_level.txt | 1 - run.py | 6 +- sample_files/amazon_case_study.docx | Bin 38547 -> 38547 bytes 15 files changed, 3 insertions(+), 170 deletions(-) delete mode 100644 build/lib/md2docx_python/__init__.py delete mode 100644 build/lib/md2docx_python/src/__init__.py delete mode 100644 build/lib/md2docx_python/src/md2docx_python.py delete mode 100644 dist/md2docx_python-python-0.1.0.tar.gz delete mode 100644 dist/md2docx_python_python-0.1.0-py3-none-any.whl create mode 100644 md2docx_python/src/__pycache__/__init__.cpython-39.pyc create mode 100644 md2docx_python/src/__pycache__/md2docx_python.cpython-39.pyc delete mode 100644 md2docx_python_python.egg-info/PKG-INFO delete mode 100644 md2docx_python_python.egg-info/SOURCES.txt delete mode 100644 md2docx_python_python.egg-info/dependency_links.txt delete mode 100644 md2docx_python_python.egg-info/requires.txt delete mode 100644 md2docx_python_python.egg-info/top_level.txt diff --git a/build/lib/md2docx_python/__init__.py b/build/lib/md2docx_python/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/build/lib/md2docx_python/src/__init__.py b/build/lib/md2docx_python/src/__init__.py deleted file mode 100644 index e8c07b0..0000000 --- a/build/lib/md2docx_python/src/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# This file marks the `src` directory as a Python package. \ No newline at end of file diff --git a/build/lib/md2docx_python/src/md2docx_python.py b/build/lib/md2docx_python/src/md2docx_python.py deleted file mode 100644 index f38ba3d..0000000 --- a/build/lib/md2docx_python/src/md2docx_python.py +++ /dev/null @@ -1,48 +0,0 @@ -import markdown -from docx import Document -from bs4 import BeautifulSoup - -def markdown_to_word(markdown_file, word_file): - # Reading the Markdown file - with open(markdown_file, 'r', encoding='utf-8') as file: - markdown_content = file.read() - - # Converting Markdown to HTML - html_content = markdown.markdown(markdown_content) - - # Creating a new Word Document - doc = Document() - - # Converting HTML to text and add it to the Word Document - soup = BeautifulSoup(html_content, 'html.parser') - - # Adding content to the Word Document - for element in soup: - if element.name == 'h1': - doc.add_heading(element.text, level=1) - elif element.name == 'h2': - doc.add_heading(element.text, level=2) - elif element.name == 'h3': - doc.add_heading(element.text, level=3) - elif element.name == 'p': - paragraph = doc.add_paragraph() - for child in element.children: - if child.name == 'strong': - paragraph.add_run(child.text).bold = True - elif child.name == 'em': - paragraph.add_run(child.text).italic = True - else: - paragraph.add_run(child) - elif element.name == 'ul': - for li in element.find_all('li'): - doc.add_paragraph(li.text, style='List Bullet') - elif element.name == 'ol': - for li in element.find_all('li'): - doc.add_paragraph(li.text, style='List Number') - - doc.save(word_file) - -markdown_file = input("Enter the path to the Markdown file (e.g., README.md): ") -word_file = input("Enter the path for the output Word file (e.g., README.docx): ") - -markdown_to_word(markdown_file, word_file) diff --git a/dist/md2docx_python-python-0.1.0.tar.gz b/dist/md2docx_python-python-0.1.0.tar.gz deleted file mode 100644 index 718e0b027eceb1c88b3218a8990f0248bac6ca22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4053 zcma)8WmlAq0)(ZJ6p&PuR-{Y15s?t2q(QotZd@8&ND2Z}dQ5yZVGCfC6qpo|3aQrQ zKE|C%scN-s4vxOqJ?_%M0$kWG>o{OZ zxpl4>?`Y&0_*({uC!@PAk0fro(1+k7z}RWxu=*0>B)rpUqw{ZAH)iX>9OBse6CZOd zNfoB4<;h|2Ln_m9Z+D}687yM+6}ctK-D#Kjva3H!7%k(qpC9;s4muDfuT?8jUvoG5 z%>w)R@SJG9aNx5p9FgfFnUv~Ah0z_=d^$6g5i;f}H7iz=iaI<#rxdI749_6aZ?tM2?uS95pF3%i=Sp4#YdBrX&n*b zXg08C13pyQdn4n$$oKoTm}2{{UKqxq-JA~-Pp^%&D|}NNlc;!U*kzJLC<6QK$og+|Jas_Jh9!6zlqq zM@%J(8b2-!owLG}R0eEwU5V+0eWgwFZU@Fi@y-Aj3q~cZmE5i!zV-KgniOJd(Ro z$c<6_c**p>z9QL#GLvMf^z$_=2G?&sfgQ0mAM2QFhZ84NV823#H}TuFFQ+Dii{Z*I{a$`4 z?_tX)y&-Og&d3Khun6^s@#YEDJ|m}{tUt{xUgkUvr}T~WUHvsbP|R+X&xRj@VG|y> z{2?kWs*URmzPH8zl(DQxSMVm-mI z0QO8&)FkRiDz#!ooHAf7HWYqadwpZ?QspXmWBxp-^KDY?`z{(mTwcpKN6CZxc(S35JKxmW^U3FX;}2w8%rlx2@DNiK=p_=a6efng|E@n64wock0!hIQol%ujub(im`m)a| z2Zw{AQ%VmSk8U*_p&As-Yw4t(^6%{H88e>n!Syo5aJD=g#>F3rjxV9iKAB0pN>wX< z#&HPKty7-7xQF||{r z@;IxHx3qw?2M-Z8Rzqu6P=1Fl1td(|^wKNX)~kR}7n%@J>`oiu-i1HO!Q!OJsz!b* zLRuu;nv>cb?agif%LblqY$}=1pfPawffZAqP>fOYQLQ)y(HPCs*}rQEtUGqac_G9r zjk})4WBNSPX@hCgZO8XGpN)hmE#KYxjzmvb{57!TF;aVF>3_wIdJ~e&VKo%W{n1>m zJ2rh(aP@PHDRB@-*+c&kjTw(GY)ikxw$q}FNJK+iyUhyb+WWt&1rQB-#kIY%x7$uV zG;$MZX=CFViMErsFxfXs^|<*LzmH)%i$g=UB`&D zpC+uc1QaW|rwI+0Htz)p#f$H7C$sF6w%l+jA|psx5$A`M>v0i7-)d zI(ARtBgl2L3$-=et3j~Y&HkO^{s9K^`$4S+1VXWfiPlA-nQ_F>-nKpkPVy4TJ;BqN z;1=A^SKW=$T^;YM_~@spb*F16rG~C2>}w3vc?{nPx9w+*TADDrc67{7<-y3(kT6>r z7;oGAb%j77%JtzUiDB6!RJt8aOCO;^bk);O_&Qb9%R0h-(3@Q7cMCijrFT{F>&?M= zNfFUZ;Eg+E8z)y!SGz!nv6J$o9$jtxi?4$X*77MO=6Js(NL_z(J$6ChYeq;%(w3{o zITzBDkyQ9_3qBA&$rcCyBp4#>epT=z%W!V7K5GHD72Na%&JvC1YNu*@X}e&r|K6LO zk@aC@C8g$viyNCBbD=sKq1Djd@Xt&QY})qD9t?@z*>N>Vf;5OdZGnd5kg>x0H!H}_ zHGDdXmnJJ;Xn2bZnX{rawwQli>-%Nds{Lu;ZAJL6FU4$1DJjGuae3svoOo)HH!G?{ z-GN&#h>kqjHh*6|J(7sNnU67lP~k>XbDWQej_!rkzRrJpLZ_tk4w$~C&PRid6c%!b zDr~`%Y;_PS*)e_ub(fFHKMMdRl^ENuesL90Z>E0^-**b-YNtiFk1T~zW}hO0~Z|v3xM9G;%@#4qzFs~ zus0LK#Q^rE1RUD)oDYDoEVNLUjI67MDSh-v!M9Aw;`I*I|2*PdMm^pd)4zz^VC;Q_ zF2w2`=dUSFia~+afOtqO7QI`823(>=TKI5^MDqf3?rl;w*=qP=;4AyG6OW4d@(+7k zPUPl>txwDu^t2h}ll;Vcmvozd;E#yxIg)(7Y)`{zp(R+|IAFK}cDCj16|d7W#~{VBTE{Q*ar)*f-HB4&DvgGR z5j9juC5n_SbAm4vzcO8_p7nH8mauPjh>CeN;~e!)y9?8Cjgc!wkHK#H_m>2%PC&>_ z)u+ib0Z_)AaJ1NNDBl?Z?E8>*wFkqf6G`A3Alv$QG~wPI33$*I+IJasQ^^YtUc!-F4XNvlP2=7XXv4}uu)z?K^ClJ&vNt) zpgayNj4Hb+jRQM4_FbU-5O{=}zE$i6LRSFfaI`!eXVS5BAij%3zn%!+gGhYCG0p%* zSJs9=!X8BbR;U6{KkNGc#hptbd4T(BIUmRi$NoJ&+MxiO;y#;oo_zlNWw4Is71?+kV_eNg{Z|HgQYT^08X6M+#cV9 zteosXSv(9-^l!CyuAzVf-t{*u+P!6V4Z_$OqkjVdahO1s)&A}M4+s=Uc@I=3lqfdi zzyWj1fLox902I(G1`bNS931$SOW?1QCnEmqRHFyj{R#e#VbNw?0D3oogdWJZ0yePp z01$`OJ5$7UVy(@9V#OUQ8A9T5IULHV@6X>gek{Pa4gpu=d@E6I2Dbyeh53(QthO>2 z`^M_036or3O7n7VH&+$r9=X}=K0RT80!=tzc@8iHveqCXIK{uUNcm^D)*R$)$ju?e z&Y_|lSyuL##v~S`g(I(#H*hLVbv`FyH#EkRF|&xNb;?nJ!PDL~-MG=J`u4BV#pX+# z5{%hVPA?21GUQn>nLfG0Q)632Xb$FC&odLJnIHQbGcX;7{KmlC`lmgE=AJPF2IKtx zd7}u|bAt^hQvv@7*Cne|ECJO151^TD O*-bz^czA<&c>e)Y6f(a6 diff --git a/dist/md2docx_python_python-0.1.0-py3-none-any.whl b/dist/md2docx_python_python-0.1.0-py3-none-any.whl deleted file mode 100644 index 640b0863de83f0c012064ccc575c18f3b3bbbf6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5367 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 Jnfe)s833onB_RL+ literal 0 HcmV?d00001 diff --git a/md2docx_python/src/__pycache__/md2docx_python.cpython-39.pyc b/md2docx_python/src/__pycache__/md2docx_python.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d7cbb2fbee9c6054c056d0e6ce6a9efae740a6bd GIT binary patch literal 1145 zcmZux&2AGh5VpO)+59vV8aQ&Q6p13*B7_h^RU2-oLTV+1)hgP?PO`0cH}!h^r_HHc zD=MBKIdb7S`V4zTLdq*}V!Ta4i|}g3GycXi->kjsSF0X^v7V*9_clU5wR3k6a5g}a zXP_8jSRkrrB5+73!P+*25t`Hl+ho=kL@kDQP}82k4z%6Gx!a06X~-i5c6F2csS3KO z*oo6YN2i~SG8it%7D$p|gcQo4AS2AUGQK_;l8lV-7!8e2P}GFy(!eOHuL8Fh2p7+1 z(29&mW{mOBRK_J5TFT5!W?qt^o!KpPjrSWvCvy%hW*rfEl39l~cn-6fa|P`j?-rN~ z*ta=Wx`%my{g`9rdsyX&Tw__!tdR>$UC32xq5amdl$D@j6?Xn&waguP;5%d7E+5|% z$U?D?+`}q>6_H~Myl$q<>P6&6=8UTB!5BmK#?S*cZstK3i|nE9;u;?>Pvaj!P3Y;r z(M$8_U5K_uwG8W848id=wsR~mtWgi@G1c#eJtwfy*PDw1L z$aWeYaM@hQ&3M40+?3pBxf}ZOh{dOo)J0@bz>NHm)3VQ4yALryGB*`JQ?#m=fT`b; z{-96YPCpP#@`ySbkZDBCgIF+X2g(;ghq~P$Vr^dtY9{^(Z32xw`}D7S7I>6`x@$t9S6Z*INW`zT{z z9EQ-zUdYxU$Jxr@T=nB<=C-G9B0K*qJs+Ise_5%xttnfOIe7&Nkvd*BJi`X@u!k4t zQo%0R9|Bh-vbnd=3.9.0 -Description-Content-Type: text/markdown diff --git a/md2docx_python_python.egg-info/SOURCES.txt b/md2docx_python_python.egg-info/SOURCES.txt deleted file mode 100644 index 75fc60a..0000000 --- a/md2docx_python_python.egg-info/SOURCES.txt +++ /dev/null @@ -1,9 +0,0 @@ -setup.py -md2docx_python/__init__.py -md2docx_python/src/__init__.py -md2docx_python/src/md2docx_python.py -md2docx_python_python.egg-info/PKG-INFO -md2docx_python_python.egg-info/SOURCES.txt -md2docx_python_python.egg-info/dependency_links.txt -md2docx_python_python.egg-info/requires.txt -md2docx_python_python.egg-info/top_level.txt \ No newline at end of file diff --git a/md2docx_python_python.egg-info/dependency_links.txt b/md2docx_python_python.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/md2docx_python_python.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/md2docx_python_python.egg-info/requires.txt b/md2docx_python_python.egg-info/requires.txt deleted file mode 100644 index 8346960..0000000 --- a/md2docx_python_python.egg-info/requires.txt +++ /dev/null @@ -1,3 +0,0 @@ -markdown -python-docx -beautifulsoup4 diff --git a/md2docx_python_python.egg-info/top_level.txt b/md2docx_python_python.egg-info/top_level.txt deleted file mode 100644 index d204e3c..0000000 --- a/md2docx_python_python.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -md2docx_python diff --git a/run.py b/run.py index 8b33d06..6c03612 100644 --- a/run.py +++ b/run.py @@ -1,6 +1,6 @@ -from md2docx_python import markdown_to_word +from md2docx_python.src.md2docx_python import markdown_to_word -markdown_file = "md2docx_python-python\sample_files\amazon_case_study.docx" -word_file = "md2docx_python-python\sample_files\amazon_case_study2.md" +markdown_file = "sample_files/amazon_case_study.md" +word_file = "sample_files/amazon_case_study.docx" markdown_to_word(markdown_file, word_file) \ No newline at end of file diff --git a/sample_files/amazon_case_study.docx b/sample_files/amazon_case_study.docx index 082535fe7183ed0c9fb971c5478bffa20276a296..84b5fadbdfaeb414ff622233a4ba10d4d5ce2226 100644 GIT binary patch delta 336 zcmbQdmTB@@CcXe~W)=|!1_lm>H9HieHu4=}WC1ZYUtyGmvc57+fwFp8M42G6%h(=q zLRdWl8Bp0Df^+mCVly0bO(87K@>k3d*7qtss5;G>eyAyX>b|mpWhZZKy#itMwta=D zZ)+EZs-N329cqR}&j(hBGM!1b5Jv7Kh)t81O|piFJe_0(VJJ_AiX=^TgNUq|Yzbk! xoa_Q&7*2tzDVSmh5!p1w2EzC>#U8>ioeH(9Y^n!DJA1h!H}V}~WC1ZYUtyGmvc57+fwFp8M42G6%h(=q zLRdWl8Bp0Df^+mCVly0bO(87K@>k3d*7qtss5;G>eyAyX>b|mpWhZZKy#itMwta=D zZ)+EZs-N329cqR}&j(hBGM!1b5Jv7Kh)t81O|piFJe_0(VJJ_AiX=^TgNUq|Yzbk! xoa_Q&7*2tzDVSmh5!p1w2EzC>#U8>ioeH(9Y^n!D Date: Wed, 1 Jan 2025 23:08:36 +0530 Subject: [PATCH 2/2] Package rename and import refactoring --- build/lib/md2docx_python/__init__.py | 0 build/lib/md2docx_python/src/__init__.py | 1 + .../lib/md2docx_python/src/md2docx_python.py | 43 ++++++++ dist/md2docx_python-python-0.1.0.tar.gz | Bin 0 -> 4028 bytes ...2docx_python_python-0.1.0-py3-none-any.whl | Bin 0 -> 5293 bytes md2docx_python_python.egg-info/PKG-INFO | 99 ++++++++++++++++++ md2docx_python_python.egg-info/SOURCES.txt | 9 ++ .../dependency_links.txt | 1 + md2docx_python_python.egg-info/requires.txt | 3 + md2docx_python_python.egg-info/top_level.txt | 1 + sample_files/amazon_case_study.docx | Bin 38547 -> 38547 bytes 11 files changed, 157 insertions(+) create mode 100644 build/lib/md2docx_python/__init__.py create mode 100644 build/lib/md2docx_python/src/__init__.py create mode 100644 build/lib/md2docx_python/src/md2docx_python.py create mode 100644 dist/md2docx_python-python-0.1.0.tar.gz create mode 100644 dist/md2docx_python_python-0.1.0-py3-none-any.whl create mode 100644 md2docx_python_python.egg-info/PKG-INFO create mode 100644 md2docx_python_python.egg-info/SOURCES.txt create mode 100644 md2docx_python_python.egg-info/dependency_links.txt create mode 100644 md2docx_python_python.egg-info/requires.txt create mode 100644 md2docx_python_python.egg-info/top_level.txt diff --git a/build/lib/md2docx_python/__init__.py b/build/lib/md2docx_python/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib/md2docx_python/src/__init__.py b/build/lib/md2docx_python/src/__init__.py new file mode 100644 index 0000000..e8c07b0 --- /dev/null +++ b/build/lib/md2docx_python/src/__init__.py @@ -0,0 +1 @@ +# This file marks the `src` directory as a Python package. \ No newline at end of file diff --git a/build/lib/md2docx_python/src/md2docx_python.py b/build/lib/md2docx_python/src/md2docx_python.py new file mode 100644 index 0000000..0f3cb21 --- /dev/null +++ b/build/lib/md2docx_python/src/md2docx_python.py @@ -0,0 +1,43 @@ +import markdown +from docx import Document +from bs4 import BeautifulSoup + +def markdown_to_word(markdown_file, word_file): + # Reading the Markdown file + with open(markdown_file, 'r', encoding='utf-8') as file: + markdown_content = file.read() + + # Converting Markdown to HTML + html_content = markdown.markdown(markdown_content) + + # Creating a new Word Document + doc = Document() + + # Converting HTML to text and add it to the Word Document + soup = BeautifulSoup(html_content, 'html.parser') + + # Adding content to the Word Document + for element in soup: + if element.name == 'h1': + doc.add_heading(element.text, level=1) + elif element.name == 'h2': + doc.add_heading(element.text, level=2) + elif element.name == 'h3': + doc.add_heading(element.text, level=3) + elif element.name == 'p': + paragraph = doc.add_paragraph() + for child in element.children: + if child.name == 'strong': + paragraph.add_run(child.text).bold = True + elif child.name == 'em': + paragraph.add_run(child.text).italic = True + else: + paragraph.add_run(child) + elif element.name == 'ul': + for li in element.find_all('li'): + doc.add_paragraph(li.text, style='List Bullet') + elif element.name == 'ol': + for li in element.find_all('li'): + doc.add_paragraph(li.text, style='List Number') + + doc.save(word_file) diff --git a/dist/md2docx_python-python-0.1.0.tar.gz b/dist/md2docx_python-python-0.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..351bd7119608b011479f87112ceab53105e6e204 GIT binary patch literal 4028 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 literal 0 HcmV?d00001 diff --git a/md2docx_python_python.egg-info/PKG-INFO b/md2docx_python_python.egg-info/PKG-INFO new file mode 100644 index 0000000..f07a707 --- /dev/null +++ b/md2docx_python_python.egg-info/PKG-INFO @@ -0,0 +1,99 @@ +Metadata-Version: 2.1 +Name: md2docx-python-python +Version: 0.1.0 +Summary: Markdown to Word Converter. + Simple and straight forward Python utility + that converts a Markdown file (`.md`) to a Microsoft + Word document (`.docx`). It supports basic Markdown + elements, including headings, bold and italic text, + and both unordered and ordered lists. +Home-page: https://github.com/shloktech/md2docx-python +Author: Shlok Tadilkar +Author-email: shloktadilkar@gmail.com +License: MIT +Description: # Markdown to Word Converter + + ## Overview + + Simple and straight forward Python utility that converts a Markdown file (`.md`) to a Microsoft Word document (`.docx`). It supports basic Markdown elements, including headings, bold and italic text, and both unordered and ordered lists. + + #### Input .md file: + ![image](https://github.com/user-attachments/assets/c2325e52-05a7-4e11-8f28-4eeb3d8c06f5) + + #### Output .docx file: + ![image](https://github.com/user-attachments/assets/3e48a9dd-8fe3-43cc-8246-164c58e95179) + + + ## Features + + - Converts Markdown headers (`#`, `##`, `###`) to Word document headings. + - Supports bold and italic text formatting. + - Converts unordered (`*`, `-`) and ordered (`1.`, `2.`) lists. + - Handles paragraphs with mixed content. + + ## Prerequisites + + You need to have Python installed on your system along with the following libraries: + + - `markdown` for converting Markdown to HTML. + - `python-docx` for creating and editing Word documents. + - `beautifulsoup4` for parsing HTML. + + You can install the required libraries using pip: + + ```bash + pip install -r requirements.txt + ``` + + To run the sample files follow the below steps: + + ```bash + python md2docx_python.py + Enter the path to the Markdown file (e.g., README.md): ..\sample_files\amazon_case_study.md + Enter the path for the output Word file (e.g., README.docx): ..\sample_files\amazon_case_study.docx + ``` + + ## Why this repo and not others ? + + Here are some reasons why this repo might be considered better or more suitable for certain use cases compared to other scripts available on the internet: + + ### 1. **Comprehensive Markdown Support** + - **Header Levels**: The script supports multiple header levels (`h1`, `h2`, `h3`), which is important for properly structuring the document. + - **Bold and Italic Text**: It handles bold (`**`) and italic (`*`) text, providing more accurate formatting in the Word document. + + ### 2. **Proper List Formatting** + - **Unordered and Ordered Lists**: The script correctly formats both unordered (`*`, `-`) and ordered lists (`1.`, `2.`) in the Word document. This ensures that lists appear as expected without additional line breaks or formatting issues. + + ### 3. **Use of Well-Supported Libraries** + - **Markdown to HTML Conversion**: Utilizes the `markdown` library, which is a widely used and reliable tool for converting Markdown to HTML. + - **HTML Parsing and Word Document Creation**: Employs `BeautifulSoup` for parsing HTML and `python-docx` for creating Word documents, both of which are robust and well-maintained libraries. + + ### 4. **Simplicity and Readability** + - **Clear Code Structure**: The script is designed to be straightforward and easy to understand, making it accessible for users who may want to customize or extend it. + - **Basic Markdown Elements**: Focuses on the most commonly used Markdown elements, ensuring compatibility with a wide range of Markdown files without unnecessary complexity. + + ### 5. **Customizability** + - **Easy to Modify**: Users can easily adjust the script to handle additional Markdown features or customize the output format based on their specific needs. + - **Example Usage**: Provides a clear example of how to use the script, making it easy for users to adapt it for their own files. + + ### 6. **Minimal Dependencies** + - **Lightweight and Focused**: The script relies on only a few libraries, which reduces potential conflicts and keeps the script lightweight. + + ### 7. **Handles Basic HTML Tags** + - **Text Formatting**: Properly handles bold and italic text by interpreting HTML tags (`strong`, `em`), ensuring that formatting is preserved when converting to Word. + + ### 8. **Privacy** + - If you are working in a corporate firm and you want to convert your markdown files to word and you use a online tool to do it then there are chances that they will store your file which can cause to a vital information leak of your company. With use of this repo you can easily do the conversion in your own system. + + ### Comparison to Other Scripts + - **Feature Set**: Some scripts may lack comprehensive support for Markdown features or may not handle lists and text formatting well. + - **Performance**: Depending on the implementation, performance might vary. This script is designed to be efficient for typical Markdown files. + - **User-Friendliness**: The clear and concise code in this script may make it more user-friendly and easier to modify compared to more complex alternatives. + + Overall, this script provides a balanced combination of functionality, simplicity, and ease of use, which can be advantageous for many users looking to convert Markdown files to Word documents. + + For any queries please start a discussion I will be happy to answer your queries :) + +Platform: UNKNOWN +Requires-Python: >=3.9.0 +Description-Content-Type: text/markdown diff --git a/md2docx_python_python.egg-info/SOURCES.txt b/md2docx_python_python.egg-info/SOURCES.txt new file mode 100644 index 0000000..75fc60a --- /dev/null +++ b/md2docx_python_python.egg-info/SOURCES.txt @@ -0,0 +1,9 @@ +setup.py +md2docx_python/__init__.py +md2docx_python/src/__init__.py +md2docx_python/src/md2docx_python.py +md2docx_python_python.egg-info/PKG-INFO +md2docx_python_python.egg-info/SOURCES.txt +md2docx_python_python.egg-info/dependency_links.txt +md2docx_python_python.egg-info/requires.txt +md2docx_python_python.egg-info/top_level.txt \ No newline at end of file diff --git a/md2docx_python_python.egg-info/dependency_links.txt b/md2docx_python_python.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/md2docx_python_python.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/md2docx_python_python.egg-info/requires.txt b/md2docx_python_python.egg-info/requires.txt new file mode 100644 index 0000000..8346960 --- /dev/null +++ b/md2docx_python_python.egg-info/requires.txt @@ -0,0 +1,3 @@ +markdown +python-docx +beautifulsoup4 diff --git a/md2docx_python_python.egg-info/top_level.txt b/md2docx_python_python.egg-info/top_level.txt new file mode 100644 index 0000000..d204e3c --- /dev/null +++ b/md2docx_python_python.egg-info/top_level.txt @@ -0,0 +1 @@ +md2docx_python diff --git a/sample_files/amazon_case_study.docx b/sample_files/amazon_case_study.docx index 84b5fadbdfaeb414ff622233a4ba10d4d5ce2226..1e0b09be63e0fceb0e514c102a6d93b6d4645706 100644 GIT binary patch delta 238 zcmbQdmTB@@Chh=lW)=|!1_lm>PaC<9GBSSJe34NBM15kK4x+kPB$$BIVz#H8K&n$9 z8zlHuaK1i}n(A0!3Z&S|-!cQKFI9#hIklQeAPqa~ey}lqn!Ks?I*{yY`vDYcZWjY7 znAI^0q};UUGb>O^bCLs)yvQg#xptB&khOS{9guu9$reZ|Oa`&zCwl_Pm6L6N}{ tKvHiCNIZ9nBamD_#U4n$pW*~0ji!RkDxT^MB==8s1(K}OK(emW`~bjCX|DhP delta 238 zcmbQdmTB@@Chh=lW)=|!1_lm>H5<8)GBU2&e34NBM15kK4x+kPB$$BIVz#H8K&n$9 z8zlHuaK1i}n(A0!3Z&S|-!cQKFI9#hIklQeAPqa~ey}mFnY^j>I*{yY`vDYcZWjY7 znAI^0q};UUGb>O^bCLs)yvQg#xptB&khOS{9guu9$reZ|Oa`&zCwl_Pm6L6N}{ tKvHiCNIZ9nBamD_#U4n$pW*~0ji!RkDxT^MB==8s1(K}OK(emW`~bo{U}FFP