ページの公開

:bookmark: このガイドでは、Discourse のページ発行機能の使用方法について説明します。この機能により、スタッフユーザーはトピックをカスタムスタイリングが施されたスタンドアロンの静的ページに変換できます。利用規約やプライバシーポリシーのページなどがこれにあたります。

:person_raising_hand: 必要なユーザーレベル: スタッフ

Discourse での静的ページの公開

ページ発行機能により、スタッフユーザーはトピックからスタンドアロンの静的ページを作成できます。これは、利用規約やプライバシーポリシーのページを作成するプロセスと似ています。

概要

このドキュメントでは、以下について説明します。

  • ページ発行の有効化
  • トピックをページとして発行する
  • トピックの発行を解除する
  • 一般的な問題と解決策
  • よくある質問 (FAQ)
  • その他のリソース

ページ発行の有効化

  1. 管理 > 設定 に移動します。
  2. ページ発行を有効にする 設定を有効にします。
    Enable Page Publishing

ログインが必要な場合にページ発行を有効にする

ユーザーがログインしていない場合でも公開されたページを表示できるようにするには:

  1. 管理 > 設定show_published_pages_login_required 設定を有効にします。
    Show Published Pages

トピックの発行

  1. 公開トピックの最初の投稿に移動し、省略記号アイコン (...) を選択します。
    Ellipsis Menu

  2. レンチアイコンを選択します。
    Wrench Icon

  3. 「ページ発行 (Page Publishing)」オプションを選択します。

  4. モーダルダイアログが表示され、スラッグ(投稿タイトルから事前入力可能)を確認し、発行されたページの URL をプレビューできます。

:warning: ページ発行を許可するには、セキュアアップロード (secure upload) サイト設定を無効にする必要があります。

⋌small>:information_source: ホストされているサイトの場合、セキュアアップロードはエンタープライズプランに制限されています。

公開されたトピック

公開されたページ

トピックの発行を解除する

  1. 通知の下にある 発行設定 (Publishing Settings) を選択します。

  2. 発行解除 (Unpublish) をクリックします

  3. ページが発行解除されます。

一般的な問題と解決策

ログアウト時に公開されたページが表示されない

管理 > 設定show_published_pages_login_required 設定が有効になっていることを確認してください。

公開されたページに Discourse のヘッダーを追加する

現在、静的ページは最小限にすることを意図しており、標準の Discourse のヘッダーとフッターは含まれていません。

よくある質問 (FAQ)

FAQ ページや「概要」ページを公開できますか?

必要なコンテンツで新しいトピックを作成し、それをページとして発行できます。サイト設定内のリンクをこれらの新しいページに向けるように変更してください。

公開されたページの見た目をカスタマイズするにはどうすればよいですか?

HTML ドキュメントの構造と対応する CSS セレクターを使用して、管理 > カスタマイズ > テーマ > CSS の下でカスタムスタイルを適用します。

その他のリソース

