import
UserScript
code:script.src.js
import '../../per-terra/文字カウンター/script.js';
code:script.src.js
import '../../per-terra/リアルタイム文字カウンター/script.js';
code:script.src.js
import '../../per-terra/hr.iconをショートカットキーで挿入できるようにするUserScript/script.js';
code:script.src.js
import '../../per-terra/モバイル環境でタイムスタンプを打てるようにするUserScript/script.js';
code:script.js
cosense.PopupMenu.addButton({title:t=>{let o=t.split(/\s+/).filter(Boolean).length,s=t.length;return${o}w ${s}c},onClick:()=>null});(()=>{let t=document.createElement("div");t.setAttribute("class","counters");let o=t.appendChild(document.createElement("span"));o.setAttribute("class","item");let s=document.getElementsByClassName("status-bar")0;cosense.Layout==="page"&&s.appendChild(t),cosense.on("layout:changed",()=>{cosense.Layout==="page"?s.prepend(t):s.removeChild(t)});let c=()=>{if(!window.cosense.Page.lines)return;let a=cosense.Page.lines.map(i=>i.text.split(/\s+/).filter(Boolean).length).reduce((i,e)=>i+e);o.innerText=${a} words, ${cosense.Page.metadata.charsCount} chars, ${cosense.Page.metadata.linesCount} lines};c(),cosense.on("lines:changed",c)})();document.addEventListener("keydown",t=>{t.ctrlKey&&t.key==="l"&&document.execCommand("insertText",null,"/icons/hr.icon")});(()=>{let t=()=>"ontouchstart"in window,o=e=>{let n=document.getElementById("text-input");n.focus(),n.value=e;let l=new InputEvent("input",{bubbles:!0});n.dispatchEvent(l)},s=e=>e.toString().padStart(2,"0"),c=()=>YYYY${window.COSENSE_DATE_DELIMITER||"-"}MM${window.COSENSE_DATE_DELIMITER||"-"}DD,a=e=>${e.getFullYear()}${window.COSENSE_DATE_DELIMITER||"-"}${s(e.getMonth()+1)}${window.COSENSE_DATE_DELIMITER||"-"}${s(e.getDate())},i=e=>${s(e.getHours())}:${s(e.getMinutes())}:${s(e.getSeconds())};if(t()){let e="timestamp";cosense.PageMenu.addMenu({title:e,icon:"far fa-clock"}),cosense.PageMenu(e).addItem({title:()=>#${c()} HH:mm:ss_,onClick:()=>o((n=>#${a(n)} ${i(n)} )(new Date))}),cosense.PageMenu(e).addItem({title:()=>#${c()} HH:mm:ss,onClick:()=>o((n=>#${a(n)} ${i(n)})(new Date))}),cosense.PageMenu(e).addItem({title:()=>#${c()},onClick:()=>o((n=>#${a(n)})(new Date))}),cosense.PageMenu(e).addItem({title:()=>[${c()}],onClick:()=>o((n=>[${a(n)}])(new Date))})}})(); UserCSS
code:style.src.css
@import "../../per-terra/カーソル行を強調するUserCSS/style.css";
code:style.src.css
@import "../../per-terra/カーソル行ではコードブロックのファイル名をunclickableにするUserCSS/style.css";
code:style.src.css
@import "../../per-terra/iOS上のPWA版Cosenseでstatus barがホームインジケーターに隠れないようにするUserCSS/style.css";
code:style.src.css
@import "../../per-terra/status barのpage titleをfixedするUserCSS/style.css";
これは公開できないのでバンドルしない
code:style.css
@import "../../per-terra-memex/指定したプロジェクトの更新を非表示にするUserCSS/style.css";
code:style.css
htmldata-project-theme=default-dark,htmldata-project-theme=paper-dark-dark{--cursor-line-bg: rgb(255 255 255 / 4%);--cursor-line-shadow: rgb(255 255 255 / 40%)}.cursor-line{background-color:var(--cursor-line-bg, rgb(0 0 0 / 2%));box-shadow:inset 0 -5px 5px -5px var(--cursor-line-shadow, rgb(0 0 0 / 30%))}.cursor-line .code-block-start a{pointer-events:none}:root{--safe-area-inset-bottom: 18px}@media (display-mode: standalone) and (orientation: portrait){htmldata-os*=ios{.status-bar{height:calc(20px + var(--safe-area-inset-bottom));>div{padding-bottom:var(--safe-area-inset-bottom)!important}}}}.status-bar>div.page-title{position:fixed;bottom:0;left:0}