- Notifications
You must be signed in to change notification settings - Fork8
🎲 Generate razor-sharp Xiangqi (Chinese chess) setup graphics; command line tool + themes
hartwork/xiangqi-setup
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
xiangqi-setup is a command line tool usingsvgutils 0.3.4 torenderXiangqi (Chinese chess) board setups from WXF/FEN/annoFEN/XAY files to SVG images.With WXF files that contain move history,xiangqi-setup can replay these moves on top of the initial setup —all of them, none, or any custom number of moves (using the--moves COUNT
argument).WithXAY/annoFEN filesit can also drawarrows, mark a field as "good", "bad" or involved in a move —it can addannotations.
The most simple way to render a given setup is:
#xiangqi-setup input.wxf output.svg
For filedoc/demo.wxf, the result is:
(left: default board, default pieces — right: default board,euro_xiangqi_js
pieces)
There are a number of themes to pick from for board and pieces (independently).The--help
listing below also includes the list of all themesand their license information.
Thedefault board themeclean_alpha
has been generated with command line toolxiangqi-board
that is included with thexiangqi-setup package. It can be used to createvariations of the detault theme, e.g. to create a version with reduced spacingin crosses you would run:
#xiangqi-board --cross-gap-px 2 board.{svg,ini}
You can install the latest release using pip like so:
#pip install xiangqi-setup
If you would rather run the latest pre-release code off Gitmaster
in a virtualenv, you could do:
#git clone --depth 1 https://github.com/hartwork/xiangqi-setup#cd xiangqi-setup/#python3 -m venv venv#source venv/bin/activate#pip install -e.
For a demo of how to usexiangqi-setup in writing a bookplease seehttps://github.com/hartwork/xiangqi-book-example .
#xiangqi-setup --helpusage: xiangqi-setup [OPTIONS] INPUT_FILE OUTPUT_FILE xiangqi-setup --help xiangqi-setup --versionGenerate razor-sharp Xiangqi (Chinese chess) setup graphicspositional arguments: INPUT_FILE location of WXF/FEN/annoFEN/XAY file to render OUTPUT_FILE location of SVG output file to writeoptional arguments: -h, --help show this help message and exit --debug enable debugging (e.g. mark corners of the board) --version show program's version number and exittheme selection: --board THEME name of board theme to use (default: "clean_alpha"); please check the list of available themes below --pieces THEME name of piece theme to use (default: "retro_simple"); please check the list of available themes below --annotations THEME name of annotation theme to use (default: "colors_alpha"); please check the list of available themes belowscaling: --width-px PIXEL width of the output in pixels (default: ~248.03, i.e. 7.0cm at 90.0dpi) --width-cm CENTIMETER width of the output in centimeters (default: 7.0) --dpi FLOAT resolution of the output in dots per inch (default: 90.0) --scale-pieces FACTOR factor to scale pieces by (0.0 to 1.2, default: 0.9) --scale-annotations FACTOR factor to scale annotations by (0.0 to 1.2, default: 0.9)WXF format arguments: --moves COUNT how many moves to play (for a file with moves history), e.g. "3" would play the first move of red, the first move of black and the second move of red and then skip any remaining moves, "all" would play all moves, "-1" all moves but the last, "-2" all but the last two (default: "0") --annotate-last-move Add annotations "blank_move" and "piece_move" to the source and target locations of the last moveboard themes (16 available, in alphabetic order): a4_blank_2cm_margin (license: CC0-1.0) cambaluc_remake_nolegend (license: CC0-1.0) cambaluc_remake_nolegend_nogap (license: CC0-1.0) ccbridge_3_0_beta4_default_preview_remake (license: CC0-1.0) clean_alpha (license: CC0-1.0) clean_beta (license: CC0-1.0) commons_xiangqi_board_2008 (license: public-domain) commons_xiangqi_board_2008_bw_thin (license: public-domain) dhtmlxq_2014_remake (license: CC0-1.0) latex_xq_remake (license: CC0-1.0) minimal (license: CC0-1.0) minimal_chinese (license: CC0-1.0) minimal_chinese_arabic (license: CC0-1.0) playok_2014_remake (license: CC0-1.0) western_red_wine (license: CC0-1.0) xiexie_2_5_0_remake_minimal (license: CC0-1.0)piece themes (10 available, in alphabetic order): ccbridge_3_0_beta4_default_preview_remake (license: CC0-1.0) commons_xiangqi_pieces_print_2010 (license: FDL-1.2+ / CC-BY-SA-4.0) commons_xiangqi_pieces_print_2010_bw_heavy (license: FDL-1.2+ / CC-BY-SA-4.0) euro_xiangqi_js (license: CC-BY-4.0) euro_xiangqi_js_tricolor (license: CC-BY-4.0) latex_xqlarge_2006_chinese_autotrace (license: non-commercial) latex_xqlarge_2006_chinese_potrace (license: non-commercial) playok_2014_chinese (license: CC0-1.0) playok_2014_chinese_noshadow (license: CC0-1.0) retro_simple (license: CC0-1.0)annotation themes (2 available, in alphabetic order): colors_alpha (license: CC0-1.0) gray_alpha (license: CC0-1.0)
#xiangqi-board --helpusage: xiangqi-board [-h] [--line-thickness-px FLOAT] [--field-width-px FLOAT] [--field-height-px FLOAT] [--border-thickness-px FLOAT] [--border-gap-width-px FLOAT] [--border-gap-height-px FLOAT] [--cross-width-px FLOAT] [--cross-thickness-px FLOAT] [--cross-gap-px FLOAT] SVG_FILE INI_FILEpositional arguments: SVG_FILE INI_FILEoptional arguments: -h, --help show this help message and exit --line-thickness-px FLOAT Line thickness of square fields in pixel (default: 1) --field-width-px FLOAT Width of fields in pixel (default: 53) --field-height-px FLOAT Height of fields in pixel (default: 53) --border-thickness-px FLOAT Line thickness of border in pixel (default: 2) --border-gap-width-px FLOAT Widtn of gap to border in pixel (default: 40) --border-gap-height-px FLOAT Height of gap to border in pixel (default: 40) --cross-width-px FLOAT Width of starting position cross segments in pixel (default: 10) --cross-thickness-px FLOAT Line thickness of starting position cross in pixel (default: 1) --cross-gap-px FLOAT Gap to starting position cross in pixel (default: 4)
About
🎲 Generate razor-sharp Xiangqi (Chinese chess) setup graphics; command line tool + themes