Python版本的Markdown工具:Handout使用教程!用Python代码直接排版!

内容摘要:

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • Handout使用教程
  • 在pyhon直接使用Markdown
  • 把讲义导出为html网页

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

我想要使用Python代码直接排版,怎样才能做到?

  • 我只喜欢用python,也只想使用python。我想用python就可以直接排版。
  • 还要可以在任何文本编辑器里,方便地转换成标题、代码、文本等各种样式。
  • 最好还能直接运行Python代码,并且展示运行的结果。

Google Brain的研究员Danijar Hafner发布Python Handout这一Python模块包, 几乎完美地实现了我的以上诉求。

Python Handout借助和Markdown一样的代码命令,让Python代码可以直接转换为讲义的样式。

使用Python Handout的大致流程如下:

  1. handout 作为正常 Python 程序内的库导入
  2. 编写python代码和运行python脚本
  3. 在浏览器中打开保存的网页文件以查看结果。
  4. 修改文件后,刷新浏览器以查看新的导出结果。

首先,你需要安装Python Handout 模块。

安装命令:

pip3 install -U handout

安装完成后,就可以在python中,愉快地使用Handout进行排版了。

你可以在python中,控制文档的显示。比如,你可以创建粗体的文字,斜体的文字,添加图片,并且创建列表 等等。 基本上来讲,排版的方式就是在普通的文字基础上,加上 # 或者 * 等符号。

导入相关的模块!

import handout
import matplotlib.pyplot as plt
import numpy as np

设置保存的网页的文件目录

  • 如果不填写详细的目录路径,则默认为当前的py文件目录。
  • 如果目录不存在,则会自动创建。
doc = handout.Handout('输出目录/示例')

Markdown的格式说明

带有三个引号的注释将转换为文本块。注意:必须为英文状态下的双引号,单引号无效。 文本块支持Markdown格式,例如:

  • 标题
  • 超链接
  • 粗体斜体
  • 数学公式:f(x)=x2f(x)=x2
  • 超链接

超链接设置方法:

# [超链接][1]
# 第1个[ ]里面填写超链接的文本,例如标题或说明。
# 第2个[ ]里面填写超链接的序号。
# 然后写下超链接的地址,格式如下:[1]: https://commonmark.org/help/

注意,以上的超链接的具体地址不会在转换后的讲义中显示, 但是单击超链接的文本,将打开网页链接。

添加文本和变量

使用与Python的print()相同的方式输出文本:

for index in range(3):
    doc.add_text(f'循环3次,现在是第{index+1}次。')
doc.show()
效果和print()是一样的。输出如下所示:
循环3次,现在是第1次。
循环3次,现在是第2次。
循环3次,现在是第3次。

 

添加 Matplotlib 图像

在handout展示matplotlib的绘图结果:

fig, ax = plt.subplots(figsize=(4, 3))
ax.plot(np.arange(100))
fig.tight_layout()
doc.add_figure(fig)
doc.show()  # 在此行代码下面展示绘图结果

 

设置输出的图像的宽度以并排显示多个图形:

for iteration in range(3):
    fig, ax = plt.subplots(figsize=(3, 2))
    ax.plot(np.sin(np.linspace(0, 20 / (iteration + 1), 100)))
    doc.add_figure(fig, width=0.33)
doc.show()

 

  

 

 

 

添加图像和视频

这个功能需要安装 imageio 模块

image_a = np.random.uniform(0, 255, (200, 400, 3)).astype(np.uint8)
image_b = np.random.uniform(0, 255, (100, 200, 1)).astype(np.uint8)
doc.add_image(image_a, 'png', width=0.4)
doc.add_image(image_b, 'jpg', width=0.4)
doc.show()

 

video = np.random.uniform(0, 255, (100, 64, 128, 3)).astype(np.uint8)
doc.add_video(video, 'gif', fps=30, width=0.4)
doc.add_video(video, 'mp4', fps=30, width=0.4)
doc.show()

隐藏代码

隐藏单行代码不予展示

在代码后面添加:# handout: exclude 即可隐藏掉代码。

# 下面一行代码,不会被展示出来:
# value = 13  # handout: exclude 这行代码被隐藏掉了。

隐藏多行代码不予展示

开始处,使用语句: # handout: begin-exclude

结束处,使用语句: # # handout: end-exclude

查看讲义

当你运行'doc.show()'时,讲义将会自动保存。

使用浏览器打开文件夹'输出目录/示例'里面的 index.html 文件,即可查看转换后的讲义。

当python文件作了修改,并且重新运行后,只需在浏览器里刷新一下,即可查看修改后的导出内容。

