Aphorism.svelte 805 B

1234567891011121314151617181920212223242526
  1. <script>
  2. // 引入数据
  3. // import data
  4. import aphorisms from '../../data/aphorisms';
  5. /**
  6. * @typedef {Object} Props
  7. * @property {number} [num] - number of items to display
  8. * @property {boolean} [compact] - whether to use compact mode
  9. */
  10. /** @type {Props} */
  11. let { num = 0, compact = false } = $props();
  12. // 从 aphorisms 随机取出 num 条数据
  13. // get num items from aphorisms randomly
  14. const aphorismsList = aphorisms.sort(() => Math.random() - 0.5).slice(0, num);
  15. </script>
  16. <div class="{compact ? '' : 'px-4 py-8 '}divide-y divide-black/5 dark:divide-white/5">
  17. {#each aphorismsList as item}
  18. <div class:py-6={num > 1}>
  19. <div class="text-sm text-justify">{item.text}</div>
  20. <div class="text-right mt-1" class:italic={item.fromItalic}>{item.from}</div>
  21. </div>
  22. {/each}
  23. </div>