Convert the WordPress XML file to Markdown files.
$ npm install wpxml2md
Can export the WordPress XML in the following way.
- Displays the management screen of WordPress
- Select the
Tools
-Export
from the menu - Select
All content
inChoose what to export
- Click to
Download Export File
wpxml2md
is promisify function.
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(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. |
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
This section describes the conversion by this tool. Markdown conversion engine was in reference to the design and implementation of the domchristie/to-markdown, rewrite an ES2015 and more.
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.
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. |
<p> |
\n\nTEXT\n\n |
<br> |
\n |
<h1> |
\n\n# TEXT\n\n , support from h1 to h6 . |
<h1 id="id"> |
\n\n# TEXT {#id}\n\n , for Markdown Extra. |
<hr> |
\n\n* * *\n\n |
<em> , <i> |
_TEXT_ |
<strong> , <b> |
**TEXT** |
<code> |
`TEXT` |
<a> |
[TEXT](URL "ALT") |
<img> |
![TITLE](URL) |
<pre><code> |
\n\n TEXT\n\n |
<blockquote> |
\n\n> TEXT\n\n |
<ul><li> |
\n\n* TEXT\n\n |
<ol><li> |
\n\n1. TEXT\n\n |
GitHub Flavored Markdown.
TAG | Markdown |
---|---|
<br> |
\n |
<del> , <s> , <strike> |
~~TEXT~~ |
<ul><li><input type="checkbox"> |
* [ ] Text , checked is true if [x] . |
<table> |
see: Organizing information with tables - User Documentation |
<pre><code> |
\n\n```\nCODE\n```\n\n |
<div class="highlight highlight-lang"><pre> |
\n\n```lang\nCODE\n```\n\n |
[caption]
<a href="example.png" title="Title">
<img src="example.png" alt="Title"></a>
</a>
[/caption]
Remove the short code dregs. Contents will Markdown conversion as HTML.
[![Title](example.png)](example.png "Title")
[code lang="js"]
const test = 'test';
console.log(test);
[/code]
code
is converted to a code block.
```js
const test = 'test';
console.log(test);
```
Short code of programming languages and converts it to a code block.
[js]
const test = 'test';
if (test) {
console.log(test);
}
[/js]
For example, the above will be converted to the following.
```js
const test = 'test';
if (test) {
console.log(test);
}
```
Language to be converted is the following. The language names are based on the SyntaxHighlighter - Bundled Brushes.
Language | Shortcode |
---|---|
Plain Text | plain, text |
ActionScript3 | as3, actionscript3 |
Bash/shell | bash, shell |
ColdFusion | cf, coldfusion |
C# | c-sharp, csharp |
C++ | cpp, c |
CSS | css |
Delphi | delphi, pas, pascal |
Diff | diff, patch |
Erlang | erl, erlang |
Groovy | groovy |
JavaScript | js, jscript, javascript |
Java | java |
JavaFX | jfx, javafx |
Perl | perl, pl |
PHP | php |
PowerShell | ps, powershell |
Python | py, python |
Ruby | rails, ror, ruby |
Scala | scala |
SQL | sql |
Visual Basic | vb, vbnet |
XML | xml, xhtml, xslt, html, xhtml |