├── .cursor └── rules │ └── do-not-edit-theme.mdc ├── .cursorindexingignore ├── .editorconfig ├── .env ├── .gitignore ├── .gitmodules ├── .jshintrc ├── .markdownlint.json ├── .prettierrc ├── DEVELOPMENT.md ├── LICENSE.md ├── README.md ├── THIRD-PARTY-NOTICES.md ├── assets ├── css │ ├── custom.css │ └── featherlight.min.css └── js │ ├── clipboard.min.js │ ├── custom.js │ ├── featherlight.min.js │ ├── image-featherlight.js │ ├── jquery-3.3.1.min.js │ └── jquery.sticky.js ├── config ├── _default │ ├── languages.toml │ ├── menus.en.toml │ ├── menus.ja.toml │ ├── module.toml │ └── params.toml └── development │ └── server.toml ├── content ├── _index.en.md ├── _index.md ├── authors │ ├── _index.md │ └── fraxinus-project.md ├── docs │ ├── _index.md │ ├── assembly │ │ ├── 1k │ │ │ ├── step1.md │ │ │ ├── step2.md │ │ │ ├── step3.md │ │ │ ├── step4.md │ │ │ ├── step5.md │ │ │ ├── step6.md │ │ │ ├── step7.md │ │ │ ├── step8.md │ │ │ └── step9.md │ │ ├── about.en.md │ │ └── about.md │ ├── community.en.md │ ├── community.md │ ├── enclosure.en.md │ ├── enclosure.md │ ├── flying-gantry.en.md │ ├── flying-gantry.md │ ├── micro-printers.en.md │ ├── micro-printers.md │ ├── res │ │ └── index.md │ ├── roadmap.md │ ├── trident.en.md │ └── trident.md ├── pages │ ├── about.en.md │ ├── about.md │ ├── discord.en.md │ ├── discord.md │ ├── privacy-policy.en.md │ └── privacy-policy.md └── sections │ ├── call-to-action.md │ └── variations.md ├── data ├── social.json └── theme.json ├── go.mod ├── go.sum ├── hugo.toml ├── i18n ├── en.yaml └── ja.yaml ├── layouts ├── _default │ ├── list.html │ ├── single.html │ └── terms.html ├── docs │ ├── list.html │ └── single.html ├── index.html ├── index.llms.txt └── partials │ ├── analytics │ └── cloudflare-analytics.html │ ├── basic-seo.html │ ├── components │ ├── breadcrumb.html │ └── language-switcher.html │ ├── entry │ └── content.html │ ├── essentials │ ├── head.html │ └── header.html │ └── svg │ └── content │ └── upload.svg ├── mise.toml ├── package-lock.json ├── package.json ├── scripts ├── build.sh ├── clearModules.js ├── projectSetup.js ├── removeDarkmode.js ├── run-build-in-docker.sh ├── run-server-in-docker.sh ├── run-server.bat ├── run-server.sh ├── themeSetup.js ├── themeUpdate.js ├── update_lastmod_date.sh └── update_publish_date.sh ├── static ├── favicon.png ├── favicon.svg └── images │ ├── Fraxinus-1.jpg │ ├── Fraxinus-2.jpg │ ├── Fraxinus-3.jpg │ ├── Fraxinus-4.jpg │ ├── Fraxinus-5.jpg │ ├── Fraxinus-photo-1.jpg │ ├── Fraxinus-photo-2.jpg │ ├── Fraxinus0-front-view.jpg │ ├── Fraxinus00-photo-1.jpg │ ├── Fraxinus00-photo-2.jpg │ ├── Fraxinus00.jpg │ ├── Fraxinus00w-photo-1.jpg │ ├── Fraxinus00w.jpg │ ├── Fraxinus00w2-compare.jpg │ ├── Fraxinus00w2-photo-1.jpg │ ├── Fraxinus00w2.jpg │ ├── Fraxinus00w3-1.jpg │ ├── Fraxinus00w3-2.jpg │ ├── Fraxinus00w3-photo-1.jpg │ ├── Fraxinus0w-compare.jpg │ ├── Fraxinus0w-rev1.jpg │ ├── Fraxinus0w-rev2.jpg │ ├── Fraxinus1fg-detail.jpg │ ├── Fraxinus1fg.jpg │ ├── Fraxinus1k.jpg │ ├── Fraxinus1kc-photo-1.jpg │ ├── Fraxinus1kc2-photo-1.jpg │ ├── Fraxinus1tc2-photo-1.jpg │ ├── Fraxinus1tcl.jpg │ ├── Fraxinus1tcl_1tc2_1ksc.jpg │ ├── Fraxinus3e.jpg │ ├── Fraxinus3ec-photo-1.jpg │ ├── Fraxinus3fg-detail.jpg │ ├── Fraxinus3fg-photo-1.jpg │ ├── Fraxinus3fg.jpg │ ├── Fraxinus3tc-photo-1.jpg │ ├── Fraxinus3tcl.jpg │ ├── Fraxinus5fg-detail.jpg │ ├── Fraxinus5fg.jpg │ ├── Fraxinus5ts.jpg │ ├── Fraxinus9fg-photo-1.jpg │ ├── Fraxinus9fg.jpg │ ├── community │ ├── Fraxinus00cw.jpg │ ├── Fraxinus00tw.png │ ├── Fraxinus1pk.jpg │ ├── Fraxinus5ts_DAKSH_tool_changer.jpg │ ├── Fraxinus5ts_IDEX.jpg │ ├── Fukumi.jpg │ ├── fraxinus-group-photo-1.jpg │ ├── fraxinus-group-photo-2.jpg │ ├── fraxinus-group-photo-3.jpg │ ├── fraxinus-group-photo-4.jpg │ └── prokosinus00.jpg │ ├── fraxinus-appendix-electronics-connection.jpg │ ├── fraxinus-appendix-nut-1.jpg │ ├── fraxinus-appendix-nut-2.jpg │ ├── fraxinus-appendix-nut-3.jpg │ ├── fraxinus-appendix-nut-4.jpg │ ├── fraxinus-appendix-nut-5.jpg │ ├── fraxinus-appendix-nut-6.jpg │ ├── fraxinus-appendix-nut-7.jpg │ ├── fraxinus-assembly-1-print-colored.jpg │ ├── fraxinus-assembly-1-print-jig.jpg │ ├── fraxinus-assembly-1-print-slicer.jpg │ ├── fraxinus-assembly-1-print-stl.jpg │ ├── fraxinus-assembly-1-procurement-list.jpg │ ├── fraxinus-assembly-2-parts-0.jpg │ ├── fraxinus-assembly-2-parts-1.jpg │ ├── fraxinus-assembly-2-parts-10.jpg │ ├── fraxinus-assembly-2-parts-11.jpg │ ├── fraxinus-assembly-2-parts-12.jpg │ ├── fraxinus-assembly-2-parts-13.jpg │ ├── fraxinus-assembly-2-parts-14.jpg │ ├── fraxinus-assembly-2-parts-2.jpg │ ├── fraxinus-assembly-2-parts-3.jpg │ ├── fraxinus-assembly-2-parts-4.jpg │ ├── fraxinus-assembly-2-parts-5.jpg │ ├── fraxinus-assembly-2-parts-6.jpg │ ├── fraxinus-assembly-2-parts-7.jpg │ ├── fraxinus-assembly-2-parts-8.jpg │ ├── fraxinus-assembly-2-parts-9.jpg │ ├── fraxinus-assembly-3-frame-0.jpg │ ├── fraxinus-assembly-3-frame-1.jpg │ ├── fraxinus-assembly-3-frame-2.jpg │ ├── fraxinus-assembly-3-frame-3.jpg │ ├── fraxinus-assembly-3-frame-4.jpg │ ├── fraxinus-assembly-3-frame-5.jpg │ ├── fraxinus-assembly-3-frame-6.jpg │ ├── fraxinus-assembly-3-frame-7.jpg │ ├── fraxinus-assembly-3-frame-8.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-0.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-1.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-10.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-11.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-12.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-2.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-3.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-4.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-5.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-6.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-7.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-8.jpg │ ├── fraxinus-assembly-4-teardown-kp3s-9.jpg │ ├── fraxinus-assembly-5-z-bed-0.jpg │ ├── fraxinus-assembly-5-z-bed-1.jpg │ ├── fraxinus-assembly-5-z-bed-10.jpg │ ├── fraxinus-assembly-5-z-bed-2.jpg │ ├── fraxinus-assembly-5-z-bed-3.jpg │ ├── fraxinus-assembly-5-z-bed-4.jpg │ ├── fraxinus-assembly-5-z-bed-5.jpg │ ├── fraxinus-assembly-5-z-bed-6.jpg │ ├── fraxinus-assembly-5-z-bed-7.jpg │ ├── fraxinus-assembly-5-z-bed-8.jpg │ ├── fraxinus-assembly-5-z-bed-9.jpg │ ├── fraxinus-assembly-6-x-carriage-0.jpg │ ├── fraxinus-assembly-6-x-carriage-1.jpg │ ├── fraxinus-assembly-6-x-carriage-2.jpg │ ├── fraxinus-assembly-6-x-carriage-3.jpg │ ├── fraxinus-assembly-6-x-carriage-4.jpg │ ├── fraxinus-assembly-6-x-carriage-5.jpg │ ├── fraxinus-assembly-6-x-carriage-6.jpg │ ├── fraxinus-assembly-7-xy-gantry-0.jpg │ ├── fraxinus-assembly-7-xy-gantry-1.jpg │ ├── fraxinus-assembly-7-xy-gantry-2.jpg │ ├── fraxinus-assembly-7-xy-gantry-3.jpg │ ├── fraxinus-assembly-7-xy-gantry-4.jpg │ ├── fraxinus-assembly-7-xy-gantry-5.jpg │ ├── fraxinus-assembly-7-xy-gantry-6.jpg │ ├── fraxinus-assembly-8-belt-head-0.jpg │ ├── fraxinus-assembly-8-belt-head-1.jpg │ ├── fraxinus-assembly-8-belt-head-2.jpg │ ├── fraxinus-assembly-8-belt-head-3.jpg │ ├── fraxinus-assembly-8-belt-head-4.jpg │ ├── fraxinus-assembly-8-belt-head-5.jpg │ ├── fraxinus-assembly-8-belt-head-6.jpg │ ├── fraxinus-assembly-8-belt-head-7.jpg │ ├── fraxinus-assembly-9-electronics-0.jpg │ ├── fraxinus-assembly-9-electronics-1.jpg │ ├── fraxinus-assembly-9-electronics-2.jpg │ ├── fraxinus-assembly-9-electronics-3.jpg │ ├── fraxinus-assembly-9-electronics-4.jpg │ ├── fraxinus-assembly-9-electronics-5.jpg │ ├── fraxinus-assembly-9-electronics-6.jpg │ ├── fraxinus-assembly-9-electronics-7.jpg │ ├── fraxinus-assembly-9-electronics-8.jpg │ ├── fraxinus-roadmap.png │ ├── logo_black.png │ ├── logo_navbar_black.png │ ├── logo_navbar_white.png │ ├── logo_simple_black.svg │ ├── logo_simple_white.svg │ └── logo_white.png ├── tailwind-plugin ├── tw-bs-grid.js └── tw-theme.js ├── themes └── hugoplate │ ├── assets │ ├── css │ │ ├── base.css │ │ ├── buttons.css │ │ ├── components.css │ │ ├── custom.css │ │ ├── main.css │ │ ├── module-overrides.css │ │ ├── navigation.css │ │ ├── safe.css │ │ └── utilities.css │ ├── js │ │ └── main.js │ └── plugins │ │ ├── maps │ │ └── google-map.js │ │ └── swiper │ │ ├── swiper-bundle.css │ │ └── swiper-bundle.js │ └── layouts │ ├── 404.en.html │ ├── _default │ ├── baseof.html │ ├── list.html │ ├── single.html │ ├── taxonomy.html │ └── terms.html │ ├── about │ └── list.html │ ├── authors │ ├── list.html │ └── single.html │ ├── blog │ ├── list.html │ └── single.html │ ├── contact │ └── list.html │ ├── index.html │ └── partials │ ├── call-to-action.html │ ├── components │ ├── author-card.html │ ├── blog-card.html │ ├── breadcrumb.html │ ├── language-switcher.html │ ├── pagination.html │ ├── theme-switcher.html │ └── tw-size-indicator.html │ ├── essentials │ ├── footer.html │ ├── head.html │ ├── header.html │ ├── script.html │ └── style.html │ ├── page-header.html │ └── widgets │ ├── categories.html │ ├── tags.html │ └── widget-wrapper.html └── wrangler.toml /.cursor/rules/do-not-edit-theme.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: 3 | globs: themes/** 4 | alwaysApply: false 5 | --- 6 | Do NOT edit themes directory. Its okay to look. 7 | For files in ./themes/hugoplate/layouts, copy them into ./layouts and modify them. 8 | -------------------------------------------------------------------------------- /.cursorindexingignore: -------------------------------------------------------------------------------- 1 | # Don't index SpecStory auto-save files, but allow explicit context inclusion via @ references 2 | .specstory/** 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | ; https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | HUGO_VERSION="0.147.4" 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | 3 | # Created by https://www.toptal.com/developers/gitignore/api/hugo,node 4 | # Edit at https://www.toptal.com/developers/gitignore?templates=hugo,node 5 | 6 | ### Hugo ### 7 | # Generated files by hugo 8 | /public/ 9 | /resources/_gen/ 10 | /assets/jsconfig.json 11 | hugo_stats.json 12 | 13 | # Executable may be added to repository 14 | hugo.exe 15 | hugo.darwin 16 | hugo.linux 17 | 18 | # Temporary lock file while building 19 | /.hugo_build.lock 20 | 21 | ### Node ### 22 | # Logs 23 | logs 24 | *.log 25 | npm-debug.log* 26 | yarn-debug.log* 27 | yarn-error.log* 28 | lerna-debug.log* 29 | .pnpm-debug.log* 30 | 31 | # Diagnostic reports (https://nodejs.org/api/report.html) 32 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 33 | 34 | # Runtime data 35 | pids 36 | *.pid 37 | *.seed 38 | *.pid.lock 39 | 40 | # Directory for instrumented libs generated by jscoverage/JSCover 41 | lib-cov 42 | 43 | # Coverage directory used by tools like istanbul 44 | coverage 45 | *.lcov 46 | 47 | # nyc test coverage 48 | .nyc_output 49 | 50 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 51 | .grunt 52 | 53 | # Bower dependency directory (https://bower.io/) 54 | bower_components 55 | 56 | # node-waf configuration 57 | .lock-wscript 58 | 59 | # Compiled binary addons (https://nodejs.org/api/addons.html) 60 | build/Release 61 | 62 | # Dependency directories 63 | node_modules/ 64 | jspm_packages/ 65 | 66 | # Snowpack dependency directory (https://snowpack.dev/) 67 | web_modules/ 68 | 69 | # TypeScript cache 70 | *.tsbuildinfo 71 | 72 | # Optional npm cache directory 73 | .npm 74 | 75 | # Optional eslint cache 76 | .eslintcache 77 | 78 | # Optional stylelint cache 79 | .stylelintcache 80 | 81 | # Microbundle cache 82 | .rpt2_cache/ 83 | .rts2_cache_cjs/ 84 | .rts2_cache_es/ 85 | .rts2_cache_umd/ 86 | 87 | # Optional REPL history 88 | .node_repl_history 89 | 90 | # Output of 'npm pack' 91 | *.tgz 92 | 93 | # Yarn Integrity file 94 | .yarn-integrity 95 | 96 | # dotenv environment variable files 97 | .env 98 | .env.development.local 99 | .env.test.local 100 | .env.production.local 101 | .env.local 102 | 103 | # parcel-bundler cache (https://parceljs.org/) 104 | .cache 105 | .parcel-cache 106 | 107 | # Next.js build output 108 | .next 109 | out 110 | 111 | # Nuxt.js build / generate output 112 | .nuxt 113 | dist 114 | 115 | # Gatsby files 116 | .cache/ 117 | # Comment in the public line in if your project uses Gatsby and not Next.js 118 | # https://nextjs.org/blog/next-9-1#public-directory-support 119 | # public 120 | 121 | # vuepress build output 122 | .vuepress/dist 123 | 124 | # vuepress v2.x temp and cache directory 125 | .temp 126 | 127 | # Docusaurus cache and generated files 128 | .docusaurus 129 | 130 | # Serverless directories 131 | .serverless/ 132 | 133 | # FuseBox cache 134 | .fusebox/ 135 | 136 | # DynamoDB Local files 137 | .dynamodb/ 138 | 139 | # TernJS port file 140 | .tern-port 141 | 142 | # Stores VSCode versions used for testing VSCode extensions 143 | .vscode-test 144 | 145 | # yarn v2 146 | .yarn/cache 147 | .yarn/unplugged 148 | .yarn/build-state.yml 149 | .yarn/install-state.gz 150 | .pnp.* 151 | 152 | ### Node Patch ### 153 | # Serverless Webpack directories 154 | .webpack/ 155 | 156 | # Optional stylelint cache 157 | 158 | # SvelteKit build / generate output 159 | .svelte-kit 160 | 161 | # End of https://www.toptal.com/developers/gitignore/api/hugo,node 162 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/.gitmodules -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "maxerr": 50, 3 | "bitwise": true, 4 | "camelcase": false, 5 | "curly": true, 6 | "eqeqeq": true, 7 | "forin": true, 8 | "freeze": true, 9 | "immed": true, 10 | "indent": 2, 11 | "latedef": true, 12 | "newcap": false, 13 | "noarg": true, 14 | "noempty": true, 15 | "nonbsp": true, 16 | "nonew": true, 17 | "plusplus": false, 18 | "undef": true, 19 | "unused": false, 20 | "strict": true, 21 | "maxparams": false, 22 | "maxdepth": 4, 23 | "maxstatements": false, 24 | "maxcomplexity": false, 25 | "maxlen": 400, 26 | "browser": true, 27 | "devel": true, 28 | "asi": false, 29 | "boss": false, 30 | "debug": false, 31 | "eqnull": false, 32 | "es3": false, 33 | "es5": false, 34 | "esversion": 12, 35 | "moz": false, 36 | "evil": true, 37 | "expr": true, 38 | "funcscope": false, 39 | "globalstrict": false, 40 | "iterator": false, 41 | "lastsemic": false, 42 | "laxbreak": false, 43 | "laxcomma": false, 44 | "loopfunc": true, 45 | "multistr": true, 46 | "noyield": false, 47 | "notypeof": false, 48 | "proto": false, 49 | "scripturl": false, 50 | "shadow": false, 51 | "sub": false, 52 | "supernew": false, 53 | "validthis": false, 54 | "globals": { 55 | "jQuery": false, 56 | "google": false, 57 | "$": false 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "MD033": false, 3 | "MD034": false, 4 | "MD013": false 5 | } 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": ["prettier-plugin-go-template"], 3 | "overrides": [ 4 | { 5 | "files": ["*.html"], 6 | "options": { 7 | "parser": "go-template", 8 | "goTemplateBracketSpacing": true, 9 | "bracketSameLine": true 10 | } 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /DEVELOPMENT.md: -------------------------------------------------------------------------------- 1 | # 本サイトの開発について 2 | ## デプロイ 3 | 4 | 本プロジェクトはCloudflare Pagesでデプロイされています。`main`ブランチへのプッシュで自動的にデプロイが実行されます。 5 | 6 | ## 開発環境のセットアップ 7 | 8 | ローカルで編集・プレビューできます。 9 | 10 | ### 必要なツール 11 | 12 | - [Hugo](https://gohugo.io/) v0.144 or later 13 | - [Node.js](https://nodejs.org/) v22 or later 14 | - [Go](https://golang.org/) v1.24 or later 15 | 16 | 上記ツールのインストールには[mise](https://github.com/jdx/mise)を推奨 17 | 18 | ### 環境構築 19 | 20 | 1. リポジトリをクローン: 21 | ```bash 22 | git clone https://github.com/Fraxinus-3D/docs.git 23 | cd docs 24 | ``` 25 | 26 | 2. 依存関係をインストール: 27 | ```bash 28 | npm install 29 | ``` 30 | 31 | 3. 開発サーバーを起動: 32 | ```bash 33 | npm run dev 34 | ``` 35 | または 36 | ```bash 37 | hugo server --bind=0.0.0.0 --watch --minify --gc --cleanDestinationDir 38 | ``` 39 | 40 | ### ビルド 41 | 42 | #### 本番用ビルド 43 | ```bash 44 | npm run build 45 | ``` 46 | 47 | #### プレビュービルド 48 | ```bash 49 | npm run preview 50 | ``` 51 | 52 | ### その他のコマンド 53 | 54 | - `npm run format`: コードフォーマット(Prettier) 55 | - `npm run update-modules`: Hugo modulesの更新 56 | - `npm run theme-setup`: テーマの初期設定 57 | - `npm run update-theme`: テーマの更新 58 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fraxinus 2 | 3 | Fraxinus(フラクシネス)は印刷サイズと比較しコンパクトで高速動作を実現した3Dプリンターなどのデジタル加工機です。 4 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあり、 5 | さまざまな方々がハードウェア・ソフトウェアを学びながら様々な開発や改造をしています。 6 | 興味を持って頂きましたらぜひ一緒にノウハウ共有して、同好の方々と楽しく交流できると嬉しいです! 7 | 👉[Join Discord](https://fraxinus.jp/discord) 8 | 9 | ![](./static/images/Fraxinus-5.jpg) 10 | 11 | ## Editing 12 | 13 | 編集方法については[DEVELOPMENT.md](./DEVELOPMENT.md)を参照してください。 14 | 15 | ## License 16 | 17 | (C) 2022-2025 Fraxinus Project 18 | 19 | `static/images`および`content`フォルダ内のファイルは[CC BY-NC-SA 4.0](https://github.com/Fraxinus-3D/docs/blob/main/LICENSE.md#CC-BY-NC-SA)([日本語](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.ja))で公開されています。 20 | 21 | その他のファイルは[MITライセンス](https://github.com/Fraxinus-3D/docs/blob/main/LICENSE.md#MIT)([日本語](https://licenses.opensource.jp/MIT/MIT.html))で公開されています。 22 | 23 | ## Acknowledgements 24 | 25 | The following resources are included/used in the theme: 26 | 27 | - [hugoplate](https://github.com/zeon-studio/hugoplate) by Zeon Studio - Licensed under the [MIT License](https://github.com/zeon-studio/hugoplate/blob/349436c8d33b26b0c0d261f3b0a15aedd66ae22c/LICENSE). 28 | - [Feather](https://feather.netlify.com/) by Cole Bemis - Licensed under the [MIT License](https://github.com/colebemis/feather/blob/f81cd40fdcdd5e94f3f97eb670a5058e3aac528d/LICENSE). 29 | 30 | See [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md) for other third party resources. 31 | -------------------------------------------------------------------------------- /assets/css/custom.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --link-color: #ff6b35; 3 | --link-hover-color: #0056b3; 4 | } 5 | 6 | :root.dark { 7 | /* Dark Theme Variables */ 8 | --link-color: #ff6b35; 9 | --link-hover-color: #00d4ff; 10 | } 11 | 12 | /* Link Enhancement */ 13 | .content a { 14 | color: var(--link-color); 15 | text-decoration: underline; 16 | transition: color 0.2s ease; 17 | } 18 | 19 | .content a:hover { 20 | color: var(--link-hover-color); 21 | text-decoration: underline; 22 | } 23 | 24 | /* end for link enhancement */ 25 | 26 | /* CSS for featherlight image */ 27 | .featherlight img { 28 | margin: 0 !important; 29 | } 30 | 31 | .content a.featherlight-img { 32 | border-bottom: none; 33 | } 34 | 35 | /* end for featherlight image */ 36 | 37 | /* header logo image size */ 38 | @media (max-width: 399px) { 39 | .navbar-brand { 40 | max-width: 120px; 41 | } 42 | } 43 | @media (max-width: 369px) { 44 | .navbar-brand { 45 | max-width: 100px; 46 | } 47 | } 48 | /* end for header logo image */ 49 | -------------------------------------------------------------------------------- /assets/css/featherlight.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Featherlight - ultra slim jQuery lightbox 3 | * Version 1.7.13 - http://noelboss.github.io/featherlight/ 4 | * 5 | * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com) 6 | * MIT Licensed. 7 | **/ 8 | html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}} -------------------------------------------------------------------------------- /assets/js/custom.js: -------------------------------------------------------------------------------- 1 | /* Custom JS */ 2 | -------------------------------------------------------------------------------- /assets/js/image-featherlight.js: -------------------------------------------------------------------------------- 1 | // Get Parameters from some url 2 | var getUrlParameter = function getUrlParameter(sPageURL) { 3 | var url = sPageURL.split('?'); 4 | var obj = {}; 5 | if (url.length == 2) { 6 | var sURLVariables = url[1].split('&'), 7 | sParameterName, 8 | i; 9 | for (i = 0; i < sURLVariables.length; i++) { 10 | sParameterName = sURLVariables[i].split('='); 11 | obj[sParameterName[0]] = sParameterName[1]; 12 | } 13 | } 14 | return obj; 15 | }; 16 | 17 | // Execute actions on images generated from Markdown pages 18 | jQuery(document).ready(function() { 19 | var images = $("div.container div.content img").not(".inline"); 20 | // Wrap image inside a featherlight (to get a full size view in a popup) 21 | images.wrap(function(){ 22 | var image =$(this); 23 | var o = getUrlParameter(image[0].src); 24 | var f = o['featherlight']; 25 | // IF featherlight is false, do not use feather light 26 | if (f != 'false') { 27 | if (!image.parent("a").length) { 28 | return ""; 29 | } 30 | } 31 | }); 32 | 33 | // Change styles, depending on parameters set to the image 34 | images.each(function(index){ 35 | var image = $(this) 36 | var o = getUrlParameter(image[0].src); 37 | if (typeof o !== "undefined") { 38 | var h = o["height"]; 39 | var w = o["width"]; 40 | var c = o["classes"]; 41 | image.css("width", function() { 42 | if (typeof w !== "undefined") { 43 | return w; 44 | } else { 45 | return "auto"; 46 | } 47 | }); 48 | image.css("height", function() { 49 | if (typeof h !== "undefined") { 50 | return h; 51 | } else { 52 | return "auto"; 53 | } 54 | }); 55 | if (typeof c !== "undefined") { 56 | var classes = c.split(','); 57 | for (i = 0; i < classes.length; i++) { 58 | image.addClass(classes[i]); 59 | } 60 | } 61 | } 62 | }); 63 | }); 64 | 65 | // Stick the top to the top of the screen when scrolling 66 | $(document).ready(function(){ 67 | $("#top-bar").sticky({topSpacing:0, zIndex: 1000}); 68 | }); 69 | 70 | 71 | jQuery(document).ready(function() { 72 | // Add link button for every 73 | var text, clip = new ClipboardJS('.anchor'); 74 | $("h1~h2,h1~h3,h1~h4,h1~h5,h1~h6").append(function(index, html){ 75 | var element = $(this); 76 | var url = encodeURI(document.location.origin + document.location.pathname); 77 | var link = url + "#"+element[0].id; 78 | return " " + 79 | "" + 80 | "" 81 | ; 82 | }); 83 | 84 | $(".anchor").on('mouseleave', function(e) { 85 | $(this).attr('aria-label', null).removeClass('tooltipped tooltipped-s tooltipped-w'); 86 | }); 87 | 88 | clip.on('success', function(e) { 89 | e.clearSelection(); 90 | $(e.trigger).attr('aria-label', 'Link copied to clipboard!').addClass('tooltipped tooltipped-s'); 91 | }); 92 | $('code.language-mermaid').each(function(index, element) { 93 | var content = $(element).html().replace(/&/g, '&'); 94 | $(element).parent().replaceWith('
' + content + '
'); 95 | }); 96 | }); 97 | -------------------------------------------------------------------------------- /config/_default/languages.toml: -------------------------------------------------------------------------------- 1 | [ja] 2 | lang = "ja" 3 | languageCode = "ja-jp" 4 | languageName = "Japanese" 5 | weight = 1 6 | 7 | [en] 8 | lang = "en" 9 | languageCode = "en-us" 10 | languageName = "English" 11 | contentDir = "content/english" 12 | weight = 10 13 | -------------------------------------------------------------------------------- /config/_default/menus.en.toml: -------------------------------------------------------------------------------- 1 | ############# English navigation ############## 2 | 3 | # main menu 4 | [[main]] 5 | name = "Home" 6 | url = "/" 7 | weight = 1 8 | 9 | [[main]] 10 | name = "About" 11 | url = "/about" 12 | weight = 2 13 | 14 | [[main]] 15 | name = "Community" 16 | url = "/community" 17 | weight = 3 18 | 19 | [[main]] 20 | weight = 4 21 | name = "Pages" 22 | 23 | [[main]] 24 | parent = "Pages" 25 | name = "Assembly Document" 26 | url = "/docs/assembly/about" 27 | weight = 101 28 | 29 | [[main]] 30 | parent = "Pages" 31 | name = "Enclosure" 32 | url = "/docs/enclosure" 33 | weight = 102 34 | 35 | [[main]] 36 | parent = "Pages" 37 | name = "Trident" 38 | url = "/docs/trident" 39 | weight = 103 40 | 41 | 42 | # footer menu 43 | [[footer]] 44 | name = "About" 45 | url = "/about" 46 | weight = 1 47 | 48 | [[footer]] 49 | name = "Documentation List" 50 | url = "/docs" 51 | weight = 2 52 | 53 | [[footer]] 54 | name = "Privacy Policy" 55 | url = "/privacy-policy" 56 | weight = 3 57 | -------------------------------------------------------------------------------- /config/_default/menus.ja.toml: -------------------------------------------------------------------------------- 1 | ############# English navigation ############## 2 | 3 | # main menu 4 | [[main]] 5 | name = "Home" 6 | url = "/" 7 | weight = 1 8 | 9 | [[main]] 10 | name = "Fraxinusについて" 11 | url = "/about" 12 | weight = 2 13 | 14 | [[main]] 15 | name = "コミュニティ" 16 | url = "/community" 17 | weight = 3 18 | 19 | [[main]] 20 | weight = 4 21 | name = "資料一覧" 22 | 23 | [[main]] 24 | parent = "資料一覧" 25 | name = "組立資料" 26 | url = "/docs/assembly/about" 27 | weight = 101 28 | 29 | [[main]] 30 | parent = "資料一覧" 31 | name = "エンクロージャ" 32 | url = "/docs/enclosure" 33 | weight = 102 34 | 35 | [[main]] 36 | parent = "資料一覧" 37 | name = "トライデント" 38 | url = "/docs/trident" 39 | weight = 103 40 | 41 | [[main]] 42 | parent = "資料一覧" 43 | name = "フライングガントリー" 44 | url = "/docs/flying-gantry" 45 | weight = 104 46 | 47 | [[main]] 48 | parent = "資料一覧" 49 | name = "マイクロ3Dプリンタ" 50 | url = "/docs/micro-printers" 51 | 52 | 53 | 54 | # footer menu 55 | [[footer]] 56 | name = "Fraxinusについて" 57 | url = "/about" 58 | weight = 1 59 | 60 | [[footer]] 61 | name = "資料一覧" 62 | url = "/docs" 63 | weight = 2 64 | 65 | [[footer]] 66 | name = "プライバシーポリシー" 67 | url = "/privacy-policy" 68 | weight = 3 69 | -------------------------------------------------------------------------------- /config/_default/module.toml: -------------------------------------------------------------------------------- 1 | [hugoVersion] 2 | extended = true 3 | min = "0.141.0" 4 | 5 | # [[imports]] 6 | # path = "github.com/zeon-studio/hugoplate" 7 | 8 | [[imports]] 9 | path = "github.com/gethugothemes/hugo-modules/search" 10 | 11 | [[imports]] 12 | path = "github.com/gethugothemes/hugo-modules/pwa" 13 | 14 | [[imports]] 15 | path = "github.com/gethugothemes/hugo-modules/images" 16 | 17 | [[imports]] 18 | path = "github.com/gethugothemes/hugo-modules/videos" 19 | 20 | [[imports]] 21 | path = "github.com/gethugothemes/hugo-modules/icons/font-awesome" 22 | 23 | # [[imports]] 24 | # path = "github.com/gethugothemes/hugo-modules/icons/themify-icons" 25 | 26 | [[imports]] 27 | path = "github.com/gethugothemes/hugo-modules/gzip-caching" 28 | 29 | [[imports]] 30 | path = "github.com/gethugothemes/hugo-modules/adsense" 31 | 32 | [[imports]] 33 | path = "github.com/gethugothemes/hugo-modules/accordion" 34 | 35 | [[imports]] 36 | path = "github.com/gethugothemes/hugo-modules/table-of-contents" 37 | 38 | [[imports]] 39 | path = "github.com/gethugothemes/hugo-modules/tab" 40 | 41 | [[imports]] 42 | path = "github.com/gethugothemes/hugo-modules/modal" 43 | 44 | [[imports]] 45 | path = "github.com/gethugothemes/hugo-modules/gallery-slider" 46 | 47 | [[imports]] 48 | path = "github.com/gethugothemes/hugo-modules/components/preloader" 49 | 50 | [[imports]] 51 | path = "github.com/gethugothemes/hugo-modules/components/social-share" 52 | 53 | [[imports]] 54 | path = "github.com/gethugothemes/hugo-modules/components/cookie-consent" 55 | 56 | [[imports]] 57 | path = "github.com/gethugothemes/hugo-modules/components/announcement" 58 | 59 | [[imports]] 60 | path = "github.com/gethugothemes/hugo-modules/components/custom-script" 61 | 62 | [[imports]] 63 | path = "github.com/gethugothemes/hugo-modules/components/render-link" 64 | 65 | # [[imports]] 66 | # path = "github.com/gethugothemes/hugo-modules/components/valine-comment" 67 | 68 | # [[imports]] 69 | # path = "github.com/gethugothemes/hugo-modules/components/crisp-chat" 70 | 71 | [[imports]] 72 | path = "github.com/gethugothemes/hugo-modules/shortcodes/button" 73 | 74 | [[imports]] 75 | path = "github.com/gethugothemes/hugo-modules/shortcodes/notice" 76 | 77 | [[imports]] 78 | path = "github.com/gethugothemes/hugo-modules/seo-tools/basic-seo" 79 | 80 | [[imports]] 81 | path = "github.com/gethugothemes/hugo-modules/seo-tools/site-verifications" 82 | 83 | [[imports]] 84 | path = "github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager" 85 | 86 | # [[imports]] 87 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics" 88 | 89 | # [[imports]] 90 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics" 91 | 92 | # [[imports]] 93 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics" 94 | 95 | # [[imports]] 96 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics" 97 | 98 | [[imports]] 99 | path = "github.com/hugomods/mermaid" 100 | -------------------------------------------------------------------------------- /config/development/server.toml: -------------------------------------------------------------------------------- 1 | # defaultContentLanguageInSubdir must be true for this to work. 2 | 3 | # Other languages redirects 4 | # [[redirects]] 5 | # from = '/fr/**' 6 | # to = '/fr/404.html' 7 | # status = 404 8 | 9 | # Default language must be last. 10 | # [[redirects]] 11 | # from = '/**' 12 | # to = '/en/404.html' 13 | # status = 404 14 | -------------------------------------------------------------------------------- /content/_index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Banner 3 | banner: 4 | title: "Fraxinus -- Fast and Compact" 5 | content: "Fraxinus is a compact and high-speed CoreXY 3D printer and digital fabrication machine project. We have various versions like the [Enclosure](./docs/enclosure), [Trident](./docs/trident), [Flying Gantry](./docs/flying-gantry), and [Micro 3D Printer](./docs/micro-printers). Many people are enjoying learning hardware and software through development and customization. If you are interested, we would love for you to join us, share knowledge, and connect with others who share your passion!" 6 | image: "/images/Fraxinus-5.jpg" 7 | button: 8 | enable: true 9 | label: "Join Discord" 10 | link: "/en/discord" 11 | 12 | # Features 13 | features: 14 | - title: "Building the Community Together" 15 | image: "/images/community/fraxinus-group-photo-1.jpg" 16 | content: "The Fraxinus project is community-driven. Centered in Japan, engineers, makers, and enthusiasts from around the world share designs, help each other with issues, and enjoy life with fabrication machines while exchanging information." 17 | bulletpoints: 18 | - "Sharing Hardware & Software Designs" 19 | - "Community-Driven Improvement and Development" 20 | - "Active Community for Sharing Knowledge and Experience" 21 | button: 22 | enable: true 23 | label: "About the Community" 24 | link: "/en/community" 25 | 26 | - title: "Build and Enjoy with Assembly Guides" 27 | image: "/images/fraxinus-assembly-1-print-stl.jpg" 28 | content: "The Fraxinus project provides documentation to help you assemble your Fraxinus. We strive to make the assembly process enjoyable for participants by providing step-by-step explanations and sharing necessary information. Why not pick up the guides and start building together with fellow community members?
Please note that some parts are currently assumed to be sourced within Japan. For more details, please ask on [Discord](/discord)." 29 | bulletpoints: 30 | - "Step-by-Step Assembly References" 31 | - "Sharing Parts and Tool Information" 32 | - "Visual Support with Photos and Illustrations" 33 | button: 34 | enable: true 35 | label: "View Assembly Guides" 36 | link: "/en/docs/assembly/about" 37 | --- 38 | -------------------------------------------------------------------------------- /content/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Home 3 | description: Fraxinus(フラクシネス)公式サイトです。FraxinusはCoreXY型のコンパクトな3Dプリンターです。 4 | # Banner 5 | banner: 6 | title: "Fraxinus -- Fast and Compact" 7 | content: " 8 | Fraxinus(フラクシネス)は印刷サイズと比較しコンパクトで高速動作を実現した3Dプリンターなどのデジタル加工機です。 9 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあり、 さまざまな方々がハードウェア・ソフトウェアを学びながら様々な開発や改造をしています。 10 | 興味を持って頂きましたらぜひ一緒にノウハウ共有して、同好の方々と楽しく交流できると嬉しいです!" 11 | image: "/images/Fraxinus-5.jpg" 12 | button: 13 | enable: true 14 | label: "Join Discord" 15 | link: "/discord" 16 | 17 | # Features 18 | features: 19 | - title: "共に創り上げていく
コミュニティ" 20 | image: "/images/community/fraxinus-group-photo-1.jpg" 21 | content: "Fraxinusのプロジェクトは、コミュニティが主体です。日本を中心に、世界中のエンジニア、メイカー、そして愛好家と共に、設計を共有したり、困ったことを助け合ったり、情報共有しながら加工機の理解を深めものづくりを楽しんでいます。" 22 | bulletpoints: 23 | - "ハードウェア&ソフトウェア設計の共有" 24 | - "コミュニティ主導の改善と開発" 25 | - "知識と経験を共有する活発なコミュニティ" 26 | button: 27 | enable: true 28 | label: "コミュニティについて" 29 | link: "/community" 30 | 31 | - title: "組み立て資料を参考に、
ビルドを楽しもう" 32 | image: "/images/fraxinus-assembly-1-print-stl.jpg" 33 | content: "Fraxinusプロジェクトでは、Fraxinusの組み立てを進める上で参考になる資料を公開しています。ステップごとの解説や必要な情報の共有を通じて、参加者の方々が組み立てのプロセスを楽しめるような場所づくりを目指しています。コミュニティの仲間と共にビルドを始めてみませんか?" 34 | bulletpoints: 35 | - "ビルドの参考になるステップ解説" 36 | - "部品やツールの情報を共有" 37 | - "写真やイラストを交えた視覚的なサポート" 38 | button: 39 | enable: true 40 | label: "組み立て資料を見る" 41 | link: "/docs/assembly/about" 42 | 43 | --- 44 | -------------------------------------------------------------------------------- /content/authors/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Authors 3 | --- 4 | -------------------------------------------------------------------------------- /content/authors/fraxinus-project.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Fraxinus Project 3 | email: fraxinus-3d@googlegroups.com 4 | image: "/images/logo.png" 5 | description: Fraxinus Project 6 | social: 7 | - name: github 8 | icon: fa-brands fa-github 9 | link: https://github.com/Fraxinus-3D 10 | 11 | - name: email 12 | icon: fa-solid fa-envelope 13 | link: mailto:fraxinus-3d@googlegroups.com 14 | --- 15 | 16 | Fraxinus(フラクシネス)は印刷サイズと比較しコンパクトで高速動作を実現した 17 | 3Dプリンターなどのデジタル加工機です。 18 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあり、 19 | さまざまな方々がハードウェア・ソフトウェアを学びながら様々な開発や改造をしています。 20 | -------------------------------------------------------------------------------- /content/docs/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Fraxinus Documentation 3 | meta_title: "" 4 | description: 本ページではFraxinus関連資料を紹介します。 5 | --- 6 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step1.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP1] 部品の手配と印刷" 3 | meta_title: "" 4 | description: 本ページではFraxinus組み立てに必要な部品手配と部品印刷について紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | date: 2022-06-13T01:02:10+09:00 12 | lastmod: 2023-03-01T23:06:04+09:00 13 | images: 14 | - /images/fraxinus-assembly-1-print-stl.jpg 15 | aliases: 16 | - /docs/assembly/1stgen/step1/ 17 | --- 18 | 19 | 20 | 本ページではFraxinus組み立てに必要な部品手配と部品印刷について紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ## 部品手配 24 | 25 | BOM Listを元に必要部材の手配を行います。 26 | 27 | (BOM Listまもなく公開予定) 28 | 29 | ![](/images/fraxinus-assembly-1-procurement-list.jpg) 30 | 31 | ## 部品印刷 32 | 33 | STLデータとBOM Listを元に印刷を行います。データはオススメ印刷方向に合わせていますので読み込んだままの向きでの印刷を推奨します。 34 | 35 | * 推奨設定 36 | * 素材:ABS(一部ABS以外のものもあります) 37 | * 押出幅:0.45mm以上 38 | * ウォールカウント:3以上 39 | * インフィル:40%以上 40 | 41 | STLデータ 42 | 43 | * Fraxinus1k: [https://github.com/Fraxinus-3D/Fraxinus-Hardware/tree/main/Fraxinus1k](https://github.com/Fraxinus-3D/Fraxinus-Hardware/tree/main/Fraxinus1k) 44 | 45 | [https://github.com/Fraxinus-3D/Fraxinus-Hardware/archive/refs/heads/main.zip](https://github.com/Fraxinus-3D/Fraxinus-Hardware/archive/refs/heads/main.zip)より最新版のハードウェアデータをまとめてZIPファイルでダウンロードできます。 46 | ダウンロード前に[README](https://github.com/Fraxinus-3D/Fraxinus-Hardware/blob/main/README.md)に記載のライセンスと免責事項についてご確認ください。ダウンロード時点で同意したものとします。 47 | 48 | ![](/images/fraxinus-assembly-1-print-slicer.jpg) 49 | ![](/images/fraxinus-assembly-1-print-stl.jpg) 50 | ![](/images/fraxinus-assembly-1-print-jig.jpg) 51 | ![](/images/fraxinus-assembly-1-print-colored.jpg) 52 | 53 | 54 | ## NEXT 55 | 56 | [STEP2 部品の加工](../step2) 57 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP2] 部品の加工" 3 | meta_title: "" 4 | description: 本ページではSTEP1で調達した部品の加工について紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:10+09:00 14 | images: 15 | - /images/fraxinus-assembly-2-parts-0.jpg 16 | aliases: 17 | - /docs/assembly/1k/step2/ 18 | --- 19 | 20 | 本ページでは[STEP1](../step1)で調達した部品の加工について紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ![](/images/fraxinus-assembly-2-parts-1.jpg) 24 | ![](/images/fraxinus-assembly-2-parts-2.jpg) 25 | ![](/images/fraxinus-assembly-2-parts-3.jpg) 26 | ![](/images/fraxinus-assembly-2-parts-4.jpg) 27 | ![](/images/fraxinus-assembly-2-parts-5.jpg) 28 | ![](/images/fraxinus-assembly-2-parts-6.jpg) 29 | ![](/images/fraxinus-assembly-2-parts-7.jpg) 30 | ![](/images/fraxinus-assembly-2-parts-8.jpg) 31 | ![](/images/fraxinus-assembly-2-parts-9.jpg) 32 | ![](/images/fraxinus-assembly-2-parts-10.jpg) 33 | ![](/images/fraxinus-assembly-2-parts-11.jpg) 34 | ![](/images/fraxinus-assembly-2-parts-12.jpg) 35 | ![](/images/fraxinus-assembly-2-parts-13.jpg) 36 | 37 | ## 参考 38 | 39 | ![](/images/fraxinus-assembly-2-parts-14.jpg) 40 | 41 | 42 | ## NEXT 43 | 44 | [STEP3](../step3) 45 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP3] フレームの組立" 3 | meta_title: "" 4 | description: 本ページではSTEP2で加工した部品の組立について紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:12+09:00 14 | images: 15 | - /images/fraxinus-assembly-3-frame-0.jpg 16 | aliases: 17 | - /docs/assembly/1stgen/step3/ 18 | --- 19 | 20 | 本ページでは[STEP2](../step2)で加工した部品の組立について紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ![](/images/fraxinus-assembly-3-frame-1.jpg) 24 | ![](/images/fraxinus-assembly-3-frame-2.jpg) 25 | ![](/images/fraxinus-assembly-3-frame-3.jpg) 26 | ![](/images/fraxinus-assembly-3-frame-4.jpg) 27 | ![](/images/fraxinus-assembly-3-frame-5.jpg) 28 | ![](/images/fraxinus-assembly-3-frame-6.jpg) 29 | ![](/images/fraxinus-assembly-3-frame-7.jpg) 30 | ![](/images/fraxinus-assembly-3-frame-8.jpg) 31 | 32 | ## 参考 33 | 34 | ![](/images/fraxinus-appendix-nut-1.jpg) 35 | ![](/images/fraxinus-appendix-nut-2.jpg) 36 | ![](/images/fraxinus-appendix-nut-3.jpg) 37 | ![](/images/fraxinus-appendix-nut-4.jpg) 38 | ![](/images/fraxinus-appendix-nut-5.jpg) 39 | ![](/images/fraxinus-appendix-nut-6.jpg) 40 | ![](/images/fraxinus-appendix-nut-7.jpg) 41 | 42 | ## NEXT 43 | 44 | [STEP4](../step4) 45 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP4] KP3Sの解体" 3 | meta_title: "" 4 | description: 本ページではKP3Sの解体方法を紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:14+09:00 14 | images: 15 | - /images/fraxinus-assembly-4-teardown-kp3s-0.jpg 16 | --- 17 | 18 | 本ページではKP3Sの解体方法を紹介します。 19 | [STEP3](../step3)までの作業を終えてから解体することをおすすめします。 20 | 本ページ内の画像はクリックすると拡大できます。 21 | 22 | ![](/images/fraxinus-assembly-4-teardown-kp3s-1.jpg) 23 | ![](/images/fraxinus-assembly-4-teardown-kp3s-2.jpg) 24 | ![](/images/fraxinus-assembly-4-teardown-kp3s-3.jpg) 25 | ![](/images/fraxinus-assembly-4-teardown-kp3s-4.jpg) 26 | ![](/images/fraxinus-assembly-4-teardown-kp3s-5.jpg) 27 | ![](/images/fraxinus-assembly-4-teardown-kp3s-6.jpg) 28 | ![](/images/fraxinus-assembly-4-teardown-kp3s-7.jpg) 29 | ![](/images/fraxinus-assembly-4-teardown-kp3s-8.jpg) 30 | ![](/images/fraxinus-assembly-4-teardown-kp3s-9.jpg) 31 | ![](/images/fraxinus-assembly-4-teardown-kp3s-10.jpg) 32 | ![](/images/fraxinus-assembly-4-teardown-kp3s-11.jpg) 33 | 34 | ## 参考 35 | 36 | ![](/images/fraxinus-assembly-4-teardown-kp3s-12.jpg) 37 | 38 | ## NEXT 39 | 40 | [STEP5](../step5) 41 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step5.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP5] Zベッドの組立" 3 | meta_title: "" 4 | description: 本ページではSTEP3で組立たフレームにZベッドを取り付けるまでを紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:16+09:00 14 | aliases: 15 | - /docs/assembly/1stgen/step4/ 16 | images: 17 | - /images/fraxinus-assembly-5-z-bed-0.jpg 18 | --- 19 | 20 | 本ページでは[STEP3](../step3)で組立たフレームに[STEP4](../step4)で解体して準備したKP3Sのバーツを使ってZベッドを取り付けるまでを紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ![](/images/fraxinus-assembly-5-z-bed-1.jpg) 24 | ![](/images/fraxinus-assembly-5-z-bed-2.jpg) 25 | ![](/images/fraxinus-assembly-5-z-bed-3.jpg) 26 | ![](/images/fraxinus-assembly-5-z-bed-4.jpg) 27 | ![](/images/fraxinus-assembly-5-z-bed-5.jpg) 28 | ![](/images/fraxinus-assembly-5-z-bed-6.jpg) 29 | ![](/images/fraxinus-assembly-5-z-bed-7.jpg) 30 | ![](/images/fraxinus-assembly-5-z-bed-8.jpg) 31 | ![](/images/fraxinus-assembly-5-z-bed-9.jpg) 32 | ![](/images/fraxinus-assembly-5-z-bed-10.jpg) 33 | 34 | ## NEXT 35 | 36 | [STEP6](../step6) 37 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step6.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP6] Xキャリッジの組立" 3 | meta_title: "" 4 | description: 本ページではSTEP5までで組立たフレームにXキャリッジを取り付けるまでを紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:18+09:00 14 | images: 15 | - /images/fraxinus-assembly-6-x-carriage-0.jpg 16 | aliases: 17 | - /docs/assembly/1stgen/step5/ 18 | --- 19 | 20 | 本ページでは[STEP5](../step5)までで組立たフレームにXキャリッジを取り付けるまでを紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ![](/images/fraxinus-assembly-6-x-carriage-1.jpg) 24 | ![](/images/fraxinus-assembly-6-x-carriage-2.jpg) 25 | ![](/images/fraxinus-assembly-6-x-carriage-3.jpg) 26 | ![](/images/fraxinus-assembly-6-x-carriage-4.jpg) 27 | ![](/images/fraxinus-assembly-6-x-carriage-5.jpg) 28 | ![](/images/fraxinus-assembly-6-x-carriage-6.jpg) 29 | 30 | ## NEXT 31 | 32 | [STEP7](../step7) 33 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step7.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP7] XYガントリーの組立" 3 | meta_title: "" 4 | description: 本ページではSTEP6までで組立たフレームにXYガントリーを取り付けるまでを紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:20+09:00 14 | images: 15 | - /images/fraxinus-assembly-7-xy-gantry-0.jpg 16 | aliases: 17 | - /docs/assembly/1stgen/step6/ 18 | --- 19 | 20 | 本ページでは[STEP6](../step6)までで組立たフレームにXYガントリーを取り付けるまでを紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ![](/images/fraxinus-assembly-7-xy-gantry-1.jpg) 24 | ![](/images/fraxinus-assembly-7-xy-gantry-2.jpg) 25 | ![](/images/fraxinus-assembly-7-xy-gantry-3.jpg) 26 | ![](/images/fraxinus-assembly-7-xy-gantry-4.jpg) 27 | ![](/images/fraxinus-assembly-7-xy-gantry-5.jpg) 28 | ![](/images/fraxinus-assembly-7-xy-gantry-6.jpg) 29 | 30 | ## NEXT 31 | 32 | [STEP8](../step8) 33 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step8.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP8] ベルトとヘッドの組立" 3 | meta_title: "" 4 | description: 本ページではSTEP7までで組立たフレームにベルトとヘッドを取り付けるまでを紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:22+09:00 14 | aliases: 15 | - /docs/assembly/1stgen/step7/ 16 | images: 17 | - /images/fraxinus-assembly-8-belt-head-0.jpg 18 | --- 19 | 20 | 本ページでは[STEP7](../step7)までで組立たフレームにベルトとヘッドを取り付けるまでを紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ![](/images/fraxinus-assembly-8-belt-head-1.jpg) 24 | ![](/images/fraxinus-assembly-8-belt-head-2.jpg) 25 | ![](/images/fraxinus-assembly-8-belt-head-3.jpg) 26 | ![](/images/fraxinus-assembly-8-belt-head-4.jpg) 27 | ![](/images/fraxinus-assembly-8-belt-head-5.jpg) 28 | ![](/images/fraxinus-assembly-8-belt-head-6.jpg) 29 | ![](/images/fraxinus-assembly-8-belt-head-7.jpg) 30 | 31 | ## NEXT 32 | 33 | [STEP9](../step9) 34 | -------------------------------------------------------------------------------- /content/docs/assembly/1k/step9.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[STEP9] 電装周りの組立" 3 | meta_title: "" 4 | description: 本ページではSTEP8までで組立たフレームに電装周り一式を取り付けるまでを紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | tags: 10 | - Fraxinus1k 11 | toc: false 12 | date: 2022-06-13T01:02:10+09:00 13 | lastmod: 2023-03-01T23:06:24+09:00 14 | images: 15 | - /images/fraxinus-assembly-9-electronics-0.jpg 16 | aliases: 17 | - /docs/assembly/1stgen/step8/ 18 | --- 19 | 20 | 本ページでは[STEP8](../step8)までで組立たフレームに電装周り一式を取り付けるまでを紹介します。 21 | 本ページ内の画像はクリックすると拡大できます。 22 | 23 | ![](/images/fraxinus-assembly-9-electronics-1.jpg) 24 | ![](/images/fraxinus-assembly-9-electronics-2.jpg) 25 | ![](/images/fraxinus-assembly-9-electronics-3.jpg) 26 | ![](/images/fraxinus-assembly-9-electronics-4.jpg) 27 | ![](/images/fraxinus-assembly-9-electronics-5.jpg) 28 | ![](/images/fraxinus-assembly-9-electronics-6.jpg) 29 | ![](/images/fraxinus-assembly-9-electronics-7.jpg) 30 | ![](/images/fraxinus-assembly-9-electronics-8.jpg) 31 | 32 | ## 参考 33 | 34 | ![](/images/fraxinus-appendix-electronics-connection.jpg) 35 | 36 | ## NEXT 37 | 38 | 組み立ては終了です。動作確認とテスト印刷に進みます。 39 | (資料準備中) 40 | -------------------------------------------------------------------------------- /content/docs/assembly/about.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About Assembly 3 | meta_title: "" 4 | description: This page introduces how to assemble Fraxinus. 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - Assembly Guide 9 | - Introduction Materials 10 | tags: 11 | - Fraxinus1k 12 | - Fraxinus3e 13 | date: 2022-06-13T01:01:10+09:00 14 | lastmod: 2023-11-04T00:21:08+09:00 15 | --- 16 | 17 | ## Precautions 18 | 19 | A 3D printer is a machine tool. When using it, pay close attention to safety and wear appropriate protective gear. 20 | 21 | The assembly procedures and modification methods introduced in this project are provided solely as reference information. Fraxinus Project assumes no responsibility whatsoever for any damages (injuries, fires, equipment damage, etc.) caused by using this information. Assembly, modification, and use are all at your own risk. 22 | 23 | ## PDF Version 24 | 25 | ### Fraxinus00tw 26 | 27 | v1 (Updated February 2025) 28 | 29 | 30 | 31 | ### Fraxinus1k 32 | 33 | v0.9 (Updated March 2023) 34 | 35 | PDF version is also available on Speaker Deck (Published July 2, 2023) 36 | https://speakerdeck.com/fukumay/fraxinus1k-assembly-instructions-english-v-0-dot-9 37 | 38 | 39 | 40 | ### Fraxinus3t 41 | 42 | v0.9 (Updated November 2023) 43 | 44 | 45 | 46 | ## Contributors 47 | 48 | Contributors to the assembly manual (in no particular order, titles omitted) 49 | 50 | * fukumay 51 | * nrtkbb 52 | * F1zzy-Boy 53 | * mazu-bunkai 54 | * tomorrow56 55 | * Eitoku 56 | * まる。 57 | * Pen-holi 58 | * Proko 59 | * 京都タラレバ息子 60 | * tiryoh 61 | * odaki 62 | * SummerOrange 63 | * kusa0 64 | * ysk1025 65 | * sato4645 66 | -------------------------------------------------------------------------------- /content/docs/assembly/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 組立について 3 | meta_title: "" 4 | description: 本ページではFraxinus組み立てについて紹介します。 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - 組立資料 9 | - 紹介資料 10 | tags: 11 | - Fraxinus1k 12 | - Fraxinus3e 13 | date: 2022-06-13T01:01:10+09:00 14 | lastmod: 2023-11-04T00:21:08+09:00 15 | --- 16 | 17 | ## 注意事項 18 | 19 | 3Dプリンタは工作機械です。使用時は安全に十分注意を払い、適切な保護具を着用してください。 20 | 21 | 本プロジェクトで紹介している組立手順や改造方法は、あくまでも参考情報として提供するものです。 22 | これらの情報を使用して生じたいかなる損害(怪我、火災、機器の破損等)についても、Fraxinusプロジェクトは一切の責任を負いかねます。組立・改造・使用は、すべて自己責任で行ってください。 23 | 24 | ## PDF版 25 | 26 | ### Fraxinus00tw 27 | 28 | v1 (2025年2月更新) 29 | 30 | 31 | 32 | ### Fraxinus1k 33 | 34 | v0.9 (2023年3月更新) 35 | 36 | Speaker DeckにPDF版も公開しています(2023年7月2日公開) 37 | https://speakerdeck.com/fukumay/fraxinus1k-zu-li-shuo-ming-shu-japanese-v-0-dot-9 38 | 39 | English Version: [Assembly Document](/en/docs/assembly/about/) 40 | 41 | 42 | 43 | ### Fraxinus3t 44 | 45 | v0.9 (2023年11月更新) 46 | 47 | 48 | 49 | ## Fraxinus1kの組立方 50 | 51 | 52 | ### 組立前の注意事項 53 | 54 | * まずKP3S+Klipper+3D Touchで印刷を経験することを強くお勧めします 55 | * Fraxinus組立後にうまく動かなかった場合のトラブルシューティングがやりやすくなります 56 | * Klipperが動く環境からのアップサイクルであれば、`printer.cfg`の一部変更のみで対応が可能です 57 | * ABSで印刷できる環境を準備することをお勧めします 58 | * 印刷部品を揃えるため、自宅もしくは職場や学校などで印刷できる環境を確保することをお勧めします 59 | * 一部部品は耐熱性や耐久性を要するためABSでの印刷をお勧めしています 60 | * Fraxinusに使用する部品は基本的にPLAでの印刷を推奨しません 61 | * 高温に晒されると溶解して火災等の要因となる場合もあります 62 | * 時間経過とともに劣化が進んで割れてしまうこともあります 63 | * 工具が揃っている前提の資料となっています 64 | * 組立に際し、はんだごて、電気ドリル&ドライバー、レンチ、ピンセット、ペンチ、タップなどの工具を使用します 65 | * 持っていない場合は、借りられる環境を探すか、この機会に揃えて頂く必要があります 66 | 67 | v0.9 (2023年3月更新) 68 | 69 | * [STEP1 部品の手配と印刷](../1k/step1) 70 | * [STEP2 部品の加工](../1k/step2) 71 | * [STEP3 フレームの組立](../1k/step3) 72 | * [STEP4 KP3Sの解体](../1k/step4) 73 | * [STEP5 Zベッドの組立](../1k/step5) 74 | * [STEP6 Xキャリッジの組立](../1k/step6) 75 | * [STEP7 XYガントリーの組立](../1k/step7) 76 | * [STEP8 ベルトとヘッドの組立](../1k/step8) 77 | * [STEP9 電装の組立](../1k/step9) 78 | 79 | 80 | ## 貢献者/Contributors 81 | 82 | 組立手順書の貢献者(順不同敬称略) 83 | 84 | * fukumay 85 | * nrtkbb 86 | * F1zzy-Boy 87 | * mazu-bunkai 88 | * tomorrow56 89 | * Eitoku 90 | * まる。 91 | * Pen-holi 92 | * Proko 93 | * 京都タラレバ息子 94 | * tiryoh 95 | * odaki 96 | * SummerOrange 97 | * kusa0 98 | * ysk1025 99 | * sato4645 100 | -------------------------------------------------------------------------------- /content/docs/enclosure.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Enclosure 3 | meta_title: "" 4 | description: This page introduces the enclosure versions of Fraxinus. 5 | draft: false 6 | author: "Fraxinus Project" 7 | categories: 8 | - Fraxinus Introduction 9 | tags: 10 | - Fraxinus1kc 11 | - Fraxinus1kc2 12 | - Fraxinus1tcl 13 | - Fraxinus3ec 14 | - Fraxinus3tcl 15 | slug: enclosure 16 | date: 2022-08-11T17:42:10+09:00 17 | lastmod: 2025-05-27T10:44:56+09:00 18 | --- 19 | 20 | There are three types of enclosures for Fraxinus1k and two types for Fraxinus3e. 21 | 22 | 23 |
24 | 29 |
30 | 31 | 32 | ## Fraxinus1k 33 | 34 | There are three types: low-profile top hat (cl), integrated (c2), and top hat (c). 35 | 36 | ![](/images/Fraxinus1tcl_1tc2_1ksc.jpg) 37 | 38 | ### Fraxinus1kc 39 | 40 | ![](/images/Fraxinus1kc-photo-1.jpg) 41 | 42 | ### Fraxinus1kc2 43 | 44 | ![](/images/Fraxinus1kc2-photo-1.jpg) 45 | 46 | ### Fraxinus1tcl 47 | 48 | ![](/images/Fraxinus1tcl.jpg) 49 | 50 | ## Fraxinus3e 51 | 52 | ### Fraxinus3ec 53 | 54 | ![](/images/Fraxinus3ec-photo-1.jpg) 55 | 56 | ### Fraxinus3tcl 57 | 58 | ![](/images/Fraxinus3tcl.jpg) 59 | -------------------------------------------------------------------------------- /content/docs/enclosure.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: エンクロージャ 3 | meta_title: "" 4 | description: 本ページではエンクロージャ版Fraxinusについて紹介します。 5 | draft: false 6 | slug: enclosure 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus紹介 10 | tags: 11 | - Fraxinus1kc 12 | - Fraxinus1kc2 13 | - Fraxinus1tcl 14 | - Fraxinus3ec 15 | - Fraxinus3tcl 16 | date: 2022-08-11T17:42:10+09:00 17 | lastmod: 2025-05-27T10:44:56+09:00 18 | --- 19 | 20 | Fraxinus1kについては3種類、Fraxinus3eについては2種類のエンクロージャがあります。 21 | 22 | 23 |
24 | 29 |
30 | 31 | 32 | ## Fraxinus1k 33 | 34 | 低背トップハット(cl)、一体型(c2)、トップハット(c)の3種類です。 35 | 36 | ![](/images/Fraxinus1tcl_1tc2_1ksc.jpg) 37 | 38 | ### Fraxinus1kc 39 | 40 | ![](/images/Fraxinus1kc-photo-1.jpg) 41 | 42 | ### Fraxinus1kc2 43 | 44 | ![](/images/Fraxinus1kc2-photo-1.jpg) 45 | 46 | ### Fraxinus1tcl 47 | 48 | ![](/images/Fraxinus1tcl.jpg) 49 | 50 | ## Fraxinus3e 51 | 52 | ### Fraxinus3ec 53 | 54 | ![](/images/Fraxinus3ec-photo-1.jpg) 55 | 56 | ### Fraxinus3tcl 57 | 58 | ![](/images/Fraxinus3tcl.jpg) 59 | -------------------------------------------------------------------------------- /content/docs/flying-gantry.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Flying Gantry 3 | meta_title: "" 4 | description: This page introduces Fraxinus with a flying gantry structure. 5 | draft: false 6 | slug: flying-gantry 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus Introduction 10 | tags: 11 | - Fraxinus1fg 12 | - Fraxinus3fg 13 | - Fraxinus5fg 14 | - Fraxinus9fg 15 | date: 2024-11-18T02:01:52+09:00 16 | lastmod: 2024-11-18T02:04:16+09:00 17 | --- 18 | 19 | Fraxinus with a flying gantry features a flying gantry structure while maintaining compactness. 20 | 21 | There are four types with different sizes: 1fg, 3fg, 5fg, and 9fg. 22 | 23 | 24 |
25 | 30 |
31 | 32 | ## Fraxinus1fg 33 | 34 | ![](/images/Fraxinus1fg.jpg) 35 | 36 | ![](/images/Fraxinus1fg-detail.jpg) 37 | 38 | ## Fraxinus3fg 39 | 40 | ![](/images/Fraxinus3fg.jpg) 41 | 42 | ![](/images/Fraxinus3fg-detail.jpg) 43 | 44 | ![](/images/Fraxinus3fg-photo-1.jpg) 45 | 46 | ## Fraxinus5fg 47 | 48 | ![](/images/Fraxinus5fg.jpg) 49 | 50 | ![](/images/Fraxinus5fg-detail.jpg) 51 | 52 | ## Fraxinus9fg 53 | 54 | ![](/images/Fraxinus9fg.jpg) 55 | 56 | ![](/images/Fraxinus9fg-photo-1.jpg) 57 | -------------------------------------------------------------------------------- /content/docs/flying-gantry.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: フライングガントリー 3 | meta_title: "" 4 | description: 本ページではフライングガントリー構造のFraxinusについて紹介します。 5 | draft: false 6 | slug: flying-gantry 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus紹介 10 | tags: 11 | - Fraxinus1fg 12 | - Fraxinus3fg 13 | - Fraxinus5fg 14 | date: 2024-11-18T02:01:52+09:00 15 | lastmod: 2024-11-18T02:04:16+09:00 16 | --- 17 | 18 | フライングガントリーのFraxinusは、コンパクト性をキープしつつフライングガントリー構造を特徴としています。 19 | 20 | サイズ違いで1fg, 3fg, 5fg, 9fgの4種類があります。 21 | 22 | 23 |
24 | 29 |
30 | 31 | ## Fraxinus1fg 32 | 33 | ![](/images/Fraxinus1fg.jpg) 34 | 35 | ![](/images/Fraxinus1fg-detail.jpg) 36 | 37 | ## Fraxinus3fg 38 | 39 | ![](/images/Fraxinus3fg.jpg) 40 | 41 | ![](/images/Fraxinus3fg-detail.jpg) 42 | 43 | ![](/images/Fraxinus3fg-photo-1.jpg) 44 | 45 | ## Fraxinus5fg 46 | 47 | ![](/images/Fraxinus5fg.jpg) 48 | 49 | ![](/images/Fraxinus5fg-detail.jpg) 50 | 51 | ## Fraxinus9fg 52 | 53 | ![](/images/Fraxinus9fg.jpg) 54 | 55 | ![](/images/Fraxinus9fg-photo-1.jpg) 56 | -------------------------------------------------------------------------------- /content/docs/micro-printers.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Micro 3D Printers 3 | meta_title: "" 4 | description: This page introduces the micro 3D printers of the Fraxinus project. 5 | draft: false 6 | slug: micro-printers 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus Introduction 10 | tags: 11 | - Fraxinus00 12 | - Fraxinus00w 13 | - Fraxinus00w2 14 | - Fraxinus00w3 15 | - Fraxinus0w 16 | date: 2024-11-10T14:01:52+09:00 17 | lastmod: 2024-11-18T02:00:10+09:00 18 | --- 19 | 20 | There are 5 types of compact CoreXY micro 3D printers using acrylic frames, suitable for on-the-go demos and feature introductions. 21 | 22 | * [Fraxinus00](#fraxinus00) 23 | * [Fraxinus00w](#fraxinus00w) 24 | * [Fraxinus00w2](#fraxinus00w2) 25 | * [Fraxinus00w3](#fraxinus00w3) 26 | * [Fraxinus0w](#fraxinus0w) 27 | 28 | In addition, there are also [printers designed and built by community members](../community). 29 | 30 | ![](/images/Fraxinus0-front-view.jpg) 31 | 32 | 33 |
34 | 39 |
40 | 41 | 42 | **About 3D Model Licenses** 43 | Includes models under the following licenses. 44 | 45 | * [Hummingbird Extruder](https://github.com/nhchiu/VoronMods/tree/main/Extruders/Hummingbird) 46 | * [@nhchiu](https://www.printables.com/@nhchiu) 47 | * [GPL-3.0](https://github.com/nhchiu/VoronMods/blob/main/LICENSE) 48 | 49 | 50 | ## Fraxinus00 51 | 52 | ![](/images/Fraxinus00.jpg) 53 | 54 | ![](/images/Fraxinus00-photo-1.jpg) 55 | 56 | ![](/images/Fraxinus00-photo-2.jpg) 57 | 58 | ## Fraxinus00w 59 | 60 | ![](/images/Fraxinus00w.jpg) 61 | 62 | ![](/images/Fraxinus00w-photo-1.jpg) 63 | 64 | ## Fraxinus00w2 65 | 66 | ![](/images/Fraxinus00w2.jpg) 67 | 68 | ![](/images/Fraxinus00w2-photo-1.jpg) 69 | 70 | ![](/images/Fraxinus00w2-compare.jpg) 71 | 72 | ## Fraxinus00w3 73 | 74 | ![](/images/Fraxinus00w3-1.jpg) 75 | 76 | ![](/images/Fraxinus00w3-2.jpg) 77 | 78 | ![](/images/Fraxinus00w3-photo-1.jpg) 79 | 80 | ## Fraxinus0w 81 | 82 | ![](/images/Fraxinus0w-rev1.jpg) 83 | 84 | ![](/images/Fraxinus0w-rev2.jpg) 85 | 86 | ![](/images/Fraxinus0w-compare.jpg) 87 | -------------------------------------------------------------------------------- /content/docs/micro-printers.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: マイクロ3Dプリンタ 3 | meta_title: "" 4 | description: 本ページではFraxinusプロジェクトのマイクロ3Dプリンタについて紹介します。 5 | draft: false 6 | slug: micro-printers 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus紹介 10 | tags: 11 | - Fraxinus00 12 | - Fraxinus00w 13 | - Fraxinus00w2 14 | - Fraxinus00w3 15 | - Fraxinus0w 16 | date: 2024-11-10T14:01:52+09:00 17 | lastmod: 2024-11-18T02:00:10+09:00 18 | --- 19 | 20 | Fraxinusシリーズはアクリルフレームを用いた、コンパクトで出先でのデモや機能紹介に好適なCoreXY構造のマイクロ3Dプリンタです。 21 | 22 | 現在5種類(00, 00w, 00w2, 00w3, 0w)あります。 23 | 24 | * [Fraxinus00](#fraxinus00) 25 | * [Fraxinus00w](#fraxinus00w) 26 | * [Fraxinus00w2](#fraxinus00w2) 27 | * [Fraxinus00w3](#fraxinus00w3) 28 | * [Fraxinus0w](#fraxinus0w) 29 | 30 | そのほかにも[コミュニティメンバーが設計製作したプリンタ](../community)もあります。 31 | 32 | ![](/images/Fraxinus0-front-view.jpg) 33 | 34 | 35 |
36 | 41 |
42 | 43 | 44 | **3Dモデルのライセンスについて** 45 | 下記のライセンスのモデルを含みます。 46 | 47 | * [Hummingbird Extruder](https://github.com/nhchiu/VoronMods/tree/main/Extruders/Hummingbird) 48 | * [@nhchiu](https://www.printables.com/@nhchiu) 49 | * [GPL-3.0](https://github.com/nhchiu/VoronMods/blob/main/LICENSE) 50 | 51 | 52 | ## Fraxinus00 53 | 54 | ![](/images/Fraxinus00.jpg) 55 | 56 | ![](/images/Fraxinus00-photo-1.jpg) 57 | 58 | ![](/images/Fraxinus00-photo-2.jpg) 59 | 60 | ## Fraxinus00w 61 | 62 | ![](/images/Fraxinus00w.jpg) 63 | 64 | ![](/images/Fraxinus00w-photo-1.jpg) 65 | 66 | ## Fraxinus00w2 67 | 68 | ![](/images/Fraxinus00w2.jpg) 69 | 70 | ![](/images/Fraxinus00w2-photo-1.jpg) 71 | 72 | ![](/images/Fraxinus00w2-compare.jpg) 73 | 74 | ## Fraxinus00w3 75 | 76 | ![](/images/Fraxinus00w3-1.jpg) 77 | 78 | ![](/images/Fraxinus00w3-2.jpg) 79 | 80 | ![](/images/Fraxinus00w3-photo-1.jpg) 81 | 82 | ## Fraxinus0w 83 | 84 | ![](/images/Fraxinus0w-rev1.jpg) 85 | 86 | ![](/images/Fraxinus0w-rev2.jpg) 87 | 88 | ![](/images/Fraxinus0w-compare.jpg) 89 | -------------------------------------------------------------------------------- /content/docs/res/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | headless: true 3 | --- 4 | -------------------------------------------------------------------------------- /content/docs/roadmap.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: プロジェクトロードマップ 3 | description: Fraxinusプロジェクトのロードマップ 4 | draft: false 5 | slug: roadmap 6 | author: "Fraxinus Project" 7 | categories: 8 | - Fraxinus紹介 9 | tags: 10 | - Fraxinus 11 | date: 2022-08-11T17:02:10+09:00 12 | lastmod: 2022-08-11T17:02:10+09:00 13 | --- 14 | 15 | Fraxinusは2022年2月に事例紹介がされてから、クローズドベータ期間で組み立て再現性の確認をしてきました。 16 | 2022年8月からはオープンベータ期間とし、組み立て資料や印刷データなどの情報を一般公開開始しました。 17 | 18 | オープンベータ期間中にで各種資料や検討中データの更新を行い、その後、データの一般公開を目指しています。 19 | 20 | ![roadmap](../../images/fraxinus-roadmap.png) 21 | -------------------------------------------------------------------------------- /content/docs/trident.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Trident Version 3 | meta_title: "" 4 | description: This page introduces the trident version of Fraxinus. 5 | draft: false 6 | slug: trident 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus Introduction 10 | tags: 11 | - Fraxinus1tc2 12 | - Fraxinus3tc 13 | - Fraxinus1tcl 14 | - Fraxinus3tcl 15 | - Fraxinus5ts 16 | date: 2023-07-06T09:28:10+09:00 17 | lastmod: 2025-05-27T10:44:46+09:00 18 | --- 19 | 20 | Fraxinus's t series is equipped with a trident-type bed adjustment mechanism. 21 | 22 | 23 |
24 | 29 |
30 | 31 | ## Fraxinus1tc2 32 | 33 | ![](/images/Fraxinus1tc2-photo-1.jpg) 34 | 35 | ## Fraxinus3tc 36 | 37 | ![](/images/Fraxinus3tc-photo-1.jpg) 38 | 39 | ## Fraxinus1tcl 40 | 41 | ![](/images/Fraxinus1tcl.jpg) 42 | 43 | ## Fraxinus3tcl 44 | 45 | ![](/images/Fraxinus3tcl.jpg) 46 | 47 | ## Fraxinus5ts 48 | 49 | ![](/images/Fraxinus5ts.jpg) 50 | -------------------------------------------------------------------------------- /content/docs/trident.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: トライデント 3 | meta_title: "" 4 | description: 本ページではトライデント版Fraxinusについて紹介します。 5 | draft: false 6 | slug: trident 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus紹介 10 | tags: 11 | - Fraxinus1tc2 12 | - Fraxinus3tc 13 | - Fraxinus1tcl 14 | - Fraxinus3tcl 15 | - Fraxinus5ts 16 | date: 2023-07-06T09:28:10+09:00 17 | lastmod: 2025-05-27T10:44:46+09:00 18 | --- 19 | 20 | Fraxinusのtシリーズはトライデント型ベッド調整機構を搭載しています。 21 | 22 | 23 |
24 | 29 |
30 | 31 | ## Fraxinus1tc2 32 | 33 | ![](/images/Fraxinus1tc2-photo-1.jpg) 34 | 35 | ## Fraxinus3tc 36 | 37 | ![](/images/Fraxinus3tc-photo-1.jpg) 38 | 39 | ## Fraxinus1tcl 40 | 41 | ![](/images/Fraxinus1tcl.jpg) 42 | 43 | ## Fraxinus3tcl 44 | 45 | ![](/images/Fraxinus3tcl.jpg) 46 | 47 | ## Fraxinus5ts 48 | 49 | ![](/images/Fraxinus5ts.jpg) 50 | -------------------------------------------------------------------------------- /content/pages/about.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About 3 | meta_title: "About" 4 | description: About Fraxinus 5 | draft: false 6 | slug: about 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus Introduction 10 | --- 11 | 12 | Fraxinus is a compact 3D printer for home and small workshop use. 13 | Although it is compact, it still retains the high-speed capabilities thanks to its CoreXY design. 14 | Currently, we are developing 5 models with print sizes of 70mm³, 170mm³, 220mm³, 310mm³ and 510mm³. 15 | 16 | ![](/images/Fraxinus-1.jpg) 17 | 18 | ## Fraxinus1k 19 | 20 | * Body size: 260x285x356mm (excluding print head and tube) 21 | * Print size: 165x170x185mm 22 | 23 | ![](/images/Fraxinus1k.jpg) 24 | 25 | ## Fraxinus3e 26 | 27 | * Body size: 310x335x373mm (excluding print head and tube) 28 | * Print size: 215x220x220mm 29 | 30 | ![](/images/Fraxinus3e.jpg) 31 | 32 | ## Fraxinus5ts 33 | 34 | * Body size: 410x440x510mm (excluding print head and tube) 35 | * Print size: 310x310x310mm 36 | 37 | ![](/images/Fraxinus5ts.jpg) 38 | 39 | ## Fraxinus00w 40 | 41 | * Body size: 153x152x176mm (excluding print head and tube) 42 | * Print size: 70x70x70mm 43 | 44 | ![](/images/Fraxinus00w.jpg) 45 | 46 | ## Size of Fraxinus 47 | 48 | ![](/images/Fraxinus-2.jpg) 49 | ![](/images/Fraxinus-3.jpg) 50 | ![](/images/Fraxinus-4.jpg) 51 | -------------------------------------------------------------------------------- /content/pages/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About 3 | meta_title: "About" 4 | description: Fraxinusの特徴やコンセプトについて 5 | draft: false 6 | slug: about 7 | author: "Fraxinus Project" 8 | categories: 9 | - Fraxinus紹介 10 | --- 11 | 12 | Fraxinus(フラクシネス)は自宅利用や省スペース工房で魅力的な3Dプリンターです。 13 | コンパクトでありながらCoreXY構造が持つ高速動作を実現しています。 14 | 2024年11月現在印刷サイズは70mm角、170mm角、220mm角、310mm角、510mm角の5種を展開しています。 15 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあります。 16 | 17 | ![](/images/Fraxinus-1.jpg) 18 | 19 | ## Fraxinus00w3 20 | 21 | Fraxinus00w3はCoreXYの構造を持つコンパクトな3Dプリンターです。 22 | USB-PD電源やモバイルバッテリーで動作可能で、出先でのデモや機能紹介に好適です。 23 | 24 | * 本体サイズ:147x160x147mm(上部ヘッド、チューブ凸除く) 25 | * 印刷サイズ:66x70x66mm 26 | 27 | ![](/images/Fraxinus00w3-1.jpg) 28 | 29 | ## Fraxinus0w 30 | 31 | Fraxinus0w rev2はCoreXYの構造を持つコンパクトな3Dプリンターです。 32 | USB-PD電源やモバイルバッテリーで動作可能で、出先でのデモや機能紹介に好適です。 33 | 34 | * 本体サイズ:147x160x147mm(上部ヘッド、チューブ凸除く) 35 | * 印刷サイズ:66x70x66mm 36 | 37 | ![](/images/Fraxinus00w3-1.jpg) 38 | 39 | ## Fraxinus1k 40 | 41 | Fraxinus1kは[Kingroon KP3S](https://jp.kingroon.com/products/3d-printer-kp3s)をアップサイクルして作製できるCoreXYの構造を持つ3Dプリンターです。 42 | 高速動作が可能で、KP3Sと近似の170mm角程度の印刷サイズを持ち、よりコンパクトにできます。 43 | 44 | * 本体サイズ:260x285x356mm(上部ヘッド、チューブ凸除く) 45 | * 印刷サイズ:165x170x185mm 46 | 47 | ![](/images/Fraxinus1k.jpg) 48 | 49 | ## Fraxinus3e 50 | 51 | Fraxinus3eは[Ender-3 V2](https://www.creality.com/products/ender-3-v2-3d-printer-csco)やその互換機をアップサイクルして作製できるCoreXYの構造を持つ3Dプリンターです。 52 | 高速動作が可能で、Ender-3 V2と近似の220mm角程度の印刷サイズを持ち、大幅に本体をサイズダウンできます。 53 | 54 | * 本体サイズ:310x335x373mm(上部ヘッド、チューブ凸除く) 55 | * 印刷サイズ:215x220x220mm 56 | 57 | ![](/images/Fraxinus3e.jpg) 58 | 59 | ## Fraxinus3tcl 60 | 61 | Fraxinus3tclはトライデント型ベッド調整機構を搭載した低背トップハットなCoreXYの構造を持つ3Dプリンターです。Fraxinus3eがベースになっています。 62 | 高速動作が可能で、印刷/材料エリアフルカバー型のため220mm角の印刷サイズを持ちます。 63 | 64 | * 本体サイズ:310x335x429mm(上部ヘッド、チューブ凸除く) 65 | * 印刷サイズ:220x220x220mm 66 | 67 | ![](/images/Fraxinus3tcl.jpg) 68 | 69 | ## Fraxinus5ts 70 | 71 | Fraxinus5tsは[Kingroon KP5L](https://jp.kingroon.com/products/kingroon-kp5l-3d-printer)をアップサイクルして作製できるCoreXYの構造を持つ3Dプリンターです。 72 | 高速動作が可能で、KP5Lと近似の310mm角程度の印刷サイズを持ち、よりコンパクトにできます。 73 | 74 | * 本体サイズ:410x440x510mm(上部ヘッド、チューブ凸除く) 75 | * 印刷サイズ:310x310x310mm 76 | 77 | ![](/images/Fraxinus5ts.jpg) 78 | 79 | ## Fraxinusのサイズ 80 | 81 | ![](/images/Fraxinus-2.jpg) 82 | ![](/images/Fraxinus-3.jpg) 83 | 84 | ## 実際の写真 85 | 86 | ![](/images/Fraxinus-photo-1.jpg) 87 | ![](/images/Fraxinus-photo-2.jpg) 88 | 89 | ## デザイン要件 / 優先度 90 | 91 | * 横幅を極力狭めたい。次に奥行きを狭めたい。高さはできなりでOK。 92 | * Voron 0より幅を狭めると緻密でカッコよくなりそう。 93 | * C面付2020アルミフレームを縦材に使う。 94 | * この材料みて設計しようかなと思いました。 95 | * 極力KP3Sの部材を用いる。 96 | * 特にMGN12のリニアレール2本、モータ、ベッド、基板、ハーネス類は移行したい。ただ流用したせいでかっこ悪くはしたくない。 97 | * どうせなら可逆設計する。 98 | * また別のセットに作り変えたくなる可能性も考慮して。元に戻せると何となくかっこいい気もする。 99 | 100 | 101 | ## Special Thanks / 謝辞 102 | 103 | 素晴らしいデザイン性とCoreXYの魅力を世界に広めて頂き、情報も積極的に共有頂けているVoron Design社に感謝と御礼を申し上げます。 104 | https://vorondesign.com/ 105 | 106 | また素晴らしい性能と求めやすい価格、配置しやすいコンパクトさを両立したKP3Sを設計・製造・販売頂いているKingroon社に感謝と御礼を申し上げます。 107 | https://kingroon.com/ 108 | 109 | Contributor : Klipper_jp group , Fraxinus group 110 | fantaro, tiryoh, popato, caesar, Баклажаны, おいしいチャーハン, ねず民, yuma, Eitoku, nrtkbb, mazu-bunkai, くうき, proko, まる。, みやた, pen-hori, psycho0h3ed, 孔明, tomorrow56, koma50, touken0515, f1zzy-boy, okuyasu, ochisamu, pirotsuku, and all member who participates in the test build. 111 | 112 | ## このサイトについて 113 | 114 | 当サイトは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。 115 | -------------------------------------------------------------------------------- /content/pages/discord.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Join Discord 3 | description: About Discord server 4 | redirect: https://discord.gg/fVrn9yaPUm 5 | draft: false 6 | --- 7 | 8 | 9 | 10 | 12 | 13 | redirecting to https://discord.gg/fVrn9yaPUm 14 | -------------------------------------------------------------------------------- /content/pages/discord.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Join Discord 3 | description: About Discord server 4 | draft: false 5 | redirect: https://discord.gg/fVrn9yaPUm 6 | --- 7 | 8 | 9 | 10 | 12 | 13 | redirecting to https://discord.gg/fVrn9yaPUm 14 | -------------------------------------------------------------------------------- /content/pages/privacy-policy.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Privacy Policy" 3 | meta_title: "" 4 | description: "Privacy Policy for This Site" 5 | draft: false 6 | --- 7 | 8 | This Privacy Policy (hereinafter referred to as "this Policy") defines the handling of personal information on the Fraxinus Project (hereinafter referred to as "this Site"). 9 | This Site is a static site and does not have features like contact forms, but we will comply with laws and guidelines regarding personal information protection and operate as follows. 10 | 11 | --- 12 | 13 | ## 1. Information Collected and Collection Methods 14 | 15 | This Site does not have a mechanism to directly acquire information that can identify individual users. For analyzing traffic and performance, we use Cloudflare Analytics, which collects the following information anonymously and statistically. 16 | 17 | 1. **Access Log Information** 18 | 19 | * Page views, referrer information, browser type and version, OS information, access date and time, etc. 20 | * How it's used: Measured through Cloudflare's lightweight JavaScript beacon. Information is collected without setting any cookies or localStorage on the client side ([Cloudflare Docs][1], [Cloudflare Docs][2]) 21 | 22 | ※The Site administrators do not acquire personal information such as names or email addresses. 23 | 24 | --- 25 | 26 | ## 2. Purpose of Use 27 | 28 | The anonymized data collected by this Site through Cloudflare Analytics will be used within the scope of the following purposes. 29 | 30 | * Analysis of site usage and statistical processing for service improvement 31 | * Optimization of site display and usability improvement 32 | * Security measures against unauthorized access and DDoS attacks, etc. 33 | 34 | --- 35 | 36 | ## 3. Provision of Information to Third Parties 37 | 38 | This Site will not provide collected information to third parties (excluding Cloudflare) without the user's consent. However, this shall not apply in the following cases: 39 | 40 | * When required by law 41 | * When necessary to protect a person's life, body, or property, and it is difficult to obtain the person's consent 42 | * When requested by public agencies for disclosure of information based on legal procedures 43 | 44 | --- 45 | 46 | ## 4. Use of Cloudflare Analytics 47 | 48 | This Site uses Cloudflare Analytics to analyze site traffic conditions and performance. 49 | Cloudflare Analytics does not set cookies or localStorage on the client side and measures visits by detecting changes in referrer information, etc. It does not collect any information that identifies individual users and only obtains anonymized aggregated data ([Cloudflare Docs][1]). 50 | 51 | --- 52 | 53 | ## 6. Linked Sites 54 | 55 | Regarding privacy protection on external sites/services linked from this Site, please follow the privacy policy of each respective site. This Site assumes no responsibility whatsoever for the content or operation of external sites. 56 | 57 | --- 58 | 59 | ## 7. Changes to the Policy 60 | 61 | This Policy may be revised without prior notice due to changes in laws or the operation of this Site. The latest revised content will be published on this page. 62 | 63 | --- 64 | 65 | ## 8. Contact Information 66 | 67 | This Site does not have a contact form. For questions or comments, please contact the email address below. 68 | 69 | ```txt 70 | Administrator: Fraxinus Project 71 | Email: fraxinus-3d@googlegroups.com 72 | ``` 73 | 74 | --- 75 | 76 | ### Date of Enactment: May 26, 2025 77 | 78 | ### Last Revision Date: May 26, 2025 79 | 80 | [1]: https://developers.cloudflare.com/web-analytics/data-metrics/core-web-vitals/ "Core Web Vitals · Cloudflare Web Analytics docs" 81 | [2]: https://developers.cloudflare.com/speed/speed-test/rum-beacon/ "RUM beacon for Web Analytics · Cloudflare Speed docs" 82 | -------------------------------------------------------------------------------- /content/pages/privacy-policy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "プライバシーポリシー" 3 | meta_title: "" 4 | description: "このサイトでのプライバシーポリシー" 5 | draft: false 6 | --- 7 | 8 | 本プライバシーポリシー(以下「本ポリシー」)は、Fraxinus Project(以下「当サイト」)における、個人情報の取扱いについて定めるものです。 9 | 当サイトは静的サイトであり、お問い合わせフォーム等を設置しておりませんが、個人情報保護に関する法令およびガイドラインを遵守し、以下のとおり運用いたします。 10 | 11 | --- 12 | 13 | ## 1. 収集する情報と収集方法 14 | 15 | 当サイトでは、ユーザー個人を識別し得る情報を直接取得する仕組みを設けていません。トラフィックやパフォーマンスの解析には、Cloudflare Analytics を利用しており、以下の情報を匿名かつ統計的に取得します。 16 | 17 | 1. **アクセスログ情報** 18 | 19 | * ページビュー数、参照元(リファラー)情報、ブラウザの種類やバージョン、OS 情報、アクセス日時など 20 | * 利用方法:Cloudflare の軽量 JavaScript ビーコンを通じて計測。クライアント側に Cookie や localStorage 等を一切設置せずに取得します ([Cloudflare Docs][1], [Cloudflare Docs][2]) 21 | 22 | ※当サイト運営者が名前・メールアドレス等の個人情報を取得することはありません。 23 | 24 | --- 25 | 26 | ## 2. 利用目的 27 | 28 | 当サイトが Cloudflare Analytics を通じて収集する匿名化データは、以下の目的の範囲内で利用します。 29 | 30 | * サイト利用状況の分析およびサービス向上のための統計処理 31 | * サイト表示の最適化およびユーザビリティ改善 32 | * 不正アクセスや DDoS 攻撃などのセキュリティ対策 33 | 34 | --- 35 | 36 | ## 3. 情報の第三者提供 37 | 38 | 当サイトでは、ユーザーの同意を得ることなく、収集した情報を第三者(Cloudflare を除く)に提供することはありません。ただし、以下の場合はこの限りではありません。 39 | 40 | * 法令に基づく場合 41 | * 人の生命・身体・財産の保護のために必要であり、本人の同意を得ることが困難な場合 42 | * 公的機関から法的な手続きに基づき情報開示を求められた場合 43 | 44 | --- 45 | 46 | ## 4. Cloudflare Analytics の利用 47 | 48 | 当サイトでは Cloudflare Analytics を利用して、サイトのトラフィック状況やパフォーマンスを解析しています。 49 | Cloudflare Analytics はクライアント側に Cookie や localStorage を設置せず、リファラー情報の変化検知などを用いて訪問数を計測します。個別ユーザーを識別する情報は一切収集せず、あくまで匿名化された集計データのみを取得します ([Cloudflare Docs][1])。 50 | 51 | --- 52 | 53 | ## 6. リンク先サイトについて 54 | 55 | 当サイトからリンクしている外部サイト/サービスにおけるプライバシー保護については、各サイトのプライバシーポリシーに従ってください。当サイトは外部サイトの内容・運営について一切の責任を負いません。 56 | 57 | --- 58 | 59 | ## 7. ポリシーの変更 60 | 61 | 本ポリシーは、法令改正や当サイトの運用変更に伴い、予告なく改訂されることがあります。改訂後の最新の内容は、当ページにて公表します。 62 | 63 | --- 64 | 65 | ## 8. お問い合わせ 66 | 67 | 当サイトにはお問い合わせフォームを設置しておりません。ご質問・ご意見等は、下記のメールアドレスまでお願いいたします。 68 | 69 | ```txt 70 | 運営者:Fraxinus Project 71 | メール:fraxinus-3d@googlegroups.com 72 | ``` 73 | 74 | --- 75 | 76 | ### 制定日:2025年5月26日 77 | 78 | ### 最終改訂日:2025年5月26日 79 | 80 | [1]: https://developers.cloudflare.com/web-analytics/data-metrics/core-web-vitals/ "Core Web Vitals · Cloudflare Web Analytics docs" 81 | [2]: https://developers.cloudflare.com/speed/speed-test/rum-beacon/ "RUM beacon for Web Analytics · Cloudflare Speed docs" 82 | -------------------------------------------------------------------------------- /content/sections/call-to-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | enable: true 3 | title: "Ready to build your next project with Hugo?" 4 | image: "/images/call-to-action.png" 5 | description: "Experience the future of web development with Hugoplate and Hugo. Build lightning-fast static sites with ease and flexibility." 6 | button: 7 | enable: true 8 | label: "Get Started Now" 9 | link: "https://github.com/zeon-studio/hugoplate" 10 | 11 | # don't create a separate page 12 | build: 13 | render: "never" 14 | --- 15 | -------------------------------------------------------------------------------- /content/sections/variations.md: -------------------------------------------------------------------------------- 1 | --- 2 | enable: true 3 | title: "Fraxinusの種類" 4 | description: "数あるFraxinusの一部を紹介します。 [コミュニティについて](/community)のページでは、派生機種のより詳細な情報をご覧いただけます。" 5 | 6 | variations: 7 | - name: "Fraxinus00 w3" 8 | designation: "Designed by @fukumay1" 9 | avatar: "/images/Fraxinus00w3-1.jpg" 10 | content: "Fraxinus00は66mm四方の印刷サイズを持ちUSB-PD電源で動作可能な、コンパクトで出先での紹介に好適なCoreXY構造の3Dプリンターです。" 11 | 12 | - name: "Fraxinus0w rev2" 13 | designation: "Designed by @fukumay1" 14 | avatar: "/images/Fraxinus0w-rev2.jpg" 15 | content: "Fraxinus00は120mm四方の印刷サイズを持ちUSB-PD電源やモバイルバッテリーで動作可能な、コンパクトで出先でのデモや機能紹介に好適なCoreXY構造の3Dプリンターです。" 16 | 17 | - name: "Fraxinus1k" 18 | designation: "Designed by @fukumay1" 19 | avatar: "/images/Fraxinus1k.jpg" 20 | content: "170mm四方の印刷サイズを持つ自宅利用や省スペース工房で魅力的な第2世代のCoreXY構造3Dプリンターです。" 21 | 22 | - name: "Fraxinus3e" 23 | designation: "Designed by @fukumay1" 24 | avatar: "/images/Fraxinus3e.jpg" 25 | content: "220mm四方の印刷サイズを持つ自宅利用や省スペース工房で魅力的な第2世代のCoreXY構造3Dプリンターです。" 26 | 27 | - name: "Fraxinus5ts" 28 | designation: "Designed by @fukumay1" 29 | avatar: "/images/Fraxinus5ts.jpg" 30 | content: "Fraxinus5tsは310mm四方の印刷サイズを持つ自宅利用や省スペース工房で魅力的なCoreXY構造3Dプリンターです。主要なアルミフレームを汎用的なNFS5-2020を用い、従来より入手性や剛性を向上させました。" 31 | 32 | # don't create a separate page 33 | build: 34 | render: "never" 35 | --- 36 | -------------------------------------------------------------------------------- /data/social.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": [ 3 | { 4 | "name": "X", 5 | "icon": "fab fa-x-twitter", 6 | "link": "https://x.com/fukumay1" 7 | }, 8 | { 9 | "name": "github", 10 | "icon": "fab fa-github", 11 | "link": "https://github.com/Fraxinus-3D" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /data/theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors": { 3 | "default": { 4 | "theme_color": { 5 | "primary": "#121212", 6 | "body": "#fff", 7 | "border": "#eaeaea", 8 | "light": "#f6f6f6", 9 | "dark": "#040404" 10 | }, 11 | "text_color": { 12 | "text": "#444444", 13 | "text-dark": "#040404", 14 | "text-light": "#717171" 15 | } 16 | }, 17 | "darkmode": { 18 | "theme_color": { 19 | "primary": "#fff", 20 | "body": "#1c1c1c", 21 | "border": "#3E3E3E", 22 | "light": "#222222", 23 | "dark": "#fff" 24 | }, 25 | "text_color": { 26 | "text": "#B4AFB6", 27 | "text-dark": "#fff", 28 | "text-light": "#B4AFB6" 29 | } 30 | } 31 | }, 32 | "fonts": { 33 | "font_family": { 34 | "primary": "Heebo:wght@400;600", 35 | "primary_type": "sans-serif", 36 | "secondary": "Signika:wght@500;700", 37 | "secondary_type": "sans-serif" 38 | }, 39 | "font_size": { 40 | "base": "16", 41 | "scale": "1.2" 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/fraxinus-3d/docs 2 | 3 | go 1.21 4 | 5 | require ( 6 | github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250512035231-bb1514d411e2 // indirect 7 | github.com/gethugothemes/hugo-modules/adsense v0.0.0-20250512035231-bb1514d411e2 // indirect 8 | github.com/gethugothemes/hugo-modules/components/announcement v0.0.0-20250512035231-bb1514d411e2 // indirect 9 | github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20250512035231-bb1514d411e2 // indirect 10 | github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20250512035231-bb1514d411e2 // indirect 11 | github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20250512035231-bb1514d411e2 // indirect 12 | github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20250512035231-bb1514d411e2 // indirect 13 | github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20250512035231-bb1514d411e2 // indirect 14 | github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20250512035231-bb1514d411e2 // indirect 15 | github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20250512035231-bb1514d411e2 // indirect 16 | github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20250512035231-bb1514d411e2 // indirect 17 | github.com/gethugothemes/hugo-modules/images v0.0.0-20250512035231-bb1514d411e2 // indirect 18 | github.com/gethugothemes/hugo-modules/modal v0.0.0-20250512035231-bb1514d411e2 // indirect 19 | github.com/gethugothemes/hugo-modules/pwa v0.0.0-20250512035231-bb1514d411e2 // indirect 20 | github.com/gethugothemes/hugo-modules/search v0.0.0-20250512035231-bb1514d411e2 // indirect 21 | github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20250512035231-bb1514d411e2 // indirect 22 | github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20250512035231-bb1514d411e2 // indirect 23 | github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20250512035231-bb1514d411e2 // indirect 24 | github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20250512035231-bb1514d411e2 // indirect 25 | github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20250512035231-bb1514d411e2 // indirect 26 | github.com/gethugothemes/hugo-modules/tab v0.0.0-20250512035231-bb1514d411e2 // indirect 27 | github.com/gethugothemes/hugo-modules/table-of-contents v0.0.0-20250512035231-bb1514d411e2 // indirect 28 | github.com/gethugothemes/hugo-modules/videos v0.0.0-20250512035231-bb1514d411e2 // indirect 29 | github.com/hugomods/mermaid v0.1.4 // indirect 30 | github.com/zeon-studio/hugoplate v0.0.0-20250507095558-974f11b1e3ff // indirect 31 | ) 32 | -------------------------------------------------------------------------------- /i18n/en.yaml: -------------------------------------------------------------------------------- 1 | home: Home 2 | read_more: Read More 3 | send: Send 4 | related_posts: Related Posts 5 | categories: Categories 6 | tags: Tags 7 | toc: Table of Contents 8 | share: Share 9 | search_input_placeholder: Search Post... 10 | search_no_results: No results for 11 | search_initial_message: Type something to search.. 12 | search_navigate: to navigate 13 | search_select: to select 14 | search_close: to close 15 | -------------------------------------------------------------------------------- /i18n/ja.yaml: -------------------------------------------------------------------------------- 1 | home: Home 2 | read_more: Read More 3 | send: Send 4 | related_posts: Related Posts 5 | categories: Categories 6 | tags: Tags 7 | toc: Table of Contents 8 | share: Share 9 | search_input_placeholder: Search Post... 10 | search_no_results: No results for 11 | search_initial_message: Type something to search.. 12 | search_navigate: to navigate 13 | search_select: to select 14 | search_close: to close 15 | -------------------------------------------------------------------------------- /layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 |
4 |
5 | {{ if .Content }} 6 | {{ partial "entry/content" . }} 7 | {{ end }} 8 | 19 |
20 |
21 | {{ end }} 22 | -------------------------------------------------------------------------------- /layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 |
4 |
5 | {{ partial "entry/content" . }} 6 |
7 |
8 | {{ end }} 9 | -------------------------------------------------------------------------------- /layouts/_default/terms.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 | 39 |
40 |
41 | {{ end }} 42 | -------------------------------------------------------------------------------- /layouts/docs/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 |
4 |
5 |
6 | 7 |
8 |
9 | {{ $paginator:= .Paginate .RegularPages }} 10 | {{ range $paginator.Pages }} 11 |
12 | {{ partial "components/blog-card" . }} 13 |
14 | {{ end }} 15 |
16 | {{ partial "components/pagination.html" . }} 17 |
18 | 19 |
20 | 21 | {{ $widget:= site.Params.widgets.sidebar }} 22 | {{ partialCached "widgets/widget-wrapper" ( dict "Widgets" $widget "Scope" . ) }} 23 |
24 |
25 |
26 |
27 | {{ end }} 28 | -------------------------------------------------------------------------------- /layouts/docs/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |
6 | {{ $image:= .Params.image }} 7 | {{ if $image }} 8 |
9 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "w-full rounded") }} 10 |
11 | {{ end }} 12 |

13 | {{ .Title }} 14 |

15 | 47 |
48 | {{ partial "toc.html" (dict "Class" "blog" "Collapsed" false "TableOfContents" .TableOfContents ) }} 49 | {{ .Content }} 50 |
51 |
52 | {{ $tags:= .Params.tags }} 53 | {{ if $tags }} 54 |
55 |
{{ T "tags" }} :
56 | 67 |
68 | {{ end }} 69 |
70 |
{{ T "share" }} :
71 | {{ partial "social-share" (dict "Context" . "Class" "share-icons" "Title" .Title "Whatsapp" false "Telegram" false "Linkedin" false "Pinterest" false "Tumblr" false "Vk" false "Reddit" false) }} 72 |
73 |
74 | 75 | {{ if site.Config.Services.Disqus.Shortname }} 76 |
77 | {{ template "_internal/disqus.html" . }} 78 |
79 | {{ end }} 80 |
81 |
82 | 83 | 84 | {{ $related := .Site.RegularPages.Related . | first 10 }} 85 | {{ $related = $related | shuffle | first 3 }} 86 | {{ with $related }} 87 |
88 |

{{ T "related_posts" }}

89 |
90 | {{ range . }} 91 |
92 | {{ partial "components/blog-card" . }} 93 |
94 | {{ end }} 95 |
96 |
97 | {{ end }} 98 |
99 |
100 | {{ end }} 101 | -------------------------------------------------------------------------------- /layouts/index.llms.txt: -------------------------------------------------------------------------------- 1 | # {{ .Site.Title }} 2 | 3 | > {{ .Site.Params.Description }} 4 | 5 | ## Articles 6 | {{ $yearMonthGroups := slice -}} 7 | {{ range where (where (sort (.Site.GetPage "/docs").Pages "Date" "desc") "Draft" "ne" true) "Sitemap.Disable" "ne" true -}} 8 | {{ $yearMonth := .Date.Format "2006/01" -}} 9 | {{ if not (in $yearMonthGroups $yearMonth) }} 10 | * {{ $yearMonth -}} 11 | {{ $yearMonthGroups = $yearMonthGroups | append $yearMonth -}} 12 | {{ end }} 13 | * [{{ .Title }}]({{ .Permalink }}) 14 | {{- end }} 15 | 16 | ## Others 17 | 18 | {{- $baseURL := .Site.BaseURL | strings.TrimSuffix "/" }} 19 | * [About]({{ $baseURL }}/about/): Fraxinus Projectについて 20 | -------------------------------------------------------------------------------- /layouts/partials/analytics/cloudflare-analytics.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /layouts/partials/components/breadcrumb.html: -------------------------------------------------------------------------------- 1 | {{ $context := .Context }} 2 | {{ $class := .Class }} 3 | {{ $base := site.Home.RelPermalink }} 4 | 5 | 6 | 31 | -------------------------------------------------------------------------------- /layouts/partials/components/language-switcher.html: -------------------------------------------------------------------------------- 1 | 2 | {{ if hugo.IsMultilingual }} 3 | {{ $class := .Class }} 4 | {{ $context := .Context }} 5 | {{ $pageLang := $context.Lang }} 6 | {{ $pageTranslations := newScratch }} 7 | {{/* First, fill all translations of the Home page (failsafe) */}} 8 | {{ range site.Home.AllTranslations }} 9 | {{ $pageTranslations.Set .Language.Lang .RelPermalink }} 10 | {{ end }} 11 | {{/* Second, if a translation exists for the current page for the target language, replace failsafe */}} 12 | {{ range $context.AllTranslations }} 13 | {{ $pageTranslations.Set .Language.Lang .RelPermalink }} 14 | {{ end }} 15 | 16 | 35 | {{ end }} 36 | -------------------------------------------------------------------------------- /layouts/partials/entry/content.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 | {{ .Content }} 6 |
7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /layouts/partials/essentials/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | {{ partialCached "favicon" . }} 13 | 14 | 15 | 16 | {{ partialCached "manifest" . }} 17 | 18 | 19 | 20 | {{ partialCached "site-verifications.html" . }} 21 | 22 | 23 | 24 | {{ partial "basic-seo.html" . }} 25 | 26 | 27 | 28 | {{ partialCached "custom-script.html" . }} 29 | 30 | 31 | 32 | {{ if and site.Config.Services.GoogleAnalytics.ID (ne site.Config.Services.GoogleAnalytics.ID "G-MEASUREMENT_ID") }} 33 | {{ template "_internal/google_analytics.html" . }} 34 | {{ end }} 35 | 36 | 37 | 38 | {{ partialCached "gtm.html" . }} 39 | 40 | 41 | 42 | {{ partial "analytics/cloudflare-analytics.html" . }} 43 | 44 | 45 | 46 | {{ partial "search-index.html" . }} 47 | 48 | 49 | 50 | {{/* {{ partialCached "matomo-analytics.html" . }} */}} 51 | 52 | 53 | {{/* {{ partialCached "baidu-analytics.html" . }} */}} 54 | 55 | 56 | {{/* {{ partialCached "plausible-analytics.html" . }} */}} 57 | 58 | 59 | {{/* {{ partialCached "counter-analytics.html" . }} */}} 60 | 61 | 62 | {{/* {{ partialCached "crisp-chat.html" . }} */}} 63 | 64 | 65 | {{ partial "mermaid/assets/js" . }} 66 | 67 | 68 | {{ if .Params.redirect }} 69 | 70 | {{ end }} 71 | -------------------------------------------------------------------------------- /layouts/partials/svg/content/upload.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mise.toml: -------------------------------------------------------------------------------- 1 | [tools] 2 | go = "1.24.3" 3 | node = "22.14.0" 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fraxinus-docs", 3 | "description": "Fraxinus Project Documentation", 4 | "version": "0.1.0", 5 | "license": "MIT", 6 | "author": "Fraxinus Project", 7 | "scripts": { 8 | "dev": "hugo server --bind=0.0.0.0 --watch --minify --gc --cleanDestinationDir", 9 | "build": "./scripts/build.sh", 10 | "preview": "hugo server --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --watch --forceSyncStatic -e production --minify", 11 | "update-modules": "node ./scripts/clearModules.js && hugo mod clean --all && hugo mod get -u ./... && hugo mod tidy", 12 | "remove-darkmode": "node ./scripts/removeDarkmode.js && yarn format", 13 | "project-setup": "node ./scripts/projectSetup.js", 14 | "theme-setup": "node ./scripts/themeSetup.js", 15 | "update-theme": "node ./scripts/themeUpdate.js", 16 | "format": "prettier -w ." 17 | }, 18 | "devDependencies": { 19 | "@tailwindcss/cli": "^4.1.6", 20 | "@tailwindcss/forms": "^0.5.10", 21 | "@tailwindcss/typography": "^0.5.16", 22 | "prettier": "^3.5.3", 23 | "prettier-plugin-go-template": "0.0.15", 24 | "prettier-plugin-tailwindcss": "^0.6.11", 25 | "tailwindcss": "^4.1.6" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | BASE_URL="https://fraxinus.jp/" 5 | if [[ $HUGO_ENV != "production" ]] && [[ -n $CF_PAGES_URL ]]; then 6 | BASE_URL="$CF_PAGES_URL" 7 | fi 8 | 9 | echo "Using base url: $BASE_URL" 10 | 11 | hugo --cleanDestinationDir --minify --enableGitInfo --gc --templateMetrics --templateMetricsHints --forceSyncStatic \ 12 | --baseURL "$BASE_URL" -d public 13 | -------------------------------------------------------------------------------- /scripts/clearModules.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | 3 | const clearModules = (filePath) => { 4 | if (fs.existsSync(filePath)) { 5 | let fileContent = fs.readFileSync(filePath, "utf8"); 6 | fileContent = fileContent.replace(/require\s*\([\s\S]*?\)/, ""); 7 | fs.writeFileSync(filePath, fileContent, "utf8"); 8 | } else { 9 | console.log("File does not exist."); 10 | } 11 | }; 12 | 13 | clearModules("go.mod"); 14 | clearModules("exampleSite/go.mod"); 15 | -------------------------------------------------------------------------------- /scripts/projectSetup.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | 4 | const toggleComment = ({ filepath, regex }) => { 5 | let updatedContent = fs.readFileSync(filepath, "utf8"); 6 | const match = updatedContent.match(regex); 7 | 8 | if (filepath.endsWith("hugo.toml")) { 9 | updatedContent = updatedContent.replace( 10 | 'baseURL = "https://example.org"', 11 | 'baseURL = "/"', 12 | ); 13 | } 14 | 15 | if (match) { 16 | const matchedContent = match[0]; 17 | const hasComment = matchedContent.startsWith("# "); 18 | if (hasComment) { 19 | updatedContent = updatedContent.replace( 20 | regex, 21 | matchedContent.replace("# ", ""), 22 | ); 23 | fs.writeFileSync(filepath, updatedContent, "utf8"); 24 | } else { 25 | const hasLineBreak = matchedContent.includes("\n"); 26 | if (hasLineBreak) { 27 | const content = matchedContent 28 | .split("\n") 29 | .map((line) => "# " + line) 30 | .join("\n"); 31 | updatedContent = updatedContent.replace(regex, content); 32 | fs.writeFileSync(filepath, updatedContent, "utf8"); 33 | } 34 | } 35 | } 36 | }; 37 | 38 | const getFolderName = (rootFolder) => { 39 | const configPath = path.join(rootFolder, "exampleSite/hugo.toml"); 40 | const getConfig = fs.readFileSync(configPath, "utf8"); 41 | const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/); 42 | let selectedTheme = null; 43 | if (match && match[1]) { 44 | selectedTheme = match[1]; 45 | } 46 | return selectedTheme; 47 | }; 48 | 49 | const deleteFolder = (folderPath) => { 50 | if (fs.existsSync(folderPath)) { 51 | fs.rmSync(folderPath, { recursive: true, force: true }); 52 | } 53 | }; 54 | 55 | const createNewFolder = (rootFolder, folderName) => { 56 | const newFolder = path.join(rootFolder, folderName); 57 | fs.mkdirSync(newFolder, { recursive: true }); 58 | return newFolder; 59 | }; 60 | 61 | const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => { 62 | const directory = path.join(rootFolder); 63 | const items = fs.readdirSync(directory, { withFileTypes: true }); 64 | items.forEach((item) => { 65 | if (item.isDirectory()) { 66 | createNewFolder(destinationRoot, item.name); 67 | iterateFilesAndFolders(path.join(directory, item.name), { 68 | currentFolder: item.name, 69 | destinationRoot: path.join(destinationRoot, item.name), 70 | }); 71 | } else { 72 | const sourceFile = path.join(directory, item.name); 73 | const destinationFile = path.join(destinationRoot, item.name); 74 | fs.renameSync(sourceFile, destinationFile); 75 | } 76 | }); 77 | }; 78 | 79 | const setupProject = () => { 80 | const rootFolder = path.join(__dirname, "../"); 81 | if (!fs.existsSync(path.join(rootFolder, "themes"))) { 82 | // remove this part if you don't using theme demo as a module 83 | [ 84 | { 85 | filepath: path.join(rootFolder, "exampleSite/hugo.toml"), 86 | regex: /^.*theme\s*=\s*("[^"\]]+"|\S+)/m, 87 | }, 88 | { 89 | filepath: path.join( 90 | rootFolder, 91 | "exampleSite/config/_default/module.toml", 92 | ), 93 | regex: /\[\[imports\]\]\s*\r?\npath = "([^"]+)"/, 94 | }, 95 | ].forEach(toggleComment); 96 | 97 | const folderList = ["layouts", "assets", "static", "tailwind-plugin"]; 98 | const folderName = getFolderName(rootFolder); 99 | const newFolderName = createNewFolder( 100 | path.join(rootFolder, "themes"), 101 | folderName, 102 | ); 103 | 104 | folderList.forEach((folder) => { 105 | const source = path.join(rootFolder, folder); 106 | const destination = path.join(newFolderName, folder); 107 | if (fs.existsSync(source)) { 108 | fs.mkdirSync(destination, { recursive: true }); 109 | iterateFilesAndFolders(source, { 110 | currentFolder: folder, 111 | destinationRoot: destination, 112 | }); 113 | deleteFolder(source); 114 | } 115 | }); 116 | 117 | const exampleSite = path.join(rootFolder, "exampleSite"); 118 | iterateFilesAndFolders(exampleSite, { destinationRoot: rootFolder }); 119 | deleteFolder(exampleSite); 120 | } else { 121 | console.log("Project already setup"); 122 | } 123 | }; 124 | 125 | setupProject(); 126 | -------------------------------------------------------------------------------- /scripts/removeDarkmode.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | 4 | const rootDirs = ["assets/css", "layouts"]; 5 | const configFiles = [ 6 | { 7 | filePath: "exampleSite/data/theme.json", 8 | patterns: ["colors.darkmode"], 9 | }, 10 | ]; 11 | 12 | // asset paths 13 | const deleteAssetList = [ 14 | "exampleSite/assets/images/logo-darkmode.png", 15 | "layouts/partials/components/theme-switcher.html", 16 | ]; 17 | 18 | const filePaths = [ 19 | { 20 | filePath: "layouts/partials/essentials/header.html", 21 | patterns: [ 22 | '{{\\s*partial\\s*"components\\/theme-switcher"\\s*\\([^)]*\\)\\s*}}', 23 | ], 24 | }, 25 | ]; 26 | 27 | filePaths.forEach(({ filePath, patterns }) => 28 | removeDarkModeFromFiles(filePath, patterns), 29 | ); 30 | 31 | deleteAssetList.forEach((asset) => { 32 | try { 33 | fs.unlinkSync(asset); 34 | console.log(`${path.basename(asset)} deleted successfully!`); 35 | } catch (error) { 36 | console.error(`${asset} not found`); 37 | } 38 | }); 39 | 40 | rootDirs.forEach(removeDarkModeFromPages); 41 | configFiles.forEach(removeDarkMode); 42 | 43 | function removeDarkModeFromFiles(filePath, regexPatterns) { 44 | const fileContent = fs.readFileSync(filePath, "utf8"); 45 | let updatedContent = fileContent; 46 | regexPatterns.forEach((pattern) => { 47 | const regex = new RegExp(pattern, "g"); 48 | updatedContent = updatedContent.replace(regex, ""); 49 | }); 50 | 51 | fs.writeFileSync(filePath, updatedContent, "utf8"); 52 | } 53 | 54 | // like html file 55 | function removeDarkModeFromPages(directoryPath) { 56 | const files = fs.readdirSync(directoryPath); 57 | 58 | files.forEach((file) => { 59 | const filePath = path.join(directoryPath, file); 60 | const stats = fs.statSync(filePath); 61 | if (stats.isDirectory()) { 62 | removeDarkModeFromPages(filePath); 63 | } else if (stats.isFile()) { 64 | removeDarkModeFromFiles(filePath, [ 65 | '(?:(?!["])\\S)*dark:(?:(?![,;"])\\S)*', 66 | "@apply?(\\s)*;", 67 | ]); 68 | } 69 | }); 70 | } 71 | 72 | function removeDarkMode(configFile) { 73 | const { filePath, patterns } = configFile; 74 | const contentFile = JSON.parse(fs.readFileSync(filePath, "utf8")); 75 | patterns.forEach((pattern) => deleteNestedProperty(contentFile, pattern)); 76 | fs.writeFileSync(filePath, JSON.stringify(contentFile)); 77 | } 78 | 79 | function deleteNestedProperty(obj, propertyPath) { 80 | const properties = propertyPath.split("."); 81 | let currentObj = obj; 82 | for (let i = 0; i < properties.length - 1; i++) { 83 | const property = properties[i]; 84 | if (currentObj.hasOwnProperty(property)) { 85 | currentObj = currentObj[property]; 86 | } else { 87 | return; // Property not found, no need to continue 88 | } 89 | } 90 | delete currentObj[properties[properties.length - 1]]; 91 | } 92 | -------------------------------------------------------------------------------- /scripts/run-build-in-docker.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | SRC_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../; pwd) 5 | 6 | . ${SRC_DIR}/.env 7 | 8 | BUILD_COMMAND="build --minify --enableGitInfo --gc -d public" 9 | 10 | if [ "$(uname -s)" = "Linux" ]; then 11 | docker run --rm -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} "" ${BUILD_COMMAND} 12 | elif [ "$(uname -s)" = "Darwin" ]; then 13 | docker run --rm -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} "" ${BUILD_COMMAND} 14 | fi 15 | -------------------------------------------------------------------------------- /scripts/run-server-in-docker.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | SRC_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../; pwd) 5 | 6 | . ${SRC_DIR}/.env 7 | 8 | SERVER_COMMAND="server --bind=0.0.0.0 --watch --minify --gc" 9 | 10 | if [ "$(uname -s)" = "Linux" ]; then 11 | docker run --rm -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) -p 1313:1313 -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} ${SERVER_COMMAND} 12 | elif [ "$(uname -s)" = "Darwin" ]; then 13 | docker run --rm -p 1313:1313 -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} ${SERVER_COMMAND} 14 | fi 15 | -------------------------------------------------------------------------------- /scripts/run-server.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | cd /d %~dp0\.. 4 | 5 | hugo.exe server --bind=0.0.0.0 --watch --minify --gc 6 | pause 7 | -------------------------------------------------------------------------------- /scripts/run-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eu 3 | 4 | SRC_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../; pwd) 5 | PATH=$PATH:$SRC_DIR/bin 6 | hugo server --bind=0.0.0.0 --watch --minify --gc 7 | -------------------------------------------------------------------------------- /scripts/themeSetup.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | 4 | const toggleComment = ({ filepath, regex }) => { 5 | let updatedContent = fs.readFileSync(filepath, "utf8"); 6 | const match = updatedContent.match(regex); 7 | 8 | if (filepath.endsWith("hugo.toml")) { 9 | updatedContent = updatedContent.replace( 10 | 'baseURL = "/"', 11 | 'baseURL = "https://example.org"', 12 | ); 13 | } 14 | 15 | if (match) { 16 | const matchedContent = match[0]; 17 | const hasComment = matchedContent.startsWith("# "); 18 | if (hasComment) { 19 | const hasLineBreak = matchedContent.includes("\n"); 20 | if (hasLineBreak) { 21 | updatedContent = updatedContent.replace( 22 | regex, 23 | matchedContent.replace(/# /gm, ""), 24 | ); 25 | fs.writeFileSync(filepath, updatedContent, "utf8"); 26 | } 27 | } else { 28 | updatedContent = updatedContent.replace(regex, "# " + matchedContent); 29 | fs.writeFileSync(filepath, updatedContent, "utf8"); 30 | } 31 | } 32 | }; 33 | 34 | const createNewFolder = (rootFolder, folderName) => { 35 | const newFolder = path.join(rootFolder, folderName); 36 | fs.mkdirSync(newFolder, { recursive: true }); 37 | return newFolder; 38 | }; 39 | 40 | const deleteFolder = (folderPath) => { 41 | if (fs.existsSync(folderPath)) { 42 | fs.rmSync(folderPath, { recursive: true, force: true }); 43 | } 44 | }; 45 | 46 | const getFolderName = (rootFolder) => { 47 | const configPath = path.join(rootFolder, "exampleSite/hugo.toml"); 48 | const getConfig = fs.readFileSync(configPath, "utf8"); 49 | const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/); 50 | let selectedTheme = null; 51 | if (match && match[1]) { 52 | selectedTheme = match[1]; 53 | } 54 | return selectedTheme; 55 | }; 56 | 57 | const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => { 58 | const directory = path.join(rootFolder); 59 | const items = fs.readdirSync(directory, { withFileTypes: true }); 60 | items.forEach((item) => { 61 | if (item.isDirectory()) { 62 | createNewFolder(destinationRoot, item.name); 63 | iterateFilesAndFolders(path.join(directory, item.name), { 64 | currentFolder: item.name, 65 | destinationRoot: path.join(destinationRoot, item.name), 66 | }); 67 | } else { 68 | const sourceFile = path.join(directory, item.name); 69 | const destinationFile = path.join(destinationRoot, item.name); 70 | fs.renameSync(sourceFile, destinationFile); 71 | } 72 | }); 73 | }; 74 | 75 | const setupTheme = () => { 76 | const rootFolder = path.join(__dirname, "../"); 77 | 78 | if (!fs.existsSync(path.join(rootFolder, "exampleSite"))) { 79 | // remove this part if you don't using theme demo as a module 80 | [ 81 | { 82 | filepath: path.join(rootFolder, "config/_default/module.toml"), 83 | regex: /# \[\[imports\]\]\s*\r?\n# path = "([^"]+)"/, 84 | }, 85 | { 86 | filepath: path.join(rootFolder, "hugo.toml"), 87 | regex: /^.*theme\s*=\s*("[^"\]]+"|\S+)/m, 88 | }, 89 | ].forEach(toggleComment); 90 | 91 | const includesFiles = [ 92 | "go.mod", 93 | "hugo.toml", 94 | "assets", 95 | "config", 96 | "data", 97 | "content", 98 | "i18n", 99 | "static", 100 | "tailwind-plugin", 101 | ]; 102 | 103 | const folder = createNewFolder(rootFolder, "exampleSite"); 104 | 105 | fs.readdirSync(rootFolder, { withFileTypes: true }).forEach((file) => { 106 | if (includesFiles.includes(file.name)) { 107 | if (file.isDirectory()) { 108 | const destination = path.join(rootFolder, "exampleSite", file.name); 109 | fs.mkdirSync(destination, { recursive: true }); 110 | iterateFilesAndFolders(path.join(rootFolder, file.name), { 111 | destinationRoot: destination, 112 | }); 113 | deleteFolder(path.join(rootFolder, file.name)); 114 | } else { 115 | fs.renameSync( 116 | path.join(rootFolder, file.name), 117 | path.join(folder, file.name), 118 | ); 119 | } 120 | } 121 | }); 122 | 123 | const themes = path.join(rootFolder, "themes"); 124 | iterateFilesAndFolders(path.join(themes, getFolderName(rootFolder)), { 125 | destinationRoot: rootFolder, 126 | }); 127 | deleteFolder(themes); 128 | } 129 | }; 130 | 131 | setupTheme(); 132 | -------------------------------------------------------------------------------- /scripts/themeUpdate.js: -------------------------------------------------------------------------------- 1 | const { exec } = require("child_process"); 2 | 3 | const repositoryUrl = "https://github.com/zeon-studio/hugoplate"; 4 | const localDirectory = "./themes/hugoplate"; 5 | const foldersToFetch = ["assets", "layouts"]; 6 | const foldersToSkip = ["exampleSite"]; 7 | 8 | const fetchFolder = (folder) => { 9 | exec( 10 | `curl -L ${repositoryUrl}/tarball/main | tar -xz --strip-components=1 --directory=${localDirectory} --exclude=$(curl -sL ${repositoryUrl}/tarball/main | tar -tz | grep -E "/(${foldersToSkip.join( 11 | "|", 12 | )})/") */${folder}`, 13 | ); 14 | }; 15 | 16 | // Fetch each specified folder 17 | foldersToFetch.forEach((folder) => { 18 | fetchFolder(folder); 19 | }); 20 | -------------------------------------------------------------------------------- /scripts/update_lastmod_date.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | PUBLISH_DATE=$(date '+%Y-%m-%dT%H:%M:%S%z' | sed -E 's/0900$/09:00/g') 5 | 6 | echo "$1 ($PUBLISH_DATE)" 7 | sed -E 's/lastmod: [0-9]{4}-.*\+[0-9]{2}:[0-9]{2}/lastmod: '$PUBLISH_DATE'/g' $1 > /tmp/temp.md 8 | cp /tmp/temp.md $1 9 | 10 | # 使用例 11 | # $ ./scripts/update_lastmod_date.sh ./content/docs/assembly/step1.md -------------------------------------------------------------------------------- /scripts/update_publish_date.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | PUBLISH_DATE=$(date '+%Y-%m-%dT%H:%M:%S%z' | sed -E 's/0900$/09:00/g') 5 | 6 | echo "$1 ($PUBLISH_DATE)" 7 | sed -E 's/date: [0-9]{4}-.*\+[0-9]{2}:[0-9]{2}/date: '$PUBLISH_DATE'/g' $1 > /tmp/temp.md 8 | cp /tmp/temp.md $1 9 | 10 | # 使用例 11 | # $ ./scripts/update_publish_date.sh ./content/docs/assembly/step1.md -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/favicon.png -------------------------------------------------------------------------------- /static/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /static/images/Fraxinus-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-2.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-3.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-4.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-5.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus-photo-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-photo-2.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus0-front-view.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0-front-view.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00-photo-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00-photo-2.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w2-compare.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w2-compare.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w2-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w2-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w2.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w3-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w3-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w3-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w3-2.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus00w3-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w3-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus0w-compare.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0w-compare.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus0w-rev1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0w-rev1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus0w-rev2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0w-rev2.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1fg-detail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1fg-detail.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1fg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1fg.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1k.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1k.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1kc-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1kc-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1kc2-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1kc2-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1tc2-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1tc2-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1tcl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1tcl.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus1tcl_1tc2_1ksc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1tcl_1tc2_1ksc.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus3e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3e.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus3ec-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3ec-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus3fg-detail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3fg-detail.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus3fg-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3fg-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus3fg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3fg.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus3tc-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3tc-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus3tcl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3tcl.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus5fg-detail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus5fg-detail.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus5fg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus5fg.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus5ts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus5ts.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus9fg-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus9fg-photo-1.jpg -------------------------------------------------------------------------------- /static/images/Fraxinus9fg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus9fg.jpg -------------------------------------------------------------------------------- /static/images/community/Fraxinus00cw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus00cw.jpg -------------------------------------------------------------------------------- /static/images/community/Fraxinus00tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus00tw.png -------------------------------------------------------------------------------- /static/images/community/Fraxinus1pk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus1pk.jpg -------------------------------------------------------------------------------- /static/images/community/Fraxinus5ts_DAKSH_tool_changer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus5ts_DAKSH_tool_changer.jpg -------------------------------------------------------------------------------- /static/images/community/Fraxinus5ts_IDEX.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus5ts_IDEX.jpg -------------------------------------------------------------------------------- /static/images/community/Fukumi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fukumi.jpg -------------------------------------------------------------------------------- /static/images/community/fraxinus-group-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-1.jpg -------------------------------------------------------------------------------- /static/images/community/fraxinus-group-photo-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-2.jpg -------------------------------------------------------------------------------- /static/images/community/fraxinus-group-photo-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-3.jpg -------------------------------------------------------------------------------- /static/images/community/fraxinus-group-photo-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-4.jpg -------------------------------------------------------------------------------- /static/images/community/prokosinus00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/prokosinus00.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-electronics-connection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-electronics-connection.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-nut-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-nut-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-nut-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-nut-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-nut-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-nut-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-appendix-nut-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-7.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-1-print-colored.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-colored.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-1-print-jig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-jig.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-1-print-slicer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-slicer.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-1-print-stl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-stl.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-1-procurement-list.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-procurement-list.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-10.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-11.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-12.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-13.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-14.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-7.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-8.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-2-parts-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-9.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-7.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-3-frame-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-8.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-10.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-11.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-12.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-7.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-8.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-4-teardown-kp3s-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-9.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-10.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-7.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-8.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-5-z-bed-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-9.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-6-x-carriage-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-6-x-carriage-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-6-x-carriage-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-6-x-carriage-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-6-x-carriage-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-6-x-carriage-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-6-x-carriage-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-7-xy-gantry-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-7-xy-gantry-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-7-xy-gantry-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-7-xy-gantry-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-7-xy-gantry-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-7-xy-gantry-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-7-xy-gantry-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-8-belt-head-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-7.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-0.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-1.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-2.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-3.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-4.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-5.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-6.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-7.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-assembly-9-electronics-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-8.jpg -------------------------------------------------------------------------------- /static/images/fraxinus-roadmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-roadmap.png -------------------------------------------------------------------------------- /static/images/logo_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_black.png -------------------------------------------------------------------------------- /static/images/logo_navbar_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_navbar_black.png -------------------------------------------------------------------------------- /static/images/logo_navbar_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_navbar_white.png -------------------------------------------------------------------------------- /static/images/logo_simple_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /static/images/logo_simple_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /static/images/logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_white.png -------------------------------------------------------------------------------- /tailwind-plugin/tw-bs-grid.js: -------------------------------------------------------------------------------- 1 | import plugin from "tailwindcss/plugin"; 2 | 3 | (function () { 4 | "use strict"; 5 | module.exports = plugin.withOptions(() => { 6 | return ({ addComponents }) => { 7 | const gridColumns = 12; 8 | const gridGutterWidth = "1.5rem"; 9 | const gridGutters = { 10 | 0: "0", 11 | 1: "0.25rem", 12 | 2: "0.5rem", 13 | 3: "1rem", 14 | 4: "1.5rem", 15 | 5: "3rem", 16 | }; 17 | const respectImportant = true; 18 | const columns = Array.from({ length: gridColumns }, (_, i) => i + 1); 19 | const rowColsSteps = columns.slice(0, Math.floor(gridColumns / 2)); 20 | 21 | // row 22 | addComponents( 23 | { 24 | ".row": { 25 | "--bs-gutter-x": gridGutterWidth, 26 | "--bs-gutter-y": 0, 27 | display: "flex", 28 | flexWrap: "wrap", 29 | marginTop: "calc(var(--bs-gutter-y) * -1)", 30 | marginRight: "calc(var(--bs-gutter-x) / -2)", 31 | marginLeft: "calc(var(--bs-gutter-x) / -2)", 32 | "& > *": { 33 | boxSizing: "border-box", 34 | flexShrink: 0, 35 | width: "100%", 36 | maxWidth: "100%", 37 | paddingRight: "calc(var(--bs-gutter-x) / 2)", 38 | paddingLeft: "calc(var(--bs-gutter-x) / 2)", 39 | marginTop: "var(--bs-gutter-y)", 40 | }, 41 | }, 42 | }, 43 | { respectImportant }, 44 | ); 45 | 46 | // columns 47 | addComponents( 48 | [ 49 | { 50 | ".col": { flex: "1 0 0%" }, 51 | ".row-cols-auto": { "& > *": { flex: "0 0 auto", width: "auto" } }, 52 | }, 53 | ...rowColsSteps.map((num) => ({ 54 | [`.row-cols-${num}`]: { 55 | "& > *": { flex: "0 0 auto", width: `${100 / num}%` }, 56 | }, 57 | })), 58 | { ".col-auto": { flex: "0 0 auto", width: "auto" } }, 59 | ...columns.map((num) => ({ 60 | [`.col-${num}`]: { 61 | flex: "0 0 auto", 62 | width: `${(100 / gridColumns) * num}%`, 63 | }, 64 | })), 65 | ], 66 | { respectImportant }, 67 | ); 68 | 69 | // offset 70 | addComponents( 71 | [0, ...columns.slice(0, -1)].map((num) => ({ 72 | [`.offset-${num}`]: { marginLeft: `${(100 / gridColumns) * num}%` }, 73 | })), 74 | { respectImportant }, 75 | ); 76 | 77 | // gutters 78 | if (Object.keys(gridGutters).length) { 79 | const gutterComponents = Object.entries(gridGutters).reduce( 80 | (acc, [key, value]) => { 81 | acc[`.g-${key}`] = { 82 | "--bs-gutter-x": value, 83 | "--bs-gutter-y": value, 84 | }; 85 | acc[`.gx-${key}`] = { "--bs-gutter-x": value }; 86 | acc[`.gy-${key}`] = { "--bs-gutter-y": value }; 87 | return acc; 88 | }, 89 | {}, 90 | ); 91 | addComponents(gutterComponents, { respectImportant }); 92 | } 93 | 94 | // order 95 | addComponents( 96 | [ 97 | { 98 | ".order-first": { order: "-1" }, 99 | ".order-last": { order: gridColumns + 1 }, 100 | }, 101 | ...[0, ...columns].map((num) => ({ 102 | [`.order-${num}`]: { order: String(num) }, 103 | })), 104 | ], 105 | { respectImportant }, 106 | ); 107 | }; 108 | }); 109 | })(); 110 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/base.css: -------------------------------------------------------------------------------- 1 | html { 2 | @apply text-base-sm md:text-base; 3 | } 4 | 5 | body { 6 | @apply bg-body text-base dark:bg-darkmode-body font-primary font-normal leading-relaxed text-text dark:text-darkmode-text; 7 | } 8 | 9 | h1, 10 | h2, 11 | h3, 12 | h4, 13 | h5, 14 | h6 { 15 | @apply font-secondary font-bold leading-tight text-text-dark dark:text-darkmode-text-dark; 16 | } 17 | 18 | h1, 19 | .h1 { 20 | @apply text-h1-sm md:text-h1; 21 | } 22 | 23 | h2, 24 | .h2 { 25 | @apply text-h2-sm md:text-h2; 26 | } 27 | 28 | h3, 29 | .h3 { 30 | @apply text-h3-sm md:text-h3; 31 | } 32 | 33 | h4, 34 | .h4 { 35 | @apply text-h4; 36 | } 37 | 38 | h5, 39 | .h5 { 40 | @apply text-h5; 41 | } 42 | 43 | h6, 44 | .h6 { 45 | @apply text-h6; 46 | } 47 | 48 | b, 49 | strong { 50 | @apply font-semibold; 51 | } 52 | 53 | code { 54 | @apply after:border-none; 55 | } 56 | 57 | blockquote > p { 58 | @apply !my-0; 59 | } 60 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/buttons.css: -------------------------------------------------------------------------------- 1 | .btn { 2 | @apply inline-block rounded border border-transparent px-5 py-2 font-semibold capitalize transition; 3 | } 4 | 5 | .btn-sm { 6 | @apply rounded-sm px-4 py-1.5 text-sm; 7 | } 8 | 9 | .btn-primary { 10 | @apply border-primary bg-primary dark:border-darkmode-primary dark:text-text-dark text-white dark:bg-darkmode-primary; 11 | } 12 | 13 | .btn-outline-primary { 14 | @apply border-dark text-text-dark hover:bg-dark dark:hover:text-text-dark bg-transparent hover:text-white dark:border-darkmode-primary dark:text-white dark:hover:bg-darkmode-primary; 15 | } 16 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/components.css: -------------------------------------------------------------------------------- 1 | /* section style */ 2 | .section { 3 | @apply py-24 xl:py-28; 4 | } 5 | 6 | .section-sm { 7 | @apply py-16 xl:py-20; 8 | } 9 | 10 | /* container */ 11 | .container { 12 | @apply mx-auto xl:!max-w-[1320px] px-4; 13 | } 14 | 15 | /* social icons */ 16 | .social-icons { 17 | @apply space-x-4; 18 | } 19 | .social-icons li { 20 | @apply inline-block; 21 | } 22 | .social-icons li a { 23 | @apply flex h-9 w-9 items-center justify-center rounded-sm bg-primary text-center leading-9 text-white dark:bg-darkmode-primary dark:text-text-dark; 24 | } 25 | .social-icons li a svg { 26 | @apply h-5 w-5; 27 | } 28 | 29 | /* content style */ 30 | .content { 31 | @apply prose max-w-none; 32 | @apply prose-headings:mb-[.3em] prose-headings:mt-[.6em] prose-headings:text-text-dark dark:prose-headings:text-darkmode-text-dark; 33 | @apply prose-h1:text-h1-sm md:prose-h1:text-h1; 34 | @apply prose-h2:text-h2-sm md:prose-h2:text-h2; 35 | @apply prose-h3:text-h3-sm md:prose-h3:text-h3; 36 | @apply prose-p:text-base prose-p:text-text dark:prose-p:text-darkmode-text; 37 | @apply prose-a:text-text prose-a:[&.btn]:no-underline dark:prose-a:text-darkmode-text; 38 | @apply prose-img:max-w-full prose-img:rounded; 39 | @apply prose-strong:text-text-dark dark:prose-strong:text-darkmode-text; 40 | @apply prose-hr:border-border dark:prose-hr:border-darkmode-border; 41 | @apply prose-pre:rounded-lg prose-pre:bg-light dark:prose-pre:bg-darkmode-light; 42 | @apply prose-code:text-darkmode-text-dark; 43 | @apply prose-li:text-text dark:prose-li:text-darkmode-text; 44 | @apply prose-blockquote:rounded-lg prose-blockquote:border prose-blockquote:border-l-[10px] prose-blockquote:border-primary prose-blockquote:bg-light prose-blockquote:px-8 prose-blockquote:py-10 prose-blockquote:font-secondary prose-blockquote:text-2xl prose-blockquote:not-italic prose-blockquote:text-text-dark dark:prose-blockquote:border-darkmode-primary dark:prose-blockquote:bg-darkmode-light dark:prose-blockquote:text-darkmode-text-light; 45 | @apply prose-table:relative prose-table:overflow-hidden prose-table:rounded-lg prose-table:before:absolute prose-table:before:left-0 prose-table:before:top-0 prose-table:before:h-full prose-table:before:w-full prose-table:before:rounded-[inherit] prose-table:before:border prose-table:before:border-border prose-table:before:content-[""] dark:prose-table:before:border-darkmode-border; 46 | @apply prose-thead:border-border prose-thead:bg-light dark:prose-thead:border-darkmode-border dark:prose-thead:bg-darkmode-light; 47 | @apply prose-th:relative prose-th:z-10 prose-th:px-4 prose-th:py-[18px] prose-th:text-text-dark dark:prose-th:text-darkmode-text; 48 | @apply prose-tr:border-border dark:prose-tr:border-darkmode-border; 49 | @apply prose-td:relative prose-td:z-10 prose-td:px-3 prose-td:py-[18px] dark:prose-td:text-darkmode-text; 50 | } 51 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/custom.css: -------------------------------------------------------------------------------- 1 | /* DO NOT WRITE ANY STYLE IN THIS FILE */ 2 | /* If you want to add your own styles, please write it in the `./assets/css/custom.css` file. */ 3 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/main.css: -------------------------------------------------------------------------------- 1 | @import "tailwindcss"; 2 | @plugin "@tailwindcss/forms"; 3 | @plugin "@tailwindcss/typography"; 4 | @plugin "./tailwind-plugin/tw-theme"; 5 | @plugin "./tailwind-plugin/tw-bs-grid"; 6 | @source "hugo_stats.json"; 7 | 8 | @custom-variant dark (&:where(.dark, .dark *)); 9 | 10 | @import "./safe.css"; 11 | @import "./utilities.css"; 12 | 13 | @layer base { 14 | @import "./base.css"; 15 | } 16 | 17 | @layer components { 18 | @import "./components.css"; 19 | @import "./navigation.css"; 20 | @import "./buttons.css"; 21 | } 22 | 23 | @import "search.css"; 24 | @import "social-share.css"; 25 | @import "gallery-slider.css"; 26 | @import "images.css"; 27 | @import "toc.css"; 28 | @import "tab.css"; 29 | @import "accordion.css"; 30 | @import "modal.css"; 31 | @import "notice.css"; 32 | 33 | @import "module-overrides.css"; 34 | @import "custom.css"; 35 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/module-overrides.css: -------------------------------------------------------------------------------- 1 | /* table of contents */ 2 | .table-of-content { 3 | @apply overflow-hidden rounded; 4 | } 5 | 6 | /* share icons */ 7 | .share-icons .share-link { 8 | @apply h-9 w-9 rounded leading-9 bg-primary hover:bg-primary dark:bg-darkmode-primary dark:hover:bg-darkmode-primary; 9 | } 10 | 11 | .share-icons .share-icon svg { 12 | @apply dark:fill-darkmode-light; 13 | } 14 | 15 | .fediverse-input-wrapper { 16 | @apply bg-body dark:bg-darkmode-body rounded; 17 | input { 18 | @apply rounded focus:border-primary focus:ring-0; 19 | } 20 | button { 21 | @apply rounded bg-primary dark:bg-darkmode-primary text-light dark:text-darkmode-light hover:bg-primary dark:hover:bg-darkmode-primary; 22 | } 23 | } 24 | 25 | /* notice */ 26 | .notice { 27 | @apply rounded-lg; 28 | } 29 | 30 | /* tab */ 31 | .tab { 32 | @apply border-border dark:border-darkmode-border overflow-hidden rounded-lg border; 33 | } 34 | .tab-nav { 35 | @apply border-border bg-light dark:border-darkmode-border dark:bg-darkmode-light pl-4; 36 | } 37 | .tab-nav-item { 38 | @apply text-text-dark dark:text-darkmode-text-dark px-8 !text-lg; 39 | } 40 | .tab-nav-item.active { 41 | @apply border-dark dark:border-darkmode-primary; 42 | } 43 | 44 | .tab-content-panel { 45 | @apply px-4 !pt-0; 46 | } 47 | 48 | /* accordion */ 49 | .accordion { 50 | @apply border-border bg-light dark:border-darkmode-border dark:bg-darkmode-light mb-6 overflow-hidden rounded-lg border; 51 | } 52 | .accordion-header { 53 | @apply text-text-dark dark:text-darkmode-text-dark; 54 | } 55 | 56 | /* cookie consent */ 57 | .cookie-box { 58 | @apply !rounded-lg; 59 | } 60 | 61 | /* slider */ 62 | .gallery-slider { 63 | @apply !ml-0; 64 | } 65 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/navigation.css: -------------------------------------------------------------------------------- 1 | .header { 2 | @apply bg-body dark:bg-darkmode-body py-6; 3 | } 4 | 5 | /* navbar items */ 6 | .navbar { 7 | @apply relative flex flex-wrap items-center justify-between; 8 | } 9 | 10 | .navbar-brand { 11 | @apply text-text-dark dark:text-darkmode-text-dark text-xl font-semibold; 12 | image { 13 | @apply max-h-full max-w-full; 14 | } 15 | } 16 | 17 | .navbar-nav { 18 | @apply text-center lg:text-left; 19 | } 20 | 21 | .nav-link { 22 | @apply text-text-dark hover:text-primary dark:text-darkmode-text-dark dark:hover:text-darkmode-primary block p-3 cursor-pointer font-semibold transition lg:px-2 lg:py-3; 23 | } 24 | 25 | .nav-dropdown { 26 | @apply mr-0; 27 | } 28 | 29 | .nav-dropdown > svg { 30 | @apply pointer-events-none; 31 | } 32 | 33 | .nav-dropdown.active .nav-dropdown-list { 34 | @apply block; 35 | } 36 | 37 | .nav-dropdown-list { 38 | @apply bg-body dark:bg-darkmode-body z-10 min-w-[180px] rounded p-4 shadow-sm hidden lg:invisible lg:absolute lg:block lg:opacity-0; 39 | } 40 | 41 | .nav-dropdown-item { 42 | @apply [&:not(:last-child)]:mb-2; 43 | } 44 | 45 | .nav-dropdown-link { 46 | @apply text-text-dark hover:text-primary dark:text-darkmode-text dark:hover:text-darkmode-primary block py-1 font-semibold transition; 47 | } 48 | 49 | /* theme-switcher */ 50 | .theme-switcher { 51 | @apply inline-flex; 52 | 53 | label { 54 | @apply bg-border relative inline-block h-4 w-6 cursor-pointer rounded-2xl lg:w-10; 55 | } 56 | 57 | input { 58 | @apply absolute opacity-0; 59 | } 60 | 61 | span { 62 | @apply bg-dark absolute -top-1 left-0 flex h-6 w-6 items-center justify-center rounded-full transition-all duration-300 dark:bg-white; 63 | } 64 | 65 | input:checked + label { 66 | span { 67 | @apply lg:left-4; 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/safe.css: -------------------------------------------------------------------------------- 1 | /* navbar toggler */ 2 | input#nav-toggle:checked + label #show-button { 3 | @apply hidden; 4 | } 5 | 6 | input#nav-toggle:checked + label #hide-button { 7 | @apply block; 8 | } 9 | 10 | input#nav-toggle:checked ~ #nav-menu { 11 | @apply block; 12 | } 13 | 14 | /* swiper pagination */ 15 | .swiper-pagination-bullet { 16 | @apply !h-2.5 !w-2.5 !bg-light !opacity-100 dark:!bg-darkmode-light; 17 | } 18 | 19 | .swiper-pagination-bullet-active { 20 | @apply !h-4 !w-4 !bg-primary dark:!bg-darkmode-primary; 21 | } 22 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/css/utilities.css: -------------------------------------------------------------------------------- 1 | @utility bg-gradient { 2 | @apply bg-linear-to-b from-[rgba(249,249,249,1)] from-[0.53%] to-white to-[83.28%] dark:from-darkmode-light dark:to-darkmode-body; 3 | } 4 | 5 | /* form style */ 6 | @utility form-input { 7 | @apply w-full rounded border-transparent bg-light px-6 py-4 text-text-dark placeholder:text-text-light focus:border-primary dark:focus:border-darkmode-primary focus:ring-transparent dark:border-darkmode-border dark:bg-darkmode-light dark:text-darkmode-text-light; 8 | } 9 | 10 | @utility form-label { 11 | @apply mb-4 block font-secondary text-xl font-normal text-text-dark dark:text-darkmode-text-light; 12 | } 13 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/js/main.js: -------------------------------------------------------------------------------- 1 | // main script 2 | (function () { 3 | "use strict"; 4 | 5 | // Dropdown Menu Toggler For Mobile 6 | // ---------------------------------------- 7 | const dropdownMenuToggler = document.querySelectorAll( 8 | ".nav-dropdown > .nav-link", 9 | ); 10 | 11 | dropdownMenuToggler.forEach((toggler) => { 12 | toggler?.addEventListener("click", (e) => { 13 | e.target.closest(".nav-item").classList.toggle("active"); 14 | }); 15 | }); 16 | 17 | // Testimonial Slider 18 | // ---------------------------------------- 19 | new Swiper(".testimonial-slider", { 20 | spaceBetween: 24, 21 | loop: true, 22 | pagination: { 23 | el: ".testimonial-slider-pagination", 24 | type: "bullets", 25 | clickable: true, 26 | }, 27 | breakpoints: { 28 | 768: { 29 | slidesPerView: 2, 30 | }, 31 | 992: { 32 | slidesPerView: 3, 33 | }, 34 | }, 35 | }); 36 | })(); 37 | -------------------------------------------------------------------------------- /themes/hugoplate/assets/plugins/maps/google-map.js: -------------------------------------------------------------------------------- 1 | /*!*************************************************** 2 | * Google Map 3 | *****************************************************/ 4 | 5 | window.marker = null; 6 | 7 | function initialize() { 8 | var map, 9 | mapId = document.getElementById("map"); 10 | var latitude = mapId.getAttribute("data-latitude"); 11 | var longitude = mapId.getAttribute("data-longitude"); 12 | var mapMarker = mapId.getAttribute("data-marker"); 13 | var mapMarkerName = mapId.getAttribute("data-marker-name"); 14 | var nottingham = new google.maps.LatLng(latitude, longitude); 15 | var style = [ 16 | { 17 | featureType: "administrative", 18 | elementType: "all", 19 | stylers: [ 20 | { 21 | saturation: "-100", 22 | }, 23 | ], 24 | }, 25 | { 26 | featureType: "administrative.province", 27 | elementType: "all", 28 | stylers: [ 29 | { 30 | visibility: "off", 31 | }, 32 | ], 33 | }, 34 | { 35 | featureType: "landscape", 36 | elementType: "all", 37 | stylers: [ 38 | { 39 | saturation: -100, 40 | }, 41 | { 42 | lightness: 65, 43 | }, 44 | { 45 | visibility: "on", 46 | }, 47 | ], 48 | }, 49 | { 50 | featureType: "poi", 51 | elementType: "all", 52 | stylers: [ 53 | { 54 | saturation: -100, 55 | }, 56 | { 57 | lightness: "50", 58 | }, 59 | { 60 | visibility: "simplified", 61 | }, 62 | ], 63 | }, 64 | { 65 | featureType: "road", 66 | elementType: "all", 67 | stylers: [ 68 | { 69 | saturation: "-100", 70 | }, 71 | ], 72 | }, 73 | { 74 | featureType: "road.highway", 75 | elementType: "all", 76 | stylers: [ 77 | { 78 | visibility: "simplified", 79 | }, 80 | ], 81 | }, 82 | { 83 | featureType: "road.arterial", 84 | elementType: "all", 85 | stylers: [ 86 | { 87 | lightness: "30", 88 | }, 89 | ], 90 | }, 91 | { 92 | featureType: "road.local", 93 | elementType: "all", 94 | stylers: [ 95 | { 96 | lightness: "40", 97 | }, 98 | ], 99 | }, 100 | { 101 | featureType: "transit", 102 | elementType: "all", 103 | stylers: [ 104 | { 105 | saturation: -100, 106 | }, 107 | { 108 | visibility: "simplified", 109 | }, 110 | ], 111 | }, 112 | { 113 | featureType: "water", 114 | elementType: "geometry", 115 | stylers: [ 116 | { 117 | hue: "#ffff00", 118 | }, 119 | { 120 | lightness: -25, 121 | }, 122 | { 123 | saturation: -97, 124 | }, 125 | ], 126 | }, 127 | { 128 | featureType: "water", 129 | elementType: "labels", 130 | stylers: [ 131 | { 132 | lightness: -25, 133 | }, 134 | { 135 | saturation: -100, 136 | }, 137 | ], 138 | }, 139 | ]; 140 | var mapOptions = { 141 | center: nottingham, 142 | mapTypeId: google.maps.MapTypeId.ROADMAP, 143 | backgroundColor: "#000", 144 | zoom: 15, 145 | panControl: !1, 146 | zoomControl: !0, 147 | mapTypeControl: !1, 148 | scaleControl: !1, 149 | streetViewControl: !1, 150 | overviewMapControl: !1, 151 | zoomControlOptions: { 152 | style: google.maps.ZoomControlStyle.LARGE, 153 | }, 154 | }; 155 | map = new google.maps.Map(document.getElementById("map"), mapOptions); 156 | var mapType = new google.maps.StyledMapType(style, { 157 | name: "Grayscale", 158 | }); 159 | map.mapTypes.set("grey", mapType); 160 | map.setMapTypeId("grey"); 161 | var marker_image = mapMarker; 162 | var pinIcon = new google.maps.MarkerImage( 163 | marker_image, 164 | null, 165 | null, 166 | null, 167 | new google.maps.Size(30, 50), 168 | ); 169 | marker = new google.maps.Marker({ 170 | position: nottingham, 171 | map: map, 172 | icon: pinIcon, 173 | title: mapMarkerName, 174 | }); 175 | } 176 | var map = document.getElementById("map"); 177 | if (map != null) { 178 | google.maps.event.addDomListener(window, "load", initialize); 179 | } 180 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/404.en.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |
6 | 8 | 404 9 | 10 |

