.mdファイルに移管・フッターを追加

This commit is contained in:
Last2014 2025-07-08 21:42:41 +09:00
parent 8350757dcd
commit e9c6cccb4b
12 changed files with 150 additions and 21 deletions

View File

@ -0,0 +1,8 @@
バルス祭りについてですが...
現在ゆずねっとはユーザ数が100人程度のためおそらくゆずねっと上でバルス祭りを行ってもサーバーはダウンしないものと考えております。
是非バルスしちゃってください。
なお、TLを埋め尽くすほどのユーズはお控えください。
ゆずねっと以外にも簡単にバルスできるボタンを作りましたので是非ご活用ください!
<br>
<a href='https://share.uwuzu.net/?text=バルス!!!' class='link_btn'>バルスる</a>

View File

@ -0,0 +1 @@
残念ながらuwuzuの仕様上ユーザーIDの変更はできません。

View File

@ -0,0 +1,18 @@
パスワードを忘れた場合、ゆずねっとでは二通りの方法でパスワードの復元が行えます。
**なお、パスワードの復元にはメールアドレスの設定が必要です。**
**メールアドレスの設定をされたいない方はパスワードの復元はできません。**
## 1. ユーザーIDとメールアドレスの入力
ゆずねっとの未ログイン時トップページより、ログインボタンを押し、下部にあるパスワード復元ボタンを押してください。
パスワードの復元ページに進みますと、ユーザーIDとメールアドレスの入力ができるので設定したユーザーIDとメールアドレスを入力して次へ進んでください。
## 2. パスワードの再設定
二段階認証を設定しているアカウントでしたら、二段階認証コードと新しいパスワードを入力して次へ進んでください。
もし二段階認証を設定していないアカウントでしたら、メールで認証するボタンを押してください。
これによりメールで二段階認証ができるようになります。
メールの送信には少々時間がかかりますのでページの読み込みが終るまでお待ち下さい。
メールを受信できたら、メールに記載されている二段階認証コードと新しいパスワードを入力して次へ進んでください。
## 3. ログイン
これでパスワードの復元(パスワードリセット)は完了です!
通常のログインページより新しいパスワードでログインをしてください。

View File

@ -0,0 +1,4 @@
ご飯の画像が多すぎることに関してですが、これはこれで私(daichimarukana)は良いと思っていますので大丈夫でしょう
もし深夜時間帯に閲覧してしまい猛烈な食欲に駆り立てられてしまったのであれば申し訳ございません。
ご飯の画像が多すぎることを解消するにはユーザー数を増やすことや様々なトピックのユーズをすることが重要だと考えていますので、是非新規さんを連れてきたりじゃんじゃんユーズしてみてください🤗(利用規約の範囲内でね!)

View File

@ -0,0 +1,8 @@
ゆずねっとのサポートサイトを開設しました!
是非このサポートサイトをご活用ください!
## 使い方
サイトを開くとトップページに記事一覧が表示されます。
お求めの記事をタップすると記事が表示されます!
また、サイト上部の検索欄より検索も可能です!

41
articles/safety_policy.md Normal file
View File

@ -0,0 +1,41 @@
ゆずねっとでは、uwuzuの安全機能を含め、ユーザーの皆様に快適で安心してご利用いただけるよう、さまざまな対策を行っています。
このページでは、その一部をご紹介します!
## 不正アクセスへの対策
ゆずねっとでは、不正アクセスへの対策として、以下の対策を行っています!
### ログイン通知
新たなログインが確認された場合には、ユーザーへそのことを通知する機能が実装されています。
### ユーザーデータの暗号化・ハッシュ化
以下の情報は、各ユーザーごとに発行される鍵を使って暗号化し、安全に保護しています。
- メールアドレス
- 二段階認証の生成コード
- IPアドレス
また、以下のデータは、ハッシュ化(一度変換すると元に戻せない形式)した上で保存しています。
- パスワード
- 二段階認証のバックアップコード
### Captcha認証
ログイン時に、人間による正しい操作であることを確認するためのCaptcha認証を導入しています。
### Self-XSSにも強い認証方式
ユーザーが正しくログインしているかを確認するための鍵を2つ用いて認証をしています。
このうち一つが流出してももう片方の鍵を生成したりログインをすることはできません。
## "もしも"に備えたサーバー運営
ゆずねっとでは、災害やサーバー障害などの"もしも"に備えた、運営を行っております。
以下のような対策により、ユーザーのデータが決して壊れないように対策しています。
### 停電対策
万が一停電が発生しても、UPS(無停電電源装置)によりサーバーへの電力供給を継続します。
さらに、停電が発生すると25秒以内に運営へ通知が届き、5分以上復旧しない場合はデータを保護するためにサーバーを自動的に停止します。
### データ破損対策
万が一ゆずねっとのサーバーが壊れたとしても、データを復旧できるように、ゆずねっとでは定期的にバックアップを保存するようになっています。
バックアップは暗号化され、別のサーバーに最大31日間保存されるため、迅速な復旧が可能です。
### 異常事態対策
サーバーに異常が発生し、アクセスできなくなる事態を防ぐため、24時間体制で自動監視を行っています。
万が一サーバーが停止すると、即座に運営に通知され、早急に対応できる仕組みになっています。

