Code Monkey home page Code Monkey logo

m2w's Introduction

m2w 2: Markdown to WordPress

Automatically upload and update local markdown to WordPress via Python

🌟🌟🌟 Welcome m2w 2!

Tutorial: Docker系列 WordPress系列 WordPress上传或更新Markdown的最佳实践-m2w 2.0

Note (2023-02-23-): m2w v2.5 will support WordPress REST API but is still in beta version, which is not recommended. If m2w 2.5 was ready, we would release a stable version. Before that, m2w v2.2.11 is the best choice.

Table of Contents

Background

m2w is an easy-to-use tool for automatical upload & update of markdown to WordPress, which has been frozen in v1.0.7. m2w 1.0 is powerful enough for most people, but not very friendly:

  • You have to assign legacy or new path to store the blog markdowns, which means that you could not position your files as you like.
  • It's not convenient to manage multiple sites with exactly the same blog markdowns.

You can still find tutorials about m2w 1.0 (Zh/En), which is not maintained anymore. It's OK if you just use m2w 1.0, and It works very well.

=================

Now, more powerful m2w 2 comes and meet everyone! 🌟 🌟 🌟

m2w 2 has these features:

  • Use config/user.json to maintain the user information in a little different way comparing with m2w 1.0.
  • You can just keep your file structures locally as you like.
  • You can manage lots of websites at the same time via multiple legacy_*.json.
  • All you need to deal with is a single python script myblog.py instead of two (update.py and upload.py in m2w 1.0).
  • Ignore repeated new markdown files for uploading (v2.2.4+)
  • Stable and useful as m2w 1.0.

Install

Miniconda is recommended to manage Python version and related dependencies.

Here is the dependency:

# Python 3.7.4 is the version I use m2w. I'm not sure whether it could work well in more advanced Python versions.
python_requires='>=3.7.4'

# Dependencies
install_requires=[
    "python-frontmatter>=1.0.0",
    "markdown>=3.3.6",
    "python-wordpress-xmlrpc>=2.3"
]

After 2022-12-10, m2w 2 was uploaded onto PyPi. To install m2w 2, just run pip install m2w in your shell/conda environment. You can also directly download m2w 2 from this repotory. The usage is exactly the same.

You can specify version or resource when installing m2w 2:

pip install -i https://pypi.org/simple m2w==2.2.11

Generally, the latest version of m2w is recommended.

Usage

  1. Install m2w from PyPi or this Github repotory.
  2. Build a myblog.py file (or other names you like) in <path01>. Here is the demo. Create <path02>/config/user.json and set path_m2w as <path02> in myblog.py:
# Absolute path of m2w
path_m2w = '<path02>'
  1. Define <path02>/config/user.json. You can add many websites like web01! Please go to the demo for more details. Here are some interpretations:
  • domain, username, password: The information of your WordPress site and account.
  • path_markdown: Add as much top folders as you want!
  • post_metadata: Default category information.
  • websites: Add as much accounts as you want!
  • path_legacy_json: Just leave it alone and do not change anything!
"web01": {
        "domain": "https://domain-01.com",
        "username": "username-01",
        "password": "password-01",
        "path_markdown": [
            "E:/Github/m2w/@test/main",
            "E:/Github/m2w/@test/main2"
        ],
        "post_metadata": {
            "category": ["test"],
            "tag": ["test"],
            "status": "publish"
        },
        "path_legacy_json": "/config/legacy"
    }
  1. Run myblog.py like:
python <path01>/myblog.py

Demo

This demo is conducted in Win10 with VScode.

As shown in the following GIF, all changed or brand-new markdowns can be automatically updated/upload via just a simple command python myblog.py!

Typora_zKwwaE10Qe

LOG

  • 2022-12-14m2w.py is the same name as m2w package, which would bring some bugs. I change the name of the demo script as myblog.py.
  • 2022-12-10 :Upload m2w 2 to PyPi. You can install m2w 2 with code (in Shell) like pip install -i https://pypi.org/simple m2w. The project url is https://pypi.org/project/m2w.
  • 2022-12-08 :Ignore repeated uploading of new markdown based on their file names. Update ot m2w 2.2.4 (Strongly recommended)!
  • 2022-12-06:Optimized parameter space of m2w, which make it more flexible. Update ot m2w 2.2!
  • 2022-12-03:Brand-new m2w 2.0!
  • 2022-11-13:Add error control for the Client function, which is helpful to avoid legacy bugs if the connection to the WordPress website is not available.
  • Before: Create m2w project.

TO-DO

  • Nothing

Related Efforts

Maintainers

@huangwb8

Contributing

Feel free to dive in! Open an issue or submit PRs.

m2w follows the Contributor Covenant Code of Conduct.

Contributors

Nobody yet.

License

This software depends on other packages that may be licensed under different open source licenses.

m2w is released under the MIT license. See LICENSE for details.

FOSSA Status

More

Applications similar to m2w

  • WordPressXMLRPCTools: Manage WordPress posts in Hexo way.
  • markpress: Write WordPress in Markdown in Your Favorite Text Editor
  • wordpress-markdown-blog-loader: This utility loads markdown blogs into WordPress as a post. It allows you to work on your blog in your favorite editor and keeps all your blogs in git.

m2w's People

Contributors

huangwb8 avatar foxsuzuran avatar fossabot 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.