diff --git a/lib/routes/index.js b/lib/routes/index.js index c3d76cf..da20c4d 100644 --- a/lib/routes/index.js +++ b/lib/routes/index.js @@ -1,9 +1,10 @@ var config = require("../../config"); var path = require("path"); -var jade = require("jade"); +var read = require("fs").readFileSync; +var ejs = require("ejs"); -// compile jade -var index = jade.compileFile(path.join(__dirname, "..", "views", "index.jade")); +var str = read(path.join(__dirname, "..", "views", "index.html.ejs"), "utf-8"); +var index = ejs.compile(str); module.exports = function(req, callback) { var html = index({ diff --git a/lib/views/index.html.ejs b/lib/views/index.html.ejs new file mode 100644 index 0000000..a105664 --- /dev/null +++ b/lib/views/index.html.ejs @@ -0,0 +1,384 @@ + + + + + Crafatar + + + + + + + + + + + + + + + + +Fork me on GitHub + + +
+
+

Crafatar

+

A blazing fast API for Minecraft faces!

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Documentation

+
+
+

Avatars

Replace + userid with a Mojang UUID or username to get the related head. All images are PNGs. +
<%= domain %>/avatars/ + userid +
+
+

Avatar Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
parametertypedefaultdescription
sizeinteger<%= config.avatars.default_size %>The size of the image in pixels, <%= config.avatars.min_size %> - <%= config.avatars.max_size%>.
defaultstringThe standard value is calculated based on the UUID (even = MHF_Alex, odd = MHF_Steve).
+ Usernames always default to MHF_Steve.
The image to be served when the userid has no skin.
+ Valid options are any userid, including MHF_Steve and MHF_Alex, or a custom URL.
helmnullApply the "second" layer (hat) to the avatar.
+
+
+

Avatar Examples

+
+
+
<%= domain %>/avatars/jeb_
+

Jeb's avatar

+
+
+
<%= domain %>/avatars/jeb_?helm
+

Jeb's avatar with helm

+
+
+
<%= domain %>/avatars/jeb_?size=128
+

Jeb's avatar, 128 × 128

+
+
+
<%= domain %>/avatars/853c80ef3c3749fdaa49938b674adae6
+

Jeb's avatar by UUID

+
+
+
<%= domain %>/avatars/jeb_?default=MHF_Alex
+

Jeb's avatar, or fall back to MHF_Alex (this example assumes jeb_ does not exist)

+
+
+
<%= domain %>/avatars/jeb_?default=https%3A%2F%2Fi.imgur.com%2FocJVWAc.png
+

Jeb's avatar, or fall back to a custom image (this example assumes jeb_ does not exist)

+
+

Hover over the example URLs above for a preview!

+
+
+
+
+
+

3D Renders

+

Crafatar also provides support for 3D renders of Minecraft skins.
+ Please note that this feature is currently beta!
+ Replace + userid with a Mojang UUID or username to get a render of the skin. The head render type returns a render of the skin's head.<%= domain %>/renders/head/useridThe body render returns a render of the entire skin.<%= domain %>/renders/body/userid

+
+

Render Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
parametertypedefaultdescription
scaleinteger<%= config.renders.default_scale %>. The actual size differs between the type of render.The scale factor of the image <%= config.renders.min_scale %> - <%= config.renders.max_scale %>.
helmnullApply the "second" layer (hat) to the avatar.
defaultstringThe standard value is calculated based on the UUID (even = MHF_Alex, odd = MHF_Steve).
+ Usernames always default to MHF_Steve.
The image to be served when the userid has no skin.
+ Valid options are any userid, including MHF_Steve and MHF_Alex, or a custom URL.
+
+
+

Render Examples

+
+
+
<%= domain %>/renders/body/jeb_?helm&scale=4
+

Jeb's body, with helmet, scale 4

+
+
+
<%= domain %>/renders/head/853c80ef3c3749fdaa49938b674adae6?scale=8
+

Jeb's head, by UUID, scale 8

+
+

Hover over the example URLs above for a preview!

+
+
+
+
+
+

Skins

+

You can also get the full skin file of a player.
+ Replace + userid with a Mojang UUID or username to get the related skin.
+ The user's skin is returned, or the default image is served.
+ You can use the default parameter here as well.<%= domain %>/skins/userid

+
+

Skin Parameters

