Commit graph

24 commits

Author SHA1 Message Date
waaraawa
98e42aea3d chore: add Obsidian scorecard preflight checks 2026-06-17 10:11:21 +09:00
waaraawa
e68a0f3733 style: format project files 2026-05-29 14:52:46 +09:00
waaraawa
052ee9edd9 chore: stop tracking local todo file 2026-05-29 14:52:29 +09:00
waaraawa
32d30a6446 chore: restore version to 1.0.0 2026-05-29 14:52:29 +09:00
waaraawa
2f1c36294f chore: fix quality commands and deploy flow 2026-05-29 14:52:29 +09:00
waaraawa
880ca6bf93 integrate obsidian API and native CSS variables
- Update license to the current year
- Remove js-yaml dependency from core, switching to Obsidian's parseYaml API in the plugin
- Add CustomTheme support to dynamically map Obsidian's CSS color variables to the SVG renderer for better theme compatibility
- Extract hardcoded local vault path from esbuild config to a gitignored .env file
2026-05-29 13:36:51 +09:00
waaraawa
76c597622c feat: Improve monorepo module resolution and fix clean build 2026-05-29 13:36:51 +09:00
waaraawa
e584bb1ff5 fix: apply sentence case to main.ts again 2026-05-29 13:36:51 +09:00
waaraawa
c0882803ea fix: apply sentence case to main.ts 2026-05-29 13:36:14 +09:00
waaraawa
29dfe5ed0c Fix Obsidian plugin validation issues
- Fix DataType union type (use template literal instead of string)
  - Add 'bits' type to BaseDataType
  - Fix Object stringification in parser (add type validation)
  - Remove unnecessary type assertion in layoutEngine
  - Replace console.log with removal (Obsidian only allows warn/error/debug)
  - Replace innerHTML with DOMParser for safe SVG insertion
  - Fix UI text to sentence case
  - Remove async from onload (no await needed)
  - All 141 tests passing
2025-11-13 13:40:49 +09:00
waaraawa
340125a7cf Fix manifest.json for Obsidian plugin submission
- Add period to description
  - Change authorUrl to author profile instead of repo
2025-11-12 13:01:42 +09:00
waaraawa
5d2e92f435 Move manifest.json to root for Obsidian plugin submission 2025-11-12 12:56:00 +09:00
waaraawa
504b944a29 docs: add screenshots and update README for v1.0.0 2025-10-23 08:44:18 +09:00
waaraawa
65ed6bf8d3 feat: display all byte offsets in hexadecimal format
- Change all byte offsets to hexadecimal (0x00, 0x01, 0x02...)
    - Column headers: 0x00, 0x01, 0x02, 0x03...
    - Row labels: 0x00, 0x10, 0x20, 0x30...
    - Cell numbers: 0x00, 0x01, 0x02, 0x03...
    - Legend offsets: offset: 0x00-0x03 (4 bytes)
  - Bit layout mode still uses decimal for bit positions (0-7)
  - Update tests to match hex format
2025-10-23 08:44:08 +09:00
waaraawa
482b458370 feat(core): add automatic color assignment for fields
- Add autoColor option (default: true)
    - true: Auto-assign colors to fields without explicit colors
    - false: Use gray for fields without explicit colors
  - Auto color sequence: blue, cyan, yellow, green, orange, purple, mint, pink
  - Padding/reserved fields always use gray
  - Explicit colors always take precedence

  Examples & Documentation:
  - Add 4 example files (basic, manual, mixed, interactive guide)
  - Update examples/README.md with Auto Color section
  - Add Color Options explanation

  Tests:
  - Add 8 new tests (5 layoutEngine, 3 parser)
  - Update existing test for autoColor: false
2025-10-22 22:24:24 +09:00
waaraawa
39f3e84fac feat(core): add color scheme support (default/dark/light)
- Add colorScheme option to RenderOptions and ByteGridConfig
  - Implement color transformation with RGB ↔ HSL conversion
    - Default: original pastel colors (no transformation)
    - Dark: reduce saturation (-20%) and lightness (-10%)
    - Light: increase lightness (+20%)
  - Apply color transformation to both grid blocks and legend
  - Add 10 new tests (4 parser, 6 renderer)
2025-10-15 08:30:24 +09:00
waaraawa
cbba30bb72 feat(core): improve legendColumns with row-major order
- Change legend layout from column-major to row-major order
  - Fields now fill left-to-right, then top-to-bottom
  - More intuitive for users (e.g., 4 fields + 3 cols = 3-1 layout)
  - Fix bottom position width calculation for multi-column legends
  - totalWidth now accounts for legend width (200px per column)
  - Add tests for 3-column layout with 6 fields
2025-10-14 13:16:36 +09:00
waaraawa
4d5cd4e289 feat(core): add legend position and footer control options
- Add legendPosition option (right, left, bottom, none) to control legend placement
  - Add showFooter option to show/hide footer info
  - Support both config (YAML) and render options for flexibility
  - Fix legend overlapping issue when positioned at bottom
  - Maintain backward compatibility with showLegend option
2025-10-14 11:19:33 +09:00
waaraawa
43ae040047 feat(core): add bitfield grid visualization
- Add uniformRowHeight option to RenderOptions
  - Render bit grid (8 vertical lines) inside bitfield cells
  - Show bit numbers (7-0, MSB first) below byte numbers
  - Increase row height to 45px for rows with bitfields
  - Increase default cellWidth to 40px for readability
  - Add 6 new tests for bitfield visualization
2025-10-13 18:54:15 +09:00
waaraawa
d43703912e test(core): implement Parser module with full test coverage
- Add parser.ts with YAML to ByteGridConfig conversion
  - Support all field properties including bitfields
  - Handle both string and number offset formats (YAML parses 12 as number)
  - Apply default layout value of 16
  - Add comprehensive error handling with ParseError
  - Add 14 test cases covering all parsing scenarios
  - All tests passing (14/14)
2025-10-13 13:04:47 +09:00
waaraawa
8ad49736e0 feat(plugin): add basic SVG rendering prototype
- Implement YAML parsing with js-yaml
  - Add simple SVG renderer with color-coded fields
  - Create legend with field information on the right
  - Set up dev workflow with auto-build and copy to Obsidian
  - Support 9 color palette (blue, cyan, yellow, green, orange, purple, mint, pink, gray)
  - Fix field label overlap by moving to legend
2025-10-13 12:57:20 +09:00
waaraawa
71aaec03bf chore: initial project setup 2025-10-13 09:34:29 +09:00
waaraawa
3cedbcf635 docs: add archtecture document 2025-10-08 11:58:30 +09:00
waaraawa
b588b1c854
Initial commit 2025-10-04 00:19:35 +09:00