Publish 的 ImageMagick 插件

一个 Publish 插件,帮助在构建任何 Publish 网站时运行 ImageMagick 命令。

安装

要将其安装到您的 Publish 包中,请将其作为依赖项添加到您的 Package.swift 清单文件中

let package = Package(
    ...
    dependencies: [
        ...
        .package(url: "https://github.com/mvolpato/magickpublishplugin", from: "0.3.0")
    ],
    targets: [
        .target(
            ...
            dependencies: [
                ...
                "MagickPublishPlugin"
            ]
        )
    ]
    ...
)

然后,在您想要使用它的任何地方导入 MagickPublishPlugin

import MagickPublishPlugin

有关如何使用 Swift Package Manager 的更多信息,请查看这篇文章,或 其官方文档

用法

您需要 ImageMagick 版本 6 才能使用 optimizeForWeb(imagesInFolder: String) 方法。

您可以使用版本 7 的其他方法。

然后,该插件可以像这样在任何发布管道中使用

import MagickPublishPlugin
...
try DeliciousRecipes().publish(using: [
...
.installPlugin(.optimizeForWeb(imagesInFolder: "Output/assets/images/blog/"))
...
])

这将使用 Dave Newton 提出的相当不错的 图像转换方法

如果您想要更多地控制您使用的转换,例如,您可以使用

import MagickPublishPlugin
...
try DeliciousRecipes().publish(using: [
.installPlugin(
...
    .magick(arguments: [
                "mogrify",
                "-thumbnail",
                "400",
            ], 
            imagesFolder: "Output/assets/images/blog/")
)
...
])

您也可以对单个文件运行该命令

import MagickPublishPlugin
...
try DeliciousRecipes().publish(using: [
.installPlugin(
...
    .magick(arguments: [
                "mogrify",
                "-thumbnail",
                "400",
                ], 
                imageFile: "Output/assets/images/blog/my-cat-eating-a-burrito.jpg")
)
...
])

您可能希望在 .copyResources() 步骤之后运行此步骤。