+ + + + + + + + + + + + + + + + + +
parametertypedefaultdescription
defaultstringThe standard value is calculated based on the UUID (even = MHF_Alex, odd = MHF_Steve).
+ Usernames always default to MHF_Steve.
The image to be served when the userid has no skin.
+ Valid options are any userid, including MHF_Steve and MHF_Alex, or a custom URL.
+
+
+

Skin Examples

+
+
+
<%= domain %>/skins/jeb_
+

Jeb's skin

+
+
+
<%= domain %>/skins/jeb_?default=MHF_Alex
+

Jeb's skin, or fall back to MHF_Alex (this example assumes jeb_ does not exist)

+
+

Hover over the example URLs above for a preview!

+
+
+
+
+
+

Capes

+

A cape endpoint is also available to get the active cape of a user.
+ Replace + userid with a Mojang UUID or username to get the related cape.
+ The user's cape is returned, otherwise a 404 is returned.
+

<%= domain %>/capes/ + userid +
+

+
+

Cape Examples

+
+
+
<%= domain %>/capes/Dinnerbone
+

Dinnerbone's Cape Mojang capes are not transparent...

+
+
+
<%= domain %>/capes/md_5
+

md_5's Cape

+
+

Hover over the example URLs above for a preview!

+
+
+
+
+
+

Meta

+
+

CORS

+

Crafatar supports CORS so you can make AJAX request from within the browser!

+
+
+

HTTP Headers

+

Responses come with these HTTP headers, useful for debugging.
+ Please note that these headers are cached by CloudFlare (CF-Cache-Status: HIT).

+
+

Response-Time

+

The time, in milliseconds, it took Crafatar to process the request.

+
+
+

X-Storage-Type

+

Details about how the requested image was stored on the server

+
    +
  • none: No external requests. Cached: User has no skin.
  • +
  • cached: No external requests. Skin cached and stored locally.
  • +
  • checked: 1 external request. Skin cached, checked for updates, no skin downloaded.
    + This happens either when the user removed their skin or when it didn't change.
  • +
  • downloaded: 2 external requests. First request or skin changed, skin downloaded.
  • +
  • server error: This can happen, for example, when Mojang's servers are down.
    + If possible, a cached image is served instead.
  • +
  • user error: You have done something wrong, such as requesting a malformed userid.
    + Check the response body for details.
  • +
+
+
+

X-Request-ID

+

The internal ID assigned to this request.
+ If you think something is wrong with your request, please contact us and provide this ID.

+
+
+
+

About Usernames

+

We strongly advise you to use UUIDs instead of usernames in production.
+ Usernames are deprecated by Mojang and you should only use usernames for testing.
+ You don't have to change anything when using UUIDs and someone changes their Username.
+ Malformed usernames are rejected.

+
+
+

About UUIDs

+

UUIDs may use the blank or dashed format.
+ Malformed UUIDs are rejected.

+
+
+

About Caching

+

Crafatar caches skins for <%= config.caching.local / 60 %> minutes before checking for skin changes.
+ Images are cached in your browser for <%= config.caching.browser / 60 %> minutes until a new request to Crafatar is made.
+ When you changed your skin you can try clearing your browser cache to see the change faster.

+
+
+
+

Contact

