別のprojectからページをインポートする
1. コピペ
一番簡単
scrapboxのページの実態はただのテキストなので、簡単にコピペできます。
手順
1. コピーしたいページにフォーカスを置く
2. Ctrl+A
を押してタイトルと本文をすべて選択する
3. Ctrl+C
を押してコピーする
5. Ctrl+V
を押してタイトルと本文を貼り付ける
6. 終了
mobile端末でも有効
↓のコードを置いたprojectからしかインポートできない
手順
以下のcode blockをインポート元のprojectの
自分のページに書く
script.jsimport '/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からインポートできる
手順
bookmarklet.jsjavascript:((d,url)=>{let s=d.createElement('script');s.src='https://scrapbox.io/api/code/scrapboxlab/別のprojectからページをインポートする/bookmark.js';d.body.appendChild(s);})(document)
正直ややこしいだいぶ楽になった
jsonデータを使います
「
jsonってなんぞ?」という人は自分で調べてください
もしくは「1.コピペ」で一つ一つインポートして
手順
3. インポートしたいページのデータを選ぶ
ここで、インポートできる形式のjsonデータを作っておく。
4. インポート先のプロジェクトの Settings
-> Page Data
-> Import Pages
から作ったjsonデータをインポートする
export.jsexport 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}`);
}
bookmark.jsjavascript: (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}`);
})();