Première Qiita ... tout le monde ...
Je parlerai de la création d'une application Web appelée Markdown-> HTML conversion ** markdown-server **. Code source: https://github.com/ohbarye/markdown-server
What is markdown-server? C'est une simple application Web qui convertit simplement un fichier Markdown en HTML et répond au format texte / html. Le moteur de Markdown par défaut est Markdown aromatisé à Github.
Dans l'entreprise, j'écris des notes personnelles telles que des manuels de procédures et TODO dans Markdown (ajout: c'est une histoire du lieu de travail où j'ai travaillé jusqu'en 2015), mais comme c'est une entreprise qui aime Excel, quand il s'agit de le montrer aux autres, "Markdown" "Quoi?" Je me suis donc demandé s'il y avait un bon moyen de le montrer ou de le distribuer à des personnes qui n'ont pas d'éditeur Markdown.
Vous avez besoin d'un environnement d'exécution python. Le contrôle du développement / fonctionnement est effectué en 2.7.9.
Ce n'est pas obligatoire, mais c'est rapide si vous pouvez git clone
.
Le serveur démarrera uniquement avec la commande suivante.
$ git clone https://github.com/ohbarye/markdown-server
$ cd markdown-server
$ pip install -r packages_requirements.txt
$ python start_server.py
Lorsque le serveur démarre, accédez à l'adresse suivante et vérifiez le résultat de la conversion de l'exemple de fichier Markdown.
$ open http://localhost:8009/sample.md
Un fichier Markdown comme celui-ci
# Convertir Markdown en HTML avec Python
Convertissez en HTML avec Markdown parfumé à Github.
## Bibliothèque utilisée
|No.|Name|Description|
|:-|:-|:-|
|1|markdown|Markdown ->Bibliothèque de conversion HTML|
|2|pygments|Pour les points forts de la syntaxe|
|3|bottle|Cadre d'application Web|
## Points forts de la syntaxe du code
\```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()
\```
Il sera dessiné comme ça.
markdown-server fournit un routage sous la forme http: // hôte / [nom_fichier]
vers les fichiers Markdown situés dans resources / markdown / [nom_fichier]
.
Les fichiers convertis seront placés dans le répertoire resources / html
. CSS est également inclus dans le fichier HTML généré, donc la distribution est facile.
Les variables d'environnement telles que le nom d'hôte et le numéro de port sont regroupées dans ʻenv.py`. Vous pouvez le modifier selon vos besoins.
env.py
ms_port = '8009'
ms_host = 'localhost'
env.py
css_name = 'github.css'
markdown_type = 'gfm'
Cela dépend principalement des bibliothèques suivantes. Consultez le référentiel GitHub (https://github.com/ohbarye/markdown-server/blob/master/packages_requirements.txt) pour toute la collection, y compris les bibliothèques dont ils dépendent.
No. | Name | Description |
---|---|---|
1 | markdown | Markdown ->Bibliothèque de conversion HTML |
2 | pygments | Pour les points forts de la syntaxe |
3 | bottle | Cadre d'application Web |
markdown
Bibliothèque de conversion Markdown. La plupart des fonctions de ce serveur sont les fonctions de celui-ci. https://pypi.python.org/pypi/Markdown Qiita présente également comment l'utiliser dans cet article. http://qiita.com/kimihiro_n/items/982c6fc0b3c7cf226799
Fondamentalement, vous pouvez convertir avec juste cela.
import markdown as md
md.markdown("# markdown text")
Si vous souhaitez changer le format de balisage, spécifiez «extensions». Voici un exemple de Github Flavored Markdown.
import markdown as md
md.markdown("# markdown text", extensions=['gfm'])
Cependant, le code ci-dessus seul ne se convertit pas bien avec GFM. J'étais particulièrement accro à cette époque, mais on dit que le comportement de la conversion de démarque change selon que les pygments décrits ci-dessous sont installés ou non. (Sérieusement)
pygments
Surligneur de syntaxe Python. http://pygments.org/ https://showa-yojyo.github.io/note/python-pygments.html
La relation entre le mouvement de démarque et les pygments a été résumée dans l'article suivant.
Les points forts de la syntaxe ne fonctionnent pas. Cependant, lorsque j'ai inclus Markdown + py-gfm dans MoinMoin dans ma dernière entrée, il y avait des points forts de la syntaxe. Pourquoi?
J'étais curieux à ce sujet et j'ai lu diverses sources, mais la réponse est que MoinMoin dépend des pygments. La bibliothèque Markdown se comporte différemment avant et après l'installation de pygments. http://tototoshi.hatenablog.com/entry/2014/05/17/020241
Comme vous pouvez le voir à partir de la source, cette fois je n'ai «importé de pygments» nulle part. Je viens de l'installer pour GFM uniquement.
bottle
Bibliothèque de cadres d'application Web. http://bottlepy.org/docs/dev/index.html
En parlant du logiciel d'application Web de Python, je ne connaissais que ** Django **, mais il y en a beaucoup d'autres.
Cette fois, j'ai choisi ** bouteille ** avec la priorité la plus élevée sur la "légèreté". Le code ci-dessous est tiré de l'officiel tel qu'il est, mais c'est un sentiment extrêmement léger que vous puissiez faire Hello world en 5 lignes.
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)
Cette fois, je n'utilise même pas la fonction de modèle car je ne réponds qu'au HTML converti. La méthode pour répondre aux fichiers statiques est «static_file».
start_server.py
return static_file(html_file_name, root=ms_root)
J'utilise habituellement Java comme langage principal et j'écris rarement des langages de script, donc c'était rafraîchissant. Gestion des packages avec ** pip ** / Gestion de l'environnement de développement avec ** pyenv ** / Développement sans IDE (** Atom ** cette fois).
Au fait, mon histoire Python concerne la ** codecademy **, pour laquelle j'ai suivi tous les cours Python en une semaine. Je pensais que c'était un bon langage sans bizarreries, facile à écrire et sans dépendance étrange à l'écriture de scripts simples.
J'espère que le nombre d'utilisateurs de Markdown augmentera également dans l'entreprise.
Recommended Posts