{"id":27958033,"url":"https://github.com/ericsson/specpress","last_synced_at":"2026-02-02T01:06:49.620Z","repository":{"id":289314080,"uuid":"970805524","full_name":"Ericsson/specpress","owner":"Ericsson","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-18T01:00:53.000Z","size":69,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-18T03:10:05.833Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/Ericsson.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-22T15:04:33.000Z","updated_at":"2025-06-05T08:43:47.000Z","dependencies_parsed_at":"2025-04-22T17:34:10.650Z","dependency_job_id":"da1f16c7-6625-481d-b472-4ab780959977","html_url":"https://github.com/Ericsson/specpress","commit_stats":null,"previous_names":["ericsson/specpress"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Ericsson/specpress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ericsson%2Fspecpress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ericsson%2Fspecpress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ericsson%2Fspecpress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ericsson%2Fspecpress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ericsson","download_url":"https://codeload.github.com/Ericsson/specpress/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ericsson%2Fspecpress/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28998208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T23:10:54.274Z","status":"ssl_error","status_checked_at":"2026-02-01T23:10:47.298Z","response_time":56,"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":[],"created_at":"2025-05-07T18:15:55.924Z","updated_at":"2026-02-02T01:06:49.615Z","avatar_url":"https://github.com/Ericsson.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SpecPress\n\n-   WYSIWYG (what you see is what you get) - like experience while editing specifications.\n-   UML séquence diagrammes generation from text files.\n-   PDF | DOCX | HTML export from a set of Markdown, ASN.1 and JSON files.\n\n## System Requirements\n\nSpecPress requires the following software to be installed on your system:\n\n-   [Git](https://git-scm.com/)\n-   [Node.js version 20+](https://nodejs.org/en)\n-   [OpenJDK](https://openjdk.org/)\n\nAdditionally, if you eould like to use pandoc to convert mardown files into pdf or docx documents you need to install also:\n\n-   [pandoc](https://pandoc.org/installing.html) by [John MacFarlane](https://johnmacfarlane.net/)\n-   [MiKTeX](https://miktex.org/download) or [TeX Live](https://tug.org/texlive/) which include `pdflatex`\n\n## Getting started\n\n### Initialize your project\n\nCreate a folder in which, later on, you will clone your specifications git repositories, move into the folder and initialize `npm` by running the following commands in the terminal:\n\n```\n# create a new folder called for example \"mySpecifications\"\nmkdir mySpecifications\n\n# move into the folder\ncd mySpecifications\n\n# initialize npm\nnpm init\n```\n\n### Install SpecPress\n\nInstall specpress as a development dependency of your project and initialize it with the following commands:\n\n```\n# install specpress\nnpm install specpress  --save-dev\n# initialize specpress\nnpx sp_init\n```\n\n#### /mySpecifications/src folder\n\nAs part of its initialization, sprecpress created the `src` folder in the projec’s root folder `mySpecifications`. Use the `src` folder to store all your specifications git repositorues. For example, you can clone the git repository of your specification under the `src` folder.\n\n```\n# move into the src folder\ncd src\n\n# clone the git repository of your specification\n# /mySpecifications/src\ngit clone ssh://git@forge.3gpp.org:29419/fs_6gspecs_new/38423.git\n```\n\nIf you want, you can rename the `src` folder to whatever name you like. Should you do so, you should also update the value of the `sourceFolderName` parameter in the `sp.config.json` file accordantly, e.g., `”sourceFolderName”: “yourPreferedName”`.\n\n#### /mySpecifications/sp.config.json file\n\nThe initialization process also publishes a configuration files `sp.config.json` in the root folder `/mySpecifications/sp.config.json`.\n\n```\n#./sp.config.json\n{\n\t\"pathFiguresFolder\": \"/assets/figures\",\n\t\"sourceFolderName\": \"src\"\n}\n```\n\nAlong with the `\"sourceFolderName\": \"src\"` parameter, this file contains the `”pathFiguresFolder\": \"/assets/figures\"` parameter which indicates in which subfolder of your specification, specpress will save the `.png` files it generates for the UML sequence diagrams. The default value is `/assets/figures` so if you are working with the 38423 specification, the files will be saved in the `/mySpecifications/src/38423/assets/figures` folder.\n`\n\n## Usage\n\nMove now into your working directory which can be the `/src/38423` folder or a subfolder of `/src/38423`.\nIn the working folder you can use the following specpress commands in the terminal:\n\n### WYSIWYG - like experience while working on your specifications\n\nSpecpress enables you to have a “what you see is what you get” - like experience when editing your specifications by displaying the specification as a webpage. For doing so, run the `npx sp_start` command in the terminal and specpress will convert and concatenate the specification files from your working directory into a single `hrml` file which is published on a local `http server`. The resulting web page can be displayed in any browser that points at the `http://localhost::8080` address.\n\n```\nnpx sp_start\n```\n\nThe `sp_strat` command is equivalent to running in parallel the `sp_pubish`, `sp_watch` and `sp_serve` commands described below.\n\n### Display the specification as a web page\n\nExecute the following commands to display your specification as a webpage on your local http server:\n\n```\n#create the /mySpecifications/public/index.html file\nnpx sp_publish\n\n# start the http server from the /mySpecifications/public folder\n# the server is accessible at http://lcalhost:8080\nnpx sp_serve\n```\n\n### Watch for changes in your source files\n\n```\nnpx sp_watch\n```\n\nThe `sp_watch` command will:\n\n-   watch for changes in your specification’s source files `[\".asn\", \".json\", \".md\"]` and update the `index.html` file according to your changes,\n-   watch for changes in your UML sequence diagrams source files `[\".puml\", \".txt\"]` and generate the corresponding PNG files in the `/mySpecifications/src/38423/assets/figures` folder\n\n### Generate UML diagrams from text files using PlantUML\n\nSpecpress enables you to automatically generate `.png` files containing UML diagrams using as an input a text file containing a textual description of the UML diagram as presented in the example below:\n\n```\n\n#/mySpecifications/src/38423/example.txt\n@startuml\nAlice -\u003e Bob: Authentication Request\nBoby --\u003e Alice: Authentication Response\n@enduml\n\n```\n\nThe `.png` files are saved in the specification's subfolder indicated in the `sp.config.json` files.\n\n```\n\n# generale .png files for all the .txt files in the working folder\nnpx sp_generateUML\n\n# generale .png file for a specific .txt file in the working folder\nnpx sp_generateUML-file ./example.txt\n\n```\n\n### Export a .docx|.html|.pdf file\n\nSpecpress enables you to export a file which contains all the specification files from the working folder. The exported file will be saved in the `/mySpecifications/export` folder.\n\n```\n# export a pdf file\nnpx sp_export pdf\n\n# export a docx file\nnpx sp_export docx\n\n# export a html file\nnpx sp_export html\n\n# export a pdf file using pandoc\nnpx sp_export pdf pandoc\n\n# export a docx file using pandoc\nnpx sp_export docx pandoc\n\n# export a html file using pandoc\nnpx sp_export html pandoc\n```\n\n## Repository\n\n[https://github.com/Ericsson/specpres](https://github.com/Ericsson/specpress)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericsson%2Fspecpress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericsson%2Fspecpress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericsson%2Fspecpress/lists"}