diff --git a/README.rst b/README.rst index f891635..34fcdc1 100644 --- a/README.rst +++ b/README.rst @@ -23,9 +23,12 @@ Library Dependencies See `requirements.txt`. --------------------- +-------- Just try --------------------- +-------- + +Start server +------------ You don't need any special preparation to try to start server. Just execute below comands. @@ -46,6 +49,15 @@ If server start up successfully, browse below URL and check the converted result $ open http://localhost:8009/sample.md +Only Conversion +--------------- + +Additionally, You can use the conversion function alone. + +:: + + (.venv)$ convert source_md_file target_html_file + -------------- Do as you like -------------- diff --git a/markdownserver/__init__.py b/markdownserver/__init__.py index 9b1c531..660c239 100644 --- a/markdownserver/__init__.py +++ b/markdownserver/__init__.py @@ -1,5 +1,5 @@ from bottle import route,run,template,static_file -from md_to_html import MarkdownConverter +from markdown_converter import MarkdownConverter from env import * converter = MarkdownConverter() @@ -14,4 +14,4 @@ def main(): run(host=ms_host,port=ms_port,debug=ms_debug,reloader=ms_reloader) if __name__ == '__main__': - run(host=ms_host,port=ms_port,debug=ms_debug,reloader=ms_reloader) + main() diff --git a/markdownserver/md_to_html.py b/markdownserver/markdown_converter.py similarity index 72% rename from markdownserver/md_to_html.py rename to markdownserver/markdown_converter.py index 0de8f60..dc75849 100644 --- a/markdownserver/md_to_html.py +++ b/markdownserver/markdown_converter.py @@ -26,24 +26,31 @@ class MarkdownConverter(object): ''' - def convert(self,file_name): - code = md.markdown(self.read_md(file_name), extensions=[markdown_type]) - return self.write_html(file_name,code) + def convert(self,src,dst=""): + code = md.markdown(self.read_md(src), extensions=[markdown_type]) + return self.write_html(code,src,dst) def read_md(self,file_name): md_file = codecs.open(markdown_root + file_name,encoding=ms_encoding,mode='r') return md_file.read() - def write_html(self,file_name,body): + def write_html(self,body,file_name,dst): html_path = html_root + file_name + html_extension + + if dst != "": + html_path = dst + html_file = codecs.open(html_path,encoding=ms_encoding,mode='w') html_file.write(self.html_header + body + self.html_footer) return html_path -if __name__ == '__main__': +def main(): args = sys.argv - if len(args) == 1: - print('specify *.md file name from command line.') + if len(args) != 3: + print('usage: convert source_md_file target_html_file') else: converter = MarkdownConverter() - converter.convert(args[1]) + converter.convert(args[1],args[2]) + +if __name__ == '__main__': + main() diff --git a/markdownserver/resources/html/sample.md.html b/markdownserver/resources/html/sample.md.html index 4c07244..35876bb 100644 --- a/markdownserver/resources/html/sample.md.html +++ b/markdownserver/resources/html/sample.md.html @@ -871,9 +871,9 @@ body .markdown-body
-

PythonでMarkdownをHTML化

-

Github flavored Markdown で HTML化します。

-

使用したライブラリ

+

Convert Markdown to HTML with Python

+

Markdown-server is a simple web application. It converts markdown file to HTML and response by text/html.

+

Library Dependencies

@@ -886,26 +886,21 @@ body .markdown-body - + - + - - - - - - +
1 markdownMarkdown -> HTML 変換ライブラリConvert Markdown -> HTML
2 pygmentsシンタックスハイライト用Syntax highlighter
3 bottleWebアプリケーションフレームワーク
4codecsファイル読み書き用Web application framework
-

コードのシンタックスハイライト

+

Syntax Highlight

import markdown as md
 import codecs
 import sys
