Import the pebble dev site into devsite/

This commit is contained in:
Katharine Berry 2025-02-17 17:02:33 -08:00
parent 3b92768480
commit 527858cf4c
1359 changed files with 265431 additions and 0 deletions

View file

@ -0,0 +1,28 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: blog/master
---
<h1 class="pagetitle pagetitle--skinny">
<a href="/blog/">Pebble Developer Blog</a>
</h1>
<h2 class="pagesubtitle">{{ page.author_name }}</h2>
<div class="blog-index">
{% assign posts = page.posts | sort: 'date' %}
{% for post in posts reversed %}
{% include blog/index-post.html post=post %}
{% endfor %}
</div>

View file

@ -0,0 +1,81 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: default
menu_section: blog
---
<div class="container">
<div class="row">
<div class="col-l-8">
{% include utils/toc_small.html toc=page.toc %}
<div class="hidden-l">
{% include blog/buttons.html %}
</div>
{{ content }}
</div>
<div class="col-l-4">
<div class="gray-box gray-box--fixed gray-box--scrollspy">
{% include blog/buttons.html %}
{% include utils/toc_large.html toc=page.toc %}
<h3>Categories</h3>
<ul>
<li>
<a href="{{ site.baseurl }}/blog/">
{% if page.tag == "all" %}
<strong>All Posts</strong>
{% else %}
All Posts
{% endif %}
</a>
</li>
{% assign sorted_tags = site.tags | hash_sort %}
{% for tag in sorted_tags %}
<li>
<a href="{{ site.baseurl }}/blog/tags/{{ tag | first | slugize }}/">
{% if page.tags contains tag[0] or page.tag == tag[0] %}
<strong>{{ tag[0] }}</strong>
{% else %}
{{ tag[0] }}
{% endif %}
</a>
</li>
{% endfor %}
</ul>
<h3>Authors</h3>
<ul>
{% assign sorted_authors = site.data.authors | hash_sort: 'num_posts' %}
{% for author in sorted_authors reversed %}
<li>
<a href="{{ site.baseurl }}/blog/authors/{{ author | first | slugize }}/">
{% if author[0] == page.author %}
<strong>{{ author[1].name }}</strong>
{% else %}
{{ author[1].name }}
{% endif %}
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
<div id="modal-newsletter" class="hidden">
{% include blog/newsletter.html %}
</div>

View file

@ -0,0 +1,31 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: blog/master
---
<h1 class="pagetitle">{{ page.title }}</h1>
<div class="markdown markdown--staff">
{% include blog/meta.html post=page %}
{% if page.banner %}
<p><img src="{{ page.banner | assetify }}"></p>
{% endif %}
{{ content }}
<hr>
<a id="comments" class="anchor"></a>
<div id="disqus_thread" aria-live="polite" data-post-url="https://developer.getpebble.com{{ page.url }}">
You need JavaScript enabled to read and post comments.
</div>
</div>

View file

@ -0,0 +1,28 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: blog/master
---
<h1 class="pagetitle pagetitle--skinny">
<a href="/blog/">Pebble Developer Blog</a>
</h1>
<h2 class="pagesubtitle">{{ page.tag }}</h2>
<div class="blog-index">
{% assign posts = page.posts | sort: 'date' %}
{% for post in posts reversed %}
{% include blog/index-post.html post=post %}
{% endfor %}
</div>

View file

@ -0,0 +1,24 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sidebar_narrow
sidebar_only: true
---
</div><!-- sidebar__wrapper -->
<div class="content">
{% include search.html %}
{{ content }}
</div>

View file

@ -0,0 +1,85 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sidebar_narrow
menu_section: docs
search_primary: docs
---
<div class="section-menu section-menu--docs section-menu--dark">
<div class="section-menu__header">
{% case page.docs_language %}
{% when 'c' %}
<h3><a href="/docs/c/">Pebble C API</a><a href="#"><i class="fa fa-chevron-down fa-lg documentation-menu__arrow js-doc-menu-toggle"></i></a></h3>
{% when 'c_preview' %}
<h3><a href="/docs/c/preview/">Pebble C API (SDK 4 Preview)</a><a href="#"><i class="fa fa-chevron-down fa-lg documentation-menu__arrow js-doc-menu-toggle"></i></a></h3>
{% when 'rockyjs' %}
<h3><a href="/docs/rockyjs/">Pebble JavaScript API</a><a href="#"><i class="fa fa-chevron-down fa-lg documentation-menu__arrow js-doc-menu-toggle"></i></a></h3>
{% when 'pebblekit_js' %}
<h3><a href="/docs/pebblekit-js/">PebbleKit JS</a><a href="#"><i class="fa fa-chevron-down fa-lg documentation-menu__arrow js-doc-menu-toggle"></i></a></h3>
{% when 'pebblekit_ios' %}
<h3><a href="/docs/pebblekit-ios/">PebbleKit iOS</a><a href="#"><i class="fa fa-chevron-down fa-lg documentation-menu__arrow js-doc-menu-toggle"></i></a></h3>
{% when 'pebblekit_android' %}
<h3><a href="/docs/pebblekit-android/">PebbleKit Android</a><a href="#"><i class="fa fa-chevron-down fa-lg documentation-menu__arrow js-doc-menu-toggle"></i></a></h3>
{% else %}
<h3><a href="/docs/">Documentation</a></h3>
{% endcase %}
<ul class="documentation-menu js-doc-menu">
<li><a href="/docs/c/">Pebble C API</a></li>
{% if site.data.docs_tree.c_preview %}
<li><a href="/docs/c/preview/">Pebble C API (preview)</a></li>
{% endif %}
<li><a href="/docs/rockyjs/">Pebble JavaScript API</a></li>
<li><a href="/docs/pebblekit-js/">PebbleKit JS</a></li>
<li><a href="/docs/pebblekit-ios/">PebbleKit iOS</a></li>
<li><a href="/docs/pebblekit-android/">PebbleKit Android</a></li>
</ul>
</div>
{% case page.docs_language %}
{% when 'c' %}
{% include docs/menu.html tree=site.data.docs_tree.c group=page.group %}
{% when 'c_preview' %}
{% include docs/menu.html tree=site.data.docs_tree.c_preview group=page.group %}
{% when 'rockyjs' %}
{% include docs/menu.html tree=site.data.docs_tree.rockyjs group=page.js_module %}
{% when 'pebblekit_js' %}
{% include docs/menu.html tree=site.data.docs_tree.pebblekit_js group=page.js_module %}
{% when 'pebblekit_ios' %}
{% include docs/menu.html tree=site.data.docs_tree.pebblekit_ios group=page.group %}
{% when 'pebblekit_android' %}
{% include docs/menu.html tree=site.data.docs_tree.pebblekit_android group=page.group %}
{% else %}
<ul>
<li class="section-menu__item"><a href="/docs/c/">Pebble C API</a></li>
{% if site.data.docs_tree.c_preview %}
<li class="section-menu__item"><a href="/docs/c/preview/">Pebble C API (preview)</a></li>
{% endif %}
<li class="section-menu__item"><a href="/docs/rockyjs/">Pebble JavaScript API</a></li>
<li class="section-menu__item"><a href="/docs/pebblekit-js/">PebbleKit JS</a></li>
<li class="section-menu__item"><a href="/docs/pebblekit-ios/">PebbleKit iOS</a></li>
<li class="section-menu__item"><a href="/docs/pebblekit-android/">PebbleKit Android</a></li>
<!--
<li class="section-menu__item"><a href="/docs/web-timeline/">Timeline Web API</a></li>
<li class="section-menu__item"><a href="/docs/web-appglance/">AppGlance Web API</a></li>
-->
</ul>
{% endcase %}
</div>
</div><!-- sidebar__wrapper -->
<div class="content content--section-menu">
{% include search.html %}
<div class="container">
{{ content }}
</div>
</div>