Page not found

11 |
12 |

13 | The page you are looking for might have been removed, had its name 14 | changed, or is temporarily unavailable. 15 |

16 |
17 | 20 | Back to home 21 | 22 |
23 |
24 |
25 |
26 | {{ end }} 27 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | {{ partial "essentials/head.html" . }} 12 | 13 | 14 | 15 | {{ partialCached "essentials/style.html" . }} 16 | 17 | 18 | 19 | 20 | 21 | {{ if hugo.IsProduction }} 22 | {{ partialCached "preloader.html" . }} 23 | {{ partialCached "gtm-noscript.html" . }} 24 | {{ else }} 25 | {{ partial "preloader.html" . }} 26 | 27 | 28 | 29 | {{ partial "components/tw-size-indicator.html" . }} 30 | {{ end }} 31 | 32 | 33 | 34 | {{ partialCached "announcement.html" . }} 35 | 36 | 37 | 38 | {{ partial "essentials/header.html" . }} 39 | {{ partial "search-modal.html" (dict "Context" . ) }} 40 | 41 | 42 |
43 | {{ block "main" . }}{{ end }} 44 |
45 | 46 | 47 | {{ partial "essentials/footer.html" . }} 48 | 49 | 50 | 51 | {{ partialCached "essentials/script.html" . }} 52 | 53 | 54 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 | 18 |
19 |
20 | {{ end }} 21 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 |
8 |
9 |
10 | {{ .Content }} 11 |
12 |
13 |
14 |
15 |
16 | {{ end }} 17 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/_default/taxonomy.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 |
8 | 9 |
10 |
11 | {{ range .Data.Pages }} 12 |
13 | {{ partial "components/blog-card" . }} 14 |
15 | {{ end }} 16 |
17 |
18 |
19 |
20 |
21 | {{ end }} 22 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/_default/terms.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 | 39 |
40 |
41 | {{ end }} 42 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/about/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |
6 | {{ partial "image" (dict "Src" .Params.image "Context" .Page "Alt" .Title "Class" "mx-auto mb-6" "Size" "200x200") }} 7 |

