Migdal

A.I.
A.I.

Posted on • Updated on

創作言語・世界記事執筆のための便利機能(鋭意追加中!)

Migdal は創作言語・世界に関する投稿が集うコミュニティサイトとして、語学・言語学・世界構築に関する投稿をサポートする機能を多数備えています。この記事では、それらをまとめて紹介します。

使えそう!投稿したい!と思った方はぜひサイトにご登録ください。すでに記事を書かれている方も、読むとさらに役立つかもしれません。(基本的な記事の書き方は、編集ガイドを参照してください)

機能の追加・改善のご要望も随時受け付けています。記事下部の案内をごらんください。

紹介する機能

記事の操作

補助機能

記事の操作

設定パネル

記事作成・編集画面の下にある歯車のアイコンを押すと、下のような画面が現れます。ここから記事に関する少し便利な設定が可能です。

記事の設定

本文の言語を設定し、言語独自のフォントを適用する

まず、本文の言語上の図の設定パネルの「言語」の欄に言語コード形式で入力します(コードを知らなくても、対応している言語はすべてその下のプルダウンから選べます)。本文の言語には、幅広い種類の自然言語登録済みの人工言語が指定できます。

新しくあなたの創作言語を追加するには、Conlang Portal から申請して CLA コードを取得すると、このサイトでも認識され、一覧から選べるようになります。

記事に特定の言語を指定すると、その言語に適した表示に変えることができます。例えば、その言語独特の文字で表示したり、組版の制御や装飾を加えたりできます。ご希望の方は、言語を追加したうえで、要望スレッドからご連絡ください(フォントなどが必要になることがあります)。

独自フォントを適用した記事の例
ziphil

ʻalis

Ziphineko / Ziphil 🐱🐰 ・ ’21年8月15日

#qilxaléh #nisqal

なお、よく同じ言語で記事を執筆する方は、ログイン後カスタマイズ設定から「執筆言語」を選ぶことで、次回から自動でその言語が適用されるようになります。

自分のブログなどにある記事へ誘導する

個人ブログやサイトに載せた記事をここに転載して、元記事への入口にするためのしくみがあります。

上の図の設定パネルにある「正規 URL」に転載元のアドレスを入力すると、その記事は検索エンジンから元記事のコピーとして扱われます。こうして、元記事側の検索順位を上げながら、このサイトで評価やコメントを得ることができます。

元記事が存在する場合、題名部分に以下のような情報が表示されます。リンク部分から元記事へ移動できます。

元記事の情報

(※元記事の作者に許可を得ずに転載することはご遠慮ください)

別の記事の翻訳を作成する

翻訳ボタンの位置

サイトにログインした状態で、公開された記事の題名部分を見ると、「翻訳」というボタンが表示されると思います(自分の記事でも出ます)。これを押すと、その記事の内容をコピーした状態で編集画面に入ります。このようにして、元記事を内容を見ながらお好きな言語に翻訳できます。翻訳が完了したら、翻訳先の言語を忘れず指定してください。

翻訳が公開されると、翻訳元を含め各言語版の記事の頭に次のような表示が現れ、互いに行き来できるようになります。翻訳のお題とその回答などに便利です。

翻訳間リンク

補助機能

このサイトでは Liquid タグ({% tag ... %})の形式で投稿の中にさまざまな機能を埋め込むことができます。特に、以下に紹介するようなこの分野で使われやすいものを独自実装しています。

こういうタグも追加したい、などのご要望は要望スレッドにお寄せください。

投稿の一部に別の言語を差し込む

この機能は試験運用中です。要望に応じて仕様が大きく変更される場合があります。
詳しくはこちら

下のようにして、記事の本文と違う言語のテキストを差し込むことができます。

{% ln 言語コード 方向 %} 内容 {% endln %}
{% lang 言語コード 方向 %} 内容 {% endlang %}
Enter fullscreen mode Exit fullscreen mode

ln で始まる方は文の途中に挟んで使うことができます。lang の方は段落などまとまった範囲を囲んで使うためのものです。
言語コードの部分は言語の設定と同じようにして言語を指定してください。内容にはその言語で書きたい内容を入れます。方向は指定しなくてもいいですが、ltr または rtl と入れることで、双方向テキストタグと同じ機能を果たします。

