Tyto - Litterateur is a libre project to create and manage multiple websites from articles files. Tyto uses its own syntax to convert your articles in HTML5 pages. Tyto works on a GNU/Linux system and needs minimal dependencies.
Go to file
Cyrille L 84abcb5e92 [1.9.29] - 'wip' process. See changelog 2023-11-01 10:29:43 +01:00
debian [1.9.29] - 'wip' process. See changelog 2023-11-01 10:29:43 +01:00
src [1.9.29] - 'wip' process. See changelog 2023-11-01 10:29:43 +01:00
CHANGELOG.md [1.9.29] - 'wip' process. See changelog 2023-11-01 10:29:43 +01:00
LICENSE Présentation 2022-11-16 11:45:39 +01:00
Makefile added Makefile and debian control file 2023-04-10 19:45:54 +02:00
README.md [1.9.29] - 'wip' process. See changelog 2023-11-01 10:29:43 +01:00

README.md

Very early IN dev code

This program can ve tested but not at all usable. Lots of work to do...

Commands

# Get commands list help
tyto

ToDo next (working on)

  • added lists to post database (prepared wip)

Working on

  • 'wip' action processes
    • images module

ToDo

  • thinking about creating an auto top article menu from titles
  • create full HTML page
  • sitemaps
  • RSS
  • 'publish' process

Exemple d'article .tyto commenté

#================================================#
# Entete de l'article                            #
# Fin de l'entête avec au moins 5 tirets "-----" #
# Toute ligne de commentaire "# ..." est ignorée #
# ! Recommandé de ne pas utiliser le signe "_"   #
#================================================#

# Pour ne pas inclure cet article dans les sitemaps :
! NoSitemap

# Données uniques sur UNE ligne
title:  tests d'un article
about:  À propos de cet article de test
tags:   Tyto, tuto,
author: echolib
date:   2023-10-27

# Données unique sur UNE ligne optionnelle
# Si non définit, le logo du domaine est utilisé
# Ne sera affiché qu'avec _image:logo 
logo:   post-logo.png

# Données multiples sur 3 lignes
# [TAG]: Nom
#        LIEN
#        Text alternatif

link:   cliquer sur ce Lien
        https://
        Text alternatif

link:   Réservez ici
        https://
        Billets

file:   télécharger ce fichier
        @/PDFs/hello.pdf
        Un PDF !

code:   codetest
        @RAWS/test.py
        Exemple d'un code Python

# Les abréviations :
# 2eme ligne: Texte alternatif
# 3ème ligne: valeur affichée dans l'article à la place du Nom
abbr:   HTML
        HuperText Markup Langage
        HTML
        
abbr:   css
        Cascading Stylesheet
        CSS

-----

#=====================================================================#
# Contenu de l'article                                                #
# Les classe optionnelles non renseignées deviennent celle du domaine #
# /!\ Tout code HTML sera interprêté par le navigateur sauf si placé  #
# entre les marqueurs de block-code ou icode                          #
#=====================================================================#

# La ligne suivante est un commentaire HTML "<!-- Commentaire -->"
# ----------------------------------------------------------------
;; Commentaire

# Ceci est une ancre avec l'ID uniq1 (ID unique)
# ----------------------------------------------
-> uniq1
-> top

# Créer un lien vers l'ancre "uniq1"
# ----------------------------------
>_uniq1: Go to uniq1 anchor_<

# Ceci est une ligne <hr> ayant pour classe hrcss
# -----------------------------------------------
-- hrcss

# Les Titres de l'article de #1 à #5 (<h2> à <h6>)
# ------------------------------------------------
#1 Titre en h2

# Contenu dans un paragraphe entre (( ... )) ayant pour classe "mypar"
# --------------------------------------------------------------------
(( mypar
   Un long paragraphe...
   
   # Retour à la ligne avec un <br /> de classe brcss
   # (les retours à la ligne vides ne sont pas pris en compte)
   # ---------------------------------------------------------
   | brcss
   
   # Reprise du Nom pour les liens de link: et file:
   # Reprise des abréviations
   Il faut __cliquer sur ce Lien, __Réservez ici et --télécharger ce fichier
   ou encore faire une ::css pour du beau rendu ::HTML
   
   # Un paragraphe dans le paragraphe ayant pour classe, celle du domaine
   # --------------------------------------------------------------------
   ((
     Un /_court_/ paragraphe de :_1984_: pour de ~_vrai_~ +_faux en gras_+
     Il faut le ._souligner_. et *_Très Gras_*
   ))

   # Créer un icode (utilise la balise <code> HTML)
   # /!\ ! Doit être sur une même ligne
   # ----------------------------------------------
   {_<ol>, <ul>_}
   {_{_Afficher un icode brut_}_}
))

# Un exemple de block code ayant pour classe python
# Tout contenu entre les marqueurs "{{" et "}}" est conservé
# ----------------------------------------------------------
#2 Block Code
{{ python
   # Un commentaire et du code
   def hello(world):
      world and print(world) or print("NoMore")
}}


# Écrire en gras, italique...
# ---------------------------
#2 Marqueurs de mots
((
   Même si, il est possible d'écrire directement des balises (HTML), Tyto
   propose de les simplifier, en entourant les mots avec des marqueurs. La
   classe CSS du domaine est utilisée pour chaque marqueur.
   
   {{
      *_Très Gras_* > <strong>
      +_En Gras_+ > <b>
      [_Citer un texte_] > <q>
      :_Citer une référence_: > <cite>
      ~_Texte barré_~ > <del>
      ._Text souligné_. > <u>
      /_En italique_/ > <em>
      ;_En italique_; > <i>
      
      # Marques multiples, ajouter "&"
      *_&._Très gras et souligné_.&_*
   }}
))


# Dans un block div [[ ... ]] (classe CSS mydiv),
# La citation entre [" ... "] (classe CSS mycite)
# est placée dans un paragraphe (classe CSS mycite)
# ! Tout commentaire "# ..." dans la citation sera affiché...
# -----------------------------------------------------------
#2 Citation
[[ mydiv
   [" mycite
      ;; A great quote here !
      cite: Someone
      date: 2023-10-13
      book: A History
      lang: en
      link: https://...
      
      (( mycite
         Here, i am
      ))
   "]
]]


# Créer une liste ol/ul entre <: ... :> (classe mylist)
# dans un paragraphe (classe du domaine)
# "+" pour ol, "=" pour ul
# Ajouter toujours un signe pour un sous-item ou /!\ au changement de signe
# -------------------------------------------------------------------------
#2 Une liste mixée {_<ol>, <ul>_}
((
   <: mylist
      +    numeric o: item 1
      ++   numeric ol sub-Item 1
      +++  numeric ol sub-sub-item 1
      ==== ul item >_top: Go to Top_<
      ==== ul item >_top: Another anchor_<
   :>
))

# Afficher un block code avec le contenu d'un fichier
# Il doit avoir été configuré dans l'entête
# -----------------------------------------
#2 Un block code depuis un fichier
_code:codetest