Erste Qiita ... alle ...
Ich werde über das Erstellen einer Webanwendung namens Markdown-> HTML-Konvertierung ** Markdown-Server ** sprechen. Quellcode: https://github.com/ohbarye/markdown-server
What is markdown-server? Es ist eine einfache Webanwendung, die einfach eine Markdown-Datei in HTML konvertiert und im Text- / HTML-Format antwortet. Die Standard-Markdown-Engine ist Markdown mit Github-Geschmack.
Ich schreibe persönliche Memos wie Verfahrenshandbücher und TODO in der Firma in Markdown (Ergänzung: Es ist eine Geschichte des Arbeitsplatzes, an dem ich bis 2015 gearbeitet habe), aber da es eine Firma ist, die Excel liebt, wenn es darum geht, es anderen zu zeigen, "Markdown" "Was?" Also fragte ich mich, ob es eine gute Möglichkeit gibt, es zu zeigen oder an Leute zu verteilen, die keinen Markdown-Editor haben.
Sie benötigen eine Python-Ausführungsumgebung. Die Entwicklungs- / Betriebsprüfung erfolgt in 2.7.9. Es ist nicht erforderlich, aber es ist schnell, wenn Sie "Git-Klon" können.
Der Server startet nur mit dem folgenden Befehl.
$ git clone https://github.com/ohbarye/markdown-server
$ cd markdown-server
$ pip install -r packages_requirements.txt
$ python start_server.py
Greifen Sie beim Starten des Servers auf die folgende Adresse zu und überprüfen Sie das Konvertierungsergebnis der Markdown-Beispieldatei.
$ open http://localhost:8009/sample.md
Eine Markdown-Datei wie diese
# Konvertieren Sie Markdown mit Python in HTML
Konvertieren Sie in HTML mit Markdown mit Github-Geschmack.
## Bibliothek verwendet
|No.|Name|Description|
|:-|:-|:-|
|1|markdown|Markdown ->HTML-Konvertierungsbibliothek|
|2|pygments|Für Syntax-Highlights|
|3|bottle|Webanwendungs-Framework|
## Highlights der Codesyntax
\```python
import markdown as md
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 read_md(self,file_name):
md_file = codecs.open(markdown_root + file_name,encoding=ms_encoding,mode='r')
return md_file.read()
\```
Es wird so gezeichnet.
Markdown-Server bietet Routing in der Form "http: // host / [Dateiname]" zu Markdown-Dateien in "resources / markdown / [Dateiname]".
Die konvertierten Dateien werden im Verzeichnis "resources / html" abgelegt. CSS ist auch in der generierten HTML-Datei enthalten, sodass die Verteilung einfach ist.
Umgebungsvariablen wie Hostname und Portnummer sind in "env.py" zusammengefasst. Sie können es nach Bedarf ändern.
env.py
ms_port = '8009'
ms_host = 'localhost'
env.py
css_name = 'github.css'
markdown_type = 'gfm'
Dies hängt hauptsächlich von den folgenden Bibliotheken ab. Informationen zur gesamten Sammlung, einschließlich der Bibliotheken, von denen sie abhängen, finden Sie im GitHub-Repository (https://github.com/ohbarye/markdown-server/blob/master/packages_requirements.txt).
No. | Name | Description |
---|---|---|
1 | markdown | Markdown ->HTML-Konvertierungsbibliothek |
2 | pygments | Für Syntax-Highlights |
3 | bottle | Webanwendungs-Framework |
markdown
Markdown-Konvertierungsbibliothek. Die meisten Funktionen dieses Servers sind die Funktionen dieses Servers. https://pypi.python.org/pypi/Markdown Qiita stellt in diesem Artikel auch die Verwendung vor. http://qiita.com/kimihiro_n/items/982c6fc0b3c7cf226799
Grundsätzlich können Sie damit konvertieren.
import markdown as md
md.markdown("# markdown text")
Wenn Sie das Markup-Format ändern möchten, geben Sie "Erweiterungen" an. Unten finden Sie ein Beispiel für Github Flavored Markdown.
import markdown as md
md.markdown("# markdown text", extensions=['gfm'])
Der obige Code allein lässt sich jedoch mit GFM nicht gut konvertieren. Ich war zu dieser Zeit besonders süchtig, aber es wird gesagt, dass sich das Verhalten der Markdown-Konvertierung ändert, je nachdem, ob die unten beschriebenen Pynements installiert sind oder nicht. (Ernsthaft)
pygments
Python-Syntax-Textmarker. http://pygments.org/ https://showa-yojyo.github.io/note/python-pygments.html
Die Beziehung zwischen der Bewegung von Abschriften und Abgaben wurde im folgenden Artikel zusammengefasst.
Die Syntax-Highlights funktionieren nicht. Als ich jedoch Markdown + py-gfm in MoinMoin in meinen letzten Eintrag aufgenommen habe, hatte es Syntax-Highlights. Warum?
Ich war neugierig und habe verschiedene Quellen gelesen, aber die Antwort ist, dass MoinMoin von Pygumenten abhängt. Die Markdown-Bibliothek verhält sich vor und nach der Installation von Pylements unterschiedlich. http://tototoshi.hatenablog.com/entry/2014/05/17/020241
Wie Sie der Quelle entnehmen können, habe ich diesmal nirgendwo "Pygamente importiert". Ich habe es gerade nur für GFM installiert.
bottle
Webanwendungs-Framework-Bibliothek. http://bottlepy.org/docs/dev/index.html
In Bezug auf Pythons Webanwendung FW wusste ich nur über ** Django ** Bescheid, aber es gibt viele andere.
Dieses Mal habe ich ** Flasche ** mit der höchsten Priorität auf "Leichtigkeit" gewählt. Der folgende Code wird vom Beamten so wie er ist abgerufen, aber es ist ein enorm leichtes Gefühl, dass Sie Hello World in 5 Zeilen ausführen können.
from bottle import route, run, template
@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
Dieses Mal verwende ich nicht einmal die Vorlagenfunktion, da ich nur auf das konvertierte HTML antworte. Die Methode zum Antworten auf statische Dateien lautet "static_file".
start_server.py
return static_file(html_file_name, root=ms_root)
Normalerweise verwende ich Java als Hauptsprache und schreibe selten Skriptsprachen, daher war es erfrischend. Paketverwaltung mit ** pip ** / Entwicklungsumgebungsverwaltung mit ** pyenv ** / Entwicklung ohne IDE (diesmal ** Atom **).
In meiner Python-Geschichte geht es übrigens um ** Codecademy **, an dem ich alle Python-Kurse in einer Woche teilgenommen habe. Ich dachte, es sei eine gute Sprache ohne Macken, leicht zu schreiben und ohne seltsame Sucht nach einfachen Skripten.
Ich hoffe, dass auch die Anzahl der Markdown-Benutzer im Unternehmen zunimmt.
Recommended Posts