サンプルエディタ - stackOverflow と同じ
-
28-10-2019 - |
質問
エディタを作成して、書式設定されたテキストをデータベースに保存したいと考えています。StackOverFlow エディターのような機能を実行するサンプル エディターが必要です。
_sfdfdgdfgfg_
:下線付きのテキストの場合
/sfdfdgdfgfg/
:太字のテキストの場合
関数を使用して最初のものを置き換えます _
による <b>
そして二番目に </b>
(敬意。のために /
).
そこで私の質問は、終わりと最後のものを検出するにはどうすればよいですかということです _
そして /
入れ子になっている場合??
例えば :
/dsdfdfffddf _ dsdsdssd_/ ffdfddsgds /dfdfehgiuyhbf/ ....
このエディタを Java アプリケーションで使用します。
解決
他のヒント
それはあなたを幸せにするものではありませんが、おそらくパーサーの書き方を学ぶために時間を割くべきでしょう (そのためにはドラゴンブックが役立ちます)。パーサーのタスクは、やり方を知っていれば簡単ですが、知らない場合はほぼ不可能です。次のようなトークンを認識できるトークナイザーを作成します。 <start_underline, "_">
そして <end_underline, "_">
エディターで使用するフォーマット インジケーター用に 1 つ、その他すべてに 1 つです。結果は次のようになります。
文章: Hello _world_, /how are you?/
トークン: <text, "Hello ">,<start_underline, "_">,<text, "world">,<end_underline, "_">,<text, ", ">,<start_bold, "/">,<text, "how are you?">,<end_bold, "/">,
開始と終了は、ネストしても意味がないため、ブール変数を使用すると非常に簡単に追跡できます。そのため、トークナイザーで追跡をすでに行っています。
その後、これらのトークンを受け取り、それに応じてテキストエリアへの出力を構成するパーサー クラスを作成します。
ご存知のとおり、これは実際には原則の単なる適用です divide and conquer
. 。の任務 How do I do everything I want with my text?
は 3 つの部分に分かれています。
- 有用な構造によれば、この文字列は何についてのものでしょうか?(トークナイザーからの回答)
- 特定のテキストパートを処理するにはどうすればよいですか
x
可能な限りx
?(パーサーからの回答) - この文字列のパーサーの解釈をどのように表現すればよいでしょうか?(JTextpane などからの回答)
Tokenizer と Parser はどちらも追加のクラスである必要はありません。コンテキストは複雑ではないため、好みの Textarea タイプの拡張クラスのメソッドにするだけで済みます。
より詳細なアドバイスを提供することは役に立ちません。次善のステップは、おそらく自分で実装することだと思います。ただし、特定の部分について適切な解決策が見つからない場合は、ためらわずに尋ねてください。
stackoverflow.com ページのソースを確認して、統合を試みることができます...うまくいくはずだと思います...
http://blog.stackoverflow.com/2008/12/reverse-engineering-the-wmd-editor/
これは、MarkDownJ の使用方法を示す例です。
まず、MarkdownJ が Java アプリケーションで呼び出されるクラス ライブラリであることを確認します。
次に、次のコードを使用して MarkdownJ を呼び出します。
MarkdownProcessor m = new MarkdownProcessor();
String html = m.markdown("this is *a sample text*");
System.out.print("<html>"+html+"</html>");