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.
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 “.").