appscms-tools-theme 4.8.3 → 4.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/_data/.DS_Store +0 -0
  3. data/_data/about/en/about.json +16 -16
  4. data/_data/blog/nav.json +14 -14
  5. data/_data/blog/relatedblogs.json +2816 -2816
  6. data/_data/feature/en/batch-conversion.json +192 -192
  7. data/_data/feature/en/compress-pdf.json +223 -223
  8. data/_data/feature/en/devtools.json +321 -321
  9. data/_data/feature/en/face-detection.json +156 -156
  10. data/_data/feature/en/split-pdf.json +221 -221
  11. data/_data/feature/en/theframe.json +160 -160
  12. data/_data/footer/en/data.json +264 -264
  13. data/_data/header/en/data.json +672 -672
  14. data/_data/home/en/en.json +250 -250
  15. data/_data/home/en/posters.json +322 -322
  16. data/_data/home-1/en/en.json +236 -236
  17. data/_data/noindexURLs.json +23 -0
  18. data/_includes/.DS_Store +0 -0
  19. data/_includes/alternates/alternates.html +64 -89
  20. data/_includes/appscms/customblog/contenttool-recent-posts.html +94 -94
  21. data/_includes/appscms/customblog/pageRelatedPosts.html +68 -68
  22. data/_includes/appscms/customblog/recentposts.html +67 -67
  23. data/_includes/appscms/customblog/relatedBlogs.html +82 -82
  24. data/_includes/appscms/customblog/relatedposts.html +193 -193
  25. data/_includes/appscms/extras/appscms-postbox.html +57 -57
  26. data/_includes/appscms/featurePageAuthors/featurePageAuthors.html +85 -85
  27. data/_includes/appscms/head/bloghead.html +128 -128
  28. data/_includes/appscms/headings/contenttool-headings.html +33 -33
  29. data/_includes/appscms/headings/devtool-headings.html +38 -38
  30. data/_includes/appscms/home/contenttool-feature-boxes.html +19 -19
  31. data/_includes/appscms/home/devtool-feature-boxes.html +70 -70
  32. data/_includes/appscms/infographics/infographics.html +241 -32
  33. data/_includes/appscms/loaders/loader.html +4 -4
  34. data/_includes/appscms/navbars/devtool-navbar.html +50 -50
  35. data/_includes/appscms/navbars/devtool-toolbar.html +100 -100
  36. data/_includes/appscms/navbars/navbar.html +129 -75
  37. data/_includes/appscms/navbars/toolbar.html +326 -139
  38. data/_includes/appscms/recent-posts/recent_posts.html +90 -90
  39. data/_includes/appscms/recent-posts/related_categories_post.html +194 -194
  40. data/_includes/appscms/searchbar/devtool-searchbar.html +63 -63
  41. data/_includes/appscms/usp/usp.html +90 -90
  42. data/_includes/author_bio.html +41 -41
  43. data/_includes/authorpagehead/index.html +47 -47
  44. data/_includes/authors/authors.html +39 -39
  45. data/_includes/batch-conversion.html +141 -141
  46. data/_includes/bookmark.html +6 -6
  47. data/_includes/cssfile/links.html +54 -54
  48. data/_includes/custom-head.html +138 -138
  49. data/_includes/customCode.html +1 -1
  50. data/_includes/customScripts.html +1 -1
  51. data/_includes/customblog/pageRelatedPosts.html +87 -87
  52. data/_includes/customblog/recentposts.html +67 -67
  53. data/_includes/customblog/relatedBlogs.html +86 -86
  54. data/_includes/customblog/relatedposts.html +201 -201
  55. data/_includes/dropdown/langdropdown.html +32 -32
  56. data/_includes/feature.html +39 -39
  57. data/_includes/featurePageAuthors/featurePageAuthors.html +101 -101
  58. data/_includes/footer/index.html +537 -537
  59. data/_includes/google-analytics.html +32 -32
  60. data/_includes/head/index.html +627 -627
  61. data/_includes/header/blogHeader.html +34 -34
  62. data/_includes/header/index.html +152 -152
  63. data/_includes/infographics/infographics.html +244 -244
  64. data/_includes/internationalization-section.html +64 -47
  65. data/_includes/paginationBlogPage.html +70 -70
  66. data/_includes/postbox.html +65 -65
  67. data/_includes/script.html +493 -493
  68. data/_includes/section/count.html +32 -32
  69. data/_includes/section/recent_posts.html +94 -94
  70. data/_includes/section/related_categories_post.html +196 -196
  71. data/_includes/share/socialshare.html +21 -21
  72. data/_includes/userTracking.html +14 -14
  73. data/_layouts/aboutUs.html +175 -175
  74. data/_layouts/allAuthors.html +131 -131
  75. data/_layouts/appscms-about.html +163 -163
  76. data/_layouts/appscms-audio.html +33 -33
  77. data/_layouts/appscms-author.html +436 -436
  78. data/_layouts/appscms-authors.html +145 -145
  79. data/_layouts/appscms-batch.html +141 -141
  80. data/_layouts/appscms-calculator.html +93 -93
  81. data/_layouts/appscms-categories.html +26 -26
  82. data/_layouts/appscms-contact.html +132 -132
  83. data/_layouts/appscms-disclaimer.html +124 -124
  84. data/_layouts/appscms-download.html +289 -289
  85. data/_layouts/appscms-feature-result.html +96 -96
  86. data/_layouts/appscms-help.html +25 -25
  87. data/_layouts/appscms-imagekit.html +96 -96
  88. data/_layouts/appscms-post.html +243 -243
  89. data/_layouts/appscms-privacy-policy.html +781 -781
  90. data/_layouts/appscms-terms-and-conditions.html +646 -646
  91. data/_layouts/appscms-video.html +33 -33
  92. data/_layouts/audio.html +33 -33
  93. data/_layouts/author.html +409 -409
  94. data/_layouts/batch.html +177 -177
  95. data/_layouts/blog-1.html +116 -116
  96. data/_layouts/blog.html +131 -131
  97. data/_layouts/calculator.html +99 -99
  98. data/_layouts/contenttool-feature.html +42 -42
  99. data/_layouts/contenttool-home.html +53 -53
  100. data/_layouts/devtool-blog.html +132 -132
  101. data/_layouts/devtool-feature.html +54 -54
  102. data/_layouts/devtool-home.html +53 -53
  103. data/_layouts/devtools.html +57 -57
  104. data/_layouts/feature-1.html +285 -285
  105. data/_layouts/feature.html +351 -351
  106. data/_layouts/featureResultPage.html +82 -82
  107. data/_layouts/frame.html +222 -222
  108. data/_layouts/home-1.html +186 -186
  109. data/_layouts/home.html +375 -375
  110. data/_layouts/homeResultPage.html +32 -32
  111. data/_layouts/imagekit.html +308 -308
  112. data/_layouts/photo-effects-home.html +190 -190
  113. data/_layouts/post.html +233 -233
  114. data/assets/.DS_Store +0 -0
  115. data/assets/app.js +75 -75
  116. data/assets/css/appscms-blog.css +505 -505
  117. data/assets/css/appscms-contenttool.css +1384 -1384
  118. data/assets/css/appscms-home.css +5 -5
  119. data/assets/css/appscms-imagekit.css +855 -855
  120. data/assets/css/appscms-theme.css +11 -251
  121. data/assets/css/appscms-variables.css +24 -24
  122. data/assets/css/blog.css +510 -510
  123. data/assets/css/calculators.css +46 -46
  124. data/assets/css/common.css +944 -944
  125. data/assets/css/devtool-main.css +1350 -1350
  126. data/assets/css/devtools.css +105 -105
  127. data/assets/css/feature-1.css +293 -293
  128. data/assets/css/home-1.css +188 -188
  129. data/assets/css/imagekit copy.css +848 -848
  130. data/assets/css/imagekit.css +848 -848
  131. data/assets/css/tools.css +1846 -1846
  132. data/assets/images/close-button.svg +31 -31
  133. data/assets/images/digipaint.svg +6 -6
  134. data/assets/images/iconn.svg +12 -12
  135. data/assets/images/logo.svg +2 -2
  136. data/assets/images/manthink.svg +3552 -3552
  137. data/assets/images/search-icon.svg +2 -2
  138. data/assets/js/appscms-infographics.js +49 -49
  139. data/assets/js/batch.js +219 -219
  140. data/assets/js/devtools.js +81 -81
  141. data/assets/js/sharePage.js +65 -65
  142. data/assets/js/usageTracking.js +143 -143
  143. data/assets/js/usageTrackingEvents.js +6 -6
  144. data/assets/js/webvitals.js +4 -4
  145. metadata +5 -3