{{ .Title }}

8 |
{{ .Content }}
9 |
10 |
11 |
12 |
13 | {{ end }} 14 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/authors/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 |
8 | {{ range .RegularPages }} 9 |
10 | {{ partial "components/author-card" . }} 11 |
12 | {{ end }} 13 |
14 |
15 |
16 | {{ end }} 17 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/authors/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
6 |
7 | {{ $image:= .Params.image }} 8 | {{ if $image }} 9 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "mx-auto" "Size" "200x200") }} 10 | {{ else if .Params.Email }} 11 | {{ .Title }} 17 | {{ end }} 18 |

{{ .Title }}

19 |
20 | {{ .Content }} 21 |
22 | 35 |
36 |
37 | 38 |
39 | {{ $filterByAuthor := where site.RegularPages "Params.author" "==" .Title }} 40 | {{ range $filterByAuthor }} 41 |
42 | {{ partial "components/blog-card" . }} 43 |
44 | {{ end }} 45 |
46 |
47 |
48 | {{ end }} 49 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/blog/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 |
8 | 9 |
10 |
11 | {{ $paginator:= .Paginate .RegularPages }} 12 | {{ range $paginator.Pages }} 13 |
14 | {{ partial "components/blog-card" . }} 15 |
16 | {{ end }} 17 |
18 | {{ partial "components/pagination.html" . }} 19 |
20 | 21 |
22 | 23 | {{ $widget:= site.Params.widgets.sidebar }} 24 | {{ partialCached "widgets/widget-wrapper" ( dict "Widgets" $widget "Scope" . ) }} 25 |
26 |
27 |
28 |
29 | {{ end }} 30 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/blog/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |
6 | {{ $image:= .Params.image }} 7 | {{ if $image }} 8 |
9 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "w-full rounded") }} 10 |
11 | {{ end }} 12 |

