├── .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) [![latest release version](https://img.shields.io/github/v/release/YU000jp/Logseq-column-Layout)](https://github.com/YU000jp/Logseq-column-Layout/releases) 13 | [![License](https://img.shields.io/github/license/YU000jp/Logseq-column-Layout?color=blue)](https://github.com/YU000jp/Logseq-column-Layout/blob/main/LICENSE) 14 | [![Downloads](https://img.shields.io/github/downloads/YU000jp/Logseq-column-Layout/total.svg)](https://github.com/YU000jp/Logseq-column-Layout/releases) 15 | 公開日 20220913 16 |
17 | 18 | - スクリーンショット 19 | > ![image](https://user-images.githubusercontent.com/111847207/195663729-7c979e9e-9309-4f0b-9766-581778c5aaa7.png) 20 | 21 | ## できること 22 | 23 | ### 日誌 24 | 25 | - 引用(ブロック参照)で、タイムラインを記述します。ログの記録としても効果的です。 ⌨️`Win/Cmd + Alt` キーを同時押しで、箇条書き(・)を掴みながらドラッグして、そのブロック参照をブロックに置きます。 26 | 27 | > ![image](https://user-images.githubusercontent.com/111847207/195662824-35aecadd-c404-42a8-82eb-54ffc628c321.png) 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) [![latest release version](https://img.shields.io/github/v/release/YU000jp/Logseq-column-Layout)](https://github.com/YU000jp/Logseq-column-Layout/releases) 13 | [![License](https://img.shields.io/github/license/YU000jp/Logseq-column-Layout?color=blue)](https://github.com/YU000jp/Logseq-column-Layout/blob/main/LICENSE) 14 | [![Downloads](https://img.shields.io/github/downloads/YU000jp/Logseq-column-Layout/total.svg)](https://github.com/YU000jp/Logseq-column-Layout/releases) 15 | Published 20220913 16 |
17 | 18 | - Screenshot 19 | 20 | > ![image 2022-10-14 0207414](https://user-images.githubusercontent.com/111847207/195663729-7c979e9e-9309-4f0b-9766-581778c5aaa7.png) 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 | > ![image 2022-10-14 0207412](https://user-images.githubusercontent.com/111847207/195662824-35aecadd-c404-42a8-82eb-54ffc628c321.png) 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 | 2 | 3 | 12 | 13 | 1095_pc_h 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 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 | --------------------------------------------------------------------------------