{"/docs/config":"just.config.js\njust.config.js is a configuration file for the $${name}$$. This is JavaScript file that should export the configuration as Object that will be parsed to a JSON file by $${name}$$. When running, $${name}$$ always tries to resolve the config file named just.config.js in the repository root.\nThe most basic configuration file would look like this:\njs\nmodule.exports &#61; {\n  // ...\n}\n\nNote that $${name}$$ does not support export default.\nNOTE: You don't need a package.json file or its type option.\n\nPreprocessing\n$${name}$$ supports preprocessing by compilers:\n- TypeScript compiler\n- Dart Sass\n\nWARNING: Third-party compilers may not be as fast, so they can slow down the process significantly.\n\nTo use any of these compilers, add compile:\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  compile: {\n    // ... ( extension : true )\n  }\n}\n\n\n&#60;details&#62;\n    &#60;summary&#62;Example&#60;/summary&#62;\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  compile: {\n    ts: true, // TypeScript compiler\n    sass: true, // Dart Sass\n    scss: true // Dart Sass\n  }\n}\n\n&#60;/details&#62;&#60;br&#62;\n\nIMPORTANT: But then, before running $${name}$$, make sure you have installed the compilers that you are going to use. You can also install those compilers through $${name}$$ when running it:\n\nInstalling third-party dependencies\nTo install any of the supported compilers listed above, add install:\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  install: {\n    // ... ( lowercased name with spaces replaced with underscores : true )\n  }\n}\n\n\n&#60;details&#62;\n    &#60;summary&#62;Example&#60;/summary&#62;\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  install: {\n    typescriptcompiler: true,\n    dartsass: true\n  }\n}\n\n&#60;/details&#62;&#60;br&#62;\n\nThe positions of compile and install in the config file do not matter.\n\nPostprocessing\n$${name}$$ provides some postprocessing options:\n- Sitemap generator\n- Inserter\n\nThese are included in $${name}$$ and are not third-parties nor need to be installed separately from $${name}$$.\n\nSitemap generator\nIt generates a sitemap.xml file.\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  sitemap: {\n    generateSitemap: true,\n    protocol: 'https:', // or 'http:'. Required.\n    // ...\n  }\n}\n\nYou can specify input and output directories, as well as modify output URLs:\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  sitemap: {\n    // ...\n    base: 'path/to/website', // Input dir. GitHub Action path input from your workflow file or '.' by default.\n    output: 'path/to/website/output', // Output dir. Input dir by default.\n    path: 'example/path/', // Modifies output URLs. This example will add \"example/path\" to the output URLs right after the host name (\"https://example.com/example/path/file.html\"). GitHub Action fix-path input from your workflow file by default.\n    unpath: 'exampleprefix' // Modifies output URLs. This example will remove \"exampleprefix\" from the file path (\"https://example.com/exampleprefixfile.html\" -\"https://example.com/file.html\").\n  }\n}\n\nYou can also specify pages that should not be included in the sitemap:\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  sitemap: {\n    // ...\n    hidePages: [\n      '/path/to/page' // The path to a page should start with a slash and should not end with an extension name.\n    ]\n  }\n}\n\n\nInserter\nCurrently, it allows you to insert anything you want into the &#60;headof every HTML page:\njust.config.js\njs\nmodule.exports &#61; {\n  // ...\n  insert: {\n    htmlHead: '&#60;!-- This will be inserted into the head tag of every HTML page /--&#62;'\n  }\n}\n\n\njust: prev: /docs/getting-started","/docs/generator/advanced-usage":"Advanced usage\nMarkdown files\nYou can specify the page title by adding just: title: ... in the first line of the Markdown file.\nExample:\nmd\njust: title: This is text will be page title\n\n\nYou can also specify the previous and next pages:\n\njust: prev: /path/to/previous/page\njust: next: /path/to/next/page\n\nThe path to the page should start with a slash (/). &#60;br&#62;This path is a relative path from the root directory of your website, which you’ve specified in the workflow file. &#60;br&#62;The path to the page should not end with a file extension name (e.g., .md ).\nThis will add buttons to the end of the page.\nJust an Ultimate Site Tool will automatically get the title of the previous and/or next pages and insert it into the generated button output.\nThe output should look like this:\n!Output\n\nThe just.config.js file\nYou can change search key: (slash (/) by default)\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    searchKey: '/'\n  }\n}\n\n\nYou can allow web archive: (disallowed ( true ) by default)\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  noWebarchive: false\n}\n\n\nYou can insert custom HTML code in &#60;head&#62;:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    insertInHTMLHead: '&#60;!--   Your HTML code here   /--&#62;'\n  }\n}\n\n\nYou can enable debug logs:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  debug: true\n}\n\n\nCustom HTML, CSS, JavaScript files\nTheme\nJust an Ultimate Site Tool saves some data in localStorage. Please do not modify any variable with key that starts with sp, as these variables store scroll information in BASE-64.\nYou can use the t (theme) variable to synchronize the theme between your custom pages and the generated documentation pages.\njs\nlocalStorage.getItem('t');\n\nYou can set the t variable to update the theme, but the value must be one of: l (light), d (dark), a (auto / sync with device).\njs\nlocalStorage.setItem('t', 'a');\n\n\nSearch\nYou can make custom documentation search in your custom pages:\n1. Fetch /just/ or /just/index.json, it’ll return a JSON that has a \"json\" key.\n2. Fetch /just/( put the \"json\" value here ).json, this will return a JSON, where the key is the page URL and the value is the content of the page.\nExample:\njs\nconst justdata &#61; await fetch('/just/').then(r&#61;&#62;r.json());\nconst docssearch &#61; await fetch(/just/${justdata.json}.json).then(r&#61;&#62;r.json());\n\n\njust: prev: /docs/generator/syntax\njust: next: /docs/generator/troubleshooting","/docs/generator/syntax":"Markdown support\nSupported elements\n- Headings (Alternate headings aren’t supported.)\n- Line Breaks\n- Bold (Use asterisks. Underscores aren’t supported.)\n- Italic\n- Blockquotes\n- Ordered Lists (Nested lists aren’t supported.)\n- Unordered Lists (Nested lists aren’t supported.)\n- Code (To escape backticks () use backslash (). Double backticks () aren’t supported.)\n- Horizontal Rules\n- Links\n- Images\n- Tables\n- Fenced Code Blocks (Use triple backticks (). Spaces/Tabs aren’t supported.)\n- Syntax Highlighting\n- Heading IDs (Automatically generated.)\n- Definition Lists\n- Strikethrough\n- Task Lists\n- Emoji (copy and paste)\n- Emoji (shortcodes)\n- Highlight\n- Subscript\n- Superscript\n- Automatic URL Linking\n- Disabling Automatic URL Linking (You can also use backslash () before protocol to disable Automatic URL Linking)\n- HTML\n\nNot supported elements\n- Paragraphs\n- Footnotes\n- Abbreviation\n\nSupport for Additional Syntax Elements\n- Note, tip, important, warning, caution blockquotes:\nmd\nNOTE: A note!\nTIP: A tip!\nIMPORTANT: Something important.\nWARNING: A warning!\nCAUTION: Caution!\n\n\n- Underline:\nUnderline example\nmd\nThis text will be underlined.\n\n\n- Subtext:\nSubtext example\nmd\nThis line will be made smaller and greyed out.\n\n\n- Embeds:\nmd\n{https://juststudio.is-a.dev/}\n\n\nEscaping\nTo escape any element or character, use a backslash ().\nTo insert a backslash in your text, use two backslashes ().\n\njust: prev: /docs/modes/generator\njust: next: /docs/generator/advanced-usage","/docs/generator/troubleshooting":"Troubleshooting\nNode.js errors\nInvalid string length error at logs.js\nThe error looks like this:\n\nRangeError: Invalid string length\n  at /home/runner/work/actions/js-just/just/main/src/documentation/logs.js:XX:XXX\n  at FSReqCallback.oncomplete (node:fs:XXX:XX)\n\nNote that after an error, there may be some Just an Ultimate Site Tool logs, so the error may not be at the end of the logs.\n\nTo fix that error you can disable debug lods in module.exports of the just.config.js file.\njs\nmodule.exports &#61; {\n  // ...\n  debug: false\n}\n\n\nGenerated content errors\nCouldn’t load the website. (0302)\n&#60;div id&#61;\"0302\"&#62;&#60;/div&#62;\nThis error looks like this:\n!Error\n\nThis error can be caused by various reasons:\n- Poor Internet connection.\n- Other reasons that are not related to Just an Ultimate Site Tool.\n- Just an Ultimate Site Tool paths/directories error - this means that Just an Ultimate Site Tool did not determine the file paths correctly, and browsers are unable to load scripts and styles.\n\nTo fix the paths/directories error:\n- If you are inserting generated website into another directory, for example you have made the website in the root of the repository and then moved it to another directory in a different repository, try adding the fix-path input in your workflow file:\nyml\n      - name: Generate with just\n        uses: js-just/just@main\n        with:\n          # ...\n          fix-path: example # path to directory that your generated website will be moved to\n\nIf that doesn’t help, you can also try adding these options:\n- Otherwise, you can try adding these options in the docsconfig in module.exports of the just.config.js file:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    usePathInput: true,\n    usePathInputInHTML: true,\n    usePathInputInJS: true\n    /\n      Try different configurations by setting these options to true or false until the problem is fixed.\n    /\n  }\n}\n\n\njust: prev: /docs/generator/advanced-usage","/docs/getting-started":"Getting Started\nNecessary knowledge\nThis documentation assumes some familiarity with\n- GitHub\n- GitHub Actions\n- GitHub Pages\nAnd some familiarity with these languages\n- JavaScript and JSON\n- YAML\n- HTML\n- CSS\n- Markdown\nInstallation\nMaking your first project\n- Create new repository, and create /.github/workflows/publish.yml file, template:\nyml\nname: Website\n\non:\n  push:\n    branches: [\"main\"]\n  workflowdispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: false\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n      - name: Generate with just\n        uses: js-just/latest@main\n        with: # Remove \"with\" and \"path\" here if you are not using compressor or generator modes!\n          path: . # Root directory, or you can replace the dot with the path to your website/docs directory to be generated/compressed. (Only for compressor and generator modes)\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v3\n        with:\n          path: . # Root directory, or you can replace the dot with the path to your entire website to be deployed to GitHub Pages.\n\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.pageurl }}\n    runs-on: ubuntu-latest\n    needs: build\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n\nYou can change name of workflow file and workflow name:\nyml\nname: Workflow name\n\nYou can also choose just version:\nyml\n        uses: js-just/just@(put version name here)\n\nIf you know what exactly you are doing, you may change anything.\n- Create just.config.js file in the root directory:\nChoose what mode you want to use.\n \nUsing Postprocessor mode:\njs\nmodule.exports &#61; {\n  mode: \"postprocessor\"\n}\n\nUsing Redirector mode: \njs\nmodule.exports &#61; {\n  mode: \"redirector\", \n  redirectconfig: {\n    url: \"https://example.com/\", // Required. Replace with destination URL.\n  }\n}\n\nUsing Compressor mode:\njs\nmodule.exports &#61; {\n  mode: \"compressor\"\n}\n\nUsing Generator mode:\njs\nmodule.exports &#61; {\n  mode: \"generator\",\n  domain: \"example.com\", // Required. Replace with your domain name. Domain name should be valid.\n  docsconfig: {\n    title: \"Documentation title\" // Required. Replace with your documentation title.\n  }\n}\n\nUsing Void mode:\njs\nmodule.exports &#61; {\n  mode: \"void\",\n  domain: \"example.com\" // Required. Replace with your domain name. Domain name should be valid.\n}\n\n- Read the documentation for the mode that you’ve chosen.### Pro installation\n- Create or modify your .github/workflows/githubpagesworkflowname.yml:\nMake sure that permissions allow writing pages and id-token, but do not allow writing contents, only read.\nyml\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nMake a job for building your website using just:\nyml\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      - name: Generate with just\n        uses: js-just/just@ # version name (recommended) (example: v0.0.29) / main branch (latest commit) (unstable, not recommended) / commit SHA (not recommended)\n        with:\n          path: # Path to your website directory to be generated/compressed. (Only for compressor and generator modes)\n\n- Create just.config.js file:\nBasic usage:\njs\nmodule.exports &#61; {\n  mode: \"(postprocessor/redirector/compressor/generator/void)\"\n}\n\n\n- Read the documentation for the mode that you’ve chosen.\n\nModes documentation\n- Postprocessor\n- Redirector\n- Compressor\n- Generator\n\n&#60;details&#62;\n    &#60;summary&#62;What is Void mode?&#60;/summary&#62;\n    Void mode does nothing. You can use it when you want to use pre- and/or post-processor features and you don't want to use any other mode.\njust.config.js\njs\nmodule.exports &#61; {\n  mode: \"void\",\n  domain: \"example.com\" // Required. Replace with your domain name. Domain name should be valid.\n}\n\n&#60;/details&#62;&#60;br&#62;\n\nAlso we recommend reading the config documentation.\n\nReserved directories\nYour repository should not have these directories:\n- justdata\n- justtemp\n- deploy\nIf your repository has any of these, just will throw an error.\n\njust: prev: /docs\njust: next: /docs/config","/docs/modes/generator":"Generator mode\n- Generates documentation website using Markdown.\n\nThis website is generated using this mode.\n\nThis mode requires the just.config.js file and the workflow file.\njust.config.js\njs\nmodule.exports &#61; {\n  mode: \"generator\",\n  domain: \"example.com\", // Required. Replace with your domain name. Domain name should be valid.\n  docsconfig: {\n    title: \"Documentation title\", // Required. Replace with your documentation title.\n  }\n}\n\n\n.github/workflows/WORKFLOWNAME.yml\nyml\nname: Website\n\non:\n  push:\n    branches: [\"main\"]\n  workflowdispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: false\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n      - name: Generate with just\n        uses: js-just/latest@main\n        with:\n          path: . # Root directory, or you can replace the dot with the path to your docs directory to be generated.\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v3\n        with:\n          path: . # Root directory, or you can replace the dot with the path to your entire website to be deployed to GitHub Pages.\n\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.pageurl }}\n    runs-on: ubuntu-latest\n    needs: build\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n\n\nAfter generating the documentation, this mode uses the Compressor mode to compress the generated website.\nUse Markdown ( .md ) files for documentation. You can also use HTML/CSS/JavaScript for custom pages, but remember that they will be compressed using the Compressor mode!\n\nHow it works?\nIt processes every Markdown file and generates HTML page for each of them.\n\nCustomizing your documentation website\nYou can customize your documentation website with the just.config.js file.\n\nYou can make the HTML title tag and &#60;meta property&#61;\"og:title\"differ from title by adding the metatitle:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    metatitle: 'This text will be inserted in HTML &#60;titleand &#60;meta property&#61;\"og:title\"tags'\n  }\n}\n\nYou can also make the &#60;meta property&#61;\"og:title\"differ from metatitle by adding the og and og.title:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    og: {\n      title: 'This text will be inserted in HTML &#60;meta property&#61;\"og:title\"tag'\n    }\n  }\n}\n\n\nYou can add a description to your documentation website:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    description: 'This text will be inserted in HTML &#60;meta name&#61;\"description\"and &#60;meta name&#61;\"og:description\"tags'\n  }\n}\n\nYou can make the &#60;meta name&#61;\"og:description\"differ from description by adding the og and og.description:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    og: {\n      // ...\n      description: 'This text will be inserted in HTML &#60;meta name&#61;\"og:description\"tag'\n    }\n  }\n}\n\n\nYou can add &#60;meta name&#61;\"keywords\"HTML tag by adding the keywords:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    keywords: 'Your,website,keywords,here'\n  }\n}\n\n\nYou can add footer text by adding the footer:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    footer: 'This text will be footer text'\n  }\n}\n\n\nYou can change the &#60;meta property&#61;\"twitter:card\"by adding the twitter and the twitter.card in docsconfig. summarylargeimage by default.\n\nYou can add buttons and links to header/navbar:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    links: [\n      [\"a link\", \"https://example.com/\", \"blank\"] // [ \" link title \" , \" URL \" , \" HTML &#60;atarget \" ]\n    ],\n    buttons: [\n      [\"a button\", \"https://example.com/\", \"blank\"] // [ \" button title \" , \" URL \" , \" HTML &#60;atarget \" ]\n    ]\n  }\n}\n\n\nIcon\nTo add an icon to your documentation pages, you can insert your custom HTML in &#60;headby adding the insertInHTMLHead:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    insertInHTMLHead: '&#60;!--   Your HTML code here   /--&#62;'\n  }\n}\n\nTo add an icon to header/navbar in generated documentation pages, you can specify image URL by adding the logo:\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    logo: 'http://example.com/logo.png'\n  }\n}\n\n\nThird-party services\nCurrently, Just an Ultimate Site Tool supports only adding these third-party services:\n- Google Analytics\n- Google Site Verification\n- Yandex Site Verification\njust.config.js:\njs\nmodule.exports &#61; {\n  // ...\n  docsconfig: {\n    // ...\n    google: 'google site verification',\n    googleAnalytics: 'google analytics', // example: 'G-..........'\n    yandex: 'yandex site verification'\n  }\n}\n\n\njust: prev: /docs/getting-started\njust: next: /docs/generator/syntax","/docs/modes/compressor":"Compressor mode\n- Compresses your website.\n\nThis mode compresses your static website's .html, .js, .css, .xml, .svg, .json and .webmanifest files.&#60;brIt removes every comments, tabs and newlines. &#60;br&#62;&#60;br&#62;For JavaScript it also compresses booleans and undefined: &#60;br&#62;&#60;ul style&#61;\"margin-bottom: -19px\"&#62;&#60;litrue -!0 &#60;/li&#62;&#60;lifalse -!1 &#60;/li&#62;&#60;liundefined -[][[]] &#60;/li&#62;&#60;/ul&#62;\n\nWARNING: This mode is under development, and it may cause JavaScript and HTML errors! &#60;br&#62;To fix JavaScript, do not forget semicolons. &#60;br&#62;To fix HTML newlines, use &#60;brinstead. &#60;br&#62;Please report any bugs you find.\n&#60;br&#62;&#60;br&#62;\nThis mode requires only the just.config.js file and the workflow file.\njust.config.js\njs\nmodule.exports &#61; {\n  mode: \"compressor\"\n}\n\n\n.github/workflows/WORKFLOWNAME.yml\nyml\nname: Website\n\non:\n  push:\n    branches: [\"main\"]\n  workflowdispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: false\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n      - name: Generate with just\n        uses: js-just/latest@main\n        with:\n          path: . # Root directory, or you can replace the dot with the path to your website directory to be compressed.\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v3\n        with:\n          path: . # Root directory, or you can replace the dot with the path to your entire website to be deployed to GitHub Pages.\n\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.pageurl }}\n    runs-on: ubuntu-latest\n    needs: build\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n\n\nHow it works?\nIt compresses files by removing tabs, newlines and comments.\nAlso it compresses booleans and undefined in JavaScript:\njs\n!0     // true\n!1     // false\n[][[]] // undefined\n\n][[]] ( undefined ) by [JSFuck\n\njust: prev: /docs/getting-started","/docs/modes/postprocessor":"Postprocessor mode\n- Add your own files to generated Next.js website.\n\nWith this mode you can add your own files to generated Next.js website. &#60;br&#62;This mode creates the deploy directory and outputs files into it.&#60;brIf your Next.js website outputs an en.html file, it will be copied into the index.html file.\n\nWARNING: This mode will be deprecated after v0.1.1.\n\nThis mode requires the just.config.js file, the workflow file, some directories and just/404.html.\nNext.js website should be generated before running this mode.\nGenerated Next.js website should be in .next/server/pages/ and .next/static/ directories.\nRequired directories are:\n- just\n- just/dangerously-insert-files\n- just/js\n- just/style\n\njust.config.js\njs\nmodule.exports &#61; {\n  type: \"postprocessor\"\n}\n\n.github/workflows/WORKFLOWNAME.yml\nyaml\nname: Website\n\non:\n  push:\n    branches: [\"main\"]\n  workflowdispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: false\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      - name: npm\n        id: install-npm\n        run: npm i\n      - name: Detect package manager\n        id: detect-package-manager\n        run: |\n          if [ -f \"${{ github.workspace }}/yarn.lock\" ]; then\n            echo \"manager&#61;yarn\" &#62;$GITHUBOUTPUT\n            echo \"command&#61;install\" &#62;$GITHUBOUTPUT\n            echo \"runner&#61;yarn\" &#62;$GITHUBOUTPUT\n            exit 0\n          elif [ -f \"${{ github.workspace }}/package.json\" ]; then\n            echo \"manager&#61;npm\" &#62;$GITHUBOUTPUT\n            echo \"command&#61;ci\" &#62;$GITHUBOUTPUT\n            echo \"runner&#61;npx --no-install\" &#62;$GITHUBOUTPUT\n            exit 0\n          else\n            echo \"Unable to determine package manager\"\n            exit 1\n          fi\n      - name: Setup Node\n        uses: actions/setup-node@v4\n        with:\n          node-version: \"20\"\n          cache: ${{ steps.detect-package-manager.outputs.manager }}\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n        with:\n          staticsitegenerator: next\n      - name: Restore cache\n        uses: actions/cache@v4\n        with:\n          path: |\n            .next/cache\n          key: ${{ runner.os }}-nextjs-${{ hashFiles('/package-lock.json', '/yarn.lock') }}-${{ hashFiles('.[jt]s', '.[jt]sx') }}\n          restore-keys: |\n            ${{ runner.os }}-nextjs-${{ hashFiles('/package-lock.json', '/yarn.lock') }}-\n      - name: Install dependencies\n        run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}\n      - name: Build with Next.js\n        run: ${{ steps.detect-package-manager.outputs.runner }} next build\n      - name: Override with just\n        uses: js-just/latest@main\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v3\n        with:\n          path: deploy\n\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.pageurl }}\n    runs-on: ubuntu-latest\n    needs: build\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n\n\nRequired directories\nRequired only directories, not files within them (except for the just/404.html file).\n\nIn just/js you can put your JavaScript files to be inserted into the deploy/just directory and into every HTML page.\nIn just/style you can place your CSS files to be inserted into the deploy/just directory and into every HTML page as well.\nWithin just/dangerously-insert-files, you may include any files that you wish to insert into the deploy directory.\n\nCAUTION: Inserting files via the just/dangerously-insert-files directory may cause website errors or files may not be inserted if there is already a file with the same name in the deploy directory.\n\nThe just/404.html file is required and it’ll become the deploy/404.html file (if the deploy/404.html file already exists, it will be overwritten).\n\nHow it works?\n1. It creates a deploy directory and copies every file from the .next/server/pages and .next/static directories to it.\n2. If there is a deploy/en.html file, it will copies to the deploy/index.html.\n3. It copies just/404.html to deploy/404.html (if it exists, it’ll be overwritten).\n4. Every just/js/.js copies into deploy/just; Every just/style/.css copies into deploy/just; Every just/dangerously-insert-files/ copies into deploy.\n5. Every JavaScript and CSS file in deploy/just are inserted into every HTML page as HTML tags.\n\nTroubleshooting\nThis mode may cause website issues.\nYou can try fixing them by switching the postprocessor version in your workflow file.\nyaml\n      - name: Override with just\n        uses: js-just/latest@main\n        with:\n          postprocessor-version: \"26\"\n\nAvailable postprocessor versions are: \"24\", \"26\" (default), \"32\".You can support Just an Ultimate Site Tool by setting the watermark to true in the module.exports of the just.config.js file. This will add two comments about the Just an Ultimate Site Tool to every HTML file. Thank you.\n\njust: prev: /docs/getting-started","/docs/modes/redirector":"Redirector mode\n- Client-side redirect.\n\nThis mode redirects your static website, such as your .github.io website, to a specified URL. &#60;br&#62;This mode creates the deploy directory and outputs files into it.\n\nThis mode requires only the just.config.js file, (except for the workflow file).\njust.config.js\njs\nmodule.exports &#61; {\n  mode: \"redirector\", \n  redirectconfig: {\n    url: \"https://example.com/\" // Required. Replace with destination URL.\n  }\n}\n\nTIP: Do not use this mode if you can make server-side HTTP 3XX redirects.\n\nYou can add params{}:\njs\nmodule.exports &#61; {\n  mode: \"redirector\", \n  redirectconfig: {\n    url: \"https://example.com/\", // Required. Replace with destination URL.\n    params: { // Optional.\n      title: \"redirect website title here\", // Optional. Replace with any title you want. Recommended.\n      description: \"redirect website description here\", // Optional. Replace with any description you want.\n      keywords: \"some, keywords, here\", // Optional. Replace with any keywords you want. Separate keywords by commas.\n      htmlLang: \"en\", // Optional. &#60;html lang&#61;\"${htmlLang}\"&#62;\n      robots: \"index\", // Optional. &#60;meta name&#61;\"robots\" content&#61;\"${robots}\"&#62;\n      charset: \"utf-8\", // Optional. \"utf-8\" by default. &#60;meta charset&#61;\"${charset}\"and file charset.\n      viewport: \"width&#61;device-width, initial-scale&#61;1.0\", // Optional. \"width&#61;device-width, initial-scale&#61;1.0\" by default. &#60;meta name&#61;\"viewport\" content&#61;\"${viewport}\"&#62;\n      yandex: \"\", // Optional. Put your Yandex verification string here. &#60;meta name&#61;\"yandex-verification\" content&#61;\"${yandex}\"&#62;\n      google: \"\", // Optional. Put your Google verification string here. &#60;meta name&#61;\"google-site-verification\" content&#61;\"${google}\"&#62;\n      googleAnalytics: \"\", // Optional. Put your Google Analytics ID here.\n      twitter: {\n        card: \"\"\n      }\n    }\n  }\n}\n\nYou can also add content{} in params{} if you want to modify HTML content.\njs\nmodule.exports &#61; {\n  mode: \"redirector\", \n  redirectconfig: {\n    url: \"https://example.com/\", // Required. Replace with destination URL.\n    params: { // Optional.\n      content: { // Optional.\n        text1: \"Redirecting...\", // Optional. \"Redirecting...&#60;br&#62;\" + generated content (\"&#60;small&#62;to &#60;a ...&#62;...&#60;/a&#62;&#60;/small&#62;\") by default.\n        text2: \"Didn’t get redirected?\", // Optional. \"Didn’t get redirected?\" by default.\n        text3: \"Click here!\" // Optional. \"Click here!\" by default. &#60;a ...&#62;${text3}&#60;/a&#62;\n      }\n    }\n  }\n}\n\nNOTE: n and tabs/4 spaces will be removed. Use &#60;brinstead of n.\n\nRemember that your repository should have a .github/workflows/WORKFLOWNAME.yml file.\nTemplate:\nyml\nname: Website\n\non:\n  push:\n    branches: [\"main\"]\n  workflowdispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: false\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n      - name: Generate with just\n        uses: js-just/latest@main\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v3\n        with:\n          path: deploy\n\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.pageurl }}\n    runs-on: ubuntu-latest\n    needs: build\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n\n\nRedirect paths\nYou may add paths[] in redirectconfig{} to create custom redirect paths.\njs\nmodule.exports &#61; {\n  mode: \"redirector\", \n  redirectconfig: {\n    url: \"https://example.com/\", // Required. Replace with destination URL.\n    paths: [ // Optional\n      {\n        path: \"example\", // Required. Replace with path.\n        url: \"https://example.com/\", // Required. Replace with path destination URL.\n        params: { // Optional.\n          title: \"redirect website title here\", // Optional. Replace with any title you want. Recommended.\n          description: \"redirect website description here\", // Optional. Replace with any description you want.\n          keywords: \"some, keywords, here\", // Optional. Replace with any keywords you want. Separate keywords by commas.\n          htmlLang: \"en\", // Optional. &#60;html lang&#61;\"${htmlLang}\"&#62;\n          robots: \"index\", // Optional. &#60;meta name&#61;\"robots\" content&#61;\"${robots}\"&#62;\n          charset: \"utf-8\", // Optional. \"utf-8\" by default. &#60;meta charset&#61;\"${charset}\"and file charset.\n          viewport: \"width&#61;device-width, initial-scale&#61;1.0\", // Optional. \"width&#61;device-width, initial-scale&#61;1.0\" by default. &#60;meta name&#61;\"viewport\" content&#61;\"${viewport}\"&#62;\n          yandex: \"\", // Optional. Put your Yandex verification string here. &#60;meta name&#61;\"yandex-verification\" content&#61;\"${yandex}\"&#62;\n          google: \"\", // Optional. Put your Google verification string here. &#60;meta name&#61;\"google-site-verification\" content&#61;\"${google}\"&#62;\n          googleAnalytics: \"\" // Optional. Put your Google Analytics ID here.\n        }\n      }\n    ]\n  }\n}\n\n\nHow it works?\nIt generates HTML pages based on your module.exports input.\nEvery generated HTML page has:\n- &#60;meta http-equiv&#61;\"refresh\" content&#61;\"0;url&#61;...\"in &#60;head&#62;. This means that the user will be redirected to the destination URL in 0 seconds after the page has loaded.\n- Fallback #1 - &#60;script&#62;...&#60;/scriptin &#60;bodyredirects the user to the destination URL.\n- Fallback #2 - Other elements in &#60;body(\"Redirecting... &#60;...&#62;\", \"Didn’t get redirected? &#60;a ...Click here! &#60;/a\").\nThat means that users should be redirected, even if they have disabled JavaScript in their browser settings.\n\nWhy is HTTP 3XX better?\nA response with an HTTP 3XX status code and with the location header makes a real redirect.\nThis mode generates client-side redirects that only support browsers!","/docs":"$${name}$$ Docs\nWelcome to $${name}$$ documentation!\n\"just\" is an abbreviation of $${name}$$.## What is $${name}$$?\n$${name}$$ is a GitHub Action for building static websites. \nCurrently it have 4 modes: \n- Postprocessor: Add your own files to generated Next.js website.\n- Redirector: Client-side redirect using JavaScript.\n- Compressor: Compresses your website.\n- Generator: Generates documentation website using Markdown.\n\nWARNING: $${name}$$ is still in development at the beta stage. Expect regular updates, possible bugs, and changes. If you have found a bug, please report it here.\nNOTE: $${name}$$ assumes that a modern browser and a modern operating system are used.\n\nWhy $${name}$$?\n1. No packages.\n2. Fast build.\n3. No watermarks.\n$${name}$$ uses Node.js, but $${name}$$ does not require you to use Node.js/npm/pnpm/Yarn/related packages stuff.\n\njust: next: /docs/getting-started","/":"This is a test page\nGenerated using Just an Ultimate Site Tool.\n\nSome bold, italic, important, underlined, strikethrough, sub, &#94;super&#94;, &#61;&#61;marked&#61;&#61;, very important, &#61;&#61;extreme important&#61;&#61;, not important text.\nSome code; bold, italic, important, underlined, strikethrough, sub, &#94;super&#94;, &#61;&#61;marked&#61;&#61;, very important, &#61;&#61;extreme important&#61;&#61;, not important code.\n\nInmiddlehere\nInmiddlehere\n(bold)\n(bold)\n$0.00\n$0.00\n\n&#61;&#61;text&#61;&#61;\n\n1. List\n2. (with numbers)\n\n- List\n- (no numbers)\n\nA line:${ test.txt }$\n\nSome code here\n\n\nBlockquotes test\nA blockquote.\nAnother one!\nAnd another blockquote!\nMany nested blockquotes.\nThis line should not be another nested blockquote. (Limit: 4 nested blockqutes)\n\nNOTE: A note!\nTIP: A tip!\nIMPORTANT: Something important.\nWARNING: A warning!\nCAUTION: Another warning?\n\nNOTE: NOTE:, TIP:, IMPORTANT:, WARNING: and CAUTION: are should be in one line. You can add &#60;brtags to break the line for HTML. &#60;brNOTE:, TIP:, IMPORTANT:, WARNING: and CAUTION: cannot have nested blockquotes.\n\n\nMulti &#60;br&#62;Line &#60;br&#62;(&#60;br&#62;)\n\nMulti\n\nLine\n&#62;\n(n + + space + n)\n\nMulti\n&#62;\nLine\n&#62;\n(n + + n)\n\nHeaders test (h1)\nh2\nh3\nh4\nh5\nh6\nIMPORTANT: Only h1, h2, h3 and h4 will be included in the \"On this page\" content list and will have their own unique IDs for shortlinks.\n\nEscape test\nNot a line:1. Not a list\n2. (with numbers)\n\n- Not a list\n- (no numbers)\n\n\nNo code here\n\n\nNot a blockquote.\n\nNOTE: A blockquote, but not a note.\n\nhttps://example.com - escaped link\nhttps://example.com - disabled auto linking\n\nLinks test\na link\n&#60;https://just.is-a.dev/&#62;\nhttps://just.is-a.dev## v0.0.28 bugs:\nblockquote link:\nWARNING: Just an Ultimate Site Tool is in beta. Expect regular updates, possible bugs, and changes. If you have found a bug, please report it here.\n\ntext styling:\n\"just\"\n\nv0.0.29 features:\nsmall text\n\nv0.1.1 features:\nEmbeds:\n{https://juststudio.is-a.dev/}\n{https://is-a.dev/}\n{https://discord.com/app}\nTables:\n| Syntax      | Description |\n| ----------- | ----------- |\n| Header      | Title       |\n| Paragraph   | Text        |\n\n| Syntax | Description |\n| --- | ----------- |\n| Header | Title |\n| Paragraph | Text |\n\n| Syntax      | Description | Test Text     |\n| :---        |    :----:   |          ---: |\n| Header      | Title       | Here's this   |\n| Paragraph   | Text        | And more      |\nEmoji shortcodes:\n:right: :fog is coming: :left:\nEnvironment variables:\n$${test}$$\nDetails/Dropdown:\n&#60;details&#62;\n    &#60;summary&#62;Some text here&#60;/summary&#62;\n    Some bold, italic, important, underlined, strikethrough, sub, &#94;super&#94;, &#61;&#61;marked&#61;&#61;, very important, &#61;&#61;extreme important&#61;&#61;, not important text.\n    Some code; bold, italic, important, underlined, strikethrough, sub, &#94;super&#94;, &#61;&#61;marked&#61;&#61;, very important, &#61;&#61;extreme important&#61;&#61;, not important code.\n&#60;/details&#62;\n\njust: prev: /docs/getting-started\njust: next: /docs/getting-started","/langs":"Syntax highlighting\njson\n{\n    \"hello\": \"world\",\n    \"number\": 1234567890,\n    \"array\": [null, true, false]\n}\n\njson\n[\n    \"hello\", \"world\"\n]\n\njs\nimport {abc as cba} from '../test.js';\nconst abc &#61; require('../../test.js');\n\nclass test {\n    constructor () {\n        return true\n    }\n}\n\nconsole.log('hello world');\nconsole.warn(1 + 1);\nalert(false);\nconst abc &#61; true;\nfor (i &#61; 1; i &#60;&#61; 4; i++) {\n    // do something\n};\nswitch (abc) {\n    case true:\n        window.location.replace('https://juststudio.is-a.dev/');\n        break;\n    default:\n        document.body.classList.add('a');\n        break;\n}\n/\n  @param {number} b\n  @returns {number}\n /\nfunction a (b) {\n    return b + 1;\n}\nlet c &#61; (d) &#61;{\n    return a(d) / 2;\n}\nvar e &#61; (f) &#61;f + f;\nif (typeof abc !&#61; 'boolean') {\n    throw new Error('error');\n} else if (.2 !&#61; 0.2) {\n    console.error('what');\n} else {\n    try {\n        new test();\n    } catch (ee) {\n        const fewuhfuiwfuiweifuweiewhfiew &#61; globalThis.localStorage.getItem('KEY');\n        console.log(fewuhfuiwfuiweifuweiewhfiew);\n    } finally {\n        fetch();\n    }\n}\n\nhtml\n&#60;!DOCTYPE html&#62;\n&#60;span class&#61;\"hw\" id&#61;\"abc\"&#62;Hello World!&#60;/span&#62;\n\ncss\n {\n    background-color: black;\n}\nspan {\n    color: white;\n}\n.hw {\n    border: 1px solid #6e3bf3;\n}\n#abc {\n    -webkit-filter: blur(8em);\n}\ndiv:before {\n    content: 'hello';\n}\n:root {\n    --color: #ffffff;\n    @media(max-width: 5px) {\n        --color: #000000;\n    }\n}\n::-webkit-scrollbar {\n    width: 7px;\n    height: 7px\n}\n\nsh\n#!/bin/bash\necho \"Hello World!\"\n\npy\n#!/usr/bin/env python3\nimport time\nout &#61; int(time.time()  1000)\nprint(out)\n\nlua\nprint(\"hiii\")\nwarn(1 + 1)\nlocal abc &#61; true\nwhile wait(1) do\n    -- do something\nend\n\nmd\nmarkdown inside markdown\ngo\n// go\n\ngolang\n// golang\n\ngolo\n\n\ngololang\n\n\ndiff\n  text\n+ added\n- removed\n","/mattcone":"Markdown test\nThis is a Markdown test for the Markdown Guide tools directory.headings\n\nOne\nTwo\nThree\nFour\nFive\nSix\nAlternate One\n&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;\n\nAlternate Two---\n\nparagraphs\n\nfirst paragraph\n\nsecond paraline breaks\n\nline one with trailing whitespace  \nline two right under\n\nline one with no trailing whitespace, just hard return\nline two right under\n\nline one with no trailing backslash \nline two right underbold\n\nasterisks\n\nunderscores\n\ninmiddlehereitalic\n\nasterisk\n\nunderscore\n\ninmiddleherebold and italic\n\nasterisks\n\nunderscores\n\ncombo\n\nsecond comboblockquotes\n\nsingle\n\nmulti\n&#62;\nline\n\nnested\n&#62;\n&#62;blockquotesordered lists\n\n1. first\n2. second\n3. third\n\n1. this\n2. is\n    1. nested\n3. nowunordered lists\n\n- dashes\n- here\n  - nested\n\n asterisks\n here\n\n+ plus\n+ signscode\n\none tick mark\n\n    &#60;one tab&#62;\n      &#60;indented&#62;horizontal rules\n\nthroughout this :)links\n\nnormal link &#61;cnn\n\nbrackets &#61;&#60;https://cnn.com&#62;\n\nbrackets &#61;&#60;me@somewhere.com&#62;\n\nnaked url (test auto link) &#61;https://cnn.comimages\n\n![test image](https://www.markdownguide.org/assets/images/tools/joplin.png)## Tables\n\n| Syntax      | Description |\n| ----------- | ----------- |\n| Header      | Title       |\n| Paragraph   | Text        |## Fenced code blocks\n\n\n{\n  \"firstName\": \"John\",\n  \"lastName\": \"Smith\",\n  \"age\": 25\n}\nSyntax highlighting\njson\n{\n  \"firstName\": \"John\",\n  \"lastName\": \"Smith\",\n  \"age\": 25\n}\nFootnotes\nHere's a simple footnote,[&#94;1] and here's a longer one.[&#94;bignote]\n\n[&#94;1]: This is the first footnote.\n\n[&#94;bignote]: Here's one with multiple paragraphs and code.\n\n    Indent paragraphs to include them in the footnote.\n\n    { my code }\n\n    Add as many paragraphs as you like.## Heading IDs\n\nMy Great Heading {#custom-id}## Definition lists\nFirst Term\n: This is the definition of the first term.\n\nSecond Term\n: This is one definition of the second term.\n: This is another definition of the second term.## Strikethrough\n\ntwo tilde\n\none tilde## Task lists\n\n- [x] Write the press release\n- [ ] Update the website\n- [ ] Contact the media## Emoji\n\ncopy and paste: ☕\nshortcodes: :joy:## Highlight\n\n&#61;&#61;twoequals&#61;&#61;\n\n::twohypens::## Subscript\n\nH2O## Superscript\n\nX&#94;2&#94;## Abbreviation\n\n[HTML]: Hyper Text Markup Language\n\nThe HTML specification is maintained by the W3C.## HTML\n\n&#60;em&#62;italic test&#60;/em&#62;\n\n&#60;strong&#62;bold test&#60;/strong&#62;"}