13 | {{ .Title }} 14 |

15 | 43 |
44 | {{ partial "toc.html" (dict "Class" "blog" "Collapsed" false "TableOfContents" .TableOfContents ) }} 45 | {{ .Content }} 46 |
47 |
48 | {{ $tags:= .Params.tags }} 49 | {{ if $tags }} 50 |
51 |
{{ T "tags" }} :
52 | 63 |
64 | {{ end }} 65 |
66 |
{{ T "share" }} :
67 | {{ partial "social-share" (dict "Context" . "Class" "share-icons" "Title" .Title "Whatsapp" false "Telegram" false "Linkedin" false "Pinterest" false "Tumblr" false "Vk" false "Reddit" false) }} 68 |
69 |
70 | 71 | {{ if site.Config.Services.Disqus.Shortname }} 72 |
73 | {{ template "_internal/disqus.html" . }} 74 |
75 | {{ end }} 76 |
77 |
78 | 79 | 80 | {{ $related := .Site.RegularPages.Related . | first 10 }} 81 | {{ $related = $related | shuffle | first 3 }} 82 | {{ with $related }} 83 |
84 |

{{ T "related_posts" }}

85 |
86 | {{ range . }} 87 |
88 | {{ partial "components/blog-card" . }} 89 |
90 | {{ end }} 91 |
92 |
93 | {{ end }} 94 |
95 |
96 | {{ end }} 97 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/contact/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "page-header" . }} 3 | 4 | 5 |
6 |
7 |
8 |
9 |
10 |
11 | 14 | 20 |
21 |
22 | 25 | 31 |
32 |
33 | 36 | 42 |
43 | 44 |
45 |
46 |
47 |
48 |
49 | 50 | 51 | {{ with site.Params.google_map }} 52 | {{ if .enable }} 53 |
60 | {{ end }} 61 | {{ end }} 62 | 63 | {{ with site.Params.subscription }} 64 | {{ if .enable }} 65 | 66 |
71 |
72 | 81 | 87 |
88 | 93 | 96 |
97 |
98 | 102 | 106 |
107 | 110 | 111 | {{ end }} 112 | {{ end }} 113 | 114 | {{ if site.Params.google_map.enable }} 115 | {{ $gmap:= resources.Get "plugins/maps/google-map.js" }} 116 | 117 | 118 | {{ end }} 119 | 120 | {{ end }} 121 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/call-to-action.html: -------------------------------------------------------------------------------- 1 | 2 | {{ with site.GetPage "sections/call-to-action" }} 3 | {{ if .Params.enable }} 4 |
5 |
6 |
8 |
9 |
10 | {{ partial "image" (dict "Src" .image "Alt" "call to action" "Class" "w-full") }} 11 |
12 |
13 |

