Giter VIP home page Giter VIP logo

noticeditor's Introduction

NoticEditor

A hierarchical note editor with markdown support.

Features

  • Hierarchical structure of notes
  • Markdown support
  • Syntax highlighting
  • Light and Dark themes
  • Attachments
  • Json / Zip / Password protected Zip formats
  • Export to HTML
  • Import notes/attachments from Web
  • Attachments importer plugin support

Build

Gradle-based (Cross-platform)

  1. git clone https://github.com/NoticEditorTeam/NoticEditor.git
  2. gradlew jar — this will put jar into ./build/libs/.
  3. gradlew run — this will run the app w/o building a jar.
  4. To build platform specific jar, set os.name system property: gradlew jar -Dos.name=linux. Available options: 'windows', 'linux', 'osx'

Makefile (Unix)

$ git clone https://github.com/NoticEditorTeam/NoticEditor.git
$ make

License

Apache 2.0 - see Apache 2.0 license information

noticeditor's People

Contributors

annimon avatar mreditor avatar naiksoftware avatar noxchimaera avatar setser avatar white-oak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

noticeditor's Issues

Примеры файлов

Создайте примеры файлов где-нибудь в папке /examples, чтобы можно было посмотреть, как оно всё работает-то

Инсталлятор

С переездом на JDK 11 уже нет возможности собрать jar со всеми зависимостями, поэтому нужно поискать другой способ поставки, как один из вариантов -- скрипты установки. Эти же скрипты позволят избавиться от бинарей в репозитории.

Дерево заметок

В TreeView поставить setShowRoot(false), чтобы убрать видимость корневого элемента.

Контекстное меню добавления ветки/заметки, соответственно пусть будет на всём TreeView

И, наконец, убрать привязку с корневого элемента, а то по нему и имя zip-архива ставится и много чего ещё.

Настройки

Нужна возможность кастомизации редактора

Диалог открытия/сохранения файлов

Немного сбивает с толку при открытии/сохранении файлов выставленный фильтр .txt..pdf и т.д.

Допустим, я хочу открыть файл, а в диалоге видны по умолчанию только txt, приходится всегда переключаться на все файлы.

Поэтому предлагаю при открытии файлов выставлять ExtensionFilter в *.txt, *.html, *.json и отдельно All files.
Сохранение в zip сделать нормально с вводом имени архива (чтоб не бралось имя из корневого элемента, а то я его планирую убрать), при этом ExtensionFilter будет *.zip
Там, где нужно выбрать папку, показывать диалог выбора папок. И так далее для всего остального.

Документирование

Прошел день, тут накоммитили много всего. Появились новые классы. Если у @aNNiMON в сохранялке более менее все ясно, то зачем нужны. NoticeTree, если для дерева достаточно двух элементов - root, current. NoticeTree наверное имеет право на жизнь, но оно не интегрировано в программу. Ноды удаляются и добавляются без участия NoticeTree, он просто прилеплен..
NoticeTreeView вообще не используется.

Просьба писать в доках или хотябы в пул реквестах что оно и зачем, чтоб не рыть весь код в поисках использования. Возможно вы планируете как то использовать эти классы в будущем?

Баг с добавлением заметки

Когда в корне только одни ветки, то невозможно в корне создать заметку. Фокус всегда на одной из веток. Можно решить с пом. drag&drop

Структура проекта непонятная

Если EditNoticeTreeCell - это виджет в дереве, который создается системой, а NoticeTreeItem - это данные для элемента в дереве, в доках об этом написано, тогда почему NoticeTreeItem в пакете view, если это model? И NoticeCategory лишний, его функции должен выполнять NoticeTreeitem

Drag'n'Drop

Пора реализовать Drag'n'Drop в приложении

Поддержка вложений

Реквестирую очень нужную фичу - поддержка вложений. Сохранять можно в base64, так что особых проблем возникнуть не должно.

Instant search

Hi guys, @xamgore told me you want to make something that would really fit my needs. So I want to request an instant search through my notes. Not only titles, but also the content. Thank you.

Синхронизация

Хотелось бы уметь синхронизировать заметки между различными устройствами. Реализовать это можно разными способами:

  1. Интегрироваться с Dropbox/Telegram/Syncthing, а ещё лучше вытащить наружу какое-то API для того, чтобы можно было добавлять новые способы синхронизации. Такой вариант удобно реализовывается на мобильных платформах, но непонятно, как он должен выглядеть на нативной версии.
  2. Навелосипедить свой сервер для синхронизации заметок.
  3. Реализовать p2p-синхронизацию аля Syncthing.

Как по мне, первый вариант выглядит наиболее удачным, и в общем-то покрывает варианты 2 и 3.

Hotkeys

There will be an implementation of base hotkeys, as Ctrl-S, Ctrl-N, Ctrl-O

Improving User Interface

I suggest to discuss improving user interface
My version is:

image

  • left empty space is structure tree.

Add-button also has options (main label should be "add notice"):

image

"Search" button showing corresponding tool as popup window.
"Important" can be ChoiceBox or SplitMenuBox, which can fast-switch between "Normal status" and "Important" while full list can also has additional statuses.

  • middle empty space going to editing notice, adding files and perhaps, importing/exporting this particular notice;
  • right empty space is preview.

Since panels are resizeable, it will be nice to add fast hiding to "View" menu:

image

and some "Orientation" tool for changing orientation of editor and preview panels, likely with possibility to swap them.

What do you think?

BTW we can also move different elements to different views, like that:

  • Main
    • Tree
    • View
      • Editor
      • Attached
      • Import&Export

Перенести файлы локализации

Сейчас файлы *.properties лежат в com/temporaryteam/noticeditor/translate, нужно перенести их в корневую папку i18n.

Вообще, во многих проектах вижу такую структуру:

com/.../
font/
fxml/
i18n/
images/
styles/

Предлагаю и нам так организовать.

Ненаходимое контекстное меню

Я когда только скачал, не мог никак понять как добавить новую заметку в дерево. Нужно как то показывать что оно существует.

Также метод его обработки handleContextMenu в классе редактирования лишний как по мне. Его нужно запихнуть в какой-то контроллер что-ли..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.