我们将使用 pytextile 模块将文本转换为 HTML。输入文本遵循特定的语法,使用此模块生成 HTML 代码。

在这里,我将展示 - 有序列表、无序列表、图像链接、粗体文本和符号、普通文本如何使用该模块进行转换。

先决条件:

  • Python 已安装

  • IDE或Shell(我更喜欢Spyder)

第一步:安装库

首先,安装PyTextile模块。

pip install textile

Python 已经随 Tkinter 一起提供。不过,如果您认为遇到问题,您可以手动安装它。

pip install tk

第二步:通过导入库开始编码

我创建了一个名为text2html.py的 python 文件并导入了我需要的两个库**(纺织品和 Tkinter)**。

import textile
import tkinter as tk

第三步:创建一个空函数并初始化Tk的实例

导入所有库后,现在创建一个函数并让它保持为空。完成 GUI 实现后,我们稍后再讨论它。我在这里将我的函数命名为 convertToHtml()

我们还将使用Tk类创建应用程序的根。这将作为我们的应用程序窗口。

def convertToHtml():
    #fornow empty

root = tk.Tk()

第四步:指定应用

现在,我们将为我们的应用程序指定窗口的大小。

root.geometry("250x170")

第五步:创建小部件并打包

我们将需要一个文本小部件、一个按钮和一个标签。在这一步中,我们将创建它们并将它们打包到应用程序窗口中。我们将通过按钮小部件的命令参数调用我们的方法convertToHtml()


# Create Text for input
T = tk.Text(root, height = 5, width = 52)
T.pack()
T.insert(tk.END,"""""" )

# Create button for result generation
b1 = tk.Button(root, text = "Submit", command=convertToHtml)
b1.pack() 

# Create label for result display
lbl = tk.Label(root, text = "")
lbl.pack()

第六步:添加mainloop()方法

现在,让我们在代码中调用**mainloop() **方法,以便我们的应用程序运行。

root.mainloop()

第 7 步:将文本转换为 Html 的代码

现在,回到代码的开头并转到方法convertToHtml()。主要的魔法将在这里发生。

T.get()从用户那里获取输入并将其存储到inp变量中。然后textile.textile()将文本转换为 HTML 存储在html中。

lbl.config()保存输出结果,但我们也使用 print() 函数显示它。

单击按钮 b1 时,将调用convertToHtml()方法。

 def convertToHtml():
    #fornow empty
    inp = T.get(1.0, "end-1c")
    html = textile.textile( inp )
    print("\nAfter converted to HTML: \n",html)
    lbl.config(text = "Converted Html : "+html)

第八步:执行你的代码

执行后,您将看到打开了以下窗口。

image.png

第九步:在打开的控制台上写

您可以将以下部分复制并粘贴到打开的控制台的文本输入框中

Ordered List 
# One
# Two
# Three

Unordered List
* One
* Two
* Three
Image Link
"Freedom":https://images.unsplash.com/photo-1519834785169-98be25ec3f84?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8NXx8c3VjY2Vzc3xlbnwwfHwwfHw%3D&w=1000&q=80

Normal Text 

Just Like that

Bold Text 

*This is bold*

Adding &

She & Her

然后单击提交,一些输出将在控制台和 IDE 或 shell 中生成。复制作为环境输出生成的文本。对于上面的输入,我得到如下输出:

输出

生成的输出是可以创建 HTML 页面的 HTML 语法。

<p>Ordered List
        <ol>
                <li>One</li>
                <li>Two</li>
                <li>Three</li>
        </ol></p>

        <p>Unordered List
        <ul>
                <li>One</li>
                <li>Two</li>
                <li>Three<br />
Image Link<br />
<a href="https://images.unsplash.com/photo-1519834785169-98be25ec3f84?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8NXx8c3VjY2Vzc3xlbnwwfHwwfHw%3D&w=1000&q=80">Freedom</a></li>
        </ul></p>

        <p>Normal Text </p>

        <p>Just Like that</p>

        <p>Bold Text </p>

        <p><strong>This is bold</strong></p>

        <p>Adding &</p>

        <p>She &amp; Her</p>

第 9 步:HTML 页面测试与输出

在任何文件夹中创建一个 .html 文件。就我而言,我创建了 test.html,然后将输出粘贴到该文件中。单击保存并在浏览器上打开文件。您正在查看的 html 页面是从您的代码生成的,其中包含有序列表、无序列表、图像链接、普通文本、粗体文本和添加 &。

image.png

完整代码:

import textile
import tkinter as tk

def covertToHtml():
    #fornowempty
    inp=T.get(1.0,"end-1c")
    html=textile.textile(inp)
    print("\nAfter converted to HTML: \n",html)
    lbl.config(text="Converted Html : "+html)

root=tk.Tk()
root.geometry("250x170")

# Create Text for input
T=tk.Text(root,height=5,width=52)
T.pack()
T.insert(tk.END,"""""")

# Create button for result generation
b1=tk.Button(root,text="Submit",command=covertToHtml)
b1.pack()

# Create label for result display
lbl=tk.Label(root,text="")
lbl.pack()

root.mainloop()

友情链接

1.PyTextile

给我买杯咖啡

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