simpleWiki.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. from pyparsing import *
  2. wikiInput = """
  3. Here is a simple Wiki input:
  4. *This is in italics.*
  5. **This is in bold!**
  6. ***This is in bold italics!***
  7. Here's a URL to {{Pyparsing's Wiki Page->https://site-closed.wikispaces.com}}
  8. """
  9. def convertToHTML(opening,closing):
  10. def conversionParseAction(s,l,t):
  11. return opening + t[0] + closing
  12. return conversionParseAction
  13. italicized = QuotedString("*").setParseAction(convertToHTML("<I>","</I>"))
  14. bolded = QuotedString("**").setParseAction(convertToHTML("<B>","</B>"))
  15. boldItalicized = QuotedString("***").setParseAction(convertToHTML("<B><I>","</I></B>"))
  16. def convertToHTML_A(s,l,t):
  17. try:
  18. text,url=t[0].split("->")
  19. except ValueError:
  20. raise ParseFatalException(s,l,"invalid URL link reference: " + t[0])
  21. return '<A href="{0}">{1}</A>'.format(url, text)
  22. urlRef = QuotedString("{{",endQuoteChar="}}").setParseAction(convertToHTML_A)
  23. wikiMarkup = urlRef | boldItalicized | bolded | italicized
  24. print(wikiInput)
  25. print()
  26. print(wikiMarkup.transformString(wikiInput))