타입 지정 구문 트리를 통한 Markdown 편집

Aspose.HTML for .NET 은 MarkdownParser 를 사용해 기존 MD 파일을 MarkdownSyntaxTree 로 표현합니다. C# 애플리케이션은 타입 지정 노드를 찾고 콘텐츠를 교체하며 문서 구조를 삽입하거나 제거한 다음, 먼저 HTML로 변환하지 않고 변경된 트리를 Markdown으로 저장할 수 있습니다.


C#에서 Markdown 단락 텍스트 업데이트

다음 예제는 input.md에서 첫 번째 단락을 찾고 인라인 콘텐츠를 교체한 다음 업데이트된 구문 트리를 edited.md에 저장합니다. 다른 최상위 문서 노드는 트리에 그대로 유지됩니다.

Markdown 파일을 편집하는 C# 코드

using Aspose.Html.Toolkit.Markdown.Syntax;
using Aspose.Html.Toolkit.Markdown.Syntax.Parser;

MarkdownParser parser = new MarkdownParser();

// Parse the source file into a typed Markdown syntax tree
MarkdownSyntaxTree syntaxTree = parser.ParseFile("input.md");

// Find the first top-level paragraph
MarkdownSyntaxNode currentNode = syntaxTree.FirstChild;
ParagraphSyntaxNode paragraph = null;

while (currentNode != null)
{
    if (currentNode is ParagraphSyntaxNode)
    {
        paragraph = (ParagraphSyntaxNode)currentNode;
        break;
    }

    currentNode = currentNode.NextSibling;
}

if (paragraph != null)
{
    // Replace the paragraph's existing inline content
    while (paragraph.FirstChild != null)
    {
        paragraph.RemoveChild(paragraph.FirstChild);
    }

    MarkdownSyntaxFactory factory = syntaxTree.SyntaxFactory;
    TextSyntaxNode text = factory.Text("Updated paragraph text.");
    paragraph.AppendChild(text);
}

// Serialize the updated syntax tree back to Markdown
syntaxTree.Save("edited.md");

C#에서 Markdown을 편집하는 단계

  1. MarkdownParser 를 만들고 ParseFile() 을 호출해 Markdown 구문 트리를 구성합니다.
  2. 필요한 타입 지정 노드를 찾을 때까지 FirstChild와 NextSibling을 통해 최상위 노드를 탐색합니다.
  3. Markdown Syntax API가 제공하는 트리 조작 메서드로 대상 노드 콘텐츠를 제거하거나 교체합니다.
  4. SyntaxFactory 로 유효한 대체 노드를 만들고 대상 노드에 연결합니다.
  5. Save() 를 호출해 편집된 트리를 MD 파일로 직렬화합니다.

Markdown 편집 기능 및 범위

  • 기존 Markdown 구조 편집. 제목, 단락, 목록, 링크, 강조, 코드 블록, 표 및 기타 지원되는 Markdown 요소의 타입 지정 노드로 작업합니다.
  • 선택한 부분만 변경. 구문 트리를 탐색해 선택한 콘텐츠를 업데이트하고, 특정 위치에 노드를 삽입하고, 자식 노드를 교체하거나 불필요한 블록을 제거합니다.
  • 문서 모델 유지. AST 편집은 제한 없는 텍스트 교체가 아니라 노드를 변경합니다. 저장된 파일은 수정된 구문 트리에서 직렬화되므로 소스와 바이트 단위로 동일하다고 간주해서는 안 됩니다.
  • 콘텐츠를 변경하지 않고 검사. 애플리케이션이 AST를 탐색하거나 문서를 수정하지 않고 구조화된 데이터를 추출해야 한다면 Markdown 파싱 가이드 를 사용합니다.
  • 다른 작업에는 전용 워크플로 사용. 새 문서는 C#에서 Markdown 만들기 , 저장 중심 예제는 Markdown 저장 , 렌더링된 문서가 필요할 때는 Markdown에서 PDF로 를 참조하세요.

Markdown 편집 가이드 및 API 참조

AST를 통해 제목, 단락 및 목록 항목을 변경하는 예제는 Markdown 편집 및 수정 을 참조하세요. Markdown 파싱 및 처리 가이드에서는 노드 탐색과 타입 지정 구문 노드를 설명합니다. 지원되는 Markdown 표기법과 요소 형식은 Markdown 구문 가이드에서 확인할 수 있습니다.


Aspose.HTML for .NET 설치

.NET CLI를 사용하여 NuGet에서 Aspose.HTML for .NET 을 설치합니다.

dotnet add package Aspose.HTML

NuGet 패키지 관리자 UI를 사용하거나 패키지 관리자 콘솔에서 Install-Package Aspose.HTML을 실행할 수도 있습니다. 설정 방법은 설치 가이드 를 참조하세요. 평가 제한 없이 API를 테스트하려면 임시 라이선스 를 요청할 수 있습니다.


Markdown 편집 FAQ

1. 문자열 교체 대신 AST를 통해 Markdown을 편집해야 하는 이유는 무엇인가요?

AST는 제목, 단락, 목록, 링크 및 인라인 서식을 별도 노드로 식별합니다. 따라서 다른 위치의 동일한 텍스트를 실수로 바꾸거나 주변 Markdown 구문을 손상하지 않고 선택한 구조만 변경할 수 있습니다.

2. 메서드 ParseFile()가 원본 MD 파일을 수정하나요?

아닙니다. 이 메서드는 소스에서 메모리 내 구문 트리를 만듭니다. 애플리케이션이 Save()를 호출하여 트리를 원본 경로나 다른 대상에 쓸 때만 파일이 변경됩니다.

3. ASP.NET Core 애플리케이션에서 Markdown을 편집하려면 어떻게 해야 하나요?

서버 측 코드에서 MarkdownParser를 사용해 MD 파일을 MarkdownSyntaxTree로 파싱하고 필요한 구문 노드를 수정한 다음 Save()를 호출해 업데이트된 Markdown을 저장합니다. Aspose.HTML은 문서 처리 API를 제공하며, 브라우저 기반 편집 인터페이스가 필요할 때는 ASP.NET Core 애플리케이션이 해당 인터페이스를 제공합니다.

4. 편집된 Markdown 파일은 변경된 텍스트 외의 부분까지 바이트 단위로 동일하게 유지되나요?

바이트 단위의 동일성을 전제로 해서는 안 됩니다. API는 구문 트리를 다시 Markdown으로 직렬화하므로 문서 구조는 유지되지만 공백이나 서식 세부 정보가 정규화될 수 있습니다. 원본 서식을 정확히 유지해야 한다면 저장된 출력을 비교하세요.

5. 편집한 트리를 Save()로 바로 PDF로 변환할 수 있나요?

아니요. MarkdownSyntaxTree.Save() 메서드는 Markdown 출력을 작성합니다. 먼저 편집된 MD 파일을 저장한 다음, 최종 결과가 PDF 또는 다른 렌더링 형식이어야 한다면 Markdown 변환 워크플로를 사용합니다.

관련 Markdown 및 편집 워크플로

Markdown 또는 문서 편집에 특화된 다른 작업으로 계속 진행하세요.