4 个版本 (2 个重大更新)

0.3.0 2022年2月7日
0.2.0 2022年2月4日
0.1.1 2022年2月3日
0.1.0 2022年2月1日

#66 in #清单

MIT 许可证

18KB
340 代码行

label-generator

一个命令行工具,用于根据标签组件生成 n^k 个标签。

入门指南

在此示例中,我们假设我们是一家螺丝公司,需要为每种类型和大小的螺丝生成标签。

例如

  • 十字槽 2"
  • 十字槽 3"
  • 十字槽 4"
  • 平头 2"
  • 平头 3"
  • 平头 4"

创建一个新的文件夹

mkdir labels
cd labels

创建一个 manifest.toml 文件

root = "root.svg"
sku = "SC-{head}-{length}"

创建一个 root.svg 文件

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="2048px" height="2048px" viewBox="0 0 2048 2048" style="enable-background:new 0 0 2048 2048;" xml:space="preserve">

<!-- component:brand -->
<!-- component:head -->
<!-- component:length -->

</svg>

为我们的扩展组件创建一个新的文件夹

mkdir head
mkdir length

将这些文件夹中的文件添加到 root.svg 中。

.
├── head/
│   ├── P-phillips.svg
│   └── F-flat_head.svg
├── length/
│   ├── 2-inch.svg
│   ├── 3-inch.svg
│   └── 4-inch.svg
├── branding.svg
├── manifest.toml
└── root.svg

现在我们运行标签生成器

$ label-generator

SVG Label Generator

🔧 Config:
  >> Root: root.svg
  >> SKU: SC-{head}-{length}
📦 Components:
  >> branding
  >> head
     > P
     > F
  >> length
     > 2
     > 3
     > 4
💾 Generated Files:
  >> SC-P-2
  >> SC-P-3
  >> SC-P-4
  >> SC-F-2
  >> SC-F-3
  >> SC-F-4
✅ Done

这将创建一个 out 目录,其中包含我们的新标签文件

.
└── out/
    ├── SC-P-2
    ├── SC-P-3
    ├── SC-P-4
    ├── SC-F-2
    ├── SC-F-3
    └── SC-F-4

如果我们查看 SC-P-2 文件,我们应该会看到我们的组件被注入到 SVG 中。

例如

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="2048px" height="2048px" viewBox="0 0 2048 2048" style="enable-background:new 0 0 2048 2048;" xml:space="preserve">

<g>
    <text>Screw Company</text>
</g>

<g>
    <text>Phillips</text>
</g>

<g>
    <text>2"</text>
</g>

</svg>

忽略组合

如果您想忽略某些特定的变体集,可以将它们添加到清单中。

例如,假设我们永远不会有一种十字槽 4" 的螺丝。

root = "root.svg"
sku = "SC-{head}-{length}"

# Ignore Phillips 4" screws
ignore = [
  "head:P,length:4",
]

现在当我们运行标签生成器时,我们不会为这种组合生成任何标签。

$ label-generator

SVG Label Generator

🔧 Config:
  >> Root: root.svg
  >> SKU: SC-{head}-{length}
  >> Ignore:
     > head:P, length:4
📦 Components:
  >> branding
  >> head
     > P
     > F
  >> length
     > 2
     > 3
     > 4
💾 Generated Files:
  >> SC-P-2
  >> SC-P-3
  >> SC-P-4 : ignored
  >> SC-F-2
  >> SC-F-3
  >> SC-F-4
✅ Done

标签的 SKU 将会显示,但它的 SVG 不会被生成。

依赖项

~8–11MB
~214K SLoC