Sign in

ubanis(ウェブサイト ubanis.com)

@ubanis.com.web.brid.gy
66 followers 2 following 64 posts

ふたなり絵描き

PostsRepliesMedia
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 02/06/2026
Obsidianからも記事が書けるんだったと思い出し久しぶりにobisidan-atmosphereを使う。 最近NixとNixOSを知りいろいろやってみたのだけれど環境再現がとても良かった。 これまでLinux環境はスクリプトでやっていたのだけれどNixとFlakeがとても便利。 UbuntuやRaspberry Pi OSで使う場合はどうしてもその環境用スクリプトは必要になるもののシステム以外のソフトウェアの準備にはとても役に立つ。 […]
ubanis.com
Original post on ubanis.com
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 02/06/2026
## Sätteri ってなに? Astro 6.4 | AstroAstro 6.4 introduces a new pluggable Markdown processor API, a Rust-based Markdown processor for faster builds, and helpers to wire up experimental advanced routing with Cloudflare.https://astro.build/blog/astro-640/ Astroのバージョンが6.4に更新された。 […]
ubanis.com
Original post on ubanis.com
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 01/04/2026
また知らないうちにAstro6.1がリリースされていた。 Astro 6.1 | Astro Astro 6.1 introduces codec-specific Sharp image defaults, advanced SmartyPants configuration, and i18n fallback routes for integrations. astro.build/blog/astro-610 今回は大きな変更点は特に無い模様。 今回はsequoiaの動作テストも兼ねてということで。
astro.build
Astro 6.1 | Astro
Astro 6.1 introduces codec-specific Sharp image defaults, advanced SmartyPants configuration, and i18n fallback routes for integrations.
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 12/03/2026
ubanis.com
Astro6.0
## Astro6.0 Astto6.0がリリースされた。基本的な機能に変更はないが多くの機能追加がある。 Astro 6.0 | Astro Astro 6 is here with a refactored dev server, an experimental Rust compiler, live content collections, CSP, and more. https://astro.build/blog/astro-6/ ### アップグレード方法 Terminal window # Recommended: npx @astrojs/upgrade # Bun bun x @astrojs/upgrade # Manual: npm install astro@latest ここに載せていない追加機能は以下の通り * A redesigned astro dev * Content Security Policy ## Live Content Collections これまで実験的機能だった Live Content Collections が正式な機能になった。 ### src/live.config.ts import { defineLiveCollection } from 'astro:content'; import { z } from 'astro/zod'; import { cmsLoader } from './loaders/my-cms'; const updates = defineLiveCollection({ loader: cmsLoader({ apiKey: process.env.MY_API_KEY }), schema: z.object({ slug: z.string(), title: z.string(), excerpt: z.string(), publishedAt: z.coerce.date(), }), }); export const collections = { updates }; ### 呼び出し --- import { getLiveEntry } from 'astro:content'; const { entry: update, error } = await getLiveEntry( 'updates', Astro.params.slug, ); if (error || !update) { return Astro.redirect('/404'); } --- <h1>{update.data.title}</h1> <p>{update.data.excerpt}</p> <time>{update.data.publishedAt.toDateString()}</time> ## Built-in Fonts API フォント埋め込みAPIであるBuilt-in Fonts APIが実装された。 ### astro.config.mjs import { defineConfig, fontProviders } from 'astro/config'; export default defineConfig({ fonts: [ { name: 'Roboto', cssVariable: '--font-roboto', provider: fontProviders.fontsource(), }, ], }); ### フォントを利用する Fontコンポーネントをimportし astro.config.mjsで定義したcssVariableを指定する。 cssでそのフォントのcss変数名を指定する。 --- import { Font } from 'astro:assets'; --- <Font cssVariable="--font-roboto" preload /> <style is:global> body { font-family: var(--font-roboto); } </style> これ以外に複数の実験的機能が登場しているが割愛する。 * Rust Compiler * Queued Rendering * Route Caching
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 01/02/2026
正しくポストされているかの確認です。
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 01/02/2026
## ためし これはstandard.siteに対してポストする記事のテストです。
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 27/01/2026
ちょっとしたテストです。時間がおかしくないかも確認 > 引用もテスト
100
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 27/01/2026
Content Type:`blog.pckt.content` { "$type": "blog.pckt.content", "items": [ { "$type": "blog.pckt.block.text", "plaintext": "こちらは未対応" } ] }
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 15/01/2026
## Misseky.ioからセルフホストMisskeyへ引っ越しした 以前建ててすぐやめたmicroblog.pubのことを調べようとしてこの記事を見かけ、Misskey.ioを離れてみようと思ったのがきっかけだった。(microblog.pubはプロジェクトが終了してしまっていた) Misskey.ioを離れよ 分散、しよう blog.pivox.net/leave-misskey-io […]
ubanis.com
Original post on ubanis.com
041
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 14/01/2026
## Astro 6.0 Beta Astro 6 Beta | Astro A redesigned development server, significant rendering performance improvements, and new built-in APIs for working with CSP, fonts, and live content collections. astro.build/blog/astro-6-beta Astro 6.0 […]
ubanis.com
Original post on ubanis.com
100
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 01/01/2026
2025年はお世話になりました。2026年もよろしくお願いいたします。
ふたケンタウロスリメイク
051
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 17/12/2025
せっかくサイトやってるわけですから誰も見なくても好きなだけ文章を書いておこうというわけです。まじめに整理してないので文章はごちゃごちゃですがご了承ください。 * * * ## ふたなりナースっていいよね ふたなりナースはずいぶん昔からいいなと思って一枚絵は描いていたんですが今回は同人にしようと思っています。 モノクロ漫画形式かカラーの漫画もどきCG集かははっきりしていません。カラーとのモノクロの手間の差は塗り方次第だと思います。 […] [Original post on ubanis.com]
おためし1ページポニテふたポニテナースの絵ショートナースさん
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 15/12/2025
サイトのメッセージでショタxfemboy描いてや男の子見たいというコメントがXであったので描いたりしました。男の子はそこまで趣味でもないんですけど描くときは男の子すきすきの気持ちを振り絞る必要がありますね。 絵は別に好きじゃないけど描いてるうちに好きになるという現象がありますので描いてみないとわからないもんなんですよね。ふたなりも見て好きになったわけですけど描いてもっと好きになったわけですしね。 結論としてはちんぽがついてる可愛いのが好きってことですね。 以下絵。
これはおすの女装メスになれたかな?おちんちん遊びの練習3人はどういう系
0113
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 13/10/2025
## Astro 5.14 サイトを Astro 5.14 にアップデートした。 Astro 5.14 | Astro Astro 5.14 has a bumper harvest of features and DX improvements to warm the cockles of your heart, with new routing tools, async Svelte rendering, React 19 actions support, and more! astro.build/blog/astro-5140 […]
ubanis.com
Original post on ubanis.com
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 13/10/2025
配信で描いた健全な絵です。目をちょっとでかくして昔風にしました。
健全な絵
062
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 05/10/2025
Obsidian が 1.9 になったので久しぶりに起動していろいろいじってみた。 新しく利用できるようになったデータベースビューでファイル一覧を表示したりいろいろ markdown ファイル内で出来て便利であるし、frontmatter のタグやファイルパスの補完も便利すぎるので Astro 用に再び使うことにした。 Astro 側の content と assets フォルダへシンボリックリンクを貼り Obsidian 側から記事を書いた。 […] [Original post on ubanis.com]
obsidian_database
120
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 04/10/2025
obsidian側から編集してpushするテスト
110
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 13/09/2025
サスペンドもあってPDSも止めたわけではあるんだけれど、このようにブリッジアカウントもあるので本当に分散とブリッジ、モデレーションを上手くやっていくのは大変なのではないだろうか。 厳しくモデレーションする以外の選択肢は無いので最終的にはX的な自動モデレーションは避けられないと思う。 というつぶやき。知らない人にも言っておくとこれはウェブサイトのポストでありブリッジアカウントです。
034
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 07/09/2025
最近の絵です。
きつねの線が太い落書きたまずり強制するJKちんぽママ
06018
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 04/09/2025
最近の絵です。
エルフお姉さんとショタふといubunnyきつねで色塗り練習
0379
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 01/09/2025
最近の絵です。
ふたショタちんぽねこ
0609
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 30/08/2025
前回手順が間違っていたのかアカウントのPDS移動に失敗していたものの今回は pdsmoover.com を利用することでかなり速くアカウントを移行することに成功した。 ポストが16000以上で画像ファイルが1800以上のアカウントではあったもののあまり長い時間もかからずPDS移動に成功した。 アカウント移行後はアプリパスワードが全て消滅したので設定しなおす必要があった。 この投稿はBridgyとの連携が正しく動作しているか確認するための投稿。
pdsmoover.com
PDS MOOver
ATProto account migration tool
020
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 30/08/2025
届いていたことに気づいていなかったメッセージレスです。 > ブルアカで朱城ルミと清澄アキラあたりubanisさんが好きそう 見てみましたけど清澄アキラがいいですね。なんか細いので描いたら太くなりそうですけども。 以下最近の絵。
八尺様日傘中身サンドイッチ横視点
063
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 25/08/2025
## Astro 5.13が出ていた Astro 5.13 | Astro Astro 5.13 ships experimental improvements to environment variable handling, support for Chrome DevTools workspaces, and more! astro.build/blog/astro-5130 […]
ubanis.com
Original post on ubanis.com
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 24/08/2025
最近の絵です。
マーベルライバルズのエマ・フロストバニーさんブルアカのカリンに再挑戦ミクさん
04010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 18/08/2025
最近の絵です。オスとの練習をしています。
でかクリうしさんでかいほうが受けるらしいオスとの練習おしゃぶりさせメイド
18422
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 14/08/2025
練習ぎつねオスおしゃぶりさんに割り込み3Dポーズ人形
0104
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 09/08/2025
載せてなかったジャンク絵です。
おしりウホホ族健全な絵兜合わせが主食
083
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 06/08/2025
> 久しぶりにギャラリーを覗かせてもらったら、仕様が変わっていて古いイラストはもう見れない感じでしょうか?ふたなり × ふたなりが兜合わせしてるやつが好きでした 海外問題で一旦全て削除する必要がありました。いままでのギャラリーをどう公開するかはちょっと思いついていません。 > 最近フィギュアが続出しているアズールレーンはご存じでしょうか。以前 ubanis 様が描かれたブレマートンちゃんがそうです。 […] [Original post on ubanis.com]
ANKさんのhanaちゃんお風呂フェリシアフェリシアお湯なしお誕生日ぎつね
091
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 24/07/2025
メッセージレスです > ブルアカおすすめ生徒さん上げてく > > シグレ(温泉) 清澄アキラ アカネ > > イオリ エイミ シュン ワカモ 後でみてみます SNS で見かけるのは大体同じイメージなんですよね 以下今日のふたなり
濡れふたなり
081
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 23/07/2025
裏の趣味の Noteばっかり更新してましたのでこっちを更新します。 メッセージレスです > ブルアカのニコちゃんとかどうですか? ママでお稲荷さん作ってくれます。 最高のキャラです(まだ未実装) ママでおいなりとか良さそうな要素ですねケモミミですし 以下最近の絵
ubanis.com
NOTE
個人的なノート
130
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 16/07/2025
ubanis.com
最近のいろいろ
いろいろ変更点があったのでまとめて記録しておいたものを貼っておく。 * * * ## vscode vim 日本語入力時の不具合対策 vscodeでvim拡張利用時の日本語入力時の不具合(ひらがなが入ってしまったり右にある文字を上書きしてしまう)防止のために`editor.experimentalEditContextEnabled`を`false`にする必要がある。 * * * ## chezmoi chezmoi - chezmoi Manage your dotfiles across multiple machines, securely. https://www.chezmoi.io/ * vim単体で使い物になるように整理とプラグインの追加をした * `chezmoi`を導入してドットファイルを管理できるようにした * `chezmoi init` gitリポジトリ名 :gitリポジトリで初期化 * `chezmoi apply` :各dotfileを現在のディレクトリに書き込む * `chezmoi add` ファイル名 : 新しく管理するファイルを追加 * `chezmoi re-add` :管理中のファイルのうち更新されたものをすべて反映 `chezmoi`は`~/.local/share/chezmoi`以下で管理される。 以下はfishに作ったエイリアス * `dotfile` chezmoiが分かりづらいのでエイリアスに * `dotfile-pull` リポジトリから現在のdotfileをpull * `dotfile-push` 現在のローカルリポジトリを`git add -A git commit`して`git push`する * * * ## 開発環境ツール mise 簡単に使用するツールを入れ替えられるRust製ツールmiseを入れてみた。 ### インストール Terminal window curl https://mise.run | sh ### 各種シェル用に有効化する bashの場合 Terminal window echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc fishの場合 Terminal window echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish ### 使い方 Terminal window # 正しく利用可能になっているかの確認 mise doctor # インストールされているツールの表示 mise ls # ツール単位の表示も可能 mise ls node # インストール可能なツールの表示 mise plugins ls-remote # -all オプションですべてのバージョンを表示 mise plugins ls-remote --all # ツールやツールのバージョンを指定してリスト表示もできる mise plugins ls-remote node mise plugins ls-remote node@23 # 利用するツールを指定する # インストールも同時に行える # --globalオプションでグローバル適用(homeの外でも有効) mise use --global node@23 # 利用停止するツールを指定する # アンインストールも同時に行える mise unuse node@23 # インストール mise install node@23 # アンインストール mise uninstall node@23 ### プロジェクトごとにツールを管理する プロジェクトディレクトリに`.mise.toml`を作成しそのディレクトリ以下で使いたいツールを書く。 `mise i`でインストールする。 [tools] node = '24' watchexec = 'latest' ## 各種シェルで zoxide を使うときのメモ ### インストール Terminal window curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh ### Bash 以下を`~/.bashrc`の最後に追記 Terminal window eval "$(zoxide init bash)" ### Fish 以下を`~/.config/fish/config.fish`の最後に追記 zoxide init fish | source ### Nushell 以下をnushellのenvファイルに追記(ファイルの場所は `$nu.env-path`と打つと表示される) Terminal window zoxide init nushell | save -f ~/.zoxide.nu その後nushellのconfigファイルに追記(`$nu.config-path`でファイルの場所を表示) Terminal window source ~/.zoxide.nu ### PowerShell 以下をconfigファイルに追記(ファイルの場所は`echo $profile`で表示) Terminal window Invoke-Expression (& { (zoxide init powershell | Out-String) }) * * * ## Windows 環境の scoop でインストールした vim について プラグインの場所はホームディレクトリの`vimfiles`(隠しディレクトリではない)に置く。 `~/.vimrc`でのプラグイン自動インストール例(Jetpack)は以下の通り。 " jetpackの自動インストール " Windows環境では $HOME を使用してホームディレクトリを指定します。 let s:jetpack_plugin_path = expand('$HOME/vimfiles/pack/jetpack/opt/vim-jetpack/plugin/jetpack.vim') if empty(glob(s:jetpack_plugin_path)) let s:curl_command = printf('curl -fLo "%s" --create-dirs https://raw.githubusercontent.com/tani/vim-jetpack/master/plugin/jetpack.vim', s:jetpack_plugin_path) silent execute '!' . s:curl_command autocmd VimEnter * JetpackSync endif ## neovim でコンフィグファイルの場所を確認する方法 neovim上のコマンドで`:echo stdpath('config')`を実行する。 * * * ## vim プラグインを見直す vimのプラグインマネージャーをjetpackに変更した。 GitHub - tani/vim-jetpack: The lightning-fast plugin manager, alternative to vim-plug The lightning-fast plugin manager, alternative to vim-plug - tani/vim-jetpack https://github.com/tani/vim-jetpack Plugのときと同じような書き方で動作する。 fzfのプラグイン設定が間違っていたので修正した。コマンドは以下のとおり。 Command| List ---|--- `:Files [PATH]`| Files (runs `$FZF_DEFAULT_COMMAND` if defined) `:GFiles [OPTS]`| Git files (`git ls-files`) `:GFiles?`| Git files (`git status`) `:Buffers`| Open buffers `:Colors`| Color schemes `:Ag PATTERN]`| [ag search result (`ALT-A` to select all, `ALT-D` to deselect all) `:Rg PATTERN]`| [rg search result (`ALT-A` to select all, `ALT-D` to deselect all) `:RG PATTERN]`| [rg search result; relaunch ripgrep on every keystroke `:Lines [QUERY]`| Lines in loaded buffers `:BLines [QUERY]`| Lines in the current buffer `:Tags [PREFIX]`| Tags in the project (`ctags -R`) `:BTags [QUERY]`| Tags in the current buffer `:Changes`| Changelist across all open buffers `:Marks`| Marks `:Jumps`| Jumps `:Windows`| Windows `:Locate PATTERN`| `locate` command output `:History`| `v:oldfiles` and open buffers `:History:`| Command history `:History/`| Search history `:Snippets`| Snippets (UltiSnips) `:Commits LOG_OPTS]`| Git commits (requires [fugitive.vim) `:BCommits [LOG_OPTS]`| Git commits for the current buffer; visual-select lines to track changes in the range `:Commands`| Commands `:Maps`| Normal mode mappings `:Helptags`| Help tags 1 `:Filetypes`| File types GitHub - junegunn/fzf.vim: fzf vim fzf :heart: vim. Contribute to junegunn/fzf.vim development by creating an account on GitHub. https://github.com/junegunn/fzf.vim
001
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 15/07/2025
ubanis.com
Typstで遊ぼう
> この記事は Typst で書いていたものの写しであり書きかけであり更新中です。 kawaii ロゴ: https://gist.github.com/fenjalien/1463a19ba2b91d061ed35e295494e0b3 ## Typst で作る表紙の例 > 色々できないことも多い(縦書きなど) * * * # はじめに ## Typst とは Typst は、科学技術文書の作成に特化した、現代的な組版(くみはん)システムです。Markdown のようにシンプルな構文と、LaTeX のようにパワフルで柔軟な表現力を兼ね備えています。リアルタイムでの高速なコンパイルが特徴です。 ## Typst の利点 * _学習の容易さ:_ 直感的で覚えやすい構文を採用しており、初心者でもすぐに使い始めることができます。 * _高速なコンパイル:_ 変更を即座にプレビューに反映するため、トライ&エラーが容易です。 * _強力なスクリプティング:_ 変数、関数、ループ、条件分岐といったプログラミング機能が組み込まれており、動的で再利用性の高いコンテンツを作成できます。 * _統一されたエコシステム:_ パッケージ管理機能が内蔵されており、外部のライブラリやテンプレートを簡単に導入できます。 ## インストール Typst は、Web アプリケーションとしてブラウザ上で利用する方法と、ローカル環境にインストールして利用する方法があります。詳細は公式サイトを参照してください。 * _Web アプリケーション:_ https://typst.app/ * _ローカルへのインストール:_ https://github.com/typst/typst?tab=readme-ov-file#installation ## コマンドライン上での使い方 以下のコマンドで対象の Typst ファイルから pdf を出力します。 Terminal window typst compile example.typ 以下のコマンドは対象の Typst ファイルを監視して変更があるたびにコンパイルをして pdf を更新し続けます。 Terminal window typst watch example.typ ## vscode 拡張 Tinymist Typst の導入 vscode 上で Typst を快適に編集するための拡張機能_Tinymist Typst_を導入すると、構文ハイライトや補完機能が利用可能になります。 リアルタイムプレビュー機能もあり、Typst のドキュメントを編集しながら即座に結果を確認できます。 * * * vscode 上の右上にある**虫眼鏡のついたプレビューアイコン** をクリックすると現在のファイルのリアルタイムプレビュー画面が右側に表示されます。 プレビュー画面の文などの要素をクリックすると該当箇所のファイルの行へ移動でき、 ファイル内の要素をクリックするとプレビュー画面がその位置へスクロールします。 プレビュー画面の右上にある**四角に右上矢印のアイコン** をクリックするとプレビュー画面は外部ブラウザに表示されるようになります。 クリックでジャンプする機能はブラウザ上でもそのまま利用できます。 * * * # Typst の基本なマークアップ ## 見出し = の数で見出しのレベルを表現します。 = 章 (レベル1) == 節 (レベル2) === 項 (レベル3) ## テキストの装飾 Typst では、簡単な記号でテキストを装飾できます。 ### 強調 *強調* ### 斜体 _イタリック_ ### 下線 #underline[下線] ### 打ち消し線 #strike[打ち消し線] ### URL URL https://example.com ### 改行・エスケープ文字 `\`を使います。 このように改行できます。\ 文中では\ スペースを一つ空けます。\ \$←のようなTypstで利用されている文字を書きたい場合のエスケープ文字としても利用されます。 ## コードブロック `(バッククォート 1 つ)で囲んだ文字はインラインコードになります。 `これはインライン`です。 ``` (バッククォート 3 つ) で囲んだ行はコードブロックを形成します。言語を指定するとシンタックスハイライトが適用されます。 //これはブロックです。 //シンタックスハイライトが適用されています。 #include <stdio.h> void main(int argc, char *argv[]) { char *str = "hello world!"; puts(str); } ## リスト `-` (ハイフン) や `+`(プラス) でリストを作成します。インデントすることでネストも可能です。 - 順序なしリスト - ネストされたリスト - 順序付きリスト + 番号は自動で振られます + 2番目の項目 ## 用語リスト / Typst : 今注目されている新しい組版システム。2019年に開発が開始され、2023年3月にベータ版が一般公開された。Rustで書かれており、シンプルな文法やコンパイルの速さが利点。 / Rust : メモリ安全性を保証しつつ、低レベルのシステムプログラミングが可能な言語。所有権システムを採用しており、ガベージコレクタ#footnote("コンピュータプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能です。")がなくてもメモリリークやデータ競合を防ぐ。 / ねこ : @nyan-image ## 数式 `$` で数式を囲みます。1 行でインライン数式、複数行でブロック数式になります。 / インライン数式 : $E = m c^2$ はインライン数式です。 / ブロック数式 : これはブロック数式です。 $ sum_(i=1)^n i = (n(n+1)) / 2 $ ## 参照 `<ラベル名>` で要素にラベルを付け、`@ラベル名` で参照します。数式や図、セクションなど、あらゆる要素にラベルを付けられます。 #figure( image("../img/nyan4.jpg", width: 3cm), caption: [参照されるねこ], ) <nyan-image> #align(center)[@nyan-image をこのように参照できます。] ## ページ設定 `#set page()` ルールで、用紙サイズ、余白、ヘッダー、フッターなどを設定できます。 #set page( paper: "a4", margin: (x: 2.5cm, y: 3cm), header: align(right)[Typst Manual], footer: align(center)[#counter(page).display("1")] ) ## 段組 `#columns()` 関数で多段組を実現できます。`#colbreak()` で段を区切ります。 #import "@preview/roremu:0.1.0": roremu #columns(2)[ #roremu(100) #colbreak() #roremu(100) ] このように長い文章は折り返され、指定した段数で区切られます。 `#lorem()`(ここで使っているのは外部パッケージの`#roremu`)は指定された文字数の例文を表示する関数です。 * * * # 関数 ## Typst における関数 @layout_section や @ref-section にあるような`#`で始まる文は関数を表します。 内蔵の関数や以下のように`#let`を使って自作の関数を定義し利用することができます。 #let test(body) = { [渡された文字列は#body] } - #test("テスト") - #test[#text(fill: red, weight: "bold", [test])] 引数の渡し方は複数あります。以下は body に引数が割り当てられます。 #test("テスト") このようにマークアップ文全体をを渡すこともできます。これも自動的に body に割り当てられます。 #test[#text(fill: red, weight: "bold", [test])] 以下のように複数の引数がある場合も自動的に body に割り当てられます。引数の初期値も設定でき省略時にこれが参照されます。 #let test2( var: false, body) = { if var { [varはTrueです。] } else { [varはFalseです。] } body } - #test2[引数] - #test2(var: true)[引数] `{ }`で区切られたブロック内はコードブロックなので関数に`#`をつけずに呼び出します。マークアップ文を使う場合は`[ ]`で囲みます。 * コンテントブロック(Content block)`[...]` : 関数は`#`をつけて使う。`#text(fill: red)[*Hey* there!]` * コードブロック(Code block)`{...}` : 関数は`#`をつけずに使う。`text(fill: red)[*Hey* there!]` ## マークアップ関数の一覧 ### 目次 // target で作りたい目次の要素を指定する。`depth`は目次を作るレベルの深さを数値で指定する。 #outline(target: heading, depth: 2) ### 水平方向のスペース #h(1fr)``` ### 垂直方向のスペース ```typst #v(0.2em) ### 中央揃え #aligncenter ### 取り消し線 #strike[文字列] ### 下線 #underline[文字列] ### 大文字化 #upper[apple] ### 小文字化 #lower[APPLE] ### スモールキャピタル #smallcaps[Smallcaps] ### 上付き文字 2#super[2] ### 下付き文字 2#sub[2] ### ハイライト #highlight[文字列] ### 引用 #quoteblock: true, attribution: [名前] ### 囲み #boxstroke: 0.5pt + black, outset: 0.3em ### ダミーテキストを 10 単語生成 #lorem(10) ### 今日の日付を取得 #datetime.today() ### 水平線 #line(stroke: 1pt + black, start: (5%,0%), end: (95%,0%)) ## スクリプト Typst はスクリプト言語としての機能も持っています。変数、ループ、条件分岐などを利用して、コンテンツを動的に生成できます。 ### for 関数 #let users = ("Alice", "Bob", "Charlie") #for user in users { [こんにちは、#text(fill: red)[#user] さん!] } ### if 関数 #let a=32 #let b=64 #align(center)[#if a < b { [aはbより小さいです。] }] ### 単純な画像表示関数を定義 #let nyan(size: 5cm) = {image("../img/nyan4.jpg", width:size)} #align(center)[#nyan(size: 2.5cm)] ## image 関数 `#image()` 関数で画像を挿入します。`#figure()` と組み合わせることで、キャプションや図番号を付与できます。 #figure( image("../img/nyan4.jpg", width: 3cm), caption: [ねこです] ) ## 図形関数 `#rect()` や `#circle()` などの関数で、基本的な図形を簡単に描画できます。 #align(center)[ #grid(columns: 3, [#square(size: 1cm, fill: blue)], [#circle(radius: 0.5cm, fill: red)], [#polygon( (0cm, 1cm), (0.5cm, 0cm), (1cm, 1cm), fill: green, )] )] ## 色の指定方法 関数の引数に`color`がある場合、色を指定できます。`fill`は塗りつぶしです。`stroke`は枠線です。`3pt + black`のように`+`で属性を追加できます。 #rect(fill: red, stroke: 3pt + black, radius: 1em) #line(stroke: 3pt + green, start: (0%,0%), end: (50%, -4em)) `rgb("#000000")`のように RGB 値で指定することもできます。透明度を含めた`rgb("#000000aa")`のような指定方法もあります。 #grid(columns: 2, polygon( (0cm, 1cm), (0.5cm, 0cm), (1cm, 1cm), fill: rgb("#0000cc"), ), circle(radius: 0.5cm , fill: rgb("#0000cc55")) ) グラデーションを指定するには`gradient`を利用します。グラデーションの種類を`gradient.linear`のように指定します。 グラデーションの方向は`angle: 90deg`のように角度で指定します。 #rect(fill: gradient.linear(red, blue,angle: 90deg), radius: 1em,) ## table 関数 `#table()` 関数で柔軟な表を作成できます。 #table( columns: (auto, 1fr, 1fr), stroke: 0.5pt, align: (left), [*No.*],[*項目*],[*説明*], [1], [Typst], [組版システム], [2], [Markdown], [軽量マークアップ言語], [3], [LaTeX], [組版システム], ) ## grid 関数 `#columns()`関数よりも柔軟なレイアウトをしたい場合利用できます。 #set rect( inset: 8pt, fill: rgb("e4e5ea"), width: 100%, ) #grid( columns: (60pt, 1fr, 2fr), rows: (auto, 60pt), gutter: 3pt, rect[Fixed width, auto height], rect[1/3 of the remains], rect[2/3 of the remains], rect(height: 100%)[Fixed height], grid.cell( colspan: 2, image("../img/nyan4.jpg", width: 100%), ), ) ## footnote 関数 脚注をつけることができます。 Astro#footnote("SSGだけでなくSSRもできる静的サイトジェネレーター")もありますがTypstは使えません。 ## ファイルの分割 `#for` 関数と `#include` 関数を使って分割されたファイルを読み込みします。 複数のファイルに分割することで項目ごとに編集管理しやすくできます。 // ファイルのパスを配列にする #let chapters = ( "content/text-format.typ", "content/heading.typ", "content/list.typ", "content/codeblock.typ", "content/formula.typ", ) = ここからchaptersが配列順にそれぞれ並ぶ #for chapter in (chapters) { include(chapter) } ## リストのループ 別ファイルからリストを読み込み`#for`ループを利用して用語リストとテーブルに表示してみます。`#table`関数では`..#for`と書くことで配列を渡します。 ### import される Typst ファイル #let locales=( ( name:"日本",str:"首都は東京です。",), ( name:"アメリカ",str:"首都はワシントンD.C.です。",), ( name:"フランス",str:"首都はパリです。",), ( name:"イギリス",str:"首都はロンドンです。",), ( name:"ドイツ",str:"首都はベルリンです。",), ( name:"中国",str:"首都は北京です。",), ( name:"韓国",str:"首都はソウルです。",), ) ### コード #import "../import/locales.typ": locales #for c in locales { terms.item(text(c.name),text(c.str)) } #table( columns: (auto, 1fr), stroke: 1pt+gray, align: (left), [*国名*],[*首都*], ..for (name,str) in locales { (name,str) } ) ## 外部データの読み込み Typst は以下のデータを読み込むことができます。 * cbor * csv * json * read * toml * xml * yaml ### 読み込むデータ [ { "name": "ねこ", "path": "../img/e670ceab9f15d95ce92d718ba046aaac3142aac3.jpg", "description": "クリスマスにゃんこだにゃん" }, { "name": "きつね", "path": "../img/2022-0106-01.jpg", "description": "見せつけてくるきつね" }, { "name": "ティファ", "path": "../img/c2b7d960c6205cb3d973fe0b3c51b477ecf75202.jpg", "description": "FF担当" }, { "name": "ブリジット", "path": "../img/1e4697102be08c9174a60f109b4e6558e838bf81.jpg", "description": "格ゲー" } ] ### コード #let columnimage(data) = columns( 2, for img in data{ block( width: 100%, clip: true, square( radius: 1em, width: 100%, height: auto, inset: 0.5cm, fill: if img.name == "ねこ" { yellow } else { aqua }, highlight(fill:rgb("#77ffff"), text(strong(underline(img.name)))) +"\n"+ text(img.description) +align(center, rotate(8deg, image(img.path, fit:"cover", width: 80%))), ) ) } ) #columnimage(json("../json/animals.json")) * * * # 外部パッケージ ## codly コードブロック装飾 codly – Typst Universe Codly is a beautiful code presentation template with many features like smart indentation, line numbering, highlighting, etc. https://typst.app/universe/package/codly 以下のようにインポートと初期化を行うことでコードブロックのスタイルが変化します。 #import "@preview/codly:1.3.0": * #import "@preview/codly-languages:0.1.1": * #show: codly-init.with() Rust の例 一部分のハイライト #codly(highlights: ( (line: 4, start: 2, end: none, fill: red), (line: 5, start: 13, end: 19, fill: green, tag: "(a)"), (line: 5, start: 26, fill: blue, tag: "(b)"), )) ## Rubby ルビをふる rubby – Typst Universe Add ruby (furigana) next to base text. https://typst.app/universe/package/rubby/ ### 初期化 #import "@preview/rubby:0.10.2": get-ruby #let ruby = get-ruby( size: 0.5em, // Ruby font size dy: 0em, // Vertical offset of the ruby pos: top, // Ruby position (top or bottom) alignment: "center", // Ruby alignment ("center", "start", "between", "around") delimiter: "|", // The delimiter between words auto-spacing: true, // Automatically add necessary space around words ) ### ルビのふりかた ルビはRubbyを#ruby[り|よう][利|用]する。 ## wrap-it 回り込み wrap-it – Typst Universe Wrap text around figures and content https://typst.app/universe/package/wrap-it/ ### 初期化 #import "@preview/wrap-it:0.1.1": wrap-content ### 使用例 #let wrap_fig = [ #figure( image("../../img/nyan4.jpg",width:5cm), caption: [画像], )<fig:nyan4> ] #let wrap_body = [#lorem(100)] #wrap-content(wrap_fig, wrap_body,align: bottom + left, column-gutter: 1em) * @fig:nyan4 * ## showybox 様々なボックス描画 showybox – Typst Universe Colorful and customizable boxes for Typst https://typst.app/universe/package/showybox 様々な枠線を作ることができるパッケージです。 ### 初期化 #import "@preview/showybox:2.0.4": showybox ### 使用例 #showybox( [Hello world!] ) #showybox( frame: ( border-color: red.darken(50%), title-color: red.lighten(60%), body-color: red.lighten(80%) ), title-style: ( color: black, weight: "regular", align: center ), shadow: ( offset: 3pt, ), title: "Red-ish showybox with separated sections!", lorem(20), lorem(12) ) #showybox( frame: ( dash: "dashed", border-color: red.darken(40%) ), body-style: ( align: center ), sep: ( dash: "dashed" ), shadow: ( offset: (x: 2pt, y: 3pt), color: yellow.lighten(70%) ), [This is an important message!], [Be careful outside. There are dangerous bananas!] ) * * * # 付録 ## 地震情報を掲載する 気象庁の地震情報を取得できるアドレス https://www.jma.go.jp/bosai/quake/data/list.json から json ファイルを取得してテーブル表示します。 ### json ファイルの取得 Terminal window wget https://www.jma.go.jp/bosai/quake/data/list.json リストは 1000 件と長すぎるため表示する範囲は`slice`で限定しました。 #let earthquake-list(num) = { set text( size: 0.8em, ) let earthquakes = json("json/list.json") [== 最近の地震 #num 件] table( stroke: 0.5pt, align: left, columns: (auto,auto,auto,auto), [*地震発生時刻*], [*震源地*], [*マグニチュード*], [*最大震度*], ..for (at,anm,mag,maxi) in earthquakes.slice(0,num){ (at,anm,mag,maxi) } ) } #earthquake-list(10)
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 22/05/2025
ubanis.com
yazi
## yazi CLIファイラーに何かいいものがないか探していたところyaziを見つけた。 GitHub - sxyazi/yazi: 💥 Blazing fast terminal file manager written in Rust, based on async I/O. 💥 Blazing fast terminal file manager written in Rust, based on async I/O. - sxyazi/yazi https://github.com/sxyazi/yazi 残念ながらARMv7用は存在しないもののそれ以外のアーキテクチャ(aarch64等)には対応していた。 ### yaziのインストール(snap) Installation | Yazi How to install Yazi on various operating systems. https://yazi-rs.github.io/docs/installation/ Ubuntuではcargoでインストールするようになっているが面倒なのでsnapでインストールする。 Terminal window sudo snap install yazi --classic ### yaziのテーマ Flavors (BETA) | Yazi Learn how to use Yazi flavors. https://yazi-rs.github.io/docs/flavors/overview `~/.config/yazi/flavors/`以下にテーマフォルダを置く。 githubにあるテーマは`ya pack -a kmlupreti/ayu-dark`のようにコマンドでインストールすることができる。 コマンドが存在しない場合、直接`~/.config/yazi/flavors`フォルダ内に`git clone`する。(`git clone`もダメなら直接ダウンロードして配置する) `~/.config/yazi/theme.toml`にテーマ名を入力。 ~/.config/yazi/theme.toml [flavor] dark = "catppuccin-mocha" light = "catppuccin-mocha" ### yaziの画像表示 Image Preview | Yazi How to preview images in Yazi. https://yazi-rs.github.io/docs/image-preview tmuxの場合`~/.tmux.conf`に以下を追記する。 ~/.tmux.conf set -g allow-passthrough on set -ga update-environment TERM set -ga update-environment TERM_PROGRAM ### fishでyaziを起動するときのスクリプト Quick Start | Yazi A quick guide on the basic usage of Yazi. https://yazi-rs.github.io/docs/quick-start yaziを閉じたときにその現在位置経自動的にcdするようにするためのスクリプト`~/.config/fish/functions/`以下に配置する。(function名とファイル名は一致させる: ya -> ya.fish) ~/.config/fish/functions/ya.fish function ya set tmp (mktemp -t "yazi-cwd.XXXXXX") yazi $argv --cwd-file="$tmp" if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] builtin cd -- "$cwd" end rm -f -- "$tmp" end
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 14/05/2025
### TriliumNotesの開発終了 TriliumNotesがすでに去年にメンテナンスモードとなり開発が終わっていたことに今更気づいた。 Announcement: Trilium transitions into maintenance mode · Issue #4620 · zadam/trilium Describe feature Hello, some of you might have noticed that the pace of development slowed down in the recent months. In short, my […]
ubanis.com
Original post on ubanis.com
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 11/05/2025
### neovimのmasonがエラーを起こしだした lspのエラーがなんだとか表示されるようになった。 最近masonのリポジトリがmason-orgになりバージョンアップしたせいではあるだろう。 確認したところver2.0の仕様に合わせていないlspがあるので移行が終わるまでは以下のようにver1を使うことを推奨されていた。 Releases · mason-org/mason-lspconfig.nvim Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim. - […]
ubanis.com
Original post on ubanis.com
000
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 04/04/2025
## Gatsby から Astro に乗り換えて2年 GatsbyJSからAstroに乗り換えて2年以上経ったので止まっていたAstroのChangelogのように最近の構成をメモしておこうと思う。 ## 2年間の変更点 * 初期に導入したAstro ImagetoolsがAstroの画像強化によって必要なくなった(fitやposition指定ができるImageコンポーネント) * Markdownファイルは TinaCMSのローカルモードで管理している * Bridgy Fed で Bluesky や ActivityPub と接続している(webmention) […]
ubanis.com
Original post on ubanis.com
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 02/02/2025
ubanis.com
Matrix備忘録
## Matrix と Element を自分のサーバーで動かす 以下の2つの記事が参考になりました。ありがとうございます。 MatrixでDiscord/Slackを所有する 先日のDiscordの障害は華金を電脳空間で過ごそうと決めていた人々を絶望の淵に叩き込んだ。きょうびオンラインゲームをやるとなったらボイスチャットはほぼ必須であり、とりわけDiscordは当該の分野で支配的な地位を占めている。ちなみに、僕は独りで黙々とCounter-Strike2のランクマッチを回していたので関係なかった。静謐。 しかし他に寄辺のない異常独身男性が集結せしDiscordサーバを運用している立場としては、一つのサービスの死がコミュニケーションの喪失を引き起こしかねない現状はまったく好ましくない。彼らは他のSNSをあまり使わない。以前から代替ツールを模索してはいたが、企業運営の類似サービスでは面白みに欠けるし、かといってセルフホスト型だと「そのためだけのアカウント」が余分に増えてしまう。なにしろ従来の形態ではサーバごとに別のアカウントを作らなければならないのだ。 https://riq0h.jp/2023/10/01/203658/ Matrix自鯖メモ(docker-compose, synapse, Caddy) https://zenn.dev/hidaruma/articles/4ef72417d960d7 以下はすでに docker で caddy が動作している環境の話となっています。ホスト名もすでに存在している前提になっています。 ### 連合のためのポート開放 8448番ポートが使われるのでポート開放しておくこと。 ### docker-compose.yml を作成する ここでは `matrix -> docker` というディレクトリ構成下に `docker-compose.yml` ファイルを作成した。 以下のパッケージは古そうなので修正したほうがいいかも。 version: "3.9" services: redis: restart: always image: redis:4.0-alpine volumes: - ../redis:/data networks: - internal_network db: restart: always image: postgres:13.2-alpine volumes: - ../db:/var/lib/postgresql/data networks: - internal_network environment: - POSTGRES_PASSWORD=XXXXX - POSTGRES_USER=synapse - POSTGRES_DB=synapse - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --locale=C synapse: restart: always image: matrixdotorg/synapse:latest volumes: - ../data:/data environment: - SYNAPSE_SERVER_NAME=自分のMatrixサーバーのホスト名 - SYNAPSE_REPORT_STATS=yes ports: - "10088:8008" networks: - external_network - internal_network networks: external_network: internal_network: internal: true `POSTGRES_PASSWORD=XXXXXX` のXXXXX部分を `openssl rand -hex 16` を実行して生成したものを入力する。 `synapse:` の `ports` は 10088 とした。(内部では8008) ### Synapse 設定ファイル群の生成 Synapseの設定ファイル群を生成するために docker-compose.yml ファイルがあるディレクトリでで `docker compose run --rm synapse generate` を実行する。 上記の docker-compose.yml ではそのファイルがある上のディレクトリに設定ファイル・ディレクトリ群(data db redis)が生成される。(volumesのディレクトリ指定に注意) 設定ファイル編集のため一旦コンテナを停止する。`docker compose down` ### homeserver.yamlの編集 次に上位ディレクトリに生成された設定ファイルを編集する。`vi ../data/homeserver.yaml` 以下は生成直後のもの。“XXXX” には自動生成されたものが入る。 自分のMatrixサーバーのホスト名 の部分はそのとおり自分のホスト名を入力する。 # Configuration file for Synapse. # # This is a YAML file: see [1] for a quick introduction. Note in particular # that *indentation is important*: all the elements of a list or dictionary # should have the same indentation. # # [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html # # For more information on how to configure Synapse, including a complete accounting of # each option, go to docs/usage/configuration/config_documentation.md or # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html server_name: "自分のMatrixサーバーのホスト名" pid_file: /data/homeserver.pid listeners: - port: 8008 tls: false type: http x_forwarded: true resources: - names: [client, federation] compress: false database: name: sqlite3 args: database: /data/homeserver.db log_config: "/data/自分のMatrixサーバーのホスト名.log.config" media_store_path: /data/media_store registration_shared_secret: "XXXX" report_stats: true macaroon_secret_key: "XXXX" form_secret: "XXXX" signing_key_path: "/data/自分のMatrixサーバーのホスト名.signing.key" trusted_key_servers: - server_name: "matrix.org" このままではユーザー登録や連合時の検索、外部からのサーバー追加などが機能しないので以下を追記する。 enable_registration: true enable_registration_without_verification: true allow_public_rooms_over_federation: true allow_public_rooms_without_auth: true enable_room_list_search: true ちなみにこの状態だと自由に登録し放題なので注意。`enable_registration` を `false` にすれば自由に登録はできなくなるはず。 その後 `docker-compose.yml` のあるディレクトリに戻り `docker compose up -d ` を実行する。`docker ps` で正しく起動できているか確認。 ### Element の準備 自分のサーバー上でMatrixクライアントも動作させるために Element を設置する。 GithubのElementのreleasesページから tar.gz ファイルを取得する。 Releases · element-hq/element-web A glossy Matrix collaboration client for the web. Contribute to element-hq/element-web development by creating an account on GitHub. https://github.com/element-hq/element-web/releases wget https://github.com/element-hq/element-web/releases/download/v1.11.91/element-v1.11.91.tar.gz サーバー上のElementのルートとしたいディレクトリ上にtar.gzファイルを展開する。その中に `config.sample.json` があるのでそれを `config.json` に名前を変更して自分のサーバー用に編集する。 { "default_server_config": { "m.homeserver": { "base_url": "https://自分のMatrixサーバーのホスト名", "server_name": "自分のMatrixサーバーのホスト名" }, "m.identity_server": { "base_url": "https://vector.im" } }, "disable_custom_urls": false, "disable_guests": false, "disable_login_language_selector": false, "disable_3pid_login": false, "force_verification": false, "brand": "Element", "integrations_ui_url": "https://scalar.vector.im/", "integrations_rest_url": "https://scalar.vector.im/api", "integrations_widgets_urls": [ "https://scalar.vector.im/_matrix/integrations/v1", "https://scalar.vector.im/api", "https://scalar-staging.vector.im/_matrix/integrations/v1", "https://scalar-staging.vector.im/api", "https://scalar-staging.riot.im/scalar/api" ], "default_widget_container_height": 280, "default_country_code": "JP", "show_labs_settings": false, "features": {}, "default_federate": true, "default_theme": "light", "room_directory": { "servers": ["matrix.org"] }, "enable_presence_by_hs_url": { "https://matrix.org": false, "https://matrix-client.matrix.org": false }, "setting_defaults": { "breadcrumbs": true }, "jitsi": { "preferred_domain": "meet.element.io" }, "element_call": { "url": "https://call.element.io", "participant_limit": 8, "brand": "Element Call" }, "map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx" } ### Caddyfile の設定 現在のサーバーは Caddy が動作しているのでそこからリバースプロキシする設定を追記する。 webサーバーソフトごとのリバースプロキシ設定はドキュメントに書かれている。 Configuring a Reverse Proxy - Synapse https://matrix-org.github.io/synapse/latest/reverse_proxy.html 自分のMatrixサーバーのホスト名 { tls { on_demand } reverse_proxy /_matrix/* localhost:10088 reverse_proxy /_synapse/client/* localhost:10088 file_server root * 「Elementのマウント先ディレクトリ」 encode zstd gzip } 自分のMatrixサーバーのホスト名:8448 { tls { on_demand } reverse_proxy /_matrix/* localhost:10088 } Element のマウント先ディレクトリは `compose.yaml` ファイルの方で設定した。 volumes: - type: bind source: 「Elementがあるディレクトリ」 target: 「Elementのマウント先ディレクトリ」 他の部分は省略 Caddy を再起動した後に自分のMatrixサーバのアドレスからElementが起動するか確認する。 ### 注意とまとめ 管理者用メールのためのSMTP設定などはしていない状態なのであくまでテスト用です。 Elementの使い方は割愛します。
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 07/01/2025
一週間遅れて年賀絵ですご了承ください。 巳年なので蛇お姉さんです。うちのサイト名へび右曲がりなのでめでたいです。 巳年の絵 メッセージレスです。 > 「エラーになるためリンク省略」に乗ってあった画像のほとんどが見れなくなっている。 Patreon対策で消しました。リンクしてるとダメなので。
巳年の絵
040
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 01/01/2025
あけましておめでとうございます 今年もよろしくお願いいたします。 絵はcommissionで受けたでかいふたなりお空です。新年のへび絵は後で描きます。 お空
お空
083
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 30/12/2024
今年もお世話になりました。来年もよろしくお願いいたします。 おちんちんおばさん ちんぽねこがひとり 相棒が召喚
おちんちんおばさんちんぽねこがひとり相棒が召喚
051
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 25/12/2024
最近の絵です クリスマスちんぽねこ 差分はこちら pixivFANBOX(ファンボックス) クリエイターの創作活動を支えるファンコミュニティ「pixivFANBOX」 pixivFANBOX(ファンボックス) favicon www.fanbox.cc pixivFANBOX(ファンボックス) 右曲がり屋 Fantia […] [Original post on ubanis.com]
クリスマスちんぽねこpixivFANBOX(ファンボックス) faviconpixivFANBOX(ファンボックス)右曲がり屋 Fantia (ubanis)|ファンティア[Fantia] favicon
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 20/12/2024
Astro 5.1 が もう登場していた。 Astro 5.1 | Astro Astro 5.1 is now available. This includes a new experimental sessions feature, improved caching for images, and new tools for building Astro Actions. astro.build/blog/astro-510 とりあえずサイトを Astro 5.1 にアップデートした。
020
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 09/12/2024
ubanis.com
サイトを Astro 5.0 にアップデートした
## Astro 5.0 Astro 5.0 が正式に登場した。アップデートしたので自分用のメモ。 Content Layer に関しては以前書いたので省略 Astro 5.0 | Astro Astro 5.0 brings exciting new features like the Astro Content Layer for seamless content loading from any source, and Server Islands for effortlessly combining static and dynamic personalized content. https://astro.build/blog/astro-5/ 今まで画像の表示に利用していた astro-imagetools は最近 sharp 絡みのエラーも起きていて今回の Astro 5.0 へのアップグレードを期に使用をやめ Astro 内蔵の 画像コンポーネントを利用することにした。 Astro 5.0 からは 実験的機能として レスポンシブイメージ機能が追加されている。 Experimental responsive images https://docs.astro.build/en/reference/experimental-flags/responsive-images/#responsive-image-properties 以下のように `astro.config.mjs` で設定する。 // astro.config.mjs import { defineConfig } from "astro/config"; export default defineConfig({ experimental: { responsiveImages: true, svg: true, }, }); これで Astro の Image や Picture で cover や position のプロパティが使えるようになる。 ### /src/assets/images にある画像を読み出すコンポーネント `/src/assets/images` は TinaCMS が画像を保存するデフォルトのパス。現状では ブログカードの 画像表示の切り出しに使っている。Image コンポーネントで今まで指定できなかった fit や positon を指定している --- import type { ImageMetadata } from "astro"; import { Image } from "astro:assets"; interface Props { className: string; src: string; width: number; height: number; alt: string; } const { className, src, width, height, alt } = Astro.props; const images = import.meta.glob<{ default: ImageMetadata }>( "/src/assets/images/**/*.{jpeg,jpg,png,gif,webp}" ); if (!images[src]) { throw new Error( `"${src}" does not exist in glob: "/src/assets/images/**/*.{jpeg,jpg,png,gif,webp}"` ); } --- <Image src={imagessrc} class={className} fit="cover" position="north" width={width} height={height} alt={alt} loading="lazy" /> Astro の Image は 画像を静的にインポートして使わなければいけないが動的にファイルを指定した場合が多々あある。そのようなときのために公式でも動的な画像のインポート指定方法が解説されている。 Dynamically import images Learn how to dynamically import images using Vite's import.meta.glob function. https://docs.astro.build/en/recipes/dynamically-importing-images/ 上記を参考に`/src/assets/images/` から始まる画像のパスを指定してコンポーネントを呼び出すとそのパスから image オブジェクトを生成して Astro の Image に渡し表示する。 Markdown ファイルの featured は `/src/assets/images/` から始まるので上記のコンポーネントで表示する。 --- featured: /src/assets/images/note/logo/astro-cool-parts.webp Markdown 本文内で読み込む画像は相対パスで表記せねばならず `/src/assets/` から始まる絶対パスではエラーを起こすし外部URL画像も読む上に mdx ではない md ファイルの場合もあるので以前のままの処理とした。 !plugins このように相対パス指定にしないとエラーが起こり画像が表示されなくなる。 ### Bridgy Fed の u-photo クラス問題 Bridgy Fed のための `u-photo` クラス自動付与がastro-remark-eleventy-image を使わなくなったことでできなくなり以下のような コンポーネントが必要になった。 参考にしたサイト Astro MDX integrationで画像をレスポンシブ対応にする方法 - gensobunya Life Blog 自転車ブログをGatsbyからAstroに書き換えた。 blog.gensobunya.net 新興フレームワークだけあり、Gatsbyのように豊富なプラグインによる便利な設定というものはないので、殆どの機能を自分で実装する必要がある。 Head APIがなく、レイアウトコンポーネントから必要な要素を全てPropsで渡してheadタグに記述したり、クライアント処理をAstroでやるのはつらいのでReactを使ったりと、Gatsbyに慣れているといろいろ面倒なところが多く感じた。 その中でも、ナレッジが少なく(というかundocumented)でデフォルト処理してくれない、MDX内に相対パスで記… https://gensobunya-tech.hatenablog.com/entry/2023/10/21/141555 通常の md ファイルでは画像変換が行われないので Markdown に貼られた画像をBridgy Fedに送りたい時は mdx ファイルにする必要がある。
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 09/12/2024
最近の色塗った絵と練習絵です。 結局 X にもポストしないとダメだと思い直したりしてどうしようもない感じです。 不知火舞KOF98板 布ちんぽ ちんぽねこのけつ きつねのれんしゅう うしさん ちんぽの長いうしさん VRさんのVR子 健全なちんぽねこ 途中でやめた不知火舞 […] [Original post on ubanis.com]
不知火舞KOF98板布ちんぽちんぽねこのけつきつねのれんしゅう
030
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 01/12/2024
ubanis.com
メッセージレス
> Don’t you draw futanari images on Patreon or Fantatia or Fanbox these days? I hope you draw a lot! Cheer up! I reopened > very like Thank you! > 調子に乗りすぎました。本当にごめんなさい。 いなくなります。 わたしもいなくなりました。 > ブルアカでubanisさんが気に入りそうなキャラ(胸は小さいですけど) https://dic.pixiv.net/a/FOX%E5%B0%8F%E9%9A%8A きつね耳じゃないですかいいですね、自分に全然向いてないロリキャラですけども。 > Hello, do you take commissions? I was wanting to get a futa on male piece made.Do you do commission work? Your art is so cute!You take commissions? Please wait for the resumption on Skeb. https://skeb.jp/@ubanis1 * * * メッセージはこちら(Message) または下のNostrコメントからどうぞ(匿名になります)
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 30/11/2024
ブルーアーカイブのカリン初めて描きました。あとベストポジションのきつねです。 兜合わせはやっぱり良いですね。 ちんぽカリン でっかく見えるちんぽぎつね
ちんぽカリンでっかく見えるちんぽぎつね
030
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 28/11/2024
Bluesky Embed をためしてみました。 ubanis(Bluesky) @ubanis.com これは健全 November 27, 2024 at 7:34 AM 78 15 Read 3 replies on Bluesky ubanis(Bluesky) @ubanis.com おにさん #いいふたなりの日 November 27, 2024 at 12:42 PM 231 59 Read 1 reply on Bluesky ubanis(Bluesky) @ubanis.com […]
ubanis.com
Original post on ubanis.com
010
ubanis(ウェブサイト ubanis.com) @ubanis.com.web.brid.gy · 24/11/2024
このポストはSNSアカウントからポストしたものではなくウェブサイト(ubanis.com) から送信されたものです。 これは Bridgy と Bridgy Fed を利用して ウェブサイトがSNSアカウントのように振る舞うようにしているものです。 詳細は Bridgy Fedのまとめに書いてあります。 […]
ubanis.com
Original post on ubanis.com
221