markdown2Mathjax is een eenvoudig pakket waarmee je latex stijl wiskunde door MathJax gegenereerd in combinatie met de populaire markdown formaat & nbsp gebruiken;. Er zijn twee implementaties van markdown in python, is dit pakket ontworpen om te worden gebruikt in combinatie met de grotere schaal gebruikt en actief onderhouden van de twee, genaamd markdown2. Typisch gebruik is als volgt:
#! / Usr / bin / env python
van markdown2Mathjax import sanitizeInput, reconstructMath
van markdown2 import markdown
tmp = sanitizeInput (sometxt)
markdedDownText = markdown (tmp [0])
finalOutput = reconstructMath (markedDownText, tmp [1])
(Waar "sometxt" is een string met de markdown + mathjax tekst.)
installatie
markdown2Mathjax wordt gehost op pypi, zodat kan worden geïnstalleerd vanaf de bron, met behulp van:
tar zxvf markdown2Mathjax-x.x.x.tar.gz
cd markdown2Mathjax-x.x.x
python setup.py installeren
of het gebruik van pip (of easy_install als je liever):
pip markdown2Mathjax installeren
Gebruik
Standaard wordt wiskunde gekenmerkt door enkele $ borden voor inline wiskunde en dubbele $$ borden voor vergelijkingen. Echter kan elke begrenzende tekenreeksen worden door verandering van de trefwoord argumenten de sanitizeInput en reconstructMath functies. Merk op dat standaard mathjax gebruikt geen enkele dollars borden naar inline wiskunde af te bakenen, dus als u de standaardinstellingen gebruiken voor dit pakket, moet u mathjax instrueren om het op de juiste wijze te behandelen.
Toelichting
De sanitizeInput functie zoekt zich een geval van wiskunde (zoals bepaald door de meegeleverde scheidingstekens) en vervangt ze door een placeholder. Deze tijdelijke aanduiding kan worden opgegeven door de gebruiker, maar het is aan te raden u de meegeleverde standaard van "$ 0 $" te gebruiken. De tijdelijke aanduiding heeft om iets dat niet zal worden verwerkt door afwaardering zijn, en zal nooit worden geproduceerd door afwaardering. De eerste van deze eisen makkelijk genoeg te voldoen, kan de tweede enigszins subtieler. Als de tijdelijke aanduiding al bestaat in de meegeleverde gebruiker tekst wordt opgemerkt door sanitizeInput en zullen alleen worden gelaten wanneer reconstructie wiskunde na afwaardering verwerking.
Elke keer dat een geldige wiskunde blok wordt aangetroffen en vervangen door een tijdelijke aanduiding, wordt de wiskunde opgeslagen in een lijst (de zogenaamde codeblocks), die vervolgens wordt geretourneerd door de sanitizeInput functie. Elk item in codeblocks wordt voorafgegaan met ofwel 0 (voor een letterlijke voorkomen van de tijdelijke aanduiding in de tekst), een 1 voor inline wiskunde of een 2 voor een aparte vergelijking.
Het gezuiverde reeks van sanitizeInput kan dan door afwaardering gemarkeerd worden zonder angst voor je wiskunde wordt gemangeld. Tenslotte reconstructMath vervangt elk van de tijdelijke aanduidingen in de gemarkeerde tekst met de juiste codeblock. Dit laatste html kan dan worden weergegeven met de juiste mathjax javascript headers.
Een andere manier om na te denken over dit is dan reconstructMath is eigenlijk het omgekeerde van sanitizeInput. Dus zonder gebruik te maken markdown ertussen, moet er niets veranderen tussen de twee (behalve wanneer reconstructMath doet ook wat extra schoonmaakbeurt van de wiskunde codeblocks). Dat is:
tmp = sanitizeInput (test)
reconstructMath (tmp [0], tmp [1]) ==-test
moet altijd evalueren om waar
Eisen .
- Python
Reacties niet gevonden