🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

949閲覧

マークダウン記法をHTMLに変換して表示する時に、一瞬マークダウン記法が見えてしまう

howaito

総合スコア9

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/02/18 06:33

前提・実現したいこと

今回解決したいことは『マークダウン記法をHTMLに変換して表示する時に、一瞬マークダウン記法が見えてしまう』 ことです。

現在、LaravelにてMarked.jsを利用して、マークダウン記法での投稿機能を作成しようとしています。

そこで、マークダウン記法をデータベースに保存した後に、保存したテキストをHTMLに変換して表示したい時に、
データベースに保存したマークダウン記法のテキストを取得→bladeファイルに表示→Marked.jsを使ってHTMLに変換
という手順だと、一瞬、マークダウン記法(HTMLに変換前)のテキストが見えてしまいます。

例えば、teratail(当サイト)もマークダウン記法ですが、一瞬マークダウン記法が見えてしまうことはありません。

このような機能はどのように実現しているのか、どのようにすれば実現できそうかのアイデアを頂きたいですm(_ _)m

考えた方法

2つほど考えた方法があります。

①:最初にマークダウン記法を表示する時はcssでdisplay:none;などして、非表示にしておき、HTMLに変換後、noneを取り除いて、ユーザーが見えるようにする。

②:データベースに保存前にMarked.jsを通して、HTMLに変換してから、データベースに保存する方法。(つまり、データベースにはHTMLを保存する。)

この程度の方法しか、思いつかず、実際にWebアプリを開発するとしたら、どのような方法が一般的なのかと疑問に思っています。

アドバイスを頂けますと大変嬉しいです。

大変お手数をおかけしますが、何卒よろしくお願いしますm(_ _)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/02/18 06:48

ブラウザ側でマークダウンを HTML に変換すると表示が切り替わるのは防げないでしょうけど、サーバー側で変換すれば大丈夫では。なお、編集することを考えると、データベースにはマークダウンを保存した方が良いと思います。
howaito

2021/02/20 00:26

@hoshi-takanori さん コメントありがとうございます! アドバイス通り、サーバー側で変換させて頂きます! ありがとうございます!!
guest

回答2

0

そこで、マークダウン記法をデータベースに保存した後に、保存したテキストをHTMLに変換して表示したい時に、

データベースに保存したマークダウン記法のテキストを取得→bladeファイルに表示→Marked.jsを使ってHTMLに変換
という手順だと、一瞬、マークダウン記法(HTMLに変換前)のテキストが見えてしまいます。

JavaScriptを使わずに、PHP側でマークダウンをHTMLに変換して表示すればよいのではないでしょうか。

投稿2021/02/18 06:50

kei344

総合スコア69596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

howaito

2021/02/20 00:27

回答ありがとうございますm(_ _)m アドバイス通り、サーバー側で変換することにさせて頂きました!
guest

0

ベストアンサー

2はあり得ません。データの加工ですし、編集時に毎回正確に戻す必要がありますし、別カラムに保存するのも無駄です。
あくまで画面表示時の対応ですしね。

PHPにもマークダウンライブラリはあるので(Composerで導入できる)、そちらを使ってください。

投稿2021/02/18 07:11

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

howaito

2021/02/20 00:28

回答ありがとうございますm(_ _)m おかげでライブラリを使用して、対応できそうです! ライブラリの存在を教えて頂きましたので、ベストアンサーとさせて頂きました。 ありがとうございました!
m.ts10806

2021/02/20 00:29

teratailのマークダウンの形式参考になるんじゃないでしょうか。 Qiitaとかでもいいですけど。Githubとかでもいいですけど。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問