{"id":16894089,"url":"https://github.com/firefart/pandocserver","last_synced_at":"2025-08-08T23:26:43.899Z","repository":{"id":143434116,"uuid":"609680142","full_name":"firefart/pandocserver","owner":"firefart","description":"simple webserver to interact with pandoc and generate PDFs from markdown","archived":false,"fork":false,"pushed_at":"2024-10-05T12:09:37.000Z","size":544,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-14T17:17:34.061Z","etag":null,"topics":["docker","markdown","pandoc","pdf"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firefart.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"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":"2023-03-04T22:45:46.000Z","updated_at":"2024-10-05T12:09:40.000Z","dependencies_parsed_at":"2023-10-05T14:10:43.909Z","dependency_job_id":"34d50099-5a2e-47ac-9e04-4e858fae05f3","html_url":"https://github.com/firefart/pandocserver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefart%2Fpandocserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefart%2Fpandocserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefart%2Fpandocserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefart%2Fpandocserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firefart","download_url":"https://codeload.github.com/firefart/pandocserver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244931482,"owners_count":20534008,"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":["docker","markdown","pandoc","pdf"],"created_at":"2024-10-13T17:17:38.859Z","updated_at":"2025-03-22T08:31:28.586Z","avatar_url":"https://github.com/firefart.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pandocserver\n\nthis is a simple webserver to interact with pandoc and generate PDFs from markdown.\n\nIt includes the eisvogel template so take a look at their yml options here if you want to use it [https://github.com/Wandmalfarbe/pandoc-latex-template](https://github.com/Wandmalfarbe/pandoc-latex-template). You can modify the template using the yml options at the top.\n\nIf you have embedded resources like images and backgrounds in your markdown file you must also supply them with the correct path.\n\nTo run the server it's easiest by using the provided docker image as it comes with everything installed.\n\nYou should not pass untrusted user input to this webserver and always filter your input. The binary is run with the --sandbox option but there are still ways to escape from the normal workflow.\n\n## Options\n\n```text\nUsage of ./pandocserver:\n  -command-timeout duration\n        the timeout for the conversion command. Can also be set through the PANDOC_COMMAND_TIMEOUT environment variable. (default 1m0s)\n  -debug\n        Enable DEBUG mode. Can also be set through the PANDOC_DEBUG environment variable.\n  -graceful-timeout duration\n        the duration for which the server gracefully wait for existing connections to finish - e.g. 15s or 1m. Can also be set through the PANDOC_GRACEFUL_TIMEOUT environment variable. (default 5s)\n  -host string\n        IP and Port to bind to. Can also be set through the PANDOC_HOST environment variable. (default \":8080\")\n  -pandoc-data-dir string\n        The pandoc data dir containing the templates. Can also be set through the PANDOC_DATA_DIR environment variable. (default \"/.pandoc\")\n  -pandoc-path string\n        The path of the pandoc binary. Can also be set through the PANDOC_PATH environment variable. (default \"/usr/local/bin/pandoc\")\n```\n\n## Running\n\nThe dockerimage already contains everything you need to get started. The image is published on Dockerhub [https://hub.docker.com/r/firefart/pandocserver](https://hub.docker.com/r/firefart/pandocserver) and the github container registry [https://github.com/firefart/pandocserver/pkgs/container/pandocserver](https://github.com/firefart/pandocserver/pkgs/container/pandocserver).\n\nIt's also advised the run the image with the `--init` flag as there are subprocess spawned that might not get cleaned up correctly. If using docker compose you can set `init: true` in the definition.\n\n```text\ndocker pull golang:latest\ndocker pull pandoc/extra:latest\ndocker build --tag pandocserver:dev .\ndocker run -v \"$(pwd):/volume\" --init --rm -p 8000:8000 pandocserver:dev -config /volume/config.json\n```\n\nDocker compose setup\n\n```yml\npandocserver:\n  image: firefart/pandocserver:latest\n  restart: unless-stopped\n  init: true\n```\n\n## Requests\n\nTo convert a document send a POST request to the `/convert` endpoint. The request needs to be JSON with the appropiate Content-Type header and the following structure:\n\n```json\n{\n  \"input\": \"Base64 encoded markdown template\",\n  \"resources\": {\n    \"background.pdf\": \"base64 encoded file content\",\n    \"test.jpg\": \"base64 encoded file content\"\n  },\n  \"template\": \"template to use, for example eisvogel\"\n}\n```\n\nThe `resources` object is optional and can be omitted if no resources are needed. If you specify `eisvogel` for `template` the included eisvogel template is used. You can also use your own templates.\n\nThe returned response is also a JSON object with two possible outcomes. If the status code is not 200 there was an error. In this case the detailed error is shown on the terminal and a generic error message is sent back to the client.\n\nError JSON Response:\n\n```json\n{\n  \"error\": \"error message\"\n}\n```\n\nDefault Response when status is 200:\n\n```json\n{\n  \"content\": \"base64 encoded PDF\"\n}\n```\n\nIf the status code is 200 you will get a base64 encoded pdf file in the `content` object. Just base64decode the content and save it as a pdf.\n\nYou can add more commands using the yml section of the input document [https://pandoc.org/MANUAL.html#general-writer-options-1](https://pandoc.org/MANUAL.html#general-writer-options-1).\n\nFor example to include a table of contents and load the pgf-pie library you can add the following to your yml\n\n```yml\ntoc: true\ntoc-depth: 3\ntoc-own-page: true\nheader-includes: |\n  \\usepackage{tikz}\n  \\usepackage{pgf-pie}\n```\n\nTo add syntax highlighting for code\n\n```yml\nlistings: true\n```\n\n## Example\n\n### Basic\n\nExample request to send the basic example from [https://raw.githubusercontent.com/Wandmalfarbe/pandoc-latex-template/master/examples/basic-example/document.md](https://raw.githubusercontent.com/Wandmalfarbe/pandoc-latex-template/master/examples/basic-example/document.md):\n\nThis uses the following additional metadata:\n\n```yml\nlistings: true\n```\n\n\u003ccode\u003ecurl -H 'content-type: application/json' -X POST --data '{\"input\":\"LS0tCnRpdGxlOiAiRXhhbXBsZSBQREYiCmF1dGhvcjogW0F1dGhvcl0KZGF0ZTogIjIwMTctMDItMjAiCnN1YmplY3Q6ICJNYXJrZG93biIKa2V5d29yZHM6IFtNYXJrZG93biwgRXhhbXBsZV0KbGFuZzogImVuIgpsaXN0aW5nczogdHJ1ZQouLi4KCiMgVmluYXF1ZSBzYW5ndWluZSBtZXR1ZW50aSBjdWlxdWFtIEFsY3lvbmUgZml4dXMKCiMjIEFlc2N1bGVhZSBkb211cyB2aW5jZW11ciBldCBWZW5lcmlzIGFkc3VldHVzIGxhcHN1bQoKTG9yZW0gbWFya2Rvd251bSBMZXRvaWEsIGV0IGFsaW9zOiBmaWd1cmFlIGZsZWN0ZW50ZW0gYW5uaXMgYWxpcXVpZCBQZW5lb3NxdWUgYWIKZXNzZSwgb2JzdGF0IGdyYXZpdGF0ZS4gT2JzY3VyYSBhdHF1ZSBjb25pdWdlLCBwZXIgZGUgY29uaXVueCwgc2liaSAqKm1lZGlhcwpjb21tZW50YXF1ZSB2aXJnaW5lKiogYW5pbWEgdGFtZW4gY29taXRlbXF1ZSBwZXRpcywgc2VkLiBJbiBBbXBoaW9uIHZlc3Ryb3MKaGFtb3MgaXJlIGFyY2VvciBtYW5kZXJlIHNwaWN1bGEsIGluIGxpY2V0IGFsaXF1YW5kby4KCmBgYGphdmEKcHVibGljIGNsYXNzIEV4YW1wbGUgaW1wbGVtZW50cyBMb3JlbUlwc3VtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlpZihhcmdzLmxlbmd0aCA8IDIpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCIpOwoJCX0KCX0gLy8gT2JzY3VyYSBhdHF1ZSBjb25pdWdlLCBwZXIgZGUgY29uaXVueAp9CmBgYAoKUG9ycmlnaXR1ciBldCBQYWxsYXMgbnVwZXIgbG9uZ3VzcXVlIGNyYXRlcmUgaGFidWlzc2Ugc2VwdWxjcm8gcGVjdG9yZSBmZXJ0dXIuCkxhdWRhdCBpbGxlIGF1ZGl0aTsgdmVydGl0dXIgaXVyYSB0dW0gbmVwb3RpcyBjYXVzYTsgbW90dXMuIERpdmEgdmlydHVzISBBY3JvdGEKZGVzdHJ1aXRpcyB2b3MgaXViZXQgcXVvIGV0IGNsYXNzaXMgZXhjZXNzZXJlIFNjeXJ1bXZlIHNwaXJvIHN1Yml0dXNxdWUgbWVudGUKUGlyaXRob2kgYWJzdHVsaXQsIGxhcGlkZXMuCgojIyBMeWRpYSBjYWVsbyByZWNlbnRpIGhhZXJlYmF0IGxhY2VydW0gcmF0YWUgYXQKClRlIGNvbmNlcGl0IHBvbGxpY2UgZnVnaXQgdmlhcyBhbHVtbm8gKipvcmFzKiogcXVhbSBwb3Rlc3QKW3J1cnN1c10oaHR0cDovL2V4YW1wbGUuY29tI3J1cnN1cykgb3B0YXQuIE5vbiBldmFkZXJlIG9yYmVtIGVxdW9ydW0sIHNwYXRpaXMsCnZlbCBwZWRlIGludGVyIHNpLgoKMS4gRGUgbmVxdWUgaXVyYSBhcXVpcwoyLiBGcmFuZ2l0dXIgZ2F1ZGlhIG1paGkgZW8gdW1vciB0ZXJyYWUgcXVvcwozLiBSZWNlbnMgZGlmZnVkaXQgaWxsZSB0YW50dW0KClxiZWdpbntlcXVhdGlvbn1cbGFiZWx7ZXE6bmVpZ2hib3ItcHJvcGFiaWxpdHl9CiAgICBwX3tpan0odCkgPSBcZnJhY3tcZWxsX2oodCkgLSBcZWxsX2kodCl9e1xzdW1fe2sgXGluIE5faSh0KX1ee30gXGVsbF9rKHQpIC0gXGVsbF9pKHQpfQpcZW5ke2VxdWF0aW9ufQoKVGFtZW4gY29uZGV0dXJxdWUgc2F4YSBQYWxsb3JxdWUgbnVtIGV0IGZlcmFydW0gcHJvbWl0dGlzIGludmVuaSBsaWxpYSBpdXZlbmNhZQphZGVzc2VudCBhcmJvci4gRmxvcmVudGUgcGVycXVlIGF0IGNvbmRldHVycXVlIHNheGEgZXQgZmVyYXJ1bSBwcm9taXR0aXMgdGVuZGViYXQuIEFybW9zIG5pc2kgb2JvcnRhcyByZWZ1Z2l0IG1lLgoKPiBFdCBuZXBvdGVzIHBvdGVyYXQsIHNlIHF1aS4gRXVudGVtIGVnbyBwYXRlciBkZXN1ZXRhcXVlIGFldGhlcmEgTWFlYW5kcmksIGV0CltEYXJkYW5pbyBnZW1pbmFxdWVdKGh0dHA6Ly9leGFtcGxlLmNvbSNEYXJkYW5pb19nZW1pbmFxdWUpIGNlcm5pdC4gTGFzc2FxdWUgcG9lbmFzCm5lYywgbWFuaWZlc3RhICRccGkgcl4yJCBtaXJhbnRpYSBjYXB0aXZhcnVtIHByb2hpYmViYW50IHNjZWxlcmF0byBncmFkdXMgdW51c3F1ZQpkdXJhLgoKLSBQZXJtdWxjZW5zIGZsZWJpbGUgc2ltdWwKLSBJdXJhIHR1bSBuZXBvdGlzIGNhdXNhIG1vdHVzIGRpdmEgdmlydHVzIEFjcm90YS4gVGFtZW4gY29uZGV0dXJxdWUgc2F4YSBQYWxsb3JxdWUgbnVtIGV0IGZlcmFydW0gcHJvbWl0dGlzIGludmVuaSBsaWxpYSBpdXZlbmNhZSBhZGVzc2VudCBhcmJvci4gRmxvcmVudGUgcGVycXVlIGF0IGlyZSBhcmN1bS4=\", \"template\": \"eisvogel\"}' http://localhost:8000/convert\u003c/code\u003e\n\n| A basic example page |\n| :------------------: |\n| ![A basic example page](/images/screen.png) |\n\n### Custom Background\n\nCustom Background using the following template [https://raw.githubusercontent.com/Wandmalfarbe/pandoc-latex-template/master/examples/title-page-background/document.md](https://raw.githubusercontent.com/Wandmalfarbe/pandoc-latex-template/master/examples/title-page-background/document.md). You need to supply the background in the ressources object. You can find some sample backgrounds over here [https://github.com/Wandmalfarbe/pandoc-latex-template/tree/master/examples/title-page-background/backgrounds](https://github.com/Wandmalfarbe/pandoc-latex-template/tree/master/examples/title-page-background/backgrounds).\n\nThis uses the following additional metadata:\n\n```yml\nlistings: true\ntitlepage: true\ntitlepage-rule-color: \"360049\"\ntitlepage-background: \"background1.pdf\"\n```\n\n\u003ccode\u003ecurl -H 'content-type: application/json' -X POST --data '{\"input\":\"LS0tCnRpdGxlOiAiVmluYXF1ZSBzYW5ndWluZSBtZXR1ZW50aSBjdWlxdWFtIEFsY3lvbmUgZml4dXMiCmF1dGhvcjogW0F1dGhvciBOYW1lXQpkYXRlOiAiMjAxNy0wMi0yMCIKc3ViamVjdDogIk1hcmtkb3duIgprZXl3b3JkczogW01hcmtkb3duLCBFeGFtcGxlXQpzdWJ0aXRsZTogIkFlc2N1bGVhZSBkb211cyB2aW5jZW11ciBldCBWZW5lcmlzIGFkc3VldHVzIGxhcHN1bSIKbGFuZzogImVuIgpsaXN0aW5nczogdHJ1ZQp0aXRsZXBhZ2U6IHRydWUKdGl0bGVwYWdlLXJ1bGUtY29sb3I6ICIzNjAwNDkiCnRpdGxlcGFnZS1iYWNrZ3JvdW5kOiAiYmFja2dyb3VuZDEucGRmIgouLi4KCiMgVmluYXF1ZSBzYW5ndWluZSBtZXR1ZW50aSBjdWlxdWFtIEFsY3lvbmUgZml4dXMKCiMjIEFlc2N1bGVhZSBkb211cyB2aW5jZW11ciBldCBWZW5lcmlzIGFkc3VldHVzIGxhcHN1bQoKTG9yZW0gbWFya2Rvd251bSBMZXRvaWEsIGV0IGFsaW9zOiBmaWd1cmFlIGZsZWN0ZW50ZW0gYW5uaXMgYWxpcXVpZCBQZW5lb3NxdWUgYWIKZXNzZSwgb2JzdGF0IGdyYXZpdGF0ZS4gT2JzY3VyYSBhdHF1ZSBjb25pdWdlLCBwZXIgZGUgY29uaXVueCwgc2liaSAqKm1lZGlhcwpjb21tZW50YXF1ZSB2aXJnaW5lKiogYW5pbWEgdGFtZW4gY29taXRlbXF1ZSBwZXRpcywgc2VkLiBJbiBBbXBoaW9uIHZlc3Ryb3MKaGFtb3MgaXJlIGFyY2VvciBtYW5kZXJlIHNwaWN1bGEsIGluIGxpY2V0IGFsaXF1YW5kby4KCmBgYGphdmEKcHVibGljIGNsYXNzIEV4YW1wbGUgaW1wbGVtZW50cyBMb3JlbUlwc3VtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlpZihhcmdzLmxlbmd0aCA8IDIpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCIpOwoJCX0KCX0gLy8gT2JzY3VyYSBhdHF1ZSBjb25pdWdlLCBwZXIgZGUgY29uaXVueAp9CmBgYAoKUG9ycmlnaXR1ciBldCBQYWxsYXMgbnVwZXIgbG9uZ3VzcXVlIGNyYXRlcmUgaGFidWlzc2Ugc2VwdWxjcm8gcGVjdG9yZSBmZXJ0dXIuCkxhdWRhdCBpbGxlIGF1ZGl0aTsgdmVydGl0dXIgaXVyYSB0dW0gbmVwb3RpcyBjYXVzYTsgbW90dXMuIERpdmEgdmlydHVzISBBY3JvdGEKZGVzdHJ1aXRpcyB2b3MgaXViZXQgcXVvIGV0IGNsYXNzaXMgZXhjZXNzZXJlIFNjeXJ1bXZlIHNwaXJvIHN1Yml0dXNxdWUgbWVudGUKUGlyaXRob2kgYWJzdHVsaXQsIGxhcGlkZXMuCgojIyBMeWRpYSBjYWVsbyByZWNlbnRpIGhhZXJlYmF0IGxhY2VydW0gcmF0YWUgYXQKClRlIGNvbmNlcGl0IHBvbGxpY2UgZnVnaXQgdmlhcyBhbHVtbm8gKipvcmFzKiogcXVhbSBwb3Rlc3QKW3J1cnN1c10oaHR0cDovL2V4YW1wbGUuY29tI3J1cnN1cykgb3B0YXQuIE5vbiBldmFkZXJlIG9yYmVtIGVxdW9ydW0sIHNwYXRpaXMsCnZlbCBwZWRlIGludGVyIHNpLgoKMS4gRGUgbmVxdWUgaXVyYSBhcXVpcwoyLiBGcmFuZ2l0dXIgZ2F1ZGlhIG1paGkgZW8gdW1vciB0ZXJyYWUgcXVvcwozLiBSZWNlbnMgZGlmZnVkaXQgaWxsZSB0YW50dW0KClxiZWdpbntlcXVhdGlvbn1cbGFiZWx7ZXE6bmVpZ2hib3ItcHJvcGFiaWxpdHl9CiAgICBwX3tpan0odCkgPSBcZnJhY3tcZWxsX2oodCkgLSBcZWxsX2kodCl9e1xzdW1fe2sgXGluIE5faSh0KX1ee30gXGVsbF9rKHQpIC0gXGVsbF9pKHQpfQpcZW5ke2VxdWF0aW9ufQoKVGFtZW4gY29uZGV0dXJxdWUgc2F4YSBQYWxsb3JxdWUgbnVtIGV0IGZlcmFydW0gcHJvbWl0dGlzIGludmVuaSBsaWxpYSBpdXZlbmNhZQphZGVzc2VudCBhcmJvci4gRmxvcmVudGUgcGVycXVlIGF0IGNvbmRldHVycXVlIHNheGEgZXQgZmVyYXJ1bSBwcm9taXR0aXMgdGVuZGViYXQuIEFybW9zIG5pc2kgb2JvcnRhcyByZWZ1Z2l0IG1lLgoKRXQgbmVwb3RlcyBwb3RlcmF0LCBzZSBxdWkuIEV1bnRlbSBlZ28gcGF0ZXIgZGVzdWV0YXF1ZSBhZXRoZXJhIE1hZWFuZHJpLCBldApbRGFyZGFuaW8gZ2VtaW5hcXVlXShodHRwOi8vZXhhbXBsZS5jb20jRGFyZGFuaW9fZ2VtaW5hcXVlKSBjZXJuaXQuIExhc3NhcXVlIHBvZW5hcwpuZWMsIG1hbmlmZXN0YSAkXHBpIHJeMiQgbWlyYW50aWEgY2FwdGl2YXJ1bSBwcm9oaWJlYmFudCBzY2VsZXJhdG8gZ3JhZHVzIHVudXNxdWUKZHVyYS4KCi0gUGVybXVsY2VucyBmbGViaWxlIHNpbXVsCi0gSXVyYSB0dW0gbmVwb3RpcyBjYXVzYSBtb3R1cyBkaXZhIHZpcnR1cyBBY3JvdGEuIFRhbWVuIGNvbmRldHVycXVlIHNheGEgUGFsbG9ycXVlIG51bSBldCBmZXJhcnVtIHByb21pdHRpcyBpbnZlbmkgbGlsaWEgaXV2ZW5jYWUgYWRlc3NlbnQgYXJib3IuIEZsb3JlbnRlIHBlcnF1ZSBhdCBpcmUgYXJjdW0uCg==\", \"resources\": { \"background1.pdf\": \"JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nGWOQQ7CQAhF93MKLiACAwMcwyO4sO2iLqz3T5zRpKlp2JDP/+/zKgxjthmud4L5XQhCGSMaWBqKO1x+gsP2gKkQSk3hBoTuYpp9iWqSOiB7phESMTx3RcMxvcEKtF9XWMo5MToipFrtVsKqRhkDTiASmKrdpCzIXA+of+zR+32a2Zt9gRJN3AaQPbDLwKRInN16hJwrlnJOTOVWPrFtQhIKZW5kc3RyZWFtCmVuZG9iago0IDAgb2JqCiAgIDE2MgplbmRvYmoKMiAwIG9iago8PAogICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8PCAvQ0EgMSAvY2EgMSA+PgogICA+Pgo+PgplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvUGFnZQogICAvUGFyZW50IDEgMCBSCiAgIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NTc0IDg0MS44ODk3NzEgXQogICAvQ29udGVudHMgMyAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAogICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9JIHRydWUKICAgICAgL0NTIC9EZXZpY2VSR0IKICAgPj4KICAgL1Jlc291cmNlcyAyIDAgUgo+PgplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKICAgL0tpZHMgWyA1IDAgUiBdCiAgIC9Db3VudCAxCj4+CmVuZG9iago2IDAgb2JqCjw8IC9DcmVhdG9yIChjYWlybyAxLjE0LjggKGh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZykpCiAgIC9Qcm9kdWNlciAoY2Fpcm8gMS4xNC44IChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQo+PgplbmRvYmoKNyAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZwogICAvUGFnZXMgMSAwIFIKPj4KZW5kb2JqCnhyZWYKMCA4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDU3NiAwMDAwMCBuIAowMDAwMDAwMjc2IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDI1NCAwMDAwMCBuIAowMDAwMDAwMzQ4IDAwMDAwIG4gCjAwMDAwMDA2NDEgMDAwMDAgbiAKMDAwMDAwMDc2OCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDgKICAgL1Jvb3QgNyAwIFIKICAgL0luZm8gNiAwIFIKPj4Kc3RhcnR4cmVmCjgyMAolJUVPRgo=\", \"template\": \"eisvogel\" }}' http://localhost:8000/convert\u003c/code\u003e\n\n| A custom title page  | A basic example page |\n| :------------------: | :------------------: |\n| ![A custom title page](/images/title.png) | ![A basic example page](/images/screen.png) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirefart%2Fpandocserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirefart%2Fpandocserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirefart%2Fpandocserver/lists"}