Commit Graph

88 Commits

Author SHA1 Message Date
Julien Calixte
002cf9a4b1 fix(stacked-note): act on outdated badge clicks
Clicking the badge while it shows outdated now pulls the latest version
from GitHub when there are no unsaved edits, or opens the conflict
modal when edits are in flight. Previously the click only re-ran the
same freshness check, so the badge appeared dead.
2026-05-03 23:37:28 +02:00
Julien Calixte
d31c774ace feat(stacked-note): surface note freshness and guard saves on conflict
Adds a Tabler-icon badge in the stacked-note action bar showing whether
the loaded copy still matches GitHub HEAD (verified / outdated / offline
/ checking / unknown / stale-known). The save flow now re-checks before
the PUT and opens a conflict modal when GitHub has moved on, with three
explicit choices: discard local edits and pull, overwrite anyway, or
cancel. Race-condition 409s from the PUT itself are routed through the
same modal.
2026-05-03 23:32:54 +02:00
Julien Calixte
7b4c7947aa fix: remove bottom padding 2026-04-29 22:06:58 +02:00
Julien Calixte
68022971cd refactor(notes): restore fixed mobile heights for scroll math
Re-pin .note and .stacked-note to 100dvh on mobile and bring back the
container height in useResizeContainer so (index + 1) * height has a
reachable scroll target. Switch the polled scroll helper to that same
formula instead of offsetTop.
2026-04-29 11:32:23 +02:00
Julien Calixte
f529832eee refactor(notes): scope stacked-note sticky to desktop
Move position: sticky from the global .note rule into the desktop
@media block of the scoped stacked-note components, so mobile no longer
inherits sticky positioning (and no top is set there).
2026-04-29 11:32:13 +02:00
Julien Calixte
adb1bd5945 fix: fix height on mobile 2026-04-29 10:34:46 +02:00
Julien Calixte
cf5567de7c refactor(notes): use options object for renderCodeFile params 2026-04-27 20:36:46 +02:00
Julien Calixte
9d6f70546e feat(notes): render code files with Shikiji syntax highlighting
Non-markdown files opened as stacked notes are now highlighted using
the existing markdown-it-shikiji pipeline (4-backtick fence wrapping)
with a h1 filename heading. Edit controls are hidden for code files.
Adds alloy language grammar and a fileLanguage utility mapping
extensions to Shikiji language IDs.
2026-04-27 19:57:15 +02:00
Julien Calixte
c00065ce4a refactor(navigation): scrollToFocusedNote takes an options object
Smooth-scroll for the anchor jump when the target note is already
stacked, instant otherwise. While threading the new flag, the four
positional params got hard to read, so collapse them into
{ noteId, notes, hash, smoothHash } and update all call sites.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 09:56:32 +02:00
Julien Calixte
d098b3b404 fix: no more clip overflow y 2026-04-25 00:02:12 +02:00
Julien Calixte
ded770aff1 fix(mobile): restore body scroll and prevent spurious section scroll
Three layered fixes for mobile note scrolling:

1. app.css / App.vue: on mobile, override overflow:hidden on html/body
   and overflow:visible on #main-app so content from useResizeContainer
   (which sets the note-container height to (n+1)*100vh) propagates to
   the document and document.body.scrollTop works again.

2. FluxNote.vue: give each .note an explicit height:100dvh on mobile so
   the percentage-based height:100% does not resolve against the
   inflated container height set by useResizeContainer.

3. StackedNote / StackedPublicNote: replace overflow-y:hidden with
   overflow-y:clip on the section. Unlike hidden, clip does not create a
   scroll container, so touch events fall through to the page scroll and
   the section never feels "draggable" when content fits within the note.
