Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/akabekobeko/npm-wpxml2md

Convert the WordPress XML file to Markdown files.
https://github.com/akabekobeko/npm-wpxml2md

markdown node npm wordpress

Last synced: 27 days ago
JSON representation

Convert the WordPress XML file to Markdown files.

Awesome Lists containing this project

README

        

# npm-wpxml2md

[![Support Node of LTS](https://img.shields.io/badge/node-LTS-brightgreen.svg)](https://nodejs.org/)
[![npm version](https://badge.fury.io/js/wpxml2md.svg)](https://badge.fury.io/js/wpxml2md)
[![Build Status](https://travis-ci.org/akabekobeko/npm-wpxml2md.svg?branch=master)](https://travis-ci.org/akabekobeko/npm-wpxml2md)
[![Document](https://img.shields.io/badge/document-ESDoc-brightgreen.svg)](https://akabekobeko.github.io/npm-wpxml2md/)
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](http://standardjs.com/)

Convert the WordPress XML file to Markdown files.

## Installation

```
$ npm install wpxml2md
```

## WordPress XML

Can export the **WordPress XML** in the following way.

1. Displays the management screen of WordPress
2. Select the `Tools` - `Export` from the menu
3. Select `All content` in `Choose what to export`
4. Click to `Download Export File`

## Usage

### Node API

`wpxml2md` is promisify function.

```js
const wpxml2md = require('wpxml2md');

const options = {
report: true,
noGFM: false,
noMELink: true,
withMetadata: true,
withImageDownload: true,
withComment: true,
replaceLinkPrefix: {
old: 'http://akabeko.me/blog/',
new: '/'
}
}

wpxml2md('wordpress.xml', 'dest', options)
.then(() => {
console.log('Completed!!');
} )
.catch((err) => {
console.error(err);
});
```

#### wpxml2md

`wpxml2md(src, dest, options)`

|Name|Type|Description|
|---|---|---|
|src|String|Path of the XML file exported from WordPress.|
|dest|String|Destination directory path.|
|options|Object|Options.|

Options:

|Name|Type|Description|
|---|---|---|
|report|Boolean|Default is `false`. Display the process reports.|
|noGFM|Boolean|Default is `false`. Disable the Convert the GitHub Flavored Markdown.|
|noMELink|Boolean|Default is `false`. Disable the Convert the GitHub Extra link on header.|
|withMetadata|Boolean|Default is `false`. Output article metadata in YAML format at the top of Markdown.|
|withImageDownload|Boolean|Default is `false`. Download the linked images from articles. The file name is the same as markdown. Multiple images become serial numbers, `DD` is an article posted day (yyyymm"dd"). `DD-1.png`, `DD-2.png`, ...etc.|
|replaceLinkPrefix|Object|Default is `undefined`. Replace the link URL prefix with the specified word.|
|_replaceLinkPrefix_.old|String|Target.|
|_replaceLinkPrefix_.new|String|Replacement.|

### CLI

```
Usage: wpxml2md [OPTIONS]

Convert the WordPress XML file to Markdown files.

Options:
-h, --help Display this text.
-v, --version Display the version number.
-i, --input Path of the XML file exported from WordPress.
-o, --output Path of the output directory.
-r, --report Output process reports.
--no-gfm Disable the GitHub Flavored Markdown.
--no-melink Disable the Markdown Extra link on header.
--with-metadata Enable output article metadata.
--with-image-download Enable download and replace link syntaxes a linked images from article.
--with-comment Enable comment output from article.
--replace-link-prefix Replace the link URL prefix with the specified word, format is "target=placeholder".
If "--replace-link http://example.com/=/" then "http://example.com/" will be replaced with "/".

Examples:
$ wpxml2md -i wordpress.xml -o ./dist -r
$ wpxml2md -i wordpress.xml -o ./dist -r --with-metadata --with-image-download --with-comment --replace-link-prefix http://akabeko.me/=/

See also:
https://github.com/akabekobeko/npm-wpxml2md
```

## Conversion

This section describes the conversion by this tool. Markdown conversion engine was in reference to the design and implementation of the [domchristie/to-markdown](https://github.com/domchristie/to-markdown), rewrite an ES2015 and more.

### Output directories

Converted Markdown files are output in the following directory.

```
YYYYMMDD-hhmmss/
├── pages
│   └── YYYY
│   └── MM
│   └── DD.md
└── posts
└── YYYY
└── MM
└── DD.md
```

* The name of the root directory is the date time that the execution of the processing
* The result of converting the **Pages** will be output to the `pages` directory
* The result of converting the **Posts** will be output to the `posts` directory
* Markdown's file name is posted date time.
* If the file or directory name is a duplicate will be added to the **sequential number** at the end.

### HTML TAG

Default markdown.

|TAG|Markdown|
|---|---|
|`Plain Text`|Plain text will keep the line breaks and blank lines. It is a specification to enable the WordPress of paragraph function.|
|`

`|`\n\nTEXT\n\n`|
|`
`|`\n`|
|`

` |`\n\n# TEXT\n\n`, support from `h1` to `h6`.|
|`

`|`\n\n# TEXT {#id}\n\n`, for Markdown Extra.|
|`
`|`\n\n* * *\n\n`|
|``, ``|`_TEXT_`|
|``, ``|`**TEXT**`|
|``|`` `TEXT` ``|
|``|`[TEXT](URL "ALT")`|
|``|`![TITLE](URL)`|
|`
`|`\n\n    TEXT\n\n`|

|`
`| `\n\n> TEXT\n\n`|
|`