Confluence 매크로에서 페이지의 모든 자식 콘텐츠를 렌더링하는 방법

알렉산더 라이언 바게트

현재 부모의 모든 자식 페이지를 렌더링하는 간단한 confluence 매크로를 구축하려고합니다. 기본적으로 기존 매크로 사이의 교차 : 하위 표시 및 포함 페이지. 매크로 에 대한 소스 코드살펴 봤지만 confluence에서 처음 개발 한 것이기 때문에 도움이되기보다는 혼란 스러웠습니다.

지금은 execute 메서드를 작업 중이며 confluence 개발이 처음이기 때문에 정확히 무엇이 필요한지 100 % 확신 할 수 없습니다.

이미 Atlassian의 새 Confluence 매크로 만들기 가이드를 읽었 지만 기존 매크로의 속성 목록을 래핑하기 위해 html을 사용한 것 같습니다.

그래서 저는 API , 특히 페이지 를보기로 결정했습니다 . 페이지의 본문을 복사하면 페이지에있는 어린이의 매크로와 스타일이 표시되지 않는다는 것입니다.

    @Override
    public String execute(Map<String, String> parameters, String body,
            ConversionContext context) throws MacroExecutionException {
        //loop through each child page and get its content
        StringBuilder sb = new StringBuilder();
        ContentEntityObject ceo = context.getPageContext().getEntity();
        Page parent =(Page) ceo ;
        List<Page> children = parent.getChildren();

        for(Page child:children)

        {
          sb.append(child.getBodyAsString());
        }

        return sb.toString();
    }

텍스트뿐만 아니라 모든 것을 어떻게 얻습니까?

또한 플러그인이 작성된 것이므로 Java로 태그를 지정합니다.

알렉산더 라이언 바게트

우리가 알아 냈습니다.

매크로를 렌더링하기 위해 저장 형식에서보기 형식으로 변환해야했습니다.

{

  String converted = xhtmlUtils.convertStorageToView(child.getBodyAsString(), context);
  sb.append(converted);

}

튜토리얼을 따르는 경우 xhtmlUtils가 생성자에서 초기화되었습니다.

private final XhtmlContent xhtmlUtils;

public ExampleMacro(XhtmlContent xhtmlUtils) 
{
    this.xhtmlUtils = xhtmlUtils;   
}

또한 Atlassian 답변 의 제안에 따라 주석을 추가했습니다.

