@im-nobsidian/core 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2849,6 +2849,7 @@ ${COLUMN_LIST_END}`;
2849
2849
  let processed = this.extractToggleBlocks(markdown);
2850
2850
  processed = this.extractColumnBlocks(processed);
2851
2851
  processed = this.replaceDividers(processed);
2852
+ processed = processed.replace(/<unknown[^>]*\/>/g, "");
2852
2853
  return processed;
2853
2854
  }
2854
2855
  replaceDividers(markdown) {
@@ -3971,6 +3972,7 @@ var NOTION_PAGE_MENTION_RE = /<mention-page id="([^"]+)">([\s\S]*?)<\/mention-pa
3971
3972
  var NOTION_USER_MENTION_RE = /<mention-user id="[^"]*">([^<]*)<\/mention-user>/g;
3972
3973
  var NOTION_DATE_MENTION_RE = /<mention-date start="([^"]*)"(?: end="([^"]*)")?[^>]*\/>/g;
3973
3974
  var NOTION_UNKNOWN_RE = /<unknown id="([^"]*)"([^>]*)\/>/g;
3975
+ var NOTION_UNKNOWN_URL_RE = /<unknown url="([^"]*)"([^>]*)\/>/g;
3974
3976
  var NOTION_AUDIO_RE = /[\t ]*<audio src="([^"]*)">([\s\S]*?)<\/audio>/g;
3975
3977
  var NOTION_VIDEO_RE = /[\t ]*<video src="([^"]*)">([\s\S]*?)<\/video>/g;
3976
3978
  var NOTION_PDF_RE = /[\t ]*<pdf src="([^"]*)">([\s\S]*?)<\/pdf>/g;
@@ -4082,12 +4084,18 @@ function convertDateMentions(content) {
4082
4084
  });
4083
4085
  }
4084
4086
  function preserveUnknownBlocks(content) {
4085
- return content.replace(NOTION_UNKNOWN_RE, (_match, id, attrs) => {
4087
+ let result = content.replace(NOTION_UNKNOWN_RE, (_match, id, attrs) => {
4086
4088
  const typeMatch = /type="([^"]*)"/.exec(attrs);
4087
4089
  const altMatch = /alt="([^"]*)"/.exec(attrs);
4088
4090
  const blockType = altMatch?.[1] ?? typeMatch?.[1] ?? "unknown";
4089
4091
  return `%%im-nobsidian:unknown:id=${id}&type=${blockType}%%`;
4090
4092
  });
4093
+ result = result.replace(NOTION_UNKNOWN_URL_RE, (_match, url, attrs) => {
4094
+ const altMatch = /alt="([^"]*)"/.exec(attrs);
4095
+ const blockType = altMatch?.[1] ?? "bookmark";
4096
+ return `%%im-nobsidian:unknown:id=${encodeURIComponent(url)}&type=${blockType}%%`;
4097
+ });
4098
+ return result;
4091
4099
  }
4092
4100
  function convertSyncedBlockRef(content) {
4093
4101
  let result = content.replace(
@@ -4365,6 +4373,10 @@ function restoreTabBlocks(content) {
4365
4373
  var OBSIDIAN_UNKNOWN_RE = /%%im-nobsidian:unknown:id=([^&]+)&type=([^%]+)%%/g;
4366
4374
  function restoreUnknownBlocks(content) {
4367
4375
  return content.replace(OBSIDIAN_UNKNOWN_RE, (_match, id, type) => {
4376
+ const decoded = decodeURIComponent(id);
4377
+ if (decoded.startsWith("http")) {
4378
+ return `<unknown url="${decoded}" alt="${type}"/>`;
4379
+ }
4368
4380
  return `<unknown id="${id}" type="${type}"/>`;
4369
4381
  });
4370
4382
  }