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

example コードは Import して 2 重管理せずに済むように #43

Closed
dynamis opened this issue May 17, 2019 · 6 comments
Closed

Comments

@dynamis
Copy link
Contributor

dynamis commented May 17, 2019

Github 同様の markdown ということで GFM を使っていて今のところ出来ないが、サンプルコードとチュートリアル本文の両方に同じコードを書いてメンテする必要が生じているのは望ましくないので js ファイルを markdown にインポートしたい。

例えば vuepress (markdown-it を利用) でこんな感じで出来るように

https://vuepress.vuejs.org/guide/markdown.html#import-code-snippets

GFM の拡張なのか Jekyll 側の処理なのか何かで出来ると良いなという願望メモ

@kou029w
Copy link
Contributor

kou029w commented May 17, 2019

文書はinclude https://jekyllrb.com/docs/includes/ で挿入できるようです

Gistは jekyll-gist で埋め込めるようです
gist-it.appspot.com は簡単そうですがXSSなどリスクあるかも

GitHub Pagesで利用可能なプラグイン
https://help.github.com/en/articles/configuring-jekyll-plugins#default-plugins

@dynamis
Copy link
Contributor Author

dynamis commented Jul 23, 2019

include は _includes ディレクトリ配下のファイルだけだし include_relative で挿入するのは配下のディレクトリのファイル限定なので今のディレクトリ構造では使えないんですよね。。。チュートリアル用のコードは同一リポジトリ内にまとめておきたいし。

Note that you cannot use the ../ syntax to specify an include location that refers to a higher-level directory.

@dynamis
Copy link
Contributor Author

dynamis commented Jul 24, 2019

ディレクトリ名規則が /targetboard/locale/... になってるのを /locale/targetboard/... にすれば当然 include_relative が使えるし、そのようにすれば根性で複数 locale ディレクトリ内のファイルを編集するのではなく Polyglot での i18n 対応が可能 (実際のファイルを locale ディレクトリに入れずに並べておける&デフォルト言語へのフォールバックが出来る&相対リンクのパスとかの処理が出来る)。

see also: chirimen-oh/chirimen-oh.github.io#1

従って、次のように対応するのがよさそう:

  • polyglot 導入
  • /locale/targetboard/ パスに変更
    • ja ファイルは locale 省略なので /targetboard/pagename.md に
    • en ファイルは /targetboard/pagename-en.md にして front matter に title/lang/permalink を設定
    • en ファイルなどがある場合は ja ファイルも front matter を設定する (翻訳されないページは front matter ナシのままでもよい)
  • 旧 /targetboard/local/ からはリダイレクトを設定 (netlify でよかった!)
  • include_relative を使い始める
    • /targetboard/pagename.md から /targetboard/example/... にはアクセス可能に

@dynamis
Copy link
Contributor Author

dynamis commented Jul 24, 2019

polyglot 導入した 26fe62d

@dynamis
Copy link
Contributor Author

dynamis commented Jul 24, 2019

import 導入の進捗:

  • section0
    • html
    • js
  • section1
    • js
  • section2
    • js
  • section3
    • まるごと読み込みじゃなくて引用形式だけなので使えない。メンテ性悪いが...
  • section4
    • コードブロック無し

note: 現在 jsbin でコードを書く想定になっているので js/css 読み込みタグの有無が異なるため HTML は include してはならないことに注意!まぁ JS が一番スタイル変更多いのでまずはそこだけでも includ にしてければ...

@dynamis dynamis changed the title Markdown で Import Code Snippet したい example コードは Import して 2 重管理せずに済むように Jul 24, 2019
@dynamis
Copy link
Contributor Author

dynamis commented Aug 15, 2019

同一コードがあるものは include した。

@dynamis dynamis closed this as completed Aug 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants