henryavila/laravel-nova-chordpro-field

将Chordpro查看器和编辑器添加到Laravel Nova中。编辑器是一个简单的文本区域。查看器将显示一个完全格式化的歌曲。

1.2.0 2023-10-18 13:41 UTC

This package is auto-updated.

Last update: 2024-09-18 15:39:19 UTC


README

Chordpro查看器和编辑器添加到Laravel Nova中。编辑器是一个简单的文本区域。查看器将显示一个完全格式化的歌曲。

以下Chordpro代码

{title: 005 - Tua Vontade}
{subtitle: Adoradores 2}
{key: E}
{tempo: 75}
{time: 6/8}
{duration: 03:57}


{c: (INTRODUÇÃO)}
[E]x//     [F#m7]x//     [D9]x//     [D9]x//
[E]x//     [F#m7]x//     [D9]x//     [D9]x//


[E]Norte ou Sul, [F#m7]noite ou  di[E/G#]-a eu te [A]seguirei [A] 
[E]Mesmo que o mundo [F#m7]me abando [E/G#]- ne eu [A]serei fiel [A]
[B]Onde mandares [A]irei segurando em [E]tuas mãos [E]  
[B/D#]Sejas meus olhos e [A/C#]guies o meu cora[E]ção

{soc}
[E]    Que eu [B]siga a tua vonta [B]- de e que 
[C#m7]sempre a missão me acompa [C#m7]- nhe
Que eu [B/D#]seja a estrela da noi [B/D#]- te 
sempre a bri[A/E]lhar por [E]Ti
[E]    Eu sou [B]filho do Rei do univer [B]- so,
{eoc}

将在Laravel Nova字段中呈现为

image

同时也支持深色模式

image

如果Chorpro有无效内容,它将在详细视图中显示

image

此软件包是用https://github.com/chordproject/chorpro-parserhttps://github.com/eKoopmans/html2pdf.js构建的,并允许

  • 编辑Chordpro(简单文本区域编辑器)
  • 查看完全格式化的歌曲
  • 显示Chordpro解析错误
  • 生成格式化歌曲的PDF
  • 翻译显示的文本,如"调性"、"时间"等

先决条件

Laravel Nova 4+

安装

在一个Laravel nova实例中,安装henryavila/laravel-nova-chordpro-field

composer require henryavila/laravel-nova-chordpro-field

本地化

将软件包的语言文件发布到应用程序的resources/lang/vendor目录

php artisan vendor:publish --provider="Henryavila\LaravelNovaChordproField\FieldServiceProvider"

使用方法

假设您有一个包含chordpro列中chordpro内容的Nova资源,以下代码将渲染如上图所示的Chordpro

// Laravel Nova Resource
use \Henryavila\LaravelNovaChordproField\ChordproField;

public function fields(Request $request): array
 {
      return [
        ...
        ChordproField::make('Chordpro')
              ->alwaysShow()
              ->rules('required'),
        ...
    ];
}

使用选项

使用所有选项的不同值

// Laravel Nova Resource
use \Henryavila\LaravelNovaChordproField\ChordproField;

public function fields(Request $request): array
 {
      return [
        ...
        ChordproField::make('Chordpro')
              ->alwaysShow()
              ->rows(30)
              ->showTabs(false)
              ->useSimpleChord()
              ->showChords(false)
              ->rules('required'),
        ...
    ];
}