Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: JSv4/Docxodus
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v5.1.2
Choose a base ref
...
head repository: JSv4/Docxodus
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v5.2.0
Choose a head ref
  • 8 commits
  • 24 files changed
  • 2 contributors

Commits on Dec 4, 2025

  1. chore: remove GitHub Packages, update install docs for nuget.org

    - Remove GitHub Packages publishing from workflow (now using nuget.org only)
    - Update redline README with simple nuget.org install command
    - All packages now available via: dotnet tool install --global <PackageName>
    JSv4 committed Dec 4, 2025
    Configuration menu
    Copy the full SHA
    4a95b91 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2025

  1. feat(annotations): add external annotation system (Issue #57)

    Add a parallel annotation system that stores annotations externally as
    JSON without modifying the source DOCX file. Annotations are validated
    against a SHA256 document hash and projected onto HTML during rendering.
    
    Core components:
    - ExternalAnnotationSet: extends OpenContractDocExport with document
      binding (documentId, documentHash, timestamps, label definitions)
    - ExternalAnnotationManager: hash computation, annotation creation from
      offsets or text search, validation, JSON serialization
    - ExternalAnnotationProjector: projects annotations onto HTML as styled
      spans with configurable label modes (Above, Inline, Tooltip, None)
    
    WASM layer:
    - AOT-safe JSON deserialization using source-generated JsonContext
    - camelCase property naming for JavaScript interop
    - JSExport methods: ComputeDocumentHash, CreateExternalAnnotationSet,
      ValidateExternalAnnotations, ConvertDocxToHtmlWithExternalAnnotations,
      SearchTextOffsets
    
    TypeScript/npm:
    - Full type definitions for external annotation types
    - Wrapper functions matching WASM exports
    - Client-side helpers for annotation creation
    - Test harness with external annotation API
    
    Testing:
    - 21 C# unit tests for core functionality
    - 11 Playwright browser tests including visual demo
    - Visual demo renders document with annotations and JSON panel
    
    Closes #57
    JSv4 committed Dec 5, 2025
    Configuration menu
    Copy the full SHA
    3250f93 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #73 from JSv4/feature/external-annotations-issue-57

    feat(annotations): add external annotation system (Issue #57)
    JSv4 authored Dec 5, 2025
    Configuration menu
    Copy the full SHA
    88e88b5 View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2025

  1. fix(comparer): preserve legal numbering when comparing documents

    When comparing Word documents where one has legal numbering (w:isLgl)
    and the other doesn't, the comparison result was losing the legal
    numbering definitions entirely.
    
    Root cause: The result document starts as a copy of source1, and while
    styles were copied from source2 via CopyMissingStylesFromOneDocToAnother,
    there was no equivalent for numbering definitions.
    
    Fix: Added CopyMissingNumberingFromOneDocToAnother that:
    - Copies missing w:abstractNum elements from revised to result
    - Copies missing w:num elements with proper abstractNumId remapping
    - Handles ID conflicts by assigning new IDs when definitions differ
    - Compares by content (not just ID) to detect different definitions
    
    Fixes: dotnet/Open-XML-SDK#1634
    JSv4 committed Dec 6, 2025
    Configuration menu
    Copy the full SHA
    5d37e1d View commit details
    Browse the repository at this point in the history
  2. refactor(comparer): improve null-safety and content-matching in numbe…

    …ring merge
    
    - Add null-safe GetIntAttribute helper for robust attribute extraction
    - Check for matching abstractNum content across ALL destination elements
      (not just by ID) to avoid duplicate definitions
    - Use explicit PutXDocument(toNumberingXDoc) for clarity
    - Add null-checks when setting abstractNumId element values
    - Improve code comments for maintainability
    JSv4 committed Dec 6, 2025
    Configuration menu
    Copy the full SHA
    dd86ac7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    10bc6da View commit details
    Browse the repository at this point in the history
  4. docs: update READMEs and fix repository URLs

    - Update main README.md:
      - Fix installation instructions (NuGet, not GitHub Packages)
      - Update repository URLs from JSv4/Redlines to JSv4/Docxodus
      - Add format change detection to features
      - Expand HTML converter features (comments, pagination, headers/footers)
      - Add OpenContractExporter to features list
      - Update npm example with new APIs (metadata, format changes)
      - Update test count (~1,100)
    
    - Update npm/README.md:
      - Add new features (move detection, format changes, pagination, etc.)
      - Update RevisionType enum with Moved and FormatChanged
      - Add getDocumentMetadata and exportToOpenContract API docs
      - Add Web Worker API section
      - Add additional React hooks (useAnnotations, useDocumentStructure)
      - Expand ConversionOptions with new properties
      - Fix credits URL
    
    - Update tools READMEs:
      - Add environment variable documentation (DEBUG flags)
      - Remove outdated limitation (headers/footers now supported)
      - Fix license URLs to JSv4/Docxodus
    
    - Fix repository URLs in all .csproj files:
      - Docxodus/Docxodus.csproj
      - tools/redline/redline.csproj
      - tools/docx2html/docx2html.csproj
      - tools/docx2oc/docx2oc.csproj
    JSv4 committed Dec 6, 2025
    Configuration menu
    Copy the full SHA
    d18393c View commit details
    Browse the repository at this point in the history
  5. Merge pull request #75 from JSv4/fix/legal-numbering-issue-1634

    fix(comparer): preserve legal numbering when comparing documents
    JSv4 authored Dec 6, 2025
    Configuration menu
    Copy the full SHA
    8058c20 View commit details
    Browse the repository at this point in the history
Loading