python - 有没有办法将 python 代码合并到 moinmoin 页面中?

标签 python moinmoin

我想知道是否有一个技巧可以(轻松地)将一些 python 代码合并到 moinmoin 页面中,也许通过添加一些 action .这个想法是像

<<<
for j in [1,3,5]:
   print(i)
>>>

在页面上显示为

1
3
5

快速和肮脏没关系,安全不是问题,我想将它用于独立的“desktop-mode”安装。

最佳答案

另一种方法是添加解析器。

下面是对 Moinmoin's Hello World parser 的非常快速和肮脏的改编.

import StringIO
import sys

class Parser():        

    def __init__(self, raw, request, **kw):
        self.raw = raw
        self.request = request
        self.kw=kw

    def format(self, formatter):       
        # Execute the code
        code_out = StringIO.StringIO()
        sys.stdout = code_out
        exec self.raw
        sys.stdout = sys.__stdout__
        out_lines = code_out.getvalue().split("\n")

        # Print the output
        for out_line in out_lines:
            self.request.write(formatter.rawHTML(out_line+"<br>"))

如保存为path/to/MoinMoin/parser/interpret_python.py,则可以进入页面

{{{#!interpret_python
for j in [1,3,5]:
   print(j)
}}}

它会生成文本

1
3
5

查看页面时。可以通过将执行限制在 sandbox 来变得安全 (r) .

关于python - 有没有办法将 python 代码合并到 moinmoin 页面中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443514/

相关文章:

python - 如何在python和pygame中获取鼠标输入

python - 将 json 数组中的键追加(映射)到另一个子数组

python - 我的解密程序做错了事

python - 将 pyMC2 贝叶斯 A/B 测试示例移植到 pyMC3

python: "import Image"仅在以 root 身份执行时有效

python - 更快的 strptime?

javascript - 呈现 Wiki 语法的最小方式(例如 MoinMoin Wiki)

python - Python 是否尊重符号链接(symbolic link)?

grails - Grails-如何将Wiki页面嵌入Grails应用程序