View File

@ -0,0 +1,6 @@
ゆずねっとにサービスステータスページができました!
ゆずねっとの稼働状況やメンテナンスのお知らせなどが表示されます!
是非ご活用ください。
<a href='https://status.uwuzu.net/' class='link_btn'>ゆずねっとステータスページ</a>

27
articles/use_markdown.md Normal file
View File

@ -0,0 +1,27 @@
ユーズで使用できる装飾(一部Markdown)は以下のものです。
```
# [ここにテキスト] (h1サイズで文字を表示)
## [ここにテキスト] (h2サイズで文字を表示)
### [ここにテキスト] (h3サイズで文字を表示)
[[buruburu [ここにテキスト]]] (文字をブルブルさせて表示)
`[ここにテキスト]` (インラインコードとして表示)
***[ここにテキスト]*** (斜体と太字を適用して表示)
**[ここにテキスト]** (太字を適用して表示)
*[ここにテキスト]* (斜体を適用して表示)
~~[ここにテキスト]~~ (文字に取り消し線を入れて表示)
>>> [ここにテキスト] (引用として表示)
||[ここにテキスト]|| (カーソルをのせて文字を表示)
- [ここにテキスト] (箇条書きとして左に点を表示)
```
また、以下の場合に自動的にユーズに装飾が加わることがあります
```
@[userid] (ユーザー名のリンクで表示)
:[emojiname]: (カスタム絵文字で表示)
#[hashtag] (ハッシュタグで表示)
https://youtube.com/watch?v=XXXXXXXXXXX (YouTubeの動画埋め込み(youtu.beなども対応))
https://nicovideo.jp/watch/smXXXXXXX (ニコニコ動画の埋め込み(nico.msなども対応))
その他URL (URLとして装飾)
```
これらの装飾を組み合わせて是非面白いユーズを作ってみてください!

View File

