{{- /* Task lists rendering */ -}} {{- /* If Hugo supports the list rendering hook, refactor this snippet. */ -}} {{- $iconMap := dict " " "fa-regular fa-square" "x" "fa-solid fa-check-square" "/" "fa-regular fa-square" "-" "fa-solid fa-square-xmark" "<" "fa-regular fa-calendar-plus" ">" "fa-regular fa-calendar-minus" "!" "fa-solid fa-circle-exclamation" "\\?" "fa-regular fa-circle-question" -}} {{- /* Custom Task lists */ -}} {{- $iconMap = site.Params.taskList | merge $iconMap -}} {{- /* Get the extended signs */ -}} {{- $extendedSigns := slice -}} {{- range $sign, $icon := $iconMap -}} {{- $extendedSigns = $extendedSigns | append $sign -}} {{- end -}} {{- /* The basic syntax is compatible with GitHub, Obsidian, and Typora. The basic format is as follows: - [ ] Unchecked - [x] Checked */ -}} {{- $icon := dict "Class" (add "checkbox-icon fa-fw " (index $iconMap " ")) | partial "plugin/icon.html" -}} {{- $label := T (printf "taskList.%v" " ") -}} {{- $content := replaceRE `
  • (\n

    )* (.+?)(

    \n)*
  • ` (printf `
  • $1%s$2$3
  • ` $label $icon) . -}} {{- $label := T (printf "taskList.%v" "x") -}} {{- $icon := dict "Class" (add "checkbox-icon fa-fw " (index $iconMap "x")) | partial "plugin/icon.html" -}} {{- $content = replaceRE `
  • (\n

    )* (.+?)(

    \n)*
  • ` (printf `
  • $1%s$2$3
  • ` $label $icon) $content -}} {{- /* The extended syntax is compatible with Obsidian. The extended format is as follows: - [-] Cancelled - [/] In Progress - [<] Scheduled - [>] Rescheduled - [!] Important - [?] Question */ -}} {{- range $extendedSigns -}} {{- $class := index $iconMap . | default "fa-solid fa-check-square" -}} {{- $icon := dict "Class" (add "checkbox-icon fa-fw " $class) | partial "plugin/icon.html" -}} {{- $sign := htmlEscape . -}} {{- $originSign := replace . "\\" "" -}} {{- $label := (T (printf "taskList.%v" $originSign)) | default (T (printf "taskList.%v" " ")) -}} {{- $content = replaceRE (printf `
  • (\n

    )*\[%s\] (.+?)(

    \n)*
  • ` $sign) (printf `
  • $1%s$2$3
  • ` $originSign $label $icon) $content -}} {{- end -}} {{- return $content -}}