+ +
+
+
+ +
+ preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + preloaded image + + \ No newline at end of file diff --git a/lib/views/index.jade b/lib/views/index.jade deleted file mode 100644 index 487feb6..0000000 --- a/lib/views/index.jade +++ /dev/null @@ -1,410 +0,0 @@ -extends layout - -block content - .jumbotron - .container - h1 Crafatar - p A blazing fast API for Minecraft faces! - .avatar-wrapper - .avatar.jomo(title="jomo's avatar") - .avatar.jake_0(title="jake_0's avatar") - .avatar.sk89q(title="sk89q's avatar") - .avatar.md_5(title="md_5's avatar") - .avatar.notch(title="notch's avatar") - .avatar.jeb(title="jeb's avatar") - .avatar.dinnerbone.flipped(title="dinnerbone's avatar") - .avatar.ez(title="ez' avatar") - .avatar.grumm.flipped(title="grumm's avatar") - .avatar.themogmimer(title="themogmimer's avatar") - .avatar.searge(title="searge's avatar") - .avatar.xlson(title="xlson's avatar") - .avatar.krisjelbring(title="krisjelbring's avatar") - .avatar.minecraftchick(title="minecraftchick's avatar") - .avatar.kappe(title="kappe's avatar") - .avatar.marc(title="marc's avatar") - .avatar.mollstam(title="mollstam's avatar") - .avatar.evilseph(title="evilseph's avatar") - .avatar.thinkofdeath(title="thinkofdeath's avatar") - - .container - section(id="documentation") - h2 Documentation - .row - section - a(id="avatars", class="anchor") - a(href="#avatars") - h3 Avatars - | Replace - mark.green userid - | with a Mojang UUID or username to get the related head. All images are PNGs. - .code - | #{domain}/avatars/ - mark.green userid - - section - a(id="avatar-parameters" class="anchor") - a(href="#avatar-parameters") - h4 Avatar Parameters - table(class="table table-striped") - thead - tr - td parameter - td type - td default - td description - tbody - tr - td size - td integer - td #{config.avatars.default_size} - td The size of the image in pixels, #{config.avatars.min_size} - #{config.avatars.max_size}. - tr - td default - td string - td - | The standard value is calculated based on the UUID (even = MHF_Alex, odd = MHF_Steve).
- | Usernames always default to MHF_Steve. - td - | The image to be served when the userid has no skin.
- | Valid options are any userid, including - a(href="/avatars/0?default=MHF_Steve") MHF_Steve - | and - a(href="/avatars/0?default=MHF_Alex") MHF_Alex - | , or a custom URL. - tr - td helm - td null - td - td Apply the "second" layer (hat) to the avatar. - - section - a(id="avatar-examples", class="anchor") - a(href="#avatar-examples") - h4 Avatar Examples - .code - #avatar-example-1.example-wrapper - .example #{domain}/avatars/jeb_ - p.preview Jeb's avatar - #avatar-example-2.example-wrapper - .example #{domain}/avatars/jeb_?helm - p.preview Jeb's avatar with helm - #avatar-example-3.example-wrapper - .example #{domain}/avatars/jeb_?size=128 - p.preview Jeb's avatar, 128 × 128 - #avatar-example-4.example-wrapper - .example #{domain}/avatars/853c80ef3c3749fdaa49938b674adae6 - p.preview Jeb's avatar by UUID - #avatar-example-5.example-wrapper - .example #{domain}/avatars/jeb_?default=MHF_Alex - p.preview Jeb's avatar, or fall back to MHF_Alex (this example assumes jeb_ does not exist) - #avatar-example-6.example-wrapper - .example #{domain}/avatars/jeb_?default=https%3A%2F%2Fi.imgur.com%2FocJVWAc.png - p.preview - | Jeb's avatar, or fall back to a custom image (this example assumes jeb_ does not exist) - p.preview-placeholder - | Hover over the example URLs above for a preview! - .preview-background - - - section - a(id="renders" class="anchor") - a(href="#renders") - h3 3D Renders - p - | Crafatar also provides support for 3D renders of Minecraft skins.
- | Please note that this feature is currently beta!
- | Replace - mark.green userid - | with a Mojang UUID or username to get a render of the skin. - | The head render type returns a render of the skin's head. - span.code - | #{domain}/renders/head/ - mark.green userid - | The body render returns a render of the entire skin. - span.code - | #{domain}/renders/body/ - mark.green userid - - section - a(id="render-parameters" class="anchor") - a(href="#render-parameters") - h4 Render Parameters - table(class="table table-striped") - thead - tr - td parameter - td type - td default - td description - tbody - tr - td scale - td integer - td #{config.renders.default_scale}. The actual size differs between the type of render. - td The scale factor of the image #{config.renders.min_scale} - #{config.renders.max_scale}. - tr - td helm - td null - td - td Apply the "second" layer (hat) to the avatar. - tr - td default - td string - td - | The standard value is calculated based on the UUID (even = MHF_Alex, odd = MHF_Steve).
- | Usernames always default to MHF_Steve. - td - | The image to be served when the userid has no skin.
- | Valid options are any userid, including - a(href="/renders/body/0?default=MHF_Steve") MHF_Steve - | and - a(href="/renders/body/0?default=MHF_Alex") MHF_Alex - | , or a custom URL. - - section - a(id="render-examples", class="anchor") - a(href="#render-examples") - h4 Render Examples - .code - #render-example-1.example-wrapper - .example #{domain}/renders/body/jeb_?helm&scale=4 - p.preview Jeb's body, with helmet, scale 4 - #render-example-2.example-wrapper - .example #{domain}/renders/head/853c80ef3c3749fdaa49938b674adae6?scale=8 - p.preview Jeb's head, by UUID, scale 8 - p.preview-placeholder - | Hover over the example URLs above for a preview! - .preview-background - - - section - a(id="skins" class="anchor") - a(href="#skins") - h3 Skins - p - | You can also get the full skin file of a player.
- | Replace - mark.green userid - | with a Mojang UUID or username to get the related skin.
- | The user's skin is returned, or the default image is served.
- | You can use the default parameter here as well. - span.code - | #{domain}/skins/ - mark.green userid - - section - a(id="skin-parameters" class="anchor") - a(href="#skin-parameters") - h4 Skin Parameters - table(class="table table-striped") - thead - tr - td parameter - td type - td default - td description - tbody - tr - td default - td string - td - | The standard value is calculated based on the UUID (even = MHF_Alex, odd = MHF_Steve).
- | Usernames always default to MHF_Steve. - td - | The image to be served when the userid has no skin.
- | Valid options are any userid, including - a(href="/skins/0?default=MHF_Steve") MHF_Steve - | and - a(href="/skins/0?default=MHF_Alex") MHF_Alex - | , or a custom URL. - - section - a(id="skin-examples", class="anchor") - a(href="#skin-examples") - h4 Skin Examples - .code - #skin-example-1.example-wrapper - .example #{domain}/skins/jeb_ - p.preview Jeb's skin - #skin-example-2.example-wrapper - .example #{domain}/skins/jeb_?default=MHF_Alex - p.preview Jeb's skin, or fall back to MHF_Alex (this example assumes jeb_ does not exist) - p.preview-placeholder - | Hover over the example URLs above for a preview! - .preview-background - - section - a(id="capes" class="anchor") - a(href="#capes") - h3 Capes - p - | A cape endpoint is also available to get the active cape of a user.
- | Replace - mark.green userid - | with a Mojang UUID or username to get the related cape.
- | The user's cape is returned, otherwise a 404 is returned.
- .code - | #{domain}/capes/ - mark.green userid - - section - a(id="cape-examples", class="anchor") - a(href="#cape-examples") - h4 Cape Examples - .code - #cape-example-1.example-wrapper - .example #{domain}/capes/Dinnerbone - p.preview Dinnerbone's Cape Mojang capes are not transparent... - #cape-example-2.example-wrapper - .example #{domain}/capes/md_5 - p.preview md_5's Cape - p.preview-placeholder - | Hover over the example URLs above for a preview! - .preview-background - - section - a(id="meta" class="anchor") - a(href="#meta") - h2 Meta - - section - a(id="meta-cors" class="anchor") - a(href="#meta-cors") - h3 CORS - p - | Crafatar supports CORS so you can make AJAX request from within the browser! - - section - a(id="meta-http-headers" class="anchor") - a(href="#meta-http-headers") - h3 HTTP Headers - p - | Responses come with these HTTP headers, useful for debugging.
- | Please note that these headers are cached by CloudFlare (CF-Cache-Status: HIT). - - section - a(id="meta-response-time" class="anchor") - a(href="#meta-response-time") - h4 Response-Time - p The time, in milliseconds, it took Crafatar to process the request. - - section - a(id="meta-x-storage-type" class="anchor") - a(href="#meta-x-storage-type") - h4 X-Storage-Type - p Details about how the requested image was stored on the server - ul - li none: No external requests. Cached: User has no skin. - li cached: No external requests. Skin cached and stored locally. - li - | checked: 1 external request. Skin cached, checked for updates, no skin downloaded.
- | This happens either when the user removed their skin or when it didn't change. - li downloaded: 2 external requests. First request or skin changed, skin downloaded. - li - | server error: This can happen, for example, when Mojang's servers are down.
- | If possible, a cached image is served instead. - li - | user error: You have done something wrong, such as requesting a malformed userid.
- | Check the response body for details. - section - a(id="meta-x-request-id" class="anchor") - a(href="#meta-x-request-id") - h4 X-Request-ID - p - | The internal ID assigned to this request.
- | If you think something is wrong with your request, please contact us and provide this ID. - - section - a(id="meta-about-usernames" class="anchor") - a(href="#meta-about-usernames") - h3 About Usernames - p - | We strongly advise you to use UUIDs instead of usernames in production.
- | Usernames are deprecated by Mojang and you should only use usernames for testing.
- | You don't have to change anything when using UUIDs and someone changes their Username.
- | Malformed usernames are rejected. - - section - a(id="meta-about-uuids" class="anchor") - a(href="#meta-about-uuids") - h3 About UUIDs - p - | UUIDs may use the blank or dashed format.
- | Malformed UUIDs are rejected. - - section - a(id="meta-about-caching" class="anchor") - a(href="#meta-about-caching") - h3 About Caching - p - | Crafatar caches skins for #{config.caching.local/60} minutes before checking for skin changes.
- | Images are cached in your browser for #{config.caching.browser/60} minutes until a new request to Crafatar is made.
- | When you changed your skin you can try clearing your browser cache to see the change faster. - - - section - a(id="contact" class="anchor") - a(href="#contact") - h2 Contact - ul - li Follow us on twitter @crafatar - li Open an issue on GitHub - li Join us in #crafatar on irc.esper.net - - footer - hr - p(class="pull-right") Copyright Crafatar #{new Date().getFullYear()} - - - // preload hover images - img.preload(src="/avatars/020242a17b9441799eff511eea1221da?size=64", alt="preloaded image") - img.preload(src="/avatars/020242a17b9441799eff511eea1221da?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/069a79f444e94726a5befca90e38aaf5?size=64", alt="preloaded image") - img.preload(src="/avatars/0?default=MHF_Alex", alt="preloaded image") - img.preload(src="/avatars/0?default=https%3A%2F%2Fi.imgur.com%2FocJVWAc.png", alt="preloaded image") - img.preload(src="/avatars/0ea8eca3dbf647cc9d1ac64551ca975c?size=64", alt="preloaded image") - img.preload(src="/avatars/0ea8eca3dbf647cc9d1ac64551ca975c?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/1c1bd09a6a0f4928a7914102a35d2670?size=64", alt="preloaded image") - img.preload(src="/avatars/1c1bd09a6a0f4928a7914102a35d2670?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/2d5aa9cdaeb049189930461fc9b91cc5?size=64", alt="preloaded image") - img.preload(src="/avatars/2d5aa9cdaeb049189930461fc9b91cc5?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/4566e69fc90748ee8d71d7ba5aa00d20?size=64", alt="preloaded image") - img.preload(src="/avatars/4566e69fc90748ee8d71d7ba5aa00d20?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/61699b2ed3274a019f1e0ea8c3f06bc6?size=64", alt="preloaded image") - img.preload(src="/avatars/61699b2ed3274a019f1e0ea8c3f06bc6?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/696a82ce41f44b51aa31b8709b8686f0?size=64", alt="preloaded image") - img.preload(src="/avatars/696a82ce41f44b51aa31b8709b8686f0?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/7125ba8b1c864508b92bb5c042ccfe2b?size=64", alt="preloaded image") - img.preload(src="/avatars/7125ba8b1c864508b92bb5c042ccfe2b?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/7d043c7389524696bfba571c05b6aec0?size=64", alt="preloaded image") - img.preload(src="/avatars/7d043c7389524696bfba571c05b6aec0?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/853c80ef3c3749fdaa49938b674adae6", alt="preloaded image") - img.preload(src="/avatars/853c80ef3c3749fdaa49938b674adae6?size=64", alt="preloaded image") - img.preload(src="/avatars/853c80ef3c3749fdaa49938b674adae6?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/9769ecf6331448f3ace67ae06cec64a3?size=64", alt="preloaded image") - img.preload(src="/avatars/9769ecf6331448f3ace67ae06cec64a3?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/ae795aa86327408e92ab25c8a59f3ba1?size=64", alt="preloaded image") - img.preload(src="/avatars/ae795aa86327408e92ab25c8a59f3ba1?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/af74a02d19cb445bb07f6866a861f783?size=64", alt="preloaded image") - img.preload(src="/avatars/af74a02d19cb445bb07f6866a861f783?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/b05881186e75410db2db4d3066b223f7?size=64", alt="preloaded image") - img.preload(src="/avatars/b05881186e75410db2db4d3066b223f7?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/b9583ca43e64488a9c8c4ab27e482255?size=64", alt="preloaded image") - img.preload(src="/avatars/b9583ca43e64488a9c8c4ab27e482255?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/c9b54008fd8047428b238787b5f2401c?size=64", alt="preloaded image") - img.preload(src="/avatars/c9b54008fd8047428b238787b5f2401c?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/d8f9a4340f2d415f9acfcd70341c75ec?size=64", alt="preloaded image") - img.preload(src="/avatars/d8f9a4340f2d415f9acfcd70341c75ec?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/e6b5c088068044df9e1b9bf11792291b?size=64", alt="preloaded image") - img.preload(src="/avatars/e6b5c088068044df9e1b9bf11792291b?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/f8cdb6839e9043eea81939f85d9c5d69?size=64", alt="preloaded image") - img.preload(src="/avatars/f8cdb6839e9043eea81939f85d9c5d69?size=64&helm", alt="preloaded image") - img.preload(src="/avatars/jeb_", alt="preloaded image") - img.preload(src="/avatars/jeb_?helm", alt="preloaded image") - img.preload(src="/avatars/jeb_?size=128", alt="preloaded image") - img.preload(src="/capes/Dinnerbone", alt="preloaded image") - img.preload(src="/capes/md_5", alt="preloaded image") - img.preload(src="/renders/body/jeb_?helm&scale=4", alt="preloaded image") - img.preload(src="/renders/head/853c80ef3c3749fdaa49938b674adae6?scale=8", alt="preloaded image") - img.preload(src="/skins/0?default=MHF_Alex", alt="preloaded image") - img.preload(src="/skins/jeb_", alt="preloaded image") \ No newline at end of file diff --git a/lib/views/layout.jade b/lib/views/layout.jade deleted file mode 100644 index 0eef6f8..0000000 --- a/lib/views/layout.jade +++ /dev/null @@ -1,31 +0,0 @@ -doctype html -html(lang="en") - head - title= title - link(rel="icon", sizes="16x16", type="image/png", href="/favicon.png") - link(href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/css/bootstrap.min.css", rel="stylesheet") - link(rel="stylesheet", href="/stylesheets/style.css") - - meta(name="description", content="Crafatar is a blazing fast Minecraft avatar API with support for avatars, skins, and even 3D renders!") - meta(name="keywords", content="minecraft, avatar, renders, skins, uuid, username") - meta(name="viewport", content="initial-scale=1,maximum-scale=1") - - meta(charset='utf-8') - meta(property='og:title', content='Crafatar') - meta(property='og:type', content='website') - meta(property='og:url', content='https://crafatar.com') - meta(property='og:image', content='https://crafatar.com/logo.png') - meta(property='og:description', content='A blazing fast Minecraft avatar API with support for avatars, skins, and 3D renders.') - - meta(name='twitter:card', content='summary') - meta(name='twitter:creator', content='@Crafatar') - body - a.forkme(href="https://github.com/crafatar/crafatar", target="_blank") Fork me on GitHub - a.sponsor(href="https://akliz.net/crafatar", target="_blank", title="Crafatar is sponsored by Akliz") - img(src="/images/akliz.png", alt="Akliz") - .navbar.navbar-default.navbar-fixed-top - .container - .navbar-header - a.navbar-brand(href="/") Crafatar - a.navbar-brand.twitter(href="https://twitter.com/Crafatar", target="_blank") crafatar - block content \ No newline at end of file diff --git a/package.json b/package.json index b1a35ca..8bb2adb 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,14 @@ "private": true, "description": "A blazing fast API for Minecraft faces!", "contributors": [ - { "name": "jomo", "url": "https://github.com/jomo"}, - { "name": "Jake", "url": "https://github.com/Jake0oo0"} + { + "name": "jomo", + "url": "https://github.com/jomo" + }, + { + "name": "Jake", + "url": "https://github.com/Jake0oo0" + } ], "repository": { "type": "git", @@ -30,7 +36,7 @@ "dependencies": { "canvas": "^1.2.9", "crc": "~3.3.0", - "jade": "~1.11.0", + "ejs": "^2.3.4", "lwip": "~0.0.7", "mime": "~1.3.4", "node-df": "crafatar/node-df",