@ -4,57 +4,49 @@
"title": "安全への取り組み", "title": "安全への取り組み",
"id": "safety_policy", "id": "safety_policy",
"date": "2025-03-20", "date": "2025-03-20",
"description": "ゆずねっとで行われている安全への取り組みについてです!", "description": "ゆずねっとで行われている安全への取り組みについてです!"
"content": "ゆずねっとでは、uwuzuの安全機能を含め、ユーザーの皆様に快適で安心してご利用いただけるよう、さまざまな対策を行っています。 \nこのページでは、その一部をご紹介します \n## 不正アクセスへの対策 \nゆずねっとでは、不正アクセスへの対策として、以下の対策を行っています \n \n### ログイン通知 \n新たなログインが確認された場合には、ユーザーへそのことを通知する機能が実装されています。 \n \n### ユーザーデータの暗号化・ハッシュ化 \n以下の情報は、各ユーザーごとに発行される鍵を使って暗号化し、安全に保護しています。 \n- メールアドレス \n- 二段階認証の生成コード \n- IPアドレス \n \nまた、以下のデータは、ハッシュ化一度変換すると元に戻せない形式した上で保存しています。 \n- パスワード \n- 二段階認証のバックアップコード \n \n### Captcha認証 \nログイン時に、人間による正しい操作であることを確認するためのCaptcha認証を導入しています。 \n \n### Self-XSSにも強い認証方式 \nユーザーが正しくログインしているかを確認するための鍵を2つ用いて認証をしています。 \nこのうち一つが流出してももう片方の鍵を生成したりログインをすることはできません。 \n \n## \"もしも\"に備えたサーバー運営 \nゆずねっとでは、災害やサーバー障害などの\"もしも\"に備えた、運営を行っております。 \n以下のような対策により、ユーザーのデータが決して壊れないように対策しています。 \n \n### 停電対策 \n万が一停電が発生しても、UPS(無停電電源装置)によりサーバーへの電力供給を継続します。 \nさらに、停電が発生すると25秒以内に運営へ通知が届き、5分以上復旧しない場合はデータを保護するためにサーバーを自動的に停止します。 \n \n### データ破損対策 \n万が一ゆずねっとのサーバーが壊れたとしても、データを復旧できるように、ゆずねっとでは定期的にバックアップを保存するようになっています。 \nバックアップは暗号化され、別のサーバーに最大31日間保存されるため、迅速な復旧が可能です。 \n \n### 異常事態対策 \nサーバーに異常が発生し、アクセスできなくなる事態を防ぐため、24時間体制で自動監視を行っています。 \n万が一サーバーが停止すると、即座に運営に通知され、早急に対応できる仕組みになっています。 \n"
}, },
{ {
"title": "ステータスページについて", "title": "ステータスページについて",
"id": "status_uwuzu_net", "id": "status_uwuzu_net",
"date": "2025-02-11", "date": "2025-02-11",
"description": "ゆずねっとにサービスステータスページができました!", "description": "ゆずねっとにサービスステータスページができました!"
"content": "ゆずねっとにサービスステータスページができました! \nゆずねっとの稼働状況やメンテナンスのお知らせなどが表示されます \n \n是非ご活用ください。 \n<a href='https://status.uwuzu.net/' class='link_btn'>ゆずねっとステータスページ</a>"
}, },
{ {
"title": "バルス祭り", "title": "バルス祭り",
"id": "balsu_festival", "id": "balsu_festival",
"date": "2024-08-30", "date": "2024-08-30",
"description": "本日考えられるバルス祭りについて書きました", "description": "本日考えられるバルス祭りについて書きました"
"content": "バルス祭りについてですが... \n現在ゆずねっとはユーザ数が100人程度のためおそらくゆずねっと上でバルス祭りを行ってもサーバーはダウンしないものと考えております。 \n是非バルスしちゃってください。 \nなお、TLを埋め尽くすほどのユーズはお控えください。 \n \nゆずねっと以外にも簡単にバルスできるボタンを作りましたので是非ご活用ください \n<a href='https://share.uwuzu.net/?text=バルス!!!' class='link_btn'>バルスる</a>"
}, },
{ {
"title": "ユーズで使用できる装飾について", "title": "ユーズで使用できる装飾について",
"id": "use_markdown", "id": "use_markdown",
"date": "2024-08-30", "date": "2024-08-30",
"description": "uwuzuで使用できる装飾一覧です。", "description": "uwuzuで使用できる装飾一覧です。"
"content": "ユーズで使用できる装飾(一部Markdown)は以下のものです。 \n``` \n# [ここにテキスト] (h1サイズで文字を表示) \n## [ここにテキスト] (h2サイズで文字を表示) \n### [ここにテキスト] (h3サイズで文字を表示) \n[[buruburu [ここにテキスト]]] (文字をブルブルさせて表示) \n`[ここにテキスト]` (インラインコードとして表示) \n***[ここにテキスト]*** (斜体と太字を適用して表示) \n**[ここにテキスト]** (太字を適用して表示) \n*[ここにテキスト]* (斜体を適用して表示) \n~~[ここにテキスト]~~ (文字に取り消し線を入れて表示) \n>>> [ここにテキスト] (引用として表示) \n||[ここにテキスト]|| (カーソルをのせて文字を表示) \n- [ここにテキスト] (箇条書きとして左に点を表示) \n``` \nまた、以下の場合に自動的にユーズに装飾が加わることがあります \n``` \n@[userid] (ユーザー名のリンクで表示) \n:[emojiname]: (カスタム絵文字で表示) \n#[hashtag] (ハッシュタグで表示) \n \nhttps://youtube.com/watch?v=XXXXXXXXXXX (YouTubeの動画埋め込み(youtu.beなども対応)) \nhttps://nicovideo.jp/watch/smXXXXXXX (ニコニコ動画の埋め込み(nico.msなども対応)) \n \nその他URL (URLとして装飾) \n``` \nこれらの装飾を組み合わせて是非面白いユーズを作ってみてください"
}, },
{ {
"title": "TLにご飯の画像が多すぎる", "title": "TLにご飯の画像が多すぎる",
"id": "meshitero_timeline", "id": "meshitero_timeline",
"date": "2024-08-29", "date": "2024-08-29",
"description": "ゆずねっとで飯テロが横行している件についてです", "description": "ゆずねっとで飯テロが横行している件についてです"
"content": "ご飯の画像が多すぎることに関してですが、これはこれで私(daichimarukana)は良いと思っていますので大丈夫でしょう \nもし深夜時間帯に閲覧してしまい猛烈な食欲に駆り立てられてしまったのであれば申し訳ございません。 \n \nご飯の画像が多すぎることを解消するにはユーザー数を増やすことや様々なトピックのユーズをすることが重要だと考えていますので、是非新規さんを連れてきたりじゃんじゃんユーズしてみてください🤗(利用規約の範囲内でね!) \n"
}, },
{ {
"title": "パスワードを忘れた", "title": "パスワードを忘れた",
"id": "forgot_password", "id": "forgot_password",
"date": "2024-08-29", "date": "2024-08-29",
"description": "パスワードの復元(変更)方法について書きました", "description": "パスワードの復元(変更)方法について書きました"
"content": "パスワードを忘れた場合、ゆずねっとでは二通りの方法でパスワードの復元が行えます。 \n**なお、パスワードの復元にはメールアドレスの設定が必要です。** \n**メールアドレスの設定をされたいない方はパスワードの復元はできません。** \n \n## 1. ユーザーIDとメールアドレスの入力 \nゆずねっとの未ログイン時トップページより、ログインボタンを押し、下部にあるパスワード復元ボタンを押してください。 \nパスワードの復元ページに進みますと、ユーザーIDとメールアドレスの入力ができるので設定したユーザーIDとメールアドレスを入力して次へ進んでください。 \n \n## 2. パスワードの再設定 \n二段階認証を設定しているアカウントでしたら、二段階認証コードと新しいパスワードを入力して次へ進んでください。 \nもし二段階認証を設定していないアカウントでしたら、メールで認証するボタンを押してください。 \nこれによりメールで二段階認証ができるようになります。 \nメールの送信には少々時間がかかりますのでページの読み込みが終るまでお待ち下さい。 \nメールを受信できたら、メールに記載されている二段階認証コードと新しいパスワードを入力して次へ進んでください。 \n \n## 3. ログイン \nこれでパスワードの復元(パスワードリセット)は完了です! \n通常のログインページより新しいパスワードでログインをしてください。"
}, },
{ {
"title": "ユーザーIDを変更したい", "title": "ユーザーIDを変更したい",
"id": "change_userid", "id": "change_userid",
"date": "2024-08-29", "date": "2024-08-29",
"description": "結論から申し上げますとユーザーIDの変更はできません。", "description": "結論から申し上げますとユーザーIDの変更はできません。"
"content": "残念ながらuwuzuの仕様上ユーザーIDの変更はできません。"
}, },
{ {
"title": "サポートサイトを開設しました!", "title": "サポートサイトを開設しました!",
"id": "open_uwuzu_net_support", "id": "open_uwuzu_net_support",
"date": "2024-08-29", "date": "2024-08-29",
"description": "ゆずねっとのサポートサイトを開設しました!", "description": "ゆずねっとのサポートサイトを開設しました!"
"content": "ゆずねっとのサポートサイトを開設しました! \n是非このサポートサイトをご活用ください \n \n## 使い方 \nサイトを開くとトップページに記事一覧が表示されます。 \nお求めの記事をタップすると記事が表示されます \n \nまた、サイト上部の検索欄より検索も可能です"
} }
] ]
} }