View file

@ -0,0 +1,243 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: docs
docs_language: c
scripts:
- docs/c
---
<div class="visible-m visible-s visible-xs row">
<div class="col-xs-11">
<div class="form__group">
<div class="select-style no-label">
<select class="js-toc-select">
<option value="">Jump to item&hellip;</option>
{% include docs/shared/select-list.html title="Modules" anchor="modules" items=page.group.groups %}
{% include docs/shared/select-list.html title="Functions" anchor="functions" items=page.group.functions %}
{% include docs/shared/select-list.html title="Data Structures" anchor="structs" items=page.group.structs %}
{% include docs/shared/select-list.html title="Unions" anchor="unions" items=page.group.unions %}
{% include docs/shared/select-list.html title="Enums" anchor="enums" items=page.group.enums %}
{% include docs/shared/select-list.html title="Typedefs" anchor="typedefs" items=page.group.typedefs %}
{% include docs/shared/select-list.html title="Macro Defintions" anchor="defines" items=page.group.defines %}
</select>
</div>
</div>
</div>
<div class="col-xs-1">
<a href="javascript:void(0)" class="btn btn--wide btn--bg-green btn--fg-white fa-lg" data-modal-target="#modal-docs-help" data-modal-fit-viewport="false"><i class="fa fa-question-circle"></i></a>
</div>
</div>
<div class="row">
<div class="col-l-8">
<div class="documentation documentation__c">
{% if page.group.basalt_only %}
<div class="alert alert--bg-lightblue alert--fg-white" >
<p>The APIs on this page will only work with SDK 3.x.</p>
</div>
{% endif %}
{% if_starts_with page.path 'docs/c/preview/' %}
{% include docs/c/preview.html %}
{% endif_starts_with %}
<h1 class="pagetitle">{{ page.title }}</h1>
{{ page.group.summary }}
{{ page.group.description }}
{% include docs/c/elements/note.html data=page.group.data %}
{% include docs/c/elements/see.html data=page.group.data %}
{% if page.group.groups.size > 0 %}
<h2 class="anchor" id="modules">Modules</h2>
{% for group in page.group.groups %}
<div class="docs__module">
<h4><a href="{{ group.url }}">{{ group.name }}</a></h4>
{% if group.summary.size > 0 %}
{{ group.summary }}
{% else %}
<p>&nbsp;</p>
{% endif %}
</div>
{% endfor %}
{% endif %}
{% if page.group.functions.size > 0 %}
<h2 class="anchor" id="functions">Function<span class="hidden-s hidden-xs"> Documentation</span></h2>
{% for function in page.group.functions %}
<div class="docs__item__anchor" id="{{ function.name }}">
{% if function.uniform %}
{% include docs/c/function.html function=function platform='basalt' %}
{% else %}
{% include docs/c/elements/tabs.html %}
{% for platform in page.platforms %}
{% if function.platforms contains platform %}
<section data-platform="{{ platform }}">
{% include docs/c/function.html function=function platform=platform %}
</section>
{% else %}
{% include docs/c/elements/missing.html platform=platform name=function.name type='function' %}
{% endif %}
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% endif %}
{% if page.group.structs.size > 0 %}
<h2 class="anchor" id="structs">Data Structure<span class="hidden-s hidden-xs"> Documentation</span></h2>
{% for struct in page.group.structs %}
<div class="docs__item__anchor" id="{{ struct.name }}">
{% if struct.uniform %}
{% include docs/c/struct.html struct=struct platform='basalt' %}
{% else %}
{% include docs/c/elements/tabs.html %}
{% for platform in page.platforms %}
{% if struct.platforms contains platform %}
<section data-platform="{{ platform }}">
{% include docs/c/struct.html struct=struct platform=platform %}
</section>
{% else %}
{% include docs/c/elements/missing.html platform=platform name=struct.name type='struct' %}
{% endif %}
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% endif %}
{% if page.group.unions.size > 0 %}
<h2 class="anchor" id="unions">Union<span class="hidden-s hidden-xs"> Documentation</span></h2>
{% for union in page.group.unions %}
<div class="docs__item__anchor" id="{{ union.name }}">
{% if union.uniform %}
{% include docs/c/struct.html struct=union platform='basalt' %}
{% else %}
{% include docs/c/elements/tabs.html %}
{% for platform in page.platforms %}
{% if union.platforms contains platform %}
<section data-platform="{{ platform }}">
{% include docs/c/struct.html struct=union platform=platform %}
</section>
{% else %}
{% include docs/c/elements/missing.html platform=platform name=union.name type='union' %}
{% endif %}
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% endif %}
{% if page.group.enums.size > 0 %}
<h2 class="anchor" id="enums">Enum<span class="hidden-s hidden-xs"> Documentation</span></h2>
{% for enum in page.group.enums %}
<div class="docs__item__anchor" id="{{ enum.name }}">
{% if enum.uniform %}
{% include docs/c/enum.html enum=enum platform='basalt' %}
{% else %}
{% include docs/c/elements/tabs.html %}
{% for platform in page.platforms %}
{% if enum.platforms contains platform %}
<section data-platform="{{ platform }}">
{% include docs/c/enum.html enum=enum platform=platform %}
</section>
{% else %}
{% include docs/c/elements/missing.html platform=platform name=enum.name type='enum' %}
{% endif %}
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% endif %}
{% if page.group.typedefs.size > 0 %}
<h2 class="anchor" id="typedefs">Typedef<span class="hidden-s hidden-xs"> Documentation</span></h2>
{% for typedef in page.group.typedefs %}
<div class="docs__item__anchor" id="{{ typedef.name }}">
{% if typedef.uniform %}
{% include docs/c/typedef.html typedef=typedef platform='basalt' %}
{% else %}
{% include docs/c/elements/tabs.html %}
{% for platform in page.platforms %}
{% if typedef.platforms contains platform %}
<section data-platform="{{ platform }}">
{% include docs/c/typedef.html typedef=typedef platform=platform %}
</section>
{% else %}
{% include docs/c/elements/missing.html platform=platform name=typedef.name type='typedef' %}
{% endif %}
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% endif %}
{% if page.group.defines.size > 0 %}
<h2 class="anchor" id="defines">Macro Definition<span class="hidden-s hidden-xs"> Documentation</span></h2>
{% for define in page.group.defines %}
<div class="docs__item__anchor" id="{{ define.name }}">
{% if define.uniform %}
{% include docs/c/define.html define=define platform='basalt' %}
{% else %}
{% include docs/c/elements/tabs.html %}
{% for platform in page.platforms %}
{% if define.platforms contains platform %}
<section data-platform="{{ platform }}">
{% include docs/c/define.html define=define platform=platform %}
</section>
{% else %}
{% include docs/c/elements/missing.html platform=platform name=define.name type='define' %}
{% endif %}
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
<div class="col-l-4 hidden-s hidden-xs hidden-m">
<div class="gray-box gray-box--fixed">
<p><a href="javascript:void(0)" class="btn btn--wide btn--bg-green btn--fg-white" data-modal-target="#modal-docs-help" data-modal-fit-viewport="false">Need some help?</a></p>
{% include docs/shared/graybox-list.html title="Modules" anchor="modules" items=page.group.groups %}
{% include docs/shared/graybox-list.html title="Functions" anchor="functions" items=page.group.functions %}
{% include docs/shared/graybox-list.html title="Data Structures" anchor="structs" items=page.group.structs %}
{% include docs/shared/graybox-list.html title="Unions" anchor="unions" items=page.group.unions %}
{% include docs/shared/graybox-list.html title="Enums" anchor="enums" items=page.group.enums %}
{% include docs/shared/graybox-list.html title="Typedefs" anchor="typedefs" items=page.group.typedefs %}
{% include docs/shared/graybox-list.html title="Macro Defintions" anchor="defines" items=page.group.defines %}
</div>
</div>
</div>
<div id="modal-docs-help" class="hidden" style="width: 40em;">
<h4>Getting Help</h4>
<p>
Do you have questions about the Pebble SDK?
</p>
<p>
Do you need some help understanding something on this page?
</p>
<p>
You can either take advantage of our awesome developer community and
<a href="https://forums.getpebble.com/categories/watchface-sdk-help/">check out the SDK Help forums</a>,
or you can <a href="/contact/">send us a message</a> through
the website!
</p>
</div>

