Goals Achieved
Added the feature to save the last change on the screen (main screen) when the plugin is closed.
Created email parser class and added the unit test for the email parser class.
I installed turndown and added 'joplin/turndown-plugin-gfm ' plugin (convert HTML --> Markdown)
I extracted plain text with links from the HTML message.
Created the class responsible for posting notes to Joplin.
Next week
Add inline attachments to note.
Start by adding a feature that converts offline email messages into notes.
Make changes according to the feedback on my PR.
Demo
This demo shows the different export types of a note (HTML , Markdown , Text ).
4 Likes
bishoy:
Make changes according to the feedback on my PR.
can you mention them in your next report (and please continue using the link to the PR)?
could you setup some linter on your repo as indentation is inconsistent?
I think this is where having type annotations could help
I would like to see how it improved your PR. These kind of things happens quite often, so would be nice to have good before/after example.
bishoy:
Added the feature to save the last change on the screen (main screen) when the plugin is closed.
is that due https://github.com/joplin/plugin-email/pull/4#issuecomment-1194563680 ?
Sure
Before: the red lines
After: the Green Lines
changes
PackElend:
I think this is where having type annotations could help
changes
Not exactly,Although this problem that mentioned in this comment, I tested it on Linux and Windows and it works fine.but I will discuss this problem when I create a PR.
that is too much at once, it is about giving examples for lessons learned pure code is not helpful
Okay, let's clarify more.
PackElend:
could you setup some linter on your repo as indentation is inconsistent?
linter helps the code be more readable, diagnose and fix technical issues, ...
Before :
import { Login } from "../model/message.model"
joplin.plugins.register({
[space]onStart: async function () {
console.info('Email Plugin Started!');
await app.init();
},
});
After :
import {Login} from '../model/message.model';
joplin.plugins.register({
[tab]onStart: async function() {
console.info('Email Plugin Started!');
await app.init();
},
});
PackElend:
I think this is where having type annotations could help
I used an annotated type void in the promise to annotate that the promise doesn't return any value when resolved.
Before:
return new Promise((resolve, reject) => {
After:
return new Promise<void>((resolve, reject) => {
1 Like