InfoGrab DocsInfoGrab Docs

HAML

요약

HAML은 GitLab이 사용하는 Ruby on Rails 템플릿 언어입니다. GitLab UI는 Pajamas 디자인 시스템을 준수하는 Vue 컴포넌트 라이브러리입니다. 그러나 일부 단순한 컴포넌트(버튼, 체크박스, 폼 입력 등)는 HAML에서도 사용할 수 있습니다:

HAML은 GitLab이 사용하는 Ruby on Rails 템플릿 언어입니다.

HAML과 Pajamas 디자인 시스템#

GitLab UIPajamas 디자인 시스템을 준수하는 Vue 컴포넌트 라이브러리입니다. 이러한 컴포넌트 중 상당수는 JavaScript에 의존하기 때문에 Vue에서만 사용할 수 있습니다.

그러나 일부 단순한 컴포넌트(버튼, 체크박스, 폼 입력 등)는 HAML에서도 사용할 수 있습니다:

  • 일부 Pajamas 컴포넌트는 ViewComponent로 제공됩니다. 가능하면 이를 사용하세요.

  • ViewComponent가 없는 경우, 직접 만들어 보는 것은 어떨까요? 도움이 필요하면 디자인 시스템 팀에 문의하세요.

  • 대안으로, 요소에 올바른 CSS 클래스를 적용하는 방식으로 사용할 수 있습니다.

  • HAML 폼에서 GitLab UI 컴포넌트를 사용하는 데 도움이 되는 커스텀 Ruby on Rails 폼 빌더가 있습니다.

GitLab UI 폼 빌더 사용#

GitLab UI 폼 빌더를 사용하려면:

  • form_forgitlab_ui_form_for로 변경합니다.

  • f.check_boxf.gitlab_ui_checkbox_component로 변경합니다.

  • f.label을 제거하고 대신 f.gitlab_ui_checkbox_component의 두 번째 인수로 라벨을 전달합니다.

예를 들면:

변경 전:

= form_for @group do |f|
  .form-group.gl-mb-3
    .gl-form-checkbox.custom-control.custom-checkbox
      = f.check_box :prevent_sharing_groups_outside_hierarchy, disabled: !can_change_prevent_sharing_groups_outside_hierarchy?(@group), class: 'custom-control-input'
      = f.label :prevent_sharing_groups_outside_hierarchy, class: 'custom-control-label' do
        %span
          = safe_format(s_('GroupSettings|Prevent members from sending invitations to groups outside of %{group} and its subgroups.'), group: link_to_group(@group))
        %p.help-text= prevent_sharing_groups_outside_hierarchy_help_text(@group)

  .form-group.gl-mb-3
    .gl-form-checkbox.custom-control.custom-checkbox
      = f.check_box :lfs_enabled, checked: @group.lfs_enabled?, class: 'custom-control-input'
      = f.label :lfs_enabled, class: 'custom-control-label' do
        %span
          = _('Allow projects within this group to use Git LFS')
          = link_to sprite_icon('question-o'), help_page_path('topics/git/lfs/_index.md')
        %p.help-text= _('This setting can be overridden in each project.')

변경 후:

= gitlab_ui_form_for @group do |f|
  .form-group.gl-mb-3
    = f.gitlab_ui_checkbox_component :prevent_sharing_groups_outside_hierarchy,
        safe_format(s_('GroupSettings|Prevent members from sending invitations to groups outside of %{group} and its subgroups.'), group: link_to_group(@group)),
        help_text: prevent_sharing_groups_outside_hierarchy_help_text(@group),
        checkbox_options: { disabled: !can_change_prevent_sharing_groups_outside_hierarchy?(@group) }

  .form-group.gl-mb-3
    = f.gitlab_ui_checkbox_component :lfs_enabled, checkbox_options: { checked: @group.lfs_enabled? } do |c|
      - c.with_label do
        = _('Allow projects within this group to use Git LFS')
        = link_to sprite_icon('question-o'), help_page_path('topics/git/lfs/_index.md')
      - c.with_help_text do
        = _('This setting can be overridden in each project.')

사용 가능한 컴포넌트#

GitLab UI 폼 빌더를 사용할 때 HAML에서 사용할 수 있는 컴포넌트는 다음과 같습니다.

현재는 나열된 컴포넌트만 사용 가능하지만, 더 많은 컴포넌트가 계획되어 있습니다.

gitlab_ui_checkbox_component#

GitLab UI 문서

