settings-for-private-project
解説ページへのリンクを張ってあります。
code:style.css
code:style.css
code:style.css
.page-list-item.pin + .page-list-item:not(.pin) {
clear: both;
}
code:style.css
/* 外部リンクにiconをつける */
.line span:not(.modal-image):not(.pointing-device-map) > a.link:not(.icon)::after {
font-family: 'Font Awesome 5 Free';
content: ' \f35d';
font-weight: 900;
display: inline-block;
}
使い方:
一行に敷き詰め: [| [画像URL][画像URL][画像URL]…]
横幅いっぱい1列並べ: [*| [画像URL][画像URL][画像URL]…]
3列並べ : [***| [画像URL][画像URL][画像URL]…]
5列並べ: [*****| [画像URL][画像URL][画像URL]…]
code:style.css
code:style.css
/* 短冊記法 */
完 とか 済 とかやりたい
[() 文字]
code:style.css
display: inline-block; border-radius: 50%; border: .05em solid #f40; min-width: 1em; padding: .1em; vertical-align: text-bottom;
line-height: 1; color: #f40; font-weight: 600 } 検索ボックスに出てくるページ候補のドロップダウンを広くする
code:style.css
code:style.css
しおりでございま~す!
UserScriptの設定が必要
code:style.css
/* しおり記法 -- 栞箇所のマークやハイライトが不要な場合はこのブロックは消してね */
@media screen {
.app:not(.presentation) .line .deco-\. { background-color: #F5FAEA } .app:not(.presentation) .line .deco-\.::after {
position: absolute; top: 3px; left: -1.4em;
content: '\f02e'; font: 900 1.7rem/1 'Font Awesome 5 Free'; color: yellowgreen } }
@media screen and (max-width: 990px) {
.app:not(.presentation) .line .deco-\.::after { position: static; padding-left: .3em } }
/* 栞一覧を出すページメニューボタンのスタイル -- ここは必要 */
a#Bookmarks.tool-btn:hover { text-decoration: none }
a#Bookmarks.tool-btn::before {
position: absolute; content: '\f02e'; font: 400 20px/46px 'Font Awesome 5 Free' }
a#Bookmarks.tool-btn img { opacity: 0 }
code:style.css
/* テーブルのセルをわかりやすくする */
.table-block table { background-color: transparent; border-collapse: separate; border-spacing: 2px }
.table-block table tr td { padding: .1em; background-color: rgba(0,0,0,0.04) }
.table-block table tr:nth-child(even) td { background-color: rgba(0,0,0,0.06) }
.table-block table tr:first-child td { font-weight: bolder; text-align: center }
.table-block table tr td:first-child { padding: 0; background-color: transparent; border-width: 0 }
簡単にアイコンを作れるやつ
code:style.css
display: inline-block; width: 0; text-indent: -9999px }
display: inline-block; min-width: 1.15em; padding-left: 1px;
font: normal 110%/normal FontAwesome; text-align: center }
content: '\f0f5\f087\f069'; letter-spacing: .2em }
.line:not(.cursor-line) ahref='./good':not(.icon)::after { content: '\f087' } .line:not(.cursor-line) ahref='./bad':not(.icon)::after { content: '\f088' } e [e] イベント < [<] リスケ済みタスク code:style.css
/* タグアイコンの共通スタイル (1) */
.line:not(.cursor-line) ahref$='/!':not(.icon) span, .line:not(.cursor-line) ahref$='/*':not(.icon) span, /*.line:not(.cursor-line) ahref$='/_':not(.icon) span,*/ /*.line:not(.cursor-line) ahref$='/x':not(.icon) span,*/ .line:not(.cursor-line) ahref$='/-':not(.icon) span, .line:not(.cursor-line) ahref$='/e':not(.icon) span { display: inline-block; width: 0; text-indent: -9999px }
/* タグアイコンの共通スタイル (2) */
.line:not(.cursor-line) ahref$='/!':not(.icon)::after, .line:not(.cursor-line) ahref$='/*':not(.icon)::after, /*.line:not(.cursor-line) ahref$='/_':not(.icon)::after,*/ /*.line:not(.cursor-line) ahref$='/x':not(.icon)::after,*/ .line:not(.cursor-line) ahref$='/-':not(.icon)::after, .line:not(.cursor-line) ahref$='/e':not(.icon)::after { display: inline-block; min-width: 1.15em; padding-left: 1px;
font: 900 110%/normal 'Font Awesome 5 Free'; text-align: center }
/* ここから各アイコンの設定 */
.line:not(.cursor-line) ahref$='/!':not(.icon)::after { content: '\f06a'; color: #F6AE2D } .line:not(.cursor-line) ahref$='/*':not(.icon)::after { content: '\f069'; color: #F26419 } /*.line:not(.cursor-line) ahref$='/_':not(.icon)::after { content: '\f0c8'; color: #08BDBD; font-weight: 400 }*/ /*.line:not(.cursor-line) ahref$='/x':not(.icon)::after { content: '\f14a'; color: #2489C5; font-weight: 400 }*/ .line:not(.cursor-line) ahref$='/%3E':not(.icon)::after { content: '\f14d'; color: lightgrey; font-weight: 400 } .line:not(.cursor-line) ahref$='/%3C':not(.icon)::after { content: '\f274'; color: lightgrey; font-weight: 400 } .line:not(.cursor-line) ahref$='/-':not(.icon)::after { content: '\f146'; color: lightgrey; font-weight: 400 } .line:not(.cursor-line) ahref$='/e':not(.icon)::after { content: '\f192'; color: #F26419 } code:style.css
visibility: hidden; display: inline-block; position: relative; min-width: 1.15em; line-height: 1 }
visibility: visible; position: absolute; left: 0;
content: '\0025A2'; font-weight: bold; color: #08BDBD !important } .line ahref$="/x" + span { position: relative; vertical-align: text-top; line-height: 1 } content: ''; visibility: visible; display: inline-block; width: .6em; height: .9em;
position: absolute; left: -0.8em; top: -0.2em;
border-right: .18em solid #2489C5; border-bottom: .18em solid #2489C5; transform: rotate(45deg) } .line.cursor-line ahref$="/x" { visibility: visible } .line.cursor-line ahref$="/x"::after { visibility: hidden } .line.cursor-line ahref$="/x" + span { position: inherit } content: ''; visibility: inherit; display: inherit; position: inherit;
border: inherit; transform: inherit }
code:style.css
/* チェックボックスになるタグ v2 Font Awesome版 */
.line:not(.cursor-line) ahref$='/o':not(.icon) span, .line:not(.cursor-line) ahref$='/v':not(.icon) span { display: inline-block; width: 0; text-indent: -9999px }
.line:not(.cursor-line) ahref$='/o':not(.icon)::after, .line:not(.cursor-line) ahref$='/v':not(.icon)::after { display: inline-block; min-width: 1.15em; padding-left: 1px;
font-family: 'Font Awesome 5 Free'; font-weight: 400;
font-size: 120%; text-align: center; vertical-align: middle }
.line:not(.cursor-line) ahref$='/o':not(.icon)::after { content: '\f0c8'; color: #08BDBD } .line:not(.cursor-line) ahref$='/v':not(.icon)::after { content: '\f14a'; color: #2489C5 } [~ チルダで修飾すると付箋になるよ]チルダで修飾すると付箋になるよ
行の途中で書いても→OK![~ OK!]
太字にすると→[**~ 重要っぽくなる]重要っぽくなる
もっと太字→[***~ けせらせら ] けせらせら
もっともっと太字→[****~ らーめん ]らーめん
[**~ 別に行を空けなきゃいけないってことはない]別に行を空けなきゃいけないってことはない
[~ とりあえず伝言したいこととか]とりあえず伝言したいこととか
[~ あとで消す予定のメモとか]あとで消す予定のメモとか
code:style.css
/* 付箋記法のスタイル例 */
.line:not(.cursor-line) .deco-\~ {
display: inline-block; position: absolute; top: -0.6em; right: -6vw;
max-width: 40%; padding: .3rem 1rem;
transform: rotate(-0.8deg); box-shadow: 4px 1px 3px rgba(0,0,0,.2) }
@media screen and (max-width: 768px) { .line:not(.cursor-line) .deco-\~ { position: static; max-width: 100% } }
.presentation .line .deco-\~ { position: static; max-width: 100% }
@media print { .line:not(.cursor-line) .deco-\~ {
right: 0; border-bottom: 1px solid #ccc; background-color: #f9f8f6 } } /* 太字記法との組み合わせでスタイルを変える場合 */
.line .level-2 .deco-\~ { border-right-color: #009175 } .line .level-3 .deco-\~ { border-right-color: #EFBB33 } .line .level-4 .deco-\~ { border-right-color: #F23E2E } /* 付箋記法内で打消し線記法と下線記法を併用する場合 */
.line .deco-\~.deco-- { text-decoration: line-through }
.line .deco-\~.deco-_ { text-decoration: underline }
削除 [- 削除] ※これはデフォルトの打ち消し線の記法
挿入[+ 挿入] 挿入を意味する記法ってことにしてみた
挿入を取り消し[-+ 挿入を取り消し] こういう表示で意味が通るのか、ちょっとわかんない
例)春は曙あけぼの。ようよう白くなりゆく山ぎは山際、少し明かりて、紫だちたる雲の細くたなびきたる。
コメント
コメントっぽい!
部分的に引用
ねこだいすき[" ねこだいすき]
code:style.css
/* 挿入 */
.deco-\+ { color: blue }
/* 挿入取り消し */
.deco-\+.deco-- { color: lightgrey }
.deco-\+.deco--::before {
content: 'イキ'; display: inline-block;
color: blue; font-size: smaller; text-decoration: none !important; vertical-align: super }
.deco-\# { color: green; font-size: smaller; padding: 0 .2em }
.deco-\" {
border-radius: .2em; padding: 0 .4em; background-color: rgba(128,128,128,0.1);
font-size:95%; font-style: italic }
.deco-\"::before {
color: #a0a0a0; font-size:85%; font-family: 'Font Awesome 5 Free'; font-weight: 900; content: '\f10d'; vertical-align: super }
code:style.css
/* ピンしたページのスタイル */
.grid li.page-list-item a .pin { background-color: transparent; background-image: none }
.grid li.page-list-item a .pin::after {
content: '\f08d'; font-family: 'Font Awesome 5 Free'; font-weight: 900;
font-size: 20px; color: #A45AFF; bottom: 0; display: inline-block; transform: rotate(35deg) } こんなことできる
code:style.css
/* フキダシになるタグ ※アイコン記法は除く */
display: inline-block; position: relative; vertical-align: text-top;
line-height: 1; font-size: 91%; color: #FFF !important; background-color: #b2bcba; padding: 3px 4px 1px 5px; margin-left: 10px;
border-radius: 4px; border-bottom-left-radius: 0 }
display: block; /* reduce the damage in FF3.0 */
position: absolute; bottom: 0; left: -7px;
width: 0; content: "";
border-width: 0 0 7px 7px; border-style: solid; border-color: #b2bcba transparent } .line ahref^="./%7B":not(.icon) span:first-child { display: none } .line.cursor-line ahref^="./%7B":not(.icon) span:first-child { display: inline } /* フキダシ記法版 */
.line:not(.cursor-line) .deco-\{ {
display: inline-block; position: relative; max-width: calc(100% - 4em);
line-height: 1; color: #FFF !important; background-color: rgba(107, 177, 148, 0.85); padding: 3px 4px 2px 5px; margin-left: .6em;
border-radius: .4em; border-bottom-left-radius: 0 }
.line:not(.cursor-line) .deco-\{::after {
display: block; /* reduce the damage in FF3.0 */
position: absolute; bottom: 0; left: -0.45em;
width: 0; content: '';
border-width: 0 0 .5em .5em; border-style: solid; border-color: rgba(107, 177, 148, 0.85) transparent }
code:
/* 箇条書きを控えめにする */
.app .line .indent-mark .dot {
height: .2em; width: .4em; border-radius: 25%;
background-color: rgba(173,173,173,.55) }
.app:not(.presentation) .line .indent-mark .dot { top: auto; bottom: 0 }
code:style.css
/* 二重括弧による強調をマーカーっぽくする */
.line strong:not(class) { background: linear-gradient(transparent 10%, #ABFF4F 25%, #ABFF4F 70%, transparent 90%) } code:style.css
/* バッヂ風 */
display: inline-block; min-width: 3.2em; border-radius: .2em;
text-align: center; font: bolder 100%/normal Futura, Arial, sans-serif; color: #FFF } code:style.css
/* 行内の画像を左寄せにする */
.line .text, .stream .line { clear: both; overflow: hidden }
.line img.image { float: left; margin-right: .5em }
.stream .line img.image { float: none; margin-right: 0 }
code:style.css
/* アイコンサイズを大きくする */
.line img.icon { height: 1.5em }
code:style.css
/* 強調記法 hoge.icon のアイコンのとき、サイズをもっと大きくする */
.line img.strong-icon { max-height: 7em; height: auto }
code:style
/* #で始まるタグをラベル風にする */
display: inline-block;
padding: 0px 10px;
margin: 0 8px 10px 0;
font-size: 80%;
border-radius: 18px;
transition: .1s;
-webkit-transform: scale(1);
transform: scale(1);
}
}
.line.number-list .indent-mark {
display: none;
}
code:style.css
/* カウンターのスタイル */
cursor: pointer; font: 88%/1 monospace;
opacity: .35; /* ←マウスを乗せてないときの濃さ 35% */
transition: opacity .2s ease-out }
#__charCounter__ { z-index: 30; position: sticky; bottom: 0; text-align: right } /* ポップアップのスタイル */
z-index: 30; 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 }
/* プレゼンモードのときは非表示にする */
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.trim()
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.trim()
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('.presentation')
|| scrapbox.Project.name !== __appliedProject__) {
// プレゼンモードになってたり、よそのプロジェクトを表示してたら文字数カウンターを非表示にする
counterWrapper.style.display = 'none'
} else if (scrapbox.Page.lines) {
// ここで数え直ししてます
const linesText = $query('.lines').innerText.trim()
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)