Giter Site home page Giter Site logo

pptx2md's Introduction

PPTX2MD

Downloads

A tool to convert Powerpoint pptx file into markdown.

Preserved formats:

  • Titles. Custom table of contents with fuzzy matching is supported.
  • Lists with arbitrary depth.
  • Text with bold, italic, color and hyperlink
  • Pictures. They are extracted into image file and relative path is inserted.
  • Tables with merged cells.
  • Top-to-bottom then left-to-right block order.

Supported output:

Please star this repo if you like it!

Installation & Usage

Installation

You need to have Python with version in range 3.6 to 3.9 and pip installed on your system, then run in the terminal:

pip install pptx2md

(Python 3.10 breaks dependent package python-pptx)

Usage

Once you have installed it, use the command pptx2md [pptx filename] to convert pptx file into markdown.

The default output filename is out.md, and any pictures extracted (and inserted into .md) will be placed in /img/ folder.

Note: older .ppt files are not supported, convert them to the new .pptx version first.

Upgrade & Remove:

pip install --upgrade pptx2md

pip uninstall pptx2md

Custom Titles

By default, this tool parse all the pptx titles into level 1 markdown titles, in order to get a hierarchical table of contents, provide your predefined title list in a file and provide it with -t argument.

This is a sample title file (titles.txt):

Heading 1
  Heading 1.1
    Heading 1.1.1
  Heading 1.2
  Heading 1.3
Heading 2
  Heading 2.1
  Heading 2.2
    Heading 2.1.1
    Heading 2.1.2
  Heading 2.3
Heading 3

The first line with spaces in the begining is considered a second level heading and the number of spaces is the unit of indents. In this case, Heading 1.1 will be outputted as ## Heading 1.1 . As it has two spaces at the begining, 2 is the unit of heading indent, so Heading 1.1.1 with 4 spaces will be outputted as ### Heading 1.1.1. Header texts are matched with fuzzy matching, unmatched pptx titles will be regarded as the deepest header.

Use it with pptx2md [filename] -t titles.txt.

Other Arguments

  • -t [filename] provide the title file
  • -o [filename] path of the output file
  • -i [path] directory of the extracted pictures
  • --image-width [width] the maximum width of the pictures, in px. If set, images are put as html img tag.
  • --disable-image disable the image extraction
  • --disable-escaping do not attempt to escape special characters
  • --disable-wmf keep wmf formatted image untouched (avoid exceptions under linux)
  • --disable-color disable color tags in HTML
  • --min-block-size [size] the minimum number of characters for a text block to be outputted
  • --wiki / --mdk if you happen to be using tiddlywiki or madoko, this argument outputs the corresponding markup language

Screenshots

Data Link Layer Design Issues
  Services Provided to the Network Layer
  Framing
  Error Control & Flow Control
Error Detection and Correction
  Error Correcting Code (ECC)
  Error Detecting Code
Elementary Data Link Protocols
Sliding Window Protocols
  One-Bit Sliding Window Protocol
  Protocol Using Go Back N
  Using Selective Repeat
Performance of Sliding Window Protocols
Example Data Link Protocols
  PPP

  • Top: Title list file content.
  • Bottom: The table of contents generated.

2

  • Left: Source pptx file.
  • Right: Generated markdown file (rendered by madoko).

Detailed Parse Rules

  • Lists are generated when paragraphs in a block has different level, otherwise a paragraph is generated.
  • When a title has fuzzy matching score larger than 92 with previous title, its omitted.
  • Some preset theme color style is converted into bold.
  • RGB colors are preserved.
  • Source texts are escaped.
  • Grouped shapes are flattened recursively.

pptx2md's People

Contributors

dependabot[bot] avatar jacktherock avatar jonasrk avatar kxxt avatar maxbachmann avatar sleighsoft avatar ssine avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.