인수#
인수 타입 필수 여부 (기본값) 설명
method Symbol true gitlab_ui_form_for에 전달된 객체의 속성입니다.
label String false (nil) 체크박스 라벨입니다. HTML이 필요한 경우 이 인수 대신 label 슬롯을 사용할 수 있습니다.
help_text String false (nil) 체크박스 아래에 표시되는 도움말 텍스트입니다. HTML이 필요한 경우 이 인수 대신 help_text 슬롯을 사용할 수 있습니다.
checkbox_options Hash false ({}) Rails check_box 메서드에 전달되는 옵션입니다.
checked_value String false ('1') 체크박스가 선택됐을 때의 값입니다.
unchecked_value String false ('0') 체크박스가 선택 해제됐을 때의 값입니다.
label_options Hash false ({}) Rails label 메서드에 전달되는 옵션입니다.
슬롯#

이 컴포넌트는 ViewComponent 슬롯을 지원합니다.

슬롯 설명
label 체크박스 라벨 콘텐츠입니다. label 인수 대신 이 슬롯을 사용할 수 있습니다.
help_text 체크박스 아래에 표시되는 도움말 텍스트 콘텐츠입니다. help_text 인수 대신 이 슬롯을 사용할 수 있습니다.

gitlab_ui_radio_component#

GitLab UI 문서

인수#
인수 타입 필수 여부 (기본값) 설명
method Symbol true gitlab_ui_form_for에 전달된 객체의 속성입니다.
value Symbol true 라디오 태그의 값입니다.
label String false (nil) 라디오 라벨입니다. 라벨 내부에 HTML 콘텐츠가 필요한 경우 이 인수 대신 label 슬롯을 사용할 수 있습니다.
help_text String false (nil) 라디오 버튼 아래에 표시되는 도움말 텍스트입니다. 도움말 텍스트 내부에 HTML 콘텐츠가 필요한 경우 이 인수 대신 help_text 슬롯을 사용할 수 있습니다.
radio_options Hash false ({}) Rails radio_button 메서드에 전달되는 옵션입니다.
label_options Hash false ({}) Rails label 메서드에 전달되는 옵션입니다.
슬롯#

이 컴포넌트는 ViewComponent 슬롯을 지원합니다.

슬롯 설명
label 체크박스 라벨 콘텐츠입니다. label 인수 대신 이 슬롯을 사용할 수 있습니다.
help_text 라디오 버튼 아래에 표시되는 도움말 텍스트 콘텐츠입니다. help_text 인수 대신 이 슬롯을 사용할 수 있습니다.

HAML

GitLab v19.1
원문 보기
요약

HAML은 GitLab이 사용하는 Ruby on Rails 템플릿 언어입니다. GitLab UI는 Pajamas 디자인 시스템을 준수하는 Vue 컴포넌트 라이브러리입니다. 그러나 일부 단순한 컴포넌트(버튼, 체크박스, 폼 입력 등)는 HAML에서도 사용할 수 있습니다:

HAML은 GitLab이 사용하는 Ruby on Rails 템플릿 언어입니다.

HAML과 Pajamas 디자인 시스템#

GitLab UIPajamas 디자인 시스템을 준수하는 Vue 컴포넌트 라이브러리입니다. 이러한 컴포넌트 중 상당수는 JavaScript에 의존하기 때문에 Vue에서만 사용할 수 있습니다.

그러나 일부 단순한 컴포넌트(버튼, 체크박스, 폼 입력 등)는 HAML에서도 사용할 수 있습니다:

  • 일부 Pajamas 컴포넌트는 ViewComponent로 제공됩니다. 가능하면 이를 사용하세요.

  • ViewComponent가 없는 경우, 직접 만들어 보는 것은 어떨까요? 도움이 필요하면 디자인 시스템 팀에 문의하세요.

  • 대안으로, 요소에 올바른 CSS 클래스를 적용하는 방식으로 사용할 수 있습니다.

  • HAML 폼에서 GitLab UI 컴포넌트를 사용하는 데 도움이 되는 커스텀 Ruby on Rails 폼 빌더가 있습니다.

GitLab UI 폼 빌더 사용#

GitLab UI 폼 빌더를 사용하려면:

  • form_forgitlab_ui_form_for로 변경합니다.

  • f.check_boxf.gitlab_ui_checkbox_component로 변경합니다.

  • f.label을 제거하고 대신 f.gitlab_ui_checkbox_component의 두 번째 인수로 라벨을 전달합니다.

예를 들면:

변경 전:

