Commit graph

79 commits

Author SHA1 Message Date
Alamion
f77c6ea3f6
fixes:
- another node dependencies fix
2026-06-25 18:14:48 +03:00
Alamion
57fa0d1873
fixes:
- node dependencies fix
2026-06-25 18:11:01 +03:00
Alamion
2aeb8c1bee
feats:
- presets for JQL
  - rename all cached issues
  - rebuild cache command
  - bunch of vitests
fixes:
  - incorrect migration save/load settings
  - incorrect cache validation before obsidian init
2026-06-25 17:47:22 +03:00
Alamion
3278de8748
Merge pull request #28 from Alamion/testing
A bunch of minor fixes
2026-06-03 18:38:32 +03:00
Alamion
ad06c8f4d8
Fix:
- `jira-sync-block-start-` docs fix
- custom fields functions correct load on startup
- jira values highlight rollback due to contributor dropped feature full realization. (In current state it's too buggy to release)
2026-06-03 18:35:22 +03:00
Alamion
e3a2a01270
Merge remote-tracking branch 'slipstyle/feature/highlight-sync-sections' into testing
# Conflicts:
#	src/postprocessing/livePreview.ts
#	src/postprocessing/reading.ts
#	src/settings/default.ts
2026-05-09 14:59:06 +03:00
slips
d4d9746647 fix: resolve TypeScript errors in createUpdateIssue and markdownToAdf
- Fixed processFrontmatter typo (processFrontMatter)
- Fixed minimalIssue type assertion (as any as JiraIssue)
- Fixed AdfTaskListNode interface duplicates
- Fixed AdfBlockNode type union to use AdfTaskListNode
- Fixed statusMapping.fromJira second parameter (api_version)
2026-05-05 18:01:08 -04:00
slips
f259446b74 fix: return null for undefined inputs in markdown converters
- adfToMarkdown(undefined) now returns null instead of ''
- jiraToMarkdown(undefined) now returns null instead of ''
- Prevents empty strings from passing guard clause and clearing note fields
- Proper semantics: undefined = field not in issue, null = field cleared in Jira
2026-05-05 17:03:36 -04:00
slips
5229b2d1a5 fix: update status only — don't call updateJiraToLocal with partial issue
Passing {fields: {status: {name: ...}}} to updateJiraToLocal caused all
fromJira mappings to run with undefined inputs, producing empty strings
that overwrote description and comments. Now updates only the status
field in frontmatter and sync content markers directly.
2026-05-05 16:52:45 -04:00
Alamion
a3211bcdb2
Fix:
- multiple fixes and code refactors for last feats to work correctly
- added Jira api_version variable to field mapping context
2026-05-04 21:05:29 +03:00
Alamion
75dd9d75cd
Merge remote-tracking branch 'slipstyle/feature/add-jira-comments' into testing
# Conflicts:
#	src/api/issues.ts
#	src/main.ts
#	src/modals/index.ts
2026-05-02 17:59:20 +03:00
Alamion
d45309743a
Merge remote-tracking branch 'slipstyle/feature/pull-after-create' into testing
# Conflicts:
#	src/file_operations/createUpdateIssue.ts
2026-04-30 02:01:56 +03:00
Alamion
6e35db6254
Feat:
- @slipstyle's ADF converter (tweaked)
- More broad description of Field Mapping settings section
- a few minor fixes of how lambda js functions convert into strings
2026-04-30 01:44:22 +03:00
Alamoin
f50873d925
Fix
- bump version
2026-04-29 18:05:14 +03:00
Alamoin
bca0cae215
Fix
- codemirror version fix
2026-04-29 17:55:29 +03:00
Alamoin
0786db1535
Feats
- `Super Simple Time Tracker` plugin format support
- Support of multiple Jira connections.
- `AGENTS.md` file from Obidian plugin template and filled with info about project
- Updated eslint configs to `eslint.config.js` format + linted all the code; added prettier with according config
- localization validator improvement; multiple localization fixes
- many minor fixes
2026-04-29 17:41:24 +03:00
slips
a3d2c67da3 fix: indent taskItem continuation lines and filter empty nested blocks in adfToMarkdown 2026-04-28 17:31:49 -04:00
slips
ed988fe101 feat: handle links, wikilinks, checkboxes, and nested lists in ADF conversion
- parseInline: [text](url) → ADF link mark; [[wikilink]] preserved as plain text for round-trip fidelity
- adfInlineToMarkdown: inlineCard renders as [url](url) to preserve link text
- markdownToAdf: - [ ]/- [x] → taskList/taskItem nodes; sub-items flattened with hardBreak (taskItem only allows inline content)
- markdownToAdf: indented sub-bullets under bullet/ordered lists → nested bulletList in listItem
- adfBlockToMarkdown: taskList, bulletList, orderedList all render nested content with 2-space indentation
2026-04-28 16:14:36 -04:00
slips
0639461a08 feat: polish comment modal — full-width textarea, Ctrl+Enter to submit 2026-04-27 17:30:33 -04:00
slips
4958fc6a3c feat: add "Add comment to Jira" command with editor selection pre-fill
Opens a modal pre-populated with any selected editor text, allowing
users to highlight notes in a non-synced section and post them as a
Jira comment in one step. Supports API v2 (plain text) and v3 (ADF).
2026-04-27 17:11:59 -04:00
slips
5df851934d revert: restore broad marker regex for custom field support 2026-04-27 11:05:29 -04:00
slips
1b400e7e55 fix: tighten marker regex to avoid matching CSS class names in docs 2026-04-27 11:02:18 -04:00
slips
ad11b3e89a feat: render comments as expanded callouts instead of heading separators 2026-04-27 10:42:03 -04:00
slips
e99e14c043 fix: handle mention, emoji, link, strike, blockquote, table in adfToMarkdown 2026-04-27 10:31:36 -04:00
slips
aa6e36ba5d Fix block highlight viewport bug: scan full doc for block ranges 2026-04-27 09:05:58 -04:00
slips
5199ad333f feat: pull full issue from Jira after creation
Writes key immediately after create so it is never lost, then fetches
the full issue to populate all synced fields (status, assignee, dates,
comments, etc.) in one step.
2026-04-22 16:44:25 -04:00
slips
3169273f5e fix: use inset box-shadow for block border to preserve list indentation
border-left + padding-left was overriding Obsidian's list item padding,
causing bullet and ordered list markers to overlap the accent bar. An
inset box-shadow achieves the same visual effect without touching layout.
2026-04-22 14:29:35 -04:00
slips
827a28f3ed feat: add comment field as default mapping using adfToMarkdown
Pulls Jira comments into Obsidian notes with author, timestamp (date
and time to second precision), and body converted from ADF to markdown.
Returns empty string when no comments exist.
2026-04-22 13:58:51 -04:00
slips
1562f4ff52 refactor: highlight synced content instead of markers
When highlight mode is on, hide markers as before but wrap the synced
content itself in a highlight decoration:
- Inline sections: background + outline on text between start/end markers
- Line sections: same treatment on text after the line marker
- Block sections: left accent border + tinted background on each content line

Reading mode wraps the same content in a jira-sync-content span.
Uses color-mix() for theme-aware accent tinting.
2026-04-22 11:20:32 -04:00
slips
f4732263f8 feat: add highlight sync sections setting
Add a toggle in General settings to make jira-sync markers visible as
styled labels instead of hiding them. When enabled:
- Markers render with tag-style pill appearance (theme-aware via --tag-* vars)
- Block content between jira-sync-block-start and jira-sync-end gets a
  left border accent line in live preview
- Works in both live preview (CM6) and reading mode
- Cursor inside a marker adds an accent outline (jira-sync-active)

Default is off, preserving existing hide-on-blur behaviour.
2026-04-22 11:09:08 -04:00
slips
45f9c297ed fix: move description conversion into fromJira mapping for v2/v3 compatibility
Remove the blanket jiraToMarkdown() pass on all body sync sections — it was
corrupting ADF-sourced markdown (headings becoming ordered list items). Instead,
the default description fromJira now calls jiraToMarkdown directly, preserving
v2 wiki-markup behaviour. v3 users override description.fromJira with
adfToMarkdown() via their field mapping settings.
2026-04-22 10:55:18 -04:00
slips
75f9277387 feat: add adfToMarkdown for bidirectional description sync
Implement adfToMarkdown, adfInlineToMarkdown, and adfBlockToMarkdown so
that pulling a Jira issue back into Obsidian converts the ADF description
to clean markdown rather than clobbering the note with raw HTML or wiki
markup. Export adfToMarkdown and register it in SAFE_GLOBALS / context so
field mapping expressions can call it directly.
2026-04-22 10:35:00 -04:00
slips
1a14ac37c7 Add markdownToAdf helper for Jira API v3 ADF description support
Converts Obsidian markdown to Atlassian Document Format (ADF) so
descriptions can be sent to the Jira Cloud API v3, which rejects
plain text and wiki markup in the description field.

Supports headings, paragraphs, bullet/ordered lists, fenced code
blocks, horizontal rules, and inline bold/italic/inline code.

Exposes markdownToAdf as a first-class helper in the expression
evaluation context alongside markdownToJira and jiraToMarkdown,
so it can be used in field mapping expressions as markdownToAdf(value).
2026-04-22 09:31:11 -04:00
vsemenov
e603b2545d
Fix
- Refactored createIssue command syntax
- Fixed [bug](https://github.com/Alamion/obsidian-jira-sync/issues/15)
2026-03-02 11:29:23 +03:00
vsemenov
269c2ae602
Fix
- fixed broken links (URLs) in description
2026-02-26 16:22:09 +03:00
vsemenov
56cb853bb4
Fix
- regex end line anchor fix
2026-02-17 17:28:16 +03:00
Alamion
b43f731b0a
File indicators update
- File reading for `jira-sync-*` is now much more time efficient.
- Readmes updated in terms of how file body indicators work.
- Template example reworked.
- Fixed how hidden indicators look like in Live Preview (no more glitching lines)
2026-01-27 21:23:35 +03:00
vsemenov
a4ec70fecd
Field Mapping update
- Now you have a few built-in functions and JS modules to use in Field Mapping section, validation supported
- Readmes updated, a few images replaced
2026-01-19 18:30:48 +03:00
Alamion
925c827f49
fix
- Fixed 'expand' field for API v2
2026-01-12 17:32:35 +03:00
Alamion
1b6bd14cfa
fix
- Extra check for 'startAt' and 'nextPageToken' for different APIs versions before sending request to Jira
2025-12-18 21:06:06 +03:00
Alamion
67d19a5b34
Small feats
- Changed default filename template from "{summary} [{key}]" to "{summary} ({key})", so there should be less problems with inline md links
- Took the filename option to fetch settings section so you can configure it yourself
- Added husky precommit check, so I won't forget to bump versions of plugin anymore
2025-12-12 22:45:39 +03:00
Alamion
d0a38d31f7
- another fix for Jira v3 jql search
- "Raw Issue Viewer" renamed into "Fetch Issue Settings", added useful 'fields' and 'expand' params used in most fetch requests.
- now Global settings use correct native Search component instead of custom one.
- refactored period selector in Timekeep settings so it now also uses native component.
- migrated most of settings values. Old user data will be auto migrated too. I'll delete migration script in a year or two.
2025-12-05 02:43:35 +03:00
Alamion
a1a299ba49
- send comment option from Timekeep statistics section
- ping button in connection options
- try fix batch import from Jira once again
2025-11-24 22:26:07 +03:00
Alamion
e7d4af611b
jql fix 2025-10-06 00:12:54 +03:00
Alamion
08a9c48cfb
version alignment 2025-09-25 20:19:51 +03:00
Alamion
eeea7635e0
JQL API v3 problem fix 2025-09-23 00:10:51 +03:00
Alamion
5ae08dfcce
Different api versions update
- Now plugin supports both v2 and v3 Jira API
  - Some preparation for solving bottleneck problem
2025-09-20 21:33:36 +03:00
Alamion
ef9c7259fa
JQL update:
- JQL pull tasks (with preview)
  - Timekeep settings menu full rework
  - bunch of small fixes with data transformation and pointers
  - now caching Jira key -> file path to increase performance
  - new pointer - `jira-sync-inline-*`
  - readme slight rework
2025-09-12 01:27:42 +03:00
Alamion
7824d7bc7e
Fixed jira-sync-section-* regex 2025-08-25 18:15:23 +03:00
Alamion
2192cfed42
npm build script fix 2025-08-25 16:30:09 +03:00