View file

@ -0,0 +1,131 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: docs
---
<div class="visible-m visible-s visible-xs row">
<div class="col-xs-11">
<div class="form__group">
<div class="select-style">
<select class="js-toc-select">
<option value="">Jump to item&hellip;</option>
{% include docs/shared/select-list.html title="Methods" anchor="methods" items=page.js_module.processed_functions %}
{% include docs/shared/select-list.html title="Members" anchor="members" items=page.js_module.processed_members %}
{% include docs/shared/select-list.html title="Typedefs" anchor="typedefs" items=page.js_module.processed_typedefs %}
{% include docs/js/examples.html title="Examples" %}
</select>
</div>
</div>
</div>
<div class="col-xs-1">
<a href="javascript:void(0)" class="btn btn--wide btn--bg-green btn--fg-white fa-lg" data-modal-target="#modal-docs-help" data-modal-fit-viewport="false"><i class="fa fa-question-circle"></i></a>
</div>
</div>
<div class="row">
<div class="col-l-8">
<div class="documentation documentation__js">
{% include docs/js/warning.html %}
<h1 class="pagetitle">{{ page.js_module.name }}</h1>
{% include docs/js/desc.html desc=page.js_module.description %}
{% if page.js_module.processed_functions.size > 0 %}
<h3 class="anchor" id="methods">Methods</h3>
{% for child in page.js_module.processed_functions %}
<div class="docs__item__anchor" id="{{ child.name }}">
<div class="docs__item docs__item--function">
{% include docs/js/function.html child=child %}
</div>
</div>
{% endfor %}
{% endif %}
{% if page.js_module.processed_members.size > 0 %}
<h3 class="anchor" id="members">Members</h3>
{% for child in page.js_module.processed_members %}
<div class="docs__item__anchor" id="{{ child.name }}">
<div class="docs__item docs__item--member">
<div class="docs__item__header">
{{ page.js_module.name }}.<span class="docs__item__name">{{ child.name }}</span>
<div class="clearfix"></div>
</div>
<div class="docs__item__body">
{% include docs/js/desc.html desc=child.description %}
</div>
</div>
</div>
{% endfor %}
{% endif %}
{% if page.js_module.processed_typedefs.size > 0 %}
<h3 class="anchor" id="typedefs">Typedefs</h3>
{% for child in page.js_module.processed_typedefs %}
<div class="docs__item__anchor" id="{{ child.name }}">
<div class="docs__item docs__item--typedef">
{% if child.type.name == "Object" %}
<div class="docs__item__header">
<span class="docs__item__name">{{ child.name }}</span>
<div class="clearfix"></div>
</div>
<div class="docs__item__body">
{% include docs/js/desc.html desc=child.description %}
{% if child.properties.size > 0 %}
<h4>Properties</h4>
<dl>
{% for prop in child.properties %}
<dt><span style="color: #777">{{ prop.type.names | first | escape }}</span> {{ prop.name }}</dt>
{% include docs/js/desc.html desc=prop.description %}
{% endfor %}
</dl>
{% endif %}
</div>
{% elsif child.type.name == "Function" %}
{% include docs/js/function.html child=child %}
{% endif %}
</div>
</div>
{% endfor %}
{% endif %}
</div>
</div>
<div class="col-l-4 hidden-s hidden-xs hidden-m">
<div class="gray-box gray-box--fixed">
<p><a href="javascript:void(0)" class="btn btn--wide btn--bg-green btn--fg-white" data-modal-target="#modal-docs-help" data-modal-fit-viewport="false">Need some help?</a></p>
{% include docs/shared/graybox-list.html title="Methods" anchor="methods" items=page.js_module.processed_functions %}
{% include docs/shared/graybox-list.html title="Members" anchor="members" items=page.js_module.processed_members %}
{% include docs/shared/graybox-list.html title="Typedefs" anchor="typedefs" items=page.js_module.processed_typedefs %}
{% include docs/js/examples.html title="Examples" %}
{% include docs/js/mozilla.html %}
</div>
</div>
</div>
<div id="modal-docs-help" class="hidden" style="width: 40em;">
<h4>Getting Help</h4>
<p>
Do you need some help understanding the something on this page?
</p>
<p>
You can either take advantage of our awesome developer community and
<a href="https://forums.getpebble.com/categories/watchface-sdk-help/">check out the SDK Help forums</a>,
or you can <a href="/contact/">send us a message</a> through
the website!
</p>
</div>

