appscms-tools-theme 4.1.2 → 4.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_data/blog/relatedblogs.json +1 -6932
- data/_data/download/en/download.json +1 -73
- data/_data/feature/en/3_shop_posters.json +1 -361
- data/_data/feature/en/allele-frequency.json +1 -321
- data/_data/feature/en/batch-conversion.json +1 -153
- data/_data/feature/en/compress-pdf.json +310 -305
- data/_data/feature/en/devtools.json +1 -299
- data/_data/feature/en/face-detection.json +1 -123
- data/_data/feature/en/split-pdf.json +1 -176
- data/_data/feature/en/theframe.json +1 -126
- data/_data/feature/hi/compress-pdf.json +1 -162
- data/_data/feature/tr/compress-pdf.json +1 -161
- data/_data/header/en/data.json +984 -0
- data/_data/home/en/en.json +1 -381
- data/_data/home/en/photoeffects.json +1 -97
- data/_data/home-1/en/en.json +1 -308
- data/_data/rating/rating.json +1 -1
- data/_data/termAndCondition/en/termAndCondition.json +1 -359
- data/_includes/appscms/customblog/pageRelatedPosts.html +17 -10
- data/_includes/appscms/customblog/recentposts.html +5 -5
- data/_includes/appscms/customblog/relatedBlogs.html +21 -22
- data/_includes/appscms/customblog/relatedposts.html +6 -10
- data/_includes/appscms/extras/appscms-postbox.html +6 -11
- data/_includes/appscms/extras/ratings.html +115 -117
- data/_includes/appscms/faq/faq.html +2 -2
- data/_includes/appscms/featurePageAuthors/featurePageAuthors.html +5 -5
- data/_includes/appscms/featurehighlight/featurehighlight.html +1 -1
- data/_includes/appscms/footer/footer.html +28 -23
- data/_includes/appscms/footer/products.html +4 -17
- data/_includes/appscms/head/head.html +1 -2
- data/_includes/appscms/howto/howto.html +50 -23
- data/_includes/appscms/navbars/navbar.html +1 -1
- data/_includes/appscms/navbars/toolbar.html +1 -26
- data/_includes/appscms/recent-posts/recent_posts.html +3 -3
- data/_includes/appscms/recent-posts/related_categories_post.html +9 -13
- data/_includes/appscms/scripts/script.html +5 -2
- data/_includes/appscms/searchbar/searchbar.html +3 -2
- data/_includes/appscms/uploadbutton/uploadbutton.html +5 -5
- data/_includes/authors/authors.html +16 -16
- data/_includes/bookmark.html +2 -2
- data/_includes/customblog/pageRelatedPosts.html +1 -1
- data/_includes/customblog/relatedposts.html +1 -3
- data/_includes/footer/index.html +11 -12
- data/_includes/section/related_categories_post.html +1 -3
- data/assets/.DS_Store +0 -0
- data/assets/css/appscms-blog.css +10 -6
- data/assets/css/appscms-feature.css +4 -8
- data/assets/css/appscms-theme.css +97 -38
- data/assets/css/appscms-variables.css +1 -0
- data/assets/easy-to-use.svg +7 -0
- data/assets/flag.svg +7 -0
- data/assets/free.svg +7 -0
- data/assets/images/.DS_Store +0 -0
- data/assets/images/Ankita.webp +0 -0
- data/assets/images/Anushka.webp +0 -0
- data/assets/images/Arjyahi.webp +0 -0
- data/assets/images/Nikita.webp +0 -0
- data/assets/images/alka.webp +0 -0
- data/assets/images/avatar.webp +0 -0
- data/assets/images/balark.webp +0 -0
- data/assets/images/bandana.webp +0 -0
- data/assets/images/contributor.webp +0 -0
- data/assets/images/debosmita.webp +0 -0
- data/assets/images/drive.svg +25 -0
- data/assets/images/dropbox.svg +17 -0
- data/assets/images/easy-to-use.svg +7 -0
- data/assets/images/flag.svg +7 -0
- data/assets/images/free.svg +7 -0
- data/assets/images/karuna.1.webp +0 -0
- data/assets/images/karuna.webp +0 -0
- data/assets/images/keshav.webp +0 -0
- data/assets/images/krutika.webp +0 -0
- data/assets/images/like.svg +7 -0
- data/assets/images/mahika.webp +0 -0
- data/assets/images/paavan.webp +0 -0
- data/assets/images/pallavi.webp +0 -0
- data/assets/images/privacy.svg +7 -0
- data/assets/images/safety.svg +7 -0
- data/assets/images/siddhika.webp +0 -0
- data/assets/images/sona.webp +0 -0
- data/assets/images/speed.svg +7 -0
- data/assets/images/suchita.1.webp +0 -0
- data/assets/images/suchita.webp +0 -0
- data/assets/images/taufik.1.webp +0 -0
- data/assets/images/taufik.webp +0 -0
- data/assets/images/time.svg +16 -0
- data/assets/images/udit.1.webp +0 -0
- data/assets/images/udit.2.webp +0 -0
- data/assets/images/udit.webp +0 -0
- data/assets/images/user-friendly.svg +7 -0
- data/assets/js/theme.js +0 -1
- data/assets/like.svg +7 -0
- data/assets/privacy.svg +7 -0
- data/assets/shield.svg +7 -0
- data/assets/speed.svg +7 -0
- data/assets/time.svg +16 -0
- data/assets/user-friendly.svg +7 -0
- metadata +41 -5
- data/assets/images/dropbox.png +0 -0
- data/assets/images/google-drive.png +0 -0
- /data/assets/{idea.svg → images/idea.svg} +0 -0
@@ -5,7 +5,7 @@
|
|
5
5
|
<div class="row">
|
6
6
|
<div class="col-md-9 mx-auto">
|
7
7
|
{%- endif -%}
|
8
|
-
<
|
8
|
+
<p class="pt-5 pb-0 related_post_heading mb-3">You might also like</p>
|
9
9
|
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
10
10
|
|
11
11
|
</div>
|
@@ -36,7 +36,7 @@
|
|
36
36
|
else -%} col-lg-4 col-md-6 mb-4 card-group {%- endif -%} ">
|
37
37
|
<div class=" card h-100 appscms-blog-cards">
|
38
38
|
<a href="/blog/{{ post.metadata.url }}">
|
39
|
-
<img src="{{ post.metadata.image }}" loading="lazy" class="card-img-top" height="
|
39
|
+
<img src="{{ post.metadata.image }}" loading="lazy" class="card-img-top" height="250"
|
40
40
|
width="100%" alt="{{post.metadata.title}}" {%- if site.crossorigin -%} crossorigin {%- endif
|
41
41
|
-%}>
|
42
42
|
</a>
|
@@ -44,28 +44,27 @@
|
|
44
44
|
<a class="text-decoration-none text-dark" href="/blog/{{ post.metadata.url }}" class="anchor_link">
|
45
45
|
<h4 class="card-title mb-4 text-left">{{ post.metadata.title }}</h4>
|
46
46
|
</a>
|
47
|
-
</div>
|
48
|
-
<div class="card-footer bg-white">
|
49
47
|
<div class="wrapfooter">
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
More</a></span>
|
67
|
-
</div>
|
48
|
+
{% if post.metadata.author %}
|
49
|
+
<span class="meta-footer-thumb">
|
50
|
+
<img class="author-thumb" loading="lazy" src="{{ image }}"
|
51
|
+
alt="{{ authorName }}" {%- if site.crossorigin -%} crossorigin {%- endif
|
52
|
+
-%}>
|
53
|
+
</span>
|
54
|
+
{% endif %}
|
55
|
+
|
56
|
+
<span class="author-meta">
|
57
|
+
|
58
|
+
<a target="_blank" href="/blog">{{authorName}}</a>
|
59
|
+
<br>
|
60
|
+
<span class="post-date">{{post.metadata.date | date_to_string }}</span>
|
61
|
+
</span>
|
62
|
+
|
63
|
+
</div>
|
68
64
|
</div>
|
65
|
+
|
66
|
+
|
67
|
+
|
69
68
|
</div>
|
70
69
|
</div>
|
71
70
|
{% endfor %}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<div class="row">
|
6
6
|
<div class="col-md-9 mx-auto">
|
7
7
|
{%- endif -%}
|
8
|
-
<
|
8
|
+
<p class="pt-5 pb-0 related_post_heading mb-3">You might also like</p>
|
9
9
|
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
10
10
|
|
11
11
|
</div>
|
@@ -72,7 +72,7 @@
|
|
72
72
|
else -%} col-lg-4 col-md-6 mb-4 card-group {%- endif -%} ">
|
73
73
|
<div class=" card h-100 appscms-blog-cards">
|
74
74
|
<a href="{{ post.url }}">
|
75
|
-
<img src="{{ post.image }}" loading="lazy" class="card-img-top" height="
|
75
|
+
<img src="{{ post.image }}" loading="lazy" class="card-img-top" height="150"
|
76
76
|
width="100%" alt="{{post.title}}" {%- if site.crossorigin -%} crossorigin {%- endif
|
77
77
|
-%}>
|
78
78
|
</a>
|
@@ -92,14 +92,12 @@
|
|
92
92
|
{% endif %}
|
93
93
|
|
94
94
|
<span class="author-meta">
|
95
|
-
|
95
|
+
|
96
96
|
<a target="_blank" href="/blog">{{authorName}}</a>
|
97
|
-
|
97
|
+
<br>
|
98
98
|
<span class="post-date">{{post.date | date_to_string }}</span>
|
99
99
|
</span>
|
100
|
-
|
101
|
-
title="Read Story">Read
|
102
|
-
More</a></span>
|
100
|
+
|
103
101
|
</div>
|
104
102
|
</div>
|
105
103
|
</div>
|
@@ -173,9 +171,7 @@
|
|
173
171
|
</span><br>
|
174
172
|
<span class="post-date">{{post.date | date_to_string }}</span>
|
175
173
|
</span>
|
176
|
-
|
177
|
-
title="Read Story">Read
|
178
|
-
More</a></span>
|
174
|
+
|
179
175
|
</div>
|
180
176
|
</div>
|
181
177
|
</div>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<img
|
6
6
|
src="{{ post.image }}"
|
7
7
|
class="card-img-top"
|
8
|
-
height="
|
8
|
+
height="250"
|
9
9
|
width="100%"
|
10
10
|
loading="lazy"
|
11
11
|
alt="{{post.title}}"
|
@@ -28,7 +28,7 @@
|
|
28
28
|
<h4 class="card-title mb-4 text-left">{{ post.title }}</h4>
|
29
29
|
</a>
|
30
30
|
</div>
|
31
|
-
|
31
|
+
|
32
32
|
<div class="wrapfooter">
|
33
33
|
{% if post.author %}
|
34
34
|
<span class="meta-footer-thumb">
|
@@ -49,17 +49,12 @@
|
|
49
49
|
</span>
|
50
50
|
{% endif %}
|
51
51
|
<span class="author-meta">
|
52
|
-
|
53
|
-
<a target="_blank" href="/blog">{{authorName}}</a
|
54
|
-
><br />
|
52
|
+
|
53
|
+
<a target="_blank" href="/blog">{{authorName}}</a><br />
|
55
54
|
<span class="post-date">{{post.date | date_to_string }}</span>
|
56
55
|
</span>
|
57
|
-
|
58
|
-
><a class="text-dark" href="{{ post.url }}" title="Read Story"
|
59
|
-
>Read More</a
|
60
|
-
></span
|
61
|
-
>
|
56
|
+
|
62
57
|
</div>
|
63
|
-
|
58
|
+
|
64
59
|
</div>
|
65
60
|
</div>
|
@@ -1,125 +1,123 @@
|
|
1
|
-
{%- if page.tool -%}
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
<div class="
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<img
|
11
|
-
id="rating-img"
|
12
|
-
loading="lazy"
|
13
|
-
src="/assets/images/rating.png"
|
14
|
-
alt="rating-img"
|
15
|
-
{%-
|
16
|
-
if
|
17
|
-
site.crossorigin
|
18
|
-
-%}
|
19
|
-
crossorigin
|
20
|
-
{%-
|
21
|
-
endif
|
22
|
-
-%}
|
23
|
-
/>
|
24
|
-
<div class="rating-text">
|
25
|
-
{{Data.rate | default: 'Rate this tool' }} :
|
26
|
-
</div>
|
1
|
+
{%- if page.tool -%}
|
2
|
+
{%- assign tool = page.tool -%}
|
3
|
+
{%- assign data = site.data.rating.rating.tools -%}
|
4
|
+
<div class="rating-tool">
|
5
|
+
<div class="container">
|
6
|
+
<div class="row text-center">
|
7
|
+
<div class="col-md-12">
|
8
|
+
<img id="rating-img" loading='lazy' src="/assets/images/rating.png" alt="rating-img">
|
9
|
+
<div class="rating-text">Rate this tool</div>
|
27
10
|
<div class="rating-stars">
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
11
|
+
|
12
|
+
|
13
|
+
<svg class="rating-star" width="56" height="53" viewBox="0 0 56 53" fill="gray"
|
14
|
+
xmlns="http://www.w3.org/2000/svg">
|
15
|
+
<path
|
16
|
+
d="M30.8532 3.54509C29.9551 0.781158 26.0449 0.781146 25.1468 3.54508L20.538 17.7295C20.4042 18.1415 20.0202 18.4205 19.587 18.4205H4.67262C1.76645 18.4205 0.558112 22.1393 2.90926 23.8475L14.9752 32.614C15.3257 32.8686 15.4724 33.32 15.3385 33.732L10.7297 47.9164C9.83166 50.6803 12.9951 52.9787 15.3462 51.2705L27.4122 42.5041C27.7627 42.2494 28.2373 42.2494 28.5878 42.5041L40.6538 51.2705C43.0049 52.9787 46.1683 50.6803 45.2703 47.9164L40.6615 33.732C40.5276 33.32 40.6743 32.8686 41.0248 32.614L53.0907 23.8475C55.4419 22.1393 54.2336 18.4205 51.3274 18.4205H36.413C35.9798 18.4205 35.5958 18.1415 35.462 17.7295L30.8532 3.54509Z" />
|
17
|
+
</svg>
|
18
|
+
<svg class="rating-star" width="56" height="53" viewBox="0 0 56 53" fill="gray"
|
19
|
+
xmlns="http://www.w3.org/2000/svg">
|
20
|
+
<path
|
21
|
+
d="M30.8532 3.54509C29.9551 0.781158 26.0449 0.781146 25.1468 3.54508L20.538 17.7295C20.4042 18.1415 20.0202 18.4205 19.587 18.4205H4.67262C1.76645 18.4205 0.558112 22.1393 2.90926 23.8475L14.9752 32.614C15.3257 32.8686 15.4724 33.32 15.3385 33.732L10.7297 47.9164C9.83166 50.6803 12.9951 52.9787 15.3462 51.2705L27.4122 42.5041C27.7627 42.2494 28.2373 42.2494 28.5878 42.5041L40.6538 51.2705C43.0049 52.9787 46.1683 50.6803 45.2703 47.9164L40.6615 33.732C40.5276 33.32 40.6743 32.8686 41.0248 32.614L53.0907 23.8475C55.4419 22.1393 54.2336 18.4205 51.3274 18.4205H36.413C35.9798 18.4205 35.5958 18.1415 35.462 17.7295L30.8532 3.54509Z" />
|
22
|
+
</svg> <svg class="rating-star" width="56" height="53" viewBox="0 0 56 53" fill="gray"
|
23
|
+
xmlns="http://www.w3.org/2000/svg">
|
24
|
+
<path
|
25
|
+
d="M30.8532 3.54509C29.9551 0.781158 26.0449 0.781146 25.1468 3.54508L20.538 17.7295C20.4042 18.1415 20.0202 18.4205 19.587 18.4205H4.67262C1.76645 18.4205 0.558112 22.1393 2.90926 23.8475L14.9752 32.614C15.3257 32.8686 15.4724 33.32 15.3385 33.732L10.7297 47.9164C9.83166 50.6803 12.9951 52.9787 15.3462 51.2705L27.4122 42.5041C27.7627 42.2494 28.2373 42.2494 28.5878 42.5041L40.6538 51.2705C43.0049 52.9787 46.1683 50.6803 45.2703 47.9164L40.6615 33.732C40.5276 33.32 40.6743 32.8686 41.0248 32.614L53.0907 23.8475C55.4419 22.1393 54.2336 18.4205 51.3274 18.4205H36.413C35.9798 18.4205 35.5958 18.1415 35.462 17.7295L30.8532 3.54509Z" />
|
26
|
+
</svg> <svg class="rating-star" width="56" height="53" viewBox="0 0 56 53" fill="gray"
|
27
|
+
xmlns="http://www.w3.org/2000/svg">
|
28
|
+
<path
|
29
|
+
d="M30.8532 3.54509C29.9551 0.781158 26.0449 0.781146 25.1468 3.54508L20.538 17.7295C20.4042 18.1415 20.0202 18.4205 19.587 18.4205H4.67262C1.76645 18.4205 0.558112 22.1393 2.90926 23.8475L14.9752 32.614C15.3257 32.8686 15.4724 33.32 15.3385 33.732L10.7297 47.9164C9.83166 50.6803 12.9951 52.9787 15.3462 51.2705L27.4122 42.5041C27.7627 42.2494 28.2373 42.2494 28.5878 42.5041L40.6538 51.2705C43.0049 52.9787 46.1683 50.6803 45.2703 47.9164L40.6615 33.732C40.5276 33.32 40.6743 32.8686 41.0248 32.614L53.0907 23.8475C55.4419 22.1393 54.2336 18.4205 51.3274 18.4205H36.413C35.9798 18.4205 35.5958 18.1415 35.462 17.7295L30.8532 3.54509Z" />
|
30
|
+
</svg> <svg class="rating-star" width="56" height="53" viewBox="0 0 56 53" fill="gray"
|
31
|
+
xmlns="http://www.w3.org/2000/svg">
|
32
|
+
<path
|
33
|
+
d="M30.8532 3.54509C29.9551 0.781158 26.0449 0.781146 25.1468 3.54508L20.538 17.7295C20.4042 18.1415 20.0202 18.4205 19.587 18.4205H4.67262C1.76645 18.4205 0.558112 22.1393 2.90926 23.8475L14.9752 32.614C15.3257 32.8686 15.4724 33.32 15.3385 33.732L10.7297 47.9164C9.83166 50.6803 12.9951 52.9787 15.3462 51.2705L27.4122 42.5041C27.7627 42.2494 28.2373 42.2494 28.5878 42.5041L40.6538 51.2705C43.0049 52.9787 46.1683 50.6803 45.2703 47.9164L40.6615 33.732C40.5276 33.32 40.6743 32.8686 41.0248 32.614L53.0907 23.8475C55.4419 22.1393 54.2336 18.4205 51.3274 18.4205H36.413C35.9798 18.4205 35.5958 18.1415 35.462 17.7295L30.8532 3.54509Z" />
|
34
|
+
</svg>
|
35
|
+
<!-- <i class="bi bi-star-fill rating-star"></i>
|
36
|
+
<i class="bi bi-star-fill rating-star"></i>
|
37
|
+
<i class="bi bi-star-fill rating-star"></i>
|
38
|
+
<i class="bi bi-star-fill rating-star"></i>
|
39
|
+
<i class="bi bi-star-fill rating-star"></i> -->
|
40
|
+
|
33
41
|
</div>
|
34
|
-
<div class="rating-value ml-2">
|
35
|
-
{%- for item in data -%}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
<span class="total-ratings" id=
|
43
|
-
| default: 'votes' }}
|
42
|
+
<div class="rating-value mt-5 ml-2">
|
43
|
+
{%- for item in data -%}
|
44
|
+
{%- if item.name ==tool -%}
|
45
|
+
{%- assign rating = item.rating -%}
|
46
|
+
{%- assign votes = item.votes -%}
|
47
|
+
{%- endif -%}
|
48
|
+
{%- endfor -%}
|
49
|
+
<span class="rating"> <strong id='rating'>{{rating}}</strong><span>/5</span> </span>
|
50
|
+
<span class="total-ratings" id='count'>{{votes}} </span> votes
|
44
51
|
</div>
|
45
52
|
</div>
|
46
|
-
<script>
|
47
|
-
const ratingValue = document.getElementById("rating");
|
48
|
-
const count = document.getElementById("count");
|
49
|
-
const setRating = async (rating) => {
|
50
|
-
const name = "{{site.name}}";
|
51
|
-
const tool = "{{page.tool}}";
|
52
|
-
const data = { website: name, feature: tool, rating: rating };
|
53
|
-
fetch(
|
54
|
-
"https://ratingapi-main.netlify.app/.netlify/functions/api/v1/rating/add",
|
55
|
-
{
|
56
|
-
method: "POST",
|
57
|
-
headers: {
|
58
|
-
"Content-Type": "application/json",
|
59
|
-
},
|
60
|
-
body: JSON.stringify(data),
|
61
|
-
}
|
62
|
-
)
|
63
|
-
.then((response) => response.json())
|
64
|
-
.then((data) => {
|
65
|
-
ratingValue.innerText = data.rating;
|
66
|
-
count.innerText = data.count;
|
67
|
-
})
|
68
|
-
.catch((error) => {
|
69
|
-
console.error("Error:", error);
|
70
|
-
});
|
71
|
-
};
|
72
|
-
const tool = "{{page.tool}}";
|
73
|
-
const fetchRating = async () => {
|
74
|
-
const data = await fetch(
|
75
|
-
`https://ratingapi-main.netlify.app/.netlify/functions/api/v1/${tool}/rating`
|
76
|
-
).then((res) => res.json());
|
77
|
-
ratingValue.innerText = data.rating;
|
78
|
-
count.innerText = data.votes;
|
79
|
-
};
|
80
|
-
let ratingImg = document.querySelector("#rating-img");
|
81
|
-
ratingImg.addEventListener("load", (event) => {
|
82
|
-
fetchRating();
|
83
|
-
});
|
84
|
-
const ratingNode = document.getElementsByClassName("rating-star");
|
85
|
-
let ratedValue = localStorage.getItem(`${tool}rating`);
|
86
|
-
if (ratedValue) {
|
87
|
-
Array.from(ratingNode)
|
88
|
-
.slice(0, ratedValue)
|
89
|
-
.map((item) => {
|
90
|
-
item.style.color = "#FF8A1F";
|
91
|
-
});
|
92
|
-
}
|
93
|
-
|
94
|
-
Array.from(ratingNode).map((item) =>
|
95
|
-
item.addEventListener("click", () => {
|
96
|
-
const tool = "{{page.tool}}";
|
97
|
-
if (!localStorage.getItem(`${tool}rating`)) {
|
98
|
-
function indexInClass(node) {
|
99
|
-
var className = node.className;
|
100
|
-
var num = 0;
|
101
|
-
for (var i = 0; i < ratingNode.length; i++) {
|
102
|
-
if (ratingNode[i] === node) {
|
103
|
-
return num;
|
104
|
-
}
|
105
|
-
num++;
|
106
|
-
}
|
107
|
-
return -1;
|
108
|
-
}
|
109
|
-
const index = indexInClass(item);
|
110
|
-
Array.from(ratingNode)
|
111
|
-
.slice(0, index + 1)
|
112
|
-
.map((item) => {
|
113
|
-
item.style.color = "#FF8A1F";
|
114
|
-
});
|
115
|
-
setRating(index + 1);
|
116
|
-
localStorage.setItem(`${tool}rating`, index + 1);
|
117
|
-
}
|
118
|
-
})
|
119
|
-
);
|
120
|
-
</script>
|
121
53
|
</div>
|
122
54
|
</div>
|
123
55
|
</div>
|
124
56
|
|
125
|
-
|
57
|
+
<script>
|
58
|
+
const ratingValue = document.getElementById('rating')
|
59
|
+
const count = document.getElementById('count')
|
60
|
+
const setRating = async (rating) => {
|
61
|
+
const name = '{{site.name}}'
|
62
|
+
const tool = '{{page.tool}}'
|
63
|
+
const data = { website: name, feature: tool, rating: rating };
|
64
|
+
fetch('https://ratingapi-main.netlify.app/.netlify/functions/api/v1/rating/add', {
|
65
|
+
method: 'POST',
|
66
|
+
headers: {
|
67
|
+
'Content-Type': 'application/json',
|
68
|
+
},
|
69
|
+
body: JSON.stringify(data),
|
70
|
+
})
|
71
|
+
.then(response => response.json())
|
72
|
+
.then(data => {
|
73
|
+
ratingValue.innerText = data.rating
|
74
|
+
count.innerText = data.count
|
75
|
+
})
|
76
|
+
.catch((error) => {
|
77
|
+
console.error('Error:', error);
|
78
|
+
});
|
79
|
+
}
|
80
|
+
const tool = '{{page.tool}}'
|
81
|
+
const fetchRating = async () => {
|
82
|
+
|
83
|
+
const data = await fetch(`https://ratingapi-main.netlify.app/.netlify/functions/api/v1/${tool}/rating`).then(res => res.json())
|
84
|
+
ratingValue.innerText = data.rating
|
85
|
+
count.innerText = data.votes
|
86
|
+
}
|
87
|
+
let ratingImg = document.querySelector('#rating-img');
|
88
|
+
ratingImg.addEventListener('load', (event) => {
|
89
|
+
fetchRating()
|
90
|
+
});
|
91
|
+
const ratingNode = document.getElementsByClassName('rating-star')
|
92
|
+
let ratedValue = localStorage.getItem(`${tool}rating`)
|
93
|
+
if (ratedValue) {
|
94
|
+
Array.from(ratingNode).slice(0, ratedValue).map(item => {
|
95
|
+
item.style.fill = '#FFB21D'
|
96
|
+
})
|
97
|
+
}
|
98
|
+
|
99
|
+
Array.from(ratingNode).map(item => item.addEventListener('click', () => {
|
100
|
+
const tool = '{{page.tool}}'
|
101
|
+
if (!localStorage.getItem(`${tool}rating`)) {
|
102
|
+
function indexInClass(node) {
|
103
|
+
var className = node.className;
|
104
|
+
var num = 0;
|
105
|
+
for (var i = 0; i < ratingNode.length; i++) {
|
106
|
+
if (ratingNode[i] === node) {
|
107
|
+
return num;
|
108
|
+
}
|
109
|
+
num++;
|
110
|
+
}
|
111
|
+
return -1;
|
112
|
+
}
|
113
|
+
const index = indexInClass(item)
|
114
|
+
Array.from(ratingNode).slice(0, index + 1).map(item => {
|
115
|
+
item.style.fill = '#FFB21D'
|
116
|
+
})
|
117
|
+
setRating(index + 1)
|
118
|
+
localStorage.setItem(`${tool}rating`, index + 1)
|
119
|
+
}
|
120
|
+
}))
|
121
|
+
</script>
|
122
|
+
|
123
|
+
{%- endif -%}
|
@@ -13,9 +13,9 @@ assign showFaqs = true -%} {%- endif -%} {%- endfor -%} {%- if showFaqs == true
|
|
13
13
|
class="flex-grow-1 mx-4 mb-0"
|
14
14
|
style="height: 2px; background-color: #000"
|
15
15
|
/>
|
16
|
-
<
|
16
|
+
<p class="appscms-h3 my-4 text-center">
|
17
17
|
{{pageData.faqheading | default: 'Frequently Asked Questions'}}
|
18
|
-
</
|
18
|
+
</p>
|
19
19
|
<hr
|
20
20
|
class="flex-grow-1 mx-4 mb-0"
|
21
21
|
style="height: 2px; background-color: #000"
|
@@ -5,9 +5,9 @@
|
|
5
5
|
<div class="row">
|
6
6
|
<div class="col-md-12">
|
7
7
|
{%- if featureData.author -%}
|
8
|
-
<
|
8
|
+
<h4 class="mb-4 text-center authors-heading font-weight-bolder">
|
9
9
|
About The Author
|
10
|
-
</
|
10
|
+
</h4>
|
11
11
|
{%- endif -%}
|
12
12
|
<div class="row">
|
13
13
|
{%- if featureData.author -%} {%- include authors/authors.html -%} {%-
|
@@ -56,9 +56,9 @@
|
|
56
56
|
</div>
|
57
57
|
{%- endif %} {%- assign contributors = featureData.contributors |
|
58
58
|
uniq: 'name' -%} {%- if contributors.size > 0 -%}
|
59
|
-
<
|
59
|
+
<h4 class="mb-4 w-100 text-center authors-heading font-weight-bolder">
|
60
60
|
Contributors
|
61
|
-
</
|
61
|
+
</h4>
|
62
62
|
<div class="d-flex justify-content-center w-100" style="gap: 10px">
|
63
63
|
{%- for contributor in contributors -%} {%- assign
|
64
64
|
featureContributorData = contributor.name | split: " " -%} {%-
|
@@ -79,7 +79,7 @@
|
|
79
79
|
<img
|
80
80
|
loading="lazy"
|
81
81
|
src="{{ featureContributorDataImage }}"
|
82
|
-
alt="{{ featureContributorDataName}}"
|
82
|
+
alt="author image {{ featureContributorDataName }}"
|
83
83
|
style="border-radius: 100%; width: 50px; height: 50px"
|
84
84
|
/>
|
85
85
|
<div class="contributor-name">
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<div class="container mt-5">
|
2
2
|
<div class="px-4">
|
3
|
-
<div class="row feature-description-boxes">
|
3
|
+
<div class="row feature-description-boxes pt-5">
|
4
4
|
{%- if site.monumetricId and page.url != '/' and page.lang == 'en' -%}
|
5
5
|
<div class="col-md-9 mx-auto">
|
6
6
|
<div class="row">
|
@@ -33,6 +33,7 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
33
33
|
<div class="col-md-7">
|
34
34
|
<div class="row">
|
35
35
|
<div class="col-md-4 mb-3">
|
36
|
+
<ul>
|
36
37
|
<li class="appscms-footer-category">
|
37
38
|
{{dataToShow.companytitle | default: 'Company' }}
|
38
39
|
</li>
|
@@ -41,8 +42,10 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
41
42
|
<a href="{{data.url}}">{{data.name}}</a>
|
42
43
|
</li>
|
43
44
|
{% endfor %}
|
45
|
+
</ul>
|
44
46
|
</div>
|
45
47
|
<div class="col-md-4 mb-3">
|
48
|
+
<ul>
|
46
49
|
<li class="appscms-footer-category">
|
47
50
|
{{dataToShow.legaltitle | default: 'Legal' }}
|
48
51
|
</li>
|
@@ -53,9 +56,11 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
53
56
|
>
|
54
57
|
</li>
|
55
58
|
{% endfor %}
|
59
|
+
</ul>
|
56
60
|
</div>
|
57
61
|
|
58
62
|
<div class="col-md-4 mb-3">
|
63
|
+
<ul>
|
59
64
|
<li class="appscms-footer-category">
|
60
65
|
{{dataToShow.networksitestitle | default: 'Network sites'}}
|
61
66
|
</li>
|
@@ -64,6 +69,7 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
64
69
|
<a href="{{data.url}}">{{data.name}}</a>
|
65
70
|
</li>
|
66
71
|
{%- endfor -%}
|
72
|
+
</ul>
|
67
73
|
</div>
|
68
74
|
</div>
|
69
75
|
</div>
|
@@ -133,8 +139,8 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
133
139
|
<span aria-hidden="true">×</span>
|
134
140
|
</button>
|
135
141
|
</div>
|
136
|
-
<
|
137
|
-
|
142
|
+
<ul class="modal-body language-drop-down-menu px-md-5">
|
143
|
+
|
138
144
|
{%- if page.permalink == nil -%}
|
139
145
|
<li
|
140
146
|
class="language-drop-down-item font-weight-bold"
|
@@ -196,7 +202,7 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
196
202
|
{%- endif -%} {%- endfor -%} {%- endif -%} {%- endif
|
197
203
|
-%}
|
198
204
|
</ul>
|
199
|
-
|
205
|
+
|
200
206
|
</div>
|
201
207
|
</div>
|
202
208
|
</div>
|
@@ -254,36 +260,34 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
254
260
|
<span aria-hidden="true">×</span>
|
255
261
|
</button>
|
256
262
|
</div>
|
257
|
-
|
258
|
-
<ul class="language-drop-down-menu">
|
263
|
+
|
264
|
+
<ul class="modal-body pt-0 px-md-5 language-drop-down-menu">
|
259
265
|
{%- for item in matchurls -%} {%- if item != 'zh-TW'
|
260
266
|
-%} {%- if item == 'en'-%} {%- if
|
261
267
|
dataFile.htmlLangAtt == item -%}
|
262
|
-
|
263
|
-
class="language-drop-down-item font-weight-bold"
|
264
|
-
>
|
265
|
-
<a class="active-lang" href="{{ page.permalink}}"
|
268
|
+
|
269
|
+
<a class="active-lang language-drop-down-item font-weight-bold" href="{{ page.permalink}}"
|
266
270
|
>English <i class="fas fa-check ml-auto"></i>
|
267
271
|
</a>
|
268
|
-
|
272
|
+
|
269
273
|
{%- else -%}
|
270
|
-
|
274
|
+
|
271
275
|
{%- if dataFile.features -%}
|
272
|
-
<a href="/">English</a>
|
276
|
+
<a class="language-drop-down-item" href="/">English</a>
|
273
277
|
{%- else -%}
|
274
|
-
<a href="/{{ page.permalink | split: '/' | last}}"
|
278
|
+
<a class="language-drop-down-item" href="/{{ page.permalink | split: '/' | last}}"
|
275
279
|
>English
|
276
280
|
</a>
|
277
281
|
{%- endif -%}
|
278
|
-
|
282
|
+
|
279
283
|
{%- endif -%} {%- else -%} {%- if
|
280
284
|
dataFile.htmlLangAtt == item -%}
|
281
|
-
<
|
282
|
-
|
285
|
+
<
|
286
|
+
|
283
287
|
>
|
284
288
|
{%- if page.permalink | split: '/' | last != item
|
285
289
|
-%}
|
286
|
-
<a
|
290
|
+
<a class="language-drop-down-item font-weight-bold active-lang" href="{{ page.permalink}}"
|
287
291
|
>{{[item][1]}}
|
288
292
|
<i class="fas fa-check ml-auto"></i>
|
289
293
|
</a>
|
@@ -293,25 +297,26 @@ languages/languages.html -%} {% assign dataFile= site.data[folder][lang][file]
|
|
293
297
|
<i class="fas fa-check ml-auto"></i>
|
294
298
|
</a>
|
295
299
|
{%- endif -%}
|
296
|
-
|
300
|
+
|
297
301
|
{%- else -%}
|
298
|
-
|
302
|
+
|
299
303
|
{%- if page.permalink | split: '/' | last != item
|
300
304
|
-%} {%- if dataFile.features -%}
|
301
|
-
<a href="/{{item}}">{{[item][1]}} </a>
|
305
|
+
<a class="language-drop-down-item" href="/{{item}}">{{[item][1]}} </a>
|
302
306
|
{%- else -%}
|
303
307
|
<a
|
308
|
+
class="language-drop-down-item"
|
304
309
|
href="/{{item}}/{{ page.permalink | split: '/' | last}}"
|
305
310
|
>{{[item][1]}}
|
306
311
|
</a>
|
307
312
|
{%- endif -%} {%- else -%}
|
308
|
-
<a href="/{{item}}">{{[item][1]}} </a>
|
313
|
+
<a class="language-drop-down-item" href="/{{item}}">{{[item][1]}} </a>
|
309
314
|
{%- endif -%}
|
310
|
-
|
315
|
+
|
311
316
|
{%- endif -%} {%- endif -%} {%- endif -%} {%- endfor
|
312
317
|
-%}
|
313
318
|
</ul>
|
314
|
-
|
319
|
+
|
315
320
|
</div>
|
316
321
|
</div>
|
317
322
|
</div>
|
@@ -2,29 +2,16 @@
|
|
2
2
|
%}
|
3
3
|
<div class="appscms-product-footer">
|
4
4
|
<div class="row w-100">
|
5
|
-
<div class="col-md-11 mx-auto
|
5
|
+
<div class="col-md-11 mx-auto py-4">
|
6
6
|
<div class="row">
|
7
|
-
|
8
|
-
<div
|
9
|
-
class="d-flex align-items-center justify-content-center footer-prducts-div-heading py-4"
|
10
|
-
>
|
11
|
-
<hr
|
12
|
-
class="flex-grow-1 mx-5 mb-0 footer-product-line"
|
13
|
-
style="height: 1px; background-color: #4b4b4b"
|
14
|
-
/>
|
15
|
-
<h6 class="text-center appscms-h3 my-4">Products</h6>
|
16
|
-
<hr
|
17
|
-
class="flex-grow-1 mx-4 mb-0 footer-product-line"
|
18
|
-
style="height: 1px; background-color: #4b4b4b"
|
19
|
-
/>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
|
7
|
+
|
23
8
|
{%- for item in footerData.product -%}
|
24
9
|
<div class="col-md-3">
|
10
|
+
<ul class="p-0 m-0">
|
25
11
|
<li>
|
26
12
|
<a class="footer-product-link" href="{{item.url}}">{{item.name}}</a>
|
27
13
|
</li>
|
14
|
+
</ul>
|
28
15
|
</div>
|
29
16
|
{% endfor %}
|
30
17
|
</div>
|
@@ -425,8 +425,7 @@
|
|
425
425
|
</script>
|
426
426
|
|
427
427
|
{%- endif -%} {%- endif -%} {%- if page.tool -%} {%- include
|
428
|
-
Rating/structureddata.html -%} {%- endif -%}
|
429
|
-
-%} {%- if site.pwa -%}
|
428
|
+
Rating/structureddata.html -%} {%- endif -%} {%- if site.pwa -%}
|
430
429
|
|
431
430
|
<script>
|
432
431
|
if ("serviceWorker" in navigator) {
|