[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
dragover とかないとちゃんと動かないのは注意な。
// encoding.js を読み込んでいる前提
// リポジトリ:https://github.com/polygonplanet/encoding.js
const body = $('body');
body.on('dragleave', (e) => {
body.css('background-color', '');
e.preventDefault();
});
body.on('dragover', (e) => {
body.css('background-color', 'lightyellow');
e.preventDefault();
});
body.on('drop', (e) => {
e.preventDefault();
e.stopPropagation();
fileReader.onload = (e) => {
const codes = new Uint8Array(fileReader.result);
const rawString = Encoding.convert(codes, {
to: 'unicode',
from: Encoding.detect(codes),
type: 'string'
});
console.log(rawString);
};
fileReader.readAsArrayBuffer(e.originalEvent.dataTransfer.files[0]);
body.css('background-color', '');
});
作って公開しているログエディタ(https://shunshun94.github.io/shared/jquery/io/github/shunshun94/trpg/logEditor/LogEditor.html)に .txt 形式での出力機能を追加した。
前の記事でまとめた内容に大体従っている。とりあえず提供している出力は以下の3種類
主に見出しへの対応がそれぞれ異なる。ほかはそんなに変わらなかったりする。Pixiv は対応しなくてもいいやと思っていたけれども、案外使っている人がいたりしたので優先順位を上げて対応した。
次いでストリエについてはちゃんと調べて対応できそうならしたい所。
ひよのテキストログエディタ触ってるんだけど、うっかりマージしちゃった時の解除手段ってないんかね
— 天蛍のえる (@Tenkei1) August 26, 2021
こんな話があり、機能追加した。
こういう時は「もとに戻す」を付けて Ctrl+Z をショートカットキーにするのがよいのだろうけど、そういう機能を簡単につけられるようにできていなかった。なので代替案として消したりマージしたりすると消したりマージしたりした発言がゴミ箱に移動するようにした。最悪の場合、ゴミ箱から復旧すれば良いので簡単である(該当箇所)。
こういうのをもっとやりやすい言語で作り始めていればよかったんだが……
"<p>元の<strong>文字列</strong></p>".replaceAll(/<\/?[^>]*>/gm, '');
const rawXML = ''; // 読み込んできた XML ファイルのテキストそのまんま
const dom = (new DOMParser()).parseFromString(rawXML, 'text/xml');
const parseError = dom.getElementsByTagName('parsererror'); // エラーがあるならこれがいる
if(parseError.length) { // エラーがないなら 0 になる = false なのでスキップ
const message = parseError[0].getElementsByTagName('div')[0].innerHTML;
alert(`XML ファイルにエラーが含まれてました\nエラーメッセージ:${message}`);
}