@RequiresFormat(Format.Storage)
public String execute(Map<String, String> params, String body, ConversionContext conversionContext) throws MacroExecutionException {

여기서 Format 및 requiresFormat은 이러한 클래스 / 주석입니다.

import com.atlassian.confluence.content.render.xhtml.macro.annotation.Format;
import com.atlassian.confluence.content.render.xhtml.macro.annotation.RequiresFormat

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP로 모든 div의 콘텐츠를 선택하는 방법

분류에서Dev

모델에서 오는 HTML 콘텐츠를 렌더링하는 방법

분류에서Dev

Python에서 REST API를 사용하여 Confluence Cloud에서 Space의 모든 페이지를 반복하는 방법

분류에서Dev

Cloud Storage 버킷에서 폴더 내의 모든 콘텐츠를 프로그래밍 방식으로 삭제하는 방법

분류에서Dev

wordpress-모든 콘텐츠 및 페이지에 대해 웹 서비스를 Android 앱과 통합하는 방법

분류에서Dev

CSS에서 자식의 콘텐츠로 크기를 조정할 부모 div를 얻는 방법이 있습니까?

분류에서Dev

navbar의 모든 콘텐츠를 한 줄에 중앙에 배치하는 방법

분류에서Dev

표의 모든 셀에 다른 콘텐츠를 제공하는 방법

분류에서Dev

HTML 콘텐츠에서 모든 링크를 제거하는 방법

분류에서Dev

요소 콘텐츠를 렌더링하지 않는 방법?

분류에서Dev

사용자 지정 나뭇 가지 함수 내에서 콘텐츠를 렌더링하는 방법은 무엇입니까?

분류에서Dev

Shadow DOM에서 <content> 태그의 콘텐츠를 렌더링하지 않는 방법은 무엇입니까?

분류에서Dev

drupal 모듈 내에서 모든 종류의 콘텐츠를 구체적으로 표시하는 방법

분류에서Dev

모든 해상도에 맞도록 그리드의 콘텐츠 크기를 자동으로 조정하는 방법

분류에서Dev

HTML 마크 업없이 React Quill의 콘텐츠를 렌더링하는 방법은 무엇입니까?

분류에서Dev

CGI Perl을 사용하여 HTML 테이블에서 XML 콘텐츠를 렌더링하는 방법

분류에서Dev

div의 모든 콘텐츠를 중앙에 배치하고 콘텐츠 간의 거리를 동일하게 유지하는 방법

분류에서Dev

콘텐츠 페이지없이 Servicestack을 사용하여 cshtml 페이지에서 Razor를 렌더링하는 방법

분류에서Dev

명령 줄에서 폴더의 실시간 콘텐츠를 모니터링하는 방법

분류에서Dev

Android에서 비디오의 웹 키트 콘텐츠를 렌더링하는 방법은 무엇입니까?

분류에서Dev

다시 렌더링하지 않고 한 콘텐츠 div를 다른 콘텐츠로 이동하는 방법은 무엇입니까?

분류에서Dev

페이지로드 자바 스크립트 전에 일부 콘텐츠를 팝업하는 방법

분류에서Dev

캔버스의 다른 모든 콘텐츠 뒤에 이미지를 그리는 방법은 무엇입니까?

분류에서Dev

Outlook 2019 (데스크톱)를 백업하는 방법-모든 프로필 및 콘텐츠 (이메일, 일정 등)

분류에서Dev

SharePoint의 콘텐츠 수정에서 페이지를 차단하는 방법

분류에서Dev

Orchard Cms에서 모든 콘텐츠 항목 및 현지화 가능한 문자열에 대한 현지화를 전환하는 방법

분류에서Dev

웹 페이지에서 콘텐츠를 읽는 방법

분류에서Dev

Android에서 상대 레이아웃의 모든 콘텐츠를 클릭 할 수있게 만드는 방법

분류에서Dev

콘텐츠 디렉터리의 모든 파일에 메타 데이터를 적용하는 방법

Related 관련 기사

  1. 1

    PHP로 모든 div의 콘텐츠를 선택하는 방법

  2. 2

    모델에서 오는 HTML 콘텐츠를 렌더링하는 방법

  3. 3

    Python에서 REST API를 사용하여 Confluence Cloud에서 Space의 모든 페이지를 반복하는 방법

  4. 4

    Cloud Storage 버킷에서 폴더 내의 모든 콘텐츠를 프로그래밍 방식으로 삭제하는 방법

  5. 5

    wordpress-모든 콘텐츠 및 페이지에 대해 웹 서비스를 Android 앱과 통합하는 방법

  6. 6

    CSS에서 자식의 콘텐츠로 크기를 조정할 부모 div를 얻는 방법이 있습니까?

  7. 7

    navbar의 모든 콘텐츠를 한 줄에 중앙에 배치하는 방법

  8. 8

    표의 모든 셀에 다른 콘텐츠를 제공하는 방법

  9. 9

    HTML 콘텐츠에서 모든 링크를 제거하는 방법

  10. 10

    요소 콘텐츠를 렌더링하지 않는 방법?

  11. 11

    사용자 지정 나뭇 가지 함수 내에서 콘텐츠를 렌더링하는 방법은 무엇입니까?

  12. 12

    Shadow DOM에서 <content> 태그의 콘텐츠를 렌더링하지 않는 방법은 무엇입니까?

  13. 13

    drupal 모듈 내에서 모든 종류의 콘텐츠를 구체적으로 표시하는 방법

  14. 14

    모든 해상도에 맞도록 그리드의 콘텐츠 크기를 자동으로 조정하는 방법

  15. 15

    HTML 마크 업없이 React Quill의 콘텐츠를 렌더링하는 방법은 무엇입니까?

  16. 16

    CGI Perl을 사용하여 HTML 테이블에서 XML 콘텐츠를 렌더링하는 방법

  17. 17

    div의 모든 콘텐츠를 중앙에 배치하고 콘텐츠 간의 거리를 동일하게 유지하는 방법

  18. 18

    콘텐츠 페이지없이 Servicestack을 사용하여 cshtml 페이지에서 Razor를 렌더링하는 방법

  19. 19

    명령 줄에서 폴더의 실시간 콘텐츠를 모니터링하는 방법

  20. 20

    Android에서 비디오의 웹 키트 콘텐츠를 렌더링하는 방법은 무엇입니까?

  21. 21

    다시 렌더링하지 않고 한 콘텐츠 div를 다른 콘텐츠로 이동하는 방법은 무엇입니까?

  22. 22

    페이지로드 자바 스크립트 전에 일부 콘텐츠를 팝업하는 방법

  23. 23

    캔버스의 다른 모든 콘텐츠 뒤에 이미지를 그리는 방법은 무엇입니까?

  24. 24

    Outlook 2019 (데스크톱)를 백업하는 방법-모든 프로필 및 콘텐츠 (이메일, 일정 등)

  25. 25

    SharePoint의 콘텐츠 수정에서 페이지를 차단하는 방법

  26. 26

    Orchard Cms에서 모든 콘텐츠 항목 및 현지화 가능한 문자열에 대한 현지화를 전환하는 방법

  27. 27

    웹 페이지에서 콘텐츠를 읽는 방법

  28. 28

    Android에서 상대 레이아웃의 모든 콘텐츠를 클릭 할 수있게 만드는 방법

  29. 29

    콘텐츠 디렉터리의 모든 파일에 메타 데이터를 적용하는 방법

뜨겁다태그

보관