@vigilkids/section-renderer-vue 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -62,12 +62,27 @@ import '@vigilkids/section-renderer-vue/styles/visiva'
62
62
  - 字重:`font-normal` `font-medium` `font-semibold` `font-bold` `font-black`
63
63
  - 对齐:`text-left` `text-center` `text-right`
64
64
  - 行高:`leading-tight` `leading-normal` `leading-relaxed` `leading-loose`
65
+ - 表格容器:`table-fixed`(用在 `<table>`,启用固定列宽布局 + 自动换行)
66
+ - 列宽(像素):`col-60` `col-80` `col-100` `col-120` `col-150` `col-180` `col-200` `col-250` `col-300` `col-350` `col-400` `col-500`
67
+ - 列宽(百分比):`col-10p` `col-15p` `col-20p` `col-25p` `col-30p` `col-33p` `col-40p` `col-50p` `col-60p` `col-66p` `col-70p` `col-75p` `col-80p`
65
68
 
66
69
  示例:
67
70
 
68
71
  ```html
69
72
  <img class="block w-fit mx-auto mb-20" src="..." alt="..." />
70
73
  <p class="mb-20 text-18 font-bold">%base_year%</p>
74
+
75
+ <!-- 表格列宽:必须先在 <table> 加 .table-fixed,.col-* 才会生效 -->
76
+ <table class="table-fixed">
77
+ <colgroup>
78
+ <col class="col-120" />
79
+ <col class="col-300" />
80
+ <col class="col-25p" />
81
+ </colgroup>
82
+ <thead>
83
+ <tr><th>方法</th><th>说明</th><th>限制</th></tr>
84
+ </thead>
85
+ </table>
71
86
  ```
72
87
 
73
88
  ## Components
@@ -4,6 +4,7 @@ import type { BlockData } from '@vigilkids/section-core'
4
4
  import { computed } from 'vue'
5
5
 
6
6
  import { useInlineEdit } from '../../../composables/useInlineEdit'
7
+ import { resolveArticleAnchor } from '../../../utils/article-anchor'
7
8
 