@@ -934,27 +929,34 @@ body .markdown-body
             </html>
             '''
 
-    def convert(self,file_name):
-        code = md.markdown(self.read_md(file_name), extensions=['gfm'])
-        return self.write_html(file_name,code)
+    def convert(self,src,dst=""):
+        code = md.markdown(self.read_md(src), extensions=[markdown_type])
+        return self.write_html(code,src,dst)
 
     def read_md(self,file_name):
         md_file = codecs.open(markdown_root + file_name,encoding=ms_encoding,mode='r')
         return md_file.read()
 
-    def write_html(self,file_name,body):
+    def write_html(self,body,file_name,dst):
         html_path = html_root + file_name + html_extension
+
+        if dst != "":
+            html_path = dst
+
         html_file = codecs.open(html_path,encoding=ms_encoding,mode='w')
         html_file.write(self.html_header + body + self.html_footer)
         return html_path
 
-if __name__ == '__main__':
+def main():
     args = sys.argv
-    if len(args) == 1:
-        print('specify *.md file name from command line.')
+    if len(args) != 3:
+        print('usage: convert source_md_file target_html_file')
     else:
         converter = MarkdownConverter()
-        converter.convert(args[1])
+        converter.convert(args[1],args[2])
+
+if __name__ == '__main__':
+    main()
 
diff --git a/markdownserver/resources/markdown/sample.md b/markdownserver/resources/markdown/sample.md index f9eba09..48d503f 100644 --- a/markdownserver/resources/markdown/sample.md +++ b/markdownserver/resources/markdown/sample.md @@ -1,18 +1,17 @@ -# PythonでMarkdownをHTML化 +# Convert Markdown to HTML with Python -Github flavored Markdown で HTML化します。 +**Markdown-server** is a simple web application. It converts markdown file to HTML and response by text/html. -## 使用したライブラリ +## Library Dependencies |No.|Name|Description| |:-|:-|:-| -|1|markdown|Markdown -> HTML 変換ライブラリ| -|2|pygments|シンタックスハイライト用| -|3|bottle|Webアプリケーションフレームワーク| -|4|codecs|ファイル読み書き用| +|1|markdown|Convert Markdown -> HTML| +|2|pygments|Syntax highlighter| +|3|bottle|Web application framework| -## コードのシンタックスハイライト +## Syntax Highlight ```python import markdown as md @@ -43,25 +42,33 @@ class MarkdownConverter(object): ''' - def convert(self,file_name): - code = md.markdown(self.read_md(file_name), extensions=['gfm']) - return self.write_html(file_name,code) + def convert(self,src,dst=""): + code = md.markdown(self.read_md(src), extensions=[markdown_type]) + return self.write_html(code,src,dst) def read_md(self,file_name): md_file = codecs.open(markdown_root + file_name,encoding=ms_encoding,mode='r') return md_file.read() - def write_html(self,file_name,body): + def write_html(self,body,file_name,dst): html_path = html_root + file_name + html_extension + + if dst != "": + html_path = dst + html_file = codecs.open(html_path,encoding=ms_encoding,mode='w') html_file.write(self.html_header + body + self.html_footer) return html_path -if __name__ == '__main__': +def main(): args = sys.argv - if len(args) == 1: - print('specify *.md file name from command line.') + if len(args) != 3: + print('usage: convert source_md_file target_html_file') else: converter = MarkdownConverter() - converter.convert(args[1]) + converter.convert(args[1],args[2]) + +if __name__ == '__main__': + main() + ``` diff --git a/setup.py b/setup.py index 8aa5e50..63e424c 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def read_file(filename): setup( name = 'markdown-server', - version = '0.1.0', + version = '0.1.1', description = 'A simple markdown server.', long_description = read_file('README.rst'), author = 'Masato Ohba', @@ -35,8 +35,10 @@ setup( 'Pygments', 'py-gfm', ], - entry_points = """ - [console_scripts] - mdsvr = markdownserver:main - """, + entry_points = { + 'console_scripts': [ + 'mdsvr = markdownserver:main', + 'convert = markdownserver.markdown_converter:main' + ] + }, )