Skip to content

Latest commit

 

History

History
138 lines (107 loc) · 4.33 KB

README-zh-cn.md

File metadata and controls

138 lines (107 loc) · 4.33 KB

Article Web-page to Markdown action

GitHub GitHub code size in bytes GitHub release (latest by date including pre-releases)

语言: English | 简体中文

简介

根据文章的网页自动生成 Markdown 文件。

项目结构

news-translate
|  action.yml  // 入口文件
│  package.json
│  README.md
│
|-.github
│  |-ISSUE_TEMPLATE
│  │   AutoGenerateMarkdown.md  // 自动生成 Markdown 文件的 issue 模板
│  │
│  |-workflows
│      WebPageToMarkdown.yml  // 用于自动生成 Markdown 文件的 Actions 文件
│
|-dist  // 编译后的静态文件夹
|
|-node_modules
│
|-src
|  |-index.ts  // 脚本的入口文件
|  |-toMarkdownConstant.ts  // 配置文件
|  |-utilities.ts  // 函数库文件
|
|-test
   |-utilities.test.ts  // 测试文件

用法

在 GitHub action 配置文件的 jobs 字段中添加下面的 step:

- uses: freeCodeCamp-China/article-webpage-to-markdown-action@v1
  with:
    pageURL: '${{ github.event.issue.body }}'
    markdownFolder: './articles/'
    githubToken: ${{ github.token }}

下面是一个扩展示例,尽可能包含所有选项、输出:

name: 下载网页
on:
  issues:
    types:
      - labeled
jobs:
  fetch-pages:
    if: github.event.label.name == '文章'
    runs-on: ubuntu-latest
    permissions:
      contents: write
      issues: write
    steps:
      - id: fetch-md
        uses: freeCodeCamp-China/article-webpage-to-markdown-action@v2
        with:
          # 一个包含原文 URL 的字符串
          pageURL: '${{ github.event.issue.body }}'
          # 需包含元素的 CSS 选择符
          includedSelector: '.post-full-content'
          # 需排除元素的 CSS 选择符
          excludedSelector: '.ad-wrapper'
          # 生成 MarkDown 文件的路径是
          # 一个相对于命令行工作目录的相对路径
          markdownFolder: './articles/'
          githubToken: ${{ github.token }}

      - name: 将输出发至评论区
        run: gh issue comment "$NUMBER" --body "$BODY"
        env:
          GH_TOKEN: ${{ github.token }}
          GH_REPO: ${{ github.repository }}
          NUMBER: ${{ github.event.issue.number }}
          BODY: |
            - 原文网址: [${{ steps.fetch-md.outputs.title }}](${{ steps.fetch-md.outputs.original_url }})
            - 原文作者: [${{ steps.fetch-md.outputs.author || 'anonymous' }}](${{ steps.fetch-md.outputs.author_url }})
            - Markdown 文件: [点击编辑](${{ steps.fetch-md.outputs.editor_url }})

如果未配置选项 markdownFolder,则默认情况下会在当前路径中生成文件。

通过 GitHub 的 issue 运行脚本

Issues >> New issue >> 填写 issue 的标题和描述 >> Submit new issue

描述

[原文链接](https://example.com/path/to/your/article/)

用原文 URL 替换上文中的 URL,本 action 会在 issue 提交后运行,并将失败消息发到 issue 评论中。

如果脚本执行失败,您需要确认问题,解决问题,然后根据前面的步骤发布新 issue常见错误消息Actions 的日志 将为您提供一些可靠的提示。

常见错误消息

  • No parameters were found. Please confirm that the description of the issue has been entered. issue 的描述为空,请根据模板填写内容。
  • There is one file with the same name exists.Please check if the article has been added.markdownFolder 文件夹下有一个同名文件。
  • The DOM of the website has been modified, or there is a problem with loading, please confirm. 网站的 DOM 结构可能更改,并且脚本需要修改。

高级用例

客户端渲染

本 action 只能处理静态或服务端渲染的网页,对于客户端渲染,我们推荐 https://github.com/TechQuery/Web-fetch#in-github-actions .


贡献者指南

请转到贡献者指南


许可证

程序遵循 BSD-3-Clause 许可证。