2026-04-23 17:58:33 +02:00
Julien Calixte
1fa66d8594 fix: prevent spurious y-scrollbar when section has overflow-x: auto on mobile
Setting overflow-x: auto forces overflow-y off 'visible' per CSS spec,
which caused an unwanted vertical scrollbar in stacked note sections.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 14:28:25 +02:00
Julien Calixte
5f48aa5690 chore: lint and fmt 2026-03-28 09:38:55 +01:00
Julien Calixte
52561496b4 fix: change the edit button 2026-03-19 17:40:50 +01:00
Julien Calixte
908641e54b prune: remove twitter embed 2026-03-07 19:03:06 +01:00
Julien Calixte
683187b4d1 feat: render some real content 2026-02-11 03:12:52 +01:00
Julien Calixte
5a36891970 prune: remove unecessary impot 2026-01-20 22:21:12 +01:00
Julien Calixte
c07964844d perf: jit initialize mermaid 2025-07-12 22:31:06 +02:00
Julien Calixte
dd5d4b04f7 perf: init shikiji only when needed and limit langs 2025-07-12 22:26:07 +02:00
Julien Calixte
b93dfbd824 perf: run on nextTick only if necessary 2025-07-12 17:39:00 +02:00
Julien Calixte
178d80a872 feat: scroll to main on breadcrumb link 2025-07-09 23:24:52 +02:00
Julien Calixte
044be29ad3 design: more padding and more balanced text left aligned 2025-06-29 12:07:37 +02:00
Julien Calixte
c11989675c feat: mermaid
run mermaid on stacked notes
2025-06-14 10:01:47 +02:00
Julien Calixte
1dda4cf77a design: change paddings 2025-04-08 21:29:26 +02:00
Julien Calixte
c8c669c0c2 feat: reduce padding for mobile 2025-04-08 09:27:55 +02:00
Julien Calixte
3c988c8a45 design: limit the padding of stacked note 2025-04-07 17:26:57 +02:00
Julien Calixte
469e490d9f fix: overflow on breadcrumbs 2025-03-02 21:18:01 +01:00
Julien Calixte
361b9af8f3 change theems 2025-03-01 23:04:09 +01:00
Julien Calixte
6c62f6afa0 Feat/upgrade daisy UI (#12)
* prune: remove daisyui config

* upgrade daisyui and implement new themes

* Update .env checksum
2025-03-01 21:27:35 +01:00
Julien Calixte
4619fcf6da prune: remove transition for color or background-color 2025-02-11 22:19:18 +01:00
Julien Calixte
a590ddc871 design: fix font size in table 2024-12-24 10:13:04 +01:00
Julien Calixte
9e875af78e design: change to good svg! 2024-12-24 00:28:00 +01:00
Julien Calixte
10bc53130c design: breadcrumbs for the stacked note link 2024-12-22 00:12:00 +01:00
Julien Calixte
9571752f26 Feat/migrate to daisy (#10)
* feat: init daisyui!

* feat: change theme and colors

* change dark theme and add colors
2024-12-21 20:05:37 +01:00
Julien Calixte
a1c5cb666a refacto: prepare for a relevant useNote hook 2024-11-02 18:58:51 +01:00
Julien Calixte
100d593050 resilient when title is not set 2024-07-16 21:55:30 +02:00
Julien Calixte
c7ea52c7f8 add path to new inbox file in pinia store
Not ideal to have data in multiple store (pinia and PouchDB) but it work this way. May need a refactoring.
2023-11-26 10:35:38 +01:00
Julien Calixte
2608e9ac5c (edit) add edit light button at the end 2023-11-04 14:12:56 +01:00
Julien Calixte
d1cbe8d033 move icons to public folder 2023-11-04 14:08:28 +01:00
Julien Calixte
2f6e8e7ca8 save editedSha in cached note to remember even after navigations 2023-09-06 22:49:44 +02:00
Julien Calixte
49d2571f5f create today fleeting note 2023-08-27 17:50:42 +02:00
Julien Calixte
6840c86add (edit) exit edit mode on escape press 2023-08-26 19:06:59 +02:00
Julien Calixte
80888696c9 directly update edited content 2023-08-26 18:37:21 +02:00
Julien Calixte
ccb486a0b6 progress for file update inapp 2023-08-20 23:55:25 +02:00
Julien Calixte
978b98bdc5 extract edit note component 2023-08-20 15:34:13 +02:00
Julien Calixte
971df9c45b can edit raw content 2023-08-20 14:24:38 +02:00
Julien Calixte
43b99eed52 refacto to use ref route query 2023-08-15 01:08:08 +02:00
Julien Calixte
6412b1252c refacto with no nosence 2023-08-14 18:42:35 +02:00
Julien Calixte
2cab8c8e3f autoimport with eslint now 2023-08-14 18:04:27 +02:00
Julien Calixte
c0182c7f57 ♻️ (app) 2023-08-14 14:08:10 +02:00