@@ -1,290 +1,290 @@
1
- {% assign file = page.fileName %}
2
- {% assign lang = page.lang %}
3
- {% assign folder = page.folderName %}
4
- {% assign downloadData= site.data[folder][lang][file] %}
5
- <!DOCTYPE html>
6
- <html lang="{{homeData.htmlLangAtt}}">
7
- {%- include appscms/head/head.html -%}
8
- <body>
9
- {%- include appscms/navbars/navbar.html -%} {%- include
10
- appscms/navbars/toolbar.html -%}
11
- <div class="container">
12
- {%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
13
- <div class="row">
14
- <div class="col-md-9 mx-auto">
15
- {%- endif -%}
16
- <div class="appscms-download-section">
17
- <div class="row">
18
- <div class="col-md-12 px-0">
19
- <div class="success-msg-cont mb-0 ">
20
- <div class="success-greeting">
21
- <p class="success-msg"> {{downloadData.successmessage | default: 'Hurray! your operation was
22
- completed'
23
- }}
24
- </p>
25
- </div>
26
- <div class="go-back-block">
27
- <button id="processing-btn"> <span class="button-loader"></span> Try processing another file</button>
28
- </div>
29
-
30
- </div>
31
- <!-- <div class="col-lg-7 col-md-9 col-sm-11 text-center mx-auto">
32
- <img id="rating-img" loading='lazy' src="/assets/images/rating.png" alt="rating-img" {%- if
33
- site.crossorigin -%} crossorigin {%- endif -%}>
34
- <div class="rating-tool" style="border: none;">
35
- <div class="rating-text mr-2">{{downloadData.rateus | default: 'Rate us'}}: </div>
36
- <div class="rating-stars">
37
- <i class="fas fa-star rating-star"></i><i class="fas fa-star rating-star"></i><i
38
- class="fas fa-star rating-star"></i><i class="fas fa-star rating-star"></i><i
39
- class="fas fa-star rating-star"></i>
40
- </div>
41
- <div class="rating-value ml-2">
42
- {%- for item in data -%}
43
- {%- if item.name ==tool -%}
44
- {%- assign rating = item.rating -%}
45
- {%- assign votes = item.votes -%}
46
- {%- endif -%}
47
- {%- endfor -%}
48
- <span class="rating"> <span id='rating'>0</span><span>/5</span> </span>
49
- &nbsp; <span class="total-ratings" id='count'>0 </span>{{downloadData.votes | default: 'votes'}}
50
- </div>
51
- </div>
52
- <script>
53
- const ratingValue = document.getElementById('rating')
54
- const count = document.getElementById('count')
55
- const setRating = async (rating) => {
56
- const name = '{{site.name}}'
57
- const urlParams = new URLSearchParams(window.location.search)
58
- let tool = urlParams.get('tool')
59
- const data = { website: name, feature: tool, rating: rating };
60
- fetch('https://ratingapi-main.netlify.app/.netlify/functions/api/v1/rating/add', {
61
- method: 'POST',
62
- headers: {
63
- 'Content-Type': 'application/json',
64
- },
65
- body: JSON.stringify(data),
66
- })
67
- .then(response => response.json())
68
- .then(data => {
69
- ratingValue.innerText = data.rating
70
- count.innerText = data.count
71
- })
72
- .catch((error) => {
73
- console.error('Error:', error);
74
- });
75
- }
76
- const urlParams = new URLSearchParams(window.location.search)
77
- let tool = urlParams.get('tool')
78
- const fetchRating = async () => {
79
- const data = await fetch(`https://ratingapi-main.netlify.app/.netlify/functions/api/v1/${tool}/rating`).then(res => res.json())
80
- ratingValue.innerText = data.rating
81
- count.innerText = data.votes
82
- }
83
- let ratingImg = document.querySelector('#rating-img');
84
- ratingImg.addEventListener('load', (event) => {
85
- fetchRating()
86
- });
87
- const ratingNode = document.getElementsByClassName('rating-star')
88
- let ratedValue = localStorage.getItem(`${tool}rating`)
89
- if (ratedValue) {
90
- Array.from(ratingNode).slice(0, ratedValue).map(item => {
91
- item.style.color = '#FF8A1F'
92
- })
93
- }
94
- Array.from(ratingNode).map(item => item.addEventListener('click', () => {
95
- const urlParams = new URLSearchParams(window.location.search)
96
- let tool = urlParams.get('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).slice(0, index + 1).map(item => {
111
- item.style.color = '#FF8A1F'
112
- })
113
- setRating(index + 1)
114
- localStorage.setItem(`${tool}rating`, index + 1)
115
- }
116
- }))
117
- </script>
118
- </div> -->
119
- <div class="try-more-features mt-4 ">
120
- <h2 class="appscms-heading"> {{downloadData.tryfeatureheading | default: 'You can also
121
- try
122
- These features'
123
- }} </h2>
124
- <div class="feature-showcase row">
125
- {%- if downloadData.recommendedfeatures -%}
126
- {%- for item in downloadData.recommendedfeatures -%}
127
- <div class="col-md-4 col-sm-6 col-6">
128
-
129
- <a class="px-2 feature-showcase-div w-100 d-flex justify-content-between " href="{{item.url}}">
130
- <img src="{{item.logo}}" loading="lazy" alt="feature-logo" {%- if site.crossorigin -%}
131
- crossorigin="anonymous" {%- endif -%}> <span class="ml-3 ">
132
- {{item.name}}</span> </a>
133
- </div>
134
- {%- endfor -%}
135
- {%- else -%}
136
- code2
137
- {%- endif -%}
138
-
139
- </div>
140
- </div>
141
- </div>
142
-
143
- {%- if downloadData.recommendedsitesheading -%}
144
- <p class="appscms-heading col-12">{{downloadData.recommendedsitesheading}}</p>
145
- {%- else -%}
146
- <p class="appscms-heading col-12">Try our other sites for safe processing of you files ! </p>
147
- {%- endif -%}
148
- <div class="row w-100 px-3 website-showcases">
149
- {%- if downloadData.recommendedsites -%}
150
- {%- assign recommendedsitesData = downloadData.recommendedsites -%}
151
- {%- for item in recommendedsitesData -%}
152
- <div class="col-md-4 col-sm-6 col-6">
153
- <div class="website-showcase">
154
- <img loading='lazy' class="website-img" src="{{item.logo}}" alt="{{item.name}} logo" {%- if
155
- site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a target="_blank"
156
- href="{{item.url}}">{{item.name}}</a>
157
- </div>
158
- </div>
159
- {%- endfor -%}
160
- {%- else -%}
161
- <div class="col-md-4 col-sm-6 col-6">
162
- <div class="website-showcase">
163
- <img loading='lazy' class="website-img"
164
- src="https://d33wubrfki0l68.cloudfront.net/0623ca017395ac8b757b16b645ff38a89963b01b/a43c6/assets/logo.svg"
165
- alt="safepdfkitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
166
- target="_blank" href="https://safepdfkit.com">Safepdfkit.com</a>
167
- </div>
168
- </div>
169
- <div class="col-md-4 col-sm-6 col-6">
170
- <div class="website-showcase">
171
- <img class="website-img" loading='lazy'
172
- src="https://d33wubrfki0l68.cloudfront.net/796c1a01dae9c2d10224fd72a820156974b26ab1/3b885/assets/images/logo.png"
173
- alt="Safeaudiokit-logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
174
- target="_blank" href="https://safeaudiokit.com">safeaudiokit.com</a>
175
- </div>
176
- </div>
177
- <div class="col-md-4 col-sm-6 col-6">
178
- <div class="website-showcase">
179
- <img class="website-img" loading="lazy"
180
- src="https://d33wubrfki0l68.cloudfront.net/ab0207d780c019c54db62b002396bc8c3fddddaf/9abb9/assets/safevideokit.svg"
181
- alt="Safevideokitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
182
- target="_blank" href="https://safevideokit.com">safevideokit.com</a>
183
- </div>
184
- </div>
185
- <div class="col-md-4 col-sm-6 col-6 ">
186
- <div class="website-showcase">
187
- <img loading='lazy' class="website-img"
188
- src="https://d33wubrfki0l68.cloudfront.net/2e37a1020563aa528471da7425b8e58343e2baf7/a186c/picture.png"
189
- alt="Safeimagekitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
190
- target="_blank" href="https://safeimagekit.com/">safeimagekit.com</a>
191
- </div>
192
- </div>
193
- <div class="col-md-4 col-sm-6 col-6">
194
- <div class="website-showcase">
195
- <img loading='lazy' class="website-img"
196
- src="https://d33wubrfki0l68.cloudfront.net/74bf3f3836d56b30d16137169cd4c28bf15494ed/11962/js/pt.png"
197
- alt="safezipkitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
198
- target="_blank" href="https://safezipkit.com/">safezipkit.com</a>
199
- </div>
200
- </div>
201
- <div class="col-md-4 col-sm-6 col-6">
202
- <div class="website-showcase">
203
- <img loading='lazy' class="website-img"
204
- src="https://d33wubrfki0l68.cloudfront.net/325cdfad7de6cae4a03aecfadc70b38af754cbd0/d87f9/assets/images/logo.png"
205
- alt="Safeimageconverter logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
206
- target="_blank" href="https://safeaudioconverter.com/">
207
- safeaudioconverter.com
208
-
209
- </a>
210
- </div>
211
- </div>
212
- <div class="col-md-4 col-sm-6 col-6">
213
- <div class="website-showcase">
214
- <img loading='lazy' class="website-img" src="/assets//images/safevideoconverter.svg"
215
- alt="safevideoconverter logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
216
- target="_blank" href="https://safevideoconverter.com/">safevideoconverter.com</a>
217
- </div>
218
- </div>
219
- <div class="col-md-4 col-sm-6 col-6">
220
- <div class="website-showcase">
221
- <img loading='lazy' class="website-img"
222
- src="https://d33wubrfki0l68.cloudfront.net/c8fef6be5192b9fa57b8503c6ad93befa361926d/a66d0/picture.svg"
223
- alt="safeimageconverter logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
224
- target="_blank" href="https://safeimageconverter.com/">safeimageconverter</a>
225
- </div>
226
- </div>
227
- {%- endif -%}
228
-
229
- </div>
230
-
231
-
232
- </div>
233
- </div>
234
- {%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
235
-
236
- </div>
237
- </div>
238
- </div>
239
- {%- endif -%}
240
-
241
- </div>
242
-
243
-
244
- <div class="download-social-share">
245
- <div class="container">
246
- <div class="row">
247
- <div class="col-md-12 mx-auto">
248
- <div class="row">
249
- <div class="col-md-8">
250
- <p class=" share-heading mb-0 " >
251
- {%- if downloadData.socialshareheading -%}
252
- {{downloadData.socialshareheading}}
253
- {%- else -%}
254
- we are a free to use platform for safe processing of your files. We need to your support to grow. Help us by sharing us on social media. Thanks !
255
- {%- endif -%}
256
- </p>
257
- </div>
258
- <div class="col-md-4">
259
- {%- if site.data.blog.share.platforms -%}
260
-
261
-
262
- <div class="share-icons">
263
- {% assign url = site.url %}
264
- {% for share in site.data.blog.share.platforms %}
265
- {% assign link = share.link | replace: 'URL', url %}
266
- {{page.title}}
267
- <a id=" {{share.type}}" href="{{ link }}" data-toggle="tooltip"
268
- onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;"
269
- data-placement="top" title="{{ share.type }}" aria-label="{{ share.type }}">
270
- <i class="fa-fw {{ share.icon }} mb-0"></i>
271
- </a>
272
- {% endfor %}
273
- </div>
274
- </ul>
275
-
276
- {%- endif -%}
277
- </div>
278
-
279
- </div>
280
- </div>
281
- </div>
282
- </div>
283
- </div>
284
-
285
- {% include appscms/footer/footer.html %}
286
- {% include appscms/scripts/script.html %}
287
-
288
- </body>
289
-
1
+ {% assign file = page.fileName %}
2
+ {% assign lang = page.lang %}
3
+ {% assign folder = page.folderName %}
4
+ {% assign downloadData= site.data[folder][lang][file] %}
5
+ <!DOCTYPE html>
6
+ <html lang="{{homeData.htmlLangAtt}}">
7
+ {%- include appscms/head/head.html -%}
8
+ <body>
9
+ {%- include appscms/navbars/navbar.html -%} {%- include
10
+ appscms/navbars/toolbar.html -%}
11
+ <div class="container">
12
+ {%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
13
+ <div class="row">
14
+ <div class="col-md-9 mx-auto">
15
+ {%- endif -%}
16
+ <div class="appscms-download-section">
17
+ <div class="row">
18
+ <div class="col-md-12 px-0">
19
+ <div class="success-msg-cont mb-0 ">
20
+ <div class="success-greeting">
21
+ <p class="success-msg"> {{downloadData.successmessage | default: 'Hurray! your operation was
22
+ completed'
23
+ }}
24
+ </p>
25
+ </div>
26
+ <div class="go-back-block">
27
+ <button id="processing-btn"> <span class="button-loader"></span> Try processing another file</button>
28
+ </div>
29
+
30
+ </div>
31
+ <!-- <div class="col-lg-7 col-md-9 col-sm-11 text-center mx-auto">
32
+ <img id="rating-img" loading='lazy' src="/assets/images/rating.png" alt="rating-img" {%- if
33
+ site.crossorigin -%} crossorigin {%- endif -%}>
34
+ <div class="rating-tool" style="border: none;">
35
+ <div class="rating-text mr-2">{{downloadData.rateus | default: 'Rate us'}}: </div>
36
+ <div class="rating-stars">
37
+ <i class="fas fa-star rating-star"></i><i class="fas fa-star rating-star"></i><i
38
+ class="fas fa-star rating-star"></i><i class="fas fa-star rating-star"></i><i
39
+ class="fas fa-star rating-star"></i>
40
+ </div>
41
+ <div class="rating-value ml-2">
42
+ {%- for item in data -%}
43
+ {%- if item.name ==tool -%}
44
+ {%- assign rating = item.rating -%}
45
+ {%- assign votes = item.votes -%}
46
+ {%- endif -%}
47
+ {%- endfor -%}
48
+ <span class="rating"> <span id='rating'>0</span><span>/5</span> </span>
49
+ &nbsp; <span class="total-ratings" id='count'>0 </span>{{downloadData.votes | default: 'votes'}}
50
+ </div>
51
+ </div>
52
+ <script>
53
+ const ratingValue = document.getElementById('rating')
54
+ const count = document.getElementById('count')
55
+ const setRating = async (rating) => {
56
+ const name = '{{site.name}}'
57
+ const urlParams = new URLSearchParams(window.location.search)
58
+ let tool = urlParams.get('tool')
59
+ const data = { website: name, feature: tool, rating: rating };
60
+ fetch('https://ratingapi-main.netlify.app/.netlify/functions/api/v1/rating/add', {
61
+ method: 'POST',
62
+ headers: {
63
+ 'Content-Type': 'application/json',
64
+ },
65
+ body: JSON.stringify(data),
66
+ })
67
+ .then(response => response.json())
68
+ .then(data => {
69
+ ratingValue.innerText = data.rating
70
+ count.innerText = data.count
71
+ })
72
+ .catch((error) => {
73
+ console.error('Error:', error);
74
+ });
75
+ }
76
+ const urlParams = new URLSearchParams(window.location.search)
77
+ let tool = urlParams.get('tool')
78
+ const fetchRating = async () => {
79
+ const data = await fetch(`https://ratingapi-main.netlify.app/.netlify/functions/api/v1/${tool}/rating`).then(res => res.json())
80
+ ratingValue.innerText = data.rating
81
+ count.innerText = data.votes
82
+ }
83
+ let ratingImg = document.querySelector('#rating-img');
84
+ ratingImg.addEventListener('load', (event) => {
85
+ fetchRating()
86
+ });
87
+ const ratingNode = document.getElementsByClassName('rating-star')
88
+ let ratedValue = localStorage.getItem(`${tool}rating`)
89
+ if (ratedValue) {
90
+ Array.from(ratingNode).slice(0, ratedValue).map(item => {
91
+ item.style.color = '#FF8A1F'
92
+ })
93
+ }
94
+ Array.from(ratingNode).map(item => item.addEventListener('click', () => {
95
+ const urlParams = new URLSearchParams(window.location.search)
96
+ let tool = urlParams.get('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).slice(0, index + 1).map(item => {
111
+ item.style.color = '#FF8A1F'
112
+ })
113
+ setRating(index + 1)
114
+ localStorage.setItem(`${tool}rating`, index + 1)
115
+ }
116
+ }))
117
+ </script>
118
+ </div> -->
119
+ <div class="try-more-features mt-4 ">
120
+ <h2 class="appscms-heading"> {{downloadData.tryfeatureheading | default: 'You can also
121
+ try
122
+ These features'
123
+ }} </h2>
124
+ <div class="feature-showcase row">
125
+ {%- if downloadData.recommendedfeatures -%}
126
+ {%- for item in downloadData.recommendedfeatures -%}
127
+ <div class="col-md-4 col-sm-6 col-6">
128
+
129
+ <a class="px-2 feature-showcase-div w-100 d-flex justify-content-between " href="{{item.url}}">
130
+ <img src="{{item.logo}}" loading="lazy" alt="feature-logo" {%- if site.crossorigin -%}
131
+ crossorigin="anonymous" {%- endif -%}> <span class="ml-3 ">
132
+ {{item.name}}</span> </a>
133
+ </div>
134
+ {%- endfor -%}
135
+ {%- else -%}
136
+ code2
137
+ {%- endif -%}
138
+
139
+ </div>
140
+ </div>
141
+ </div>
142
+
143
+ {%- if downloadData.recommendedsitesheading -%}
144
+ <p class="appscms-heading col-12">{{downloadData.recommendedsitesheading}}</p>
145
+ {%- else -%}
146
+ <p class="appscms-heading col-12">Try our other sites for safe processing of you files ! </p>
147
+ {%- endif -%}
148
+ <div class="row w-100 px-3 website-showcases">
149
+ {%- if downloadData.recommendedsites -%}
150
+ {%- assign recommendedsitesData = downloadData.recommendedsites -%}
151
+ {%- for item in recommendedsitesData -%}
152
+ <div class="col-md-4 col-sm-6 col-6">
153
+ <div class="website-showcase">
154
+ <img loading='lazy' class="website-img" src="{{item.logo}}" alt="{{item.name}} logo" {%- if
155
+ site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a target="_blank"
156
+ href="{{item.url}}">{{item.name}}</a>
157
+ </div>
158
+ </div>
159
+ {%- endfor -%}
160
+ {%- else -%}
161
+ <div class="col-md-4 col-sm-6 col-6">
162
+ <div class="website-showcase">
163
+ <img loading='lazy' class="website-img"
164
+ src="https://d33wubrfki0l68.cloudfront.net/0623ca017395ac8b757b16b645ff38a89963b01b/a43c6/assets/logo.svg"
165
+ alt="safepdfkitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
166
+ target="_blank" href="https://safepdfkit.com">Safepdfkit.com</a>
167
+ </div>
168
+ </div>
169
+ <div class="col-md-4 col-sm-6 col-6">
170
+ <div class="website-showcase">
171
+ <img class="website-img" loading='lazy'
172
+ src="https://d33wubrfki0l68.cloudfront.net/796c1a01dae9c2d10224fd72a820156974b26ab1/3b885/assets/images/logo.png"
173
+ alt="Safeaudiokit-logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
174
+ target="_blank" href="https://safeaudiokit.com">safeaudiokit.com</a>
175
+ </div>
176
+ </div>
177
+ <div class="col-md-4 col-sm-6 col-6">
178
+ <div class="website-showcase">
179
+ <img class="website-img" loading="lazy"
180
+ src="https://d33wubrfki0l68.cloudfront.net/ab0207d780c019c54db62b002396bc8c3fddddaf/9abb9/assets/safevideokit.svg"
181
+ alt="Safevideokitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
182
+ target="_blank" href="https://safevideokit.com">safevideokit.com</a>
183
+ </div>
184
+ </div>
185
+ <div class="col-md-4 col-sm-6 col-6 ">
186
+ <div class="website-showcase">
187
+ <img loading='lazy' class="website-img"
188
+ src="https://d33wubrfki0l68.cloudfront.net/2e37a1020563aa528471da7425b8e58343e2baf7/a186c/picture.png"
189
+ alt="Safeimagekitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
190
+ target="_blank" href="https://safeimagekit.com/">safeimagekit.com</a>
191
+ </div>
192
+ </div>
193
+ <div class="col-md-4 col-sm-6 col-6">
194
+ <div class="website-showcase">
195
+ <img loading='lazy' class="website-img"
196
+ src="https://d33wubrfki0l68.cloudfront.net/74bf3f3836d56b30d16137169cd4c28bf15494ed/11962/js/pt.png"
197
+ alt="safezipkitlogo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
198
+ target="_blank" href="https://safezipkit.com/">safezipkit.com</a>
199
+ </div>
200
+ </div>
201
+ <div class="col-md-4 col-sm-6 col-6">
202
+ <div class="website-showcase">
203
+ <img loading='lazy' class="website-img"
204
+ src="https://d33wubrfki0l68.cloudfront.net/325cdfad7de6cae4a03aecfadc70b38af754cbd0/d87f9/assets/images/logo.png"
205
+ alt="Safeimageconverter logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
206
+ target="_blank" href="https://safeaudioconverter.com/">
207
+ safeaudioconverter.com
208
+
209
+ </a>
210
+ </div>
211
+ </div>
212
+ <div class="col-md-4 col-sm-6 col-6">
213
+ <div class="website-showcase">
214
+ <img loading='lazy' class="website-img" src="/assets//images/safevideoconverter.svg"
215
+ alt="safevideoconverter logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
216
+ target="_blank" href="https://safevideoconverter.com/">safevideoconverter.com</a>
217
+ </div>
218
+ </div>
219
+ <div class="col-md-4 col-sm-6 col-6">
220
+ <div class="website-showcase">
221
+ <img loading='lazy' class="website-img"
222
+ src="https://d33wubrfki0l68.cloudfront.net/c8fef6be5192b9fa57b8503c6ad93befa361926d/a66d0/picture.svg"
223
+ alt="safeimageconverter logo" {%- if site.crossorigin -%} crossorigin="anonymous" {%- endif -%}> <a
224
+ target="_blank" href="https://safeimageconverter.com/">safeimageconverter</a>
225
+ </div>
226
+ </div>
227
+ {%- endif -%}
228
+
229
+ </div>
230
+
231
+
232
+ </div>
233
+ </div>
234
+ {%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
235
+
236
+ </div>
237
+ </div>
238
+ </div>
239
+ {%- endif -%}
240
+
241
+ </div>
242
+
243
+
244
+ <div class="download-social-share">
245
+ <div class="container">
246
+ <div class="row">
247
+ <div class="col-md-12 mx-auto">
248
+ <div class="row">
249
+ <div class="col-md-8">
250
+ <p class=" share-heading mb-0 " >
251
+ {%- if downloadData.socialshareheading -%}
252
+ {{downloadData.socialshareheading}}
253
+ {%- else -%}
254
+ we are a free to use platform for safe processing of your files. We need to your support to grow. Help us by sharing us on social media. Thanks !
255
+ {%- endif -%}
256
+ </p>
257
+ </div>
258
+ <div class="col-md-4">
259
+ {%- if site.data.blog.share.platforms -%}
260
+
261
+
262
+ <div class="share-icons">
263
+ {% assign url = site.url %}
264
+ {% for share in site.data.blog.share.platforms %}
265
+ {% assign link = share.link | replace: 'URL', url %}
266
+ {{page.title}}
267
+ <a id=" {{share.type}}" href="{{ link }}" data-toggle="tooltip"
268
+ onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;"
269
+ data-placement="top" title="{{ share.type }}" aria-label="{{ share.type }}">
270
+ <i class="fa-fw {{ share.icon }} mb-0"></i>
271
+ </a>
272
+ {% endfor %}
273
+ </div>
274
+ </ul>
275
+
276
+ {%- endif -%}
277
+ </div>
278
+
279
+ </div>
280
+ </div>
281
+ </div>
282
+ </div>
283
+ </div>
284
+
285
+ {% include appscms/footer/footer.html %}
286
+ {% include appscms/scripts/script.html %}
287
+
288
+ </body>
289
+
290
290
  </html>