{"id":16199910,"url":"https://github.com/agateau/mup","last_synced_at":"2025-03-19T05:30:53.952Z","repository":{"id":66380974,"uuid":"5257095","full_name":"agateau/mup","owner":"agateau","description":"A markup previewer","archived":false,"fork":false,"pushed_at":"2021-12-21T15:05:17.000Z","size":215,"stargazers_count":39,"open_issues_count":6,"forks_count":3,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-28T16:04:18.470Z","etag":null,"topics":["asciidoc","man","markdown","preview","python","qt","ronn","rst"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agateau.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":"2012-08-01T08:59:02.000Z","updated_at":"2024-11-14T08:11:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"de4fa9d8-133e-4abc-ad09-798e28da23a7","html_url":"https://github.com/agateau/mup","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/agateau%2Fmup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fmup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fmup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fmup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agateau","download_url":"https://codeload.github.com/agateau/mup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243971192,"owners_count":20376784,"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":["asciidoc","man","markdown","preview","python","qt","ronn","rst"],"created_at":"2024-10-10T09:28:40.384Z","updated_at":"2025-03-19T05:30:53.947Z","avatar_url":"https://github.com/agateau.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MUP: a Markup Previewer\n\nMUP is a markup previewer. It supports multiple markup formats. You can use it\nto read markup text, but it is also useful when writing markup text to check\nhow your work looks, thanks to its refresh-as-you-save feature.\n\n![MUP in action](screenshot.png)\n\n## Features\n\n- Supports multiple markup formats, easy to extend\n- Automatically refreshes itself when the document is modified, tries to retain\n  the position in the document after refreshing\n- Skips metadata headers, such as those used by static blog generators like\n  Jekyll\n- Supports gzipped documents, useful to read documentation shipped with Debian\n  packages\n- Comes with a wrapper for man pages\n\n## Supported Formats\n\nMUP supports Markdown and reStructuredText using Python modules.\n\nIt also supports the following formats using external converters:\n\n- Markdown\n- GitHub Flavored Markdown\n- Ronn\n- Man pages\n- Asciidoc\n- Mediawiki\n\nExternal converters are command line tools which are invoked by MUP to convert\ninput files. To be used as an external converter, the tool must accept markup\non stdin and produce HTML on stdout.\n\n## Usage\n\nStart MUP like this:\n\n    mup markup_file\n\nTo read a man page with mup:\n\n    mupman ls\n\nOr:\n\n    mupman 5 crontab\n\n## Requirements\n\nMUP requires Python 3 and the following Python modules:\n\n- [PyQt5][], including PyQt5 WebKit, which can be in a separate package\n- [PyYAML][]\n- [PyXDG][]\n\nIt can make use of other Python modules and external tools to render various\nmarkup formats.\n\n[PyQt5]: https://www.riverbankcomputing.com/software/pyqt/download5\n[PyYAML]: http://pyyaml.org/wiki/PyYAML\n[PyXDG]: https://freedesktop.org/wiki/Software/pyxdg/\n\n### Markdown\n\nFor Markdown you need to install one of these:\n\n- Python [Markdown][python-markdown] module\n- [Pandoc][]\n- [CommonMark][]\n- [Gruber Markdown][Gruber]\n- Python [Requests][requests] module: to render Markdown using GitHub Rest API\n  (slow but accurate)\n\n### GitHub Flavored Markdown (GFM)\n\nFor GitHub Flavored Markdown (Markdown which takes newlines into account) you\nneed to install one of these:\n\n- [kramdown][]\n- Python [Requests][requests] module: to render GFM using GitHub Rest API (slow\n  but accurate)\n\n### reStructuredText\n\nFor reStructuredText you need to install the [docutils][] Python module.\n\n### Man pages\n\nFor man pages you need to install [Groff][] (but it is already installed on\nmost Linux distributions).\n\n### Ronn\n\nFor Ronn you need to install [Ronn][].\n\n### Asciidoc\n\nFor Asciidoc you need to install [Asciidoc][].\n\n### Mediawiki\n\nFor Mediawiki you need to install [Pandoc][].\n\n[python-markdown]: https://pythonhosted.org/Markdown/\n[Pandoc]: http://pandoc.org\n[kramdown]: http://kramdown.gettalong.org/\n[CommonMark]: http://commonmark.org\n[Gruber]: http://daringfireball.net/projects/markdown/\n\n[docutils]: http://docutils.sourceforge.net/\n\n[Groff]: https://www.gnu.org/software/groff/\n\n[Ronn]: http://rtomayko.github.io/ronn/\n[Asciidoc]: http://www.methods.co.nz/asciidoc/\n[Requests]: http://python-requests.org\n\n## Installation\n\nRun `./setup.py install` as root.\n\n## Editing files\n\nYou can edit the current file by clicking on the menu button then select \"Open\nwith Editor\". This will open the file in the configured editor.\n\nTo configure which editor should be used, edit `~/.config/mup/mup.yaml` and add\nthe following content:\n\n    editor: name-of-your-editor\n\nNote: for now you cannot define arguments for the editor. If you need arguments\nyou will have to write a wrapper shell script.\n\n## Defining a new Converter\n\nTo declare the `foo2html` command as a converter for .foo or .foobar files,\ncreate a `foo.yaml` file in `/usr/share/mup/converters` or in\n`~/.local/share/mup/converters` with the following content:\n\n    name: Foo\n    cmd: foo2html\n    matches: [\"*.foo\", \"*.foobar\"]\n\nIf MUP can find the `foo2html` binary, it will use it whenever it tries to open\na .foo file.\n\nOther optional keys:\n\n- `args`: Arguments to pass to the command\n- `full`: Set to true if the command creates a complete HTML document, not just\n  an HTML snippet (defaults to false)\n- `online`: Set to true if the converter uses an online service. Those are\n  slower than offline ones and are thus not selected by default\n- `reference`: Set to true if the converter is the reference implementation for\n  the format it handles. A reference converter will be selected by default if\n  available\n\n## Contributing\n\nMUP is managed using the [lightweight project management policy][lpmp].\n\nGet the code from `https://github.com/agateau/mup` then file pull requests\nagainst the `dev` branch.\n\n[lpmp]: http://agateau.com/2014/lightweight-project-management\n\n## Author\n\nAurélien Gâteau\n\n## License\n\nBSD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagateau%2Fmup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagateau%2Fmup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagateau%2Fmup/lists"}