diff --git a/Gemfile b/Gemfile index 9ccefced..292c54d5 100644 --- a/Gemfile +++ b/Gemfile @@ -11,6 +11,7 @@ group :jekyll_plugins do gem 'jekyll-include-cache' gem 'jekyll-sitemap' gem 'jekyll-liquify' + gem 'jekyll-redirect-from' # No need this gem because we build by GitHub Actions and serve on Pages. # gem 'github-pages' diff --git a/Gemfile.lock b/Gemfile.lock index d9ec7ed6..88974641 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -104,6 +104,8 @@ GEM liquid logger redcarpet + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) jekyll-sass-converter (3.1.0) sass-embedded (~> 1.75) jekyll-sitemap (1.4.0) @@ -218,6 +220,7 @@ DEPENDENCIES jekyll-feed jekyll-include-cache jekyll-liquify + jekyll-redirect-from jekyll-sitemap mini_racer rake diff --git a/_config.yml b/_config.yml index ea79b130..7491982f 100644 --- a/_config.yml +++ b/_config.yml @@ -26,6 +26,7 @@ registration: https://dojocon-japan.doorkeeper.jp/events/176163 plugins: - jekyll-feed - jekyll-include-cache + - jekyll-redirect-from - jekyll-sitemap # This must be LAST to include contents generated by gems above - jekyll-liquify # This enable to use variables in frontmatter diff --git a/_includes/navbar.html b/_includes/navbar.html index 27742a6f..abd2a2a1 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -2,8 +2,8 @@
+ ++ 自己申告で下記のコースいずれかを選択して応募することができます。 + +
+ DojoCon Japan 2025 のテーマは「Inspire Next 〜好奇心に火をつけよう〜」です。 + 好奇心の火種(ひだね)となる「ひらめき」を今回のコンテストテーマとします。 +
+ ++ ~2025年 9月 7日(日)23:59 +
+ ++ 応募に関しては、ProtoPedia(ITものづくりに関する作品を記録・公開できるWEBサービス)を利用して応募いただきます。 +
+ + +
+ 応募方法は下記よりご確認ください。
+ 応募方法
+
+ 応募は下記よりお願いします。
+ 応募
+
+
+
+ 応募時に『白帯コース』/『黒帯コース』を選んでいただきますが、審査員の判断でコースの変更をお願いすることもあります。 +
+ ++
+
第1次審査 | +DojoCon Japan 2025 実行委員会 | +
最終審査 | +DojoCon Japan 2025 参加者 | +
+
+ 応募フォーム準備次第、応募開始 + +
09/07(日) | +応募終了 | +
09/23(火)頃 | +一次審査通知 | +
10/25(土) | +作品発表(プレゼン形式)+展示+最終審査 (@DojoCon Japan 2025 ) | +
+
最優秀賞 | +黒帯コース・白帯コース各1名(副賞あり) | +
優秀賞 | +黒帯コース・白帯コース各2名(副賞あり) | +
ほか | ++ |
+
+ コンテストに関するお問い合わせは DojoCon Japan 2025 お問い合わせフォーム にお願いいたします。 +
diff --git a/_posts/2025-07-21-contest-terms.md b/_posts/2025-07-21-contest-terms.md new file mode 100644 index 00000000..116be18e --- /dev/null +++ b/_posts/2025-07-21-contest-terms.md @@ -0,0 +1,200 @@ +--- +layout: post +title: DojoCon Japan 2025 プログラミングコンテスト 参加規約 +date: 2025-07-21T00:00:00 UTC+09:00 +permalink: /contests/terms/ +redirect_from: /contests/terms/ +--- ++ 「DojoCon Japan 2025プログラミングコンテスト」(以下「本⼤会」といいます)は、DojoCon Japan実⾏委員会(併せて以下「主催者」といいます)が主催するプログラミングコンテストです。 + 本⼤会への応募者(以下「応募者」といいます)は、本⼤会への応募にあたって、以下の参加規約(以下「本規約」といいます)の内容を承諾していただきます。 +
+ ++ 応募情報についてはDojoCon Japan実⾏委員会が取り扱います。 + ご⼊⼒いただいた応募者の個⼈情報は下記の通り取り扱います。 +
+ +コンテスト応募は以下のステップで行います。
+
+ ProtoPediaとはITものづくりに関する作品を記録・公開できるWEBサービスです。
+ DojoConプログラミングコンテスト応募作品以外にも沢山のものづくり作品が掲載されています。
+ プログラミングコンテスト以外の作品もここに登録することで沢山の人に見てもらうことができます。
+
+ 以下にそれぞれのやり方を記載します。
+ わからないところはCoderDojoのメンターさんに聞いてみてくださいね!
+ DojoConのお問い合わせフォームから問い合わせても大丈夫です。
+
まずProtoPediaのアカウントを作成する必要があります。(すでにアカウントがある人は作成する必要はありません。)
+未成年者のProtoPediaへのアカウント登録は保護者の方の同意が必要となります。必ず許可をもらいましょう。
+「表示名」は本名でもニックネームでも構いません。表示名・ユーザーIDはWeb上で公開されることになります。
+1.の手順で作成したアカウントでログインした状態で、右上の「作品を投稿」ボタンをクリックします。
+※の項目はDojoConプログラミングコンテスト応募にあたって入力必須になります。
+ +① 作品ステータス※ | +「完成」で応募してください(完成していないときは「開発中」で保存していても大丈夫です) | +
---|---|
② 作品タイトル※ | +応募する作品のタイトルを入れましょう | +
③ 作品のURL | +Scratchで公開されているものなど、Web上で見ることができる場合は入れておきましょう | +
④ 概要※ | +作品の簡単な説明を入れてください | +
+ ![]() |
+ |
⑤ ライセンスの設定 | +デフォルト(表示する)のままで構いません | +
⑥ 画像※ | +作品の画像、プログラムの画像などアピールしたい画像を1~5枚登録してください | +
⑦ 動画※ | +
+ YouTubeに限定公開で動画をアップしてそのリンクを入れます + ※動画は3分まで(3分を超える場合は3分までを審査対象とします) + プログラムが動いている動画やアピールしたいポイントなどの動画を入れましょう。少なくとも動きがわかれば大丈夫です!動画のクオリティは評価対象としませんので簡単なもので大丈夫です + YouTubeへのアップ方法がわからない場合はご相談ください + |
+
+ ![]() |
+ |
⑧ システム構成(図) | +作品がどのように構成されているか図にあらわせる場合は描いてアップロードしますが、空欄でも構いません | +
⑨ システム構成(文) | +作品を構成する要素を書きますが、空欄でも構いません。テキスト入力でOKです | +
+ ![]() |
+ |
⑩ 開発素材※ | +
+ 使用したツールやAPIなどを書きます + 例)Scratch, Viscuit, Unity, Python, Arduino など + |
+
⑪ タグ※ | +
+ 使用したプログラミング言語や技術などを書きます + “Scratch”など「開発素材」か「タグ」か迷うようなものはどちらにも書いていてOKです + 必ずここに”白帯コース” ”黒帯コースどちらかを書いてください(白帯コース:初級・中級者レベル、黒帯コース:上級者レベル) + ![]() |
+
⑫ ストーリー※ | +
+ こだわりポイントやアピールポイント、難しかったところなどを書きます + また必ずコンテストテーマ「ひらめき」とどう結びついた(結びつく)のかを書いてください + |
+
⑬ スライドモード | +このチェックは何もしなくてよいです | +
+ ![]() |
+ |
⑭ メンバー登録 | +
+ チームの場合のみ必須※ + 「チーム名を入力」の欄にチーム名を入れます + またもしもチームメンバーもProtoPediaのアカウントを持っている(作った)場合は「メンバーを追加する+」をクリックしてそのメンバーのアカウントを追加します + |
+
⑮ 関連リンク | +関連リンクがある場合は入力しますが、空欄でよいです | +
+ 入力後はこのページの一番上の「一般公開」と表示されているプルダウンの隣の「作品を登録」ボタンを押しましょう。
+ これで作品が登録され、ProtoPedia上で作品が公開されます。
+
プルダウンを「下書き保存」にして「作品を登録」ボタンを押すと作品は公開されずに下書きとして保存することもできます。
+作品が公開されたら、URLの部分をコピーしておきます。このURLは次の応募フォームの入力に使用します。
+
+ 下記URLの応募フォームにアクセスして、必要事項を入力します。
+ https://forms.gle/2WJ3S19kWuqijANVA
+
+ この中の「応募作品のURL( ProtoPedia )」の項目に、先ほどコピーしたURLを入れてください。
+ 正常に応募が完了すると、入力したメールアドレスにGoogleフォームから入力した内容のメールが届きます。
+
+ 1~3すべてのステップが完了すると、DojoCon2025プログラミングコンテスト作品ページ(下記)に応募作品として作品が反映されます。
+ https://protopedia.net/event/dojocon2025
+ ※なお即時反映できない場合がありますので反映されない場合は1日程度待ってください。それでも反映されない場合はお手数ですがお問い合わせフォームよりお知らせください。
+
+ 応募フォームで応募後もProtoPediaを更新することができます。作品のバグを修正したり機能を加えるなどのブラッシュアップはいつでも可能となりますが、一次審査後に大きく作品内容を変更することは禁止とします。 +
+不明点があれば、お問い合わせフォーム({{ site.contact }})にてお知らせください。
diff --git a/_posts/2025-08-02-sponsor-recruit-started.md b/_posts/2025-08-02-sponsor-recruit-started.md new file mode 100644 index 00000000..00f20623 --- /dev/null +++ b/_posts/2025-08-02-sponsor-recruit-started.md @@ -0,0 +1,45 @@ +--- +layout: post +title: DojoCon Japan 2025 スポンサー募集のお知らせ +title-in-news-list: DojoCon Japan 2025 スポンサー募集のお知らせを掲載しました +date: 2025-08-02T00:00:00 UTC+09:00 +categories: news +tags: 企画 +permalink: /sponsorship/ +--- +DojoCon Japan 2025 のスポンサー募集を開始いたしました。
+ ++ 今年は DojoCon Japan 史上初の 九州開催(久留米/福岡県) です。 + テーマは 「Inspire Next 〜好奇心に火をつけよう〜」 。 + 全国の CoderDojo 関係者だけでなく、地域にゆかりのある方々にもぜひご支援いただきたいと考えています。 +
+ ++ このカンファレンスでは、プログラミング・電子工作・ゲーム・デジタルアートなど幅広い作品を対象にした + プログラミングコンテストも開催。例年同様、熱意あふれる子どもたちや大人たちが全国から集い、 + “好奇心”を実際の行動に変える場となります。子どもたちの「ひらめき」が芽吹く現場を、 + スポンサーとして共に盛り上げていただけませんか? +
+ ++ スポンサーの皆さまには、企業・団体としての露出機会はもちろん、 + コミュニティを応援する想いを表現していただく場をご提供します。 + 詳細は以下をご確認ください。 +
+ ++ 📄 スポンサーシップ資料: + + DojoCon Japan 2025 スポンサーシップのご案内 + +
+ ++ ぜひ、多くの方々と一緒に DojoCon の熱気を九州の地で感じられるよう、 + ご支援・ご協賛をお待ちしております。 +
diff --git a/_posts/2025-08-28-saikyo-coderdojo.md b/_posts/2025-08-28-saikyo-coderdojo.md index e5fa50e0..aeb23814 100644 --- a/_posts/2025-08-28-saikyo-coderdojo.md +++ b/_posts/2025-08-28-saikyo-coderdojo.md @@ -2,7 +2,7 @@ layout: post title: ぼくのかんがえたさいきょうのCoderDojoワークショップ date: 2025-08-28T00:00:00 UTC+09:00 -categories: news +categories: event thumbnail: /img/events/saikyo-coderdojo.png permalink: /events/saikyo-coderdojo/ --- diff --git a/img/common/coderdojo-nameplate.webp b/img/common/coderdojo-nameplate.webp new file mode 100644 index 00000000..9579105e Binary files /dev/null and b/img/common/coderdojo-nameplate.webp differ diff --git a/img/contests/how-to-apply/step-1-1.webp b/img/contests/how-to-apply/step-1-1.webp new file mode 100644 index 00000000..01a2f9c6 Binary files /dev/null and b/img/contests/how-to-apply/step-1-1.webp differ diff --git a/img/contests/how-to-apply/step-1-2.webp b/img/contests/how-to-apply/step-1-2.webp new file mode 100644 index 00000000..eb8a4b3d Binary files /dev/null and b/img/contests/how-to-apply/step-1-2.webp differ diff --git a/img/contests/how-to-apply/step-1-3.webp b/img/contests/how-to-apply/step-1-3.webp new file mode 100644 index 00000000..d2dd1034 Binary files /dev/null and b/img/contests/how-to-apply/step-1-3.webp differ diff --git a/img/contests/how-to-apply/step-2-1.webp b/img/contests/how-to-apply/step-2-1.webp new file mode 100644 index 00000000..bf2889df Binary files /dev/null and b/img/contests/how-to-apply/step-2-1.webp differ diff --git a/img/contests/how-to-apply/step-2-2.webp b/img/contests/how-to-apply/step-2-2.webp new file mode 100644 index 00000000..9d5eed3d Binary files /dev/null and b/img/contests/how-to-apply/step-2-2.webp differ diff --git a/img/contests/how-to-apply/step-2-3.webp b/img/contests/how-to-apply/step-2-3.webp new file mode 100644 index 00000000..8b680c7e Binary files /dev/null and b/img/contests/how-to-apply/step-2-3.webp differ diff --git a/img/contests/how-to-apply/step-2-4.webp b/img/contests/how-to-apply/step-2-4.webp new file mode 100644 index 00000000..9c549d08 Binary files /dev/null and b/img/contests/how-to-apply/step-2-4.webp differ diff --git a/img/contests/how-to-apply/step-2-5.webp b/img/contests/how-to-apply/step-2-5.webp new file mode 100644 index 00000000..2316c42f Binary files /dev/null and b/img/contests/how-to-apply/step-2-5.webp differ diff --git a/img/contests/how-to-apply/step-2-6.webp b/img/contests/how-to-apply/step-2-6.webp new file mode 100644 index 00000000..68a0c18a Binary files /dev/null and b/img/contests/how-to-apply/step-2-6.webp differ diff --git a/img/contests/how-to-apply/step-2-7.webp b/img/contests/how-to-apply/step-2-7.webp new file mode 100644 index 00000000..1fd27a7d Binary files /dev/null and b/img/contests/how-to-apply/step-2-7.webp differ diff --git a/img/contests/how-to-apply/tag-description.webp b/img/contests/how-to-apply/tag-description.webp new file mode 100644 index 00000000..877cbcac Binary files /dev/null and b/img/contests/how-to-apply/tag-description.webp differ diff --git a/test-directory-structure.py b/test-directory-structure.py index 63eb2753..c0e37684 100755 --- a/test-directory-structure.py +++ b/test-directory-structure.py @@ -1,4 +1,5 @@ #!/usr/bin/python +from html.parser import HTMLParser from pathlib import Path """ @@ -12,6 +13,39 @@ """ +class Parser(HTMLParser): + """ + を含むファイルを検査の対象から除外する + """ + + def __init__(self, *, convert_charrefs: bool = True) -> None: + super().__init__(convert_charrefs=convert_charrefs) + self.is_redirect = False + + def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None: + if self.is_redirect: + return + + if tag != "meta": + return + + for attr_name, attr_value in attrs: + if attr_name == "http-equiv" and attr_value == "refresh": + self.is_redirect = True + break + + +def is_redirect(path: str) -> bool: + with open(path) as fp: + content = fp.read() + + parser = Parser() + parser.feed(content) + parser.close() + + return parser.is_redirect + + def main() -> int: allowed_names = ["index.html", "404.html"] errors = list[str]() @@ -25,6 +59,9 @@ def main() -> int: continue path = cwd.joinpath(file).as_posix() + if is_redirect(path): + continue + errors.append(path) if 0 < len(errors):