附完整代码:

"""
# Python版本的Markdown工具:Handout使用教程!
# 用Python代码直接排版!

我想要使用Python代码直接排版,怎样才能做到?

- 我只喜欢用python,也只想使用python。我想用python就可以直接排版。
- 还要可以在任何文本编辑器里,方便地转换成标题、代码、文本等各种样式。
- 最好还能直接运行Python代码,并且展示运行的结果。

Google Brain的研究员Danijar Hafner发布Python Handout这一Python模块包,
几乎完美地实现了我的以上诉求。

Python Handout借助和Markdown一样的代码命令,让Python代码可以直接转换为讲义的样式。

使用Python Handout的大致流程如下:
1. handout 作为正常 Python 程序内的库导入
2. 编写python代码和运行python脚本
3. 在浏览器中打开保存的网页文件以查看结果。
4. 修改文件后,刷新浏览器以查看新的导出结果。


## 首先,你需要安装Python Handout 模块。
安装命令: pip3 install -U handout

安装完成后,就可以在python中,愉快地使用Handout进行排版了。

你可以在python中,控制文档的显示。比如,你可以创建粗体的文字,斜体的文字,添加图片,并且创建列表 等等。
基本上来讲,排版的方式就是在普通的文字基础上,加上 # 或者 * 等符号。


导入相关的模块!
"""

import handout
import matplotlib.pyplot as plt
import numpy as np

"""设置保存的网页的文件目录
- 如果不填写详细的目录路径,则默认为当前的py文件目录。
- 如果目录不存在,则会自动创建。
"""

doc = handout.Handout('Python教程/Handout教程')

"""
## Markdown的格式说明
带有三个引号的注释将转换为文本块。
文本块支持[Markdown格式][1],例如:

- 标题
- 超链接
- **粗体**和*斜体*
- 数学公式:$f(x)=x^2$
- 超链接

[1]: https://commonmark.org/help/

### 超链接设置方法:
"""

# [超链接][1]
# 第1个[ ]里面填写超链接的文本,例如标题或说明。
# 第2个[ ]里面填写超链接的序号。
# 然后写下超链接的地址,格式如下:[1]: https://commonmark.org/help/

"""
注意,以上的超链接的具体地址不会在转换后的讲义中显示,
但是单击超链接的文本,将打开网页链接。
"""

"""
## 添加文本和变量
使用与Python的print()相同的方式输出文本:
"""

for index in range(3):
    doc.add_text(f'循环3次,现在是第{index + 1}次。')
doc.show()

"""
效果和print()是一样的。输出如下:
"""
"""
## 添加 Matplotlib 图像
在handout展示matplotlib的绘图结果:
"""
fig, ax = plt.subplots(figsize=(4, 3))
ax.plot(np.arange(100))
fig.tight_layout()
doc.add_figure(fig)
doc.show()  # 在此行代码下面展示绘图结果

"""
设置输出的图像的宽度以并排显示多个图形:
"""

for iteration in range(3):
    fig, ax = plt.subplots(figsize=(3, 2))
    ax.plot(np.sin(np.linspace(0, 20 / (iteration + 1), 100)))
    doc.add_figure(fig, width=0.33)
doc.show()

"""
## 添加图像和视频
这个功能需要安装 imageio 模块
"""
image_a = np.random.uniform(0, 255, (200, 400, 3)).astype(np.uint8)
image_b = np.random.uniform(0, 255, (100, 200, 1)).astype(np.uint8)
doc.add_image(image_a, 'png', width=0.4)
doc.add_image(image_b, 'jpg', width=0.4)
doc.show()
video = np.random.uniform(0, 255, (100, 64, 128, 3)).astype(np.uint8)
doc.add_video(video, 'gif', fps=30, width=0.4)
doc.add_video(video, 'mp4', fps=30, width=0.4)
doc.show()

"""
## 隐藏代码
隐藏单行代码不予展示

在代码后面添加:# handout: exclude 即可隐藏掉代码。
"""

# 下面一行代码,不会被展示出来:
# value = 13  # handout: exclude 这行代码被隐藏掉了。
value = 13  # handout: exclude

"""
隐藏多行代码不予展示

开始处,使用语句: # handout: begin-exclude

结束处,使用语句: # # handout: end-exclude

"""

"""
## 查看讲义
当你运行'doc.show()'时,讲义将会自动保存。

使用浏览器打开文件夹'输出目录/示例'里面的 index.html 文件,即可查看转换后的讲义。

当python文件作了修改,并且重新运行后,只需在浏览器里刷新一下,即可查看修改后的导出内容。

(完)
"""

(完)

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏悠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值