Was ist der beste Weg, dies zu tun literate programming in Python auf Windows?
Spiele ich schon mit verschiedenen Möglichkeiten literate programming in Python. Ich mag noweb
, aber ich habe zwei wesentliche Probleme: Erstens ist es schwer zu bauen, die auf Windows, wo ich verbringe ungefähr die Hälfte meiner Entwicklung Zeit, und zweitens, es verlangt von mir, den Einzug jedes Stück code, wie es in der endgültigen Programm --- was ich nicht unbedingt wissen, wenn ich es schreiben. Ich will nicht Leo, da bin ich sehr an Emacs.
Ist es eine gute literate programming tool:
- Läuft auf Windows
- Mir erlaubt, zu legen Sie die Einkerbung an den Klötzen, wenn Sie verwendet werden, nicht, wenn Sie geschrieben
- Weiterhin ermöglicht mir die Arbeit im Emacs
Dank!
Korrektur: noweb
hat erlauben Sie mir zum Einzug später --- habe ich falsch verstanden, das Papier, das ich gefunden.
Standardmäßig
notangle
bewahrt Leerzeichen und hält Einzug beim ausbau von Abschnitten. Es lässt sich daher mit Sprachen wie Miranda und Haskell, in dem Einzug erhebliche
Lässt mich nur mit dem "Läuft unter Windows" - problem.
- Ich denke Punkt zwei ist nie leicht zu lösen: die Einrückung ist der Schlüssel, um die Sprache Python so meine Vermutung, wird man nie lösen, dass man.
- Eigentlich ist es relativ einfach zu beheben, die indendentation, wenn emittierende die Letzte Quelle unterscheidet sich von der ' literate programming-Dokument. So lange, wie Sie Ihre LP Sprache legt Sie einige rationaler Regeln, auf welche Art von Python-Anweisung Suiten werden mit der Arbeit.
- Offenbar jemand umgesetzt hat, die
python
äquivalent:noweb.py
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich dieses:
http://sourceforge.net/projects/pywebtool/
Erhalten Sie eine beliebige Anzahl von web - /flechten-Produkte, die helfen, erstellen Sie ein Dokument und code in einem Schlag.
Können Sie-ziemlich leicht-schreiben Sie Ihre eigene. Es ist nicht Rakete Wissenschaft zu reißen, den Python-code-Blöcke aus der ERSTEN Quelle und montieren es. In der Tat, schlage ich vor, Sie schreiben Ihre eigenen Docutils-Richtlinien montieren Sie den Python-code aus einem ERSTEN source-Dokument.
Führen Sie den ERSTEN durch docutils rst2html (oder Sphinx) zu produzieren, um Ihre endgültige HTML-Bericht.
Führen Sie Ihr eigenes Werkzeug auf der gleichen ERSTEN Quelle zum extrahieren der Python-code-Blöcke und fertigen Modulen.
Ich geschrieben habe Pweave http://mpastell.com/pweave, dass ausgerichtet ist für die dynamische Generierung von berichten und Verwendungen, von noweb-syntax. Es ist eine Reine python-Skript, so dass es auch auf Windows läuft. Es behebt nicht dein Gedankenstrich problem, aber vielleicht kannst du es ändern, der code ist wirklich ganz einfach.
Den de-facto-standard in der Gemeinschaft ist IPython notebooks.
Hervorragendes Beispiel, in dem Peter Norvig zeigt algorithmen zur Lösung des Travelling Salesman Problem: http://nbviewer.ipython.org/url/norvig.com/ipython/TSPv3.ipynb
Mehr Beispiele aufgeführt https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks
Den Sie verwenden konnten, org-mode und babel-Gewirr.
Funktioniert das ganz gut, da kann man geben :noweb-ref source-Blöcke.
Hier ein minimal-Beispiel: Aktivieren org-babel-tangle, dann setzen Sie diese in die Datei
noweb-test.org
:Können Sie auch Eigenschaften von Schlagzeilen für die Angabe der noweb-ref. Es kann dann sogar automatisch verketten Sie mehrere Quell-Blöcke in einer noweb-Referenz.
Hinzufügen
:results output
zu den#+begin_src
Zeile des zweiten Blocks, um zu sehen, das Druckergebnis unter diesem block, wenn Sie TrefferC-c C-c
im block.Finden Sie vielleicht noweb 3 einfacher zu bauen, auf Windows. Es wurde entwickelt, um mehr portable als standard-noweb.
Siehe auch meine Letzte LP-tool: http://code.google.com/p/nano-lp. Es nicht erfordert spezielle input-format, unterstützt Markdown/MultiMarkdown, reStructuredText, OpenOffice/LibreOffice, Creole, TeX/LaTeX und hat einen super leichten und sauberen syntax - nicht mehr kryptisch literate Programme.
Finden dieses tool nützlich sein: https://github.com/bslatkin/pyliterate