14 | {{ .Title | markdownify }} 15 |

16 |

17 | {{ .Params.description | markdownify }} 18 |

19 | {{ with .Params.button }} 20 | {{ if .enable }} 21 | 22 | {{ .label }} 23 | 24 | {{ end }} 25 | {{ end }} 26 |
27 |
28 |
29 |
30 |
31 | {{ end }} 32 | {{ end }} 33 | 34 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/components/author-card.html: -------------------------------------------------------------------------------- 1 |
2 | {{ $image:= .Params.image }} 3 | {{ if $image }} 4 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "mx-auto mb-6 rounded" "size" "120x120") }} 5 | {{ else if .Params.Email }} 6 | {{ .Title }} 12 | {{ end }} 13 |

14 | {{ .Title }} 15 |

16 |

17 | {{ .Summary | plainify }} 18 |

19 | 29 |
30 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/components/blog-card.html: -------------------------------------------------------------------------------- 1 |
2 | {{ $image:= .Params.image }} 3 | {{ if $image }} 4 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "mb-6 w-full rounded") }} 5 | {{ end }} 6 |

7 | 8 | {{ .Title }} 9 | 10 |

11 | {{ $categories:= .Params.categories }} 12 | {{ if $categories }} 13 | 32 | {{ end }} 33 |

