#twitter #markdown #tweet #archive #front-matter #convert #archived

app tweet-archive-to-markdown

使用FrontMatter将存档推文转换为Markdown

2个版本

0.0.2 2024年4月30日
0.0.1 2024年4月29日

#470 in 解析实现

AGPL-3.0

31KB
404

推文存档到Markdown

使用FrontMatter将存档推文转换为Markdown

Byte size of Tweet Archive To Markdown Open Issues Open Pull Requests Latest commits GitHub Actions Build Status License



要求

此仓库需要Rust语言/编译器从源代码构建。截至本ReadMe文件的最新更新,推荐安装Rust的方法是通过他们的安装脚本;

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

快速开始

此仓库是一个Rust二进制文件

  • 使用cargo安装

    cargo install tweet-archive-to-markdown
    
  • 为支持的shell(如果支持)编写制表符完成,例如,具有XDG支持的Bash;

    _shell_name="bash"
    
    _completions_directory="${XDG_DATA_HOME:-${HOME}/.local/share}/bash-completion/completions"
    
    tweet-archive-to-markdown --build-completions "${_shell_name}" |
      tee "${_completions_directory}/tweet-archive-to-markdown" 1>/dev/null
    

    可能的值:bashelvishfishpowershellzsh


使用方法

  • 打印所有可用的命令行选项

    tweet-archive-to-markdown -h
    #> Convert archived Tweets to MarkDown with FrontMater
    #>
    #> Usage: tweet-archive-to-markdown [OPTIONS] --input-path <INPUT_PATH>
    #>
    #> Options:
    #>       --input-path <INPUT_PATH>
    #>           Path to input file
    #>       --output-directory <OUTPUT_DIRECTORY>
    #>           Path to directory where MarkDown files will be written
    #>       --javascript-pattern <JAVASCRIPT_PATTERN>
    #>           Useful if/when `--input-path` targets an explicit `data/tweets.js` file path [default: window.YTD.tweets.part0]
    #>       --post-date-format <POST_DATE_FORMAT>
    #>           Custom format string for `DateTime` output parsed from `.tweets[].tweet.created_at` used to
    #>           generate post FrontMatter for `date` YAML [default: "%F %T %z"]
    #>       --post-author <POST_AUTHOR>
    #>           Post `author` FrontMatter value for all MarkDown files written
    #>       --post-layout <POST_LAYOUT>
    #>           Post `layout` FrontMatter value for all MarkDown files written [default: post]
    #>       --post-twitter-key <POST_TWITTER_KEY>
    #>           FrontMatter key under which extra Twitter Post metadata and links will be provided [default: twitter]
    #>       --build-completions <BUILD_COMPLETIONS>
    #>           Output shell completions to standard out then exit [possible values: bash, elvish, fish, powershell, zsh]
    #>       --dry-run
    #>           Send data to standard out without writing files
    #>       --verbose
    #>           Send parsing data and debugging information to standard error
    #>   -h, --help
    #>           Print help (see more with '--help')
    #>   -V, --version
    #>           Print version
    
  • 示例使用

    GH_NAME="S0AndS0"
    
    tweet-archive-to-markdown --input-path "~/Downloads/twitter.archive.zip" \
      --output-directory "~/git/hub/${GH_NAME}.github.io/_tweets" \
      --post-date-format "%Y-%m-%d %H:%M:%S %z" \
      --post-author "${GH_NAME}" \
      --post-layout "post" \
      --post-twitter-key "twitter" \
      --verbose \
      --dry-run
    
  • 示例结果 -- ~/git/hub/S0AndS0.github.io/_tweets/2023-08-30-1697011324369178968.md

    ---
    layout: post
    date: "2023-08-30 22:20:03 +0000"
    author: S0AndS0
    twitter:
      post: https://twitter.com/i/web/status/1697011324369178968
    ---
    
    Anyone else occasionally annoyed we're not allowed to modify visibility of `details` HTML element children via `:target` ID with CSS only?
    
    details:is(:target) &gt; *:not(summary) {
      background: hotpink;
      display: block;
      visibility: visible;
    }
    

注意事项

此仓库可能不是功能完整且/或功能齐全,欢迎提交添加功能或修复错误的Pull Requests。


贡献

对tweet-archive-to-markdown和rust-utilities的贡献选项


分支

⚠️ 基于此仓库创建分支、提交贡献、发布衍生作品等,将形成基于使用场景的许可证子部分协议。

例如,如果您选择贡献或使用此项目,则承认并接受这些基于使用的许可证条款将适用于此类作品。

开始创建一个分支到您具有写权限的账户。

cd ~/git/hub/rust-utilities/tweet-archive-to-markdown

git remote add fork git@github.com:<NAME>/tweet-archive-to-markdown.git
  • 提交您的更改并将其推送到您的分支,例如,修复一个问题...
cd ~/git/hub/rust-utilities/tweet-archive-to-markdown


git commit -F- <<'EOF'
:bug: Fixes #42 Issue


**Edits**


- `<SCRIPT-NAME>` script, fixes some bug reported in issue
EOF


git push fork main

注意,可以使用 -u 选项将 fork 设置为默认的远程,例如:git push -u fork main。然而,这也会默认将 fork 远程用于拉取!这意味着要从 origin 拉取更新,必须明确执行,例如:git pull origin main

  • 然后在 GitHub 上通过 Web-UI 提交一个 Pull Request,URL 语法是 https://github.com/<NAME>/<REPO>/pull/new/<BRANCH>

注意;为了降低您的 Pull Request 在被接受前需要修改的可能性,请查阅 dot-github 仓库中的详细贡献指南。


赞助商

感谢您考虑这一点!

通过 Liberapay,您可以 sponsor__shields_io__liberapay 定期赞助。

无论您是否能够为 rust-utilities 维护的如 tweet-archive-to-markdown 这样的项目提供财务支持,请考虑与他人分享有用的项目,因为维护开源存储库的一个目标是为社区提供价值。


署名


许可证

本项目根据使用场景授权


商业和/或专有使用

如果项目是 商业的 或 (||) 专有的,那么请与作者联系以获取定价和许可选项,以便使用此存储库中的代码和/或功能。


非商业和 FOSS 使用

如果项目是 非商业的 并且 (&&) 与 AGPL-3.0 兼容的许可证发布,则可以在以下条款下使用此存储库中的代码。

Convert archived Tweets to MarkDown with FrontMatter
Copyright (C) 2024 S0AndS0

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, version 3 of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

依赖关系

~9.5MB
~158K SLoC