jeawin-astro 3.0.45 → 3.0.49

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.
Files changed (45) hide show
  1. package/package.json +2 -2
  2. package/src/components/banner_swiper.astro +9 -9
  3. package/src/components/blocks/block10.astro +3 -3
  4. package/src/components/children_categories_list.astro +2 -1
  5. package/src/components/comment_form.astro +9 -9
  6. package/src/components/detail_images.astro +7 -7
  7. package/src/components/downloads/download1.astro +4 -4
  8. package/src/components/downloads/download2.astro +2 -2
  9. package/src/components/footer/footer1.astro +2 -2
  10. package/src/components/footer/footer2.astro +2 -2
  11. package/src/components/form.astro +2 -2
  12. package/src/components/formitem/country.astro +2 -2
  13. package/src/components/friendlinks.astro +2 -2
  14. package/src/components/hero/hero3.astro +3 -3
  15. package/src/components/hero/hero5.astro +3 -3
  16. package/src/components/index_children_categories_list.astro +2 -2
  17. package/src/components/logo.astro +5 -3
  18. package/src/components/newsletter.astro +3 -3
  19. package/src/components/newsletters/newsletter1.astro +3 -3
  20. package/src/components/newsletters/newsletter2.astro +3 -3
  21. package/src/components/newsletters/newsletter3.astro +3 -3
  22. package/src/components/newsletters/newsletter4.astro +3 -3
  23. package/src/components/newsletters/newsletter5.astro +3 -3
  24. package/src/components/newsletters/newsletter6.astro +3 -3
  25. package/src/components/pagination.astro +5 -5
  26. package/src/components/prevnext.astro +4 -4
  27. package/src/components/prevnext_simple.astro +3 -3
  28. package/src/components/pricings/pricing1.astro +2 -2
  29. package/src/components/pricings/pricing10.astro +2 -2
  30. package/src/components/pricings/pricing3.astro +2 -2
  31. package/src/components/pricings/pricing7.astro +2 -2
  32. package/src/components/pricings/pricing8.astro +2 -2
  33. package/src/components/product_card.astro +2 -2
  34. package/src/components/search_input.astro +6 -6
  35. package/src/components/search_result.astro +6 -6
  36. package/src/components/share_button.astro +12 -12
  37. package/src/components/smartmenus/smartmenus1.astro +1 -1
  38. package/src/components/smartmenus.astro +4 -4
  39. package/src/components/smartmenus_megamenu.astro +1 -1
  40. package/src/components/smartmenus_submenu.astro +6 -6
  41. package/src/components/swiper.astro +1 -1
  42. package/src/layouts/Footer.astro +3 -3
  43. package/src/scripts/consts.js +7 -3
  44. package/src/scripts/util.d.ts +4 -0
  45. package/src/scripts/util.js +10 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jeawin-astro",
3
- "version": "3.0.45",
3
+ "version": "3.0.49",
4
4
  "author": "chaegumi <chaegumi@qq.com>",
5
5
  "description": "",
6
6
  "license": "MIT",
@@ -65,7 +65,7 @@
65
65
  "@types/alpinejs": "^3.13.11",
66
66
  "alpinejs": "^3.14.9",
67
67
  "aos": "3.0.0-beta.6",
68
- "astro": "^5.5.4",
68
+ "astro": "^5.7.0",
69
69
  "astro-color-scheme": "^1.1.5",
70
70
  "astro-embed": "^0.9.0",
71
71
  "astro-icon": "^1.1.5",
@@ -11,7 +11,7 @@
11
11
  * @filesource
12
12
  */
13
13
  import _ from "lodash";
14
- import { img_change_attrs, render_value, render_url } from "../scripts/util.js";
14
+ import { img_change_attrs, render_value, render_url, render_lang } from "../scripts/util.js";
15
15
  import JeawinApi from "../scripts/cms.js";
16
16
  import Button from "./button.astro";
17
17
  interface Props {
@@ -69,7 +69,7 @@ const banners = await jeawinapi.get_nodes({ channel_id: 5 });
69
69
  >
70
70
  {banners.nodes &&
71
71
  banners.nodes.map((banner: any, idx: number) => (
72
- <swiper-slide class:list={["swiper-slide", SlideClass, { hidden: idx > 0 }]}>
72
+ <swiper-slide lazy={idx > 0 ? "true" : "false"} class:list={["swiper-slide", SlideClass, { hidden: idx > 0 }]}>
73
73
  {show_title && render_value(banner, 'show_text_block', '1') == '1' ? (
74
74
  <div class="relative h-full w-full">
75
75
  <div class="absolute inset-0 flex items-center justify-center text-white text-center p-4">
@@ -83,7 +83,7 @@ const banners = await jeawinapi.get_nodes({ channel_id: 5 });
83
83
  }
84
84
  <div class="text-xs line-clamp-2 md:line-clamp-none md:text-lg md:mt-4">{render_value(banner, 'sub_title')}</div>
85
85
  <Button tag_name="a" class="inline-block md:mt-2" href={render_url(render_value(banner, "linkurl"), base, null, url_suffix)}
86
- title={render_value(banner, 'btntext') || render_value(all_langs, 'read more')}>{render_value(banner, 'btntext') || render_value(all_langs, 'read more')}</Button>
86
+ title={render_value(banner, 'btntext') || render_lang(all_langs, 'read more')}>{render_value(banner, 'btntext') || render_lang(all_langs, 'read more')}</Button>
87
87
  </div>
88
88
 
89
89
  </div>
@@ -96,7 +96,7 @@ const banners = await jeawinapi.get_nodes({ channel_id: 5 });
96
96
  width: "100%",
97
97
  fetchpriority: "high",
98
98
  },
99
- ["class", "loading"]
99
+ ["class"]
100
100
  )}
101
101
  />
102
102
  ) : (
@@ -106,10 +106,10 @@ const banners = await jeawinapi.get_nodes({ channel_id: 5 });
106
106
  {
107
107
  width: "100%",
108
108
  class: "",
109
- loading: "",
109
+ loading: "lazy",
110
110
  fetchpriority: "high",
111
111
  },
112
- ["class", "loading"]
112
+ ["class"]
113
113
  )}
114
114
  />
115
115
  )}
@@ -124,7 +124,7 @@ const banners = await jeawinapi.get_nodes({ channel_id: 5 });
124
124
  width: "100%",
125
125
  fetchpriority: "high",
126
126
  },
127
- ["class", "loading"]
127
+ ["class"]
128
128
  )}
129
129
  />
130
130
  ) : (
@@ -134,10 +134,10 @@ const banners = await jeawinapi.get_nodes({ channel_id: 5 });
134
134
  {
135
135
  width: "100%",
136
136
  class: "",
137
- loading: "",
137
+ loading: "lazy",
138
138
  fetchpriority: "high",
139
139
  },
140
- ["class", "loading"]
140
+ ["class"]
141
141
  )}
142
142
  />
143
143
  )}
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import SectionContainer from "../section_container.astro";
13
13
  import Heading1 from "../heading/heading1.astro";
14
- import { render_value } from "../../scripts/util.js";
14
+ import { render_lang, render_value } from "../../scripts/util.js";
15
15
 
