WeChat MP Publish
개요
이 스킬을 사용하여 이미 로그인된 편집기 세션 내에서 WeChat Official Account 기사를 안정적이고 반복 가능한 방식으로 생성, 업데이트, 검사 및 게시할 수 있습니다.
이 스킬은 특정 작성자 이름, 요약 스타일, 로컬 디렉토리 구조 또는 개인 미디어 라이브러리 워크플로우를 가정하지 않습니다.
지원 입력
- 로컬 Markdown 기사 파일.
- 사전 구축된 HTML 본문 내용.
- 부분 업데이트만 필요한 기존 WeChat Official Account 초안.
- 선택적 제목, 저자, 요약 및 커버 이미지.
사전 조건
- WeChat Official Account 백엔드에 이미 로그인되어 있는 지속적인 브라우저 세션을 사용합니다.
- 기사 본문 소스와 제목, 저자, 요약, 커버 이미지와 같은 선택적 필드가 제공되었는지 확인합니다.
- 최종 게시는 외부 작업입니다. 현재 턴에서 사용자의 명시적 확인 없이 최종 게시 버튼을 클릭하지 마십시오.
표준 워크플로우
1. 기본 메타데이터 입력
- 제목은 필수이며 명시적으로 작성하거나 사용자가 의도한 제목에 맞게 업데이트해야 합니다.
- 저자 필드는 사용자가 저자 이름을 제공한 경우에만 입력합니다. 그렇지 않으면 기존 값을 유지하거나 비워 둡니다.
- 요약은 제공되거나 명확히 확인된 경우에만 작성합니다. 프로모션 플랫폼 카피로 다시 작성하지 마십시오.
2. 기사 본문 가져오기
scripts/markdown_to_wechat_html.py를 사용하여 로컬 Markdown을 편집기로 가져오기에 적합한 HTML로 변환하는 것이 좋습니다.- 본문이 이미 유효한 HTML인 경우 변환을 건너뛰고 편집기에 직접 작성합니다.
- 일반 붙여넣기 동작에 의존하지 마십시오. 편집기 인스턴스의
replaceAllContent메서드를 직접 호출합니다. - 편집기 인스턴스를 찾으려면
.view.rich_media_content.autoTypeSetting24psection에서 시작하여replaceAllContent가 있는 객체를 찾을 때까지 Vue 부모를 통해 위로 이동합니다.
재사용 가능한 브라우저 스니펫:
const editorRoot = document.querySelector('.view.rich_media_content.autoTypeSetting24psection');
let vm = editorRoot && editorRoot.__vue__;
for (let i = 0; i < 6 && vm && !vm.replaceAllContent; i++) vm = vm.$parent;
if (!vm || !vm.replaceAllContent) throw new Error('WeChat editor instance not found');
vm.replaceAllContent(html);
3. 커버 이미지 설정
- 사용자가 커버 이미지를 제공하거나 명시적으로 교체를 요청한 경우에만 커버 이미지를 처리합니다.
- 보이는 공식 UI 진입점만 사용합니다. 커버 영역을 클릭한 다음 미디어 라이브러리 또는 다른 보이는 플랫폼 옵션에서 선택합니다.
- 숨겨진
input[type=file]요소를 노출하거나 조작하지 마십시오. 그러면 페이지 상태가 손상되고 중복 커버 또는 임시 업로드 컨트롤이 남을 수 있습니다. - 업로드 및 자르기 확인 후 편집기로 돌아와 왼쪽 기사 카드에 올바른 커버가 표시되는지 확인합니다.
4. 초안 저장
- 각 주요 단계 후에 저장합니다. 대부분의 경우 최소 두 번 저장합니다.
- 본문 내용과 커버 이미지의 첫 번째 완전한 처리 후 한 번 저장합니다.
- 레이아웃 검토 및 수정 후 다시 한 번 저장합니다.
- 저장 후 기록 패널을 확인하고 새 수동 저장 레코드가 나타나는지 확인합니다.
5. 레이아웃 검사
최소 세 영역을 확인합니다.
- 상단: 제목, 저자, 소제목, 시작 단락 및 커버 카드.
- 중간: 단락 밀도, 제목 가시성 및 우발적인 굵게, 들여쓰기 또는 편집기 잔여물.
- 하단: 참조, 목록, 후행 빈 줄, 중복 커버, 중복 이미지 또는 남은 업로드 컨트롤.
필요할 때 스크린샷을 찍습니다. DOM 텍스트에만 의존하지 마십시오.
6. 부분 업데이트 주의
- 사용자가 제목, 요약, 저자, 커버 이미지 또는 몇 단락만 변경하도록 요청하는 경우 전체 기사 본문을 덮어쓰지 마십시오.
- 기존 초안의 일부를 편집하기 전에 현재 상태를 검사하고 전체 교체가 안전한지 아니면 편집기 내 패치가 더 안전한지 결정합니다.
- 기존 초안에 수동으로 배치된 이미지, 인용 블록, 구분선 또는 기타 수동으로 조정된 서식이 포함된 경우 전체 본문을 교체하기 전에 해당 작업을 잃을 위험을 평가합니다.
7. 명시적 확인 후에만 게시
- 사용자가 지금 게시하라고 명시적으로 말한 후에만 게시 대화 상자를 엽니다.
- 게시 흐름에 보조 확인이 표시되면 일반 옵션을 확인하지만 사용자의 의도를 변경하지 마십시오.
- 플랫폼에서 경고를 표시하거나 콘텐츠를 차단하거나 서식 문제를 발견하면 게시를 강행하지 말고 중단합니다.
제약 사항 및 문제 해결
- 페이지 상단 근처에 임시 "파일 선택" 스타일 컨트롤이 나타나면 숨겨진 업로드 컨트롤이 이전에 조작되었을 가능성이 있습니다. 다시 저장하기 전에 정리합니다.
- 생성된 커버 미리보기 노드가 커버가 실제로 적용되었음을 보장하지는 않습니다. 편집기 카드 및 커버 영역의 실제 디스플레이를 신뢰합니다.
- 참조 섹션이 완전히 굵게 표시되거나, 목록 항목이 함께 축소되거나, 빈 줄이 예기치 않게 확장되는 경우 게시하기 전에 본문을 수정합니다.
- 고정된 저자 이름, 기본 요약 템플릿, 개인 디렉토리 구조 또는 이전 세션 상태를 가정하지 마십시오.
본문 변환 스크립트
사용법:
python3 scripts/markdown_to_wechat_html.py /path/to/article.md > /tmp/wechat_article_body.html
cat /path/to/article.md | python3 scripts/markdown_to_wechat_html.py - > /tmp/wechat_article_body.html
이 스크립트는 replaceAllContent에 적합한 간소화된 HTML을 생성하며 다음을 보존합니다.
- 제목 수준
- 일반 단락
- 순서 없음 및 순서 있는 목록
- 굵게, 기울임꼴, 링크 및 인라인 코드
완전한 리치 텍스트 충실도를 시도하지 않습니다. 기사에 표, 각주 또는 깊게 중첩된 구조가 포함된 경우 가져온 출력을 수동으로 검토합니다.