generated at
別のprojectからページをインポートする
別のプロジェクトから一部のページをインポートする方法
全部のページをインポートしたいときはプロジェクトを統合したいを参照してください。

1. コピペ
一番簡単
scrapboxのページの実態はただのテキストなので、簡単にコピペできます。
手順
1. コピーしたいページにフォーカスを置く
2. Ctrl+A を押してタイトルと本文をすべて選択する
3. Ctrl+C を押してコピーする
4. インポート先のプロジェクトで新しいページを作る
5. Ctrl+V を押してタイトルと本文を貼り付ける
6. 終了

2. UserScriptをつかう
mobile端末でも有効
↓のコードを置いたprojectからしかインポートできない
手順
以下のcode blockをインポート元のprojectの自分のページに書く
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
javascript:((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.コピペ」で一つ一つインポートして
手順
1. ↑の説明を元にインポート元のプロジェクトのページのjsonデータをdownloadする
2. 適当なブラウザ(Browser)でdownloadしたデータを開く
3. インポートしたいページのデータを選ぶ
ここで、インポートできる形式のjsonデータを作っておく。
形式はここに書いてある
4. インポート先のプロジェクトの Settings -> Page Data -> Import Pages から作ったjsonデータをインポートする

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}`); }
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}`); })();