「いいね!」 118
Best landing page solution
ProCourse Static Pages
Using Discourse as a News Blog and Forum - Any Known Good Examples?
How to add a new page into the community? (Login isolated page)
Blog Post Styling
Is anyone here using their Discourse instance as their entire website?
How do I redirect urls or create new ones?
Discourse + CMS, which one?
Is there an upper limit to how many pages can be published?
Host HTML page on Discourse install
Integrating webpage to current forum
Open (anon) interaction with a forum
Shared Drafts: Allow staff to collaborate on posts before publishing
Is there any way to listen User login event using Theme component
How to share only few posts to public as links?
Open (anon) interaction with a forum
Create a "Docs" page like discource meta's
Invite people to reply to a topic without them needing to create an account
Allow anonymous users to view a topic?
What's the usage of "show published pages login required" setting?
How to add contact us page?
Embed my Discourse Forum as IFrame
Is there any way to restrict posting in a topic to members of a group, but allow all users to read the topic?
Order posts by Title
Edit Code
Published page not visible?
Inline Tooltips
Making the About and FAQ visible to anon
Allow published pages to be visible to anon
Customize login page
7 myths why a blog isn't needed in the discourse core
Landing Page
Customizing FAQs and Guidelines
ProCourse Static Pages
Can I use secure media and page publishing simultaneously in Discourse?
Publishing - how deep/good is fine-grained permisson control?
Publish Direct Messages
500 character ‘Reject Reason’ is too small a limit
How do I create a blank page within Discourse
How-to use Discourse for managing a collaborative newsletter?
Customize Login pop-up box?
Building a custom html page in discourse
Page for not-logged in users with a single topic displayed
Duplicate Terms of Service/Privacy Policy
Paid Groups
Help custom page?
Should Discourse make an effort to become the next best "CMS"
Is It Possible to Create Custom Pages in Discourse?
How to Enable Terms of Service and Privacy Policy Pages in Discourse?
Is It Possible to Create Custom Pages in Discourse?
Blank Pages Related Help
How do root level links work?
Creating custom pages like "About" and "FAQ"
Multi-factor authentication enforcement lock in without help
Can you create a custom landing page?
Static pages for things like guidelines?
Create a new text page option?
Change topic visibility in an admin category to public
Create a custom page with theme cli?
DiscoTOC - automatic table of contents
Adding a static web page
[Urgent] privacy policy page
How to make a website with Discourse
Generate static file in discourse
Discourse for Teams is here!
Category Previews
Public Static pages and Private Forums - possible?
Filter view for muted categories
Category Previews
How to hide a single topic from showing up in "latest"?
ProCourse Static Pages
Control the visibility of /faq and /about
[Question/Request] Featured image url for post
Custom Homepage for Groups
Embedding private discussions on a wordpress site
Table of Contents not working on Published Pages

まず実際に試してみないといけないので、以下の内容は現実とズレがあるかもしれませんが:

この権限モデルは、ページの内容が常に2箇所に存在する状況を作り出しているように思えます。1つは関連する Discourse カテゴリに、もう1つは公開されたページ自体にあります。Discourse ユーザーと一般公開したいページの内容が似ている、あるいは同一である場合、これはもちろん重複して見えてしまいます。

一方、ページに「誰でも閲覧可能」フラグがあれば、閲覧・編集できる人を少数グループに制限しつつ、他の Discourse ユーザーがコンテンツにアクセスできるのは公開されたリンクのみ、という構成が可能になります。

(ここでは「ドキュメントサイト」というユースケースを想定しています。)

それ以外は、実際に試すのがとても楽しみです!

「いいね!」 8

素晴らしいですね!ユーザーの声を聞いていただき、改めてありがとうございます。Discourse が持つ「みんなでより良くしていこう」という雰囲気が大好きです。これからは積極的に活用させていただきます。

あるユーザーが、インストールが少し失敗してしまった場合の修正について話している際、ケーキに追加できるもう一つの「仕上げ」として、まだ残っている機能に気づいたそうです。

現在、ログイン必須のサイトでは /faq と /about が非表示になっていますが、これらも公開できるようにする機能は追加できないでしょうか?もちろん、先ほどリリースされた既存の機能を使って、独自の /faq ページを作成し、設定でリンクを変更して明示的にリンクを貼ることは可能です。しかし、これは見た目が美しくなく、既存のナビゲーションは依然として非表示のままです。/about については、そもそもそのようなことはできません。

「いいね!」 9

この機能に追加すると良いのは、投稿を Onebox 対応にすることで、ユーザーが簡単にコンテンツを共有できるようにすることです。

「いいね!」 15

初心者で無知なことをお許しください。HTML/CSSの分野ではまだ未熟者ですが、公開されたページにテーマカラーを適用するにはどうすればよいでしょうか?最も単純な方法としては、ダークモードの体験をフォーラムと同じようにするために、背景を暗く、文字を白にしたいと考えています。

これはすでに製品に含まれている機能でしょうか、それともHTML/CSSをいじる必要がありますか?後者の場合、どなたか方向性を示唆していただけませんでしょうか?よろしくお願いいたします。

「いいね!」 4

この件は別の特徴リクエストとして作成いただけますでしょうか?これはページ公開機能とは直接関係ありません。つまり、これを可能にするためにページ公開に関する変更を加える必要はないからです。これらの「静的」ページがほぼ同じ動作を持つ方が望ましいとは私も思います。ただし、いくつかの解決策が考えられます(何もしない?サイト設定を追加する?これらをページ公開に移行する?など)ので、この件については専用のトピックを作成した方が良いかもしれません。

「いいね!」 8

公開ページで GTM が読み込まれていませんか?あればいいのですが。

