pds-dev-kit-web-test 2.7.507 → 2.7.508

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.
@@ -207,26 +207,36 @@ var isRichText = function (text) {
207
207
  function domstringToPlain(domstring, ellipsis, useEnter) {
208
208
  var tempDivElement = document.createElement('div');
209
209
  tempDivElement.innerHTML = domstring;
210
- var plainText = tempDivElement.textContent || tempDivElement.innerText;
211
- // NOTE: 두개 이상의 공백을 ' ' 변경합니다.
210
+ // 1. 제거하고 싶은 '비-텍스트' 태그들을 정의하고 모두 삭제합니다.
211
+ var tagsToRemove = ['iframe', 'img', 'video', 'audio', 'script', 'style', 'canvas', 'svg'];
212
+ tagsToRemove.forEach(function (tagName) {
213
+ var elements = tempDivElement.querySelectorAll(tagName);
214
+ elements.forEach(function (el) { return el.remove(); });
215
+ });
216
+ // 2. 텍스트 추출 (위에서 태그를 지웠으므로 순수 텍스트만 남음)
217
+ var plainText = tempDivElement.textContent || tempDivElement.innerText || '';
218
+ // 3. 공백 처리
212
219
  var processedText = plainText.replace(/\s{2,}/gi, ' ');
213
- if (ellipsis) {
214
- return processedText.length > ellipsis
215
- ? "".concat(processedText.slice(0, ellipsis), "...")
216
- : processedText;
220
+ // 4. 말줄임표 처리
221
+ if (ellipsis && processedText.length > ellipsis) {
222
+ return "".concat(processedText.slice(0, ellipsis), "...");
217
223
  }
218
- // NOTE: \n을 ' '으로 변경할지 여부를 확인합니다.
224
+ // 5. 줄바꿈 처리 로직
219
225
  if (useEnter) {
226
+ // innerHTML에서 br과 p 태그를 변환하기 전에,
227
+ // 이미 1번 단계에서 이미지/이프레임 등이 제거된 상태의 innerHTML을 사용합니다.
220
228
  processedText = tempDivElement.innerHTML
221
- .replace(/<br\s*\/?>/gi, '\n') // <br> 태그를 \n으로 변환
222
- .replace(/<\/p>/gi, '\n') // <p> 종료 태그를 \n으로 변환
223
- .replace(/&gt;/gi, '>') // &gt;를 > 으로 변환
224
- .replace(/&lt;/gi, '<') // &lt;를 <으로 변환
225
- .replace(/&amp;/gi, '&') // &amp;를 &으로 변환
226
- .replace(/<p[^>]*>/gi, ''); // <p> 태그 제거
229
+ .replace(/<br\s*\/?>/gi, '\n')
230
+ .replace(/<\/p>/gi, '\n')
231
+ .replace(/&gt;/gi, '>')
232
+ .replace(/&lt;/gi, '<')
233
+ .replace(/&amp;/gi, '&')
234
+ .replace(/<p[^>]*>/gi, '')
235
+ .replace(/<\/?[^>]+(>|$)/g, ''); // 남은 모든 HTML 태그 제거 (정규식 추가)
227
236
  }
228
237
  else {
229
- processedText = processedText.replace(/\n/gi, '<br>');
238
+ // 줄바꿈을 공백으로 치환하거나 <br>로 치환 (상황에 따라 선택)
239
+ processedText = processedText.replace(/\n/gi, ' ').trim();
230
240
  }
231
241
  return processedText;
232
242
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pds-dev-kit-web-test",
3
- "version": "2.7.507",
3
+ "version": "2.7.508",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "dist/index.js",