{"id":25056583,"url":"https://github.com/agvxov/contra","last_synced_at":"2026-02-10T06:33:21.242Z","repository":{"id":207430623,"uuid":"719204732","full_name":"agvxov/contra","owner":"agvxov","description":"The Contra utility converts the so called C Style Markup Language to HTML/XML and back.","archived":false,"fork":false,"pushed_at":"2024-10-30T14:51:21.000Z","size":978,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-22T09:49:43.217Z","etag":null,"topics":["html","html-css-javascript","vim","vim-plugin","vscode","vscode-extension","xml"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agvxov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2023-11-15T17:16:27.000Z","updated_at":"2024-10-30T14:53:43.000Z","dependencies_parsed_at":"2023-11-23T09:28:18.407Z","dependency_job_id":"96b0b976-6bd6-40d2-8ac4-ebd4d11fe44f","html_url":"https://github.com/agvxov/contra","commit_stats":null,"previous_names":["agvxov/contra"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agvxov/contra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agvxov%2Fcontra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agvxov%2Fcontra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agvxov%2Fcontra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agvxov%2Fcontra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agvxov","download_url":"https://codeload.github.com/agvxov/contra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agvxov%2Fcontra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29292096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"last_error":"SSL_read: 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":["html","html-css-javascript","vim","vim-plugin","vscode","vscode-extension","xml"],"created_at":"2025-02-06T13:33:59.101Z","updated_at":"2026-02-10T06:33:21.229Z","avatar_url":"https://github.com/agvxov.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contra\n\u003e The Contra utility converts the so called [C Style Markup Language](documentation/csml.5.md) to HTML/XML and back.\n\n### Rationale\nContra removes visual clutter from HTML/XML\nand makes editing the markup easier,\nespecially for people with a background in C style languages\n(including Javascript).\n\nThe preference for this kind of syntax can be observed else where too.\nQML and the Groovy XmlTemplateEngine markup syntaxes are similar and\nserved as inspiration for Contra.\nHowever,\nthey require altering your tech stack.\nContra can be used seamlessly with your web projects,\nsince it can dynamically convert within your editor.\n\n### Example\n\n![demo](documentation/media/demo.GIF)\n\nIf someone is used to writing \\*script,\nthis should be more comfortable to type out:\n\n```C\np {\n    foo br;\n    bar br;\n}\n```\n\nAnd press `Alt + Shift + C` (in VScode),\nthen to type out this with:\n\n```HTML\n\u003cp\u003e\n    foo \u003cbr/\u003e\n    bar \u003cbr/\u003e\n\u003c/p\u003e\n```\n\nYet, the two are equivalent using Contra.\n\n### Notes\nThe Contra utility itself is meant to serve as a backbone for other tools,\nsuch as text editor or IDE extensions.\n\nMore documentation is available at `documentation/*`.\n\n### Installantion\nFor any of the below plugins to work,\nthe Contra executable will have to be installed on your system.\n\n##### Build from source\nContra is written in C++,\nit must be compiled.\n\nMake sure you have the following compile time dependencies:\n + a C++ compiler (e.g. g++)\n + Make (e.g. GNU Make)\n + Flex\n\nAfter navigating to the root directory, run:\n```Bash\n$ make\n```\nThis will result in a new executable file called `contra`,\nplace it in your `$PATH`.\nThe easiest way to do so is by running:\n```Bash\n$ make install\n```\n\n#### Vim\nPlace the file \"plugin/contra.vim\" inside \"~/.vim/plugin/\".\nYou might have to create the directory yourself.\nOr,\nassuming your setup actually matches with the above,\nyou could run:\n```Bash\n$ make vim_install\n```\n\n#### Visual Studio Code\nThe VS Code extension is written in TypeScript,\nso it has to be compiled too.\nThis will require a million node modules.\nYou are advised to run:\n```Bash\n$ make code_install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagvxov%2Fcontra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagvxov%2Fcontra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagvxov%2Fcontra/lists"}