このタグで囲まれた部分には、その言語が指定された記事と同様のフォントや書式が適用されます。

記述例

この言語の名前は {% ln x-v3-zph0xl %}qilxaléh{% endln %} です。下は例文です。

{% lang x-v3-zph0xl %}
lìtat a laxol e lôk avôl ile latvác 250000 etifef, dà salat e asatix a lòt etut azifev avôl ile latvác 4000.
{% endlang %}
Enter fullscreen mode Exit fullscreen mode

表示例

この言語の名前は qilxaléh です。下は例文です。

lìtat a laxol e lôk avôl ile latvác 250000 etifef, dà salat e asatix a lòt etut azifev avôl ile latvác 4000.

外字などの画像を文章に入れる

この機能は試験運用中です。要望に応じて仕様が大きく変更される場合があります。
詳しくはこちら

本文に文字と同じサイズの画像を入れることができます。ブラウザで表示されにくい字、絵文字、アイコンなどを配置できます。

{% glyph 画像 テキスト 位置 %}
Enter fullscreen mode Exit fullscreen mode

画像は画像への URL です。テキストはその画像にカーソルを当てた時に出る名前です。読む人のためになるべく書いておきましょう。位置はふつう入れなくてもいいですが、縦位置を微調整するために使います(使用できる値の詳細)。

記述例

