mirror of
https://github.com/laurent22/joplin.git
synced 2025-01-11 18:24:43 +02:00
Doc: Cleaned up GSoC projects and added spec for OCR
This commit is contained in:
parent
07b175c2ee
commit
0f88c947f1
@ -582,11 +582,12 @@ async function main() {
|
||||
[ 'readme/nextcloud_app.md', 'docs/nextcloud_app/index.html', { title: 'Joplin Web API for Nextcloud' } ],
|
||||
|
||||
[ 'readme/gsoc/index.md', 'docs/gsoc/index.html', { title: 'Google Summer of Code' } ],
|
||||
[ 'readme/gsoc/idea1_nextcloud.md', 'docs/gsoc/idea1_nextcloud.html', { title: 'GSoC: Idea 1: Nextcloud' } ],
|
||||
[ 'readme/gsoc/idea2_sharing.md', 'docs/gsoc/idea2_sharing.html', { title: 'GSoC: Idea 2: Sharing' } ],
|
||||
[ 'readme/gsoc/idea3_tagging.md', 'docs/gsoc/idea3_tagging.html', { title: 'GSoC: Idea 3: Tagging' } ],
|
||||
[ 'readme/gsoc/idea4_search.md', 'docs/gsoc/idea4_search.html', { title: 'GSoC: Idea 4: Search' } ],
|
||||
[ 'readme/gsoc/idea5_password_per_note.md', 'docs/gsoc/idea5_password_per_note.html', { title: 'GSoC: Idea 5: Password per Note' } ],
|
||||
[ 'readme/gsoc/idea1_nextcloud.md', 'docs/gsoc/idea1_nextcloud.html', { title: 'GSoC: Idea: Nextcloud' } ],
|
||||
[ 'readme/gsoc/idea2_collaboration.md', 'docs/gsoc/idea2_collaboration.html', { title: 'GSoC: Idea: Collaboration' } ],
|
||||
[ 'readme/gsoc/idea3_hierarchical_tags.md', 'docs/gsoc/idea3_hierarchical_tags.html', { title: 'GSoC: Idea: Hiearchical Tags' } ],
|
||||
[ 'readme/gsoc/idea4_search.md', 'docs/gsoc/idea4_search.html', { title: 'GSoC: Idea: Search' } ],
|
||||
[ 'readme/gsoc/idea6_mobile_sharing.md', 'docs/gsoc/idea6_mobile_sharing.html', { title: 'GSoC: Idea: Mobile Sharing' } ],
|
||||
[ 'readme/gsoc/idea_ocr.md', 'docs/gsoc/idea_ocr.html', { title: 'GSoC: Idea: OCR Support' } ],
|
||||
];
|
||||
|
||||
const path = require('path');
|
||||
|
@ -4,15 +4,20 @@
|
||||
|
||||
There is the community's wish to have the notes integrated Nextcloud, so that Notes can be sought by Nextcloud itsself. Although this idea focuses on Nextcloud it shall allow to extend it to other collaboration applications going beyond the current scope of [Synchronisation](https://joplinapp.org/#synchronisation).
|
||||
|
||||
There is already the [web application](https://github.com/foxmask/joplin-web) what may can be integrated in collaboration application
|
||||
There is already the [web application](https://github.com/foxmask/joplin-web) what may can be integrated in collaboration application.
|
||||
|
||||
### what shall be answered in the application
|
||||
There is also a [Joplin Web API for Nextcloud](https://github.com/laurent22/joplin-nextcloud/), which is currently used to share a note publicly, and which could be extended to other uses. There is a [discussion thread](https://discourse.joplinapp.org/t/joplin-api-in-nextcloud-prototype/) about it in the forum.
|
||||
|
||||
## Features
|
||||
|
||||
Feature parity with the desktop client is not needed and would be out of scope.
|
||||
|
||||
## Why shall this idea be realized
|
||||
These are the features that would be needed to create a minimal web client:
|
||||
|
||||
Allowing broader use of the application and better integration of the existing open source world, we don't want to invent the wheel twice
|
||||
- Ability to list the notebooks in a hierarchy
|
||||
- Ability to view a note and render the Markdown to HTML
|
||||
- Ability to edit the Markdown note and save it
|
||||
- Handle conflicts when, for example, a note is modified in the web client and, at the same time, it is modified via sync.
|
||||
|
||||
## Who is talking about it
|
||||
|
||||
@ -21,23 +26,4 @@ The idea is outcome of (but not limited to) of some discussion taking place in t
|
||||
- [Support Joplin structure and notebooks #248](https://github.com/nextcloud/notes/issues/248)
|
||||
- [Joplin Web](https://discourse.joplinapp.org/t/joplin-web-web-application-companion-for-joplin/555)
|
||||
- [New search engine in Joplin](https://discourse.joplinapp.org/t/new-search-engine-in-joplin/1479)
|
||||
- [How is WebDAV sync implemented?](https://discourse.joplinapp.org/t/how-is-webdav-sync-implemented/3102)
|
||||
- [Nextcloud notes integration (Web client)](https://github.com/laurent22/joplin/issues/228)
|
||||
|
||||
----
|
||||
|
||||
COMMENTS:
|
||||
|
||||
1. “Nextcloud notes integration (Web client)” is not well defined. What would be nice is a built-in Nextcloud web client for Joplin. But the top post in there is about something else that won’t be changed (explained in the FAQ: https://joplinapp.org/faq/#is-it-possible-to-use-real-file-and-folder-names-in-the-sync-target)
|
||||
|
||||
2. That would be interesting to know what they think about such an integration and how they see it because it’s an old subject, we (the staff) are periodically debating:
|
||||
|
||||
- https://github.com/laurent22/joplin/issues/228
|
||||
- https://discourse.joplinapp.org/t/nextcloud-fanboy-quest-ce-quils-veulent/844/3
|
||||
|
||||
I imagined they just need a joplin-api in PHP and “plug” it on the right datasource to switch between “Nextcloud native note/Qownote” to Nextcloud/Qownnote “Joplin note”.
|
||||
|
||||
3. “How is WebDAV sync implemented?” appears twice. It should only be in Summer of Doc.
|
||||
|
||||
|
||||
|
||||
|
19
readme/gsoc/idea2_collaboration.md
Normal file
19
readme/gsoc/idea2_collaboration.md
Normal file
@ -0,0 +1,19 @@
|
||||
# GSoC: Collaboration
|
||||
|
||||
We need a way to share notes with other users, or publicly, and to collaborate on notes with other users. This is useful for companies, to collaborate on projects for example, but also for individual users when they want to share their notes with other people.
|
||||
|
||||
The basis for this would be the [Joplin Web API for Nextcloud](https://github.com/laurent22/joplin-nextcloud/), which is currently used to share a note publicly, and which can be extended for other uses. There is a [discussion thread](https://discourse.joplinapp.org/t/joplin-api-in-nextcloud-prototype/) about it in the forum.
|
||||
|
||||
## Features
|
||||
|
||||
The features we are looking to implement are:
|
||||
|
||||
- Sharing a note publicly and allow the people you shared the link with to edit it.
|
||||
- Share a notebook publicly.
|
||||
- Share a note or notebook with the given Nextcloud user.
|
||||
|
||||
For now, we limit the scope to Nextcloud but later the Nextcloud app (which is essentially a PHP app) could be extracted and made to work with other backends.
|
||||
|
||||
## See also
|
||||
|
||||
- [Feature Request: Multiple synchronization targets #1293](https://github.com/laurent22/joplin/issues/1293)
|
@ -1,11 +0,0 @@
|
||||
# GSoC: Sharing
|
||||
|
||||
- [Feature Request: Multiple note directories #108](https://github.com/laurent22/joplin/issues/108)
|
||||
- [Feature Request: Note Sharing #1085](https://github.com/laurent22/joplin/issues/1085)
|
||||
- [Feature Request: Multiple synchronization targets #1293](https://github.com/laurent22/joplin/issues/1293)
|
||||
- [Please give the ability to share from another Android app into Joplin. #110](https://github.com/laurent22/joplin/issues/110)
|
||||
- [Mobile - Add share menu #876](https://github.com/laurent22/joplin/issues/876)
|
||||
- [Turtl’s sharing - Choose who you share with and what they can do.](https://turtlapp.com/features/)
|
||||
- [Turtl Documentation - App architecture](https://turtlapp.com/docs/architecture)
|
||||
|
||||
"Please give the ability to share from another Android app into Joplin": This is already done
|
9
readme/gsoc/idea3_hierarchical_tags.md
Normal file
9
readme/gsoc/idea3_hierarchical_tags.md
Normal file
@ -0,0 +1,9 @@
|
||||
# GSoC: Hierarchical Tags
|
||||
|
||||
One of the most asked-for feature in Joplin is support for hierarchical tags. This would allow users that heavily rely on tags to organise them into a hierarchy, as is done for the notebooks.
|
||||
|
||||
The feature would need to be implemented for the three clients (Desktop, Mobile, Terminal).
|
||||
|
||||
## See also
|
||||
|
||||
- [GitHub issue: Hierarchical tags](https://github.com/laurent22/joplin/issues/375)
|
@ -1,14 +0,0 @@
|
||||
# GSoC: Tag handling
|
||||
|
||||
- [Feature Request: Tags on whole markdown lines #1498](https://github.com/laurent22/joplin/issues/1498)
|
||||
- [Feature Request: Option to have a space for tags after the title #1399](https://github.com/laurent22/joplin/issues/1399)
|
||||
- [Feature request: set @tags from markdown editor #1407](https://github.com/laurent22/joplin/issues/1407)
|
||||
- [So many tags #1221](https://github.com/laurent22/joplin/issues/1221)
|
||||
- [Organize and share using Turtl’s Spaces.](https://turtlapp.com/features/)
|
||||
|
||||
“[Feature Request] Tags on whole markdown lines #1498”: I prefer we remove this as this too far from standard markdown.
|
||||
|
||||
“Feature request: set @tags from markdown editor #1407”. I prefer if we remove this too for the same reason. I think tagging is already easy since there’s a keyboard shortcut for it. Maybe back then there wasn’t.
|
||||
|
||||
“So many tags #1221”: Was a bug, which has been fixed.
|
||||
|
@ -1,3 +1,17 @@
|
||||
# GSoC: Search engine improvements
|
||||
|
||||
The current search engine is built on top of SQLite FTS. An index of the notes is built and this is what is used by FTS when searching.
|
||||
|
||||
While it works relatively well, there is still room for improvement. In particular we would like to implement the following:
|
||||
|
||||
- Remove the need for wildcard queries - for example instead of typing "search*", it will be possible to simply type "search" and results that contain "search" or "searching" will be included. Those that contain the exact match will come first.
|
||||
|
||||
- Search within certain tags (eg. "tag:software search" to search within the notes tagged with "software" and that contain the word "search").
|
||||
|
||||
- Improve relevance algorithm (give a weight to certain criteria, and allow adding new criteria more easily). In particular give more weight to recently modified notes, and less weight to completed to-dos.
|
||||
|
||||
- Allow fuzzy search (for example return results that contain "saerch" for the query "search")
|
||||
|
||||
## See also
|
||||
|
||||
[Search engine improvements](https://github.com/laurent22/joplin/issues/1877)
|
||||
|
@ -1,8 +1,23 @@
|
||||
# GSoC: Additinal protection per note
|
||||
|
||||
- [Feature request: Password or pin protection](https://github.com/laurent22/joplin/issues/289)
|
||||
- [Suggestion: Add instructions to generate app-specific password enhancement](https://github.com/laurent22/joplin/issues/419)
|
||||
- [Turtl Documentation - Security and encryption](https://turtlapp.com/docs/security)
|
||||
**DRAFT**
|
||||
|
||||
Joplin supports E2EE, which means the content is encrypted on the sync target. Locally the content curently is not encrypted.
|
||||
|
||||
[Password or pin protection](https://github.com/laurent22/joplin/issues/289): It’s very unclear what people want. It seems the threat model is you give your unlocked phone or laptop to someone, and you don’t want them to see your notes. But of course, the solution is to not do that. All devices these days support multiple accounts, so there’s no point giving their unlocked device to someone they don’t trust. I think we should remove this issue until it’s betted defined. Perhaps it should go to a different category like, “to be specified”. We need to know what’s the threat model, what people want. I’ve heard dozens of variations (locking the app, obfuscating the data, encrypting the data, encrypting a note, a notebook, encrypting a part of a note, etc.) so it’s unclear what needs to be done. I guess for me it seems so unnecessary that I can’t quite wrap my head around it.
|
||||
We should add a new option to allow encrypting selected text within a note. It would work like so:
|
||||
|
||||
**Encrypting note content**
|
||||
|
||||
- Select some text in the editor
|
||||
- Select menu Edit => Encrypt
|
||||
- The selected text is replaced by encrypted content
|
||||
|
||||
**Decrypting note content**
|
||||
|
||||
- Place the cursor anywhere within the encrypted content.
|
||||
- Select menu Edit => Decrypt
|
||||
- The encrypted text is replaced by the plain text.
|
||||
|
||||
## Problem
|
||||
|
||||
If a user tries this on a resource, the resource should be encrypted too. But what if it is linked from another note? Perhaps this should only be implemented once the one-to-one relationship between notes and resources is enforced.
|
14
readme/gsoc/idea6_mobile_sharing.md
Normal file
14
readme/gsoc/idea6_mobile_sharing.md
Normal file
@ -0,0 +1,14 @@
|
||||
# GSoC: Sharing on Mobile
|
||||
|
||||
The mobile application allows sharing text from any application to Joplin. However it is not currently possible to share images or to share selected text with Joplin.
|
||||
|
||||
## Features
|
||||
|
||||
- Allow sharing an image or file from any application to Joplin
|
||||
- Allow selecting some text in an application (in a browser for instance) and share it with Joplin
|
||||
|
||||
## See also
|
||||
|
||||
- [Mobile - Add share menu #876](https://github.com/laurent22/joplin/issues/876)
|
||||
- [Turtl’s sharing - Choose who you share with and what they can do.](https://turtlapp.com/features/)
|
||||
- [Turtl Documentation - App architecture](https://turtlapp.com/docs/architecture)
|
71
readme/gsoc/idea_ocr.md
Normal file
71
readme/gsoc/idea_ocr.md
Normal file
@ -0,0 +1,71 @@
|
||||
# GSoC: OCR
|
||||
|
||||
It seems possible to add support for OCR content in Joplin via the [http://tesseract.projectnaptha.com/](Tesseract library).
|
||||
|
||||
A first step would be to assess the feasability of this project by integrating the lib in the desktop app and trying to OCR an image.
|
||||
|
||||
- Is the image correctly OCRed?
|
||||
- Does it work with non-English text?
|
||||
- How slow/fast is it? Test with a very large image to be sure. It should not freeze the app while processing an image.
|
||||
|
||||
If everything works well, we can add the feature to the app.
|
||||
|
||||
## Specification
|
||||
|
||||
- On desktop app: Create service that runs in the background and process the resources that need to be OCRed.
|
||||
- When a document is OCRed: Append block to end of note that contains the extracted plain text
|
||||
- When attaching resource, ask what user wants to do:
|
||||
- Always OCR all files
|
||||
- Never OCR any file
|
||||
- Always OCR files with extension ".ext"
|
||||
- Never OCR files with extension ".ext"
|
||||
- Can be changed in settings
|
||||
- Right-click resource, or note, to OCR content
|
||||
- Add resource ocr_status on resource table: Can be: none, todo, processing, done
|
||||
- Add ocr_text to resource: must include detailed coordinates, and a way to get plain text back
|
||||
|
||||
**Advantage of it doing that way:**
|
||||
|
||||
- Search engine just works - no need for special indexing of OCR content since it is inside the note directly
|
||||
- Will work with all clients (mobile, desktop, terminal)
|
||||
- When a note is exported to Markdown, it will include the OCR content
|
||||
|
||||
**Format of OCR text block**
|
||||
|
||||
```
|
||||
<!-- autogen-ocr :resource.id -->
|
||||
* * *
|
||||
|
||||
**:resource.title**
|
||||
|
||||
:resource.ocr_text
|
||||
<!-- autogen-ocr :resourceId -->
|
||||
```
|
||||
|
||||
For example, for a resource called "TrainTicket.png":
|
||||
|
||||
```
|
||||
<!-- autogen-ocr 2ee4eec909734f7197654a9a040dfba7 -->
|
||||
* * *
|
||||
|
||||
**TrainTicket.png**
|
||||
|
||||
From: London
|
||||
To: Paris
|
||||
Date: 01/12/2019
|
||||
Time: 15:00
|
||||
...etc.
|
||||
<!-- autogen-ocr :resourceId -->
|
||||
```
|
||||
|
||||
The advantage of this format is that it will render nicely in the viewer, and it will still be clearly identified as OCR content, which means later we can identify these blocks, update them, remove them, etc.
|
||||
|
||||
**Later**
|
||||
|
||||
- Support PDF files - for example by converting each page to an image first, then passing it to Tesseract.
|
||||
- Make ocr_text searchable
|
||||
- Display search results directly on document. i.e. if it's an image, highlight the parts of the image that contain the search text.
|
||||
|
||||
## See also
|
||||
|
||||
- GitHub issue: https://github.com/laurent22/joplin/issues/807
|
@ -153,7 +153,7 @@ Finally, know that we will never assign you to a project you do not want to work
|
||||
## Ideas
|
||||
|
||||
- [Idea: Nextcloud](https://joplinapp.org/gsoc/idea1_nextcloud.html)
|
||||
- [Idea: Sharing](https://joplinapp.org/gsoc/idea2_sharing.html)
|
||||
- [Idea: Tagging](https://joplinapp.org/gsoc/idea3_tagging.html)
|
||||
- [Idea: Collaboration](https://joplinapp.org/gsoc/idea2_collaboration.html)
|
||||
- [Idea: Hierarchical Tags](https://joplinapp.org/gsoc/idea3_hierarchical_tags.html)
|
||||
- [Idea: Search](https://joplinapp.org/gsoc/idea4_search.html)
|
||||
- [Idea: Password per note](https://joplinapp.org/gsoc/idea5_password_per_note.html)
|
||||
- [Idea: Mobile Sharing](https://joplinapp.org/gsoc/idea6_mobile_sharing.html)
|
||||
|
Loading…
Reference in New Issue
Block a user