├── .github
├── FUNDING.yml
├── dependabot.yml
├── release.yml
└── workflows
│ └── publish.yml
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.ja.md
├── README.md
├── icon.svg
├── index.html
├── package.json
├── pnpm-lock.yaml
├── release.config.js
├── src
├── index.ts
├── lib.ts
├── main.css
├── notSide.css
├── rightSidebar.css
├── settings.ts
├── side.css
└── translations
│ └── ja.json
├── tsconfig.json
└── vite.config.ts
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [YU000jp]
2 | buy_me_a_coffee: yu000japan
3 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: "" # See documentation for possible values
9 | directory: "/" # Location of package manifests
10 | schedule:
11 | interval: "weekly"
12 |
13 |
--------------------------------------------------------------------------------
/.github/release.yml:
--------------------------------------------------------------------------------
1 | # Add .github/release.yml to integrate with GitHub Releases
2 | $ github-label-setup --addReleaseYml
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Release
2 | env:
3 | PLUGIN_NAME: ${{ github.event.repository.name }}
4 | on:
5 | # Allows you to run this workflow manually from the Actions tab
6 | workflow_dispatch:
7 | jobs:
8 | release:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout
12 | uses: actions/checkout@v3
13 | with:
14 | fetch-depth: 0
15 |
16 | - name: Setup Node.js environment
17 | uses: actions/setup-node@v3.6.0
18 | with:
19 | node-version: latest
20 |
21 | - name: Setup pnpm
22 | uses: pnpm/action-setup@v4.0.0
23 | with:
24 | version: latest
25 |
26 | - name: Install dependencies
27 | run: pnpm install
28 |
29 | - name: Build dist
30 | run: pnpm prod
31 |
32 | - name: Install zip
33 | uses: montudor/action-zip@v1
34 |
35 | - name: Release
36 | env:
37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38 | run: npx semantic-release
39 |
40 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | dist
4 | *.sublime-*
5 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## [2.12.1](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.12.0...v2.12.1) (2025-01-12)
2 |
3 |
4 | ### Bug Fixes
5 |
6 | * **bug:** for "SCHEDULED AND DEADLINE" ([3bfa247](https://github.com/YU000jp/Logseq-column-Layout/commit/3bfa247eb70103aa6d069192e4bda31cbfe36f7b))
7 | * **refactor:** CSS ([7cd16a9](https://github.com/YU000jp/Logseq-column-Layout/commit/7cd16a949cab499cf60be3b0025511c6bfdc69f2))
8 |
9 | # [2.12.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.11.1...v2.12.0) (2024-06-16)
10 |
11 |
12 | ### Bug Fixes
13 |
14 | * **bug:** No background color applied ([6922d19](https://github.com/YU000jp/Logseq-column-Layout/commit/6922d199dc8428176bdeb30838692c688b691e8f))
15 |
16 |
17 | ### Features
18 |
19 | * **Add:** Separate each journal on Journals ([b3dae54](https://github.com/YU000jp/Logseq-column-Layout/commit/b3dae540008d156e60c18a939da30ec0b84c27af))
20 |
21 | ## [2.11.1](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.11.0...v2.11.1) (2024-03-16)
22 |
23 |
24 | ### Bug Fixes
25 |
26 | * **bug:** boxes overlap ([76b0f17](https://github.com/YU000jp/Logseq-column-Layout/commit/76b0f1782616f90f725b718c0dae385336147da7))
27 |
28 |
29 | ### Performance Improvements
30 |
31 | * remove check Logseq version [#25](https://github.com/YU000jp/Logseq-column-Layout/issues/25) ([410cc49](https://github.com/YU000jp/Logseq-column-Layout/commit/410cc49501c3c1ef9f65c0ae18b16f0ed21769c9))
32 |
33 | # [2.11.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.10.2...v2.11.0) (2023-11-14)
34 |
35 |
36 | ### Features
37 |
38 | * **Remove:** Image Resizer ([d55c9f5](https://github.com/YU000jp/Logseq-column-Layout/commit/d55c9f5c33a344f11cd93a46c0a0f43693458008))
39 |
40 | # [2.11.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.10.2...v2.11.0) (2023-11-14)
41 |
42 |
43 | ### Features
44 |
45 | * **Remove:** Image Resizer ([d55c9f5](https://github.com/YU000jp/Logseq-column-Layout/commit/d55c9f5c33a344f11cd93a46c0a0f43693458008))
46 |
47 | ## [2.10.2](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.10.1...v2.10.2) (2023-11-04)
48 |
49 |
50 | ### Bug Fixes
51 |
52 | * **bug:** CSS ([618f41f](https://github.com/YU000jp/Logseq-column-Layout/commit/618f41f1d7a0d9e1c652403f599c820b92015e05))
53 |
54 | ## [2.10.1](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.10.0...v2.10.1) (2023-10-28)
55 |
56 |
57 | ### Bug Fixes
58 |
59 | * **bug:** refactor ([38b4f83](https://github.com/YU000jp/Logseq-column-Layout/commit/38b4f834a5791966486e7112dbde72eeba747014))
60 |
61 | # [2.10.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.9.0...v2.10.0) (2023-10-19)
62 |
63 |
64 | ### Features
65 |
66 | * **doc:** plugin settings ([1afc238](https://github.com/YU000jp/Logseq-column-Layout/commit/1afc238bf61f7aa775cbe46dbd94322a934a5b8b))
67 |
68 | # [2.9.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.8.0...v2.9.0) (2023-09-30)
69 |
70 |
71 | ### Features
72 |
73 | * **translation:** ja ([089e143](https://github.com/YU000jp/Logseq-column-Layout/commit/089e14394778322b1fcd04296a375ff40c847afc))
74 |
75 | # [2.8.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.7.0...v2.8.0) (2023-08-21)
76 |
77 |
78 | ### Features
79 |
80 | * **redesign:** Linked References and Journal queries ([70d7eba](https://github.com/YU000jp/Logseq-column-Layout/commit/70d7eba7d01704a0d281ae0860c7eba454dcb693))
81 |
82 | # [2.7.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.6.4...v2.7.0) (2023-08-18)
83 |
84 |
85 | ### Features
86 |
87 | * **right Sidebar:** Support with Logseq v0.9.14 ([b8571f5](https://github.com/YU000jp/Logseq-column-Layout/commit/b8571f55fce6c6fdfc2ebbcd8d05a1135ec4c29d))
88 |
89 | ## [2.6.4](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.6.3...v2.6.4) (2023-08-17)
90 |
91 |
92 | ### Bug Fixes
93 |
94 | * **Original Sidebar:** Show message for not work and not support on Logseq v0.9.14 ([9663022](https://github.com/YU000jp/Logseq-column-Layout/commit/9663022fc52dcaf6e7f5a50b3097d213796bd042))
95 | * **right sidebar:** gap ([9077d5e](https://github.com/YU000jp/Logseq-column-Layout/commit/9077d5e30e96aa8709252cf93537026646df9463))
96 |
97 | ## [2.6.3](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.6.2...v2.6.3) (2023-08-13)
98 |
99 |
100 | ### Bug Fixes
101 |
102 | * **bug:** right sidebar (Logseq nightly) ([7a8ac4e](https://github.com/YU000jp/Logseq-column-Layout/commit/7a8ac4ed011983657f3558aa994a0b87893048f5))
103 |
104 | ## [2.6.2](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.6.1...v2.6.2) (2023-08-13)
105 |
106 |
107 | ### Bug Fixes
108 |
109 | * **bug:** Logseq nightly version break ([d363985](https://github.com/YU000jp/Logseq-column-Layout/commit/d363985a9b05f80b91ddfe0a1991b613e8f48628))
110 |
111 | ## [2.6.1](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.6.0...v2.6.1) (2023-08-12)
112 |
113 |
114 | ### Bug Fixes
115 |
116 | * **bug:** right sidebar, when item resize max size (For page graph) ([4ddb666](https://github.com/YU000jp/Logseq-column-Layout/commit/4ddb66605ea3c12d09aeed4d3c5f59439016e931))
117 |
118 | # [2.6.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.5.0...v2.6.0) (2023-08-11)
119 |
120 |
121 | ### Features
122 |
123 | * **Image-scale:** object-fit: scale-down (CSS) ([3317801](https://github.com/YU000jp/Logseq-column-Layout/commit/3317801201102ba143bff2d97b35d1f663429ea4))
124 |
125 | # [2.5.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.4.0...v2.5.0) (2023-08-10)
126 |
127 |
128 | ### Features
129 |
130 | * **perf:** refactor original right sidebar feature with CSS3 nesting ([e7af1e3](https://github.com/YU000jp/Logseq-column-Layout/commit/e7af1e354820e816e173c08a5ddb4803d3aaec00))
131 |
132 | # [2.4.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.3.1...v2.4.0) (2023-08-10)
133 |
134 |
135 | ### Features
136 |
137 | * **perf:** refactor with CSS3 nesting (Logseq ver0.9.11 check version) ([a570618](https://github.com/YU000jp/Logseq-column-Layout/commit/a570618075dd705270a5bdd54140d4c542ba2f2e))
138 |
139 | ## [2.3.1](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.3.0...v2.3.1) (2023-08-09)
140 |
141 |
142 | ### Bug Fixes
143 |
144 | * **design:** Linked References font-size down & clean space ([05c32d4](https://github.com/YU000jp/Logseq-column-Layout/commit/05c32d4d1266c9be0987d2f6ed4a5f427cd5a863))
145 |
146 | # [2.3.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.2.5...v2.3.0) (2023-08-09)
147 |
148 |
149 | ### Bug Fixes
150 |
151 | * **Clean up:** CSS ([d4fedb4](https://github.com/YU000jp/Logseq-column-Layout/commit/d4fedb452172a0815bf7deb6f86adc2807a5fc1b))
152 |
153 |
154 | ### Features
155 |
156 | * **plugin settings:** Add range bar (for image max size ([88ca146](https://github.com/YU000jp/Logseq-column-Layout/commit/88ca1468472ad2d58f3f5af1f34a9ffece76f2eb))
157 |
158 | ## [2.2.5](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.2.4...v2.2.5) (2023-08-08)
159 |
160 |
161 | ### Bug Fixes
162 |
163 | * **Clean up:** Journal Queries and Linked References ([256a083](https://github.com/YU000jp/Logseq-column-Layout/commit/256a08310ea798143a1efb7e13a890677e285d32))
164 |
165 | ## [2.2.4](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.2.3...v2.2.4) (2023-08-05)
166 |
167 |
168 | ### Bug Fixes
169 |
170 | * **bug:** support awesome styler (excluding journals) ([a7ef7b6](https://github.com/YU000jp/Logseq-column-Layout/commit/a7ef7b619c4af72ce6f18df9640f524a5115b50d))
171 |
172 | ## [2.2.3](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.2.2...v2.2.3) (2023-08-04)
173 |
174 |
175 | ### Bug Fixes
176 |
177 | * **bug:** on non-journal page, remove content width ([be80680](https://github.com/YU000jp/Logseq-column-Layout/commit/be80680b20dc3aa4209ff095472752822e12f592))
178 |
179 | ## [2.2.2](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.2.1...v2.2.2) (2023-08-01)
180 |
181 |
182 | ### Bug Fixes
183 |
184 | * **bug:** data-picker too small ([73150ba](https://github.com/YU000jp/Logseq-column-Layout/commit/73150ba48eb1d62d34b6588fda62bbae9c5cf763))
185 | * journal linked references focus-within ([5d648b9](https://github.com/YU000jp/Logseq-column-Layout/commit/5d648b9e4535ff1b8f243ecfec2cddc4300680c4))
186 |
187 | ## [2.2.1](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.2.0...v2.2.1) (2023-05-28)
188 |
189 |
190 | ### Bug Fixes
191 |
192 | * **bug:** Not open journals on right-sidebar ([7112584](https://github.com/YU000jp/Logseq-column-Layout/commit/71125849f9d939c1a036b6d06658597263940cf0))
193 |
194 | # [2.2.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.1.1...v2.2.0) (2023-05-06)
195 |
196 |
197 | ### Features
198 |
199 | * check CSS & bottom style update CSS & L10N ([018d17e](https://github.com/YU000jp/Logseq-column-Layout/commit/018d17e40d4d648fe761cbab70e15d0be4e99be2))
200 |
201 | ## [2.1.1](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.1.0...v2.1.1) (2023-05-06)
202 |
203 |
204 | ### Bug Fixes
205 |
206 | * **bug:** by CSS minify ([0e8f7ea](https://github.com/YU000jp/Logseq-column-Layout/commit/0e8f7eab7ebfa03fa46c8e968c0631c95a39e312))
207 |
208 | # [2.1.0](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.0.14...v2.1.0) (2023-05-06)
209 |
210 |
211 | ### Bug Fixes
212 |
213 | * clean-CSS ([6f64f4b](https://github.com/YU000jp/Logseq-column-Layout/commit/6f64f4b76038e0599fd311d83a57d980a514c192))
214 | * **refactor:** バグ個所の特定 ([c903080](https://github.com/YU000jp/Logseq-column-Layout/commit/c903080e53a1a95bc4cb59bd735f130762998d65))
215 |
216 |
217 | ### Features
218 |
219 | * **Plugin Settings:** large image size setting ([75715ed](https://github.com/YU000jp/Logseq-column-Layout/commit/75715ed2e348a8661dedb002b8d82a1657838146))
220 |
221 | ## [2.0.14](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.0.13...v2.0.14) (2023-05-06)
222 |
223 |
224 | ### Bug Fixes
225 |
226 | * **bug:** break ([7a1db46](https://github.com/YU000jp/Logseq-column-Layout/commit/7a1db46d5450571d63ec5cdab76e2304370deeca))
227 |
228 | ## [2.0.13](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.0.12...v2.0.13) (2023-05-05)
229 |
230 |
231 | ### Bug Fixes
232 |
233 | * **Bug:** scroll journal linked reference ([e8c502c](https://github.com/YU000jp/Logseq-column-Layout/commit/e8c502c8c5e598a9efc2559592bd63e89a8e624f))
234 |
235 | ## [2.0.12](https://github.com/YU000jp/Logseq-column-Layout/compare/v2.0.11...v2.0.12) (2023-05-05)
236 |
237 |
238 | ### Bug Fixes
239 |
240 | * **bug:** Error DOMException: Failed to execute 'removeChild' ([de0a89c](https://github.com/YU000jp/Logseq-column-Layout/commit/de0a89cf63ef39b11dc272e07fcbab78fba07bf1))
241 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | # MIT License
2 |
3 | Copyright (c) 2023 YU000jp
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.ja.md:
--------------------------------------------------------------------------------
1 | # Logseq プラグイン: *Column Layout*
2 |
3 | - Logseqの日誌(ジャーナル)にカラムレイアウトのスタイルを適用します。
4 | - 日次ジャーナルとそのLined References、ジャーナルクエリ(Journal Queries)を横並びにして配置します。
5 | > 日誌以外の場合 >> [ページタグと階層 プラグイン](https://github.com/YU000jp/logseq-page-tags-and-hierarchy/)
6 |
7 | > [!WARNING]
8 | >このプラグインはLogseq dbバージョンでは動作しません。
9 |
10 |
11 |
12 | [English](https://github.com/YU000jp/Logseq-column-Layout)/[日本語](https://github.com/YU000jp/Logseq-column-Layout/blob/main/README.ja.md) [](https://github.com/YU000jp/Logseq-column-Layout/releases)
13 | [](https://github.com/YU000jp/Logseq-column-Layout/blob/main/LICENSE)
14 | [](https://github.com/YU000jp/Logseq-column-Layout/releases)
15 | 公開日 20220913

16 |
17 |
18 | - スクリーンショット
19 | > 
20 |
21 | ## できること
22 |
23 | ### 日誌
24 |
25 | - 引用(ブロック参照)で、タイムラインを記述します。ログの記録としても効果的です。 ⌨️`Win/Cmd + Alt` キーを同時押しで、箇条書き(・)を掴みながらドラッグして、そのブロック参照をブロックに置きます。
26 |
27 | > 
28 |
29 | ### "Lined References"
30 |
31 | #### 📅 次の日記を書く際の思考リストとして、リンクする
32 |
33 | - [datenlpプラグイン](https://github.com/hkgnp/logseq-datenlp-plugin) を使用します。水曜日に表示させたい場合は`@wednesday`、もしくは過去の日記を読んで気になったブロックに`@today`を追加します。これらはリンクになり、"Linked References" という参照リストに含まれます。(当日分は含まれません)
34 |
35 | #### PDFのハイライト
36 |
37 | - Logseq はPDFファイルを読み込んでそのPDFにマーカーをつける機能 (ハイライト)があります。そのブロックの親に日付リンクをタグ付けすると、"Lined References" という参照リストに含まれます。 [PDFハイライト(docs.logseq.com 英語)](https://docs.logseq.com/#/page/pdf%20highlights)
38 |
39 | ### ジャーナルクエリ
40 |
41 | > 通常では、NOWクエリーとNEXTクエリーの 2つのクエリーが設置されています。タスクをさらに取得するには、Logseq から`config.edn` ファイルでその設定の変更をおこないます。 [その詳細については、このリンク(サンプルコード)を参照してください (英語)](https://github.com/YU000jp/logseq-default-queries-journals)
42 |
43 | ---
44 |
45 | ## はじめに
46 |
47 | #### 次のプラグインはサポートされていません > [Awesome Styler](https://github.com/yoyurec/logseq-awesome-styler) プラグインは同時に使用できません
48 |
49 | Logseq マーケットプレイス からインストール
50 | - 右上のツールバーで `---` を押して `プラグイン` を開きます。 `マーケットプレース` を選択します。検索フィールドに `Column` と入力し、検索結果から選択してインストールします。
51 |
52 | ### 使用方法
53 |
54 | - スタイルは日誌のみ適用されます。ウィンドウサイズが1850px未満の場合、スタイルは適用されません。
55 |
56 | ### プラグイン設定
57 |
58 | - 日誌の隣に"Lined References"を配置する
59 | - `true` デフォルト
60 | - `false`
61 | - 右サイドバーのコンテンツを並列に配置する
62 | > ⚠️ Logseq v0.9.14バージョンから、横並びの制限は2になりました。
63 | - `true`
64 | - `false` デフォルト
65 |
66 | ---
67 |
68 | ## ショーケース / 質問 / アイデア / ヘルプ
69 |
70 | > [ディスカッション](https://github.com/YU000jp/Logseq-column-Layout/discussions)タブに移動して質問し、この種の情報を見つけてください。
71 |
72 | - Logseqにタスクがない場合、"Lined References"のスペースは空白になります。
73 | - 日記からの参照("Lined References")は、今日以外の日付に限られます。
74 | - 縮小表示で画像が見にくい場合、ズーム機能を使用するか、サイドバーで開いてください。
75 | - 日誌で、昨日などの過去の分を表示したくない場合
76 | - [Single Journal プラグイン](https://github.com/YU000jp/logseq-plugin-single-journal)
77 | - 日誌の上にミニカレンダーを配置する
78 | - [Show weekday and week-number プラグイン](https://github.com/YU000jp/logseq-plugin-show-weekday-and-week-number)
79 |
80 | ## クレジット
81 |
82 | - 製作者 > [@YU000jp](https://github.com/YU000jp)
83 |
84 |
85 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Logseq Plugin: *Column Layout*
2 |
3 | - Apply column layout style to Journals in Logseq
4 | - For quick reference, place journals, linked references, and journal queries side by side.
5 | > For non-journals >> [Page-tags and Hierarchy plugin](https://github.com/YU000jp/logseq-page-tags-and-hierarchy/)
6 |
7 | > [!WARNING]
8 | This plugin does not work with Logseq db version.
9 |
10 |
11 |
12 | [English](https://github.com/YU000jp/Logseq-column-Layout)/[日本語](https://github.com/YU000jp/Logseq-column-Layout/blob/main/README.ja.md) [](https://github.com/YU000jp/Logseq-column-Layout/releases)
13 | [](https://github.com/YU000jp/Logseq-column-Layout/blob/main/LICENSE)
14 | [](https://github.com/YU000jp/Logseq-column-Layout/releases)
15 | Published 20220913

16 |
17 |
18 | - Screenshot
19 |
20 | > 
21 |
22 | ## What can do
23 |
24 | ### Journals
25 |
26 | - If use the reference function and write the timeline, it is also effective as a log. Press ⌨️`cmd(win) + alt` at the same time to get the reference by mouse dragging on the bullet.
27 |
28 | > 
29 |
30 | ### Linked reference
31 |
32 | #### 📅 As a list for inclusion in the next journal
33 |
34 | - Use [datenlp plugin](https://github.com/hkgnp/logseq-datenlp-plugin). Add `@wednesday` or read past journals and add `@today`. They become links.
35 |
36 | #### PDF highlights
37 |
38 | - Logseq has the ability to read and highlight PDF file. If you add a date link to highlights, it will be included in the list of linked references. [PDF highlights (docs.logseq.com)](https://docs.logseq.com/#/page/pdf%20highlights)
39 |
40 | ### Journal queries
41 |
42 | - To get more task management. On Logseq, edit `config.edn` file. [For more details refer to this link(sample code)](https://github.com/YU000jp/logseq-default-queries-journals)
43 |
44 | ---
45 |
46 | ## Getting Started
47 |
48 | - Not supported > [Awesome Styler](https://github.com/yoyurec/logseq-awesome-styler) plugin cannot be used at the same time
49 | - Install from Logseq Marketplace
50 | - Press `---` on the top right toolbar to open `Plugins`. Select `Marketplace`. Type `Column` in the search field, select it from the search results and install
51 |
52 | ### Usage
53 |
54 | - Styles be applied only to journals. The styles are not applied if the window size is less than 1850px.
55 |
56 | ### Plugin Settings
57 |
58 | - Place "Linked References" next to journals: boolean
59 | - `true` default
60 | - `false`
61 | - Make right sidebar content next to each other: boolean
62 | > ⚠️Starting with Logseq v0.9.14 version, the limit is 2.
63 | - `true`
64 | - `false` default
65 |
66 | ---
67 |
68 | ## Showcase / Questions / Ideas / Help
69 |
70 | > Go to the [Discussions](https://github.com/YU000jp/Logseq-column-Layout/discussions) tab to ask and find this kind of things.
71 | - Linked References space is blank if there are no tasks in Logseq.
72 | - Linked reference from journal are limited to dates other than today.
73 | - If you find it difficult to see the image in a reduced view, please use the zoom function or open it in sidebar.
74 | - This plugin relies on Logseq's DOM (Document Object Model) structure. If the DOM structure changes due to a Logseq version update, styles may not be applied. We will adjust the CSS to deal with it. If you notice something, please raise an issue.
75 | - If you do not want to display multiple diaries in journals
76 | - [Single Journal plugin](https://github.com/YU000jp/logseq-plugin-single-journal)
77 | - Place the mini calendar on top of journals
78 | - [Show weekday and week-number plugin](https://github.com/YU000jp/logseq-plugin-show-weekday-and-week-number)
79 |
80 | ## Credit
81 |
82 | - Author > [@YU000jp](https://github.com/YU000jp)
83 |
--------------------------------------------------------------------------------
/icon.svg:
--------------------------------------------------------------------------------
1 |
24 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Logseq Plugin:
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "logseq-column-layout",
3 | "description": "For quick reference, Place journals, linked references, and journal queries side by side.",
4 | "repository": "https://github.com/YU000jp/Logseq-column-Layout.git",
5 | "author": "YU000jp",
6 | "license": "MIT",
7 | "logseq": {
8 | "id": "logseq-column-layout",
9 | "title": "Column Layout (journals UI)",
10 | "icon": "./icon.svg",
11 | "main": "./dist/index.html"
12 | },
13 | "effect": true,
14 | "private": true,
15 | "scripts": {
16 | "preinstall": "npx only-allow pnpm",
17 | "clean": "rm -r ./dist/* || true",
18 | "dev": "vite",
19 | "build": "tsc && vite build --mode=dev",
20 | "prod": "npm run clean && vite build"
21 | },
22 | "dependencies": {
23 | "@logseq/libs": "^0.0.17",
24 | "logseq-l10n": "^0.2.0"
25 | },
26 | "devDependencies": {
27 | "@semantic-release/changelog": "^6.0.3",
28 | "@semantic-release/exec": "^6.0.3",
29 | "@semantic-release/git": "^10.0.1",
30 | "@types/node": "^20.17.12",
31 | "conventional-changelog-conventionalcommits": "^8.0.0",
32 | "cz-conventional-changelog": "^3.3.0",
33 | "jest": "^29.7.0",
34 | "npx": "^10.2.2",
35 | "rollup-plugin-string": "^3.0.0",
36 | "semantic-release": "^24.2.1",
37 | "typescript": "^5.7.3",
38 | "vite": "^5.4.11",
39 | "vite-plugin-logseq": "^1.1.2"
40 | },
41 | "config": {
42 | "commitizen": {
43 | "path": "cz-conventional-changelog"
44 | }
45 | },
46 | "commitlint": {
47 | "extends": [
48 | "@commitlint/config-conventional"
49 | ]
50 | },
51 | "husky": {
52 | "hooks": {
53 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
54 | }
55 | }
56 | }
--------------------------------------------------------------------------------
/release.config.js:
--------------------------------------------------------------------------------
1 |
2 | var PLUGIN_NAME = 'logseq-column-layout'
3 |
4 | module.exports = {
5 | branches: ['main'],
6 | plugins: [
7 | ['@semantic-release/commit-analyzer', {
8 | preset: 'conventionalcommits',
9 | }],
10 | '@semantic-release/release-notes-generator',
11 | '@semantic-release/changelog',
12 | '@semantic-release/git',
13 | ['@semantic-release/exec', {
14 | prepareCmd:
15 | `zip -qq -r ${PLUGIN_NAME}-` + "${nextRelease.version}.zip dist icon.svg package.json README.md LICENSE",
16 | }],
17 | ['@semantic-release/github', {
18 | assets: `${PLUGIN_NAME}-*.zip`,
19 | fail: false,
20 | failComment: false,
21 | failTitle: false,
22 | }],
23 | ],
24 | }
25 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import "@logseq/libs"
2 | import { LSPluginBaseInfo } from "@logseq/libs/dist/LSPlugin.user"
3 | import { setup as l10nSetup, t } from "logseq-l10n" //https://github.com/sethyuan/logseq-l10n
4 | import { removeProvideStyle } from "./lib"
5 | import CSSmain from "./main.css?inline"
6 | import CSS3Side from "./side.css?inline"
7 | import CSSNonSide from "./notSide.css?inline"
8 | import { settingsTemplate } from "./settings"
9 | import ja from "./translations/ja.json"
10 | import CSS3RightSidebar from "./rightSidebar.css?inline"
11 | const keyRightSidebar = "rightSidebar"
12 | const keySide = "side"
13 | const keyNestingSide = "nestingSide"
14 | const keyNonSide = "nonSide"
15 | const keySeparate = "continuous"
16 | const CSSSeparate = `
17 | body[data-page="home"]:not(.is-pdf-active)>div#root>div>main div#main-content-container div#journals {
18 |
19 | &:first-child {
20 | min-height: unset;
21 | }
22 |
23 | & div.journal-item {
24 | min-height: unset;
25 |
26 | &>div.journal>div.flex>div.initial {
27 | min-height: 90vh;
28 | }
29 | }
30 | }
31 | `
32 |
33 | /* main */
34 | const main = async () => {
35 |
36 | await l10nSetup({ builtinTranslations: { ja } })
37 |
38 | /* user settings */
39 | logseq.useSettingsSchema(settingsTemplate())
40 |
41 |
42 | // if (logseq.settings!.notice2023111404 !== true) {
43 | // //移行メッセージ
44 | // logseq.UI.showMsg(t("'Image size limit feature' has been moved to 'Preview Image' plugin.") + "\n\n(Column Layout plugin)", "warning", { timeout: 5000 })
45 | // logseq.updateSettings({ notice2023111404: true })
46 | // }
47 |
48 | if (logseq.settings!.booleanLinkedReferences === true)
49 | provideStyle(keyNestingSide, CSS3Side)
50 | else
51 | logseq.provideStyle({
52 | key: keyNonSide,
53 | style: CSSNonSide
54 | })
55 |
56 | if (logseq.settings!.booleanRightSidebar === true)
57 | provideStyle(keyRightSidebar,CSS3RightSidebar)
58 |
59 | if (logseq.settings!.booleanSeparate === true)
60 | provideStyle(keySeparate, CSSSeparate)
61 |
62 | //Fix bugs
63 | /* Fix "Extra space when journal queries are not active #6773" */
64 | /* journal queries No shadow */
65 | /* background conflict journal queries */
66 |
67 | logseq.provideStyle({
68 | key: "main",
69 | style: CSSmain
70 | })
71 |
72 | logseq.onSettingsChanged((newSet: LSPluginBaseInfo["settings"], oldSet: LSPluginBaseInfo["settings"]) => {
73 | if (oldSet.booleanLinkedReferences === true
74 | && newSet.booleanLinkedReferences === false)
75 | try {
76 | removeProvideStyle(keySide)
77 | removeProvideStyle(keyNestingSide)
78 | } finally {
79 | logseq.provideStyle({
80 | key: keyNonSide,
81 | style: CSSNonSide
82 | })
83 | }
84 | else
85 | if (oldSet.booleanLinkedReferences === false
86 | && newSet.booleanLinkedReferences === true)
87 | try {
88 | removeProvideStyle(keyNonSide)
89 | } finally {
90 | provideStyle(keyNestingSide, CSS3Side)
91 | }
92 | if (oldSet.booleanRightSidebar === true
93 | && newSet.booleanRightSidebar === false)
94 | removeProvideStyle(keyRightSidebar)
95 | else
96 | if (oldSet.booleanRightSidebar === false
97 | && newSet.booleanRightSidebar === true)
98 | provideStyle(keyRightSidebar, CSS3RightSidebar)
99 | if(oldSet.booleanSeparate === true
100 | && newSet.booleanSeparate === false)
101 | removeProvideStyle(keySeparate)
102 | else
103 | if(oldSet.booleanSeparate === false
104 | && newSet.booleanSeparate === true)
105 | provideStyle(keySeparate, CSSSeparate)
106 | })
107 | } /* end_main */
108 |
109 | logseq.ready(main).catch(console.error)
110 |
111 |
112 | const provideStyle = (newKey: string, newStyle: string) => {
113 | logseq.provideStyle({
114 | key: newKey,
115 | style: newStyle
116 | })
117 | }
--------------------------------------------------------------------------------
/src/lib.ts:
--------------------------------------------------------------------------------
1 |
2 | export const removeProvideStyle = (className: string) => {
3 | const doc = parent.document.head.querySelector(`style[data-injected-style^="${className}"]`) as HTMLStyleElement | null
4 | if (doc) doc.remove()
5 | }
6 |
7 | export const removeCSSclass = (className: string) => {
8 | if (parent.document.body.classList?.contains(className))
9 | parent.document.body.classList.remove(className)
10 | }
11 |
--------------------------------------------------------------------------------
/src/main.css:
--------------------------------------------------------------------------------
1 | body[data-page="home"]>#root>div>main>div {
2 | & #main-content-container {
3 | & #today-queries {
4 | &>div.lazy-visibility {
5 | min-height: unset !important;
6 | }
7 |
8 | & div.color-level div.blocks-container {
9 | background-color: unset
10 | }
11 | }
12 |
13 | & div.nav-content-item-inner {
14 | margin-top: 2em
15 | }
16 | }
17 | }
18 |
19 | body>#root>div>main>div {
20 | & img {
21 | overflow-x: scroll
22 | }
23 |
24 | & blockquote {
25 | font-size: .95em
26 | }
27 |
28 | & #time-repeater {
29 | min-width: 200px
30 | }
31 |
32 | & div.timestamp #date-time-picker {
33 | top: 3.8em;
34 | z-index: 11;
35 |
36 | &:is(:nth-of-type(2), :nth-of-type(3)) {
37 | width: 400px;
38 | background-color: var(--color-level-1);
39 | }
40 | }
41 |
42 | & [data-refs-self*="kanban"]>.block-children-container>.block-children {
43 | overflow-x: scroll;
44 | font-size: .96em;
45 | scroll-snap-type: x;
46 | }
47 | }
--------------------------------------------------------------------------------
/src/notSide.css:
--------------------------------------------------------------------------------
1 | @media screen and (min-width:1850px){
2 | body[data-page=home] main.ls-wide-mode div#main-content-container div.cp__sidebar-main-content{max-width:unset}
3 | body[data-page=home] div#main-container div.cp__sidebar-main-content{max-width:unset}
4 | body[data-page=home].is-tabs-loaded div#journals div#today-queries{top:calc(var(--ls-headbar-height) + var(--ls-headbar-inner-top-padding) + 40px)}
5 | body[data-page=home]:is(.is-pdf-active,main.ls-right-sidebar-open) div:is(#today-queries,.scheduled-or-deadlines){display:none}
6 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#main-container{padding-right:565px}
7 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#main-content-container{margin:0;padding-top:unset}
8 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#journals div.references{margin-right:auto;max-height:800px;overflow-y:auto;overflow-x:auto}
9 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#journals div.page-linked div.references-blocks div.content>div.flex-col{margin-left:3em;margin-right:1em;max-width:1250px}
10 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) :is(div#today-queries+div.flex.flex-col,div.scheduled-or-deadlines){right:20px;position:fixed;bottom:1em;padding:.3em;outline:4px solid var(--ls-guideline-color);outline-offset:3px;border-radius:.3em;background:unset;backdrop-filter:blur(20px);font-size:small;max-height:30vh;overflow:auto;z-index:1;min-width:530px}
11 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries{background:var(--ls-primary-background-color);width:560px;position:fixed;right:0;top:calc(var(--ls-headbar-height) + var(--ls-headbar-inner-top-padding));bottom:3px;overflow-y:scroll;font-size:.9em;border-left:2px solid var(--ls-guideline-color);padding:.12em}
12 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries :is(.now,.later,.doing,.todo){font-weight:600}
13 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query{margin-top:.1em;margin-bottom:.8em}
14 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query div.custom-query-title{outline:2px solid var(--ls-guideline-color);background:var(--ls-page-blockquote-bg-color)}
15 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query div.custom-query-title:hover{outline:4px}
16 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query div.content{padding-top:.15em}
17 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query div.content div.lazy-visibility{border-right:4px solid var(--ls-page-blockquote-bg-color)}
18 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query div.content div.lazy-visibility:not(:last-of-type){border-bottom:3px dotted var(--ls-guideline-color);padding:.6em}
19 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query div.my-2{padding:.2em;margin:.2em}
20 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries div.custom-query div.breadcrumb.block-parents{color:var(--ct-external-link-color);margin-bottom:.6em}
21 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries .sm\:px-7{padding-left:unset}
22 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries.mt-10{margin-top:.1em}
23 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#today-queries :is(h2,h3,h4){font-size:16px;padding:4px}
24 | }
25 | @media screen and (min-width:2260px){
26 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#journals div.journal>div.flex.flex-col:first-child{min-width:1200px;max-width:1430px}
27 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#main-container{padding-right:706px}
28 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#journals div#today-queries{width:704px}
29 | }
30 | @media screen and (min-width:2780px){
31 | body[data-page=home]:not(.is-pdf-active) main:not(.ls-right-sidebar-open) div#journals :is(div#today-queries+div.flex.flex-col,div.scheduled-or-deadlines){right:720px}
32 | }
--------------------------------------------------------------------------------
/src/rightSidebar.css:
--------------------------------------------------------------------------------
1 | body>#root>div>main {
2 |
3 | & #right-sidebar {
4 | overflow: scroll;
5 |
6 |
7 | & table.table-auto {
8 | table-layout: fixed;
9 | width: 90%;
10 |
11 | & td.whitespace-nowrap {
12 | overflow: hidden;
13 | white-space: nowrap;
14 | text-overflow: ellipsis
15 | }
16 |
17 | }
18 |
19 | & span.ls-icon-layout-sidebar-right svg {
20 | width: 24px;
21 | height: 24px
22 | }
23 |
24 | & div.cp__right-sidebar-scrollable>div {
25 | &+div {
26 | background-image: linear-gradient(var(--color-level-1) 25%, transparent 25%);
27 | background-size: 50px 15px
28 | }
29 |
30 | }
31 |
32 | & div.sidebar-item-list {
33 | display: flex;
34 | flex-direction: row;
35 | flex-wrap: wrap;
36 | align-content: flex-start;
37 | overflow-x: scroll;
38 | font-size: .96em;
39 | scroll-snap-type: x;
40 | height: calc(96vh - 20px);
41 | margin-top: 1em;
42 | }
43 |
44 | & div.sidebar-item {
45 | &.content {
46 | min-width: 550px;
47 | max-width: 1050px;
48 | resize: vertical;
49 | align-self: flex-start;
50 | margin-bottom: .4em;
51 | max-height: fit-content;
52 | overflow-y: visible;
53 | padding-bottom: 3em;
54 | background: var(--ls-primary-background-color);
55 | padding: 0.3em;
56 | margin-top: 1em;
57 | max-height: 93vh;
58 |
59 | &:has(>div>div.hidden) {
60 | min-width: 300px;
61 | }
62 |
63 | &>div>div:first-of-type {
64 | position: sticky;
65 | top: 0;
66 | backdrop-filter: blur(20px);
67 | z-index: 1;
68 | font-size: 1.2em
69 | }
70 | }
71 |
72 | &.collapsed:has(div.hidden) {
73 | height: unset !important;
74 | min-width: 300px;
75 | }
76 |
77 |
78 |
79 | &::-webkit-scrollbar {
80 | width: 10px;
81 | height: 10px
82 | }
83 |
84 | &.content {
85 | & div.initial {
86 | min-height: 400px
87 | }
88 |
89 | & span.rotating-arrow:first-child {
90 | transform: scale(2, 2);
91 | margin-right: .6em
92 | }
93 |
94 | }
95 | }
96 |
97 | & div.cp__right-sidebar-topbar {
98 | flex-direction: row-reverse
99 | }
100 |
101 | & #date-time-picker {
102 | width: 430px;
103 | background: var(--color-level-1);
104 | z-index: var(--ls-z-index-level-4)
105 | }
106 |
107 | & div:is(.page-tags, .page-hierarchy) {
108 | display: none
109 | }
110 | }
111 |
112 | &.ls-right-sidebar-open :is(#today-queries, div.scheduled-or-deadlines) {
113 | display: none
114 | }
115 | }
116 |
117 | body.is-tabs-loaded>#root>div>main #right-sidebar div.sidebar-item-list {
118 | height: calc(96vh - 60px);
119 |
120 | }
--------------------------------------------------------------------------------
/src/settings.ts:
--------------------------------------------------------------------------------
1 | import { SettingSchemaDesc } from "@logseq/libs/dist/LSPlugin.user"
2 | import { t } from "logseq-l10n"
3 |
4 | //https://logseq.github.io/plugins/types/SettingSchemaDesc.html
5 | export const settingsTemplate = (): SettingSchemaDesc[] => [
6 | {
7 | key: "booleanLinkedReferences",
8 | title: t("Place \"Linked References\" next to journals"),
9 | type: "boolean",
10 | default: true,
11 | description: "",
12 | },
13 | {
14 | key: "booleanRightSidebar",
15 | title: t("Make right sidebar content next to each other"),
16 | type: "boolean",
17 | default: false,
18 | description:
19 | t("⚠️Starting with Logseq v0.9.14 version, the limit is 2."),
20 | },
21 | {
22 | key: "heading",
23 | title: t("'Image size limit feature' has been moved to 'Preview Image' plugin."),
24 | type: "heading",
25 | default: "",
26 | description: "https://github.com/YU000jp/logseq-plugin-preview-image",
27 | },
28 | { // 1ページごと分離する
29 | key: "booleanSeparate",
30 | title: t("Separate each journal"),
31 | type: "boolean",
32 | default: false,
33 | description: "",
34 | },
35 | ]
36 |
37 |
--------------------------------------------------------------------------------
/src/side.css:
--------------------------------------------------------------------------------
1 | @keyframes fadeIn {
2 | 0% {
3 | opacity: 0;
4 | }
5 |
6 | 100% {
7 | opacity: 1;
8 | }
9 | }
10 |
11 | body[data-page="home"]:not(.is-pdf-active) {
12 | @media screen and (min-width:1850px) {
13 | &>#root>div>main {
14 |
15 | &.ls-wide-mode #main-content-container div.cp__sidebar-main-content,
16 | & #main-container div.cp__sidebar-main-content {
17 | max-width: unset !important;
18 | }
19 |
20 | }
21 |
22 | &.is-tabs-loaded>#root>div>main>div #journals #today-queries {
23 | top: calc(var(--ls-headbar-height) + var(--ls-headbar-inner-top-padding) + 40px)
24 | }
25 |
26 | & main.ls-right-sidebar-open div:is(#today-queries, .scheduled-or-deadlines) {
27 | display: none
28 | }
29 |
30 | &>#root>div>main:not(.ls-right-sidebar-open) #main-content-container {
31 |
32 | & #journals>div>div>div.journal.page {
33 | display: flex;
34 | justify-content: space-around;
35 | margin-right: 0.25em;
36 |
37 | &>div.flex.flex-col {
38 | flex: 3;
39 | margin-right: 0.25em;
40 | }
41 |
42 | @media screen and (max-width:2259px) {
43 |
44 | /* Linked References */
45 | &>div.lazy-visibility {
46 | flex: 1;
47 | opacity: 0;
48 | animation: fadeIn 3s forwards;
49 | }
50 | }
51 |
52 | & div.page-linked {
53 | max-height: 60vh;
54 | overflow-y: scroll;
55 | position: sticky;
56 | top: 1em;
57 | bottom: 3em;
58 | z-index: 0;
59 | border-radius: .3em;
60 | outline: 2px solid var(--ls-guideline-color);
61 | outline-offset: 3px;
62 | font-size: .9em;
63 | overflow: auto;
64 |
65 | &>div.content.pt-6 {
66 | padding-top: unset;
67 | width: 640px;
68 | }
69 | }
70 | }
71 |
72 | & #today-queries+div.flex.flex-col,
73 | & div.scheduled-or-deadlines {
74 | position: fixed;
75 | bottom: 1em;
76 | padding: .3em;
77 | border: 2px solid var(--ls-border-color);
78 | box-shadow: 0 0 7px var(--ls-border-color);
79 | outline-offset: 3px;
80 | border-radius: .4em;
81 | background: var(--ls-primary-background-color);
82 | backdrop-filter: blur(40px);
83 | font-size: small;
84 | max-height: 30vh;
85 | overflow: auto;
86 | z-index: 1;
87 |
88 | & div.sm\:px-7 {
89 | padding-left: unset;
90 | padding-right: unset
91 | }
92 | }
93 |
94 | & #today-queries {
95 | background: var(--ls-primary-background-color);
96 | position: fixed;
97 | right: 0;
98 | top: calc(var(--ls-headbar-height) + var(--ls-headbar-inner-top-padding));
99 | bottom: 3px;
100 | overflow-y: scroll;
101 | font-size: .9em;
102 | border-left: 1px solid var(--ls-guideline-color);
103 | opacity: 0;
104 | animation: fadeIn 1.5s forwards;
105 |
106 | &.mt-10 {
107 | margin-top: .1em
108 | }
109 |
110 | & div.custom-query {
111 | margin-top: .2em;
112 | margin-bottom: 1em;
113 |
114 | &>div>div.flex {
115 | outline: 2px solid var(--ls-guideline-color);
116 | border-radius: 0.3em;
117 | margin-right: 3px;
118 | }
119 |
120 | & div.custom-query-title {
121 | outline: 2px solid var(--ls-guideline-color);
122 | background: var(--ls-page-blockquote-bg-color);
123 | padding: 8px;
124 |
125 | &:hover {
126 | outline: 4px
127 | }
128 | }
129 |
130 | & div.content div.lazy-visibility {
131 | border-right: 4px solid var(--ls-page-blockquote-bg-color);
132 |
133 | &:not(:last-of-type) {
134 | border-bottom: 3px dotted var(--ls-guideline-color);
135 | padding: .6em
136 | }
137 | }
138 |
139 | & div.my-2 {
140 | padding: .2em;
141 | margin: .2em;
142 | height: unset !important
143 | }
144 |
145 | & div.breadcrumb.block-parents {
146 | color: var(--ct-external-link-color)
147 | }
148 | }
149 |
150 | & .sm\:px-7 {
151 | padding-left: unset
152 | }
153 |
154 | & h2,
155 | h3,
156 | h4 {
157 | font-size: 16px;
158 | padding: 4px
159 | }
160 | }
161 | }
162 | }
163 |
164 | &>#root>div>main:not(.ls-right-sidebar-open) #journals {
165 |
166 | /* Linked Referencesのマウスオーバー */
167 | @media screen and (min-width:1850px) and (max-width:2799px) {
168 | & div.page-linked:is(:focus-within, :hover) {
169 | background: var(--ls-primary-background-color);
170 | backdrop-filter: blur(40px);
171 | min-width: 660px;
172 | max-width: 660px;
173 | z-index: var(--ls-z-index-level-1)
174 | }
175 | }
176 |
177 | @media screen and (min-width:1850px) and (max-width:1910px) {
178 | margin-right: 360px;
179 |
180 | & #today-queries {
181 | width: 380px;
182 |
183 | }
184 |
185 | & div.journal>div.flex.flex-col {
186 | min-width: 820px
187 | }
188 |
189 | & div.scheduled-or-deadlines {
190 | width: 380px;
191 | right: 380px;
192 | }
193 | }
194 |
195 | @media screen and (min-width:1911px) and (max-width:2019px) {
196 | margin-right: 360px;
197 |
198 | & #today-queries {
199 | width: 380px;
200 |
201 | }
202 |
203 | & div.journal>div.flex.flex-col {
204 | min-width: 920px
205 | }
206 |
207 | & div.scheduled-or-deadlines {
208 | width: 400px;
209 | right: 380px;
210 | }
211 | }
212 |
213 | @media screen and (min-width:2020px) and (max-width:2259px) {
214 | margin-right: 360px;
215 |
216 | & #today-queries {
217 | width: 380px;
218 |
219 | }
220 |
221 | & div.journal>div.flex.flex-col {
222 | min-width: 1000px
223 | }
224 |
225 | & div.scheduled-or-deadlines {
226 | width: 460px;
227 | right: 400px;
228 | }
229 | }
230 |
231 | @media screen and (min-width:2260px) and (max-width:2799px) {
232 | margin-right: 480px;
233 |
234 | & #today-queries {
235 | width: 500px;
236 | }
237 |
238 | & div.journal>div.flex.flex-col {
239 | min-width: 1050px;
240 | }
241 |
242 | & div.scheduled-or-deadlines {
243 | width: 520px;
244 | right: 525px
245 | }
246 | }
247 |
248 | @media screen and (min-width:2800px) {
249 | margin-right: 680px;
250 |
251 | & #today-queries {
252 | width: 700px;
253 | }
254 |
255 | & div.journal>div.flex.flex-col {
256 | min-width: 1050px;
257 | max-width: 1400px;
258 | }
259 |
260 | & div.scheduled-or-deadlines {
261 | width: 520px;
262 | right: 725px
263 | }
264 | }
265 | }
266 | }
--------------------------------------------------------------------------------
/src/translations/ja.json:
--------------------------------------------------------------------------------
1 | {
2 | "'Image size limit feature' has been moved to 'Preview Image' plugin.": "画像サイズ制限の機能は「Preview Image」プラグインに移動しました。",
3 | "⚠️Starting with Logseq v0.9.14 version, the limit is 2.": "⚠️Logseq v0.9.14以降は2つ横並びまでに制限されています。",
4 | "Make right sidebar content next to each other": "右サイドバーのコンテンツを並べて表示する",
5 | "Place \"Linked References\" next to journals": "「Linked References」を日誌の右側に配置する。オフの場合は下に配置。",
6 | "Separate each journal" : "各ジャーナルを分離する"
7 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "include": [
3 | "./src",
4 | ],
5 | "exclude": [
6 | "dist",
7 | "node_modules"
8 | ],
9 | "compilerOptions": {
10 | /* Visit https://aka.ms/tsconfig.json to read more about this file */
11 |
12 | /* Projects */
13 | // "incremental": true, /* Enable incremental compilation */
14 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
15 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */
16 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */
17 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
18 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
19 |
20 | /* Language and Environment */
21 | "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
22 | "lib": ["DOM", "DOM.Iterable", "ESNext"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
23 | //"jsx": "react-jsx", /* Specify what JSX code is generated. */
24 | "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
25 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
26 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */
27 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
28 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */
29 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */
30 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
31 | "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
32 |
33 | /* Modules */
34 | "module": "ESNext", /* Specify what module code is generated. */
35 | // "rootDir": "./", /* Specify the root folder within your source files. */
36 | "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
37 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
38 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
39 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
40 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
41 | "types": ["vite/client", "node"], /* Specify type package names to be included without being referenced in a source file. */
42 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
43 | "resolveJsonModule": true, /* Enable importing .json files */
44 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */
45 |
46 | /* JavaScript Support */
47 | "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
48 | "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
49 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
50 |
51 | /* Emit */
52 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
53 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */
54 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
55 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
56 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
57 | // "outDir": "./", /* Specify an output folder for all emitted files. */
58 | // "removeComments": true, /* Disable emitting comments. */
59 | "noEmit": true, /* Disable emitting files from a compilation. */
60 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
61 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */
62 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
63 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
64 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
65 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
66 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
67 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
68 | // "newLine": "crlf", /* Set the newline character for emitting files. */
69 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */
70 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */
71 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
72 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */
73 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
74 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
75 |
76 | /* Interop Constraints */
77 | "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
78 | "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
79 | "esModuleInterop": false, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
80 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
81 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
82 |
83 | /* Type Checking */
84 | "strict": true, /* Enable all strict type-checking options. */
85 | "noImplicitAny": false, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
86 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */
87 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
88 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
89 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
90 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
91 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
92 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
93 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
94 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
95 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
96 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
97 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
98 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
99 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
100 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
101 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
102 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
103 |
104 | /* Completeness */
105 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
106 | "skipLibCheck": true /* Skip type checking all .d.ts files. */
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import logseqDevPlugin from "vite-plugin-logseq";
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [logseqDevPlugin()],
7 | // Makes HMR available for development
8 | build: {
9 | target: "esnext",
10 | minify: "esbuild",
11 | },
12 | });
13 |
--------------------------------------------------------------------------------