「いいね!」 2

うーん、それは本当に良い指摘ですね。

ここで解決策を考えてみましょうか……type="text/javascript"type="text/discourse-plugin"を別々に扱うのはどうでしょうか?API には後者が必要ですよね?

「いいね!」 5

はい、テーマフィールドに text/javascript を含めることは既にサポートされていると思いますので、この分野には確実に解決策があります。

「いいね!」 7

それは素晴らしいですね。

「いいね!」 1

つまり、現在、レスポンシブな公開ページを実現することは不可能です。しかし、このサイトでは特に以下の2点が求められています。

  1. 公開メディアへの共有時に画像を利用可能にすること、および
  2. レスポンシブ/リサイズされた画像を表示すること(特にモバイル端末で)。モバイル端末ではCSSで画像をリサイズするだけで済むはずです。それで問題ないですよね?
「いいね!」 6

公開ページに Discourse ヘッダーがあることに +1 します。ウェブサイトのロゴ、カスタムヘッダーリンク、そして愛すべきハンバーガーメニューがなくて寂しいです :slight_smile:

もう一つ奇妙な点:投稿内ではライトボックス画像が素敵なポップアップで開きますが、公開ページでは新しいタブで開きます…

「いいね!」 7

必要なのは、そのような機能を追加するテーマコンポーネントのセットだと思います。以前、この機能を使わなければならなかった最後のクライアントは、トピック作成者を削除したいと要望していました。これについては、人々のニーズに合致するものを推測するのは難しいと思います!

「いいね!」 6

現在、公開ページに「シンプル」な(API を使用しない)JavaScript サポートを追加するための取り組みは進められていますか?それとも、近い将来から中期的にはこの計画は諦めるべきでしょうか?

「いいね!」 9

このページに外部の非 Discourse JSON を表示することはできますか?ここでは PHP コードが使えず、Discourse が HTML の大部分を除去してしまうため、どのようにすればよいかわかりません。

「いいね!」 2

公開されたページで問題が発生しています。コードブロックの内容をコピーするボタンが公開ページに表示されません。スクリーンショット: Screenshot by Lightshot

この問題を再現できますか?解決策はありますか?

「いいね!」 2

@riking さん、ありがとうございます!

どうやら、テーマコンポーネントの header または footer にある「通常の」text/javascript は、公開されたページで実行されているようです。

「いいね!」 8

ハッ!どうやら、テーマコンポーネントをページ公開と連携させるためのちょっと荒技な方法があるようです。

公開されたページにヘッダーやフッターを追加しようと考えているのですが、テーマコンポーネントを使うのが良さそうです。ただ、近い将来に壊れる可能性のあるものを無理やり実装するのは良くない気がします。

@riking さん、公開ページで headerfooter 内の text/javascript タイプが機能しているのは意図しないものだったようですね。これは 修正 される予定ですか、それとも公開ページの拡張に 利用 される予定ですか?

DiscPage の作者である @syl さんは、Page Publishing 機能を使って DiscPage プラグインを再実装する可能性 について触れていました。@syl さん、まだそのご予定はありますか?@riking さん、両方の機能を統合する上で、最も抵抗の少ない道はどのようなものだと思いますか?

「いいね!」 7

残念ながら、「Page Publishing」機能は私の要件を満たしません。これを利用するには、公開されたページが以下の条件を満たす必要があります:

  1. 通常の Discourse レイアウト内(利用規約プライバシーポリシーと同様に、標準的な Discourse ヘッダー付き)に表示されること、
  2. 通常の(装飾された)トピックと同様にレンダリングされ、bbcode やプラグインをサポートすること。
「いいね!」 15

その間、私はデフォルトのDiscourseカスタマイズ機能を使用しました:

  1. 追加された要素を特定します(例:published-page-footer-links CSSクラスを使用)。
  2. デフォルトではこの要素を非表示にし、公開ページでのみ表示するようにCSSをカスタマイズします。
  3. 要素をFooterスペースに追加します。

2. CSSに以下を追加:

/* 公開ページでのみフッターリンクを表示 */
.published-page-footer-links { display: none; }
.published-page .published-page-footer-links { display: block;}

3. Footerに以下を追加:

<nav class="published-page-footer-links">
こんにちは!これは公開ページ用のフッターです!
</nav>
「いいね!」 8