@extends('layouts.adminlte') @section('title', 'Guide Program') @section('page_title', 'Guide Program') @push('styles') @endpush @section('content') @php if (! function_exists('guide_render_step')) { /** * Render step text with: * - fenced code blocks (```lang ... ```): rendered as
...
* - inline code (`...`): rendered as ... * * We keep rendering strict (escape everything) to avoid accidental HTML injection. */ function guide_render_step($text): string { $text = (string) $text; $pattern = '/```([a-zA-Z0-9_-]+)?\\s*\\R([\\s\\S]*?)\\R```/m'; $out = ''; $offset = 0; while (preg_match($pattern, $text, $m, PREG_OFFSET_CAPTURE, $offset)) { $full = $m[0][0]; $pos = (int) $m[0][1]; // Normal text before the fenced block. $before = substr($text, $offset, $pos - $offset); if ($before !== '') { $escaped = e($before); $escaped = preg_replace_callback('/`([^`]+)`/', fn ($mm) => ''.$mm[1].'', $escaped); $out .= nl2br($escaped); } $lang = isset($m[1][0]) ? trim((string) $m[1][0]) : ''; $code = (string) ($m[2][0] ?? ''); $codeEscaped = e(rtrim($code, "\r\n")); $langClass = $lang !== '' ? ' language-'.preg_replace('/[^a-zA-Z0-9_-]/', '', $lang) : ''; $out .= '
'.$codeEscaped.'
'; $offset = $pos + strlen($full); } // Remaining normal text after last fenced block. $tail = substr($text, $offset); if ($tail !== '') { $escaped = e($tail); $escaped = preg_replace_callback('/`([^`]+)`/', fn ($mm) => ''.$mm[1].'', $escaped); $out .= nl2br($escaped); } return $out; } } @endphp

Guide Penggunaan Program

Quick Start: ikuti urutan implementasi supaya absensi dan payroll cepat jalan.
Untuk menampilkan screenshot di guide ini, simpan file gambar ke folder: {{ $screenshotBaseDir }} dengan pola nama: {section-id}-01.png, {section-id}-02.png, dst.
@foreach ($groups as $group)
{{ $group['title'] }}
@foreach ($group['sections'] as $section)
{{ $section['title'] }}
{{ $section['id'] }}
    @foreach ($section['steps'] as $step)
  1. {!! guide_render_step($step) !!}
  2. @endforeach
@if (!empty($screenshots[$section['id']]))
@foreach ($screenshots[$section['id']] as $idx => $shot) Screenshot {{ $section['id'] }} {{ $idx + 1 }}
Screenshot {{ $idx + 1 }}
@endforeach
@endif
@endforeach
@endforeach
@endsection @push('scripts') @endpush