如何写入扩展

本指南视频系列将侧重于编写从初学者到高级主题的python扩展,您应该了解python的基础知识,并了解SVG的工作原理,以便充分利用本指南。有关C++或XSLT扩展的信息,请参阅Inkscape开发的主要信息。

 

目录

 

写作扩展(文本指南)

扩展类型

Inkscape存在以下扩展类型:

  • 输入(读取文件/数据,例如。“DHW文件输入”扩展名用于导入的*.dhw型文件到Inkscape)
  • 输出(编写文件/数据,例如。“GIMP XCF”扩展用于将Inkscape导出为GIMP XCF文件格式)
  • 影响(更改文档中的内容,“扩展”菜单中的大多数扩展都属于该类别)
  • 打印(输出到外部设备,例如。

扩展实现

概述

  • 内部
    • C++实现(直接在Inkscape的代码库中)
  • 外部
    • 脚本-例如。蟒蛇珍珠或作为系统(控制台)脚本
    • XSL转换

用户界面和参数类型:扩展定义文件(INX)

所有扩展都是通过Inkscape扩展定义文件(.inx)定义的,这些文件是

http://www.inkscape.org/namespace/inkscape/extension

命名空间,并由放松NG可获得的[此处]

参数

扩展可以提供通过易于定义的参数获得的值。Inkscape为用户输入提供了基本的GUI。支持以下参数:

  • 整数(对于整数输入字段)
  • 一串(用于文本输入字段)
  • 浮动(对于浮点数输入字段)
  • 布尔值(对于复选框)
  • 枚举(用于下拉列表)
  • 期权组(用于下拉列表或单选按钮)
  • 颜色(对于颜色选择器,如“填充和笔划”对话框中的颜色选择器)

为了实现UI,还有以下两个参数,它们不向扩展提供数据,而是改变用户输入GUI。

  • 描述(用于以下参数的描述)
  • 笔记本(用于选项卡)

另请参见:INX参数

结构

RadioButton示例

以下标记:

<?xml版本=“1.0”编码=“UTF-8”?><inkscape-extension xmlns=“http://www.inkscape.org/namespace/inkscape/extension"><_name>RadioButton示例</_name>org.inkscape.effect.radiobuttontest<param name=“radio1”type=“optiongroup”_gui-text=“Select option:”>可翻译字符串1字符串2<option value=“string3”>测试3</选项></param><param name=“radio2”type=“optiongroup”_gui-text=“选择第二个选项:”>字符串1字符串2<选项>测试3</选项></param><效果><对象类型>全部</object-type><效果菜单><submunu _name=“开发人员示例”/></effects-menu></效果>...</inkscape-extension>

将创建以下GUI:

扩展-收音机按钮gui示例.png

翻译

为了使.inx文件能够与Inkscape的i18n基础结构紧密配合,一些XML元素和属性前面加上下划线(_)字符,以指示应标记包含的文本进行翻译。

扩展脚本:用您选择的编程语言编写的脚本

Inkscape附带了一些.py文件(最重要的是inkex.py),这些文件为您提供了一些基本功能(如错误消息、获取所选元素的id等),如果您使用Python编写扩展,则可以在这些功能的基础上进行构建。

查找墨水盒.pyAPI参考GitLab上的(Inkscape>=1.0)

1.0的扩展教程草稿

例如,请查看Inkscape安装的“extensions”文件夹。建议查看执行与新扩展类似操作的扩展名(例如修改路径数据、写入文件、导入特定文件格式、将数据发送到绘图仪或打印机),以了解如何执行。在典型的UNIX发行版上,文件夹可能位于/usr/share/inkscape/扩展/

或者,也可以在以下网址在线查看:https://gitlab.com/inkscape/extensions/-/tree/master

以下位置还提供了更多信息:

共享您的分机

因此,您现在已经为自己编写了一个新的Inkscape扩展,以满足自己的需要。如果其他需要相同功能但不知道如何编程的人也可以使用您的扩展,可能会给您反馈,并建议增强功能,或者其他程序员可以加入您来帮助改进您的扩展功能,这不是很好吗?

要实现这一点,您需要执行以下操作:

  • 许可证使用开源软件许可证进行扩展,例如GPL,如Inkscape。
  • 保留您的扩展位于其他人可以帮助开发的地方,即允许开发人员进行协作的网站GitLab公司例如。
  • 分享将扩展上传到此网站,并将其上传到InkSpace图库中,即可与其他用户共享。
    它必须关注所有网站行为准则规则和扩展指南。
    违反任何规则的扩展可能会被删除或编辑以符合规则。
    • 打开 上传表单
    • 上传扩展文件,存档到单个拉链文件。
    • 选择“扩展”类别。
    • 添加帮助描述它允许没有编程知识的用户了解您的扩展的功能有关依赖项的信息Inkscape版本操作系统你知道你的扩展可以使用。
    • 还添加一个小缩略图预览图像(190x190px),这将帮助人们理解扩展的用途。
    • 如果适用,请添加链接延伸发展的地方
    • 为了使排序更容易,如果您添加几个标签(查找可在右侧使用的官方标签列表本页,位于标题“版本”、“扩展类型”和“平台”下方)。如果您的扩展做了任何“extension Type”标记都无法表示的事情,请让我们知道,所以我们可以添加一个合适的。
    • 还要填写上传表单中的所有其他字段,然后单击“发布”。
    • 您的上传现在可以在上下载扩展页
  • 审查如果您想从扩展管理器,然后必须由其中一个扩展贡献者进行审查。你应该加入Inkscape扩展团队聊天室并请一位评论员。请务必将链接粘贴到inkscape.org上上传的扩展以供查看。
  • 观看其他人如何喜欢使用您的扩展,如果您愿意,从事使用它们来保持您的扩展更新并且没有错误。
  • 尝试记住更新当您在存储库中更新扩展时,您在inkscape.org中上传的扩展文件会上传,并在更新时告知审阅者。