Files
FixIt/layouts/_partials/function/task-lists.html
T

56 lines
2.2 KiB
HTML

{{- /* 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 " (index $iconMap " ")) | partial "plugin/icon.html" -}}
{{- $label := T (printf "taskList.%v" " ") -}}
{{- $content := replaceRE `<li>(\n<p>)*<input disabled="" type="checkbox"> (.+?)(</p>\n)*</li>` (printf `<li data-task=" " title=%q>$1%s$2$3</li>` $label $icon) . -}}
{{- $label := T (printf "taskList.%v" "x") -}}
{{- $icon := dict "Class" (add "checkbox-icon " (index $iconMap "x")) | partial "plugin/icon.html" -}}
{{- $content = replaceRE `<li>(\n<p>)*<input checked="" disabled="" type="checkbox"> (.+?)(</p>\n)*</li>` (printf `<li data-task="x" title=%q>$1%s$2$3</li>` $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 " $class) | partial "plugin/icon.html" -}}
{{- $sign := htmlEscape . -}}
{{- $originSign := replace . "\\" "" -}}
{{- $label := (T (printf "taskList.%v" $originSign)) | default (T (printf "taskList.%v" " ")) -}}
{{- $content = replaceRE (printf `<li>(\n<p>)*\[%s\] (.+?)(</p>\n)*</li>` $sign) (printf `<li data-task=%q title=%q>$1%s$2$3</li>` $originSign $label $icon) $content -}}
{{- end -}}
{{- return $content -}}