C++将制定目录下的md文件(markdown)格式,发送到wordpress
要将指定目录下的 Markdown 文件发送到 WordPress,您可以使用以下步骤:
#include <iostream>
#include <fstream>
#include <string>
#include <filesystem>
#include <cpr/cpr.h>
#include <nlohmann/json.hpp>
#include "markdown.h"
using json = nlohmann::json;
std::string markdown_to_html(const std::string& markdown) {
markdown::Document doc;
doc.read(markdown);
std::stringstream html;
doc.write(html);
return html.str();
}
void send_to_wordpress(const std::string& title, const std::string& content, const std::string& username, const std::string& password, const std::string& endpoint) {
json post_data = {
{"title", title},
{"content", content},
{"status", "publish"}
};
cpr::Url url{endpoint};
cpr::Authentication auth{username, password};
cpr::Header header{{"Content-Type", "application/json"}};
cpr::Body body{post_data.dump()};
auto response = cpr::Post(url, auth, header, body);
if (response.status_code == 201) {
std::cout << "Post published successfully." << std::endl;
} else {
std::cerr << "Failed to publish the post. Error: " << response.status_code << std::endl;
}
}
int main() {
std::string dir_path = "path/to/markdown/files";
std::string username = "your_wordpress_username";
std::string password = "your_wordpress_password";
std::string endpoint = "https://your_wordpress_site.com/wp-json/wp/v2/posts";
for (const auto& entry : std::filesystem::directory_iterator(dir_path)) {
if (entry.path().extension() == ".md") {
std::ifstream file(entry.path());
std::string markdown((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
std::string title = entry.path().stem().string();
std::string content = markdown_to_html(markdown);
send_to_wordpress(title, content, username, password, endpoint);
}
}
return 0;
}
注意:请将 dir_path
、username
、password
和 endpoint
替换为您自己的值。
这个程序将遍历指定目录下的所有 Markdown 文件,将其转换为 HTML,并使用 WordPress REST API 发布到您的 WordPress 网站。确保您的 WordPress 网站已启用 REST API,并使用正确的用户名和密码。
<cpr/cpr.h> 用cmake 怎么配置
要在 CMake 项目中使用 CPR 库,您需要按照以下步骤操作:
首先,确保您已经安装了 CPR 库。如果您还没有安装,请按照 CPR GitHub 页面 上的说明进行安装。
接下来,按照以下步骤设置 CMakeLists.txt:
find_package
命令以查找 CPR 库。
以下是一个简单的 CMakeLists.txt 示例,展示了如何在项目中使用 CPR 库:
cmake_minimum_required(VERSION 3.10)
project(my_project)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(cpr CONFIG REQUIRED)
add_executable(my_project main.cpp)
target_link_libraries(my_project PRIVATE cpr::cpr)
这个示例 CMakeLists.txt 文件将创建一个名为 my_project
的项目,其中包含一个名为 main.cpp
的源文件。find_package
命令会查找已安装的 CPR 库,然后将其链接到 my_project
可执行文件。
如果您使用的是 vcpkg 管理库,请确保在命令行中添加 -DCMAKE_TOOLCHAIN_FILE=[path/to/vcpkg]/scripts/buildsystems/vcpkg.cmake
参数。例如:
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=[path/to/vcpkg]/scripts/buildsystems/vcpkg.cmake
cmake --build .
替换 [path/to/vcpkg]
为您的 vcpkg 安装路径。
这样,CMake 会自动配置并链接 CPR 库到您的项目中。
powered by kaifamiao