RTE: 가져온 문서 코드 정리

현재 Dokuwiki(https://www.dokuwiki.org/dokuwiki)의 일부 콘텐츠를 Discourse로 이동하고 있습니다. Dokuwiki 구문은 깔끔한 마크다운이 아니기 때문에 수동 편집이 필요합니다. 저는 모든 문자를 볼 수 있기 때문에 보통 기존 편집기를 사용합니다. 하지만 기존 편집기에서는 이상한 “점프 효과”가 나타납니다. 텍스트 블록을 선택하고 포맷을 적용하려고 할 때 커서가 위아래로 뛴다는 것입니다. 이 방식으로는 긴 텍스트를 다시 포맷하는 것이 거의 불가능하며, 항상 편집 창 위치를 다시 설정해야 하기 때문입니다. 이 현상을 설명하기가 어렵고, 스크린캐스트로만 보여줄 수 있을 것 같습니다 … 이 효과는 이전에 Composer / 편집기 텍스트 상자에서 커서가 여기저기로 이동하는 문제에서 설명된 바 있습니다.

RTE 편집기에는 이러한 효과가 나타나지 않습니다. 하지만 다른 시스템에서 가져온 불필요한 코드를 정리할 옵션이 부족합니다 …

1개의 좋아요

이런 쓰레기 코드가 어떤 모습인지 공유해 주실 수 있나요?

1개의 좋아요

얼마나 많은 양인가요? 수십 개, 수백 개, 아니면 수천 개의 게시물인가요?

몇 개를 넘는다면, 가져오기(import) 스크립트를 사용하는 것이 합리적일 수 있습니다. 정도가 아니라면, 수동으로 편집하는 것보다는 마크다운을 수정하는 코드를 사용하는 것이 여전히 합리적일 것입니다. (더 기발한 해결책은 플러그인으로 docuwiki의 편집 사항을 처리하는 것입니다.)

그렇게 많은 것은 아니지만, 스크립트 기반/프로그래매틱한 해결책을 고려할 정도로는 충분할지도 모릅니다. 까다로운 부분은 코드가 dokuwiki 문법(https://www.dokuwiki.org/wiki:syntax)에 bootstrap3 템플릿의 강화된 UI 코드(https://getbootstrap.com)가 추가되어 있다는 점입니다. 외형은 깔끔하지만, 이렇게 설정할 당시에는 콘텐츠 마이그레이션을 염두에 두지 않았습니다. 주요 문제는 dokuwiki 문법이 아니라 bootstrap의

… 관련 부분입니다. 코드 예시:

<div class="level1">&nbsp;</div> <h2 class="page-header pb-3 mb-4 mt-5">Plattenplatz ermitteln</h2> <div class="level2"> <p>Filtern auf ext4, was ist verf&uuml;gbar?</p> <pre class="code"> root@tokoeka ~ # df -h -t ext4 --total Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-root 196G 39G 148G 21% / /dev/md0 486M 400M 57M 88% /boot /dev/mapper/pve-data 3.0T 560G 2.3T 20% /mnt/data /dev/mapper/pve-backup 414G 40K 393G 1% /mnt/backup total 3.6T 598G 2.8T 18% - </pre> <p>&nbsp;</p> <p>Filtern auf ext4, was wird genutzt?</p> <pre class="code"> root@tokoeka ~ # df -h -t ext4 --output=used Used 39G 400M 560G 40K 598G </pre> <p>&nbsp;</p> </div>

응. 완전 엉망이네. nokogiri를 조금만 써서 마크다운으로 변환할 수 있을 거야.

리치 에디터 모드에서 이 text/html 콘텐츠와 정확히 동일한 클립보드를 붙여넣으면 다음과 같은 마크다운으로 변환된 콘텐츠가 생성됩니다:

## Plattenplatz ermitteln

Filtern auf ext4, was ist verfügbar?

```
 root@tokoeka ~ # df -h -t ext4 --total Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-root 196G 39G 148G 21% / /dev/md0 486M 400M 57M 88% /boot /dev/mapper/pve-data 3.0T 560G 2.3T 20% /mnt/data /dev/mapper/pve-backup 414G 40K 393G 1% /mnt/backup total 3.6T 598G 2.8T 18% - 
```

 

Filtern auf ext4, was wird genutzt?

```
 root@tokoeka ~ # df -h -t ext4 --output=used Used 39G 400M 560G 40K 598G 
```

우리가 신경 쓰지 않는 부분(div, class 등)에 대해서는 손실이 발생할 수 있지만, ProseMirror 스키마에서 정의된 hN, pre 또는 다른 요소들을 이해합니다. 여기에는 ProseMirror 파서가 사용하는 parseDOM 정의가 포함된 다양한 에디터 확장들도 포함되며, 테마 컴포넌트나 플러그인에서 가져온 정의도 존중합니다.

원래 요청에 관해서는 다음과 같습니다:

리치 에디터가 문서를 로드할 때, HTML이 더 이상 동일하지 않다는 말인가요?

HTML 블록을 포함하는 게시물의 raw는 “패스-스루” 코드 에디터 노드로 렌더링되어야 합니다:

이후 마크다운 모드에서와 동일한 방식으로 편집할 수 있습니다.

1개의 좋아요