View File

@ -232,6 +232,12 @@ main .article pre {
text-align: center; text-align: center;
} }
footer {
margin: 0 auto;
text-align: center;
background-color: #f0f0f0;
}
@keyframes slideDown { @keyframes slideDown {
0%, 0%,
100% { 100% {

View File

@ -43,6 +43,14 @@
<div id="docs" /> <div id="docs" />
</main> </main>
<footer>
&copy;2024-2025
<br>
Created by Daichimarukana
<br>
Edited by Last2014
</footer>
</body> </body>
<script src="/js/script.js"></script> <script src="/js/script.js"></script>

View File

@ -127,7 +127,7 @@ document.addEventListener("DOMContentLoaded", async () => {
} }
// 記事表示 // 記事表示
function showArticle(article) { async function showArticle(article) {
// #docs・#top取得 // #docs・#top取得
const docsElement = document.querySelector("#docs"); const docsElement = document.querySelector("#docs");
const topElement = document.querySelector("#top"); const topElement = document.querySelector("#top");
@ -147,13 +147,23 @@ document.addEventListener("DOMContentLoaded", async () => {
dateElement.className = "date"; dateElement.className = "date";
dateElement.textContent = String(article.date); dateElement.textContent = String(article.date);
// 内容取得 // 内容
const contentElement = document.createElement("div"); const contentElement = document.createElement("div");
contentElement.className = "content"; contentElement.className = "content";
// Markdownパース // 記事内容
try { try {
const content = article.content || ''; // mdファイル読み込み
const response = await fetch(`/articles/${article.id}.md`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.text();
// パース
const content = data || '';
if (typeof marked !== 'undefined' && typeof marked.parse === 'function') { if (typeof marked !== 'undefined' && typeof marked.parse === 'function') {
contentElement.innerHTML = marked.parse(content); contentElement.innerHTML = marked.parse(content);
@ -162,7 +172,7 @@ document.addEventListener("DOMContentLoaded", async () => {
} }
} catch (error) { } catch (error) {
console.error("Markdownパースエラー:", error); console.error("Markdownパースエラー:", error);
contentElement.textContent = article.content || ''; contentElement.textContent = response || '';
} }
// 親要素に追加 // 親要素に追加