up:: Programming
上にYAML Front-Matterを挿入
しれっとHugoでは一つの改行が効かない。Notionと同じくブロック単位で管理している模様。
エスケープ
\でエスケープできる。
適宜解説で使う。
改行
<br>で改行できる。
後ろに二つ以上のスペースや、
円記号を入れる方法なんかもある。
互換性を考えるなら<br>かダブルスペース。
コメント
<!—この中に書いたことはレンダリングされない。⇒
<!—このまま
改行もできる。⇒
[](ただ上記はHTMLの記法なので、Markdownでやるならこんな感じの空リンクを作るのが一番。)
[](
無論こっちも改行可。
)
\
やっぱり独自記法だけど。
<ちなみに、うっかりやりやすいこととして、このカッコに英字だけ入力するとhtmlタグとして認識され、レンダリングされなくなる。>
<konoyouni>
Code - コードブロック
print("バッククォート三つで囲うことでコードブロックが作れる")
print("始めのクォートの方に言語名、その後ろにコロンを挟むとファイル名が足せる")
インラインコード
もできる
ちなみにマークダウンも一言語なので
**こういうこと**ができる。
Qiitaではrgb(255,0,0)
とかカラーコードとかで色が出るらしい。
また、mathを言語指定することでLaTeX記法の数式が書けるがObsidianは非対応。
LaTeXが使いたいなら$$で囲う。
ちなみに、行頭にタブを入れるとコードブロックになる。
これはどこで使うんだ。
`
(アクサングラーブ)を直接打つ場合は、打ちたい数より多いアクサングラーブで囲む。
Markdownでバッククォートをエスケープする方法
Format Text - テキストの装飾
Headers - 見出し
# シャープと半角スペースを置くと見出しが作れる
## 実用はH3まで
### H3はほとんど太字と変わらない
また、==や—を見出しにしたい文字の下に置くことでも作れる。
こんな風に。
==
=はh1で、-はh2。
--
記号は二つ以上必要。
ちゃんと上下に空行を作ること。
Emphasis - 強調
アスタリスクかアンダーラインで囲って強調
ひとつだとitalicになる(Obsidianだと英文だけっぽい?)
太字はどちらも問題ない
前後空白が必要な場合もあるもよう
主流はアスタリスク。
Strikethrough - 打ち消し線
波線二つで囲めば打ち消せる
Details - 折り畳み
detailsタグで囲むことで、折り畳み文章が作れる。
その中でsummaryタグに囲まれた文章は、折り畳みの要約になる。折り畳みの中では、基本的に**マークダウンが使えない。**
また、Hugoだとこういうタグ系は 見えなくなる 。
そらそうよ、これhtmlの記法であってMarkdownじゃないもん。
Lists - リスト
Disc型
- 文頭にアスタリスクか
- プラスか
- マイナス、それに半角スペースを置くとDisc型リストになる
- 手前にインデントを入れるとネストできる
- マイナスというかハイフン推奨。
Decimal型
- 数字とピリオドと半スぺでDecimal型リスト
- 1.1.1.と振り、あとから要素を挿入するときの手動振りなおしを避けるテクニックがある
- Obsidianは途中で改行を挿入しても全部数字を振りなおしてくれるので安心
- 行頭にタブがあると数字を振ってくれない
Definition型
用語を書き、
: コロンとスペースを二行目以降に入れて定義を書くとDefinition型リスト……
: なのだが、割と一部でしか対応してない。ObsidianもNotionも非対応。
まあ、単純に太字にすればいいもんな。
余談だけど
**strong** = <strong>strong</strong>
_italic_ = <em>italic</em>
`code` = <code>code</code>
でも
[link](test) ≠ <a href="test">link</a>
Obsidianだと左はローカルファイルのリンクになれるが、右は必ず外部宛てのURLになる。
右はhtmlだし当たり前ではある。
Checkbox型
- Disc型の後ろに[ ]を入れるとチェックボックスになる
- [x]にするとチェック入りになる、前後スペースを忘れずに
Blockquotes - 引用
文頭に>を置くだけ。
二つ書けばネスト。
Obsidianだと前後空行は要らない。
マークダウンが効く。
Horizontal rules - 水平線
アスタリスク、アンダーライン、ハイフンのいずれかを三つ並べると水平線になる。
前後空行推奨。
Links - リンク
[link](URL "title")
title付きのリンクを設定できる。
titleはマウスホバーで確認可。
ObsidianではURL部分がリンクするマークダウンファイルのタイトルになる。
スペースがあると誤検知するので、大体はパーセントエンコーディングを挟む。これがまた忘れやすい。
また、頭に!をつけることで展開された状態でリンクを張れる。
これを応用して画像を貼ったり別ファイルを丸々引用したりできる。
更に二重化することでローカルファイルにリンクを張れるみたいだけど、それはObsidianだと正しく表記されない。
リンクを最短にすることによってフォルダー移動したとしてもリンク維持することができる。
Wikilinks使えばいいんですけど。
alias
[this][alias]
[alias][]
[alias]:[URL]
URLのエイリアスを設定できる。
二行目はエイリアスを直接リンクとしたいときに。
でもObsidianだと機能しない。
Obsidianで機能させるには、リンクしたいMarkdownファイルのFront matterブロック(Markdownファイルの一番最初に置くハイフン三つで囲んだブロック)に
---
aliases:[alias1, alias2]
---
と書く。
こうすればwikilinksで[[alias1]]
と書こうが[[alias2]]
と書こうが同じファイルに行きつく。
リンクされてる側から書かなきゃなんで使い勝手違うけど。
あったわ。[[Title|URL]]
注釈
これが注釈。1
Table記法
Left align | Right align | Center align |
---|---|---|
This | This | This |
column | column | column |
will | will | will |
be | be | be |
left | right | center |
aligned | aligned | aligned |
ハイフンと縦棒で書くやつ。コロンでalignを決める。
ふつうは入力補完を頼る。
align決めてる部分は別にハイフンの数を合わせる必要はない。見栄え。
ただし書かなくていいわけではない。
真上に見出しなどではない文字があると無効化される。
Hugoだと真下に文字があると無効化されるっぽい。もう上下改行すれば安定じゃないかな。
その他
イコール二つで囲むことでハイライトができる。
割と物による。
Warning
> [! name]
でいろいろなAnnotateが出せる。ObsidianではCall outという名前。使えるのは以下の通り。
[! note]
[! abstract]
summary, tldr
[! info]
todo
[! tip]
hint, important
[! success]
check, done
[! question]
help, faq
[! warning]
caution, attention
[! failure]
fail, missing
[! danger]
error
[! bug]
[! example]
[! quote]
cite
Mermaid
基本構文| マークダウンガイド
拡張構文| マークダウンガイド
ObsidianMarkdownリファレンス| マークダウンガイド
PDF変換
記法じゃないが、NotebookLMを使うのに欲しかったので。
Obsidianのノート全体をPDF化。
まずは一つのノートにまとめる。
Get-ChildItem -Path "D:\Dropbox\Sonolart\Teino\Novels" -Include *.md -Recurse | Get-Content | Set-Content combinedFile.txt
そのあとPandocやMarpやmistuneで変換するのだが、クッソ長いのを直接やると失敗する。
なのでHTMLに変換してからブラウザ印刷機能でPDFにするのが良い。
lint
remark
remark-frontmatterを入れないとfrontmatterに対応できない。
→frontmatterに変なformat掛けないだけで、別にfrontmatterにlintかけられるわけではなかった。
frontmatterの抽出だけなら以下。
Remark プラグインを使って Markdown から Front Matter を抽出する - Neo’s World
remark-cliを入れないとcliから手軽に使えない。
remark-cliの設定はjson,yaml,js,package.jsonへの直書きなどが可能。
remark/packages/remark-cli at main · remarkjs/remark · GitHub
だいたいはjs,tsで設定を書いてる。
jsonへ変換するには、まずtype Optionsを見る。
例えばremark-frontmatterならこのように変換する。
type: string
"remarkConfig": {
"plugins": [
[
"remark-frontmatter",
{
"type": "string"
}
]
]
}
GitHub - remarkjs/remark: markdown processor powered by plugins part of the @unifiedjs collective
GitHub - remarkjs/remark-frontmatter: remark plugin to support frontmatter (YAML, TOML, and more)
APIとCLIの二種がある。
cliで使う場合はremarkConfigに書くか、—useオプションで指定する。
remark-cli を試す
remark-lintとその拡張ルールで警告を出してるのは分かったが、どこでどうやって修正してるのかは分からない。
markdownlint
markdownlintは使うのが簡単だが新しいルールを追加するのは難しそう。
調べていくとmarkdownlintでも独自ルールを追加できそう。
標準だとfrontmatterは無視するオプションで無視が一番らしい。
frontmatter handling · Issue 442 · markdownlint/markdownlint · GitHub
mdx
markdown中でjsxを使うような記法。
コンポーネントとして使いまわすことができ、よりリッチな表現ができる。