{"id":38488839,"url":"https://github.com/gerph/riscos-prminxml-tool","last_synced_at":"2026-01-17T05:39:48.411Z","repository":{"id":128876863,"uuid":"459189307","full_name":"gerph/riscos-prminxml-tool","owner":"gerph","description":"RISC OS PRM-in-XML tool (uses http://www.princexml.com/ to generate examples)","archived":false,"fork":false,"pushed_at":"2026-01-11T03:06:06.000Z","size":1309,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-11T10:53:36.803Z","etag":null,"topics":["prminxml","riscos"],"latest_commit_sha":null,"homepage":"","language":"XSLT","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/gerph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["gerph"]}},"created_at":"2022-02-14T14:12:46.000Z","updated_at":"2026-01-11T03:02:42.000Z","dependencies_parsed_at":"2023-12-31T13:29:18.333Z","dependency_job_id":"8398e260-8ea0-4286-9094-0c1b78412ac7","html_url":"https://github.com/gerph/riscos-prminxml-tool","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/gerph/riscos-prminxml-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-prminxml-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-prminxml-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-prminxml-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-prminxml-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gerph","download_url":"https://codeload.github.com/gerph/riscos-prminxml-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-prminxml-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28500612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["prminxml","riscos"],"created_at":"2026-01-17T05:39:48.343Z","updated_at":"2026-01-17T05:39:48.397Z","avatar_url":"https://github.com/gerph.png","language":"XSLT","funding_links":["https://github.com/sponsors/gerph"],"categories":[],"sub_categories":[],"readme":"# PRM-in-XML tool and transforms\n\n[![Download: RISC OS](https://img.shields.io/badge/Download-RISC_OS-blue)](https://github.com/gerph/riscos-prminxml-tool/releases/download/v1.03.343/RISCOS-PRMinXML-1.03.343.zip)\n[![Download: POSIX](https://img.shields.io/badge/Download-POSIX-blue)](https://github.com/gerph/riscos-prminxml-tool/releases/download/v1.03.343/POSIX-PRMinXML-1.03.343.tar.gz)\n[![Download: Examples](https://img.shields.io/badge/Download-Example_Documents-blue)](https://github.com/gerph/riscos-prminxml-tool/releases/download/v1.03.343/Example-Output-1.03.343.zip)\n[![Documentation: Usage](https://img.shields.io/badge/Documentation-Usage-yellow)](catalog/docs/HowTo.md)\n[![Documentation: File format](https://img.shields.io/badge/Documentation-File_Format-yellow)](catalog/docs/PRMinXML.txt)\n\n## Introduction\n\nPRM-in-XML is a specialised XML format for writing RISC OS documentation in the style\nof the Programmers Reference Manuals. The format is designed with 4 major goals:\n\n* To be structured\n* To provide a flexible base for documentation\n* To be translatable to other formats easily\n* To provide cross-referencing facilities\n\nThis repository contains the PRM-in-XML tool and the transformations necessary to\nconvert the format into HTML and other formats. The primary transformation is HTML 2 with\ntables, with an HTML 5/CSS transformation coming in later versions.\n\nThe tool, `riscos-prminxml`, is intended to be used to process XML files into other\nformats.\n\nFor more information on the rationale for the PRM-in-XML format, see the article on [Iconbar](https://www.iconbar.com/articles/RISC_OS_Documentation/index1700.html).\n\n\n## Installation on POSIX systems\n\nThe release archives contain the tool ready to be installed into your `PATH`. Copy the `riscos-prminxml` file and `riscos-prminxml-resources` directory\nto a location where they can be executed from, such as `/usr/local/bin` or `~/bin`.\n\n## Installation on RISC OS systems\n\nThe RISC OS archive contains a set of tools to place somewhere that they can be\nexecuted, such as within your library. A common installation would be to copy all\nthe files and directories from `Tools.XML` into `!Boot.Library`.\n\nThe distribution for RISC OS includes the `xsltproc` and `xmllint` binaries.\nThe version of Perl supplied is suitable for use with the tool only.\n\n\n## Requirements\n\n* Perl 5\n* The `xsltproc` tool\n* The `xmllint` tool\n\nFor RISC OS, these components are all supplied with the distribution. Updated versions\nof the XSLTProc and XMLLint if needed can be found at:\n\n* `xsltproc`: https://github.com/gerph/libxslt/releases\n* `xmllint`: https://github.com/gerph/libxml2/releases\n\nFor installation on Ubuntu Linux you will require:\n\n* `sudo apt-get install perl xsltproc libxml2`\n\nOther Linux distributions will need different tools.\n\nFor installation on macOS:\n\n* `perl`, `xsltproc` and `xmllint` are supplied with the operating system.\n\n\n## Usage\n\n### Basic operations\n\nThe tool contains help on its usage. However, the most common usage of the tool\n(on a POSIX-like system) would be something like:\n\n    riscos-prminxml myfile.xml\n\nwhich will generate a file `myfile.html`, after transforming the content.\n\nOn RISC OS the filenames will be in RISC OS format, for example:\n\n    riscos-prminxml myfile/xml\n\nThe tool can be used to generate skeleton documents from which you can begin processing\ncontent:\n\n    riscos-prminxml -f skeleton -o myfile.xml\n\nAnd can be used to process many documents in succession:\n\n    riscos-prminxml -O outputdir myfile.xml anotherfile.xml\n\nThere is also a specialised format where a whole indexed manual can be generated from\nmany documents, through an 'index' document which describes the layout of the manual:\n\n    riscos-prminxml -f index index.xml\n\nThe tool itself contains help describing its usage:\n\n    riscos-prminxml --help\n    riscos-prminxml --help-indexed\n\nIndividual tags within the documentation format can be described with a command:\n\n    riscos-prminxml --help-tag chapter\n\n### Advanced usage\n\nThe `riscos-prminxml` tool can be supplied parameters for the transformation\nto use. As each format has its own implementation, these parameters will be specific to the transformation. A list of the transformations which are\nsupported for each format can be listed with a help switch:\n\n    riscos-prminxml --help-params\n\nThe parameters option may be specified multiple times with different parameters\n\nFor example, in the `html` and `html5` formats, the parameter `create-contents`\ncan be used to modify whether the links to each of the sections will be\ncreated at the top of the document. To disable this table of contents for the\ndocument, use:\n\n    riscos-prminxml --param \"create-contents=no\" myfile.xml\n\nMost commonly this switch would be used to control the type of CSS content\nused by the `html5` format. There are three parameters which are generally\nused to control the styling of the HTML 5 documents:\n\n* `css-base` - used to specify the base style for the document. The value\n  `standard` will use the built in CSS styling. The value `none` will omit\n  the built in CSS styling entirely.\n* `css-file` - includes the supplied CSS file.\n* `css-variant` - specifies a variant to apply on top of the CSS as a space-separated list of variant names. The variants are defined in the `prm-css.xml` file.\n\nThe default CSS style is suitable for viewing within a desktop browser, but\nfor a style which is closer to the PRM you might apply the `prm` variant:\n\n    riscos-prminxml --param \"css-variant=prm\" myfile.xml\n\nTo modify this to be produce documentation in the style of the\nRISC OS 2's PRMs:\n\n    riscos-prminxml --param \"css-variant=prm prm-ro2\" myfile.xml\n\nMore information about the CSS variants which can be applied can be found in the [`CSSVariants.md` document](catalog/docs/CSSVariants.md).\n\n\nTo introduce your own CSS styling on top of the standard, you might\ncreate a small CSS file to change the features you felt needed changing,\nand apply this with the `css-file` parameter:\n\n    riscos-prminxml --param \"css-file=my.css\" myfile.xml\n\n\n### Video guides\n\nSome video guides have been produced which explain how to use the PRM-in-XML\ntool. See https://presentation.riscos.online/prminxml/index.html for more details.\n\n\n## Tested platforms\n\nThe PRM-in-XML tool is tested and known to work on a number of platforms:\n\n* RISC OS\n* Ubuntu (18.04, 20.04, 22.04)\n* CentOS (7 and 8)\n* Debian (10)\n* Linux Mint (18, 20, 21)\n\nOther platforms may work, but are not tested as part of the standard testing process.\nAlthough not part of the automated testing, the tool also works and is developed on\nmacOS.\n\n## Documentation\n\nThe PRM-in-XML format is documented within the text files in the [`catalog/docs`](catalog/docs)\ndirectory. A skeleton document is available in [`catalog/gerph/skeleton.xml`](catalog/gerph/skeleton.xml)\nwhich can be used to construct new documents or as a guide for creating them. A '[How To](catalog/docs/HowTo.md)'\nin the documentation directory describes the process of creating new documents.\n\n## Examples\n\nExample PRM-in-XML documents can be found on GitHub tagged with the `prmxinml` topic.\n\nIn particular, there are example documents in a repository at https://github.com/gerph/riscos-prminxml-examples\n\nThe Releases section includes built HTML and PDF documents within the archives.\n\nAs part of the work towards making available more RISC OS documentation, many existing documents have been converted to PRM-in-XML format. Whilst these are incomplete or do not have their own place to be stored, these can be found in the `riscos-prminxml-staging` repository.\n\nThis can be found at: https://github.com/gerph/riscos-prminxml-staging\n\nAgain, the Releases section includes built versions of the documentation.\n\n\n### Test example files\n\nThis repository contains some [example documents](examples) which are used to check the\nbehaviour of the tool. These show some of the elements that can be used by the PRM-in-XML\nformat.\n\nThe example documents can be built from POSIX systems with the following commands:\n\n    cd crosscompile\n    ./build-examples.sh\n\nTo build with PDF output, using Prince XML (personal and non-commercial use is\na valid use of Prince XML - see https://www.princexml.com/purchase/license_faq/), use:\n\n    env PRINCEXML_I_HAVE_A_LICENSE=1 ./build-examples.sh\n\nThis will process the indexed documents in the `examples` directory to generate the different forms of output in the `test-output` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerph%2Friscos-prminxml-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerph%2Friscos-prminxml-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerph%2Friscos-prminxml-tool/lists"}