「新しい字を発明しました」
「……どう読むのかね?」
「{% glyph https://migdal.jp/uploads/articles/m3w5qsc0p0gmzfcpfvrw.png 新しい字 %}」
Enter fullscreen mode Exit fullscreen mode

表示例

「新しい字を発明しました」
「……どう読むのかね?」
[新しい字]

言語学で使うグロスを入れる

この機能は試験運用中です。要望に応じて仕様が大きく変更される場合があります。
詳しくはこちら

言語学ではグロスと呼ばれる、例文を分解して説明する特殊な書式がよく使われますが、これを簡単に入力することができます。

{% gloss orig free %}
……行……
{% endgloss %}
Enter fullscreen mode Exit fullscreen mode

タグの中に必要なだけ行を入れます。orig を指定すると、囲まれた中の最初の行が分解前の原文として扱われます。free を指定すると、最終行が全体の訳として扱われます。

記述例

{% gloss free %}
nanggayan guny-bi-yarluga?
誰 2DU.A.3SG.P-FUT-突く
「お前たち2人は誰を槍で突きたいのか」
{% endgloss %}
Enter fullscreen mode Exit fullscreen mode

表示例

  • nanggayan guny-bi-yarluga?
  • 誰 2DU.A.3SG.P-FUT-突く
  • 「お前たち2人は誰を槍で突きたいのか」

吹き出し形式の会話文を入れる

この機能は試験運用中です。要望に応じて仕様が大きく変更される場合があります。
詳しくはこちら

親しみやすい解説記事などに使える、キャラ絵と吹き出しによる会話文を作ることができます。

{% dialogue 側:背景色:枠色:文字色 画像 話者名 %} 内容 {% enddialogue %}
Enter fullscreen mode Exit fullscreen mode

はキャラ絵を左右どちらに置くかで、leftright で指定します。背景色枠色文字色は指定しなくても OK ですが、それぞれコロンで区切って CSS に使える色形式で入力します。背景色文字色は指定がない場合、ユーザーの配色によって変わるので、なるべく両方同時に指定しましょう。画像はキャラの絵の URL、話者名は絵に付属するキャラ名です。

記述例

{% dialogue left::crimson https://migdal.jp/uploads/articles/gkzfhypvmgsjfkv3al1v.png れぃむ %} ゆっくりしていってね!!! {% enddialogue %}
Enter fullscreen mode Exit fullscreen mode

表示例

[れぃむ]
れぃむ
ゆっくりしていってね!!!

文章の一部を黒塗りで伏せ字

Discord の ||...|| 機能と同等の、文章の一部を黒で隠す効果を挿入できます。カーソルを当てる、もしくはタッチで下の文章が現れます。

記述例

{% hidden %} 見せられないよ! {% endhidden %}
Enter fullscreen mode Exit fullscreen mode

表示例

見せられないよ!

複数段組レイアウト

この機能は試験運用中です。要望に応じて仕様が大きく変更される場合があります。

短い内容の連続する時などに、文章の一部を横に複数段配置した形で表示する機能です。

{% columns 段数 %}
...
{% endcolumns %}
Enter fullscreen mode Exit fullscreen mode

段数は数字で入れてください。省略すると 2 になります。実用上は3段組くらいが限界だと思います…。
(※この機能は左右の段で行を揃えることはしません。ただ文章を段数で均等に割って配置するだけなので、閲覧環境によっても変動することがあります。行を揃える目的には表を作成してください)

記述例

{% columns 2 %}
あかしけ
やなげ
ひいろのとりよ
くさはみ
ねはみ
けをのばせ
けてる
{% endcolumns %}
Enter fullscreen mode Exit fullscreen mode

表示例

あかしけ
やなげ
ひいろのとりよ
くさはみ
ねはみ
けをのばせ
けてる

テキストの方向を制御する

この機能は試験運用中です。要望に応じて仕様が大きく変更される場合があります。

アラビア文字など、右から書く文字を混ぜる際に、どこからどこまで右/左から書くかを厳密に制御することができます(多くの場合は要りませんが、複雑な文章では有効です)。

{% rl %} 右書き内容 {% endrl %} / {% lr %} 左書き内容 {% endlr %}
{% rtl %} 右書き内容 {% endrtl %} / {% ltr %} 左書き内容 {% endltr %}
Enter fullscreen mode Exit fullscreen mode

rllr は行内の一部の語句の方向を変える時に使います。rtlltr は段落などまとまった範囲全体を左または右書きにするために使います。

記述例

「{% rl %}スジャータ{% endrl %}」のトラック

{% rtl %}
例文: تفو بر تو ای چرخ گردون تفو!
{% endrtl %}
Enter fullscreen mode Exit fullscreen mode

表示例

スジャータ 」のトラック

例文: تفو بر تو ای چرخ گردون تفو!

ルビ(ふりがな)や圏点を振る

この機能は試験運用中です。要望に応じて仕様が大きく変更される場合があります。

ルビふりがなは、HTML の <ruby> 形式で直接入力することができますが、以下の記法でも入力できます。

  • 簡単なルビ:タグ名 r に続けて、ルビの親文字、各文字につくルビ文字列を半角スペースで区切りながら入れます。ただしルビが一塊分しかない場合は親文字列全体につくものとします。
  {% r 親文字 ルビ1 ルビ2 ルビ3 ... %}
Enter fullscreen mode Exit fullscreen mode
  • 高度なルビ:タグ名 r に続けて、親文字を | で区切りながら入れます。続けて、|| を挟んでルビ文字列を同じく | で区切りながら入れます。| で区切られたそれぞれの単位が対応します。
  {% r 親|文|字|... || ル|ビ|も じ|... %}
Enter fullscreen mode Exit fullscreen mode

圏点(傍点)は次のように入力します。

{% te %} 圏点を振る文字列 {% endte %}
Enter fullscreen mode Exit fullscreen mode

記述例

{% r 嘘語 フュトル %}の{% r 形態論 けい たい ろん %}が{% te %}ヤバい{% endte %}

{% r 原|神|の|西風|騎|士|団 || げん|しん| |セピュロス|き|し|だん %}
Enter fullscreen mode Exit fullscreen mode

表示例

嘘語 (フュトル) (けい) (たい) (ろん) ヤバい

(げん) (しん) 西風 (セピュロス) () () (だん)

その他、SNS 投稿や動画などを埋め込む

他の投稿へのリンクカードや、動画、ツイート、ウィキペディアなど、多数の埋め込みタグが利用できます。すべてのタグの一覧はこちらを参照してください。

{% embed https://www.youtube.com/watch?v=W3G1gSWuy7Y %}
Enter fullscreen mode Exit fullscreen mode


{% embed https://twitter.com/nakamurakihiro/status/1230798247989366784 %}
Enter fullscreen mode Exit fullscreen mode

機能に関するご要望

何かご要望がありましたらこちらへお寄せください。

また、使い方がわからないなどのご質問はこちらへ。


使用した例文・素材

Latest comments (11)

たたむ
 
xirdim profile image
Xirdim

ルビを上下に振ったりできるとうれしいかもです

たたむ
 
sakaltovelo profile image
サカルトヴェロ

CLAコードv3に登録したいのですがリンクが切れててどこで申請すればいいのかわかりません。

たたむ
 
akiste_taz_boh profile image
まゆ タツ

CLAコードV3に登録したいのですが、リンクが切れています。
conlang-portal.herokuapp.com/

たたむ
 
sashimiwiki profile image
Fafs F. Sashimi • 編集済


{% embed https://twitter.com/nanashia_y/status/1660053818263101440 %}

と、書くと「URL provided may have a typo or error; please check and try again」というエラーが出て保存できないですね……URLは間違ってないはずなんですけど……(これ含むコメントもエラーが出て、投稿できてないと思って連投してしまった(死))

たたむ
 
a_i profile image
A.I.

すみません、これは本家に入ったバグのようです。当分は、リンク先のように旧式の {% tweet %} を使うのがいいようです。

Tweet embed via embed syntax not working. #19431

Describe the bug

When I use this syntax, I get a bug:

{% embed https://twitter.com/BradstonDev/status/1654120422768779264 %}

However, it is not validation, it seems to be the embed parsing.

{% tweet 1654120422768779264 %} works.

To Reproduce

  1. Go to DEV, or another Forem.
  2. Paste the above code.

Expected behavior

Tweet should render

Screenshots Screen Shot 2023-05-04 at 7 25 25 PM

Additional context

Causing additional confusion here:

forem.dev/ternox/twitter-authoriza...

たたむ
 
sashimiwiki profile image
Fafs F. Sashimi

調査ありがとうございます! 助かります!!

たたむ
 
a_i profile image
A.I.

ご報告ありがとうございます。現在Twitter連携自体が凍結されているようです。すみませんが原因解明までしばらくお待ちください。

たたむ
 
atridott profile image
Atridott • 編集済
{% details 単語 %}
{% columns 2 %}
no-vul 無敵 存在しない-敵
sawi-ol メディア 伝える-方法
{% endcolumns %}
{% enddetails %}
Enter fullscreen mode Exit fullscreen mode

を表示させようとすると

単語
.text-styles .table-wrapper-paragraph-multicolumn { width: 100%; margin: 0 0 var(--content-rhythm) 0; } .migdal-mc-table, .migdal-mc-tbody, .migdal-mc-tfoot, .migdal-mc-thead, .migdal-mc-tr { display: block; } .migdal-mc-td, .migdal-mc-th { display: table-cell; /* copied from table styles */ padding: var(--su-2); border-style: solid; border-color: var(--base-20); border-width: 1px 0 0 1px; } .migdal-mc-td:last-child, .migdal-mc-th:last-child { border-right-width: 1px; } .migdal-mc-tbody > .migdal-mc-tr:last-child > .migdal-mc-td, .migdal-mc-tbody > .migdal-mc-tr:last-child > .migdal-mc-th { border-bottom-width: 1px; } .migdal-mc-th { font-weight: bold; /* copied from table styles */ background: var(--body-bg); } no-vul 無敵 存在しない-敵
sawi-ol メディア 伝える-方法

というようにCSSかなんかのソースコードが出てきてます。

追記:この Markdown を2つ書くとどちらかがなるっぽいです。

たたむ
 
a_i profile image
A.I.

ありがとうございます。details は何回か直したのですが、本家でもバグりがちなので、ちょっと調べてみますね…

ちなみに、上の例の details の中でやりたいのは、もしかして{% gloss %}ではないですか?

たたむ
 
atridott profile image
Atridott

ご返信ありがとうございます。個人的には details よりも spoiler の方が挙動良かったりと思ってます。

単に造語成分を示すだけでしたがグロス使おうと思います!

スレッド スレッド
 
a_i profile image
A.I.

details と spoiler は同じコードの別名のはずなので🤔
もし挙動が違ったら闇が深いですね…

ともかく時間があるときに調べてみます。