do it better

main
Paul Schneider 9 years ago
parent dbd12ba5d5
commit 530c0ccd21
3 changed files with 61 additions and 30 deletions

@ -9,7 +9,14 @@ using Microsoft.AspNet.Razor.TagHelpers;
namespace Yavsc.Helpers
{
[HtmlTargetElement("div", Attributes = MarkdownContentAttributeName)]
[HtmlTargetElement("h1", Attributes = MarkdownContentAttributeName)]
[HtmlTargetElement("h2", Attributes = MarkdownContentAttributeName)]
[HtmlTargetElement("h3", Attributes = MarkdownContentAttributeName)]
[HtmlTargetElement("p", Attributes = "ismarkdown")]
[HtmlTargetElement("div", Attributes = "ismarkdown")]
[HtmlTargetElement("h1", Attributes = "ismarkdown")]
[HtmlTargetElement("h2", Attributes = "ismarkdown")]
[HtmlTargetElement("h3", Attributes = "ismarkdown")]
[HtmlTargetElement("markdown")]
[OutputElementHint("p")]
public class MarkdownTagHelper : TagHelper

@ -32,19 +32,47 @@
}
</style>
<environment names="Development">
<script src="~/js/dropzone.js"></script>
<script src="~/js/quill.js"></script>
<script src="~/js/showdown.js"></script>
<script src="~/js/to-markdown.js"></script>
<script src="~/js/md-helpers.js"></script>
</environment>
<script src="~/js/dropzone.js"></script>
<script src="~/js/quill.js"></script>
<script src="~/js/showdown.js"></script>
<script src="~/js/to-markdown.js"></script>
<script src="~/js/md-helpers.js"></script>
<script>
$(document).ready(function() {
var editortitre = new Quill('#Titlecnt', {
$(".mdcoding").addClass('hidden');
var converter = new showdown.Converter();
var htmlize = function(content) {
return converter.makeHtml(content);
};
var onchange = function(){
var nv = $(this).val();
var tid = $(this).data('from');
$('#'+tid).html(htmlize(nv))
};
$("#Content").change(onchange);
$("#Title").change(onchange);
$('#vcbtn').change(function(){
var vc = $(this).prop('checked');
if (vc) {
$("#contentview").addClass('hidden');
$("#titleview").addClass('hidden');
$(".mdcoding").removeClass('hidden');
} else {
$("#contentview").removeClass('hidden');
$("#titleview").removeClass('hidden');
$(".mdcoding").addClass('hidden');
}
});
var editortitre = new Quill('#titleview', {
modules: { toolbar: '#Titletoolbar' },
theme: 'snow'
});
var editorcontenu = new Quill('#contentcnt', {
var editorcontenu = new Quill('#contentview', {
modules: { toolbar: '#contentbar' },
theme: 'snow'
});
@ -57,7 +85,7 @@
editortitre.on('text-change',function(delta,source){
if (source=='user')
{
updateMD('Title',$('#Titlecnt').html())
updateMD('Title',$('#titleview').html())
}
});
editorcontenu.on('selection-change', function(range) {
@ -69,12 +97,12 @@ editortitre.on('text-change',function(delta,source){
editorcontenu.on('text-change',function(delta,source){
if (source=='user')
{
updateMD('Content',$('#contentcnt').html())
updateMD('Content',$('#contentview').html())
}
});
$('#contentcnt').focus(function(){
$('#contentview').focus(function(){
$('#contentbar').removeClass('hidden');
$('#Titletoolbar').addClass('hidden');
})
@ -97,6 +125,7 @@ editorcontenu.on('text-change',function(delta,source){
}
<h2 > @SR["Blog post edition"] </h2>
<label><input type="checkbox" id="vcbtn" />Editer le code source Markdown</label>
@Html.ValidationSummary()
@ -108,7 +137,7 @@ editorcontenu.on('text-change',function(delta,source){
<button class="ql-format-button ql-strike"></button>
</div>
<h2 id="Titlecnt"><markdown>@Model.Title</markdown></h2>
<h2 id="titleview" ismarkdown>@Model.Title</h2>
<div id="contentbar" class="hidden ql-snow ql-toolbar">
<span class="ql-format-group">
@ -135,7 +164,7 @@ editorcontenu.on('text-change',function(delta,source){
</span>
</div>
<div markdown="@Model.Content" base="~/@Model.Id" site="SiteSettings.Value" id="contentcnt" ></div>
<div markdown="@Model.Content" base="~/@Model.Id" site="SiteSettings.Value" id="contentview" ></div>
<hr>
<form asp-action="Edit" >
@ -146,10 +175,12 @@ editorcontenu.on('text-change',function(delta,source){
<div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="Id" />
<input type="hidden" asp-for="AuthorId" />
<div class="form-group">
<div class="form-group mdcoding">
<label asp-for="Title" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Title" class="form-control" />
<input asp-for="Title" class="form-control" data-from="titleview"/>
<span asp-validation-for="Title" class="text-danger" >
</span>
</div>
@ -162,10 +193,10 @@ editorcontenu.on('text-change',function(delta,source){
</span>
</div>
</div>
<div class="form-group">
<label asp-for="Content" class="col-md-2 control-label"></label>
<div class="form-group mdcoding">
<label asp-for="Content" class="col-md-2 control-label" ></label>
<div class="col-md-10">
<textarea asp-for="Content" class="form-control" >
<textarea asp-for="Content" class="form-control" id="Content" data-from="contentview">
</textarea>
<span asp-validation-for="Content" class="text-danger" >
</span>

@ -7,12 +7,12 @@
<markdown>
##L'objectif
## L'objectif
Cette application est construite pour mettre en relation des artistes
du domaine musical avec leur public.
##Le fonctionnement
## Le fonctionnement
Les utilisateurs du site sont soit artiste, soit client, soit administrateur. ils ont tous droit à leur blog.
Pour les artistes, c'est un moyen de promouvoir leur activité.
@ -54,7 +54,7 @@ Une fois sa prestation associée exécutée, les paiements relatifs sont effectu
Pour un contrat exécuté et non honoré par le client, le processus de poursuite en recouvrement est engagé, sinon, le contrat est archivé,
des attestations de paiement sont disponible pour l'artiste et la facture est marquée payée, puis repostée au client.
###Pour l'artiste
### Pour l'artiste
L'artiste choisit plusieurs paramètres qui vont faire son profile :
@ -67,7 +67,7 @@ L'artiste choisit plusieurs paramètres qui vont faire son profile :
* Des paramètres supplémentaires en fonctions de son type d'activité par exemple, pour
les ensembles, leur taille, le cas échéant, leur répertoire ou des indications sur le style de leur musique)
###Pour le client
### Pour le client
Il choisit un lieu et une date pour déclarer un événement avenir
(il peut bien-sûr en programmer autant qu'il le veut).
@ -77,7 +77,7 @@ sur la base d'un de ses projets événementiel, la négociation d'un contrat de
Il a accès à la connaissance des journées connues comme libres des artistes par le système.
##La confidentialité
## La confidentialité
À aucun moment, aucune adresse postale, aucune adresse e-mail ni aucun numéro de téléphone
ne sont transmis ni aux clients, ni aux artistes. Seul le système a accès à ces informations.
@ -90,10 +90,3 @@ et programme la suppression complète de ces dites informations dans les quinze
L'opération est annulable, jusqu'à deux semaines après sa programmation.
</markdown>
@foreach (var claim in Context.User.Claims) {
<div>@claim.Type: <b>@claim.Value</b></div>
}
Loading…