はてなキーワード:数値文字参照とは
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250619163842 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaFO+ggAKCRBwMdsubs4+SOlwAQC/KMBd7M/NNbnpAc8RPyN74ZJhueSUUjBnz8JK0Tz3WQEAm5E37sjYJs2fHLTvJ+hiimLhNe83XCX5sru1Mv9p8wI==2nKx-----ENDPGP SIGNATURE-----
ありがとう。ChatGPTに作ってもらった。数値文字参照でないといけないというのは素人には教えてもらわないとたどり着けないので感謝です。
ハイライトされた文字列を <pre>タグで囲み、特殊文字を数値文字参照に変換し、改行を <br>タグに置き換えて、元の文章をその場で置き換えるブックマークレットを作成
javascript:(function() {
function escapeHtml(text) {
returntext.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/\n/g, '<br>');
}
var s = window.getSelection().toString();
if (s) {
var escapedText = escapeHtml(s);
var wrappedText = '<pre>' + escapedText + '</pre>';
prompt('以下のコードをコピーしてください:', wrappedText);
} else {
alert("文字列をハイライトしてください。");
}
})();
特殊文字は、実体参照(& や <)ではうまくいきません。数値参照を使ってください。
出したい文字 | 数値文字参照 |
---|---|
& | & |
< | < |
> | > |
const dinner = (chicken,curry) => {
if (chicken &&curry) {
console.log('チキンかつカレー')
}
}
このように入力してください。
<pre>const dinner = (chicken,curry) => {<br> if (chicken &&curry) {<br>console.log('チキンかつカレー')<br> }<br>}</pre>
wikipediaのリンクを直貼りすると日本語がエンコードされて長ったらしくなることを憂えて
aタグを使って
<ahref="https://ja.wikipedia.org/wiki/%E5%91%B3%E5%99%8C%E6%B1%81">https://ja.wikipedia.org/wiki/味噌汁</a>↓ 実際の表示https://ja.wikipedia.org/wiki/味噌汁
と書くか、wikipediaははてな記法のHTTP記法に対応したサイトだということを利用して
[https://ja.wikipedia.org/wiki/%E5%91%B3%E5%99%8C%E6%B1%81:title]↓ 実際の表示味噌汁 - Wikipedia
のようにかく能はあるで
あと上みたいな本来タグになる文字をそのまま表示(エスケープ)するために数値文字参照が使えることを理解しとる程度のIT能力はあるで
aタグを使うときアンカーテキストとして実際と違うURL文字列を使うこともできるけどそんなあくどいことをしない倫理観も備えとるで
スマホとか関係ない。おそらくきみの書き方ではPCでも同じ失敗をする。
引用記法のやり方が間違っているだけ。昔のはてなダイアリー時代のはてな記法ページには正しい記法が詳述してあった。
端的に言うとこうだ。
つまりこう書く。
>>
引用したい本文
<<
>>書いたあとに改行、<<書く前に改行。
もしそれを守っていてもスマホだけで失敗するなら、スマホのIMEが»や≫のような異なる文字を入力しているせいかもしれない。
ちなみに↑では半角の>が化けずに表示されているのを不思議に思うかもしれないが、
これは>の別表記、数値文字参照の > という表記を使うことで、本文中に>が書かれると起こる文字化け、というかHTMLタグとの衝突を防ぐための数値参照への強制置換だと思うが、それが起こらず表示できる。
同じことは&にも言えるな。これも普通に表記すると&という表記に「化け」てしまうが、 & と書けば表示できる。まあ全角の&にしたほうが楽だが。
ハイライトできないがまぁまぁ見れるようになった。
・'<'と'>'と空白を数値文字参照に変換
・以下のように置換
行頭→<tt>
行末→</tt>
改行→<br>
#include <iostream>
template<int N> struct int_ {};
template<bool B> struct bool_ {};
struct continue_{};
struct end_{};
template <bool Cond>
auto is_end(bool_<Cond>)
-> typename std::conditional<Cond, end_, continue_>::type;
template <typename T, int N>
auto add_pointers_impl(T, int_<N>, continue_)
-> decltype(
add_pointers_impl(
std::declval<T*>(),
int_<N - 1>(),
std::declval<
decltype(
is_end(
bool_<N-1 == 0>()
)
)
>()
)
);
template <typename T, int N>
auto add_pointers_impl(T, int_<N>, end_)
-> T;
template <typename T, int N>
auto add_pointers(T, int_<N>)
-> decltype(
add_pointers_impl(
std::declval<T>(),
int_<N>(),
std::declval<
decltype(
is_end(
bool_<N == 0>()
)
)
>()
)
);
int main()
{
typedef decltype(add_pointers(std::declval<int>(), int_<3>())) result;
result pppi;
std::cout << typeid(pppi).name() << std::endl;
int*** pppi2;
std::cout << typeid(pppi2).name() << std::endl;
return 0;
}
いや、嘘。実体参照リストを見てたらいろんなラテン文字に結合できると知って使いたくなっただけ。
でもつらつら書いてたら同音異義語を多少緩和させて読みやすくなりそうなので、ローマ字書きするときに普及したらいいなあと思った。
数値文字参照 | 表示 | この増田での意味 |
---|---|---|
&#769; | ́ | 漢語、外来語を表す。 |
&#778; | ̊ | 大和言葉を表す。 |
&#772; | ̄ | 長音 |
&#776; | ̈ | 単独で発音する。 |
アキュートを付ける。略語の場合には構成する語ごとに付ける。固有名詞は大文字。
1.大和言葉同士で連濁が起こらず、且つ分かりづらい場合にリングを付けえる。3重以上の複合語で大きく分かれる箇所にリングを付けるとよい。
リング+トレマの併用例と併用しない例。
Śeigi no Ḿik̊ata no T́okutyō
Ákud̊ama no T́okutyō
「増田さん」って、言ったり聞いたりするときは一塊のフレーズとして聞くけど(もっと言えばテニヲハまで一塊)、読んだり書いたりするときは「増田」と「さん」に分けて理解するわけで、そういう目と耳とで矛盾する解釈をうまくアルファベットに落とし込めると読み書きしやすいローマ字になるのかな、と思った。