一鍵自動化博客發佈工具,用過的人都說好(阿里雲篇)

阿里雲有個開發者社區,入駐過的朋友可能想要把自己的博客發佈到阿里雲社區上。

今天我來介紹一下blog-auto-publishing-tools自動發佈博客到阿里雲的實現原理。

阿里雲的博客發佈界面比較簡單,只有標題,正文,摘要,關聯試用產品,發佈子社區,文章圖片這幾個選項。

一起來看看如何實現吧。

前提條件

前提條件當然是先下載 blog-auto-publishing-tools這個博客自動發佈工具,地址如下:https://github.com/ddean2009/blog-auto-publishing-tools

阿里雲的實現

因爲阿里雲的博客發佈界面比較簡單,只有標題,正文,摘要,關聯試用產品,發佈子社區,文章圖片這幾個選項。

其中標題,正文,摘要和文章圖片這幾個是必須的。

關聯試用產品,和發佈子社區並不是剛需,所以這兩個目前選擇默認值即可。

如果有感興趣的朋友可以自行實現這兩個功能。

所以在config/alicloud.yaml中,我們只需要配置阿里雲的發文地址即可:

site: https://developer.aliyun.com/article/new#/

有同學要問了,標題,正文,摘要和文章圖片在哪裏配置呢?

在最新的工具實現中,有兩種方式來設置這些值。

  1. 第一種方式

第一種方式是在config/common.yaml中:

# 文章的標題
title: 一鍵自動化博客發佈工具,用過的人都說好(阿里雲篇)
# 文章的內容
content: /Users/wayne/Downloads/blogthings/blogs/blog/projects/004-auto-blog-publish-tool-oschina.md
# 文章的摘要
summary: 使用一鍵自動化博客發佈工具blog-auto-publishing-tools把博客發佈到阿里雲上。

這種是最基本的方式。

  1. 第二種方式

如果你的markdown文件中已經包含了title和summary這些信息,那麼你就不需要再重複在common.yaml中再寫一次了。

這種方式,你需要把title和summary(對應的是description),寫到markdown文件的YAML Front Matter中,如下所示:

image-20240507154807745

這樣,在程序中會優先讀取markdown文件中的YAML Front Matter,免去你重複設置的煩惱。

設置封面圖片

封面圖片就是在上圖的image中設置的。

這裏image是一個網絡圖片鏈接。一般來說博客的圖片上傳中上傳的圖片需要是一張本地的圖片。

不過不要擔心,這個工具已經實現了自動把遠程圖片轉換成本地圖片再上傳的整套過程。

大家只管設置即可。

不過能夠設置封面圖片的前提是博客網站的上傳圖片是一個input標籤。

可惜的是阿里雲的上傳是一個button,並沒有input,所以目前來說阿里雲是沒有辦法通過這個工具來自動上傳封面圖片的。

這個功能,後續再優化,看看有沒有實現的可能。

image-20240507160825718

設置標題

阿里雲的標題比較簡單,直接通過ID獲取,或者通過下面的XPATH來獲取,設置:

    # 文章標題
    title = driver.find_element(By.XPATH, '//input[@placeholder="請填寫標題"]')
    title.clear()
    if 'title' in front_matter['title'] and front_matter['title']:
        title.send_keys(front_matter['title'])
    else:
        title.send_keys(common_config['title'])
    time.sleep(2)  # 等待3秒

設置正文

阿里雲的正文是一個textarea,不像之前的oschina和segmentfault用的是codemirror,那種動態的代碼風格。

所以設置正文就比較簡單了,我們直接拿到textarea,調用send_keys就行了:

    # 文章內容 markdown版本
    file_content = read_file_with_footer(common_config['content'])
    content = driver.find_element(By.XPATH, '//div[@class="editor"]//textarea[@class="textarea"]')
    content.send_keys(file_content)
    time.sleep(3)  # 等待3秒

設置摘要

阿里雲的摘要也是一個textarea,我們可以用類似設置正文的方式來設置摘要:

    # 摘要
    if 'description' in front_matter['description'] and front_matter['description']:
        summary = front_matter['description']
    else:
        summary = common_config['summary']
    if summary:
        summary_input = driver.find_element(By.XPATH, '//div[@class="abstractContent-box"]//textarea[@placeholder="請填寫摘要"]')
        summary_input.send_keys(summary)

發佈博客

所有的內容都設置好了,接下來我們就可以點擊發布博客按鈕了。

    # 發佈
    if auto_publish:
        publish_button = driver.find_element(By.XPATH, '//div[@class="publish-fixed-box-btn"]/button[contains(text(),"發佈文章")]')
        publish_button.click()

總結

阿里雲的博客發佈界面還是中規中矩的,沒有太多特殊的地方,除了上傳封面沒有使用input標籤之外,其他都還是挺常規的用法。

點我查看更多精彩內容:www.flydean.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章