Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub Pagesに文章を投げやすいようなツール #19

Open
Marco3jp opened this issue Jul 15, 2020 · 5 comments
Open

GitHub Pagesに文章を投げやすいようなツール #19

Marco3jp opened this issue Jul 15, 2020 · 5 comments
Assignees
Labels
Category: Tool ツールに関するアイデア Priority: High 優先度の高いアイデア Scale: Small 小規模なアイデア Target: Myself 私が使うために作りたいアイデア

Comments

@Marco3jp
Copy link
Owner

いつ使うものか

  • GitHub Pagesに文章を投げたいとき

どこで使うものか

  • どこでも

誰が使うものか

  • 文章書きたい人

何をしてくれるものか

  • GitHub PagesでブログとかDocsとか書くときに、いちいちHTMLを書くのではなくて、MarkdownとかをパースしてCreate New Fileのところまで飛ばしてくれる

なぜそれが必要か

  • HTML書くのめんどくさいから

備考・メモ・雑記

  • https://github.com/{uid}/{repos_name}/new/{branch}{/{path}}?filename=hoge&value=hogehoge みたいな形式で投げるとCreate New Fileになる
  • editの場合は上記のクエリ以外、 new と editしか違いがないので、HTML to MDとかして編集して完全上書きみたいな挙動させるのが正直妥当になるかもしれない
  • あとURLに改行コードは入らない気がするのでone line htmlで投稿するしかなくて、そこを編集するとdiffがおそらくほぼ機能しなくなると思う
  • 他の面はあんま問題ないけど、誰でも投稿できちゃうのでmasterとかブランチ保護かけておけば問題ないね
@Marco3jp Marco3jp added Scale: Small 小規模なアイデア Priority: High 優先度の高いアイデア Category: Tool ツールに関するアイデア Target: Myself 私が使うために作りたいアイデア labels Jul 15, 2020
@Marco3jp
Copy link
Owner Author

Marco3jp commented Jul 20, 2020

URLに改行コードは入らない気がする

これについては、Tampermonkeyとかからprettierでフォーマットさせちゃえばいいかも。
そこまで難しい気がしない。

@Marco3jp
Copy link
Owner Author

GitHubActionsとかで、 **/*.md をHTMLに変換するやつ動かすといいのでは。
自前で軽くnode製のツール作れば npm run build で通せばいいし、jsonのconfigでも読ませれば /draft_.*\.md/ とかを除外すればいい感じになりそう、どうかな。

@Marco3jp
Copy link
Owner Author

Marco3jp commented Feb 5, 2021

URL設計

  • https://marco3jp.github.io/documents/(?<path>.*)/new
    • すでにあるページだったらどうする?
  • https://marco3jp.github.io/documents/(?<path>.*)/edit
  • https://marco3jp.github.io/documents/(?<path>.*)
    • 閲覧画面

実装

  • (?<path>.*) に実装を出す感じ……?
  • 下みたいな感じ。急にmd to htmlをフロントエンドでやってるけどこれでよくない?という気持ちに変わった
<body>

<!-- viewer, convert md to html -->
<md-viewer></md-viewer>

<!-- editor -->
<md-editor></md-editor>

<!-- control interface -->
<script src="app.js"></script>

</body>

@Marco3jp
Copy link
Owner Author

Marco3jp commented Feb 7, 2021

追記

技術選定のメモ

  • ストアは不要
  • 404フォールバックタイプのSPAやりたい(Static吐き出しじゃない)
    • 極力軽量な実装にしたい
    • けどCSS, JSなしで見ることができる、という思想とは反する
      • noscript でURLの書き換え方法を書いておいてマークダウンにアクセスできるようにするか

設定項目?

  • base_url
  • draft_file_prefix
  • commit_message_prefix: { draft, publish }

@Marco3jp
Copy link
Owner Author

Marco3jp commented Feb 7, 2021

アクセスの流れ

記事を書く

  • 直接新規作成
    • https://domain/path/new にアクセス
  • 記事から新規作成
    • https://domain/path にアクセス
    • 新規作成をクリック
  • ヘッダーから?(未定)
    • https://domain/.* のヘッダーからモーダル経由で……?

記事を編集する

  • 直接編集
    • https://domain/path/edit にアクセス
  • 記事から編集
    • https://domain/path にアクセス
    • 編集をクリック
  • newから編集
    • https://domain/path/new にアクセス
    • 存在するけど編集する?と出るので押す

記事を読む

  • https://domain/path にアクセス

記事を公開するとき

  1. Publishボタンを押す
  2. GitHubの新規ファイル追加に遷移
  3. コミット!
  4. 元ページにTweetボタンが表示される

記事をドラフトで保存するとき

  1. Save Draftボタンを押す
  2. GitHubの新規ファイル追加に遷移
  3. コミット!
  4. 元ページにTweetボタンが表示される(hidden_draftによる)

設定

  • base_url: string (default: "/")
    • デプロイされる環境のルート
  • markdown_dir: string (default: "md")
    • Markdownが入ってるディレクトリ
  • draft_file_prefix: string (default: "draft_")
    • ドラフト時のmdファイル名prefix
    • 記事閲覧時に普通のほうがなければドラフト版を探して、もしあったらこれはドラフト版だよ!って注意書きと同時に閲覧できる
    • なのでドラフト版のマークダウンは正式な公開後も消えない(消したければ各自で消して)
  • hidden_draft: boolean (default: true)
    • 上記のprefixつきの記事はサイト上からは閲覧できなくなる
  • commit_message_prefix: { draft: string, publish: string, edit: string } (default: {"draft: ", "publish: ", "edit: "})
    • コミット時のprefix(好みで
  • writer_owner_only: booelan (default: true)
    • newやeditのとき(特に存在しない記事にある新規作成への誘導時)にオーナー以外コミットできないよ!ってメッセージを表示する

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Tool ツールに関するアイデア Priority: High 優先度の高いアイデア Scale: Small 小規模なアイデア Target: Myself 私が使うために作りたいアイデア
Projects
None yet
Development

No branches or pull requests

1 participant