{{ .Summary | plainify }}

34 | 35 | {{ T "read_more" }} 36 | 37 |
38 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/components/breadcrumb.html: -------------------------------------------------------------------------------- 1 | {{ $context := .Context }} 2 | {{ $class := .Class }} 3 | {{ $base := site.Home.Permalink }} 4 | 5 | 6 | 31 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/components/language-switcher.html: -------------------------------------------------------------------------------- 1 | 2 | {{ if hugo.IsMultilingual }} 3 | {{ $class := .Class }} 4 | {{ $context := .Context }} 5 | {{ $pageLang := $context.Lang }} 6 | {{ $pageTranslations := newScratch }} 7 | {{/* First, fill all translations of the Home page (failsafe) */}} 8 | {{ range site.Home.AllTranslations }} 9 | {{ $pageTranslations.Set .Language.Lang .Permalink }} 10 | {{ end }} 11 | {{/* Second, if a translation exists for the current page for the target language, replace failsafe */}} 12 | {{ range $context.AllTranslations }} 13 | {{ $pageTranslations.Set .Language.Lang .Permalink }} 14 | {{ end }} 15 | 16 | 35 | {{ end }} -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/components/theme-switcher.html: -------------------------------------------------------------------------------- 1 | 2 | {{ $class := .Class }} 3 | {{ if site.Params.theme_switcher }} 4 | 35 | 36 | 37 | 76 | {{ end }} 77 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/components/tw-size-indicator.html: -------------------------------------------------------------------------------- 1 |
3 | all 4 | 5 | 6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/essentials/footer.html: -------------------------------------------------------------------------------- 1 | 59 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/essentials/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | {{ partialCached "favicon" . }} 13 | 14 | 15 | 16 | {{ partialCached "manifest" . }} 17 | 18 | 19 | 20 | {{ partialCached "site-verifications.html" . }} 21 | 22 | 23 | 24 | {{ partial "basic-seo.html" . }} 25 | 26 | 27 | 28 | {{ partialCached "custom-script.html" . }} 29 | 30 | 31 | 32 | {{ if and site.Config.Services.GoogleAnalytics.ID (ne site.Config.Services.GoogleAnalytics.ID "G-MEASUREMENT_ID") }} 33 | {{ template "_internal/google_analytics.html" . }} 34 | {{ end }} 35 | 36 | 37 | 38 | {{ partialCached "gtm.html" . }} 39 | 40 | 41 | 42 | {{ partial "search-index.html" . }} 43 | 44 | 45 | 46 | {{/* {{ partialCached "matomo-analytics.html" . }} */}} 47 | 48 | 49 | {{/* {{ partialCached "baidu-analytics.html" . }} */}} 50 | 51 | 52 | {{/* {{ partialCached "plausible-analytics.html" . }} */}} 53 | 54 | 55 | {{/* {{ partialCached "counter-analytics.html" . }} */}} 56 | 57 | 58 | {{/* {{ partialCached "crisp-chat.html" . }} */}} 59 | 60 | 61 | {{ partial "mermaid/assets/js" . }} 62 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/essentials/script.html: -------------------------------------------------------------------------------- 1 | 2 | {{ $scripts := slice }} 3 | {{ $scriptsLazy := slice }} 4 | {{ range site.Params.plugins.js }} 5 | {{ if findRE "^http" .link }} 6 | 10 | {{ else }} 11 | {{ if not .lazy }} 12 | {{ $scripts = $scripts | append (resources.Get .link) }} 13 | {{ else }} 14 | {{ $scriptsLazy = $scriptsLazy | append (resources.Get .link) }} 15 | {{ end }} 16 | {{ end }} 17 | {{ end }} 18 | 19 | 20 | 21 | {{ $scripts = $scripts | append (resources.Get "js/main.js") }} 22 | {{ $scripts = $scripts | resources.Concat "js/script.js" }} 23 | 24 | {{ $scriptsLazy = $scriptsLazy | resources.Concat "js/script-lazy.js" }} 25 | 26 | {{ if hugo.IsProduction }} 27 | {{ $scripts = $scripts | minify | fingerprint }} 28 | {{ $scriptsLazy = $scriptsLazy | minify | fingerprint }} 29 | {{ end }} 30 | 31 | {{/* scripts */}} 32 | 36 | 37 | {{/* scripts lazy */}} 38 | 44 | 45 | 46 | {{ partialCached "pwa.html" . }} 47 | 48 | 49 | 50 | {{ partialCached "cookie-consent.html" . }} 51 | 52 | 53 | 54 | {{ partialCached "adsense-script.html" . }} 55 | 56 | 57 | 58 | {{ partialCached "announcement-script.html" . }} 59 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/essentials/style.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | {{ $pf:= site.Data.theme.fonts.font_family.primary }} 19 | {{ $sf:= site.Data.theme.fonts.font_family.secondary }} 20 | 21 | 22 | 31 | 32 | 33 | {{ $styles := slice }} 34 | {{ $stylesLazy := slice }} 35 | 36 | {{ range site.Params.plugins.css }} 37 | {{ if findRE "^http" .link }} 38 | 44 | {{ else }} 45 | {{ if not .lazy }} 46 | {{ $styles = $styles | append (resources.Get .link) }} 47 | {{ else }} 48 | {{ $stylesLazy = $stylesLazy | append (resources.Get .link) }} 49 | {{ end }} 50 | {{ end }} 51 | {{ end }} 52 | 53 | {{ $mainCSS := resources.Get "css/main.css" }} 54 | {{ $tailwindOpts := dict "inlineImports" true }} 55 | {{ $tailwindCSS := $mainCSS | css.TailwindCSS $tailwindOpts }} 56 | 57 | {{ $styles = $styles | append $tailwindCSS }} 58 | {{ $styles = $styles | resources.Concat "css/style.css" }} 59 | 60 | {{ $stylesLazy = $stylesLazy | resources.Concat "css/style-lazy.css" }} 61 | 62 | {{ if hugo.IsProduction }} 63 | {{ $styles = $styles | minify | fingerprint }} 64 | {{ $stylesLazy = $stylesLazy | minify | fingerprint }} 65 | {{ end }} 66 | 67 | 68 | 69 | 73 | 74 | 75 | 83 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/page-header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
5 |

