はてブロ This
by
maRk
2021-04-07 [2021/04/07 22:11:48]
閲覧ページをもとにはてなブログを作成
/*
* @title はてブロ This
* @description 閲覧ページをもとにはてなブログを作成
* @include https://*
* @license MIT License
* @require
* @javascript_url
* @private
*/
(()=>{
const editURL = "https://blog.hatena.ne.jp/my/edit";
let selectTxt = window.getSelection().toString();
location.href = editURL + '?body=' + htmlspecialchars(selectTxt) + getCanonicalURL() + getHashTags();
function htmlspecialchars(s){
if((s != '')){
s.replace(/&/g ,'&')
.replace(/"/g,'"')
.replace(/</g, '<')
.replace(/>/g, '>');
}
return encodeURIComponent(s);
}
/*
The quoted text does not use Hatena notation. location href use embed link notation.
*/
function getCanonicalURL(){
const canlink=document.querySelector('link[rel="canonical"')||"";
return '%0A' + '%5B' + encodeURIComponent(canlink.href||location.href) + '%3Aembed%5D' + '%0A';
}
/*
Hashtag extraction is rel-tag only
*/
function getHashTags(){
const tags = document.querySelectorAll('a[rel^="tag"]')||"";
var tagLabel = Array.from(tags, e=> e.textContent.replace(/^#+/,'').replace(/(.*)/ , '#'+ '$1'));
return encodeURIComponent(tagLabel.join(' '));
}
void(0);
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。