16
16
  interface Props {
17
17
  bgcolor?: any;
@@ -30,8 +30,8 @@ const {
30
30
  } = Astro.props;
31
31
 
32
32
  const { all_langs } = Astro.locals;
33
- const DetailLang = render_value(all_langs, "Detail");
34
- const ContactLang = render_value(all_langs, "Contact");
33
+ const DetailLang = render_lang(all_langs, "Detail");
34
+ const ContactLang = render_lang(all_langs, "Contact");
35
35
 
36
36
  function splitHtml(content: any) {
37
37
  const content_array = content.split("\n");
@@ -16,6 +16,7 @@ import {
16
16
  get_children_categories,
17
17
  render_url,
18
18
  render_value,
19
+ render_lang,
19
20
  is_default_image,
20
21
  } from "../scripts/util.js";
21
22
  interface Props {
@@ -30,7 +31,7 @@ const categories = get_children_categories(
30
31
  channel_id,
31
32
  category_id
32
33
  );
33
- const ProductCountLang = render_value(all_langs, "product");
34
+ const ProductCountLang = render_lang(all_langs, "product");
34
35
  ---
35
36
 
36
37
  <div class="grid grid-cols-2 xl:grid-cols-6 gap-4">
@@ -10,7 +10,7 @@
10
10
  * @email chaegumi@jeawin.com
11
11
  * @filesource
12
12
  */
13
- import { render_value } from "../scripts/util.js";
13
+ import { render_value, render_lang } from "../scripts/util.js";
14
14
  interface Props {
15
15
  canonical: string;
16
16
  channel_id: string;
@@ -47,7 +47,7 @@ const { siteinfo, all_langs, jeawin_form_api_domain } = Astro.locals;
47
47
  <input type="hidden" name="fromurl" value={canonical} />
48
48
 
49
49
  <div style="margin-top:10px;">
50
- {render_value(all_langs, "Nickname")}<span style="color:red;">*</span>:
50
+ {render_lang(all_langs, "Nickname")}<span style="color:red;">*</span>:
51
51
  </div>
52
52
  <div>
53
53
  <input
@@ -55,7 +55,7 @@ const { siteinfo, all_langs, jeawin_form_api_domain } = Astro.locals;
55
55
  name="nickname"
56
56
  id="comment_nickname"
57
57
  autocomplete="off"
58
- placeholder={render_value(all_langs, "Enter your nickname")}
58
+ placeholder={render_lang(all_langs, "Enter your nickname")}
59
59
  required="required"
60
60
  class="form-control"
61
61
  style="width:100%;"
@@ -63,7 +63,7 @@ const { siteinfo, all_langs, jeawin_form_api_domain } = Astro.locals;
63
63
  </div>
64
64
 
65
65
  <div style="margin-top:10px;">
66
- {render_value(all_langs, "E-mail")}<span style="color:red;">*</span>:
66
+ {render_lang(all_langs, "E-mail")}<span style="color:red;">*</span>:
67
67
  </div>
68
68
  <div>
69
69
  <input
@@ -71,7 +71,7 @@ const { siteinfo, all_langs, jeawin_form_api_domain } = Astro.locals;
71
71
  name="email"
72
72
  id="comment_email"
73
73
  autocomplete="off"
74
- placeholder={render_value(all_langs, "Enter your email")}
74
+ placeholder={render_lang(all_langs, "Enter your email")}
75
75
  required="required"
76
76
  class="form-control"
77
77
  style="width:100%;"
@@ -79,7 +79,7 @@ const { siteinfo, all_langs, jeawin_form_api_domain } = Astro.locals;
79
79
  </div>
80
80
 
81
81
  <div style="margin-top:10px;">
82
- {render_value(all_langs, "Rate")}<span style="color:red;">*</span>:
82
+ {render_lang(all_langs, "Rate")}<span style="color:red;">*</span>:
83
83
  </div>
84
84
  <div>
85
85
  <label><input type="radio" name="score" value="1" /> 1</label>
@@ -92,13 +92,13 @@ const { siteinfo, all_langs, jeawin_form_api_domain } = Astro.locals;
92
92
  </div>
93
93
 
94
94
  <div style="margin-top:10px;">
95
- {render_value(all_langs, "Comments")}<span style="color:red;">*</span>:
95
+ {render_lang(all_langs, "Comments")}<span style="color:red;">*</span>:
96
96
  </div>
97
97
  <div>
98
98
  <textarea
99
99
  name="comment"
100
100
  id="comment_content"
101
- placeholder={render_value(all_langs, "Enter your comment")}
101
+ placeholder={render_lang(all_langs, "Enter your comment")}
102
102
  required="required"
103
103
  style="width:100%;"
104
104
  class="form-control"
@@ -108,7 +108,7 @@ const { siteinfo, all_langs, jeawin_form_api_domain } = Astro.locals;
108
108
  <button
109
109
  type="submit"
110
110
  class="btn btn-primary ampstart-btn"
111
- id="commentFormSubmitBtn">{render_value(all_langs, "Send")}</button
111
+ id="commentFormSubmitBtn">{render_lang(all_langs, "Send")}</button
112
112
  >
113
113
  </div>
114
114
  </form>
@@ -68,7 +68,7 @@ const { node_title, nodepics = [], video, view360, thumbs_position = 'left' } =
68
68
  >
69
69
  {
70
70
  nodepics.map((pic: any, idx: number) => (
71
- <swiper-slide
71
+ <swiper-slide lazy={idx > 0 ? "true" : "false"}
72
72
  class:list={[
73
73
  "swiper-slide",
74
74
  { hidden: idx > 0 },
@@ -76,7 +76,7 @@ const { node_title, nodepics = [], video, view360, thumbs_position = 'left' } =
76
76
  ]}
77
77
  >
78
78
  <div class="content-wrapper border border-white p-1 cursor-pointer overflow-hidden h-[60px] w-[60px]">
79
- <Fragment set:html={img_change_attrs(pic, {width:'50', height:'50'}, {})} />
79
+ <Fragment set:html={img_change_attrs(pic, {width:'50', height:'50', 'loading':'lazy'}, {})} />
80
80
  </div>
81
81
  </swiper-slide>
82
82
  ))
@@ -84,7 +84,7 @@ const { node_title, nodepics = [], video, view360, thumbs_position = 'left' } =
84
84
 
85
85
  {
86
86
  video ? (
87
- <swiper-slide class="swiper-slide lg:flex-1 lg:h-[60px] lg:w-[60px] hidden">
87
+ <swiper-slide lazy="true" class="swiper-slide lg:flex-1 lg:h-[60px] lg:w-[60px] hidden">
88
88
  <div class="content-wrapper border border-white min-h-[100px] lg:min-h-[60px] p-1 cursor-pointer flex items-center justify-center">
89
89
  <Icon name="fa6-solid:file-video" class="size-10" />
90
90
  </div>
@@ -94,7 +94,7 @@ const { node_title, nodepics = [], video, view360, thumbs_position = 'left' } =
94
94
 
95
95
  {
96
96
  view360 ? (
97
- <swiper-slide class="swiper-slide lg:flex-1 lg:h-[60px] lg:w-[60px] hidden">
97
+ <swiper-slide lazy="true" class="swiper-slide lg:flex-1 lg:h-[60px] lg:w-[60px] hidden">
98
98
  <div class="content-wrapper border border-white p-1 cursor-pointer">
99
99
  <img src={view360img.src} alt="360° viewer" />
100
100
  </div>
@@ -117,7 +117,7 @@ const { node_title, nodepics = [], video, view360, thumbs_position = 'left' } =
117
117
  >
118
118
  {
119
119
  nodepics.map((pic: any, idx: number) => (
120
- <swiper-slide class:list={["swiper-slide", "magnifier", { hidden: idx > 0 }]}>
120
+ <swiper-slide lazy={idx > 0 ? "true" : "false"} class:list={["swiper-slide", "magnifier", { hidden: idx > 0 }]}>
121
121
  <Fragment set:html={pic} />
122
122
  </swiper-slide>
123
123
  ))
@@ -125,7 +125,7 @@ const { node_title, nodepics = [], video, view360, thumbs_position = 'left' } =
125
125
 
126
126
  {
127
127
  video ? (
128
- <swiper-slide class="swiper-slide hidden">
128
+ <swiper-slide lazy="true" class="swiper-slide hidden">
129
129
  <div class="flex min-h-[343px] xl:min-h-[605px] w-full">
130
130
  <img src={video.poster} alt={video.title ? video.title : node_title} />
131
131
  <button
@@ -148,7 +148,7 @@ const { node_title, nodepics = [], video, view360, thumbs_position = 'left' } =
148
148
 
149
149
  {
150
150
  view360 ? (
151
- <swiper-slide class="swiper-slide hidden">
151
+ <swiper-slide lazy="true" class="swiper-slide hidden">
152
152
  <div class="cloudimage-360 swiper-no-swiping" data-image-list-x={`${JSON.stringify(view360)}`} data-magnifier="2" data-fullscreen>
153
153
  </div>
154
154
  </swiper-slide>
@@ -1,14 +1,14 @@
1
1
  ---
2
- import { render_value, render_date } from "../../scripts/util.js";
2
+ import { render_value, render_date, render_lang } from "../../scripts/util.js";
3
3
  interface Props {
4
4
  nodes: any[];
5
5
  }
6
6
  const { nodes } = Astro.props;
7
7
  const { all_langs, siteinfo } = Astro.locals;
8
8
 
9
- const titletext = render_value(all_langs, "Title");
10
- const timetext = render_value(all_langs, "Time");
11
- const downbtntext = render_value(all_langs, "Download");
9
+ const titletext = render_lang(all_langs, "Title");
10
+ const timetext = render_lang(all_langs, "Time");
11
+ const downbtntext = render_lang(all_langs, "Download");
12
12
  ---
13
13
 
14
14
  <table class="border-collapse table-auto w-full">
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  import { Icon } from "astro-icon/components";
3
- import { render_value, render_url, render_date } from "../../scripts/util.js";
3
+ import { render_value, render_url, render_date, render_lang } from "../../scripts/util.js";
4
4
  interface Props {
5
5
  nodes: any[];
6
6
  }
7
7
  const { nodes } = Astro.props;
8
8
  const { all_langs, siteinfo, base, url_suffix } = Astro.locals;
9
9
 
10
- const downbtntext = render_value(all_langs, "Download");
10
+ const downbtntext = render_lang(all_langs, "Download");
11
11
  ---
12
12
 
13
13
  <div class="flex flex-col gap-5">
@@ -12,7 +12,7 @@ import Block from "../block.astro";
12
12
  import SiteOptions from "../site_options.astro";
13
13
  import SocialMedia from "../social_media.astro";
14
14
 
15
- import { render_url, render_value } from "../../scripts/util.js";
15
+ import { render_lang, render_url, render_value } from "../../scripts/util.js";
16
16
  const {max_width_screen = 'max-w-screen-2xl'} = Astro.props;
17
17
  const { categoryuriarr, nodeuriarr, menuuriarr, all_langs,base, url_suffix } = Astro.locals;
18
18
  ---
@@ -111,6 +111,6 @@ const { categoryuriarr, nodeuriarr, menuuriarr, all_langs,base, url_suffix } = A
111
111
  <SocialMedia />
112
112
  </div>
113
113
  </div>
114
- <div><Fragment set:html={render_value(all_langs, "Powered by")} /></div>
114
+ <div><Fragment set:html={render_lang(all_langs, "Powered by")} /></div>
115
115
  </div>
116
116
  </footer>
@@ -8,7 +8,7 @@
8
8
  * @email chaegumi@jeawin.com
9
9
  * @filesource
10
10
  */
11
- import { render_value } from "../../scripts/util.js";
11
+ import { render_lang, render_value } from "../../scripts/util.js";
12
12
  import SiteOptions from "../site_options.astro";
13
13
  import SocialMedia from "../social_media.astro";
14
14
  import Friendlinks from "../friendlinks.astro";
@@ -50,7 +50,7 @@ const { canonical, is_home, channel_id, category_id, url, uri, max_width_screen
50
50
  class="flex flex-col md:flex-row justify-between py-4 border-t border-[#4a3953]"
51
51
  >
52
52
  <div class="flex flex-wrap"><SocialMedia /></div>
53
- <div><Fragment set:html={render_value(all_langs, "Powered by")} /></div>
53
+ <div><Fragment set:html={render_lang(all_langs, "Powered by")} /></div>
54
54
  </div>
55
55
  <SiteOptions option_name="statcode">
56
56
  {(option_value: any) => <Fragment set:html={option_value} />}
@@ -9,7 +9,7 @@
9
9
  * @filesource
10
10
  */
11
11
  import JeawinApi from "../scripts/cms.js";
12
- import { render_value } from "../scripts/util.js";
12
+ import { render_value, render_lang } from "../scripts/util.js";
13
13
  import Input from "./formitem/input.astro";
14
14
  import Textarea from "./formitem/textarea.astro";
15
15
  import Radio from "./formitem/radio.astro";
@@ -34,7 +34,7 @@ const jeawinapi = new JeawinApi({
34
34
  });
35
35
  const forminfo = await jeawinapi.get_form({ form_id });
36
36
  // console.log(forminfo);
37
- const submitbuttontext = render_value(all_langs, "send message");
37
+ const submitbuttontext = render_lang(all_langs, "send message");
38
38
  ---
39
39
 
40
40
  {
@@ -9,7 +9,7 @@
9
9
  * @filesource
10
10
  */
11
11
  import JeawinApi from "../../scripts/cms.js";
12
- import { render_value } from "../../scripts/util.js";
12
+ import { render_lang, render_value } from "../../scripts/util.js";
13
13
  const { field } = Astro.props;
14
14
  const { all_langs, jeawin_apikey, jeawin_api_domain, jeawin_api_path } =
15
15
  Astro.locals;
@@ -26,7 +26,7 @@ const countrylist = await jeawinapi.get_country();
26
26
  {field.field_label}
27
27
  </span>
28
28
  <select class="mt-1 block w-full" autocomplete="off">
29
- <option value="">{render_value(all_langs, "Chooce One")}</option>
29
+ <option value="">{render_lang(all_langs, "Chooce One")}</option>
30
30
  {
31
31
  countrylist.map((country: any) => (
32
32
  <option value={country.en}>{country.en}</option>
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import _ from "lodash";
12
12
  import JeawinApi from "../scripts/cms.js";
13
- import { render_url, render_value } from "../scripts/util.js";
13
+ import { render_url, render_value,render_lang } from "../scripts/util.js";
14
14
 
15
15
  const { canonical, is_home, channel_id, category_id, url, uri } = Astro.props;
16
16
  const {
@@ -27,7 +27,7 @@ const jeawinapi = new JeawinApi({
27
27
  api_path: jeawin_api_path,
28
28
  });
29
29
 
30
- const friendlinksLang = render_value(all_langs, "friendlinks");
30
+ const friendlinksLang = render_lang(all_langs, "friendlinks");
31
31
 
32
32
  const obj = await jeawinapi.get_friendlinks({});
33
33
  const friendlinks = _.get(obj, [0], []);
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  import { Icon } from "astro-icon/components";
3
- import { render_value } from "../../scripts/util.js";
3
+ import { render_lang, render_value } from "../../scripts/util.js";
4
4
  import SectionContainer from "../section_container.astro";
5
5
  import Star from "../star.astro";
6
6
  interface Props {
@@ -56,7 +56,7 @@ const BlockTitleTag = block_title_tag;
56
56
  <input
57
57
  type="email"
58
58
  name="email"
59
- placeholder={render_value(all_langs, "Enter your email")}
59
+ placeholder={render_lang(all_langs, "Enter your email")}
60
60
  required="required"
61
61
  class="w-full px-3 py-2.5 text-gray-400 bg-gray-700 focus:bg-gray-900 duration-150 outline-hidden rounded-lg shadow-sm sm:max-w-sm sm:w-auto"
62
62
  />
@@ -65,7 +65,7 @@ const BlockTitleTag = block_title_tag;
65
65
  id="submitbtnsubscribe"
66
66
  class="cursor-pointer flex items-center justify-center gap-x-2 py-2.5 px-4 mt-3 w-full text-sm text-white font-medium bg-sky-500 hover:bg-sky-400 active:bg-sky-600 duration-150 rounded-lg sm:mt-0 sm:w-auto"
67
67
  >
68
- {render_value(all_langs, "Subscribe")}
68
+ {render_lang(all_langs, "Subscribe")}
69
69
  <Icon name="fa6-solid:arrow-right" />
70
70
  </button>
71
71
  </form>
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_value } from "../../scripts/util.js";
2
+ import { render_lang, render_value } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  import JeawinImage from "../image.astro";
5
5
  import DefaultImage from "../default_image.astro";
@@ -65,7 +65,7 @@ const BlockTitleTag = block_title_tag;
65
65
  <input
66
66
  type="email"
67
67
  name="email"
68
- placeholder={render_value(all_langs, "Enter your email")}
68
+ placeholder={render_lang(all_langs, "Enter your email")}
69
69
  required="required"
70
70
  class="text-gray-500 border border-gray-200 outline-hidden p-3 rounded-md w-full sm:w-72"
71
71
  />
@@ -74,7 +74,7 @@ const BlockTitleTag = block_title_tag;
74
74
  id="submitbtnsubscribe"
75
75
  class="cursor-pointer outline-hidden bg-gray-700 text-white text-center px-4 py-3 rounded-md shadow-sm w-full ring-offset-2 ring-gray-700 focus:ring-2 sm:w-auto"
76
76
  >
77
- {render_value(all_langs, "Subscribe")}
77
+ {render_lang(all_langs, "Subscribe")}
78
78
  </button>
79
79
  </form>
80
80
  </div>
@@ -11,7 +11,7 @@
11
11
  import {
12
12
  get_children_categories,
13
13
  render_url,
14
- render_value,
14
+ render_value, render_lang
15
15
  } from "../scripts/util.js";
16
16
  interface Props {
17
17
  all_categories: any[];
@@ -25,7 +25,7 @@ const categories = get_children_categories(
25
25
  channel_id,
26
26
  category_id
27
27
  );
28
- // const ProductCountLang = render_value(all_langs, "product");
28
+ // const ProductCountLang = render_lang(all_langs, "product");
29
29
  ---
30
30
 
31
31
  <ul>
@@ -11,12 +11,14 @@
11
11
  import SiteOptions from "./site_options.astro";
12
12
  import RemoteImage from "./remote_image.astro";
13
13
  import DefaultImage from "./default_image.astro";
14
+ import {render_url} from "../scripts/util.js";
15
+ const {logo_class} = Astro.props;
14
16
  ---
15
17
 
16
18
  <SiteOptions option_name="logo_title">
17
19
  {
18
20
  (logo_title: any) => (
19
- <a href="/" title={logo_title} class="inline-block">
21
+ <a href={render_url("/")} title={logo_title} class="inline-block">
20
22
  <SiteOptions option_name="sitelogo">
21
23
  {(sitelogo: any) => (
22
24
  <Fragment>
@@ -24,11 +26,11 @@ import DefaultImage from "./default_image.astro";
24
26
  <RemoteImage
25
27
  remote_url={sitelogo}
26
28
  alt={logo_title}
27
- class_str="mx-auto md:m-0"
29
+ class_str={`mx-auto md:m-0 ${logo_class}`}
28
30
  is_lcp="1"
29
31
  />
30
32
  ) : (
31
- <DefaultImage class="mx-auto md:m-0" />
33
+ <DefaultImage class={`mx-auto md:m-0 ${logo_class}`} />
32
34
  )}
33
35
  </Fragment>
34
36
  )}
@@ -8,7 +8,7 @@
8
8
  * @email chaegumi@jeawin.com
9
9
  * @filesource
10
10
  */
11
- import { render_value } from "../scripts/util.js";
11
+ import { render_value, render_lang } from "../scripts/util.js";
12
12
  import Input from "./formitem/input.astro";
13
13
  const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
14
14
 
@@ -31,7 +31,7 @@ const {other_btn_class} = Astro.props;
31
31
  field={{
32
32
  field_name: "email",
33
33
  field_label: "",
34
- placeholder: render_value(all_langs, "Enter your email"),
34
+ placeholder: render_lang(all_langs, "Enter your email"),
35
35
  }}
36
36
  type="email"
37
37
  />
@@ -41,7 +41,7 @@ const {other_btn_class} = Astro.props;
41
41
  type="submit"
42
42
  id="submitbtnsubscribe"
43
43
  class:list={["break-keep cursor-pointer", ...btn_class, other_btn_class ? other_btn_class : null]}
44
- >{render_value(all_langs, "Subscribe")}</button
44
+ >{render_lang(all_langs, "Subscribe")}</button
45
45
  >
46
46
  </div>
47
47
  </div>
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_value } from "../../scripts/util.js";
2
+ import { render_value,render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -51,7 +51,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
51
51
  type="email"
52
52
  name="email"
53
53
  required="required"
54
- placeholder={render_value(all_langs, "Enter your email")}
54
+ placeholder={render_lang(all_langs, "Enter your email")}
55
55
  class="text-gray-500 w-full p-2 outline-hidden"
56
56
  />
57
57
  <button
@@ -59,7 +59,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
59
59
  id="submitbtnsubscribe"
60
60
  class="cursor-pointer break-keep p-2 px-3 rounded-lg font-medium text-white bg-blue-600 hover:bg-blue-500 active:bg-blue-700 duration-150 outline-hidden shadow-md focus:shadow-none sm:px-4"
61
61
  >
62
- {render_value(all_langs, "Subscribe")}
62
+ {render_lang(all_langs, "Subscribe")}
63
63
  </button>
64
64
  </form>
65
65
  <div class="mt-3 max-w-lg text-[15px] text-blue-100 sm:mx-auto">
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_value } from "../../scripts/util.js";
2
+ import { render_value,render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -53,7 +53,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
53
53
  type="email"
54
54
  name="email"
55
55
  required="required"
56
- placeholder={render_value(all_langs, "Enter your email")}
56
+ placeholder={render_lang(all_langs, "Enter your email")}
57
57
  class="text-gray-500 w-full p-3 rounded-md border border-gray-200 outline-hidden focus:border-[var(--themeColor600)]"
58
58
  />
59
59
  <button
@@ -61,7 +61,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
61
61
  id="submitbtnsubscribe"
62
62
  class="cursor-pointer break-keep w-full mt-3 px-5 py-3 rounded-md text-white bg-[var(--themeColor600)] hover:bg-[var(--themeColor500)] active:bg-[var(--themeColor700)] duration-150 outline-hidden shadow-md focus:shadow-none focus:ring-2 ring-offset-2 ring-indigo-600 sm:mt-0 sm:ml-3 sm:w-auto"
63
63
  >
64
- {render_value(all_langs, "Subscribe")}
64
+ {render_lang(all_langs, "Subscribe")}
65
65
  </button>
66
66
  </form>
67
67
  <div class="mt-3 text-[15px] text-gray-400">
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_value } from "../../scripts/util.js";
2
+ import { render_value,render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -67,7 +67,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
67
67
  type="email"
68
68
  name="email"
69
69
  required
70
- placeholder={render_value(all_langs, "Enter your email")}
70
+ placeholder={render_lang(all_langs, "Enter your email")}
71
71
  class="w-full pl-12 pr-3 py-2 text-gray-500 bg-transparent outline-hidden border border-gray-200 focus:border-[var(--themeColor600)] shadow-xs rounded-lg sm:max-w-xs"
72
72
  />
73
73
  </div>
@@ -76,7 +76,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
76
76
  id="submitbtnsubscribe"
77
77
  class="cursor-pointer break-keep block w-full py-3 px-4 font-medium text-sm text-center text-white bg-[var(--themeColor600)] hover:bg-[var(--themeColor500)] active:bg-[var(--themeColor700)] active:shadow-none rounded-lg shadow-sm sm:w-auto md:w-full"
78
78
  >
79
- {render_value(all_langs, "Subscribe")}
79
+ {render_lang(all_langs, "Subscribe")}
80
80
  </button>
81
81
  </form>
82
82
  </div>
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_value } from "../../scripts/util.js";
2
+ import { render_value,render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -65,7 +65,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
65
65
  type="email"
66
66
  name="email"
67
67
  required
68
- placeholder={render_value(all_langs, "Enter your email")}
68
+ placeholder={render_lang(all_langs, "Enter your email")}
69
69
  class="w-full pl-12 pr-3 py-2 text-gray-500 bg-white outline-hidden border border-gray-200 focus:border-[var(--themeColor600)] shadow-xs rounded-lg"
70
70
  />
71
71
  </div>
@@ -74,7 +74,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
74
74
  id="submitbtnsubscribe"
75
75
  class="cursor-pointer break-keep block w-auto py-3 px-4 font-medium text-sm text-center text-white bg-[var(--themeColor600)] hover:bg-[var(--themeColor500)] active:bg-[var(--themeColor700)] active:shadow-none rounded-lg shadow"
76
76
  >
77
- {render_value(all_langs, "Subscribe")}
77
+ {render_lang(all_langs, "Subscribe")}
78
78
  </button>
79
79
  </form>
80
80
  </div>
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_value } from "../../scripts/util.js";
2
+ import { render_value,render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -60,7 +60,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
60
60
  type="email"
61
61
  name="email"
62
62
  required
63
- placeholder={render_value(all_langs, "Enter your email")}
63
+ placeholder={render_lang(all_langs, "Enter your email")}
64
64
  class="w-full pl-12 pr-3 py-2 text-gray-500 bg-white outline-hidden border border-gray-200 focus:border-[var(--themeColor600)] shadow-xs rounded-lg"
65
65
  />
66
66
  </div>
@@ -69,7 +69,7 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
69
69
  id="submitbtnsubscribe"
70
70
  class="cursor-pointer break-keep block w-auto py-3 px-4 font-medium text-sm text-center text-white bg-[var(--themeColor600)] hover:bg-[var(--themeColor500)] active:bg-[var(--themeColor700)] active:shadow-none rounded-lg shadow"
71
71
  >
72
- {render_value(all_langs, "Subscribe")}
72
+ {render_lang(all_langs, "Subscribe")}
73
73
  </button>
74
74
  </form>
75
75
  </div>
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_value } from "../../scripts/util.js";
2
+ import { render_value, render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -67,13 +67,13 @@ const { btn_class, siteinfo, jeawin_form_api_domain, all_langs } = Astro.locals;
67
67
  type="email"
68
68
  name="email"
69
69
  required
70
- placeholder={render_value(all_langs, "Enter your email")}
70
+ placeholder={render_lang(all_langs, "Enter your email")}
71
71
  class="text-gray-500 w-full p-3 rounded-md border border-gray-200 outline-hidden focus:border-[var(--themeColor600)]"
72
72
  />
73
73
  <button
74
74
  class="cursor-pointer break-keep w-full mt-3 px-5 py-3 rounded-md text-white bg-[var(--themeColor600)] hover:bg-[var(--themeColor500)] active:bg-[var(--themeColor700)] duration-150 outline-hidden shadow-md focus:shadow-none focus:ring-2 ring-offset-2 ring-[var(--themeColor600)] sm:mt-0 sm:ml-3 sm:w-auto"
75
75
  >
76
- {render_value(all_langs, "Subscribe")}
76
+ {render_lang(all_langs, "Subscribe")}
77
77
  </button>
78
78
  </form>
79
79
  <div class="mt-3 mx-auto text-center max-w-lg text-[15px] text-gray-400">
@@ -9,21 +9,21 @@
9
9
  * @filesource
10
10
  */
11
11
  import { sprintf } from "sprintf-js";
12
- import { render_url, render_value } from "../scripts/util.js";
12
+ import { render_url, render_value, render_lang } from "../scripts/util.js";
13
13
  const { uri, total, per_page, current_page, total_pages } = Astro.props;
14
14
 
15
15
  const { all_langs, base, url_suffix } = Astro.locals;
16
16
 
17
- const previousPageLang = render_value(all_langs, "previous page");
18
- const nextPageLang = render_value(all_langs, "next page");
19
- const totalRecordsLang = render_value(all_langs, "Total Records");
17
+ const previousPageLang = render_lang(all_langs, "previous page");
18
+ const nextPageLang = render_lang(all_langs, "next page");
19
+ const totalRecordsLang = render_lang(all_langs, "Total Records");
20
20
 
21
21
  const totalRecordsLang1 = sprintf(
22
22
  totalRecordsLang,
23
23
  `<span class="font-medium">${total}</span>`
24
24
  );
25
25
 
26
- const recordsPerPageLang = render_value(all_langs, "records per page");
26
+ const recordsPerPageLang = render_lang(all_langs, "records per page");
27
27
 
28
28
  let centerSize = 5;
29
29
  let centerPage = current_page;
@@ -9,7 +9,7 @@
9
9
  * @filesource
10
10
  */
11
11
  import JeawinApi from "../scripts/cms.js";
12
- import { render_url, render_value } from "../scripts/util.js";
12
+ import { render_url, render_value, render_lang } from "../scripts/util.js";
13
13
  const { nodeinfo, node_id, channel_id, category_id } = Astro.props;
14
14
  const { all_langs, jeawin_apikey, jeawin_api_domain, jeawin_api_path, base, url_suffix } =
15
15
  Astro.locals;
@@ -18,8 +18,8 @@ const jeawinapi = new JeawinApi({
18
18
  api_domain: jeawin_api_domain,
19
19
  api_path: jeawin_api_path,
20
20
  });
21
- const previousLang = render_value(all_langs, "previous");
22
- const nextLang = render_value(all_langs, "next");
21
+ const previousLang = render_lang(all_langs, "previous");
22
+ const nextLang = render_lang(all_langs, "next");
23
23
 
24
24
  let prevnode = null;
25
25
  let nextnode = null;
@@ -83,7 +83,7 @@ if (Number(nodeinfo.category_id)) {
83
83
  >{nodeinfo.category_name}</div>
84
84
  <div>
85
85
  <div x-data="{}" class="cursor-pointer text-[var(--themeColor)] hover:underline"
86
- x-on:click={`window.location.href='${render_url(backtolisturl, base, null, url_suffix)}'`}>{render_value(all_langs, 'Back to List')}</div>
86
+ x-on:click={`window.location.href='${render_url(backtolisturl, base, null, url_suffix)}'`}>{render_lang(all_langs, 'Back to List')}</div>
87
87
  </div>
88
88
 
89
89
  </div>
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  import { Icon } from "astro-icon/components";
3
3
  import JeawinApi from "../scripts/cms.js";
4
- import { render_url, render_value } from "../scripts/util.js";
4
+ import { render_url, render_value, render_lang } from "../scripts/util.js";
5
5
  const { nodeinfo, node_id, channel_id, category_id } = Astro.props;
6
6
  const { all_langs, jeawin_apikey, jeawin_api_domain, jeawin_api_path, base, url_suffix } =
7
7
  Astro.locals;
@@ -10,8 +10,8 @@ const jeawinapi = new JeawinApi({
10
10
  api_domain: jeawin_api_domain,
11
11
  api_path: jeawin_api_path,
12
12
  });
13
- const previousLang = render_value(all_langs, "previous");
14
- const nextLang = render_value(all_langs, "next");
13
+ const previousLang = render_lang(all_langs, "previous");
14
+ const nextLang = render_lang(all_langs, "next");
15
15
 
16
16
  let prevnode = null;
17
17
  let nextnode = null;
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_url, render_value } from "../../scripts/util.js";
2
+ import { render_url, render_value,render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -57,7 +57,7 @@ const { all_langs,base, url_suffix } = Astro.locals;
57
57
 
58
58
  <div class="mt-6">
59
59
  <div class="text-gray-800 text-xl font-semibold mb-2">
60
- {render_value(all_langs, "Features")}
60
+ {render_lang(all_langs, "Features")}
61
61
  </div>
62
62
 
63
63
  <ul class="mt-6 space-y-4">
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_url, render_value } from "../../scripts/util.js";
2
+ import { render_url, render_value, render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -68,7 +68,7 @@ const { all_langs,base, url_suffix } = Astro.locals;
68
68
  </div>
69
69
  <ul class="p-4 py-8 space-y-3 md:p-8">
70
70
  <li class="pb-2 text-gray-800 font-medium">
71
- {render_value(all_langs, "Features")}
71
+ {render_lang(all_langs, "Features")}
72
72
  </li>
73
73
  {itm.features.map((itm1: any) => (
74
74
  <li class="flex items-center gap-5">
@@ -1,5 +1,5 @@
1
1
  ---
2
- import {render_url, render_value} from '../../scripts/util.js';
2
+ import {render_url, render_value,render_lang} from '../../scripts/util.js';
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -35,7 +35,7 @@ const {all_langs,base,url_suffix} = Astro.locals;
35
35
  <thead class="whitespace-nowrap">
36
36
  <tr class="h-24">
37
37
  <th class="text-gray-800 px-2 py-1 font-semibold text-lg">
38
- {render_value(all_langs, "Features")}
38
+ {render_lang(all_langs, "Features")}
39
39
  </th>
40
40
  {
41
41
  plans.map((plan: any) => (
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_url, render_value } from "../../scripts/util.js";
2
+ import { render_url, render_value, render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -88,7 +88,7 @@ const { all_langs,base, url_suffix } = Astro.locals;
88
88
  </div>
89
89
  <ul class="p-4 space-y-3 sm:grid sm:grid-cols-2 md:block md:p-8 lg:grid">
90
90
  <div class="pb-2 col-span-2 text-gray-800 font-medium">
91
- <p>{render_value(all_langs, "Features")}</p>
91
+ <p>{render_lang(all_langs, "Features")}</p>
92
92
  </div>
93
93
 
94
94
  {
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { render_url, render_value } from "../../scripts/util.js";
2
+ import { render_url, render_value, render_lang } from "../../scripts/util.js";
3
3
  import SectionContainer from "../section_container.astro";
4
4
  interface Props {
5
5
  bgcolor?: any;
@@ -70,7 +70,7 @@ const { all_langs,base, url_suffix } = Astro.locals;
70
70
  </div>
71
71
  <ul class="p-8 space-y-3">
72
72
  <li class="pb-2 text-gray-800 font-medium">
73
- <p>{render_value(all_langs, "Features")}</p>
73
+ <p>{render_lang(all_langs, "Features")}</p>
74
74
  </li>
75
75
  {plan.features.map((feature: any) => (
76
76
  <li class="flex items-center gap-5">
@@ -8,7 +8,7 @@
8
8
  * @email chaegumi@jeawin.com
9
9
  * @filesource
10
10
  */
11
- import { render_url, render_value } from "../scripts/util.js";
11
+ import { render_url, render_value, render_lang } from "../scripts/util.js";
12
12
 
13
13
  import DefaultImage from "./default_image.astro";
14
14
  import RenderImage from "./image.astro";
@@ -29,7 +29,7 @@ const { all_langs, base, url_suffix } = Astro.locals;
29
29
 
30
30
  const TitleTag = title_tag || "div";
31
31
 
32
- const RequestBtnText = render_value(all_langs, "request a quote");
32
+ const RequestBtnText = render_lang(all_langs, "request a quote");
33
33
  // console.log(imgobj);
34
34
  ---
35
35
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  import { Icon } from "astro-icon/components";
3
- import { render_value } from "../scripts/util.js";
3
+ import { render_lang, render_value } from "../scripts/util.js";
4
4
  interface Props {
5
5
  show_search_box?: boolean;
6
6
  search_icon_style?: string;
7
7
  }
8
8
  const { all_langs } = Astro.locals;
9
9
  const {show_search_box = false, search_icon_style} = Astro.props;
10
- const searchInputLang = render_value(all_langs, "Search by site");
11
- const searchLang = render_value(all_langs, "Search");
10
+ const searchInputLang = render_lang(all_langs, "Search by site");
11
+ const searchLang = render_lang(all_langs, "Search");
12
12
  ---
13
13
 
14
14
  <div>
@@ -28,7 +28,7 @@ const searchLang = render_value(all_langs, "Search");
28
28
  <div class="size-5">
29
29
  <Icon
30
30
  name="fa6-solid:magnifying-glass"
31
- class:list={["size-5 cursor-pointer", {"md:hidden":show_search_box}, search_icon_style]}
31
+ class:list={["search-input-icon","size-5 cursor-pointer", {"md:hidden":show_search_box}, search_icon_style]}
32
32
  x-on:click="openSearchForm"
33
33
  x-show="!showSearchForm"
34
34
  />
@@ -54,12 +54,12 @@ const searchLang = render_value(all_langs, "Search");
54
54
  autocomplete="off" required="required"
55
55
  />
56
56
  <button type="submit" class="cursor-pointer absolute inset-y-0 right-0 flex items-center pr-2">
57
- <Icon name="fa6-solid:magnifying-glass" class="size-4" />
57
+ <Icon name="fa6-solid:magnifying-glass" class="search-input-submit-btn-icon size-4" />
58
58
  </button>
59
59
  </label>
60
60
  <Icon
61
61
  name="fa6-solid:xmark"
62
- class="size-5 text-red-500 cursor-pointer"
62
+ class="search-input-clear-icon size-5 text-red-500 cursor-pointer"
63
63
  x-on:click="closeSearchForm"
64
64
  />
65
65
  </div>
@@ -9,7 +9,7 @@
9
9
  * @filesource
10
10
  */
11
11
  import { sprintf } from "sprintf-js";
12
- import { render_value } from "../scripts/util.js";
12
+ import { render_lang, render_value } from "../scripts/util.js";
13
13
  import loadingImg from "../assets/images/loading.gif";
14
14
  import SearchInput from "./formitem/searchinput.astro";
15
15
  const { channel_name, site_id, list_tpl } = Astro.props;
@@ -18,12 +18,12 @@ const { all_langs, jeawin_api_domain, jeawin_form_api_domain } = Astro.locals;
18
18
 
19
19
  const site = Astro.site;
20
20
 
21
- const previousPageLang = render_value(all_langs, "previous page");
22
- const nextPageLang = render_value(all_langs, "next page");
23
- const readmoreLang = render_value(all_langs, "read more");
24
- const searchresultforLang = render_value(all_langs, "Search Result for");
21
+ const previousPageLang = render_lang(all_langs, "previous page");
22
+ const nextPageLang = render_lang(all_langs, "next page");
23
+ const readmoreLang = render_lang(all_langs, "read more");
24
+ const searchresultforLang = render_lang(all_langs, "Search Result for");
25
25
 
26
- const totalRecordsLang = render_value(all_langs, "Total Records");
26
+ const totalRecordsLang = render_lang(all_langs, "Total Records");
27
27
 
28
28
  let nav_wrapper_class = "isolate inline-flex -space-x-px rounded-md shadow-xs";
29
29
 
@@ -8,7 +8,7 @@
8
8
  * @email chaegumi@jeawin.com
9
9
  * @filesource
10
10
  */
11
- import { render_value } from "../scripts/util.js";
11
+ import { render_lang, render_value } from "../scripts/util.js";
12
12
  const { canonical, seo_title, seo_description } = Astro.props;
13
13
 
14
14
  const { all_langs } = Astro.locals;
@@ -21,7 +21,7 @@ const medias = [
21
21
  }" width="${
22
22
  14 * multiple
23
23
  }" viewBox="0 0 448 512"><path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>`,
24
- title: render_value(all_langs, "share on facebook", "share on facebook"),
24
+ title: render_lang(all_langs, "share on facebook"),
25
25
  url: `https://www.facebook.com/sharer.php?u=${canonical}`,
26
26
  },
27
27
  {
@@ -30,7 +30,7 @@ const medias = [
30
30
  }" width="${
31
31
  14 * multiple
32
32
  }" viewBox="0 0 512 512"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>`,
33
- title: render_value(all_langs, "share on twitter", "share on twitter"),
33
+ title: render_lang(all_langs, "share on twitter"),
34
34
  url: `https://twitter.com/intent/tweet?text=${encodeURIComponent(
35
35
  seo_title
36
36
  )}&amp;url=${encodeURIComponent(canonical)}`,
@@ -41,7 +41,7 @@ const medias = [
41
41
  }" width="${
42
42
  14 * multiple
43
43
  }" viewBox="0 0 448 512"><path d="M384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h72.6l-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7c3.9-16 8.5-35 13.9-57.9c0 0-7.3-14.8-7.3-36.5c0-70.7 75.5-78 75.5-25c0 13.5-5.4 31.1-11.2 49.8c-3.3 10.6-6.6 21.5-9.1 32c-5.7 24.5 12.3 44.4 36.4 44.4c43.7 0 77.2-46 77.2-112.4c0-58.8-42.3-99.9-102.6-99.9C153 139 112 191.4 112 245.6c0 21.1 8.2 43.7 18.3 56c2 2.4 2.3 4.5 1.7 7c-1.1 4.7-3.1 12.9-4.7 19.2c-1 4-1.8 7.3-2.1 8.6c-1.1 4.5-3.5 5.5-8.2 3.3c-30.6-14.3-49.8-59.1-49.8-95.1C67.2 167.1 123.4 96 229.4 96c85.2 0 151.4 60.7 151.4 141.8c0 84.6-53.3 152.7-127.4 152.7c-24.9 0-48.3-12.9-56.3-28.2c0 0-12.3 46.9-15.3 58.4c-5 19.3-17.6 42.9-27.4 59.3H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z"/></svg>`,
44
- title: render_value(all_langs, "share on pinterest", "share on pinterest"),
44
+ title: render_lang(all_langs, "share on pinterest"),
45
45
  url: `https://pinterest.com/pin/create/button/?url=${encodeURIComponent(
46
46
  canonical
47
47
  )}&description=${encodeURIComponent(seo_title)}`,
@@ -52,7 +52,7 @@ const medias = [
52
52
  }" width="${
53
53
  14 * multiple
54
54
  }" viewBox="0 0 448 512"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg>`,
55
- title: render_value(all_langs, "share on linkedin", "share on linkedin"),
55
+ title: render_lang(all_langs, "share on linkedin"),
56
56
  url: `https://www.linkedin.com/shareArticle?mini=true&url=${encodeURIComponent(
57
57
  canonical
58
58
  )}&title=${encodeURIComponent(seo_title)}`,
@@ -63,7 +63,7 @@ const medias = [
63
63
  }" width="${
64
64
  14 * multiple
65
65
  }" viewBox="0 0 448 512"><path d="M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8c-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5c-8.8-6.8-19.9-10.9-32-10.9c-28.9 0-52.3 23.4-52.3 52.3c0 21 12.3 39 30.1 47.4c1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3c0-28.9-23.4-52.3-52.3-52.3c-12 0-23 4-31.9 10.8c-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7l0 0c3.9 16.5 18.7 28.7 36.3 28.7zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9s-27.5-7.7-26.6-26.7s13.5-33.5 28.1-33.5zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9c-.9-19 10.3-34.4 25-34.4s27.3 14.6 28.1 33.5zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7c16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z"/></svg>`,
66
- title: render_value(all_langs, "share on reddit", "share on reddit"),
66
+ title: render_lang(all_langs, "share on reddit"),
67
67
  url: `http://www.reddit.com/submit?url=${encodeURIComponent(
68
68
  canonical
69
69
  )}&title=${encodeURIComponent(seo_title)}`,
@@ -74,7 +74,7 @@ const medias = [
74
74
  }" width="${
75
75
  14 * multiple
76
76
  }" viewBox="0 0 512 512"><path d="M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z"/></svg>`,
77
- title: render_value(all_langs, "share on line", "share on line"),
77
+ title: render_lang(all_langs, "share on line"),
78
78
  url: `https://line.me/R/msg/text/?${encodeURIComponent(
79
79
  seo_title
80
80
  )} ${encodeURIComponent(canonical)}`,
@@ -85,7 +85,7 @@ const medias = [
85
85
  }" width="${
86
86
  14 * multiple
87
87
  }" viewBox="0 0 448 512"><path d="M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6L152 365.2l4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8c0-35.2-15.2-68.3-40.1-93.2c-25-25-58-38.7-93.2-38.7c-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9c-36.8-15.9-61.8-51.5-66.9-58.7c-.4-.6-.7-.9-.8-1.1c-2-2.6-16.2-21.5-16.2-41c0-18.4 9-27.9 13.2-32.3c.3-.3 .5-.5 .7-.8c3.6-4 7.9-5 10.6-5c2.6 0 5.3 0 7.6 .1c.3 0 .5 0 .8 0c2.3 0 5.2 0 8.1 6.8c1.2 2.9 3 7.3 4.9 11.8c3.3 8 6.7 16.3 7.3 17.6c1 2 1.7 4.3 .3 6.9c-3.4 6.8-6.9 10.4-9.3 13c-3.1 3.2-4.5 4.7-2.3 8.6c15.3 26.3 30.6 35.4 53.9 47.1c4 2 6.3 1.7 8.6-1c2.3-2.6 9.9-11.6 12.5-15.5c2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1c2.8 1.4 4.7 2.3 5.5 3.6c.9 1.9 .9 9.9-2.4 19.1c-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM148.1 393.9L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5c29.9 30 47.9 69.8 47.9 112.2c0 87.4-72.7 158.5-160.1 158.5c-26.6 0-52.7-6.7-75.8-19.3z"/></svg>`,
88
- title: render_value(all_langs, "share on whatsapp", "share on whatsapp"),
88
+ title: render_lang(all_langs, "share on whatsapp"),
89
89
  url: `https://api.whatsapp.com/send?text=${encodeURIComponent(
90
90
  seo_title
91
91
  )} ${encodeURIComponent(canonical)}&phone=`,
@@ -96,7 +96,7 @@ const medias = [
96
96
  }" width="${
97
97
  14 * multiple
98
98
  }" viewBox="0 0 512 512"><path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"/></svg>`,
99
- title: render_value(all_langs, "share on email", "share on email"),
99
+ title: render_lang(all_langs, "share on email"),
100
100
  url: `mailto:?subject=${encodeURIComponent(
101
101
  seo_title
102
102
  )}&body=${encodeURIComponent(canonical)}`,
@@ -107,7 +107,7 @@ const medias = [
107
107
  }" width="${
108
108
  14 * multiple
109
109
  }" viewBox="0 0 512 512"><path d="M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8 .3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4 .6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"/></svg>`,
110
- title: render_value(all_langs, "share on weibo", "share on weibo"),
110
+ title: render_lang(all_langs, "share on weibo"),
111
111
  url: `https://service.weibo.com/share/share.php?title=${encodeURIComponent(
112
112
  seo_title
113
113
  )}&url=${encodeURIComponent(canonical)}`,
@@ -118,7 +118,7 @@ const medias = [
118
118
  }" width="${
119
119
  14 * multiple
120
120
  }" viewBox="0 0 448 512"><path d="M433.8 420.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.1 72.2-51.1 101.8 16.8 5.2 54.8 19.2 45.8 34.4-7.3 12.3-125.5 7.9-159.6 4-34.1 3.8-152.3 8.3-159.6-4-9-15.3 28.9-29.2 45.8-34.4-34.9-29.5-51.1-70.4-51.1-101.8 0 0-33.3 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.3-99.7 10.3-33 22-60.5 40.1-105.8C60.7 98.1 109 0 224 0c113.7 0 163.2 96.1 160.3 215 18.1 45.2 29.9 72.9 40.1 105.8 21.8 70.1 14.7 99.1 9.3 99.7z"/></svg>`,
121
- title: render_value(all_langs, "share on qzone", "share on qzone"),
121
+ title: render_lang(all_langs, "share on qzone"),
122
122
  url: `https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=${encodeURIComponent(
123
123
  canonical
124
124
  )}&pics=&title=${encodeURIComponent(
@@ -129,7 +129,7 @@ const medias = [
129
129
  ---
130
130
 
131
131
  <div class="flex gap-2" data-aos="fade-up" data-aos-once="false">
132
- <div>{render_value(all_langs, "Share on", "Share on")}</div>
132
+ <div>{render_lang(all_langs, "Share on")}</div>
133
133
  <ul class="flex gap-2 flex-wrap m-0 p-0">
134
134
  {
135
135
  medias.map((media) => (
@@ -116,7 +116,7 @@ const menus = await jeawinapi.get_menu_tree({ menu_id: 1 });
116
116
  menus.map((menu: any) =>
117
117
  menu.children ? (
118
118
  <Fragment>
119
- {menu.style == "1" ? (
119
+ {menu.style > 0 ? (
120
120
  <MegaMenu menu={menu} menu_root_link_id={menu_root_link_id}>
121
121
  <Fragment
122
122
  set:html={Astro.slots.render("megamenu", [menu])}
@@ -47,7 +47,7 @@ import "smartmenus/dist/css/smartmenus.min.css"
47
47
  <!-- Navbar 1 -->
48
48
  <nav id="navbar-header" class="sm-navbar gap-4">
49
49
  <div class="sm-brand w-1/2 md:w-auto">
50
- <Logo />
50
+ <Logo logo_class="max-h-12 w-full" />
51
51
  </div>
52
52
 
53
53
  <span class="sm-toggler-state" id="sm-toggler-state-1"></span>
@@ -74,7 +74,7 @@ import "smartmenus/dist/css/smartmenus.min.css"
74
74
  menus.map((menu: any) =>
75
75
  menu.children ? (
76
76
  <Fragment>
77
- {menu.style == "1" ? (
77
+ {menu.style > 0 ? (
78
78
  <MegaMenu menu={menu} menu_root_link_id={menu_root_link_id}>
79
79
  <Fragment
80
80
  set:html={Astro.slots.render("megamenu", [menu])}
@@ -89,9 +89,9 @@ import "smartmenus/dist/css/smartmenus.min.css"
89
89
  )}
90
90
  </Fragment>
91
91
  ) : (
92
- <li class={`sm-nav-item`}>
92
+ <li class:list={`sm-nav-item`}>
93
93
  <a
94
- class={`sm-nav-link ${
94
+ class:list={`sm-nav-link ${
95
95
  menu_root_link_id == menu.id ||
96
96
  (menu_root_link_id == 0 && menu.link_url == "")
97
97
  ? "sm-selected"
@@ -22,7 +22,7 @@ if (
22
22
  ---
23
23
 
24
24
  <li class="sm-nav-item sm-nav-item--has-mega">
25
- <a class={aClass} href={render_url(menu.link_url, base, null, url_suffix)} title={menu.link_title}
25
+ <a class:list={aClass} href={render_url(menu.link_url, base, null, url_suffix)} title={menu.link_title}
26
26
  >{menu.link_title}</a
27
27
  >
28
28
  <button
@@ -30,15 +30,15 @@ if (
30
30
  <Fragment>
31
31
  {
32
32
  menu.children ? (
33
- <li class={`${liClass} ${is_sub ? "hs-has-sub-menu" : ""}`}>
33
+ <li class:list={`${liClass} ${is_sub ? "hs-has-sub-menu" : ""}`}>
34
34
  <a
35
- class={aClass}
35
+ class:list={aClass}
36
36
  href={render_url(menu.link_url, base, null, url_suffix)}
37
37
  title={menu.link_title}
38
38
  target={menu.target}
39
39
  >{menu.link_title}</a>
40
40
 
41
- <button class={`${aClass} sm-sub-toggler`} aria-label="Toggle sub menu">
41
+ <button class:list={`${aClass} sm-sub-toggler`} aria-label="Toggle sub menu">
42
42
  {menu.nodecount ? menu.nodecount : ""}
43
43
  </button>
44
44
 
@@ -53,14 +53,14 @@ if (
53
53
  </ul>
54
54
  </li>
55
55
  ) : (
56
- <li class={liClass}>
56
+ <li class:list={liClass}>
57
57
  <a
58
- class={aClass}
58
+ class:list={aClass}
59
59
  href={render_url(menu.link_url, base, null, url_suffix)}
60
60
  title={menu.link_title}
61
61
  target={menu.target}
62
62
  >{menu.link_title}</a>
63
- {menu.nodecount ? <span class={aClass}>{menu.nodecount}</span> : null}
63
+ {menu.nodecount ? <span class:list={aClass}>{menu.nodecount}</span> : null}
64
64
  </li>
65
65
  )
66
66
  }
@@ -50,7 +50,7 @@ if (Astro.slots.has("default")) {
50
50
  ) : (
51
51
  <Fragment>
52
52
  {items.map((item: any, idx: number) => (
53
- <swiper-slide
53
+ <swiper-slide lazy={idx > 0 ? "true" : "false"}
54
54
  class:list={[{ hidden: idx > 0 }, "swiper-slide", "h-auto"]}
55
55
  >
56
56
  <CommonCard node={item} />
@@ -11,7 +11,7 @@
11
11
  import _ from "lodash";
12
12
  import Block from "../components/block.astro";
13
13
  import JeawinApi from "../scripts/cms.js";
14
- import { render_url, render_date, render_value } from "../scripts/util.js";
14
+ import { render_url, render_date, render_value, render_lang } from "../scripts/util.js";
15
15
  import SiteOptions from "../components/site_options.astro";
16
16
  import Friendlinks from "../components/friendlinks.astro";
17
17
  import ChooseLanguage from "../components/choose_language.astro";
@@ -109,7 +109,7 @@ const menus = await jeawinapi.get_menus({
109
109
  </div>
110
110
  <div class="w-full md:w-1/3">
111
111
  <div class="mb-5 text-lg">
112
- {render_value(all_langs, "Useful Links")}
112
+ {render_lang(all_langs, "Useful Links")}
113
113
  </div>
114
114
  <ul>
115
115
  {
@@ -175,7 +175,7 @@ const menus = await jeawinapi.get_menus({
175
175
  </div>
176
176
  </div>
177
177
 
178
- <div><Fragment set:html={render_value(all_langs, "Powered by")} /></div>
178
+ <div><Fragment set:html={render_lang(all_langs, "Powered by")} /></div>
179
179
  </div>
180
180
  </footer>
181
181
  <style define:vars={{ bgimg1: `url(${bg1.src})`, bgimg2: `url(${bg2.src})` }}>
@@ -4,10 +4,14 @@ import _ from 'lodash';
4
4
  * 图标配置
5
5
  */
6
6
  export const ICONS_INCLUDE = {
7
- 'fa6-solid': ['magnifying-glass', 'clock', 'eye', 'envelope', 'phone', 'fax', 'angle-right', 'angle-left', 'angle-up', 'angle-down', 'arrow-right',
8
- 'arrow-left', 'arrow-up', 'arrow-down', 'house', 'message', 'circle-question', 'xmark', 'video', 'download',
7
+ 'fa6-solid': ['magnifying-glass', 'clock', 'eye', 'envelope', 'phone', 'fax',
8
+ 'angle-right', 'angle-left', 'angle-up', 'angle-down',
9
+ 'arrow-right', 'arrow-left', 'arrow-up', 'arrow-down',
10
+ 'caret-right', 'caret-left', 'caret-up', 'caret-down',
11
+ 'house', 'message', 'circle-question', 'xmark', 'video', 'download',
9
12
  'file-pdf', 'file-csv', 'file-image', 'file-word', 'file-video', 'file-powerpoint', 'file-excel',
10
- 'file-code', 'file-audio', 'file', 'file-zipper', 'sun', 'moon', 'up-right-from-square', 'user', 'user-tag', 'tag', 'tags', 'lock', 'lock-open', 'unlock'],
13
+ 'file-code', 'file-audio', 'file', 'file-zipper', 'sun', 'moon', 'up-right-from-square',
14
+ 'user', 'user-tag', 'tag', 'tags', 'lock', 'lock-open', 'unlock'],
11
15
  'fa6-brands': ['x-twitter', 'facebook', 'youtube', 'tiktok', 'linkedin',
12
16
  'google-plus', 'flickr', 'pinterest', 'whatsapp', 'instagram', 'qq', 'weixin', 'weibo', 'bilibili', 'zhihu']
13
17
  };
@@ -42,3 +42,7 @@ export function is_pagefind(language_id: any): boolean;
42
42
  * 输出多语言项
43
43
  */
44
44
  export function render_lang(all_langs: any, key: any): any;
45
+ /**
46
+ * 去除内容中的toc
47
+ */
48
+ export function without_toc(content: any): string;
@@ -344,4 +344,14 @@ export function is_pagefind(language_id) {
344
344
  */
345
345
  export function render_lang(all_langs, key){
346
346
  return render_value(all_langs, key, key);
347
+ }
348
+
349
+ /**
350
+ * 去除内容中的toc
351
+ */
352
+ export function without_toc(content){
353
+ const $ = cheerio.load(content);
354
+ $('script')?.remove();
355
+ $('.toc-anchor')?.remove();
356
+ return $.html();
347
357
  }