= form_for @group do |f|
  .form-group.gl-mb-3
    .gl-form-checkbox.custom-control.custom-checkbox
      = f.check_box :prevent_sharing_groups_outside_hierarchy, disabled: !can_change_prevent_sharing_groups_outside_hierarchy?(@group), class: 'custom-control-input'
      = f.label :prevent_sharing_groups_outside_hierarchy, class: 'custom-control-label' do
        %span
          = safe_format(s_('GroupSettings|Prevent members from sending invitations to groups outside of %{group} and its subgroups.'), group: link_to_group(@group))
        %p.help-text= prevent_sharing_groups_outside_hierarchy_help_text(@group)

  .form-group.gl-mb-3
    .gl-form-checkbox.custom-control.custom-checkbox
      = f.check_box :lfs_enabled, checked: @group.lfs_enabled?, class: 'custom-control-input'
      = f.label :lfs_enabled, class: 'custom-control-label' do
        %span
          = _('Allow projects within this group to use Git LFS')
          = link_to sprite_icon('question-o'), help_page_path('topics/git/lfs/_index.md')
        %p.help-text= _('This setting can be overridden in each project.')

변경 후:

= gitlab_ui_form_for @group do |f|
  .form-group.gl-mb-3
    = f.gitlab_ui_checkbox_component :prevent_sharing_groups_outside_hierarchy,
        safe_format(s_('GroupSettings|Prevent members from sending invitations to groups outside of %{group} and its subgroups.'), group: link_to_group(@group)),
        help_text: prevent_sharing_groups_outside_hierarchy_help_text(@group),
        checkbox_options: { disabled: !can_change_prevent_sharing_groups_outside_hierarchy?(@group) }

  .form-group.gl-mb-3
    = f.gitlab_ui_checkbox_component :lfs_enabled, checkbox_options: { checked: @group.lfs_enabled? } do |c|
      - c.with_label do
        = _('Allow projects within this group to use Git LFS')
        = link_to sprite_icon('question-o'), help_page_path('topics/git/lfs/_index.md')
      - c.with_help_text do
        = _('This setting can be overridden in each project.')

사용 가능한 컴포넌트#

GitLab UI 폼 빌더를 사용할 때 HAML에서 사용할 수 있는 컴포넌트는 다음과 같습니다.

현재는 나열된 컴포넌트만 사용 가능하지만, 더 많은 컴포넌트가 계획되어 있습니다.

gitlab_ui_checkbox_component#

GitLab UI 문서

인수#
인수 타입 필수 여부 (기본값) 설명
method Symbol true gitlab_ui_form_for에 전달된 객체의 속성입니다.
label String false (nil) 체크박스 라벨입니다. HTML이 필요한 경우 이 인수 대신 label 슬롯을 사용할 수 있습니다.
help_text String false (nil) 체크박스 아래에 표시되는 도움말 텍스트입니다. HTML이 필요한 경우 이 인수 대신 help_text 슬롯을 사용할 수 있습니다.
checkbox_options Hash false ({}) Rails check_box 메서드에 전달되는 옵션입니다.
checked_value String false ('1') 체크박스가 선택됐을 때의 값입니다.
unchecked_value String false ('0') 체크박스가 선택 해제됐을 때의 값입니다.
label_options Hash false ({}) Rails label 메서드에 전달되는 옵션입니다.
슬롯#

이 컴포넌트는 ViewComponent 슬롯을 지원합니다.

슬롯 설명
label 체크박스 라벨 콘텐츠입니다. label 인수 대신 이 슬롯을 사용할 수 있습니다.
help_text 체크박스 아래에 표시되는 도움말 텍스트 콘텐츠입니다. help_text 인수 대신 이 슬롯을 사용할 수 있습니다.

gitlab_ui_radio_component#

GitLab UI 문서

인수#
인수 타입 필수 여부 (기본값) 설명
method Symbol true gitlab_ui_form_for에 전달된 객체의 속성입니다.
value Symbol true 라디오 태그의 값입니다.
label String false (nil) 라디오 라벨입니다. 라벨 내부에 HTML 콘텐츠가 필요한 경우 이 인수 대신 label 슬롯을 사용할 수 있습니다.
help_text String false (nil) 라디오 버튼 아래에 표시되는 도움말 텍스트입니다. 도움말 텍스트 내부에 HTML 콘텐츠가 필요한 경우 이 인수 대신 help_text 슬롯을 사용할 수 있습니다.
radio_options Hash false ({}) Rails radio_button 메서드에 전달되는 옵션입니다.
label_options Hash false ({}) Rails label 메서드에 전달되는 옵션입니다.
슬롯#

이 컴포넌트는 ViewComponent 슬롯을 지원합니다.

슬롯 설명
label 체크박스 라벨 콘텐츠입니다. label 인수 대신 이 슬롯을 사용할 수 있습니다.
help_text 라디오 버튼 아래에 표시되는 도움말 텍스트 콘텐츠입니다. help_text 인수 대신 이 슬롯을 사용할 수 있습니다.