list.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <!DOCTYPE html>
  2. <html lang="{{ .Site.LanguageCode }}">
  3. {{ partial "head.html" . }}
  4. <body>
  5. <div id="all">
  6. {{ partial "navbar.html" . }}
  7. {{ partial "breadcrumbs.html" . }}
  8. <div id="content">
  9. <div class="container pt-5">
  10. <div class="row">
  11. <div class="col-md-9" id="blog-listing-medium">
  12. {{ $paginator := .Paginate (where .Data.Pages "Type" "blog") }}
  13. {{ range $paginator.Pages }}
  14. <section class="post">
  15. <div class="row">
  16. <div class="col-md-4">
  17. <div class="image">
  18. <a href="{{ .Permalink }}">
  19. {{ if .Params.banner }}
  20. <img src="{{ .Params.banner | relURL }}" class="img-responsive" alt="">
  21. {{ else }}
  22. <div class="img-placeholder" role="img" aria-label="Cover image unavailable">
  23. <span class="placeholder-text">No cover image</span>
  24. </div>
  25. <!-- <div class="img-placeholder"></div> -->
  26. <!-- <img src="{{ "img/placeholder.png" | relURL }}" class="img-responsive" alt=""> -->
  27. {{ end }}
  28. </a>
  29. </div>
  30. </div>
  31. <div class="col-md-8">
  32. <h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
  33. <div class="clearfix">
  34. <p class="author-category">
  35. {{ if isset .Params "author" }}
  36. {{ i18n "authorBy" }} <a href="#">{{ .Params.author }}</a>
  37. {{ end }}
  38. {{ if isset .Params "categories" }}
  39. {{ if gt (len .Params.categories) 0 }}
  40. in <a href="{{ "categories/" | relURL }}{{ index .Params.categories 0 | urlize | lower }}">{{
  41. index .Params.categories 0 }}</a>
  42. {{ end }}
  43. {{ end }}
  44. </p>
  45. {{ if isset .Params "date" }}
  46. <p class="date-comments">
  47. <a href="{{ .Permalink }}"><i class="far fa-calendar"></i> {{ .Date.Format
  48. .Site.Params.date_format }}</a>
  49. </p>
  50. {{ end }}
  51. </div>
  52. <!-- <p class="intro">{{ .Summary }}</p> -->
  53. {{ $maxSummaryLength := 200 }} <!-- 設定顯示的最大字數 -->
  54. <!-- 判斷是否需要省略 Summary -->
  55. {{ if gt (len .Summary) $maxSummaryLength }}
  56. <!-- 若 Summary 超過顯示的最大字數則省略 -->
  57. <p class="intro">{{ substr .Summary 0 $maxSummaryLength }}...</p>
  58. {{ else }}
  59. <!-- 未超過則直接顯示 -->
  60. <p class="intro">{{ .Summary }}</p>
  61. {{ end }}
  62. <p class="read-more"><a href="{{ .Permalink }}" class="btn btn-template-main">{{ i18n
  63. "continueReading" }}</a>
  64. </p>
  65. </div>
  66. </div>
  67. </section>
  68. {{ end }}
  69. <ul class="pager">
  70. {{ if .Paginator.HasPrev }}
  71. <li class="previous"><a href="{{ .Paginator.Prev.URL | relURL }}">&larr; {{ i18n "newer" }}</a></li>
  72. {{ else }}
  73. <li class="previous disabled"><a href="#">&larr; {{ i18n "newer" }}</a></li>
  74. {{ end }}
  75. {{ if .Paginator.HasNext }}
  76. <li class="next"><a href="{{ .Paginator.Next.URL | relURL }}">{{ i18n "older" }} &rarr;</a></li>
  77. {{ else }}
  78. <li class="next disabled"><a href="#">{{ i18n "older" }} &rarr;</a></li>
  79. {{ end }}
  80. </ul>
  81. </div>
  82. <div class="col-md-3">
  83. {{ partial "sidebar.html" . }}
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. {{ partial "LP_components/Footer.html" . }}
  89. </div>
  90. {{ partial "scripts.html" . }}
  91. <script>
  92. document.addEventListener("DOMContentLoaded", () => {
  93. const placeholders = document.querySelectorAll(".img-placeholder");
  94. const colors = ["#F6C90E", "#FF6B6B", "#4ECDC4", "#1A535C", "#FF9F1C", "#6C5CE7", "#00B894"];
  95. placeholders.forEach(el => {
  96. const randomColor = colors[Math.floor(Math.random() * colors.length)];
  97. el.style.backgroundColor = randomColor;
  98. });
  99. });
  100. </script>
  101. </body>
  102. </html>