{"id":20687553,"url":"https://github.com/canismarko/dungeon-sheets","last_synced_at":"2025-10-07T14:27:02.491Z","repository":{"id":39757980,"uuid":"123811684","full_name":"canismarko/dungeon-sheets","owner":"canismarko","description":"A tool to create character sheets and GM session notes for Dungeons and Dragons fifth edition (D\u0026D 5e).","archived":false,"fork":false,"pushed_at":"2025-03-27T00:43:32.000Z","size":16676,"stargazers_count":179,"open_issues_count":19,"forks_count":68,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-09T13:50:59.646Z","etag":null,"topics":["dungeons-and-dragons","python3"],"latest_commit_sha":null,"homepage":"https://dungeon-sheets.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/canismarko.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-04T17:26:11.000Z","updated_at":"2025-05-01T14:28:14.000Z","dependencies_parsed_at":"2023-02-16T22:46:06.215Z","dependency_job_id":"4067ee83-4651-4f47-a82a-ea611925bb91","html_url":"https://github.com/canismarko/dungeon-sheets","commit_stats":{"total_commits":404,"total_committers":35,"mean_commits":"11.542857142857143","dds":0.5915841584158417,"last_synced_commit":"ab5d948fb6a0f2b606654d33685a4290150e8c19"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canismarko%2Fdungeon-sheets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canismarko%2Fdungeon-sheets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canismarko%2Fdungeon-sheets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canismarko%2Fdungeon-sheets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/canismarko","download_url":"https://codeload.github.com/canismarko/dungeon-sheets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394724,"owners_count":22063984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dungeons-and-dragons","python3"],"created_at":"2024-11-16T22:57:38.865Z","updated_at":"2025-10-07T14:26:57.422Z","avatar_url":"https://github.com/canismarko.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"================\n Dungeon Sheets\n================\n\nA tool to create character sheets and session notes for Dungeons and\nDragons 5th edition (D\u0026D 5e).\n\n.. image:: https://travis-ci.com/canismarko/dungeon-sheets.svg?branch=master\n   :target: https://travis-ci.com/canismarko/dungeon-sheets\n   :alt: Build status\n\n.. image:: https://coveralls.io/repos/github/canismarko/dungeon-sheets/badge.svg\n   :target: https://coveralls.io/github/canismarko/dungeon-sheets\n   :alt: Test coverage status\n\n.. image:: https://readthedocs.org/projects/dungeon-sheets/badge/?version=latest\n   :target: https://dungeon-sheets.readthedocs.io/en/latest/?badge=latest\n   :alt: Documentation Status\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/psf/black\n\nDocumentation\n=============\n\nDocumentation can be found on readthedocs_.\n\n.. _readthedocs: https://dungeon-sheets.readthedocs.io/en/latest/?badge=latest\n\n\nDocker\n======\nYou can run this repository directly from a container.\n\nRun the following in a directory with valid character files (such as the examples_ directory):\n\n.. code:: bash\n\n    $ docker run -it -v $(pwd):/build ghcr.io/canismarko/dungeon-sheets:master\n\n\nInstallation\n============\n\n.. code:: bash\n\n    $ pip install dungeonsheets\n\n.. note::\n\n   Dungeon sheets requires **at least python 3.6**. This is mostly due\n   to the liberal use of f-strings_. If you want to use it with\n   previous versions of python 3, you'll probably have to replace all\n   the f-strings with the older ``.format()`` method or string\n   interpolation.\n\n.. _f-strings: https://www.python.org/dev/peps/pep-0498/\n\nOptional External dependencies\n==============================\n\n* You may use **pdftk** to generate the sheets in PDF format.\n* You will need **pdflatex**, and a few latex packages, installed to\n  generate the PDF spell pages (optional).\n\nIf **pdftk** is available, it will be used for pdf generation. If not,\na fallback python library (pypdf) will be used. This has the\nlimitation that it is not able to flatten PDF forms.\n  \nDifferent linux distributions have different names for packages. While\npdftk is available in Debian and derivatives as **pdftk**, the package\nis not available in some RPM distributions, such as Fedora and CentOS.\nOne alternative would be to build your PC sheets using docker.\n\nIf the ``pdflatex`` command is available on your system, spellcasters\nwill include a spellbook with descriptions of each spell known. If\nnot, then this feature will be skipped.\n\nIn order to properly format descriptions for spells/features/etc.,\nsome additional latex packages are needed. On Ubuntu these can be\ninstall with:\n\n.. code:: bash\n\n    $ sudo apt-get -y install pdftk texlive-latex-base texlive-latex-extra texlive-fonts-recommended\n\nUsage\n=====\n\nEach character or set of GM notes is described by a python (or a VTTES\nJSON) file, which gives many attributes associated with the\ncharacter. See examples_ for more information about the character\ndescriptions.\n\n.. _examples: https://github.com/canismarko/dungeon-sheets/tree/master/examples\n\nThe PDF's can then be generated using the ``makesheets`` command. If\nno filename is given, the current directory will be parsed and any\nvalid files found will be processed. If the ``--recursive`` option is\nused, sub-folders will also be parsed.\n\n.. code:: bash\n\n    $ cd examples\n    $ makesheets\n\ndungeon-sheets contains definitions for standard weapons and spells,\nso attack bonuses and damage can be calculated automatically.\n\nConsider using the ``-F`` option to include the excellent D\u0026D 5e\ntemplate for rendering spellbooks, druid wild forms and features\npages (https://github.com/rpgtex/DND-5e-LaTeX-Template).\n\nBy default, your character's spells are ordered alphabetically. If you\nwould like your spellbook to be ordered by level, you can use the ``-S``\noption to do so.\n\nIf you'd like a **step-by-step walkthrough** for creating a new\ncharacter, just run ``create-character`` from a command line and a\nhelpful menu system will take care of the basics for you.\n\n\nContent Descriptions\n====================\n\nThe descriptions of content elements (e.g. classes, spells, etc.) are\nincluded in docstrings. The descriptions should ideally conform to\nreStructured text. This allows certain formatting elements to be\nproperly parsed and rendered into LaTeX or HTML::\n\n  class Scrying(Spell):\n    \"\"\"You can see and hear a particular creature you choose that is on\n    the same plane of existence as you. The target must make a W isdom\n    saving throw, which is modified by how well you know the target\n    and the sort of physical connection you have to it. If a target\n    knows you're casting this spell, it can fail the saving throw\n    voluntarily if it wants to be observed.\n\n    Knowledge - Save Modifier\n    -------------------------\n    - Secondhand (you have heard of the target) - +5\n    - Firsthand (you have met the target) - +0\n    - Familiar (you know the target well) - -5\n\n    Connection - Save Modifier\n    --------------------------\n    - Likeness or picture - -2\n    - Possession or garment - -4\n    - Body part, lock of hair, bit of nail, or the like - -10\n\n    \"\"\"\n    name = \"Scrying\"\n    level = 5\n    ...\n\nFor content that is not part of the SRD, consider using other\nsources. As an example, parse5e_ can be used to retrieve spells.\n\n\n.. _parse5e: https://github.com/user18130814200115-2/parse5e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanismarko%2Fdungeon-sheets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanismarko%2Fdungeon-sheets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanismarko%2Fdungeon-sheets/lists"}