Editeur Markdown

Bonjour à  tous,


 


Voilà  je prépare un projet que je souhaites réaliser avec Xcode 6 et l'App ne sera compatible qu'a partir de Yosemite. Il s'agit, comme le titre du sujet l'indique, d'un éditeur Markdown. Un de plus me dirais vous. Oui ! Pourquoi ? Parce que je n'ai pas trouvé de logiciel qui me convient et de plus, je trouve certains éditeurs à  des prix prohibitifs (plus de 10 euros je trouve que c'est trop). Donc, je me lance un défi, faire une App qui corresponds à  ce que je recherche pour un prix plus abordable (en fait, gratuit). Je verrais dans ce cas si les 17 euros de certains sont justifiables (ou non).


 


Passons aux choses sérieuses, je décomposes le projet en 3 grandes parties :


 


1/ Réaliser une App Document-Based Application et réaliser toute l'architecture "générale" de l'App. Un truc basique que je ne sais pas faire pour le moment c'est de sauvegarder le fichier :) (je veux bien quelque liens mais j'imagine qui faut aller voir du côté de NSData). Un certain nombre de choses seront mis en place, comme les menus, etc.


 


2/ Et c'est le principal sujet qui motive mon post aujourd'hui, comment mettre en place la syntaxe Markdown. C'est à  dire passer une chaine de caractère avec @**mot en gras** en un mot affiché en gras (je souhaite reprendre l'idée d'avoir la syntaxe pure avec les étoiles de chaque côtés mais aussi le mode qui affiche le résultat mais pas au format HTML). Je ne sais pas trop par où commencer sur ce sujet.


 


3/ L'interface graphique que je souhaite légère mais différente d'une App "Apple". C'est à  dire que je ne souhaites pas une barre d'icône en haut. Un truc un peu plus travaillé et surtout très discret. J'envisage d'utiliser paintcode mais je dois tout d'abord essayer la version d'essai.


 


Voilà , en gros.


 


De plus, je propose un rendez-vous mensuel (ici) pour vous faire part de mes avancés (si vous le souhaitez). Je part sur plusieurs mois de dev car je n'ai aucune idée du temps nécessaire ni des difficultés qui m'attendent. L'app sera au début prévu pour Mac, je me poserais la question de iOS bien plus tard. Je suis seul sur le projet et j'attends la sortie de Xcode 6 et donc Yosemite pour attaquer les choses sérieuses. Pour le moment je travaille sur des petits bouts sur des prototypes.


 


N'hésitez pas à  me poser des questions et lancer des idées/liens sur mes questions.


 


Merci à  vous et à  très bientôt.


Réponses

  • Pour le 2:

    Un parsing, et les NSAttributedString peuvent être une piste.

    En tout cas, sur iOS, c'est comme ça que je ferais. Sur Mac OS X, y'a peut-être d'autres solutions. Doit même exister si ça s'trouve des codes pour le parsing de Markdown.


  • AliGatorAliGator Membre, Modérateur

    Juste pour info, moi j'utilise Mou.app comme editeur de Markdown, gratuit et que je trouve tout à  fait suffisant. Je ne sais pas si tu le connais et l'a étudié dans ton comparatif.


     


    Sinon, ton problème et ta question... bah c'est un peu le coeur de ton application en fait : parser du Markdown (et donc implémenter un parseur dédié qui connaà®t toutes les règles de la syntaxe Markdown) pour le transformer en du texte stylé.


     


    Il existe certainement des libs de parsing de Markdown déjà  fait, pas besoin de réinventer la roue. Rien que sur CocoaPods (en faisant un simple "pod search markdown" dans mon terminal) il m'en liste quelques unes.


    Si vraiment tu voulais réinventer la roue, bah soit utiliser NSScanner soit NSRegularExpression (+ flexible et plus adapté je pense), et pour chaque matching, rajouter des attributs (gras, italique, etc) à  la NSAttributedString que tu construit.


     


    Tu peux t'inspirer de mes divers TagParsers (dont OHASBasicMarkupParser) de feu mon composant OHAttributedLabel pour faire le parsing (même si j'ai déprécié ce composant car il n'est plus trop utile depuis iOS6 et que je n'ai plus le temps de le maintenir, tu peux toujours lire le code pour comprendre la logique de mes mini-parseurs basiques qui utilisent des RegEx et ajoutent les attributs à  ma NSAttributedString).


     


    Tu peux aussi utiliser mon nouveau composant / Additions OHAttributedStringAdditions qui permet de faciliter grandement l'ajout d'attributs de styles à  une NSAttributedString (passer un bout en gras ou en italique, souligner un morceau, etc). J'ai encore 2-3 Tests Unitaires à  écrire dessus avant d'en faire l'annonce officielle, mais il est déjà  tout à  fait opérationnel et te simplifiera la manipulation d'AttributedStrings.


     


     


    PS : Sinon pour le point 1 t'as plein de tutos sur le net, c'est en général la 1ère ou 2ème chose que les tutos concernant les Document Based Apps expliquent.


Connectez-vous ou Inscrivez-vous pour répondre.