marph91 / jimmy

Convert your notes to Markdown
https://marph91.github.io/jimmy/
GNU General Public License v3.0
34 stars 1 forks source link

Macbook Pro Intel chip #23

Open minimoz opened 1 week ago

minimoz commented 1 week ago

Describe the bug On Mac equiped with an Intel chip, the provided macos executable won't run:

zsh: bad CPU type in executable: ./jimmy-cli-darwin

OS MacOS 14.6.1 (23G93) MacBook Pro 16-inch, 2019 2.6 GHz 6-Core Intel Core i7

To Reproduce Just run the darwin executable :

./jimmy-cli-darwin

Could you build another executable for Intel chips please? 🙏

marph91 commented 1 week ago

I don't have access to a MAC personally, so I don't have much experience in this topic and can just rely on the Github build.

This is what I could find:

There is a tool rosetta, but it seems to work the other way around. I. e. allowing to run Intel binaries on ARM chips.

Github offers docker containers for both architectures. Currently only macos-latest is used, which is ARM based. This corresponds to your observation.

Adding macos-latest-large (Intel based) didn't work unfortunately:

The job was not started because recent account payments have failed or your spending limit needs to be increased. Please check the 'Billing & plans' section in your settings.

Large runners seem to be only available for "enterprises and organizations". So unfortunately I can't provide a binary for Intel based MACs.

However, you could try to build the executable locally on your machine.

marph91 commented 1 week ago

Well, actually it's possible to use the older (but free) macos-13 container. It will be probably deprecated soon, but maybe it works for now. Could you try the executable jimmy-cli-darwin-x86_64 from https://github.com/marph91/jimmy/releases/latest?

minimoz commented 1 week ago

Hello @marph91!

It worked perfectly fine!! 🎉

image

Thank you so much for your responsiveness!

minimoz commented 1 week ago

One more thing regarding StandardNotes notes "Super" type format. When exporting it converts the notes "as-is":

---
tags:
- 14-Recipes
---

{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"https://www.cuisineactuelle.fr/recettes/carres-d-agneau-a-la-menthe-245301","type":"text","version":1}],"direction":null,"format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"root","version":1}}

Do you have any idea if jimmy supports parsing such format when exporting from StandardNotes?

Thank you again!

marph91 commented 1 week ago

It worked perfectly fine!

That's good news :) In the tests there were some errors, so I wasn't sure if it will work at all.

Do you have any idea if jimmy supports parsing such format when exporting from StandardNotes?

Ah, I see. Unfortunately the "Super" format is only available in a premium plan and I can't find documentation about it. Currently only the "Plain Text" format is supported. I could try to add support for it, if you can provide a sample export file with notes in the "Super" format.

Or maybe there is an option to backup in "Plain Text" or "Markdown" format?

minimoz commented 1 week ago

The "Super" format is really poorly documented, I could make you a note example with all the different kinds of formatting if needed. :)

There is an option to backup in "Plain Text" here:

image

But what it does is simply the same conversion as "Super" -> "Markdown" with the "As-Is" option:

image

And we get the same ugly JSON format instead of beautiful Markdown 😓

marph91 commented 1 week ago

Thanks for checking!

The "Super" format is really poorly documented, I could make you a note example with all the different kinds of formatting if needed. :)

That would be great! Maybe I can find some time to implement the conversion in the next week. From the example above, it looks doable.

minimoz commented 1 week ago

Here is a full example of all the formatings available in the "Super" format:

image

And here is the raw text which is exported:

{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Normal text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"H1 text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"heading","version":1,"tag":"h1"},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"H2 text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"heading","version":1,"tag":"h2"},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"H3 text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"heading","version":1,"tag":"h3"},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Bullet list:","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"item 1","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"item 2","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":2}],"direction":"ltr","format":"","indent":0,"type":"list","version":1,"listType":"bullet","start":1,"tag":"ul"},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Numbered list:","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"item 1","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"item 2","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":2}],"direction":"ltr","format":"","indent":0,"type":"list","version":1,"listType":"number","start":1,"tag":"ol"},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Check list:","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"item 1","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"item 2","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":2}],"direction":"ltr","format":"","indent":0,"type":"list","version":1,"listType":"check","start":1,"tag":"ul"},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Quote text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"quote","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Code block text","type":"code-highlight","version":1}],"direction":"ltr","format":"","indent":0,"type":"code","version":1,"language":"javascript"},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":1,"mode":"normal","style":"","text":"Bold text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":2,"mode":"normal","style":"","text":"Italic text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":8,"mode":"normal","style":"","text":"Underlined text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"link to Google","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"link","version":1,"rel":"noreferrer","target":null,"title":null,"url":"https://google.com"}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":16,"mode":"normal","style":"","text":"Inline Code text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":128,"mode":"normal","style":"","text":"Highlighted text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":4,"mode":"normal","style":"","text":"Strikethrough text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":32,"mode":"normal","style":"","text":"Subscript text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":64,"mode":"normal","style":"","text":"Superscript text","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Left aligned text","type":"text","version":1}],"direction":"ltr","format":"left","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Center aligned text","type":"text","version":1}],"direction":"ltr","format":"center","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Right aligned text","type":"text","version":1}],"direction":"ltr","format":"right","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"Justify aligned text","type":"text","version":1}],"direction":"ltr","format":"justify","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"indented once text","type":"text","version":1}],"direction":"ltr","format":"","indent":1,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"indented twice text","type":"text","version":1}],"direction":"ltr","format":"","indent":2,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"children":[{"children":[{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"2 by 2 table text (row header)","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"tablecell","version":1,"backgroundColor":null,"colSpan":1,"headerState":1,"rowSpan":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"second column title (row header)","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"tablecell","version":1,"backgroundColor":null,"colSpan":1,"headerState":1,"rowSpan":1}],"direction":null,"format":"","indent":0,"type":"tablerow","version":1},{"children":[{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"second row title","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"tablecell","version":1,"backgroundColor":null,"colSpan":1,"headerState":0,"rowSpan":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"second cell","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"tablecell","version":1,"backgroundColor":null,"colSpan":1,"headerState":0,"rowSpan":1}],"direction":null,"format":"","indent":0,"type":"tablerow","version":1}],"direction":null,"format":"","indent":0,"type":"table","version":1},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"This is a divider below:","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"type":"horizontalrule","version":1},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"This is a collapsible title","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"collapsible-title","version":1},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"This is a collapsible content","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}],"direction":"ltr","format":"","indent":0,"type":"collapsible-content","version":1}],"direction":"ltr","format":"","indent":0,"type":"collapsible-container","version":1,"open":true},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"This is an image:","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},{"format":"","type":"snfile","version":1,"fileUuid":"1deac97b-5c48-49af-a5ba-99e77fb35704","zoomLevel":100},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}
minimoz commented 1 week ago

The only concern left I have is about images/files:

{
  "format": "",
  "type": "snfile",
  "version": 1,
  "fileUuid": "1deac97b-5c48-49af-a5ba-99e77fb35704",
  "zoomLevel": 100
}

The fileUuid is also the name of the folder that contains the encrypted file:

image

Does it mean we have to decrypt the files in each directory in the case a "Super" note has embeded files/images?

marph91 commented 1 week ago

And here is the raw text which is exported

Could you attach the complete zip file? I could include it easier in the automated tests.

Does it mean we have to decrypt the files in each directory in the case a "Super" note has embeded files/images?

I guess so, if there is no option to attach the images unencrypted. I hope for an answer at this issue. If there is no answer, we could still look at the source code. But not sure how much time it will take.

In general the decrypting functionality is available and used in the Colornote format. So integrating shouldn't be a big issue.