Commit Graph

180 Commits

Author SHA1 Message Date
Gabriel Horner
85bd1fecb2 Move first batch of util fns to graph-parser.util
Still need to fix external.roam
2022-05-04 12:02:36 -04:00
Tienson Qin
904eff6d9d Core outliner operations refactoring (#4880)
* Add outliner nested transact!

Copied the code mostly from https://github.com/logseq/logseq/pull/4671
by zhiyuan

* refactor: insert-blocks

* fix: insert-blocks

* fix: move cursor to the last block when inserting

* fix: replace the current block when inserting and its content is empty

* keep only :insert-blocks

* expose only :delete-blocks

* Use existing implementations for move-nodes-up-down and

indent/outdent.

* fix editing state not updated immediately

* fix editing status

* fix: avoid recursive copy

* fix: inserting blocks after an empty block

* Implement move-blocks with insert-blocks

* fix: block left

* Implement move-blocks-up-down with move-blocks

* fix: paste text

* Implement indent-outdent-blocks with move-blocks

* fix: indent/outdent

* feat: multiple blocks drag && drop

* fix: indent/outdent blocks

* fix: drag drop

* Port unit tests for outliner.core

* enhance: open collapsed parent when indenting blocks

* refactor: block selection

* fix: indent/outdent blocks with different levels

* Add instrument on invalid outliner structure

* fix: can't write a block if the page has any outdated blocks

* fix: editing status for empty page

* fix: multiple drag & drop

* fix: drag & drop disallows moving from parents to its child

* fix: public property

* fix: can't delete first empty block

* Remove unused code

* fix: e2e tests

A workaround is to not select/highlight the block when pressing esc if it has
fenced code.

* remove unused code

* Add batch transaction test

* fix: update :block/page when dragging targets' children to another page

* Add more tests

* Simplify extract

* Replace db/get-conn with db/get-db

* Simplify extracting blocks from ast

* Code cleanup

* Code cleanup

* Add outliner core fuzzy tests

* Remove unused code

* fix: cursor not jump to the upper block when pressing Enter in the beginning

* fix: Enter in the beginning of a non-empty block

* Fix lint warnings

* Add editor random e2e tests

* Fix typo

* enhance: move some fns and add some comments

* enhance(outliner): add page-block? util

* fix: increase td width to prevent content overflow

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* First pass at file tests for file-sync

Each action usually passes by 5th try

* Fix two incorrect calls caught by tests

* More test improvements

- Easier auth setup
- subdirectory is configurable
- list graphs api also exercised

* Address cleanup from #3839

- Remove unused translation key
- Delete or TODO commented code
- Capitalize notifications to users

* fix quick capture template not working

* enhance(sync): add logout

* enhance: add logout i18n

* fix(plugin): sometimes plugin settings of gui not work when entry from app settings

* enable show-brackets? toggle for orgmode [[file:./pages/demo.org][demo]]

* fix(sync): fix unfinishable sync loop

* feature: logseq protocol; refactor persistGraph

* fix: deeplink support

* fix: broadcast persist graph on opening new graph with logseq protocol

* feat: logseq protocol open action for page-name and uuid

* fix: logseq protocol graph param validation

* ux: copy logseq URL of block

* enhance: remove the redundant 'open' from logseq protocol (v0.1)

* ux: page dropdown button for copy page URL

* chore: logseq protocol comments

* don't create new contents file when changing format

Logseq now creates a new contents file when users try to toggle the
preferred format, which causes file duplications error.

* fix pasting in src block not working on iOS

close https://github.com/logseq/logseq/issues/4914

* fix playing video goes into editing mode on iOS

* fix copy to clipboard failure on iOS

* add Podfile item

* fix mobile toolbar order not persisting after restart

* test(e2e): add test for backspace and cursor pos (#4896)

* test(e2e): add test for backspace and cursor pos
* fix(test): refine, fix wrong helper

* fix(ui): warn about illegal git commit interval

* enhance(editor): allow global git cmd shortcut

* style(settings): line-space of general/journals

* enhance(editor): accept enter in dummy block

Fix #4931

* fix editing state not updated immediately

* fix: can't write a block if the page has any outdated blocks

TODO: clean outdated blocks

* fix: editing status for empty page

* Random tree for outliner core tests

* Add pre assertions and fn docs based on Zhiyuan's suggestions

* Made some changes based on Gabriel's suggestions

* fix: tests

* fix: save current block before moving

* Updated the timeout to 100ms based on llcc's suggestion

https://github.com/logseq/logseq/pull/4880#discussion_r851966301

* api-insert-new-block! supports replace-empty-target?

* fix: replace all :reuse-last-block? usage

Co-authored-by: rcmerci <rcmerci@gmail.com>
Co-authored-by: Yue Yang <g1enyy0ung@gmail.com>
Co-authored-by: Gabriel Horner <gabriel@logseq.com>
Co-authored-by: llcc <lzhes43@gmail.com>
Co-authored-by: charlie <xyhp915@qq.com>
Co-authored-by: Junyi Du <junyidu.cn@gmail.com>
Co-authored-by: Andelf <andelf@gmail.com>
2022-04-19 11:14:38 +08:00
Tienson Qin
544f0aed81 fix tests 2022-04-02 21:40:28 +08:00
Tienson Qin
90ef7036ba fix: order is lost when there are more than 8 property:: in a block
related to #3923
2022-03-08 17:12:48 +08:00
llcc
c32fba0ab1 fix: remove assets/draws from All Pages 2022-03-08 14:18:01 +08:00
llcc
f02c21c95b fix: link property causes wrong pages creation 2022-03-08 14:16:28 +08:00
Andelf
2e46a6bcb7 Revert "fix: List properties out of order when contain more than 8 elements"
This reverts commit 6a8ab41d39.
2022-03-07 21:38:50 +08:00
llcc
6a8ab41d39 fix: List properties out of order when contain more than 8 elements 2022-03-07 15:43:12 +08:00
Junyi Du
bee0018a29 fix: insert timestamps on creating page entity by default 2022-03-04 17:13:33 +08:00
Junyi Du
05f6249f28 enhance: add timestamps for pages created from references and timestamps 2022-03-04 17:13:33 +08:00
Tienson Qin
c678fa15e6 fix: can't parse graphs because of links regular expressions
close #4308
2022-02-24 16:35:26 +08:00
Tienson Qin
3ec138ebf2 chore: disable parse_outline_only? temporarily 2022-02-20 01:41:09 +08:00
Tienson Qin
e1064d21d3 fix: page/block refs not working
close #4289
2022-02-19 13:29:34 +08:00
Gabriel Horner
c6d03b67ab Merge branch 'master' into dev/var-sizes-linter 2022-02-08 12:02:39 -05:00
Tienson Qin
1870f44f9a fix lint warnings 2022-02-08 15:50:54 +08:00
Tienson Qin
faea913a40 enhance: cut memory usage 2022-02-08 15:49:09 +08:00
Gabriel Horner
e81678fc69 Mark most vars as cleanup-todo
Fixed a few that I knew how to QA and were low risk
2022-02-04 16:57:49 -05:00
Gabriel Horner
b3ee61b1ca Remove more unused fns 2022-01-27 14:11:59 -05:00
Tienson Qin
6aba8c3241 Improve long page editing performance (#3855)
* Remove expensive parsing when saving files

* Add limit to page blocks query

* Don't collapse block's body to make it compatible with other tools

* Alert if there're unsaved changes when switching graphs

* DB schema migration for :block/collapsed? from it's property

Co-authored-by: Andelf <andelf@gmail.com>
2022-01-18 10:37:31 +08:00
Tienson Qin
21f2237227 fix: lint errors 2022-01-16 13:06:54 +08:00
Tienson Qin
2401ce9e9a fix: property regression : # should be a delimiter
Close #3916

Tests added.
2022-01-16 12:39:41 +08:00
Tienson Qin
b26d4c3fc2 fix: page references in pre-block doesn't work 2022-01-13 22:46:41 +08:00
Gabriel Horner
7497d8b396 Lint a good chunk of src/main/frontend
Left some TODOs to discuss with others and others for me to finish
2022-01-11 17:34:54 -05:00
Junyi Du
7505b0dde6 fix: introduce more page-name sanity 2022-01-10 13:29:40 +08:00
Tienson Qin
704bcda9ad fix: Child namespace pages do not show up in hierarchy view if parent
page does not exist

Addresses #3641
2022-01-05 00:41:49 +08:00
Tienson Qin
0770893217 fix: normalize page names after parsing files 2022-01-04 21:37:44 +08:00
Tienson Qin
419f499c34 fix: links to empty pages in import result in lower-cases pages with no backlinks
Addresses #3718, #3724
2022-01-04 20:16:58 +08:00
Tienson Qin
329e7f2528 fix: use property/properties-ast? instead 2021-12-16 19:27:59 +08:00
Andelf
acabab5ba7 fix(editor): do not remove properties before parse 2021-12-16 19:23:10 +08:00
Tienson Qin
566ba16965 enhance: add blocks ast cache 2021-12-13 12:26:51 +08:00
Tienson Qin
c722f6ec83 fix: ignore properties when displaying block's body 2021-12-12 16:06:32 +08:00
Tienson Qin
d3fa2196b0 fix: Horizontal line not created with ---
close #3416
2021-12-11 14:09:17 +08:00
Tienson Qin
ae89f9970b fix: hide empty blocks 2021-12-11 13:27:28 +08:00
Tienson Qin
eb24a534ec fix: check content 2021-12-11 13:20:33 +08:00
Tienson Qin
7822848af8 chore: remove :block/title, :block/body and :block/unordered
For two reasons:

1. Reducing memory usage, both block/title and block/body are AST parsed
by Mldoc. After removing, logseq is able to handle 10k notes.

2. Simplify the db schema
2021-12-08 10:46:45 +08:00
Junyi Du
240b9a4584 fix: All Pages view lists all of the images 2021-11-24 11:37:08 +08:00
Tienson Qin
03cfc60a7e fix: Can't rename pages with nested titles
close #3245
2021-11-24 10:35:36 +08:00
Tienson Qin
9315b3bab4 fix: don't create empty pages for alias and tags page properties 2021-11-22 20:18:48 +08:00
leizhe
4779a5c98b Fix: create wrong pages if nested_link exist in graph
Let's say, if `[[[[A/B]] is page]] got referenced` exists as a link in
the graph, a `[[A` will be created. This PR fixes this issue.
2021-11-22 13:59:39 +08:00
Junyi Du
daae4932ad Some fix according to lint 2021-11-18 21:13:35 +08:00
Tienson Qin
ad7de321e0 enhance: display a warning if a block's content include multiple lists
or headings.
2021-11-17 21:07:32 +08:00
leizhe
538b0d8ad6 refactor: remove unnecessary codes 2021-11-10 11:52:48 +08:00
leizhe
9c33cf4b6b fix https://github.com/logseq/logseq/issues/2866 2021-10-20 16:34:49 +08:00
Tienson Qin
63b672dcf8 refactor: remove :block/file from non-page blocks 2021-10-11 12:14:41 +08:00
Tienson Qin
38d81b4ed0 fix: Two of the same query with mixed syntax causes hanging
close #2857
2021-09-26 11:39:10 +08:00
Tienson Qin
821ffecaf3 enhance: remove block/anchor 2021-09-26 10:22:23 +08:00
leizhe
f9a6b24c87 fix: only remove break_line in paragraph 2021-09-23 19:24:13 +08:00
leizhe
99295ed26a fix: non-paragraph elements not showing up 2021-09-23 19:24:13 +08:00
leizhe
0774e2b74a Fix: extra empty line if SCHEDULED and DEADLINE exist
Fix https://github.com/logseq/logseq/issues/2506
This issue was also mentioned in
https://discuss.logseq.com/t/formatting-of-scheduled-items/1756/2

This PR offers an in-elegant way to remove the break_line element
following a timestamp element. I suppose this should be resolved in the
mldoc side. Anyway, this PR can be treated as a solution.
2021-09-23 19:24:13 +08:00
Tienson Qin
98cb06b86e fix: Tag with brackets but without spaces creates an extra page
close #2742
2021-08-31 21:28:38 +08:00