Konwertuj dokument na Markdown

Markdown to popularny format używany do oznaczania tekstu i jego dalszej konwersji do formatu HTML, PDF, DOCX lub innego. Wielu programistów wybiera ten format do pisania dokumentacji, przygotowywania artykułów do publikacji na blogach, opisywania projektów i tak dalej.

Markdown jest tak popularny, ponieważ łatwo jest pracować z tym formatem, a także można go po prostu przekonwertować na inne formaty. Z tego powodu Aspose.Words umożliwia konwersję dokumentu w formacie dowolny obsługiwany format ładowania do Markdown i odwrotnie – Aspose.Words obsługuje także najpopularniejszy format zapisz formaty.

Obecnie aktywnie rozwijana jest funkcjonalność pracy z formatem Markdown, aby zapewnić więcej możliwości wygodnej i komfortowej pracy z dokumentami.

Konwertuj dokument

Aby przekonwertować dokument do formatu Markdown wystarczy załadować dokument w dowolnym obsługiwanym formacie lub programowo utworzyć nowy. Następnie należy zapisać dokument w formacie Markdown.

Poniższy przykład kodu pokazuje, jak przekonwertować DOCX na Markdown:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Some text!")
doc.save(docs_base.artifacts_dir + "BaseConversions.docx_to_markdown.md")

Możesz także określić folder fizyczny, w którym chcesz zapisywać obrazy podczas eksportowania dokumentu do formatu Markdown. Domyślnie Aspose.Words zapisuje obrazy w tym samym folderze, w którym zapisywany jest plik dokumentu, ale można zmienić to zachowanie, korzystając z właściwości images_folder.

Określenie folderu za pomocą images_folder jest również przydatne, jeśli zapisujesz dokument w strumieniu, a Aspose.Words nie ma folderu do zapisywania obrazów.

Jeśli określony images_folder nie istnieje, zostanie utworzony automatycznie.

Poniższy przykład kodu pokazuje, jak określić folder dla obrazów podczas zapisywania dokumentu w strumieniu:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Image bullet points.docx")
saveOptions = aw.saving.MarkdownSaveOptions()
saveOptions.images_folder = docs_base.artifacts_dir + "Images"
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdownSaveOptions.set_images_folder.md", saveOptions)

Określ opcje zapisu podczas konwersji do formatu Markdown

Aspose.Words zapewnia możliwość wykorzystania klasy MarkdownSaveOptions do pracy z zaawansowanymi opcjami podczas zapisywania dokumentu w formacie Markdown. Większość właściwości dziedziczy lub przeciąża właściwości, które już istnieją w innych klasach aspose.words.saving. Oprócz nich dodano także szereg właściwości specyficznych dla formatu Markdown. Na przykład właściwość table_content_alignment do kontrolowania wyrównania treści w tabelach lub images_folder do kontrolowania miejsca zapisywania obrazów po konwersji dokumentu do formatu Markdown.

Obsługiwane funkcje Markdown

Aspose.Words obsługuje obecnie następujące funkcje Markdown, które w większości są zgodne ze specyfikacją CommonMark w Aspose.Words API i są reprezentowane jako odpowiednie style lub formatowanie bezpośrednie:

  • Nagłówki to akapity ze stylami Nagłówek 1 – Nagłówek 6
  • Cytaty blokowe to akapity zawierające “Cytat” w nazwie stylu
  • IndentedCode to akapity zawierające “IndentedCode” w nazwie stylu
  • FencedCode to akapity zawierające “FencedCode” w nazwie stylu
  • InlineCode jest uruchamiany z “InlineCode” w nazwie stylu Font
  • Linie poziome to akapity w kształcie HorizontalRule
  • Odważne podkreślenie
  • Podkreślenie kursywą
  • Formatowanie przekreślone
  • Listy to akapity numerowane lub wypunktowane
  • Tabele są reprezentowane przez klasę Table
  • Linki są reprezentowane jako klasa FieldHyperlink

Poniższy przykład pokazuje, jak utworzyć dokument z pewnymi stylami i zapisać go w formacie Markdown:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
# Specify the "Heading 1" style for the paragraph.
builder.paragraph_format.style_name = "Heading 1"
builder.writeln("Heading 1")
# Reset styles from the previous paragraph to not combine styles between paragraphs.
builder.paragraph_format.style_name = "Normal"
# Insert horizontal rule.
builder.insert_horizontal_rule()
# Specify the ordered list.
builder.insert_paragraph()
builder.list_format.apply_number_default()
# Specify the Italic emphasis for the text.
builder.font.italic = True
builder.writeln("Italic Text")
builder.font.italic = False
# Specify the Bold emphasis for the text.
builder.font.bold = True
builder.writeln("Bold Text")
builder.font.bold = False
# Specify the StrikeThrough emphasis for the text.
builder.font.strike_through = True
builder.writeln("StrikeThrough Text")
builder.font.strike_through = False
# Stop paragraphs numbering.
builder.list_format.remove_numbers()
# Specify the "Quote" style for the paragraph.
builder.paragraph_format.style_name = "Quote"
builder.writeln("A Quote block")
# Specify nesting Quote.
nestedQuote = doc.styles.add(aw.StyleType.PARAGRAPH, "Quote1")
nestedQuote.base_style_name = "Quote"
builder.paragraph_format.style_name = "Quote1"
builder.writeln("A nested Quote block")
# Reset paragraph style to Normal to stop Quote blocks.
builder.paragraph_format.style_name = "Normal"
# Specify a Hyperlink for the desired text.
builder.font.bold = True
# Note, the text of hyperlink can be emphasized.
builder.insert_hyperlink("Aspose", "https:#www.aspose.com", False)
builder.font.bold = False
# Insert a simple table.
builder.start_table()
builder.insert_cell()
builder.write("Cell1")
builder.insert_cell()
builder.write("Cell2")
builder.end_table()
# Save your document as a Markdown file.
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdown.create_markdown_document.md")

Wynik tego przykładowego kodu pokazano poniżej.

markdown-example-aspose-words-net

Przydatne porady

Istnieje kilka niuansów i interesujących przypadków, po dowiedzeniu się, które z plików Markdown można pracować bardziej elastycznie i wygodnie. Przykładowo istnieje możliwość wykorzystania:

  • SetextHeading, który umożliwia tworzenie nagłówków wieloliniowych w Markdown, podczas gdy zwykłe nagłówki w Markdown mogą być tylko jednowierszowe. SetextHeading opiera się na stylu “Nagłówek N”, a jego poziom może wynosić tylko 1 lub 2. Jeśli N w “Nagłówku N” jest większe lub równe 2, wówczas odpowiadający mu styl SetextHeading jest oparty na “Nagłówku 2”, w przeciwnym razie na “Nagłówek 1”.
  • Różne znaczniki dla pierwszego poziomu list punktowanych ("-", “+” lub “*”, domyślnym znacznikiem jest “-”.) i różne typy numeracji dla list uporządkowanych (""." lub “)”, domyślnym znacznikiem jest “.").