Migrate to Chi router and add Norwegian Devigo demo

Major improvements:
- Replace Gorilla Mux with Chi v5 router for better performance and cleaner code
- Fix CSS/JS MIME type issues that prevented proper asset loading
- Add built-in CORS middleware replacing manual OPTIONS handlers
- Simplify routing with nested route syntax
- Update URL parameter extraction from mux.Vars to chi.URLParam

New Devigo demo:
- Add production Norwegian sales training website (devigo.no)
- Real-world Hugo-generated content with TailwindCSS
- 39 insertr-enhanced elements for comprehensive CMS testing
- Demonstrates international language support and B2B use cases
- Fixed asset paths for localhost serving compatibility

Technical benefits:
- Automatic MIME type detection for static files
- Reduced code complexity with built-in middleware
- Better performance with lighter dependency stack
- Production-ready CORS handling
This commit is contained in:
2025-09-17 13:34:36 +02:00
parent 12c6ec8048
commit cd202ebb1d
87 changed files with 7737 additions and 71 deletions

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="292.56464"
height="227.457"
viewBox="0 0 292.56463 227.457"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:export-filename="rustan_logo.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="crown_logo.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
inkscape:export-bgcolor="#ffffffff"
inkscape:zoom="0.70710678"
inkscape:cx="-62.225397"
inkscape:cy="4.2426407"
inkscape:window-width="2048"
inkscape:window-height="1084"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
showgrid="false"
showborder="false" /><defs
id="defs1"><linearGradient
id="linearGradient27"
inkscape:collect="always"
inkscape:label="rustan"><stop
style="stop-color:#fdbe00;stop-opacity:0.60326397;"
offset="0"
id="stop24" /><stop
style="stop-color:#ffbf00;stop-opacity:1;"
offset="0.24895304"
id="stop25" /><stop
style="stop-color:#ffbf00;stop-opacity:1;"
offset="0.74559295"
id="stop26" /><stop
style="stop-color:#ffbf00;stop-opacity:0.5;"
offset="1"
id="stop27" /></linearGradient><linearGradient
id="linearGradient14"
inkscape:swatch="gradient"><stop
style="stop-color:#99a024;stop-opacity:1;"
offset="0"
id="stop15" /><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0.59368014"
id="stop14" /></linearGradient><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath5"><rect
style="fill:none;stroke-width:27.5398;stroke-dasharray:none"
id="rect6"
width="90.332893"
height="74.599762"
x="361.33157"
y="112.42998"
ry="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath12"><rect
style="opacity:0.73;fill:#808080;stroke:none;stroke-width:25.8093;stroke-dasharray:none"
id="rect13"
width="110.44633"
height="80.25853"
x="-312.28189"
y="182.2175"
ry="8.3687115" /></clipPath><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient27"
id="linearGradient24"
x1="-296.4393"
y1="221.15575"
x2="-212.80244"
y2="221.15575"
gradientUnits="userSpaceOnUse" /></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-233.902,-270.86589)"><path
style="fill:url(#linearGradient24)"
d="m -285.14661,253.06175 c 0,-3.27597 -3.01679,-8.21941 -4.76202,-12.59971 -2.09864,-4.37784 -3.70203,-9.01442 -4.72242,-13.81898 -0.60695,-3.61222 -4.04453,-10.73727 0.53578,-11.80999 4.39319,1.1031 7.94714,4.26038 12.04436,6.12662 3.23761,2.23586 7.28439,5.57271 9.58711,7.10235 l 2.19312,1.22999 c 0.94505,-3.41336 1.56239,-5.61217 2.03457,-7.61507 0.46237,-1.91352 2.18619,-8.26566 2.60743,-9.89224 0.48344,-2.43766 1.55082,-6.8614 1.9827,-9.00938 0.45042,-1.60014 0.84935,-3.58747 1.36445,-5.88457 0.5294,-1.53773 1.45063,-5.29604 2.72265,-6.4671 2.3941,-5.13058 5.24471,2.37821 5.65585,3.20575 0.49247,1.10188 1.0787,2.30588 1.55864,3.2392 0.129,0.18389 1.52579,3.57929 2.06874,4.65835 1.80839,4.10212 2.34489,5.50629 3.80329,9.92734 1.75167,2.66332 2.72647,8.53905 6.02661,6.00401 2.60713,-3.31457 4.9425,-5.93137 6.91298,-9.09058 2.81888,-3.23294 5.13654,-6.87355 7.95219,-10.07102 4.62049,-3.19468 5.16556,3.82876 6.17581,7.08622 0.99604,4.2703 1.10667,8.76081 1.92175,13.23669 0.53491,5.0654 1.75127,10.02016 3.11885,14.78118 1.129,3.773 2.20003,10.6979 1.10215,12.93656 -0.36642,0.87934 -2.73644,0.90542 -4.09891,1.05545 -4.33279,0.37052 -8.15208,0.94811 -13.01617,1.42118 -4.40499,0.42921 -5.9455,0.65948 -10.4286,1.19674 -11.72768,1.32284 -23.15617,2.1081 -34.74205,3.01013 -2.51895,0.1617 -7.62257,1.34582 -9.59886,0.0409 z m 5.03152,-3.26226 c 11.08849,-1.70872 22.18972,-3.41198 33.33236,-4.74198 7.62422,-0.74035 18.25589,-2.01424 22.85825,-2.13216 3.9747,0.16043 7.19121,-1.50003 4.97687,-5.98385 -2.19519,-6.87738 -2.7663,-14.12638 -4.58023,-21.06207 -0.50507,-2.70443 -0.49206,-10.5095 -4.14677,-5.58974 -2.45504,3.80109 -3.0458,4.44603 -6.09738,7.88954 -1.74227,2.11665 -5.82616,6.41192 -7.33745,7.76015 -1.37734,0.16306 -1.92548,0.0561 -2.8222,-0.55657 -3.9649,-2.27742 -5.93118,-7.65699 -7.46841,-11.23906 -2.17324,-4.06097 -2.53871,-8.43502 -5.31935,-10.86376 -2.77523,3.30344 -2.66424,9.07644 -4.15346,13.39454 -0.83944,4.24038 -2.84075,14.21058 -4.4011,18.24591 -1.58738,2.43263 -3.45634,1.62575 -6.23643,-0.0256 -0.99945,-0.68547 -7.72789,-5.49139 -11.97481,-8.01831 -7.6852,-5.3216 -6.10656,-3.74361 -5.65029,-0.88398 0.10492,0.81241 0.44397,3.1353 1.54425,5.46866 0.32584,1.86517 2.59789,8.26471 3.31218,9.6252 0.83241,2.28532 2.21293,6.80295 4.16397,8.71311 z"
id="path7"
clip-path="url(#clipPath12)"
sodipodi:nodetypes="sccccccccccccccccccccccccccsscccccccccccccccccccc"
transform="matrix(3.4980348,0,0,3.4980348,1270.857,-389.01634)" /></g></svg>

After

Width:  |  Height:  |  Size: 5.7 KiB