8
9
  const props = defineProps<{
9
10
  blockOrder: string[]
@@ -28,6 +29,8 @@ const headingClass = computed(() => `h3-${variant.value}`)
28
29
 
29
30
  const iconClass = computed(() => (variant.value === 'tips-badge' ? 'h3-badge' : 'h3-icon'))
30
31
 
32
+ const resolvedAnchor = computed(() => resolveArticleAnchor(s.value.anchor, s.value.text))
33
+
31
34
  const { editableAttrs } = useInlineEdit({
32
35
  editorMode: () => !!props.editorMode,
33
36
  onSettingUpdate: (key, value) => emit('update:setting', key, value),
@@ -39,7 +42,7 @@ const { editableAttrs } = useInlineEdit({
39
42
  </script>
40
43
 
41
44
  <template>
42
- <h3 :class="headingClass">
45
+ <h3 :id="resolvedAnchor || undefined" :class="headingClass">
43
46
  <!-- eslint-disable-next-line vue/no-v-html -->
44
47
  <span :class="iconClass" v-bind="editableAttrs('badge_text')" v-html="s.badge_text" />
45
48
  <!-- eslint-disable-next-line vue/no-v-html -->
@@ -1 +1 @@
1
- .article-content .mt-0{margin-top:0}.article-content .mt-5{margin-top:5px}.article-content .mt-10{margin-top:10px}.article-content .mt-15{margin-top:15px}.article-content .mt-20{margin-top:20px}.article-content .mt-30{margin-top:30px}.article-content .mt-40{margin-top:40px}.article-content .mb-0{margin-bottom:0}.article-content .mb-5{margin-bottom:5px}.article-content .mb-10{margin-bottom:10px}.article-content .mb-15{margin-bottom:15px}.article-content .mb-20{margin-bottom:20px}.article-content .mb-30{margin-bottom:30px}.article-content .mb-40{margin-bottom:40px}.article-content .ml-5{margin-left:5px}.article-content .ml-10{margin-left:10px}.article-content .ml-15{margin-left:15px}.article-content .ml-20{margin-left:20px}.article-content .ml-auto{margin-left:auto}.article-content .mr-5{margin-right:5px}.article-content .mr-10{margin-right:10px}.article-content .mr-15{margin-right:15px}.article-content .mr-20{margin-right:20px}.article-content .mr-auto{margin-right:auto}.article-content .mx-auto{margin-left:auto;margin-right:auto}.article-content .pt-5{padding-top:5px}.article-content .pt-10{padding-top:10px}.article-content .pt-15{padding-top:15px}.article-content .pt-20{padding-top:20px}.article-content .pb-5{padding-bottom:5px}.article-content .pb-10{padding-bottom:10px}.article-content .pb-15{padding-bottom:15px}.article-content .pb-20{padding-bottom:20px}.article-content .pl-5{padding-left:5px}.article-content .pl-10{padding-left:10px}.article-content .pl-15{padding-left:15px}.article-content .pl-20{padding-left:20px}.article-content .pr-5{padding-right:5px}.article-content .pr-10{padding-right:10px}.article-content .pr-15{padding-right:15px}.article-content .pr-20{padding-right:20px}.article-content .p-5{padding:5px}.article-content .p-10{padding:10px}.article-content .p-15{padding:15px}.article-content .p-20{padding:20px}.article-content .px-5{padding-left:5px;padding-right:5px}.article-content .px-10{padding-left:10px;padding-right:10px}.article-content .px-15{padding-left:15px;padding-right:15px}.article-content .px-20{padding-left:20px;padding-right:20px}.article-content .py-5{padding-bottom:5px;padding-top:5px}.article-content .py-10{padding-bottom:10px;padding-top:10px}.article-content .py-15{padding-bottom:15px;padding-top:15px}.article-content .py-20{padding-bottom:20px;padding-top:20px}.article-content .block{display:block}.article-content .inline-block{display:inline-block}.article-content .w-full{width:100%}.article-content .w-fit{width:-moz-fit-content;width:fit-content}.article-content .text-12{font-size:12px}.article-content .text-14{font-size:14px}.article-content .text-16{font-size:16px}.article-content .text-18{font-size:18px}.article-content .text-20{font-size:20px}.article-content .text-24{font-size:24px}.article-content .text-28{font-size:28px}.article-content .text-30{font-size:30px}.article-content .text-32{font-size:32px}.article-content .text-36{font-size:36px}.article-content .font-normal{font-weight:400}.article-content .font-medium{font-weight:500}.article-content .font-semibold{font-weight:600}.article-content .font-bold{font-weight:700}.article-content .font-black{font-weight:900}.article-content .text-left{text-align:left}.article-content .text-center{text-align:center}.article-content .text-right{text-align:right}.article-content .leading-tight{line-height:1.25}.article-content .leading-normal{line-height:1.5}.article-content .leading-relaxed{line-height:1.75}.article-content .leading-loose{line-height:2}.article-content .article-image{display:flex;flex-direction:column;gap:10px;margin:10px 0 30px}.article-content .article-image--align-left{align-items:flex-start;text-align:left}.article-content .article-image--align-center{align-items:center;text-align:center}.article-content .article-image--align-right{align-items:flex-end;text-align:right}.article-content .article-image .article-image__img{border-radius:24px;display:block;margin:0;max-width:100%}.article-content .article-image--size-standard .article-image__img{max-width:500px;width:100%}.article-content .article-image--size-wide .article-image__img{max-width:760px;width:100%}.article-content .article-image--size-full .article-image__img{max-width:none;width:100%}.article-content .article-image--fit-contain .article-image__img{-o-object-fit:contain;object-fit:contain}.article-content .article-image--fit-cover .article-image__img{-o-object-fit:cover;object-fit:cover}.article-content .article-image--radius-none .article-image__img{border-radius:0}.article-content .article-image--radius-sm .article-image__img{border-radius:10px}.article-content .article-image--radius-md .article-image__img{border-radius:16px}.article-content .article-image--radius-lg .article-image__img{border-radius:24px}.article-content .article-image--radius-xl .article-image__img{border-radius:32px}.article-content .article-image .article-image__caption{color:#999;font-size:14px;line-height:1.6;margin:0;max-width:100%}
1
+ .article-content .mt-0{margin-top:0}.article-content .mt-5{margin-top:5px}.article-content .mt-10{margin-top:10px}.article-content .mt-15{margin-top:15px}.article-content .mt-20{margin-top:20px}.article-content .mt-30{margin-top:30px}.article-content .mt-40{margin-top:40px}.article-content .mb-0{margin-bottom:0}.article-content .mb-5{margin-bottom:5px}.article-content .mb-10{margin-bottom:10px}.article-content .mb-15{margin-bottom:15px}.article-content .mb-20{margin-bottom:20px}.article-content .mb-30{margin-bottom:30px}.article-content .mb-40{margin-bottom:40px}.article-content .ml-5{margin-left:5px}.article-content .ml-10{margin-left:10px}.article-content .ml-15{margin-left:15px}.article-content .ml-20{margin-left:20px}.article-content .ml-auto{margin-left:auto}.article-content .mr-5{margin-right:5px}.article-content .mr-10{margin-right:10px}.article-content .mr-15{margin-right:15px}.article-content .mr-20{margin-right:20px}.article-content .mr-auto{margin-right:auto}.article-content .mx-auto{margin-left:auto;margin-right:auto}.article-content .pt-5{padding-top:5px}.article-content .pt-10{padding-top:10px}.article-content .pt-15{padding-top:15px}.article-content .pt-20{padding-top:20px}.article-content .pb-5{padding-bottom:5px}.article-content .pb-10{padding-bottom:10px}.article-content .pb-15{padding-bottom:15px}.article-content .pb-20{padding-bottom:20px}.article-content .pl-5{padding-left:5px}.article-content .pl-10{padding-left:10px}.article-content .pl-15{padding-left:15px}.article-content .pl-20{padding-left:20px}.article-content .pr-5{padding-right:5px}.article-content .pr-10{padding-right:10px}.article-content .pr-15{padding-right:15px}.article-content .pr-20{padding-right:20px}.article-content .p-5{padding:5px}.article-content .p-10{padding:10px}.article-content .p-15{padding:15px}.article-content .p-20{padding:20px}.article-content .px-5{padding-left:5px;padding-right:5px}.article-content .px-10{padding-left:10px;padding-right:10px}.article-content .px-15{padding-left:15px;padding-right:15px}.article-content .px-20{padding-left:20px;padding-right:20px}.article-content .py-5{padding-bottom:5px;padding-top:5px}.article-content .py-10{padding-bottom:10px;padding-top:10px}.article-content .py-15{padding-bottom:15px;padding-top:15px}.article-content .py-20{padding-bottom:20px;padding-top:20px}.article-content .block{display:block}.article-content .inline-block{display:inline-block}.article-content .w-full{width:100%}.article-content .w-fit{width:-moz-fit-content;width:fit-content}.article-content .text-12{font-size:12px}.article-content .text-14{font-size:14px}.article-content .text-16{font-size:16px}.article-content .text-18{font-size:18px}.article-content .text-20{font-size:20px}.article-content .text-24{font-size:24px}.article-content .text-28{font-size:28px}.article-content .text-30{font-size:30px}.article-content .text-32{font-size:32px}.article-content .text-36{font-size:36px}.article-content .font-normal{font-weight:400}.article-content .font-medium{font-weight:500}.article-content .font-semibold{font-weight:600}.article-content .font-bold{font-weight:700}.article-content .font-black{font-weight:900}.article-content .text-left{text-align:left}.article-content .text-center{text-align:center}.article-content .text-right{text-align:right}.article-content .leading-tight{line-height:1.25}.article-content .leading-normal{line-height:1.5}.article-content .leading-relaxed{line-height:1.75}.article-content .leading-loose{line-height:2}.article-content .article-image{display:flex;flex-direction:column;gap:10px;margin:10px 0 30px}.article-content .article-image--align-left{align-items:flex-start;text-align:left}.article-content .article-image--align-center{align-items:center;text-align:center}.article-content .article-image--align-right{align-items:flex-end;text-align:right}.article-content .article-image .article-image__img{border-radius:24px;display:block;margin:0;max-width:100%}.article-content .article-image--size-standard .article-image__img{max-width:500px;width:100%}.article-content .article-image--size-wide .article-image__img{max-width:760px;width:100%}.article-content .article-image--size-full .article-image__img{max-width:none;width:100%}.article-content .article-image--fit-contain .article-image__img{-o-object-fit:contain;object-fit:contain}.article-content .article-image--fit-cover .article-image__img{-o-object-fit:cover;object-fit:cover}.article-content .article-image--radius-none .article-image__img{border-radius:0}.article-content .article-image--radius-sm .article-image__img{border-radius:10px}.article-content .article-image--radius-md .article-image__img{border-radius:16px}.article-content .article-image--radius-lg .article-image__img{border-radius:24px}.article-content .article-image--radius-xl .article-image__img{border-radius:32px}.article-content .article-image .article-image__caption{color:#999;font-size:14px;line-height:1.6;margin:0;max-width:100%}.article-content .table-fixed{border-collapse:collapse;table-layout:fixed;width:100%}.article-content .table-fixed td,.article-content .table-fixed th{word-wrap:break-word;overflow-wrap:break-word;white-space:normal}.article-content .col-60{width:60px}.article-content .col-80{width:80px}.article-content .col-100{width:100px}.article-content .col-120{width:120px}.article-content .col-150{width:150px}.article-content .col-180{width:180px}.article-content .col-200{width:200px}.article-content .col-250{width:250px}.article-content .col-300{width:300px}.article-content .col-350{width:350px}.article-content .col-400{width:400px}.article-content .col-500{width:500px}.article-content .col-10p{width:10%}.article-content .col-15p{width:15%}.article-content .col-20p{width:20%}.article-content .col-25p{width:25%}.article-content .col-30p{width:30%}.article-content .col-33p{width:33.33%}.article-content .col-40p{width:40%}.article-content .col-50p{width:50%}.article-content .col-60p{width:60%}.article-content .col-66p{width:66.67%}.article-content .col-70p{width:70%}.article-content .col-75p{width:75%}.article-content .col-80p{width:80%}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vigilkids/section-renderer-vue",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Vue 3 adapter for OneX Section Renderer SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",