Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Modern-School/hnxml

Repository files navigation

hnxml

JSR Badge Github Badge

hnxml include Hnxml Standard and hnxml.js

Hnxml Standard is a TypeScript-based XML schema specification for Hacknet Extension, and it is defined by hnxml.js. hnxml.js provides JSX/TSX compatible authoring support with types and additional generator tools for Hacknet-related content generating.

Warning

Note: This project is in heavy development and is not ready for production use.

Example: PCS-OS

Hnxml Standard

You can access Hnxml Standard through:

Use hnxml.js with TSX

Add package @modernschoolproject/hnxml. Check the hnxml JSR package page to see how to install JSR packages using other package managers.

deno add jsr:@modernschoolproject/hnxml # deno 
npx jsr add @modernschoolproject/hnxml # npm
pnpm i jsr:@modernschoolproject/hnxml # pnpm

Edit compilerOptions in tsconfig.json or deno.json

{
 "compilerOption": {
 "jsx": "react-jsx",
 "jsxImportSource": "@modernschoolproject/hnxml"
 }
}

Then create a .jsx or .tsx file and import render from hnxml/jsx. For example:

// main.tsx
import { render } from "@modernschoolproject/hnxml/jsx";
console.log(
 render(
 <mission
 id="missionID"
 activeCheck="true"
 shouldIgnoreSenderVerification="true"
 >
 ...
 </mission>,
 ).end({
 headless: true,
 prettyPrint: true,
 allowEmptyTags: false,
 spaceBeforeSlash: true,
 }),
);

Tips: you can use this way to set default XMLBuilderCreateOptions.

// render.ts
import { render as _render } from "hnxml/jsx";
import { JsxXmlElement } from "hnxml/jsx-runtime";
export function render(element: JsxXmlElement): string {
 return _render(element).end({
 headless: true,
 prettyPrint: true,
 allowEmptyTags: false,
 spaceBeforeSlash: true,
 });
}
// main.tsx
import { render } from "./render.ts";
console.log(
 <mission
 id="missionID"
 activeCheck="true"
 shouldIgnoreSenderVerification="true"
 >
 ...
 </mission>,
);

About

[DEPRECATED] A Hacknet Extension Standard and a library that combine Hacknet Extension with Typescript and JSX.

Resources

License

Stars

Watchers

Forks

Contributors

AltStyle によって変換されたページ (->オリジナル) /