summaryrefslogtreecommitdiff
path: root/content/projects/wsdiff/index.rst
blob: 44cd4c316a1ccdcd31b58b8489a8fe8a0494c591 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
---
title: "wsdiff"
external_links:
    - name: Sources
      url: "https://git.jaseg.de/wsdiff.git"
    - name: Issues
      url: "https://github.com/jaseg/wsdiff/issues"
    - name: PyPI
      url: "https://pypi.org/project/wsdiff"
summary: >
    wsdiff is a command-line utility that produces self-contained, syntax-highlighted, HTML-formatted diffs that support
    both unified and side-by-side diffs from a single source file using nothing but CSS magic.
---

wsdiff is a python script that produces a diff of two files or directories as a single, self-contained HTML file. The
resulting diff works without Javascript and will automatically switch between inline and side-by-side formats depending
on available screen space.

Installation
============

.. code:: sh

    $ pip install wsdiff

Usage
=====

::

    usage: wsdiff [-h] [-b] [-s SYNTAX_CSS] [-l LEXER] [-L] [-t PAGETITLE]
                        [-o OUTPUT] [--header] [--content]
                        [old] [new]

    Given two source files or directories this application creates an html page
    that highlights the differences between the two.

    positional arguments:
      old                   source file or directory to compare ("before" file)
      new                   source file or directory to compare ("after" file)

    options:
      -h, --help            show this help message and exit
      -b, --open            Open output file in a browser
      -s SYNTAX_CSS, --syntax-css SYNTAX_CSS
                            Path to custom Pygments CSS file for code syntax
                            highlighting
      -l LEXER, --lexer LEXER
                            Manually select pygments lexer (default: guess from
                            filename, use -L to list available lexers.)
      -L, --list-lexers     List available lexers for -l/--lexer
      -t PAGETITLE, --pagetitle PAGETITLE
                            Override page title of output HTML file
      -o OUTPUT, --output OUTPUT
                            Name of output file (default: stdout)
      --header              Only output HTML header with stylesheets and stuff,
                            and no diff
      --content             Only output HTML content, without header

Example Output
==============

.. image:: latest.png