View file

@ -0,0 +1,21 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: docs
---
<div class="markdown markdown--staff">
{{ content }}
</div>

View file

@ -0,0 +1,24 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: docs
docs_language: pebblekit_android
---
<h1 class="pagetitle">{{ page.title }}</h1>
<div class="documentation__android">
{{ page.contents }}
</div>

View file

@ -0,0 +1,24 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: docs
docs_language: pebblekit_ios
---
<h1 class="pagetitle">{{ page.title }}</h1>
<div class="documentation__ios">
{{ page.contents }}
</div>

View file

@ -0,0 +1,107 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: guides/master
sidebar_only: false
regenerate: true
---
{% include utils/toc_small.html toc=page.toc %}
<div class="row">
<div class="col-l-8 col-m-12">
<h1 class="pagetitle">{{ page.title }}</h1>
{% if page.platforms contains 'basalt' and page.platforms contains 'chalk' and page.platforms contains 'diorite' and page.platforms contains 'emery' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide does not apply to apps built to run on the Aplite platform
(Pebble Classic, Pebble Steel).
</p>
</div>
{% elsif page.platforms contains 'basalt' and page.platforms contains 'chalk' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide only applies for apps built to run on the Basalt or Chalk platforms
(Pebble Time, Pebble Time Steel and Pebble Time Round).
</p>
</div>
{% elsif page.platforms contains 'basalt' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide only applies for apps built to run on the Basalt platform
(Pebble Time and Pebble Time Steel).
</p>
</div>
{% elsif page.platforms contains 'chalk' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide only applies for apps built to run on the Chalk platform
(Pebble Time Round watches).
</p>
</div>
{% endif %}
<!--
{% if page.platform_choice %}
{% include platform-choice.html %}
{% endif %}
-->
<div class="markdown markdown--staff">
{% if page.platform_choice %}
{% include platform-choice.html %}
{% endif %}
{{ content }}
</div>
{% unless page.hide_comments %}
<a id="comments" class="anchor"></a>
<div id="disqus_thread" aria-live="polite" data-post-url="https://developer.getpebble.com{{ page.url }}">
You need JavaScript enabled to read and post comments.
</div>
{% endunless %}
{% comment %}
<hr>
<div>
<a href="javascript:void(0);" style="float: right; color: #666;" data-modal-target="#modal-contributors-help" data-modal-fit-viewport="false"><i class="fa fa-question-circle fa-fw fa-lg"></i></a>
<h4 id="contributors">Contributors</h4>
{% git_contributors page %}
</div>
{% endcomment %}
</div>
{% if page.toc or page.related_docs or page.related_examples %}
<div class="col-m-4 hidden-s hidden-xs hidden-m">
<div class="gray-box gray-box--fixed gray-box--scrollspy">
{% include utils/toc_large.html toc=page.toc %}
{% if page.related_docs %}
<h3>Related SDK Docs</h3>
<ul>
{% for doc in page.related_docs %}
<li><a href="{{ doc.url }}">{{ doc.name }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% if page.related_examples %}
<h3>Examples</h3>
<ul>
{% for example in page.related_examples %}
<li><a href="{{ example.url }}" target="_blank">{{ example.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
{% endif %}
</div>

View file

@ -0,0 +1,30 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: guides/default
---
<div class="alert alert--bg-purple alert--fg-white">
<h5>Work In Progress</h5>
<p>
These guides are still a work in progress and are subject to changes and
improvements over time.
</p>
<p>
<a href="/guides/design-and-interaction/#changelog">See the changelog</a>
for update information. Check back soon!
</p>
</div>
{{ content }}

View file

@ -0,0 +1,5 @@
---
layout: guides/default
title: Dummy
description: Details
---

View file

@ -0,0 +1,61 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sidebar_narrow
menu_section: guides
---
<div class="section-menu section-menu--guides section-menu--light">
<div class="section-menu__header">
<h3><a href="/guides/">Guides</a></h3>
</div>
<ul>
<li class="section-menu__item{% if page.url == '/guides/toc/' %} active{% endif %}">
<a href="/guides/toc/">Table of Contents</a>
</li>
{% for group in site.data.guides %}
{% assign grp_name = group[0] %}
{% assign grp = group[1] %}
{% capture grp_url %}/guides/{{ grp_name }}/{% endcapture %}
<li class="section-menu__item{% if page.guide_group == grp_name %} open{% if page.url == grp_url %} active{% endif %}{% endif %}">
<a href="/guides/{{ grp_name }}/">
{% if grp.starred == true %} <i class="fa fa-star fa-fw"></i>{% endif %}
{{ grp.title }}
</a>
{% if page.guide_group == grp_name %}
<ul>
{% if grp.guides.size > 0 %}
{% assign group_docs = grp.guides | sort: grp.sort_by %}
{% for doc in group_docs %}
{% if doc.menu %}
<li class="section-menu__subitem{% if page.url == doc.url %} active{% endif %}">
<a href="{{ site.baseurl }}{{ doc.url }}"><span>{{ doc.title }}</span></a>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</div><!-- sidebar__wrapper -->
<div class="content content--section-menu">
{% include search.html %}
<div class="container--full">
{{content}}
</div>
</div>

View file

@ -0,0 +1,62 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sidebar_narrow
menu_section: guides
sidebar_only: false
---
<div class="section-menu section-menu--guides section-menu--light">
<div class="section-menu__header">
<h3><a href="/guides/">Guides</a></h3>
</div>
<ul>
<li class="section-menu__item{% if page.url == '/guides/toc/' %} active{% endif %}">
<a href="/guides/toc/">Table of Contents</a>
</li>
{% for group in site.data.guides %}
{% assign grp_name = group[0] %}
{% assign grp = group[1] %}
{% capture grp_url %}/guides/{{ grp_name }}/{% endcapture %}
<li class="section-menu__item{% if page.guide_group == grp_name %} open{% if page.url == grp_url %} active{% endif %}{% endif %}">
<a href="/guides/{{ grp_name }}/">
{% if grp.starred == true %} <i class="fa fa-star fa-fw"></i>{% endif %}
{{ grp.title }}
</a>
{% if page.guide_group == grp_name %}
<ul>
{% if grp.guides.size > 0 %}
{% assign group_docs = grp.guides | sort: grp.sort_by %}
{% for doc in group_docs %}
{% if doc.menu %}
<li class="section-menu__subitem{% if page.url == doc.url %} active{% endif %}">
<a href="{{ site.baseurl }}{{ doc.url }}"><span>{{ doc.title }}</span></a>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</div><!-- sidebar__wrapper -->
<div class="content content--section-menu">
{% include search.html %}
<div class="container">
{{content}}
</div>
</div>

View file

@ -0,0 +1,98 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: guides/master
---
{% include utils/toc_small.html toc=page.toc %}
<div class="row">
<div class="col-m-12">
<h1 class="pagetitle">{{ page.title }}</h1>
{% if page.platforms contains 'basalt' and page.platforms contains 'chalk' and page.platforms contains 'diorite' and page.platforms contains 'emery' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide does not apply to apps built to run on the Aplite platform
(Pebble Classic, Pebble Steel).
</p>
</div>
{% elsif page.platforms contains 'basalt' and page.platforms contains 'chalk' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide only applies for apps built to run on the Basalt or Chalk platforms
(Pebble Time, Pebble Time Steel and Pebble Time Round).
</p>
</div>
{% elsif page.platforms contains 'basalt' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide only applies for apps built to run on the Basalt platform
(Pebble Time and Pebble Time Steel).
</p>
</div>
{% elsif page.platforms contains 'chalk' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide only applies for apps built to run on the Chalk platform
(Pebble Time Round watches).
</p>
</div>
{% endif %}
{% if page.platform_choice %}
{% include platform-choice.html %}
{% endif %}
<div>{{ content }}</div>
{% unless page.hide_comments %}
<a id="comments" class="anchor"></a>
<div id="disqus_thread" aria-live="polite" data-post-url="https://developer.getpebble.com{{ page.url }}">
You need JavaScript enabled to read and post comments.
</div>
{% endunless %}
{% comment %}
<hr>
<div>
<a href="javascript:void(0);" style="float: right; color: #666;" data-modal-target="#modal-contributors-help" data-modal-fit-viewport="false"><i class="fa fa-question-circle fa-fw fa-lg"></i></a>
<h4 id="contributors">Contributors</h4>
{% git_contributors page %}
</div>
{% endcomment %}
</div>
{% if page.toc or page.related_docs or page.related_examples %}
<div class="col-m-4 hidden-s hidden-xs hidden-m">
<div class="gray-box gray-box--fixed gray-box--scrollspy">
{% include utils/toc_large.html toc=page.toc %}
{% if page.related_docs %}
<h3>Related SDK Docs</h3>
<ul>
{% for doc in page.related_docs %}
<li><a href="{{ doc.url }}">{{ doc.name }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% if page.related_examples %}
<h3>Examples</h3>
<ul>
{% for example in page.related_examples %}
<li><a href="{{ example.url }}" target="_blank">{{ example.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
{% endif %}
</div>

View file

@ -0,0 +1,88 @@
<!DOCTYPE html>
<!--
Copyright 2025 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{% if page.title %}{{ page.title }} // {{ site.title }}{% else %}{{ site.title }}{% endif %}</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}">
<link rel="canonical" href="{{ page.url | replace: 'index.html', '' | prepend: site.baseurl | prepend: site.url }}">
<link href="//fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,600,700" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=Inconsolata:400,700" rel="stylesheet" type="text/css">
<link href="{{ site.asset_path }}/favicon.png" rel="shortcut icon" type="image/vnd.microsoft.icon" id="favicon">
<link rel="stylesheet" type="text/css" href="{{ site.asset_path }}/css/main.css">
{% for style in page.styles %}
{% asset_css style %}
{% endfor %}
<noscript>
<link rel="stylesheet" type="text/css" href="{{ site.asset_path }}/css/noscript.css">
</noscript>
{% unless site.rack_env == 'development' %}
<script type="text/javascript" >
var _rollbarConfig = {
accessToken: '{{ site.rollbar_client_token }}',
captureUncaught: true,
payload: {
environment: '{{ site.rack_env }}'
}
};
!function(a,b){function c(b){this.shimId=++h,this.notifier=null,this.parentShim=b,this.logger=function(){},a.console&&void 0===a.console.shimId&&(this.logger=a.console.log)}function d(b,c,d){a._rollbarWrappedError&&(d[4]||(d[4]=a._rollbarWrappedError),d[5]||(d[5]=a._rollbarWrappedError._rollbarContext),a._rollbarWrappedError=null),b.uncaughtError.apply(b,d),c&&c.apply(a,d)}function e(b){var d=c;return g(function(){if(this.notifier)return this.notifier[b].apply(this.notifier,arguments);var c=this,e="scope"===b;e&&(c=new d(this));var f=Array.prototype.slice.call(arguments,0),g={shim:c,method:b,args:f,ts:new Date};return a._rollbarShimQueue.push(g),e?c:void 0})}function f(a,b){if(b.hasOwnProperty&&b.hasOwnProperty("addEventListener")){var c=b.addEventListener;b.addEventListener=function(b,d,e){c.call(this,b,a.wrap(d),e)};var d=b.removeEventListener;b.removeEventListener=function(a,b,c){d.call(this,a,b&&b._wrapped?b._wrapped:b,c)}}}function g(a,b){return b=b||this.logger,function(){try{return a.apply(this,arguments)}catch(c){b("Rollbar internal error:",c)}}}var h=0;c.init=function(a,b){var e=b.globalAlias||"Rollbar";if("object"==typeof a[e])return a[e];a._rollbarShimQueue=[],a._rollbarWrappedError=null,b=b||{};var h=new c;return g(function(){if(h.configure(b),b.captureUncaught){var c=a.onerror;a.onerror=function(){var a=Array.prototype.slice.call(arguments,0);d(h,c,a)};var g,i,j="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(g=0;g<j.length;++g)i=j[g],a[i]&&a[i].prototype&&f(h,a[i].prototype)}return a[e]=h,h},h.logger)()},c.prototype.loadFull=function(a,b,c,d,e){var f=g(function(){var a=b.createElement("script"),e=b.getElementsByTagName("script")[0];a.src=d.rollbarJsUrl,a.async=!c,a.onload=h,e.parentNode.insertBefore(a,e)},this.logger),h=g(function(){var b;if(void 0===a._rollbarPayloadQueue){var c,d,f,g;for(b=new Error("rollbar.js did not load");c=a._rollbarShimQueue.shift();)for(f=c.args,g=0;g<f.length;++g)if(d=f[g],"function"==typeof d){d(b);break}}"function"==typeof e&&e(b)},this.logger);g(function(){c?f():a.addEventListener?a.addEventListener("load",f,!1):a.attachEvent("onload",f)},this.logger)()},c.prototype.wrap=function(b,c){try{var d;if(d="function"==typeof c?c:function(){return c||{}},"function"!=typeof b)return b;if(b._isWrap)return b;if(!b._wrapped){b._wrapped=function(){try{return b.apply(this,arguments)}catch(c){throw c._rollbarContext=d(),c._rollbarContext._wrappedSource=b.toString(),a._rollbarWrappedError=c,c}},b._wrapped._isWrap=!0;for(var e in b)b.hasOwnProperty(e)&&(b._wrapped[e]=b[e])}return b._wrapped}catch(f){return b}};for(var i="log,debug,info,warn,warning,error,critical,global,configure,scope,uncaughtError".split(","),j=0;j<i.length;++j)c.prototype[i[j]]=e(i[j]);var k="//d37gvrvc0wt4s1.cloudfront.net/js/v1.1/rollbar.min.js";_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||k;var l=c.init(a,_rollbarConfig);l.loadFull(a,b,!1,_rollbarConfig)}(window,document);
</script>
<script type="text/javascript" async>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{{ site.google_analytics }}', 'auto');
ga('send', 'pageview');
</script>
{% endunless %}
</head>
<body class="{{ page.page_class }}">
<div class="mmenu__wrapper">
{{ content }}
{% if site.rack_env == 'development' %}
<p class="size-helper">
<span class="visible-xs">x-small</span>
<span class="visible-s">small</span>
<span class="visible-m">medium</span>
<span class="visible-l">large</span>
</p>
{% endif %}
</div>
<script type="text/javascript">
var searchPrimary = '{{ page.search_primary }}';
</script>
{% if site.rack_env == 'development' %}
{% for script in site.data.js.libs %}
<script type="text/javascript" src="{{ script.path | assetify }}"></script>
{% endfor %}
{% else %}
<script type="text/javascript" src="{{ site.asset_path }}/js/libs-{{ site.data.js.lib_hash }}.js"></script>
{% endif %}
<script type="text/javascript" src="{{ site.asset_path }}/js/templates.js"></script>
<script type="text/javascript" src="{{ site.asset_path }}/js/app.js"></script>
<script type="text/javascript" src="{{ site.asset_path }}/js/search.js"></script>
<script type="text/javascript" src="{{ site.asset_path }}/js/quicksearch.js"></script>
<script type="text/javascript" src="{{ site.asset_path }}/js/disqus.js"></script>
{% for script in page.scripts %}
{% asset_js script %}
{% endfor %}
</body>
</html>

View file

@ -0,0 +1,42 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sidebar_narrow
menu_section: more
sidebar_only: false
---
<div class="section-menu section-menu--more section-menu--dark">
<div class="section-menu__header">
<h3><a href="/more/">More</a></h3>
</div>
<ul>
<li class="section-menu__item{% if page.menu_subsection == 'inspiration' %} active{% endif %}"><a href="/inspiration/">App Inspiration</a></li>
<li class="section-menu__item{% if layout.menu_subsection == 'examples' or page.menu_subsection == 'examples' %} active{% endif %}"><a href="/examples/">Examples</a></li>
<li class="section-menu__item{% if page.menu_subsection == 'contact' %} active{% endif %}"><a href="/contact/">Contact</a></li>
<li class="section-menu__item{% if page.menu_subsection == 'faqs' %} active{% endif %}"><a href="/faqs/">FAQs</a></li>
<li class="section-menu__item{% if page.menu_subsection == 'open-source' %} active{% endif %}"><a href="/open-source/">Open Source</a></li>
<li class="section-menu__item{% if page.menu_subsection == 'build' %} active{% endif %}"><a href="/build/">Build Tools</a></li>
{% comment %}
<li class="section-menu__item{% if layout.menu_subsection == 'videos' or page.menu_subsection == 'videos' %} active{% endif %}"><a href="/videos/">Videos</a></li>
<li class="section-menu__item{% if layout.menu_subsection == 'contributing' or page.menu_subsection == 'contributing' %} active{% endif %}"><a href="/contributing/">Contributing</a></li>
{% endcomment %}
</ul>
</div>
</div><!-- sidebar__wrapper -->
<div class="content content--section-menu">
{% include search.html %}
{{ content }}
</div>

View file

@ -0,0 +1,37 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: more
sidebar_only: false
---
<div class="container">
{% include utils/toc_small.html toc=page.toc %}
<div class="row">
<div class="col-l-8">
<h1 class="pagetitle">{{ page.title }}</h1>
<div class="markdown markdown--staff">
{{ content }}
</div>
</div>
{% if page.toc.size > 0 %}
<div class="col-l-4 hidden-s hidden-xs hidden-m">
<div class="gray-box gray-box--fixed gray-box--scrollspy">
{% include utils/toc_large.html toc=page.toc %}
</div>
</div>
{% endif %}
</div>
</div>

View file

@ -0,0 +1,22 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sdk/markdown
---
<p>
<em>Release Date: {{ page.date | date: "%B %-d %Y" }}</em>
</p>
{{ content }}

View file

@ -0,0 +1,37 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sdk/master
---
{% include utils/toc_small.html toc=page.toc %}
<div class="container">
<div class="row">
<div class="col-l-8">
<h1 class="pagetitle">{{ page.title }}</h1>
<div class="markdown markdown--staff">
{% if page.platform_choice %}
{% include platform-choice.html %}
{% endif %}
{{ content }}
</div>
</div>
<div class="col-l-4 hidden-s hidden-xs hidden-m">
<div class="gray-box gray-box--fixed gray-box--scrollspy">
{% include utils/toc_large.html toc=page.toc %}
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,50 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sidebar_narrow
menu_section: sdk
---
<div class="section-menu section-menu--sdk section-menu--dark">
<div class="section-menu__header">
<h3><a href="/sdk/">SDK</a></h3>
</div>
<ul>
<li class="section-menu__item{% if page.menu_subsection == 'download' %} active{% endif %}"><a href="/sdk/download/">Download</a></li>
<li class="section-menu__item{% if page.menu_subsection == 'install' %} open{% if page.menu_platform == nil %} active{% endif %}{% endif %}">
<a href="/sdk/install/">Installation</a>
<ul>
<li class="section-menu__subitem{% if page.menu_platform == 'mac' %} active{% endif %}"><a href="/sdk/install/mac/"><span>Mac OS X</span></a></li>
<li class="section-menu__subitem{% if page.menu_platform == 'linux' %} active{% endif %}"><a href="/sdk/install/linux/"><span>Linux</span></a></li>
<li class="section-menu__subitem{% if page.menu_platform == 'windows' %} active{% endif %}"><a href="/sdk/install/windows/"><span>Windows</span></a></li>
</ul>
</li>
<li class="section-menu__item{% if page.collection == 'changelogs' %} open{% endif %}">
<a href="/sdk/changelogs/{{ site.data.sdk.c.version }}/">Changelog</a>
<ul>
{% assign changelogs = site.changelogs | sort: 'date' | reverse %}
{% for changelog in changelogs %}
<li class="section-menu__subitem{% if page.url == changelog.url %} active{% endif %}"><a href="{{ changelog.url }}"><span>{{ changelog.path | basename: '.md' }}</span></a></li>
{% endfor %}
</ul>
</li>
<li class="section-menu__item{% if page.menu_subsection == 'round-getting-started' %} active{% endif %}"><a href="/sdk/round-getting-started/">Getting Started with Pebble Time Round</a></li>
</ul>
</div>
</div><!-- sidebar__wrapper -->
<div class="content content--section-menu">
{% include search.html %}
{{ content }}
</div>

View file

@ -0,0 +1,34 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: master
---
<div class="sidebar__wrapper{% unless (page.sidebar_only or layout.sidebar_only) %} sidebar__wrapper--sectionmenu{% endunless %}">
<div class="sidebar sidebar--narrow">
<a href="/" class="sidebar__header">
<span>pebble</span>
</a>
<ul class="mainmenu">
{% include mainmenu.html %}
</ul>
<div class="sidebar__legal">
<a href="{{ site.links.legal.privacy }}" target="_blank">Privacy</a>
<br>
<a href="{{ site.links.legal.cookies }}" target="_blank">Cookies</a>
</div>
<a href="{{ site.links.devportal }}" target="_blank" class="sidebar__footer">Publish</a>
</div>
{{ content }}

View file

@ -0,0 +1,38 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: master
---
<div class="sidebar__wrapper">
<div class="sidebar sidebar--wide">
<a href="/" class="sidebar__header">
<span>pebble</span><span>|</span><span>developer</span>
</a>
<ul class="mainmenu">
{% include mainmenu.html %}
</ul>
<div class="sidebar__legal">
<a href="{{ site.links.legal.privacy }}" target="_blank">Privacy Policy</a>
&middot;
<a href="{{ site.links.legal.cookies }}" target="_blank">Cookie Policy</a>
</div>
<a href="{{ site.links.devportal }}" target="_blank" class="sidebar__footer">Publish your app <i class="fa fa-angle-right fa-fw"></i></a>
</div>
</div>
<div class="content content--narrow">
{% include search.html %}
{{ content }}
</div>

View file

@ -0,0 +1,53 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: sidebar_narrow
menu_section: tutorials
---
<div class="section-menu section-menu--getting-started section-menu--dark">
<div class="section-menu__header">
<h3><a href="/tutorials/">Tutorials</a></h3>
</div>
<ul>
<li class="section-menu__item{% if page.tutorial == 'watchface' %} open{% endif %}"><a href="/tutorials/watchface-tutorial/part1/">Build a Watchface in C</a>
<ul>
<li class="section-menu__subitem{% if page.tutorial_part == 1 %} active{% endif %}"><a href="/tutorials/watchface-tutorial/part1/"><span>Part 1 - Displaying the Time</span></a></li>
<li class="section-menu__subitem{% if page.tutorial_part == 2 %} active{% endif %}"><a href="/tutorials/watchface-tutorial/part2/"><span>Part 2 - Customizing the Watchface</span></a></li>
<li class="section-menu__subitem{% if page.tutorial_part == 3 %} active{% endif %}"><a href="/tutorials/watchface-tutorial/part3/"><span>Part 3 - Adding Web Content</a></li>
<li class="section-menu__subitem{% if page.tutorial_part == 4 %} active{% endif %}"><a href="/tutorials/watchface-tutorial/part4/"><span>Part 4 - Adding a Battery Bar</span></a></li>
<li class="section-menu__subitem{% if page.tutorial_part == 5 %} active{% endif %}"><a href="/tutorials/watchface-tutorial/part5/"><span>Part 5 - Vibrate on Disconnect</span></a></li>
</ul>
</li>
<li class="section-menu__item{% if page.tutorial == 'js-watchface' %} open{% endif %}"><a href="/tutorials/js-watchface-tutorial/part1/">Build a Watchface in JS</a>
<ul>
<li class="section-menu__subitem{% if page.tutorial_part == 1 %} active{% endif %}"><a href="/tutorials/js-watchface-tutorial/part1/"><span>Part 1 - Displaying the Time</span></a></li>
<li class="section-menu__subitem{% if page.tutorial_part == 2 %} active{% endif %}"><a href="/tutorials/js-watchface-tutorial/part2/"><span>Part 2 - Adding Web Content</span></a></li>
</ul>
</li>
<li class="section-menu__item{% if page.tutorial == 'advanced' %} open{% endif %}"><a href="/tutorials/advanced/vector-animations/">Advanced Tutorials</a>
<ul>
<li class="section-menu__subitem{% if page.tutorial_part == 1 %} active{% endif %}"><a href="/tutorials/advanced/vector-animations/"><span>Vector Animations</span></a></li>
</ul>
</li>
</ul>
</div>
</div><!-- sidebar__wrapper -->
<div class="content content--section-menu">
{% include search.html %}
{{ content }}
</div>

View file

@ -0,0 +1,56 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
layout: tutorials/master
generate_toc: true
menu_section: tutorials
---
<div class="container">
{% include utils/toc_small.html toc=page.toc %}
<div class="row">
<div class="col-l-8">
<h1>{{ page.title }}</h1>
{% if page.platforms contains 'basalt' %}
<div class="alert alert--fg-white alert--bg-purple alert--medium">
<p>
<strong>PLATFORM NOTICE</strong><br>
This guide only applies for apps built to run on the Basalt platform
(Pebble Time watches).
</p>
</div>
{% endif %}
<div class="markdown markdown--staff">
{% if page.platform_choice %}
{% include platform-choice.html %}
{% endif %}
{{ content }}
</div>
</div>
<div class="col-m-4 hidden-s hidden-xs hidden-m">
<div class="gray-box gray-box--fixed gray-box--scrollspy">
{% include utils/toc_large.html toc=page.toc %}
{% if page.related_links %}
<h3>Related Links</h3>
<ul>
{% for doc in page.related_links %}
<li><a href="{{ doc.url }}">{{ doc.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,29 @@
{% comment %}
Copyright 2025 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
{% endcomment %}
{% comment %}
This layout file is used for generating permanent redirects from old URLs to
new ones.
{% endcomment %}
{% capture redirect_url %}{{ page.redirect_to | prepend: site.baseurl | prepend: site.url }}{% endcapture %}
{% if page.redirect_to | downcase | slice: 0, 6 == "http://" or page.redirect_to | downcase | slice: 0, 7 == "https://" %}
{% capture redirect_url %}{{ page.redirect_to }}{% endcapture %}
{% endif %}
<meta http-equiv="refresh" content="0; url={{ redirect_url }}">
<link rel="canonical" href="{{ redirect_url }}" />

View file

@ -0,0 +1,21 @@
{% comment %}
Copyright 2025 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
{% endcomment %}
{% comment %}
This layout file is used for generating temporary redirects from old URLs to
new ones.
{% endcomment %}
<meta http-equiv="refresh" content="0; url={{page.redirect_to | prepend: site.baseurl | prepend: site.url }}">