別のprojectからページをインポートする
1. コピペ
一番簡単
scrapboxのページの実態はただのテキストなので、簡単にコピペできます。
手順
1. コピーしたいページにフォーカスを置く
2. Ctrl+Aを押してタイトルと本文をすべて選択する
3. Ctrl+Cを押してコピーする
5. Ctrl+Vを押してタイトルと本文を貼り付ける
6. 終了
mobile端末でも有効
↓のコードを置いたprojectからしかインポートできない
手順
以下のcode blockをインポート元のprojectの自分のページに書く code:script.js
import '/api/code/scrapboxlab/別のprojectからページをインポートする/export.js';
scrapbox.PageMenu.addMenu({
title: 'export',
image: '/assets/img/logo.png'
});
scrapbox.PageMenu('export').addItem({
title: export this page to /PROJECT,
onClick: () => exportPage(PROJECT),
});
任意のprojectからインポートできる
手順
code:bookmarklet.js
正直ややこしいだいぶ楽になった
jsonデータを使います
「jsonってなんぞ?」という人は自分で調べてください もしくは「1.コピペ」で一つ一つインポートして
手順
3. インポートしたいページのデータを選ぶ
ここで、インポートできる形式のjsonデータを作っておく。
4. インポート先のプロジェクトのSettings->Page Data->Import Pagesから作ったjsonデータをインポートする
code:export.js
export function exportPage(projectName) {
// scrapbox以外のページとapiのページはexport対象から外す
if(document.domain != 'scrapbox.io') return;
if(!scrapbox || scrapbox.Layout !== 'page') return;
const currentProjectName = scrapbox.Project.name;
const currentPageName = encodeURIComponent(scrapbox.Page.title);
// タイトル以外の行を取得する
const body = encodeURIComponent(scrapbox.Page.lines.slice(1).map(l => l.text).join('\n'));
window.open(https://scrapbox.io/${projectName}/${currentPageName}?body=${body});
}
code:bookmark.js
javascript: (async () => {
const targetProject = window.prompt('Export this page to...');
// scrapbox以外のページとapiのページはexport対象から外す
if(document.domain != 'scrapbox.io') return;
if(!scrapbox || scrapbox.Layout !== 'page') return;
const currentProjectName = scrapbox.Project.name;
const currentPageName = encodeURIComponent(scrapbox.Page.title);
// タイトル以外の行を取得する
const body = encodeURIComponent(scrapbox.Page.lines.slice(1).map(l => l.text).join('\n'));
window.open(https://scrapbox.io/${targetProject}/${currentPageName}?body=${body});
})();