{"id":18890935,"url":"https://github.com/igrep/multipost","last_synced_at":"2025-07-01T10:34:38.947Z","repository":{"id":139468582,"uuid":"281946145","full_name":"igrep/multipost","owner":"igrep","description":"(WIP) Upload specified markdown files to Qiita.","archived":false,"fork":false,"pushed_at":"2021-12-19T11:33:51.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-30T04:49:01.190Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igrep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-23T12:31:54.000Z","updated_at":"2021-12-19T11:33:54.000Z","dependencies_parsed_at":"2023-05-13T09:00:37.427Z","dependency_job_id":null,"html_url":"https://github.com/igrep/multipost","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/igrep/multipost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrep%2Fmultipost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrep%2Fmultipost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrep%2Fmultipost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrep%2Fmultipost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igrep","download_url":"https://codeload.github.com/igrep/multipost/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrep%2Fmultipost/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262944591,"owners_count":23388794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T07:58:14.343Z","updated_at":"2025-07-01T10:34:38.932Z","avatar_url":"https://github.com/igrep.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# (WIP) Multipost\n\n*This product is work in progress!*\n\nTool to upload specified markdown files to Qiita.\n\n## Intallation\n\nCurrently no way to install. Because this is not yet implemented!\n\n## Example Usage\n\n### Post a New Article\n\nGiven a markdown file named `article.md` (with metadata for [Hakyll](https://jaspervdj.be/hakyll/)):\n\n```markdown\n---\ntitle: My ChangeLog for age 31.\nauthor: YAMAMOTO Yuji\ndate: April 16, 2020\nqiita-tags: Tags Separated By Spaces\ncanonical-url:\n...\n---\n\nHappy birthday to me!\n```\n\nRun the `multipost` command:\n\n```bash\n$ multipost \\\n    --url-placeholder '^canonical-url:(.*)$' \\\n    `# ^ Get the URL on Qiita of the article. If the first captured group is blank or` \\\n    `#   just \"qiita\", the article is treated as not posted yet.` \\\n    \\\n    --title '^title:(.*)$' \\\n    `# ^ The first captured group is the title of the post.` \\\n    \\\n    --tags '^qiita-tags:(.*)$' \\\n    `# ^ The first captured group is the tags of the post.` \\\n    `#   NOTE: \"tags\" in Hakyll are separated by comma, so I specified it` \\\n    `#         in the separate field \"qiita-tags\".` \\\n    \\\n    --metadata '^---.+---' \\\n    `# ^ Strip the matched area before posting the article.` \\\n    `#   NOTE: This regex is matched by block mode: '.' matches` \\\n    `#         any characters including newline characters.` \\\n    \\\n    --qiita-access-token \"$QIITA_ACCESS_TOKEN\" \\\n    \\\n    article.md \\\n    `# ^ The target article. You can specify multiple articles.`\n```\n\nThen, the article \"My ChangeLog for age 31.\" is published on Qiita.\n\nNOTE: *But you should NOT post such articles! Qiita is only for programming-related information!*.\n\nIn addition, the posted article's URL on Qiita is written at the place spacified by `--url-placeholder` option.\n\n```markdown\n---\ntitle: My ChangeLog for age 31.\nauthor: YAMAMOTO Yuji\ndate: April 16, 2020\nqiita-tags: Tags Separated By Spaces\ncanonical-url: https://qiita.com/your_qiita_id/items/article_id\n...\n---\n\nHappy birthday to me!\n```\n\n### Modify an Already Posted Article\n\nWith the instructions above, we've published `article.md` on Qiita, and recorded the article's URL on `article.md`.  \nHow can we update the article? The answer is simple: edit the contents (and possibly tags), then run `multipost` with the same arguments again!  \nIf the URL (extracted by the regex of the `--url-placeholder` option) is already written, `multipost` just updates the article on Qiita.\n\n```bash\n$ multipost \\\n    --url-placeholder '^canonical-url:(.*)$' \\\n    --title '^title:(.*)$' \\\n    --tags '^qiita-tags:(.*)$' \\\n    --metadata '^---.+---' \\\n    --qiita-access-token \"$QIITA_ACCESS_TOKEN\" \\\n    article.md\n```\n\n## Not-ToDos\n\n- Configure by environment variables/config files/etc.\n    - This command is recommended to use with a wrapper script. And IMO the wrapper script would be enough in almost any usecases of this command.\n- Overwrite the markdown file on your machine with the published markdown.\n    - This feature might be useful for example if you adapt some edit requests on Qiita. But currently I'm satisfied with the features above. Updating the article manually would suffice.\n- Save the markdown file(s) not on your machine.\n    - I don't need that feature. This tool is NOT a *synchronisation* tool, but a *posting* tool. So that feature is out of scope. I wouldn't accept such pull requests!\n\n## (Perhaps) Frequently Asked Questions\n\n### Why is this named \"multipost\"? It doesn't actually post anywhere except Qiita.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figrep%2Fmultipost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figrep%2Fmultipost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figrep%2Fmultipost/lists"}