← All examples

Action Developer & QA notion.so

Copy page as Markdown

Collects the page headings, paragraphs and lists and copies them to the clipboard as plain Markdown.

Code to copy

(function () {
  try {
    var content = document.querySelector('.notion-page-content');
    if (!content) { alert('No page content found.'); return; }
    var lines = [];
    content.querySelectorAll('.notion-text-block, .notion-header-block, .notion-sub_header-block, .notion-sub_sub_header-block, .notion-bulleted_list-block, .notion-numbered_list-block').forEach(function (b) {
      var t = (b.innerText || '').trim();
      if (!t) return;
      if (b.classList.contains('notion-header-block')) lines.push('# ' + t);
      else if (b.classList.contains('notion-sub_header-block')) lines.push('## ' + t);
      else if (b.classList.contains('notion-sub_sub_header-block')) lines.push('### ' + t);
      else if (b.classList.contains('notion-bulleted_list-block')) lines.push('- ' + t);
      else if (b.classList.contains('notion-numbered_list-block')) lines.push('1. ' + t);
      else lines.push(t);
    });
    var md = lines.join('\n\n');
    if (!md) { alert('No content to copy.'); return; }
    if (navigator.clipboard && navigator.clipboard.writeText) {
      navigator.clipboard.writeText(md).then(function () { alert('Copied page as Markdown.'); });
    } else {
      var ta = document.createElement('textarea');
      ta.value = md; document.body.appendChild(ta); ta.select();
      document.execCommand('copy'); ta.remove();
      alert('Copied page as Markdown.');
    }
  } catch (e) { alert('Could not copy as Markdown: ' + e.message); }
})();

How to use this example

  1. Copy the code with the button above.
  2. Install JustZix (2 minutes) and open the extension on the target page.
  3. Add a new rule matching that page.
  4. Enable the action panel, add a button in the Actions tab and paste the code into it — run it with one click.

Rate this example

No ratings yet — be the first.

Does this example work?

Snippets are useless without somewhere to paste them.

JustZix takes 2 minutes to install and runs your code on every matching page. No account, no payment.

Download free See use cases