{{ T (printf "%s" (lower .Title)) | default .Title | title }}

6 | {{ partial "components/breadcrumb" (dict "Context" . "Class" "mt-6") }} 7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/widgets/categories.html: -------------------------------------------------------------------------------- 1 | 2 | {{ if isset site.Taxonomies "categories" }} 3 | {{ if not (eq (len site.Taxonomies.categories) 0) }} 4 |
5 |
{{ T "categories" }}
6 |
7 | 20 |
21 |
22 | {{ end }} 23 | {{ end }} 24 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/widgets/tags.html: -------------------------------------------------------------------------------- 1 | 2 | {{ if isset site.Taxonomies "tags" }} 3 | {{ if not (eq (len site.Taxonomies.tags) 0) }} 4 |
5 |
{{ T "tags" }}
6 |
7 | 20 |
21 |
22 | {{ end }} 23 | {{ end }} 24 | -------------------------------------------------------------------------------- /themes/hugoplate/layouts/partials/widgets/widget-wrapper.html: -------------------------------------------------------------------------------- 1 | {{ range .Widgets }} 2 | {{ partial ( print "widgets/" . ) $.Scope }} 3 | {{ end }} 4 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | # Generated by Wrangler on Sat May 24 2025 22:28:30 GMT+0900 (Japan Standard Time) 2 | name = "fraxinus" 3 | pages_build_output_dir = "public" 4 | compatibility_date = "2021-11-02" 5 | 6 | [vars] 7 | HUGO_VERSION = "0.147.4" 8 | GO_VERSION = "1.24.2" 9 | NODE_VERSION = "22.13.0" 10 | 11 | [env.production.vars] 12 | HUGO_ENV = "production" 13 | HUGO_VERSION = "0.147.4" 14 | GO_VERSION = "1.24.2" 15 | NODE_VERSION = "22.13.0" 16 | --------------------------------------------------------------------------------