佐々木 雅斗@あっぷるささき
https://gyazo.com/90338091ed65084a6cd54685af405216
佐々木雅斗は、N高ディベート同好会の元代表。
経歴
創価中学で中学創価雄弁会(ディベート部)に入部
3年間のディベート経験
2年間プログラミングによる資料管理システムの構築の経験
創価高校で高校創価雄弁会に入部
1年と9ヶ月のディベート経験
1年と9ヶ月の資料管理
2018年1月、N高等学校に転校、N高ディベート同好会に入部
第22回ディベート甲子園 九州地区予選 出場
好きなディベートのパート
最近ハマっていること
ScrapboxのCSSをいじること
趣味
音楽を聴くこと
J-ROCK
パスピエ
ふぇのたす
カラスは真っ白
Shiggy Jr.
キュウソネコカミ
サカナクション
KEYTALK
KANA-BOON
フレデリック
ネクライトーキー
ニガミ17才
エレクトロニック
Sugar's campaign
Madeon
アカデミックディベート
プログラミング(未踏ジュニア'17採択)
オーディオ
美術館とか展示会に行くこと
尊敬する人
Steve Jobs
Jony Ive
中田ヤスタカ
落合陽一
成田ハネダ
ひとこと
ディベート大好きです!!資料管理はもっと好き!!!!
皆さんに、ディベートを楽しんでもらえるように頑張ります!
困ったことあったらいつでも声かけてください!
あと、他校さんとの練習試合もお待ちしてます!
Contacts
ディベーターとしてのプロフィールはここに書いてあります
Twitterのバグで凍結さてます2018/6/29
連絡はSlack、Facebook、同好会Twitterでお願いします。
/icons/slack.icon @あっぷるささき
基本お会いしたことのある方のみ承認しています。
私が使ってるUserCSSとUserScript
code:style.css
/* カウンターのスタイル */
cursor: pointer; font: 88%/1 monospace;
opacity: .35; /* ←マウスを乗せてないときの濃さ 35% */
transition: opacity .2s ease-out }
#__charCounter__ { z-index: 300; position: sticky; bottom: 0; text-align: right } /* ポップアップのスタイル */
z-index: 300; position: absolute; bottom: 2em; right: -1em;
border-radius: .25em; border: 1px solid #ddd; box-shadow: 0 0 8px 1px rgba(8,8,8,.1); padding: .8em; background-color: azure; color: #5F9EA0; font: 13.5px/1.4 monospace; transition: opacity .3s ease-out }
/* プレゼンモードのときは非表示にする */
/* 検索 */
/*
.search-form {
height: 50px;
width: 300px;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.search-form input {
width: 100%;
min-width: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-size: 16px;
padding: 16.5px 0;
border: 0;
background: none;
width: 50px;
position: absolute;
top: 0;
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
border-radius: 100%;
-webkit-transition: width 0.4s ease-in-out, border-radius 0.4s ease-in-out, padding 0.2s;
transition: width 0.4s ease-in-out, border-radius 0.4s ease-in-out, padding 0.2s;
-webkit-transition-delay: 0s, 0.4s, 0s;
transition-delay: 0s, 0.4s, 0s;
-webkit-box-shadow: 0 0 0 1px currentColor;
box-shadow: 0 0 0 1px currentColor;
color: inherit;
cursor: pointer;
padding: 16.5px 0;
padding-right: 50px;
font-weight: lighter;
font-family: 'Roboto';
}
.search-form input:focus, .search-form input:valid {
width: 100%;
-webkit-transition-delay: 0.4s, 0s, 0.4s;
transition-delay: 0.4s, 0s, 0.4s;
outline: 0;
border-radius: 0;
cursor: text;
padding-left: 16.5px;
}
.search-form input:focus + .del, .search-form input:valid + .del {
pointer-events: all;
left: calc(100% - 25px);
-webkit-transition-delay: 0.4s;
transition-delay: 0.4s;
}
.search-form input:focus + .del:focus, .search-form input:valid + .del:focus {
-webkit-box-shadow: 0 0 0 1px currentColor;
box-shadow: 0 0 0 1px currentColor;
height: 37.5px;
width: 37.5px;
}
.search-form input:focus + .del:before, .search-form input:valid + .del:before {
-webkit-transform: translate(-50%, -50%) rotate(-45deg) scaleY(0.7);
transform: translate(-50%, -50%) rotate(-45deg) scaleY(0.7);
-webkit-transition-delay: 0s;
transition-delay: 0s;
}
.search-form input:focus + .del:after, .search-form input:valid + .del:after {
-webkit-transform: translate(-50%, -50%) rotate(45deg) scaleY(0.7);
transform: translate(-50%, -50%) rotate(45deg) scaleY(0.7);
-webkit-transition-delay: 0.2s;
transition-delay: 0.2s;
}
.search-form .del {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
height: 50px;
width: 50px;
padding: 0;
background: none;
border-radius: 100%;
border: 0;
pointer-events: none;
-webkit-transition: left 0.4s ease-in-out;
transition: left 0.4s ease-in-out;
-webkit-transition-delay: 0s;
transition-delay: 0s;
color: inherit;
cursor: pointer;
}
.search-form .del:focus {
outline: none;
}
.search-form .del:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
background: currentColor;
width: 1px;
height: 37.5px;
-webkit-transform: translate(32.25px, 32.25px) translate(-50%, -50%) rotate(-45deg) scaleY(1);
transform: translate(32.25px, 32.25px) translate(-50%, -50%) rotate(-45deg) scaleY(1);
-webkit-transition: -webkit-transform 0.2s ease-in-out;
transition: -webkit-transform 0.2s ease-in-out;
transition: transform 0.2s ease-in-out;
transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
-webkit-transition-delay: 0.6s;
transition-delay: 0.6s;
}
.search-form .del:after {
content: '';
position: absolute;
top: 50%;
left: 50%;
background: currentColor;
width: 1px;
height: 37.5px;
-webkit-transform: translate(-50%, -50%) rotate(45deg) scaleY(0);
transform: translate(-50%, -50%) rotate(45deg) scaleY(0);
-webkit-transition: -webkit-transform 0.2s ease-in-out;
transition: -webkit-transform 0.2s ease-in-out;
transition: transform 0.2s ease-in-out;
transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
-webkit-transition-delay: 0.4s;
transition-delay: 0.4s;
}
*/
code:script.js
const __appliedProject__ = scrapbox.Project.name
const __charCounterSetup__ = setInterval(function() {
// ページが準備できるのを待ちたいので、スクリプトがロードされてから3秒くらいしたら処理開始↓↓
if (document.getElementById('editor') && scrapbox.Page.lines)
clearInterval(__charCounterSetup__)
else
return // ページの準備ができてないときはまた3秒待つ
// 下準備
const $id = id => document.getElementById(id)
const $query = q => document.querySelector(q)
const fmt = n => new Intl.NumberFormat('en-US').format(n).padStart(6)
// 文字数カウンター表示用のエレメントを作ってく
const linesText = $query('.lines').innerText
const chars = linesText.split(/\s+/).join('').length
var counterWrapper = document.createElement('div')
counterWrapper.id = '__charCounter__'
counterWrapper.innerHTML = <span>${fmt(chars)} chars</span> +
'<pre id="__charCounterPopup__" style="opacity:0"></pre>'
$id('editor').appendChild(counterWrapper)
const counter = $query('#__charCounter__ span')
const popup = $id('__charCounterPopup__')
// 文字数カウンターにマウスカーソルを乗せたときに詳細をポップアップする
counter.addEventListener('mouseover',
function() {
const linesText = $query('.lines').innerText
const chars = linesText.split(/\s+/).join('').length
const words = linesText.split(/\s+/).length
popup.innerHTML = ${fmt(chars)} chars\n +
${fmt(words)} words\n +
${fmt(scrapbox.Page.lines.length)} lines
popup.style.opacity = 1
})
// 文字数カウンターからマウスカーソルが離れたら詳細ポップアップを見えなくする
counter.addEventListener('mouseout', function() { popup.style.opacity = 0 })
// 文字数のみを数え直す関数
const updateCounter = function() {
if ($query('body.presentation')
|| scrapbox.Project.name !== __appliedProject__) {
// プレゼンモードになってたり、よそのプロジェクトを表示してたら文字数カウンターを非表示にする
counterWrapper.style.display = 'none'
} else if (scrapbox.Page.lines) {
// ここで数え直ししてます
const linesText = $query('.lines').innerText
const chars = linesText.split(/\s+/).join('').length
counter.innerText = ${fmt(chars)} chars
counterWrapper.style.display = 'block'
}
}
// 数え直すタイミングは、テキスト入力時とペースト時
$id('text-input').addEventListener('input', updateCounter)
$id('text-input').addEventListener('paste', updateCounter)
// 何もしなくても3秒ごとに数え直す
setInterval(updateCounter, 3000)
}, 3000)
code:style.css
/*
body {
background-color: rgb(33, 39, 108);
}
*/