riley19280/miro-clipboard

与 Miro 剪贴板交互

v0.4.0 2024-05-29 23:23 UTC

README

GitHub Workflow Status (master) Total Downloads Latest Version License

介绍

miro-clipboard 允许您生成和解析 Miro 剪贴板数据,通过简单的复制和粘贴,可以将自定义功能构建到现有应用程序中。

此包还用于记录剪贴板数据中使用的各种属性和标识符。

创建剪贴板数据

剪贴板数据使用 MiroClipboardData 类创建,可以添加多个对象。

MiroClipboardData::make()
->addObject(MiroWidget::make()->shape(ShapeType::Circle))
->toHtml();

以下对象类型可用:

最后,使用 toHtml 方法检索可以粘贴的 Miro 数据字符串。有关如何在 Miro 中正确粘贴的说明,请参阅 粘贴剪贴板数据

Widget 对象提供各种方法来配置它们的位置、大小、样式以及许多其他属性。以下是一个更完整的示例,说明可用的属性。

MiroShape 示例
MiroWidget::make()
    ->shape(ShapeType::Star)
    ->text('Hello!')
    ->scale(.5)
    ->relativeScale(.5)
    ->rotation(90)
    ->relativeRotation(90)
    ->offsetPosition(50, 50)
    ->position(50, 50)
    ->size(50, 50)
    ->style(fn(MiroShapeStyle $style) => $style
        ->backgroundColor(16711680)->backgroundColor('#FF0000')
        ->backgroundOpacity(.5)
        ->borderColor(16711680)->borderColor('#FF0000')
        ->borderThickness(5)
        ->borderOpacity(.5)
        ->borderStyle(BorderStyle::DashLong)
        ->fontFamily('Arial')
        ->textColor(16711680)->textColor('#FF0000')
        ->textAlign(TextAlign::Left, VerticalTextAlign::Top)
        ->fontSize(11)
        ->bold()
        ->italic()
        ->underline()
        ->strikethrough()
    );
MiroLine 示例
MiroWidget::make()
    ->line()
    ->addText(
        MiroLineText::make('Hello', .5, .5)
            ->color('#FF0000')
            ->color(16711680)
            ->rotated()
            ->fontSize(11)
            ->width(50)
    )
    ->setPoints([
        ['x' => 111.0, 'y' => 111.0],
        ['x' => 123.0, 'y' => 123.0],
        ['x' => 456.0, 'y' => 456.0],
        ['x' => 500.0, 'y' => 500.0],
    ])
    ->style(fn(MiroLineStyle $style) => $style
        ->jump()
        ->type(LineType::Square)
        ->strokeWeight(4)
        ->color('#FF0000')
        ->color(16711680)
        ->startingLinecap(LineCap::Circle)
        ->endingLinecap(LineCap::CircleFilled)
        ->pattern(LinePattern::Dotted)
    );

粘贴剪贴板数据

为了将数据粘贴到 Miro 中,生成的字符串需要以 text/html 内容类型复制,这可能取决于您的计算机。为了解决这个问题,此存储库中包含一个名为 clipboardLoader.html 的文件。它提供了一种将复制的字符串加载到剪贴板中作为正确的内容类型的方法,以便可以将其粘贴到 Miro 中。

如果您使用此包集成到现有应用程序中,那么您可能希望直接加载数据。

解析剪贴板数据

现有剪贴板数据也可以解析为对象。这是使用 MiroParser 类完成的。

$clipboardData = MiroClipboardData::parse('<your clipboard string>');

这会产生一个 MiroClipboardData 对象。